glGenRenderbuffersEXT未声明,但glGenFramebuffersEXT有效

问题描述

| 我正在尝试在使用QGLWidget的项目中使用RBO。现在,当我想使用RBO快速读取纹理时,编译器会在此范围内未声明\ glGenRenderbuffersEXT \。 FBO(glGenFramebuffersEXT)的效果很好。 相关的gl包括我使用的:
#include <GL/glew.h>
#include <QtOpenGL>
我也链接到glew库。 这是我的CMakeLists.txt的转储:
include_directories(
    ${GLEW_INCLUDE_PATH}
    ${PROJECT_SOURCE_DIR}/include
    ${OpenCV_INCLUDE_DIRS}
    ${CG_INCLUDE_PATH}
)

set(LIBS
    ${GLEW_LIBRARY}
    ${OPENGL_gl_LIBRARY}
    ${OPENGL_glu_LIBRARY}
    ${CG_LIBRARY}
    ${CG_GL_LIBRARY}
    ${OpenCV_LIBS}
    ${GFlags_LIBS}
    ${QT_LIBRARIES}
    common
    ndiolib
    optimization-static
    LightingLib-static
)

SOURCE_GROUP(\"Shader Files\" FILES ${SHADER_FILES})

add_executable(Relighting ${HDRS} ${SRCS} ${MOCSRC} ${SHADER_FILES} main.cxx)
target_link_libraries(Project ${LIBS})
任何人都有一个主意,可能是什么问题?当我尝试使用glext.h(+ gl.h)而不是glew.h时,找不到RBO和FBO。 附带问题:我是否应该使用RBO完全读取纹理?还是使用我用来读取纹理的FBO一样快?     

解决方法

我检查了OpenGL网站,似乎您提到的功能只有在您定义了
GL_GLEXT_PROTOTYPES
时才被定义。 http://www.opengl.org/registry/api/glext.h 进一步的挖掘表明,您确实需要定义此符号才能使用扩展的原型。 http://www.opengl.org/registry/ABI/#5     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...