src/gl/vertexprogram.h

changeset 296
38f6fad61bad
parent 295
4241d948af28
child 297
bc92f97498f7
equal deleted inserted replaced
295:4241d948af28 296:38f6fad61bad
1 #ifndef VERTEXPROGRAM_H
2 #define VERTEXPROGRAM_H
3 #include "basicshaderprogram.h"
4 class VertexMap;
5
6 class VertexProgram : public AbstractBasicShaderProgram
7 {
8 public:
9 enum FragmentStyle
10 {
11 Normal,
12 Id
13 };
14 struct Vertex
15 {
16 glm::vec3 position;
17 glm::vec3 color;
18 };
19 VertexProgram(QObject* parent = nullptr);
20 void build(const VertexMap* document);
21 protected:
22 const char* vertexShaderSource() const override;
23 const char* fragmentShaderSource() const override;
24 const void* vertexData() const override;
25 int vertexSize() const override;
26 int vertexCount() const override;
27 void setupVertexArrays() override;
28 GLenum drawMode() const override;
29 QOpenGLBuffer::UsagePattern usagePattern() const override;
30 void setFragmentStyle(FragmentStyle newFragmentStyle);
31 private:
32 std::vector<Vertex> data;
33 FragmentStyle fragmentStyle = Normal;
34 };
35
36 #endif // VERTEXPROGRAM_H

mercurial