现代OpenGL+QT窗口创建

类.h
 1 #include <QObject>
 2 #include <QOpenGLWidget>
 3 #include <QOpenGLFunctions>
 4 class OpenglManager : public QOpenGLWidget, protected QOpenGLFunctions
 5 {
 6 public:
 7     explicit OpenglManager(QWidget *parent = 0);
 8     ~OpenglManager();
 9 
10 protected:
11     void initializeGL() override;  //窗口创建初始化
12     void resizeGL(int w, int h) override;  //窗口大小调整
13     void paintGL() override;  //重绘
14 
15 };

类.cpp

#include "openglmanager.h"

OpenglManager::OpenglManager(QWidget *parent) : QOpenGLWidget(parent)
{

}

OpenglManager::~OpenglManager()
{

}

void OpenglManager::initializeGL()
{
    /*********** OGL核心 ***********/
    initializeOpenGLFunctions();
    glEnable(GL_DEPTH_TEST);
}

void OpenglManager::resizeGL(int w, int h)
{
    glViewport(0, 0, w, h);
}

void OpenglManager::paintGL()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
}
在Qt的UI设计界面,使用widget提升该类
posted @ 2020-09-02 15:36  Kylin_170  阅读(223)  评论(0)    收藏  举报