33 #include <unordered_map> 52 ShaderID(GLuint shader0,
const std::string& name0)
76 ShaderCore(GLuint program,
const std::vector<ShaderID>& shaderIDs);
113 std::make_pair(name, glGetUniformLocation(
program_, name.c_str())));
131 void setUniform1iv(
const std::string& name, GLsizei count,
const GLint* value)
const {
151 void setUniform1fv(
const std::string& name, GLsizei count,
const GLfloat* value)
const {
161 void setUniform2fv(
const std::string& name, GLsizei count,
const GLfloat* value)
const {
171 void setUniform3fv(
const std::string& name, GLsizei count,
const GLfloat* value)
const {
181 void setUniform4fv(
const std::string& name, GLsizei count,
const GLfloat* value)
const {
194 glUniformMatrix2fv(
getUniformLoc(name), count, GL_FALSE, value);
204 glUniformMatrix3fv(
getUniformLoc(name), count, GL_FALSE, value);
214 glUniformMatrix4fv(
getUniformLoc(name), count, GL_FALSE, value);
A core to set a shader program to be applied to subsequent nodes.
void setUniform4fv(const std::string &name, GLsizei count, const GLfloat *value) const
std::unordered_map< std::string, GLint > uniformLocMap_
GLint getUniformLoc(const std::string &name) const
GLuint getProgram() const
virtual void render(RenderState *renderState)
void setUniformMatrix4fv(const std::string &name, GLsizei count, const GLfloat *value) const
ShaderID(GLuint shader0, const std::string &name0)
void setUniformMatrix2fv(const std::string &name, GLsizei count, const GLfloat *value) const
Base class for all cores (abstract).
void setUniformMatrix3fv(const std::string &name, GLsizei count, const GLfloat *value) const
void setUniform1iv(const std::string &name, GLsizei count, const GLint *value) const
ShaderCore * shaderCoreOld_
Local header file for GLEW library.
void setUniform1f(const std::string &name, GLfloat value) const
void setUniform1i(const std::string &name, GLint value) const
ShaderCore(GLuint program, const std::vector< ShaderID > &shaderIDs)
std::vector< ShaderID > shaderIDs_
#define SCG_SAVE_AND_SWITCH_PROGRAM(_program, _programOld)
#define SCG_RESTORE_PROGRAM(_program, _programOld)
virtual void renderPost(RenderState *renderState)
void setUniform3fv(const std::string &name, GLsizei count, const GLfloat *value) const
The central render state that collects information about the current shader, transformations,...
void setUniform1fv(const std::string &name, GLsizei count, const GLfloat *value) const
Internal definitions required by most classes.
void setUniform2fv(const std::string &name, GLsizei count, const GLfloat *value) const
Base class for all cores (abstract).
void checkCompileError_(const ShaderID &shaderID) const
static ShaderCoreSP create(GLuint program, const std::vector< ShaderID > &shaderIDs)
A shader ID to identify shaders in error messages. An arbitrary name can be added to the OpnGL shader...
void checkLinkError_(GLuint program) const