Tue, 27 Jul 2021 16:29:00 +0300
Add vertex rendering
118 | 1 | #ifndef VERTEXPROGRAM_H |
2 | #define VERTEXPROGRAM_H | |
3 | #include "basicshaderprogram.h" | |
4 | class Document; | |
5 | ||
6 | class VertexProgram : public AbstractBasicShaderProgram | |
7 | { | |
8 | public: | |
9 | struct Vertex | |
10 | { | |
11 | glm::vec3 position; | |
12 | glm::vec3 color; | |
13 | }; | |
14 | VertexProgram(QObject* parent = nullptr); | |
15 | void build(const Document* document); | |
16 | protected: | |
17 | const char* vertexShaderSource() const override; | |
18 | const char* fragmentShaderSource() const override; | |
19 | const void* vertexData() const override; | |
20 | int vertexSize() const override; | |
21 | int vertexCount() const override; | |
22 | void setupVertexArrays() override; | |
23 | GLenum drawMode() const override; | |
24 | QOpenGLBuffer::UsagePattern usagePattern() const override; | |
25 | private: | |
26 | std::vector<Vertex> data; | |
27 | }; | |
28 | ||
29 | #endif // VERTEXPROGRAM_H |