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
-~----------~----~----~----~------~----~------~--~---

Reply via email to