我目前正在使用Qt中的OpenGL并尝试使用以下调用创建一个帧缓冲对象
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, scene_img, 0);
当我尝试编译项目时,我收到以下错误:
Error: C2065: 'GL_FRAMEBUFFER_EXT' : undeclared identifier
显然,名称GL_FRAMEBUFFER_EXT无法在任何地方识别。我尝试导入QtOpenGL,QGLShaderProgram和QGLFramebufferObject没有运气。还是一样的错误。我看了ql.h,仍然没有运气。还有什么我需要导入的吗?请注意,除了FRAMEBUFFER问题之外,我的普通QGLWidget没有问题。
顺便说一句:在Windows 7上工作
答案 0 :(得分:2)
尝试使用以下调用
创建帧缓冲对象glFramebufferTexture2DEXT(
不会创建帧缓冲对象。它将纹理指定为颜色附件。
顺便说一句,以EXT
结尾的函数是不属于核心功能的扩展函数。扩展通常从EXT到ARB并且可能成为核心,但是对于API的重大更改可能会发生微妙的变化。
无论如何,除了OpenGL-1.1(Windows)或OpenGL-1.2(GLX)之外的所有内容都必须通过扩展机制进行访问,即使它已成为核心功能。
最简单的方法:
#include <GL/gl.h>
替换为#include <GL/glew.h>
glewInit();