我是Qt的新手,正在尝试导入一些旧的C++ openGL代码。我目前使用的是Qt 6.4。我已经将使用OpenGL的类子类化为QOpenGlFunctions
。
许多glFoo
调用“work,”但该类也使用glEnableClientState
、glVertexPointer
、glNormalPointer
、glTexCoordPointer
、glDisableClientState
、glColor4fv
等调用,& glMaterialfv
,它会出现类似undefined reference to __imp_glTextCoordPointer
的错误。查看文档,“default”似乎不再支持这些错误但是看起来使用QOpenGlFunctions
的旧版本(例如QOpenGlFunction_1_4
(https://doc-snapshots.qt.io/qt6-dev/qopenglfunctions-1-4.html))可以支持它们。
尝试将我的子类从QOpenGLFunctions
更改为QOpenGLFunctions_1_4
时,会抱怨实际上只存在QOpenGLFunctions_1_4_CoreBackend
和QOpenGLFunctions_1_4_DeprecatedBackend
,但似乎没有关于它们的文档,如果我将子类更改为其中一个,我会开始看到关于我的构造函数的抱怨...
我实际上如何从这些旧版本的类中访问函数?
1条答案
按热度按时间s4n0splo1#
Qt Forums的Chris Kawa回答了这个问题。以下是他的答案:
对于像我这样的业余爱好者来说,
context()
来自QOpenGLWidget::context()
,它返回QOpenGLContext*