25 #include "src/basics.h" |
25 #include "src/basics.h" |
26 #include "src/types/boundingbox.h" |
26 #include "src/types/boundingbox.h" |
27 #include "src/model.h" |
27 #include "src/model.h" |
28 #include "src/gl/common.h" |
28 #include "src/gl/common.h" |
29 |
29 |
30 class Model; |
|
31 class DocumentManager; |
30 class DocumentManager; |
32 |
31 |
33 namespace gl |
32 namespace gl |
34 { |
33 { |
35 // VAO names |
34 // VAO names |
78 DocumentManager* context, |
77 DocumentManager* context, |
79 const RenderPreferences& preferences); |
78 const RenderPreferences& preferences); |
80 void initializeModelShaders(ModelShaders* modelShaders); |
79 void initializeModelShaders(ModelShaders* modelShaders); |
81 void bindModelShaderVertexArray(gl::ModelShaders* shaders, gl::ArrayClass arrayClass); |
80 void bindModelShaderVertexArray(gl::ModelShaders* shaders, gl::ArrayClass arrayClass); |
82 void releaseModelShaderVertexArray(gl::ModelShaders* shaders, gl::ArrayClass arrayClass); |
81 void releaseModelShaderVertexArray(gl::ModelShaders* shaders, gl::ArrayClass arrayClass); |
83 void setModelShaderSelectedObjects(gl::ModelShaders* shaders, const QSet<ElementId>& ids); |
82 //void setModelShaderSelectedObjects(gl::ModelShaders* shaders, const QSet<ElementId>& ids); |
84 std::size_t vertexCount(const ModelShaders *shaders, gl::ArrayClass arrayClass); |
83 std::size_t vertexCount(const ModelShaders *shaders, gl::ArrayClass arrayClass); |
85 ElementId idFromUcharColor(const std::array<GLubyte, 3>& data); |
84 int idFromUcharColor(const std::array<GLubyte, 3>& data); |
86 |
85 |
87 template<typename... Ts> |
86 template<typename... Ts> |
88 void setShaderUniform(gl::ModelShaders* shaders, const char* uniformName, Ts&&... args) |
87 void setShaderUniform(gl::ModelShaders* shaders, const char* uniformName, Ts&&... args) |
89 { |
88 { |
90 for (gl::ModelShaders::ShaderObject& shader : shaders->shaderObjects) |
89 for (gl::ModelShaders::ShaderObject& shader : shaders->shaderObjects) |