Qt OpenGL 渲染:QOpenGL 接口替代 GLU 库
在 Qt 库中,GLU(OpenGL 实用工具库)的功能已经被废弃并移除。相反,Qt 推荐使用 QOpenGL 接口来完成与 OpenGL 的交互。
QOpenGL 提供了一套完整的用于 OpenGL 渲染的接口,并且与 Qt 的其他部分(如 QWidget)集成得更好。
要使用 QOpenGL,首先需要包含 QOpenGLFunctions 类的头文件,并从它派生自己的类。在这个派生类中,可以重写一些 OpenGL 的回调函数,如 initializeGL,resizeGL 和 paintGL,以实现自定义的 OpenGL 渲染。
以下是一个简单的示例代码,演示了如何使用 QOpenGL:
#include <QOpenGLWidget>
#include <QOpenGLFunctions>
class MyOpenGLWidget : public QOpenGLWidget, protected QOpenGLFunctions
{
public:
void initializeGL() override
{
initializeOpenGLFunctions();
glClearColor(0, 0, 0, 1);
}
void resizeGL(int w, int h) override
{
glViewport(0, 0, w, h);
}
void paintGL() override
{
glClear(GL_COLOR_BUFFER_BIT);
// 执行其他 OpenGL 渲染操作...
}
};
在这个示例中,MyOpenGLWidget 继承自 QOpenGLWidget 和 QOpenGLFunctions。在 initializeGL 函数中,我们初始化了 OpenGL 函数,并设置了清除颜色为黑色。在 resizeGL 函数中,我们设置了 OpenGL 视口大小。在 paintGL 函数中,我们清除了颜色缓冲区,并可以添加其他的 OpenGL 渲染操作。
通过使用 QOpenGL 接口,可以更方便地进行与 OpenGL 的交互,并且避免了使用已被废弃的 GLU 库的问题。
原文地址: https://www.cveoy.top/t/topic/pkhL 著作权归作者所有。请勿转载和采集!