6 #include <glm/gtc/type_ptr.hpp>
8 #include "BAREErrors.hpp"
12 void ShaderProgram::setUniform(const std::string uniform, T* data, unsigned int num) {
13 throwFatalError(BAREError::GLSL_PROGRAM_FAILURE, "Tried calling setUniform with unsupported type: " + demangle(typeid(*data).name()));
17 void ShaderProgram::setUniformMatrix(const std::string uniform, bool transpose, T* data, unsigned int num) {
18 throwFatalError(BAREError::GLSL_PROGRAM_FAILURE, "Tried calling setUniformMatrix with unsupported type: " + demangle(typeid(*data).name()));
21 // Template specialization declarations
24 void ShaderProgram::setUniform<int>(const std::string uniform, int* data, unsigned int num);
26 void ShaderProgram::setUniform<unsigned int>(const std::string uniform, unsigned int* data, unsigned int num);
28 void ShaderProgram::setUniform<float>(const std::string uniform, float* data, unsigned int num);
30 void ShaderProgram::setUniform<glm::vec2>(const std::string uniform, glm::vec2* data, unsigned int num);
32 void ShaderProgram::setUniform<glm::vec3>(const std::string uniform, glm::vec3* data, unsigned int num);
34 void ShaderProgram::setUniform<glm::vec4>(const std::string uniform, glm::vec4* data, unsigned int num) ;
36 void ShaderProgram::setUniform<glm::ivec2>(const std::string uniform, glm::ivec2* data, unsigned int num) ;
38 void ShaderProgram::setUniform<glm::ivec3>(const std::string uniform, glm::ivec3* data, unsigned int num);
40 void ShaderProgram::setUniform<glm::ivec4>(const std::string uniform, glm::ivec4* data, unsigned int num) ;
42 void ShaderProgram::setUniformMatrix<glm::mat4>(const std::string uniform, bool transpose, glm::mat4* data, unsigned int num);