src/gl/partrenderer.h

Sun, 19 Jan 2020 14:25:57 +0200

author
Teemu Piippo <teemu@hecknology.net>
date
Sun, 19 Jan 2020 14:25:57 +0200
changeset 25
6de5ac1fb471
parent 22
6da867fa5429
child 26
3a9e761e4faa
permissions
-rw-r--r--

added debug and release to hgignore

17
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1 #pragma once
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
2 #include <QOpenGLWidget>
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
3 #include <QOpenGLFunctions>
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
4 #include <QQuaternion>
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
5 #include "main.h"
18
Teemu Piippo <teemu@hecknology.net>
parents: 17
diff changeset
6 #include "gl/common.h"
21
Teemu Piippo <teemu@hecknology.net>
parents: 18
diff changeset
7 #include "gl/compiler.h"
17
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
8
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
9 class PartRenderer : public QOpenGLWidget, protected QOpenGLFunctions
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
10 {
21
Teemu Piippo <teemu@hecknology.net>
parents: 18
diff changeset
11 Q_OBJECT
17
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
12 public:
21
Teemu Piippo <teemu@hecknology.net>
parents: 18
diff changeset
13 PartRenderer(Model* model, DocumentManager* documents, QWidget* parent = nullptr);
17
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
14 protected:
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
15 void initializeGL() override;
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
16 void resizeGL(int width, int height) override;
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
17 void paintGL() override;
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
18 void mouseMoveEvent(QMouseEvent* event) override;
21
Teemu Piippo <teemu@hecknology.net>
parents: 18
diff changeset
19 void setCompiler(gl::Compiler* compiler);
18
Teemu Piippo <teemu@hecknology.net>
parents: 17
diff changeset
20 private slots:
Teemu Piippo <teemu@hecknology.net>
parents: 17
diff changeset
21 void setRenderStyle(const gl::RenderStyle newStyle);
17
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
22 private:
22
6da867fa5429 commit work on GL rendering
Teemu Piippo <teemu@hecknology.net>
parents: 21
diff changeset
23 void renderScene();
21
Teemu Piippo <teemu@hecknology.net>
parents: 18
diff changeset
24 Model* const model;
Teemu Piippo <teemu@hecknology.net>
parents: 18
diff changeset
25 DocumentManager* const documents;
17
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
26 QPointF lastMousePosition;
22
6da867fa5429 commit work on GL rendering
Teemu Piippo <teemu@hecknology.net>
parents: 21
diff changeset
27 QQuaternion rotation;
6da867fa5429 commit work on GL rendering
Teemu Piippo <teemu@hecknology.net>
parents: 21
diff changeset
28 gl::Compiler* compiler;
18
Teemu Piippo <teemu@hecknology.net>
parents: 17
diff changeset
29 gl::RenderStyle renderStyle = gl::RenderStyle::Normal;
22
6da867fa5429 commit work on GL rendering
Teemu Piippo <teemu@hecknology.net>
parents: 21
diff changeset
30 bool initialized = false;
17
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
31 void initializeLighting();
a5111f4e6412 added teapot rendering
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
32 };

mercurial