在Qt中使用'raw'OpenGLES2.0-3.0 API

时间:2017-03-15 08:15:48

标签: qt opengl-es

我有以下情况。我有一个基于OpenGLES 2.0-3.0 API的渲染器。我需要将它嵌入到基于Qt的桌面小部件应用程序中。我读过有关Qt GL包装器的内容,这是使用GL ES API的一种方式在Qt App.But在我的情况下我不能重写整个引擎渲染代码使用Qt的GL包装器不仅因为范围,而且主要是因为可移植性问题。所以我试图包括暴露的GL/GLES3.0/gl3.h标头在Qt SDK中。这样做我得到所有类型的标头冲突错误,例如像这样:

  

D:\ Qt \ 5.8 \ msvc2015 \ include \ QtANGLE \ GLES3 \ gl3.h:73:错误:C2371:   'GLsizeiptr':重新定义;不同的基本类型

那么如何才能在Qt中使用原始OpenGL ES API?

对于桌面OpenGL我知道我应该使用桌面opengl标志构建SDK,然后使用像GLEW这样的GL加载器lib来初始化所有GL func指针。这是否意味着我必须为GLES做类似的事情?例如,在没有ANGLE的情况下构建SDK,然后明确地与ANGLE lib链接?

我也问过这个问题on Qt's forums。没有回答。

更新:

我检查了一些Qt标头,看看上面提到的碰撞发生在哪里。所以Qt有qopengl.h标头声明GL函数和类型。但是它也有ANGLE的gl标题,我试图包含它并且声明了相同的东西。这会导致碰撞。我不明白为什么他们允许两个标题进入SDK。如何摆脱qopengl.h并仅使用ANGLE标题运行?

0 个答案:

没有答案