First of all, I love pyglet, and I would never want to use pyopengl.
However, I need to load 3ds files. And this person wrote some code to
load 3ds files (
http://www.aerojockey.com/software/dice3ds/index.html
), which requries pyopengl to put it into a display list easily.
I tried to modify his code to work with pyglet, and after lots of
ctypes pain and dozens of segfaults, I gave up.
Now I just run pyglet and pyopengl together. However, if I import
pyglet first, pyopengl gives an error while importing, saying:
Traceback (most recent call last):
File "interpolator.py", line 30, in <module>
from Dice3DS.example import glmodel, gltexture
File "C:\Python25\lib\site-packages\Dice3DS\example\glmodel.py",
line 11, in <
module>
from Dice3DS.example import basicmodel, gltexture
File "C:\Python25\lib\site-packages\Dice3DS\example\gltexture.py",
line 14, in
<module>
from OpenGL.GLU import *
File "c:\python25\lib\site-packages\PyOpenGL-3.0.0b6-py2.5.egg\OpenGL
\GLU\__in
it__.py", line 10, in <module>
from OpenGL.GLU.glunurbs import *
File "c:\python25\lib\site-packages\PyOpenGL-3.0.0b6-py2.5.egg\OpenGL
\GLU\glun
urbs.py", line 147, in <module>
cb = _callbackWithType( funcType )
File "c:\python25\lib\site-packages\PyOpenGL-3.0.0b6-py2.5.egg\OpenGL
\GLU\glun
urbs.py", line 140, in _callbackWithType
simple.gluNurbsCallback
File "c:\python25\lib\site-packages\PyOpenGL-3.0.0b6-py2.5.egg\OpenGL
\platform
\baseplatform.py", line 192, in copyBaseFunction
extension = original.argNames,
File "c:\python25\lib\site-packages\PyOpenGL-3.0.0b6-py2.5.egg\OpenGL
\platform
\baseplatform.py", line 134, in createBaseFunction
extension = extension,
File "c:\python25\lib\site-packages\PyOpenGL-3.0.0b6-py2.5.egg\OpenGL
\platform
\baseplatform.py", line 80, in constructFunction
if extension and not self.checkExtension( extension ):
File "c:\python25\lib\site-packages\PyOpenGL-3.0.0b6-py2.5.egg\OpenGL
\platform
\baseplatform.py", line 158, in checkExtension
current = set.get( name )
TypeError: list objects are unhashable
And if I try to import pyopengl first, it works, however all my
textures are gone, and only the textures of the imported model are
displayed.
So help me pelase! How can I make the two opengl libraries work
together? Or should I really try to modify his code harder? The
problem I've had with his code is basically related to (I think)
glVertexPointer, numpy ndarrays and the fact that pyglet expects
glfloats. However, I searched a lot on this and kept getting crashes
that looked like segfaults. So I'd appreciate it if you could please
focus on making pyopengl and pyglet working together instead of
solving this issue.
Thanks!