Wed, 17 Feb 2021 16:49:35 +0200
stuff
#pragma once #include "abstractshaderprogram.h" class GeometryPreview : public AbstractShaderProgram { public: struct Vertex { glm::vec3 point; glm::vec4 color; }; GeometryPreview(QObject* parent = nullptr); ~GeometryPreview(); QVector<Vertex>& modifyLinesBuffer(); QVector<Vertex>& modifyTrianglesBuffer(); private: QVector<Vertex> lines; QVector<Vertex> triangles; QOpenGLBuffer linesBuffer; QOpenGLBuffer trianglesBuffer; QOpenGLShader vertexShader; QOpenGLShader fragmentShader; std::optional<gl::ShaderProgram> program{std::nullopt}; QOpenGLVertexArrayObject vertexArrayObject; bool isInitialized = false; bool needRebuild = false; void initialize(); void rebuildIfNecessary(); void checkForGLErrors(); };