src/gl/geometrypreview.h

changeset 102
9f435f66bd0c
equal deleted inserted replaced
101:910890292639 102:9f435f66bd0c
1 #pragma once
2 #include "abstractshaderprogram.h"
3
4 class GeometryPreview : public AbstractShaderProgram
5 {
6 public:
7 struct Vertex
8 {
9 glm::vec3 point;
10 glm::vec4 color;
11 };
12 GeometryPreview(QObject* parent = nullptr);
13 ~GeometryPreview();
14 QVector<Vertex>& modifyLinesBuffer();
15 QVector<Vertex>& modifyTrianglesBuffer();
16 private:
17 QVector<Vertex> lines;
18 QVector<Vertex> triangles;
19 QOpenGLBuffer linesBuffer;
20 QOpenGLBuffer trianglesBuffer;
21 QOpenGLShader vertexShader;
22 QOpenGLShader fragmentShader;
23 std::optional<gl::ShaderProgram> program{std::nullopt};
24 QOpenGLVertexArrayObject vertexArrayObject;
25 bool isInitialized = false;
26 bool needRebuild = false;
27 void initialize();
28 void rebuildIfNecessary();
29 void checkForGLErrors();
30 };

mercurial