src/gl/compiler.h

changeset 291
42b4953dff85
parent 290
0fd926ebb03b
child 309
d862721d19a3
equal deleted inserted replaced
290:0fd926ebb03b 291:42b4953dff85
15 * You should have received a copy of the GNU General Public License 15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */ 17 */
18 18
19 #pragma once 19 #pragma once
20 #include <GL/glew.h>
20 #include <glm/gtc/type_ptr.hpp> 21 #include <glm/gtc/type_ptr.hpp>
21 #include <QOpenGLVertexArrayObject> 22 #include <QOpenGLVertexArrayObject>
22 #include <QOpenGLBuffer> 23 #include <QOpenGLBuffer>
23 #include <QOpenGLShaderProgram> 24 #include <QOpenGLShaderProgram>
24 #include "src/basics.h" 25 #include "src/basics.h"
87 void setShaderUniform(gl::ModelShaders* shaders, const char* uniformName, Ts&&... args) 88 void setShaderUniform(gl::ModelShaders* shaders, const char* uniformName, Ts&&... args)
88 { 89 {
89 for (gl::ModelShaders::ShaderObject& shader : shaders->shaderObjects) 90 for (gl::ModelShaders::ShaderObject& shader : shaders->shaderObjects)
90 { 91 {
91 shader.program->bind(); 92 shader.program->bind();
92 const int location = glfunc().glGetUniformLocation(shader.program->programId(), uniformName); 93 const int location = glGetUniformLocation(shader.program->programId(), uniformName);
93 if (location != -1) { 94 if (location != -1) {
94 shader.program->setUniformValue(location, std::forward<Ts>(args)...); 95 shader.program->setUniformValue(location, std::forward<Ts>(args)...);
95 } 96 }
96 shader.program->release(); 97 shader.program->release();
97 } 98 }

mercurial