在Qt5中,引入了QOpenGL*系列类,以取代Qt4时代的QGL*系列类。
下面是从Qt5例子中抠出的两种OpenGL程序模板,方便参考。
第一种写法
TriangleWindow.h
#ifndef TRIANGLEWINDOW_H
#define TRIANGLEWINDOW_H
#include <QWindow>
#include <QOpenGLFunctions>
class QPainter;
class QOpenGLContext;
class QOpenGLPaintDevice;
class TriangleWindow : public QWindow, protected QOpenGLFunctions
{
Q_OBJECT
public:
explicit TriangleWindow(QWindow *parent = 0);
~TriangleWindow();
virtual void render(QPainter *);
virtual void render();
virtual void initialize();
public slots:
void renderNow();
protected:
void exposeEvent(QExposeEvent *);
void resizeEvent(QResizeEvent *);