Re: [PyOpenGL-Users] access violation when calling glGenFramebuffers
Brought to you by:
mcfletch
From: David V. <cod...@ha...> - 2013-04-14 20:37:36
|
On 4/14/2013 10:15 AM, Patrick Dietrich wrote: > Am 13.04.2013 03:50, schrieb David Vierra: >> In OpenGL/platform/baseplatform.py, constructFunction calls >> self.getExtensionProcedure and gets a small negative number as a result. >> I looked at getExtensionProcedure and traced it back to the >> wglGetProcAddress that is implicitly created in >> OpenGL/platform/win32.py. This wglGetProcAddress is a _FuncPtr whose >> restype attribute is ctypes.c_long. >> >> If I add another line to OpenGL/platform/win32.py after the >> `getExtensionProcedure = ` line, that says: >> >> OpenGL.wglGetProcAddress.restype = ctypes.c_void_p >> > I did the same thing and it fixed the problem with glGenFramebuffers, > too! Thanks a lot David! > Is this a fix which can be added to the official distribution or will it > cause problems on other systems? It did not cause problems with my 32-bit Python, at least. I strongly doubt it would cause any problems on other (non-Windows) systems since the change is only made in win32.py. The fix changes the result type of one function pointer, but this hints strongly that the underlying problem is that the default result type for ctypes funcptrs, on 64-bit Python for Windows, is only 32 bits long. |