10 #ifndef SHADER_H_DEFINED
11 #define SHADER_H_DEFINED
17 #include "renderWindow.h"
18 #include <unordered_map>
34 ShaderProgramSource(std::string
const& vertex, std::string
const& frag) : VertexSource(vertex), FragmentSource(frag)
45 unsigned int m_shaderID;
47 unsigned int CreateShader(std::string
const& vertexShader, std::string
const& fragmentShader);
49 unsigned int CompileShader(
unsigned int type,
const std::string& source);
53 std::unordered_map<std::string, int> m_UniformLocationCache;
56 int getUniformLocation(std::string
const& name);
62 Shader(
const std::string& filePath);
64 Shader(
const char* sourceCode);
68 void makeNewShader(std::string
const& filePath);
74 void setShader(
int shaderID);
76 void setUniform1f(std::string
const& name,
float value);
78 void setUniform2f(std::string
const& name,
float v0,
float v1);
80 void setUniform3f(std::string
const& name,
float v0,
float v1,
float v2);
82 void setUniform4f(std::string
const& name,
float v0,
float v1,
float v2,
float v3);
84 void setUniform1i(std::string
const& name,
int value);