2013-08-22 26 views
1

我使用glext.h(http://oss.sgi.com/projects/ogl-sample/ABI/glext.h)来访问Windows窗体应用程序的OpenGL缓冲区函数。OpenGL扩展glBufferData期望2是4个参数

PFNGLGENBUFFERSPROC myglGenBuffers = PFNGLGENBUFFERSPROC)wglGetProcAddress("glGenBuffers"); 
PFNGLGENBUFFERSPROC myglBindBuffer = (PFNGLGENBUFFERSPROC)wglGetProcAddress("glBindBuffer"); 
PFNGLGENBUFFERSPROC myglBufferData = (PFNGLGENBUFFERSPROC)wglGetProcAddress("glBufferData"); 
PFNGLGENBUFFERSPROC myglDeleteBuffer = (PFNGLGENBUFFERSPROC)wglGetProcAddress("glDeleteBuffer"); 

他们似乎都工作,除了glBufferData。 myglBufferData预计

(GLsizei, GLuint *) 

,而不是

(GLenum, GLsizeiptr, const GLvoid *, GLenum)^ 

作为输入参数,我想不通为什么。我究竟做错了什么?

不幸的是,使用GLEW不是一种选择。

^glBufferData Specification

+0

您说使用GLEW不是一个选项,但是您是否知道GLEW站点上提供了GLEW用于从扩展规范生成标题的脚本?如果你使用过,你可以节省很多挫折,例如你可以在VBO扩展上运行它,并为你生成所有的原型,枚举,typedefs等。 –

回答

3

复制粘贴错误?

PFNGLGENBUFFERSPROC应该是PFNGLBUFFERDATAPROC(等等)?

+0

谢谢!这让我疯狂。 – siri

相关问题