This is strange ... I had a friend of mine test my codebase which I ship the entire OpenGL dir with so it's not required to be installed manually ... He didn't install anything special, he ran it, and it worked.
Now, I have my _other_ friend test the same codebase ... and he gets this error:
C:\SIL>__init__.py
<<< SILr470
<<< psyco not initialized
Traceback (most recent call last):
File "C:\SIL\__init__.py", line 336, in <module>
Singleton = Engine()
File "C:\SIL\__init__.py", line 85, in __init__
OpenGL.GLUT.glutInit()
File "C:\SIL\OpenGL\GLUT\special.py", line 316, in glutInit
_base_glutInit( ctypes.byref(count), holder )
File "C:\SIL\OpenGL\GLUT\special.py", line 57, in _base_glutInit
return __glutInitWithExit(pargc, argv, _exitfunc)
File "C:\SIL\OpenGL\platform\baseplatform.py", line 280, in __call__
self.__name__, self.__name__,
OpenGL.error.NullFunctionError: Attempt to call an undefined function __glutInit
WithExit, check for bool(__glutInitWithExit) before calling
C:\SIL>
Apparently he needs the glut32.dll or something ?
Why didn't my other friend also on vista lack glut32.dll ?
Is it possible to have freeglut work purely in python code cross-platform without depending on a GLUT-specific binary at all?
Freeglut seems to be going stagnant and it appears the thing people suggest most often is 'use a different windowing library', like SDL or something.. ?
Here's a relevant GLUT bug report I submitted which I think is pretty crucial..
http://sourceforge.net/tracker/index.php?func=detail&aid=2137721&group_id=1032&atid=101032
Also, if PyOpenGL developers have to rely on the fact that their end-users will have glut32.dll in order to get anything working (or ship it themselves) .. then why even use PyOpenGL over say.. pygame or SDL-ctypes (which pygame-ctypes uses) .. because that also depends on the end-user having a binary (SDL in the case of SDL-ctypes, or pygame+SDL in the game of pygame)
I guess what I'm asking for would basically be a rewrite of [Free]GLUT in python using winapi/xlib/cocoa calls while adding said fixes / enhancements, eh?
Also.. one final thing I _CAN_ think of a difference in the two vista test cases.. the one that passed had python 2.4 + ctypes .. the one that failed had 2.6
Putting 'glut32.dll' in the same directory as the executing script allows it to function..
I tried using the DLL from the following source:
http://slickr-dotnet.googlecode.com/svn/trunk/Lib/freeglut.dll
(obviously renaming it to glut32.dll first)
but it failed.
The following one works and is the one I'm currently using:
http://bullet.googlecode.com/svn/trunk/GLUT32.DLL
Later PyOpenGL releases include a binary release of GLUT for Win32 platforms. Regarding why you would use PyOpenGL instead of Pygame, the GLUT library isn't really being maintained actively AFAIK. The successor to Pygame-ctypes (Pyglet) sounds about like what you were describing. HTH.