如标题所示,在Qt内部,我无法使用或调用QGLWidget函数之外的任何OpenGL函数,例如initializeGL()和paintGL()。
在QMainWindow调用班级的某个插槽后,我试图构建3D模型。一切似乎都可以正常工作,所有顶点都已加载,但是,当我尝试绘制模型时,出现了NULL引用异常。当提供的顶点太少时,通常会发生这种情况。
当我在中使用它时,相同的构建函数也可以工作initializeGL()。
这实际上非常简单:在这些功能之外,QGLWidget的上下文不是最新的。您可以通过调用QGLWidet :: makeCurrent()使上下文成为当前上下文。解决此问题的一种更好的方法是将所有GL函数推迟到paintGL内调用,因为这可以确保上下文是最新的,并且您不必冒险通过更改上下文而与其他任何openGL东西混淆。
| 归档时间: |
|
| 查看次数: |
719 次 |
| 最近记录: |