src/gl/compiler.h

changeset 200
ca23936b455b
parent 189
815fbaae9cb2
child 205
1a4342d80de7
equal deleted inserted replaced
199:6988973515d2 200:ca23936b455b
25 #include <QSet> 25 #include <QSet>
26 #include <QOpenGLVertexArrayObject> 26 #include <QOpenGLVertexArrayObject>
27 #include <QOpenGLBuffer> 27 #include <QOpenGLBuffer>
28 #include <QOpenGLShaderProgram> 28 #include <QOpenGLShaderProgram>
29 #include <QOpenGLExtraFunctions> 29 #include <QOpenGLExtraFunctions>
30 #include "model.h"
30 31
31 class Model; 32 class Model;
32 class DocumentManager; 33 class DocumentManager;
33 34
34 namespace gl 35 namespace gl
62 DocumentManager* context, 63 DocumentManager* context,
63 const RenderPreferences& preferences); 64 const RenderPreferences& preferences);
64 void initializeModelShaders(ModelShaders* modelShaders); 65 void initializeModelShaders(ModelShaders* modelShaders);
65 void bindModelShaderVertexArray(gl::ModelShaders* shaders, gl::ArrayClass arrayClass); 66 void bindModelShaderVertexArray(gl::ModelShaders* shaders, gl::ArrayClass arrayClass);
66 void releaseModelShaderVertexArray(gl::ModelShaders* shaders, gl::ArrayClass arrayClass); 67 void releaseModelShaderVertexArray(gl::ModelShaders* shaders, gl::ArrayClass arrayClass);
67 void setModelShaderSelectedObjects(gl::ModelShaders* shaders, const QSet<ldraw::id_t>& ids); 68 void setModelShaderSelectedObjects(gl::ModelShaders* shaders, const QSet<ModelId>& ids);
68 std::size_t vertexCount(const ModelShaders *shaders, gl::ArrayClass arrayClass); 69 std::size_t vertexCount(const ModelShaders *shaders, gl::ArrayClass arrayClass);
69 ldraw::id_t idFromColor(const std::array<GLubyte, 3>& data); 70 ModelId idFromColor(const std::array<GLubyte, 3>& data);
70 71
71 template<typename T> 72 template<typename T>
72 void setShaderUniform(gl::ModelShaders* shaders, const char* uniformName, T&& value) 73 void setShaderUniform(gl::ModelShaders* shaders, const char* uniformName, T&& value)
73 { 74 {
74 for (gl::ModelShaders::ShaderObject& shader : shaders->shaderObjects) 75 for (gl::ModelShaders::ShaderObject& shader : shaders->shaderObjects)

mercurial