Perfect! That's just what I was after. Thanks very much,
Jamie On Mar 28, 2:50 pm, Gary Herron <[EMAIL PROTECTED]> wrote: > Jamie wrote: > > Hi, > > > I'm just starting to have a play with pyglet as a warm-up for pyweek > > next week and I really like it. At the moment i'm just playing around > > with particles and I was wondering if it's possible to use a numpy > > array with glVertexPointer. I want to can use numpy's fast > > manipulation of arrays to move the particles in the array around, then > > pass this array straight through as a vertex array. Is this possible > > at all? I know glVertexPointer expects a ctypes array, but is there > > any way to convert between the two? Numpy arrays now have a ctypes > > property to allow their data to be accessed from C, but i'm guessing > > it's not as simple as that as it probably doesn't contain GLFloats? > > > Is there any other way to quickly manipulate a large array without > > using numpy that I should be looking at instead? I'm struggling with > > frame-rates when doing it in pure python. > > > Thanks, > > > Jamie > > Yes, it is easily done, and the conversion is a one-liner that does > *not* copy the array. Here's the several relevant lines of code pulled > directly from my pyglet application. This works on Python2.5, Windows > and Linux, with pyglet 1.0 and 1.1. > > def PointerToNumpy(a, ptype=ctypes.c_float): > a = numpy.ascontiguousarray(a) # Probably a NO-OP, but > perhaps not > return a.ctypes.data_as(ctypes.POINTER(ptype)) # Ugly and undocumented! > > glVertexPointer(3, GL_FLOAT, 0, PointerToNumpy(VertexData)) > > Hope that helps, > > Gary Herron > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pyglet-users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/pyglet-users?hl=en -~----------~----~----~----~------~----~------~--~---
