src/gl/gridprogram.h

changeset 216
c7241f504117
parent 156
65b75beed7e0
child 217
6d95c1a41e6e
equal deleted inserted replaced
215:34c6e7bc4ee1 216:c7241f504117
18 18
19 #pragma once 19 #pragma once
20 #include "basicshaderprogram.h" 20 #include "basicshaderprogram.h"
21 #include "common.h" 21 #include "common.h"
22 22
23 class GridProgram : public AbstractBasicShaderProgram 23 class GridLayer final : public RenderLayer
24 { 24 {
25 Q_OBJECT 25 BasicShader shader;
26 glm::vec4 gridColor = {1.0f, 1.0f, 1.0f, 0.75f};
27 bool isInitialized = false;
26 public: 28 public:
27 GridProgram(QObject* parent = nullptr);
28 void setGridMatrix(const glm::mat4& newGridMatrix); 29 void setGridMatrix(const glm::mat4& newGridMatrix);
29 void setGridColor(const QColor& newGridColor); 30 void setGridColor(const QColor& newGridColor);
30 protected: 31 protected:
31 const char* vertexShaderSource() const override; 32 void initializeGL() override;
32 const char* fragmentShaderSource() const override; 33 void paintGL() override;
33 const void* vertexData() const override; 34 void mvpMatrixChanged(const glm::mat4& mvpMatrix) override;
34 int vertexSize() const override;
35 int vertexCount() const override;
36 void setupVertexArrays() override;
37 GLenum drawMode() const override;
38 QOpenGLBuffer::UsagePattern usagePattern() const override;
39 private:
40 glm::vec4 gridColor = {1.0f, 1.0f, 1.0f, 0.75f};
41 std::vector<glm::vec2> gridData;
42 }; 35 };

mercurial