从Qt创建者访问现代OpenGL函数
Accessing Modern OpenGL functions from Qt creator
我正在使用Open GL 3.0
我正在尝试将此示例更新为现代OpenGL:http://qt-project.org/doc/qt-4.8/opengl-hellogl-es.html
我也在看这个例子:http://qt-project.org/doc/qt-5/qtopengl-cube-example.html
我正在看OpenGL ES的例子,因为它们在我的机器上很容易编译和渲染,而OpenGL ES 2的例子使用了一些可编程流水线。
我想使用本教程中引用的管道函数:http://www.opengl-tutorial.org/beginners-tutorials/tutorial-2-the-first-triangle/
例如glGenBuffers((
然而,这似乎并没有出现在公开的Qt中。如果我试图编译一个使用glGenBuffers或glBindBuffer的程序。
为什么我可以使用某些Open GL函数而不能使用其他函数?
看看第二个例子(OpenGL ES2(,有一种类型的"QGLShaperProgram"似乎包含了一些着色函数,但我不知道如何遵循一个简单的开放式GL教程来完全访问渲染函数。
例如,openGL教程引用了至少六个我似乎无法使用的函数。我对此很满意,但我似乎找不到Qt人员在哪里解释了哪些功能被包装、被掩盖或不存在。
我可能错过了一个内含物什么的?
我包括#QGLWidget和#QtOpenGL
请参阅下面我对您问题的回答。然而,你可能正在寻找一个更简单的OpenGL示例,它使用Qt,就像你链接到的三角形一样。我还在这里做了一篇介绍性文章,在开始示例之前,你可以在这里学习Qt和OpenGL如何协同工作的基础知识。
首先,现在使用Qt 5.5。默认情况下,它配置有-opengl动态选项,这可能会解决您的问题。如果你在Qt 5.5之前的版本中没有设置-opengl桌面配置选项,那么除了Qt支持的所有平台都支持的opengl ES 2的子集之外,你将无法访问现代opengl功能。
其次,不要使用QGL*函数或类,因为它们现在已经过时了。它们被QOpenGL*函数和类所取代。
至于includes,您需要一个QOpenGLFunctions或QOpenGLFunctions_3_0来确定您得到的是哪一组函数。您还需要任何其他类,如QOpenGLBuffer QOpenGLVertexArrayObject。。。或者只包括QtGui,因为现在所有OpenGL函数和类都在这里。
- GLEW 未在 MSYS2 上定位 OpenGL 函数
- CMake 子项目不能调用 OpenGL 函数,但父项目可以
- EGL 在第一次 opengl 函数调用时崩溃
- 我是否需要这些 OpenGL 函数末尾的"3f"?
- 使用 QOpenGLWidget 加载 OpenGL 函数指针
- opengl32.lib如何在Windows(仅1.1版本)上工作?它是否真正实现了OpenGL函数
- 类中的 OpenGL 函数
- 加载的 OpenGL 函数是特定于上下文还是特定于线程?(视窗)
- SFML 环境中缺少 OpenGL 函数
- 为什么内联函数会导致编译器看不到OpenGL函数
- 加载 OpenGL > 1.1 函数窗口
- 手动检索和存储指向 OpenGL 函数的指针时遇到问题
- 在未加载上下文的情况下在对象构造函数中使用OpenGL函数
- 在 Linux 上的 Qt 5.4 中使用某些 OpenGL 函数
- OpenGL函数在VS2012 express中未定义
- 我可以在代码中明确禁用不推荐使用的OpenGL函数吗
- 如何替换以下(已弃用)OpenGL函数
- glxCreateContextAttribsARB和OpenGL函数在linux上的动态加载
- 调用OpenGL函数时程序崩溃
- OpenGL函数未定义glow