From e73ae48d89e2a96a0b1c40b8490791c8898fbcbf Mon Sep 17 00:00:00 2001 From: EIntemporel Date: Mon, 14 Nov 2022 23:16:44 +0100 Subject: [PATCH] Add new uniform type for shader --- src/opengl/shader.cpp | 12 ++++++++++++ src/opengl/shader.hpp | 2 ++ 2 files changed, 14 insertions(+) diff --git a/src/opengl/shader.cpp b/src/opengl/shader.cpp index f6aa48cc..9bc505cb 100755 --- a/src/opengl/shader.cpp +++ b/src/opengl/shader.cpp @@ -278,6 +278,14 @@ namespace OpenGL gl.uniform3fv (loc, value.size(), glm::value_ptr(value[0])); } + void use_program::uniform(std::string const& name, std::vector const& value) + { + GLuint loc = uniform_location(name); + if (loc < 0) + return; + + gl.uniform4fv(loc, value.size(), glm::value_ptr(value[0])); + } void use_program::uniform_chunk_textures (std::string const& name, std::array, 4>, 256> const& value) { GLuint loc = uniform_location (name); @@ -290,6 +298,10 @@ namespace OpenGL { gl.uniform3fv (pos, value.size(),glm::value_ptr(value[0])); } + void use_program::uniform(GLint pos, std::vector const& value) + { + gl.uniform4fv(pos, value.size(), glm::value_ptr(value[0])); + } void use_program::uniform (std::string const& name, glm::vec2 const& value) { GLuint loc = uniform_location (name); diff --git a/src/opengl/shader.hpp b/src/opengl/shader.hpp index 76998401..780efbe7 100755 --- a/src/opengl/shader.hpp +++ b/src/opengl/shader.hpp @@ -106,6 +106,8 @@ namespace OpenGL void uniform (GLint pos, bool); void uniform (std::string const& name, std::vector const& value); void uniform (GLint pos, std::vector const& value); + void uniform(std::string const& name, std::vector const& value); + void uniform(GLint pos, std::vector const& value); void uniform (std::string const& name, glm::vec2 const&); void uniform (GLint pos, glm::vec2 const&); void uniform (std::string const& name, glm::vec3 const&);