Wed, 22 Jan 2020 00:23:29 +0200
at least VAOs work now
17 | 1 | #pragma once |
2 | #include <QOpenGLWidget> | |
3 | #include <QOpenGLFunctions> | |
4 | #include <QQuaternion> | |
26 | 5 | #include <QOpenGLVertexArrayObject> |
6 | #include <QOpenGLBuffer> | |
7 | #include <QOpenGLShader> | |
8 | #include <QOpenGLShaderProgram> | |
17 | 9 | #include "main.h" |
18 | 10 | #include "gl/common.h" |
21 | 11 | #include "gl/compiler.h" |
17 | 12 | |
13 | class PartRenderer : public QOpenGLWidget, protected QOpenGLFunctions | |
14 | { | |
21 | 15 | Q_OBJECT |
17 | 16 | public: |
26 | 17 | PartRenderer(Model* model, DocumentManager* documents, const ColorTable& colorTable, QWidget* parent = nullptr); |
18 | ~PartRenderer() override; | |
17 | 19 | protected: |
20 | void initializeGL() override; | |
21 | void resizeGL(int width, int height) override; | |
22 | void paintGL() override; | |
23 | void mouseMoveEvent(QMouseEvent* event) override; | |
21 | 24 | void setCompiler(gl::Compiler* compiler); |
18 | 25 | private slots: |
26 | void setRenderStyle(const gl::RenderStyle newStyle); | |
17 | 27 | private: |
22
6da867fa5429
commit work on GL rendering
Teemu Piippo <teemu@hecknology.net>
parents:
21
diff
changeset
|
28 | void renderScene(); |
21 | 29 | Model* const model; |
30 | DocumentManager* const documents; | |
26 | 31 | const ColorTable& colorTable; |
17 | 32 | QPointF lastMousePosition; |
22
6da867fa5429
commit work on GL rendering
Teemu Piippo <teemu@hecknology.net>
parents:
21
diff
changeset
|
33 | QQuaternion rotation; |
6da867fa5429
commit work on GL rendering
Teemu Piippo <teemu@hecknology.net>
parents:
21
diff
changeset
|
34 | gl::Compiler* compiler; |
18 | 35 | gl::RenderStyle renderStyle = gl::RenderStyle::Normal; |
26 | 36 | struct |
37 | { | |
38 | QOpenGLShaderProgram* program = nullptr; | |
39 | QOpenGLBuffer buffer{QOpenGLBuffer::VertexBuffer}; | |
40 | QOpenGLVertexArrayObject vertexArray; | |
41 | } objects; | |
22
6da867fa5429
commit work on GL rendering
Teemu Piippo <teemu@hecknology.net>
parents:
21
diff
changeset
|
42 | bool initialized = false; |
17 | 43 | void initializeLighting(); |
26 | 44 | void renderVao(const gl::ArrayClass arrayClass); |
45 | void checkForGLErrors(); | |
17 | 46 | }; |