使用pygtkglext的着色器
有没有人知道怎么在gtk-opengl窗口中使用glsl着色器?在使用glut的时候,所有的glCreateProgram
等函数都能正常工作,但当我尝试把相同的gl代码放到pygtkglext窗口时,它却报了NullReference的错误:
OpenGL.error.NullFunctionError: Attempt to call an undefined function glCreateProgram, check for bool(glCreateProgram) before calling
于是我尝试了from OpenGL.GL.ARB.shader_objects import *
,但结果还是差不多:
OpenGL.error.NullFunctionError: Attempt to call an undefined function glCreateProgramObjectARB, check for bool(glCreateProgramObjectARB) before calling
任何建议都很有帮助。
2 个回答
0
获取OpenGL的入口点是通过一个叫做GetProcAddress的程序来实现的。我猜NULL指针就是指向glCreateProgramObjectARB这个函数的指针。
这和安装在驱动程序上的库有很大关系。你现在的电脑上运行的是哪个版本的OpenGL呢?可能是因为驱动程序没有实现glCreateProgramObjectARB这个函数。
1
答案是目前还不支持。简单来说,pygtkglext 这个库没有设置 glCreateProgram。不过在 Git 版本中是有的。