我正在使用wlgGetProcAddress
来使用wglCreateContext
创建的上下文来获取函数。我已使用wglMakeCurrent
设置了上下文。我得到了glGetStringi
的有效函数指针,但NULL
得到了glGetString
。我认为glGetString
和glGetStringi
是在相同版本的OpenGL(1.0)中引入的。我有什么想法得到这个NULL
?
const GLubyte* (*glGetString)(GLenum);
const GLubyte* (*glGetStringi)(GLenum, GLuint);
glGetString = reinterpret_cast<decltype(glGetString)>(wglGetProcAddress("glGetString"));
glGetStringi = reinterpret_cast<decltype(glGetStringi)>(wglGetProcAddress("glGetStringi"));
如果重要,我有一台驱动程序版本为13.251.0.0的Radeon HD 7950。
答案 0 :(得分:6)
glGetStringi
的引入要晚于1.0 - 我相信它是3.3。更糟糕的是,在核心3.3+配置文件中,您无法使用glGetString(GL_EXTENSIONS)
,但需要使用glGetStringi
,这对于较低配置文件版本不可用。
MSDN文档说wglGetProcAddress
只返回扩展功能的地址。在他们的术语中,“扩展”是GL 1.1中没有的所有内容。