X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fcanvas.h;h=7fa80c8f163bca4f09673f5373b1e81259102553;hb=2e049875e7c35d10bd9724090abc2fe2ed5ac257;hp=4dae29891c0c3e60d14b9223b6668141dc9a65db;hpb=5dd213695da2eb22219ac5143aa8b5cfe7c89559;p=fstl diff --git a/src/canvas.h b/src/canvas.h index 4dae298..7fa80c8 100644 --- a/src/canvas.h +++ b/src/canvas.h @@ -1,55 +1,55 @@ #ifndef CANVAS_H #define CANVAS_H -#include -#include -#include -#include -#include -#include +#include +#include +#include class GLMesh; class Mesh; class Backdrop; -class Canvas : public QGLWidget, protected QGLFunctions +class Canvas : public QOpenGLWidget, protected QOpenGLFunctions { Q_OBJECT public: - Canvas(const QGLFormat& format, QWidget* parent=0); - - void initializeGL(); - void paintEvent(QPaintEvent* event); + explicit Canvas(const QSurfaceFormat& format, QWidget* parent=0); ~Canvas(); void view_orthographic(); void view_perspective(); + void draw_shaded(); + void draw_wireframe(); public slots: void set_status(const QString& s); void clear_status(); void load_mesh(Mesh* m, bool is_reload); - protected: - void mousePressEvent(QMouseEvent* event); - void mouseReleaseEvent(QMouseEvent* event); - void mouseMoveEvent(QMouseEvent* event); - void wheelEvent(QWheelEvent* event); - void resizeGL(int width, int height); - void set_perspective(float p); + void paintGL() override; + void initializeGL() override; + void resizeGL(int width, int height) override; + + void mousePressEvent(QMouseEvent* event) override; + void mouseReleaseEvent(QMouseEvent* event) override; + void mouseMoveEvent(QMouseEvent* event) override; + void wheelEvent(QWheelEvent* event) override; + + void set_perspective(float p); + void set_drawMode(int mode); void view_anim(float v); - private: void draw_mesh(); QMatrix4x4 transform_matrix() const; QMatrix4x4 view_matrix() const; - QGLShaderProgram mesh_shader; - QGLShaderProgram quad_shader; + QOpenGLShaderProgram mesh_shader; + QOpenGLShaderProgram mesh_wireframe_shader; + QOpenGLShaderProgram quad_shader; GLMesh* mesh; Backdrop* backdrop; @@ -61,7 +61,8 @@ private: float yaw; float perspective; - Q_PROPERTY(float perspective WRITE set_perspective); + int drawMode; + Q_PROPERTY(float perspective MEMBER perspective WRITE set_perspective); QPropertyAnimation anim; QPoint mouse_pos;