发现 Qt5 VC2010 里无法调用 OpenGL 原生 API 例如 glBegin(…) glVertex3f(…) 等等,包括 <GL/gl.h> 就会提示 GLdouble 重定义,查了一下是在 qgl.h 中 将 GLfloat 定义为 GLdouble ,这是为 Qt 嵌入式 <GLES/gl2.h> 里弄的。Qt5 文档里的例子都是使用 QGLFunction 类的成员,然而 QGLFunction 类的成员没有 glBegin(…) glVertex3f(…) 等等。有人解释说 Qt5 使用的是 OpenGL 2 而 Windows 只支持 OpenGL 1.1 因此 Qt5 不允许使用 Windows 的 <GL/gl.h> 而是自己实现了一个嵌入式的 OpenGL(就是 <GLES/gl2.h> 和 QGLFunction 那些玩意),但是这个实现没有提供 glBegin(…) 等管线函数。。。
以前在 Qt4 写的 OpenGL 程序都是基于 glBegin(…) glVertex3f(…) 等等实现的,现在老师让迁移到 Qt5 里,总不能把以前的东西都重新写一遍吧,而且说实在把以前那些glBegin(…) glVertex3f(…) 等等实现转到 QGLFunction 那些接口上确实不易。
各位有什么好的方法能在 Qt5 VC2010 里调用 OpenGL 原生 API 分享一下?
↧