terrain-gen/src/glwidget.h

49 lines
992 B
C++

#ifndef GLWIDGET_H
#define GLWIDGET_H
#include "camera.h"
#include "terrain.h"
#include "config.h"
#include <QOpenGLWidget>
#include <QOpenGLShaderProgram>
#include <QOpenGLFunctions_4_5_Core>
#include <QMouseEvent>
#include <QWheelEvent>
#include <QTimer>
#include <QTime>
QT_FORWARD_DECLARE_CLASS(QOpenGLShaderProgram)
enum VboIndex { Vertices, Normals};
class GLWidget : public QOpenGLWidget, protected QOpenGLFunctions_4_5_Core
{
Q_OBJECT
private:
Terrain* m_terrain;
QPoint m_lastMousePosition;
public:
explicit GLWidget(QWidget *parent = nullptr);
virtual ~GLWidget() override;
Terrain *terrain() const;
protected:
void initializeGL() override;
void paintGL() override;
void resizeGL(int width, int height) override;
void mouseMoveEvent(QMouseEvent *event) override;
void mousePressEvent(QMouseEvent *event) override;
void wheelEvent(QWheelEvent *event) override;
signals:
public slots:
private slots:
};
#endif // GLWIDGET_H