当GLEW_ARB_framebuffer_object为非零时,为什么glFramebufferTexture为NULL指针?

时间:2014-05-08 18:43:30

标签: linux opengl glew

我的代码大致如下:

GLenum glewStatus = glewInit();
if (glewStatus != GLEW_OK)
    exit(1);

if (!GLEW_ARB_framebuffer_object)
    exit(1);

printf("%p\n", glFramebufferTexture);

这打印0,这解释了为什么立即调用glFramebufferTexture()段错误。

然而,为什么是0?许多其他帧缓冲函数工作正常(例如glBindFramebufferglFramebufferRenderbufferglBindFramebuffer)。

我是否需要以不同的方式初始化GLEW或扩展名?

1 个答案:

答案 0 :(得分:5)

glFramebufferTexture()是一个比glBindFramebuffer()和其他FBO相关入口点更新的入口点。在核心OpenGL规范中,glFramebufferTexture()在3.2中添加,而其余的FBO功能是3.0的一部分。 glFramebufferTexture()也不属于ARB_framebuffer_object。

在大多数情况下,您可以使用glFramebufferTexture2D(),这是原始FBO功能的一部分。 glFramebufferTexture()仅与纹理数组,立方体贴图等不同。