You can convert to the appropriate data type by using this convension

>>> from pyglet.gl import *

# single values
>>> a = (GLfloat)(1.0)
>>> a
c_float(1.0)

# arrays
>>> data = [1.0, 2.0, 3.0]
>>> a = (GLfloat * len(data))(*data)
>>> a
<__main__.c_float_Array_3 object at 0x106078e60>

# numpy (nicer than arrays
>>> import numpy
>>> data = numpy.array([1.0, 2.0, 3.0])
>>> a = (GLfloat * data.size)(*data)
>>> a
<__main__.c_float_Array_3 object at 0x108931b90>
>>> for val in a: print val
... 
1.0
2.0
3.0


Be aware that using len(list) will only get you the first dimension.
This is why I prefer numpy, as you can simply use 'data.size' to get the 
entire size of the array.

Eg.
>>> a = [[1,2,3],[4,5,6]]
>>> len(a)
2
>>> a = numpy.array( a )
>>> len(a)
2
>>> a.size
6

This also applies for textures.
I've seen a lot of code converting numpy arrays to strings and then passing 
that to the image.set_data functions.
Don't do this!
Just pass a data array in the proper format.



Hope this helps =)

Cheers,
Adam


On Thursday, October 11, 2012 9:10:05 AM UTC+11, Wallace Davidson wrote:
>
> Thanks :)
>
> On Thu, Oct 11, 2012 at 11:07 AM, Adam Bark <[email protected]<javascript:>
> > wrote:
>
>>  On 10/10/12 22:44, Wallace Davidson wrote:
>>  
>> That sounds good then :) It can be used with pyglet can't it?
>>
>> On Thu, Oct 11, 2012 at 10:38 AM, Adam Bark <[email protected]<javascript:>
>> > wrote:
>>
>>>  On 10/10/12 22:11, Wallace Davidson wrote:
>>>  
>>> I heard it was slower :/ would it be much different?
>>>
>>> On Thu, Oct 11, 2012 at 10:09 AM, Adam Bark <[email protected]<javascript:>
>>> > wrote:
>>>
>>>> On 10/10/12 21:59, Wallace Davidson wrote:
>>>>
>>>>> Thanks that does help :) Would you know how I can get a python matrix 
>>>>> usable in opengl? :/ It just says "expected LP_c_float instance instead 
>>>>> of 
>>>>> matrix" when I try use a numpy one :(
>>>>>
>>>>>  If you want to use numpy matrices and opengl then get pyopengl, it's 
>>>> a nicer library anyway as you don't have to mess around with ctypes. 
>>>>
>>>>
>>>>    If you're using core opengl it shouldn't make much difference as 
>>> you won't need to make many calls, immediate mode is where you might find 
>>> some slowdown. I use it personally and haven't had any performance issues 
>>> that weren't related to either poor programming on my part or my incredibly 
>>> old graphics card (NVidia 7950GT).
>>>   -- 
>>>  
>>  Yes, that's what I'm using. Just post if you need any pointers.
>>  -- 
>> 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]<javascript:>
>> .
>> To unsubscribe from this group, send email to 
>> [email protected] <javascript:>.
>> For more options, visit this group at 
>> http://groups.google.com/group/pyglet-users?hl=en.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"pyglet-users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/pyglet-users/-/2FvAUG92cugJ.
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