39 lines
803 B
C++
39 lines
803 B
C++
#include <QWindow>
|
|
#include <QOpenGLExtraFunctions>
|
|
|
|
class QPainter;
|
|
class QOpenGLContext;
|
|
class QOpenGLPaintDevice;
|
|
|
|
|
|
class OpenGLWindow : public QWindow, public QOpenGLExtraFunctions {
|
|
Q_OBJECT
|
|
public:
|
|
explicit OpenGLWindow(QWindow *parent = nullptr);
|
|
virtual ~OpenGLWindow() {}
|
|
|
|
virtual void render() {}
|
|
virtual void initialize() {}
|
|
|
|
QOpenGLContext * context() {return m_context;}
|
|
void setVSync(bool on);
|
|
bool getVSync() const;
|
|
// void setSamples(int samples);
|
|
// int getSamples() const;
|
|
int getFrameCounter() const {return frame_cnt;}
|
|
|
|
public slots:
|
|
void renderLater();
|
|
void renderNow();
|
|
|
|
protected:
|
|
bool event(QEvent *event) override;
|
|
void exposeEvent(QExposeEvent *event) override;
|
|
|
|
private:
|
|
QOpenGLContext * m_context = nullptr;
|
|
bool format_change = false;
|
|
int frame_cnt = 0;
|
|
};
|
|
|