[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[pygame] blit_array() and AMD64



Hi,

It appears that blit_array() is broken on some systems - I have two users who are getting the following error:

    pygame.surfarray.blit_array(surf,arr)
ValueError: unsupported datatype for array

Both of these machines are AMD64 (one Ubuntu, one Gentoo) leading me to believe that might be responsible. I've knocked up the following script which reproduces the error:

 import pygame, Numeric
 pygame.init()
 surf = pygame.Surface((2,3))
 arr = Numeric.array([[1,2,3],[4,5,6]])
 pygame.surfarray.blit_array(surf,arr)

This works fine on all 32 bit machines I have tried, but not on my AMD64 machine.

I noticed that the surf returned by pygame.Surface() translates to an array with 'i' in it, so I tried adding that to the array and blit_array() worked fine:

 arr = N.array([[1,2,3],[4,5,6]], 'i')

Does anyone know what might be going on here? If it is AMD64 related I can imagine I'll be getting much more of these reports in future.

Cheers,
Kelvin.