我的代码大致如下:
GLenum glewStatus = glewInit();
if (glewStatus != GLEW_OK)
exit(1);
if (!GLEW_ARB_framebuffer_object)
exit(1);
printf("%p\n", glFramebufferTexture);
这打印0,这解释了为什么立即调用glFramebufferTexture()
段错误。
然而,为什么是0?许多其他帧缓冲函数工作正常(例如glBindFramebuffer
,glFramebufferRenderbuffer
和glBindFramebuffer
)。
我是否需要以不同的方式初始化GLEW或扩展名?
答案 0 :(得分:5)
glFramebufferTexture()
是一个比glBindFramebuffer()
和其他FBO相关入口点更新的入口点。在核心OpenGL规范中,glFramebufferTexture()
在3.2中添加,而其余的FBO功能是3.0的一部分。 glFramebufferTexture()
也不属于ARB_framebuffer_object。
在大多数情况下,您可以使用glFramebufferTexture2D()
,这是原始FBO功能的一部分。 glFramebufferTexture()
仅与纹理数组,立方体贴图等不同。