无法在InitializeGL和paintGL之外调用OpenGL相关函数
Unable to call OpenGL related functions outside of InitializeGL and paintGL
正如标题所示,在Qt内部,我无法使用或调用QGLWidget函数之外的任何OpenGL函数,如initializeGL()
和paintGL()
。
在调用了QMainWindow
类中的一个插槽后,我正在尝试构建一个3D模型。一切似乎都很好,所有的顶点都被加载了,但是,当我尝试绘制模型时,我得到了一个NULL引用异常;最常见的情况是,当提供的顶点太少时。
当我在initializeGL()
中使用它时,同样的构建功能也起作用。
这实际上很简单:在这些函数之外,QGLWidget的上下文不是最新的。您可以通过调用QGLWidet::makeCurrent((使上下文成为当前上下文。解决这一问题的一个更好的方法是推迟将任何GL函数调用到paintGL中,因为这可以确保上下文是最新的,并且您不会因为更改上下文而冒着干扰任何其他openGL内容的风险。
相关文章:
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 是否可以在 OpenGL 中的同一调用中呈现两个具有不同索引起点的不同缓冲区?
- opengl-VAO也存储Texrture单元调用
- MSVC __debugbreak() 与 openGL 错误回调一起使用时不会产生调用堆栈
- C++ 如何在 OpenGL 程序中远程调用控制台窗口
- 您是否必须在 OpenGL 程序中调用 glfwSwapInterval(1)?
- CMake 子项目不能调用 OpenGL 函数,但父项目可以
- 写入渲染缓冲区并使用单个渲染调用使用 OpenGL 显示
- 在 openGL 中,模型坐标应该在我的 CPU 上计算还是在 GPU 上使用 OpenGL 调用计算?
- EGL 在第一次 opengl 函数调用时崩溃
- OpenGL -- 多个 glDrawArrays() 调用仅显示第一个的结果
- 绘制的 OpenGL 点消失,绘制调用和交换缓冲区问题
- E/libEGL:调用没有当前上下文的 OpenGL ES API (每个线程记录一次) - Android/SDL
- opengl调用可以在没有GPU的情况下运行吗
- Openframeworks-通过OpenGL调用从图像中心旋转图像
- openGL - 调用 glMatrixMode(..) 时的访问冲突
- 用于OpenGL调用的c++11包装器
- Qt 5.5 QOpenGLWidget链接错误,未链接任何openGL调用
- OpenGL -调用不同颜色的平方函数
- C++OpenGL:调用gluPerspective会引发未定义的引用错误