记录个人基于QT的OpenGL开发学习
在qt上进行opengl开发个人目前所知有三种方法:
a.继承QOpenGLExtraFunction
b.使用QOpenGLFunctions_3_3_Core类对象
c.用QT自己封装好的QOpenGLShader,QOpenGLShaderProgram类
推荐使用第一二种方法,第三种方法的话在qt开发中适用性较好,且相关API有文档描述支持,但局限性太强,脱离平台就会不太适用
本文将采用第一种方法,即继承QOpenGLExtraFunctions类
一、继承QOpenGLWidget类
Qt对OpenGL的支持,要求,必须public继承QOpenGLWidget类,重载initializeGL();resizeGL(int w, int h);paintGL();
protected:
virtual void initializeGL();
virtual void resizeGL(int w, int h);
virtual void paintGL();
二、代码
#pragma once
#include <QWidget>
#include <QOpenGLWidget>
#include <QOpenGLExtraFunctions>
namespace Ui {
class opengl;
}
class opengl : public QOpenGLWidget, protected QOpenGLExtraFunctions
{
Q_OBJECT
public:
explicit opengl(QW