src/gl/compiler.h

changeset 210
232e7634cc8a
parent 206
654661eab7f3
child 217
6d95c1a41e6e
equal deleted inserted replaced
209:c93e4a1eaadb 210:232e7634cc8a
30 class Model; 30 class Model;
31 class DocumentManager; 31 class DocumentManager;
32 32
33 namespace gl 33 namespace gl
34 { 34 {
35 // VAO names
36 enum class ArrayClass : std::uint8_t
37 {
38 Lines,
39 Triangles,
40 Quads,
41 ConditionalLines
42 };
43
44 constexpr ArrayClass ARRAY_CLASSES[] = {
45 ArrayClass::Lines,
46 ArrayClass::Triangles,
47 ArrayClass::Quads,
48 ArrayClass::ConditionalLines,
49 };
50 constexpr int NUM_ARRAY_CLASSES = countof(ARRAY_CLASSES);
51
35 struct ModelShaders 52 struct ModelShaders
36 { 53 {
37 struct Vertex 54 struct Vertex
38 { 55 {
39 glm::vec3 position; 56 glm::vec3 position;
49 QOpenGLShaderProgram* pickSceneProgram = nullptr; 66 QOpenGLShaderProgram* pickSceneProgram = nullptr;
50 QOpenGLBuffer buffer{QOpenGLBuffer::VertexBuffer}; 67 QOpenGLBuffer buffer{QOpenGLBuffer::VertexBuffer};
51 QOpenGLVertexArrayObject vertexArray; 68 QOpenGLVertexArrayObject vertexArray;
52 std::vector<Vertex> cachedData; 69 std::vector<Vertex> cachedData;
53 std::size_t vertexCount; 70 std::size_t vertexCount;
54 } shaderObjects[gl::NUM_POLYGON_TYPES]; 71 } shaderObjects[gl::NUM_ARRAY_CLASSES];
55 }; 72 };
56 73
57 void build( 74 void build(
58 ModelShaders* shaders, 75 ModelShaders* shaders,
59 Model *model, 76 Model *model,

mercurial