Core::Rendering::Shader

Shader Management in Unified Engine

The Shader class in the Unified Engine provides a high-level interface for working with GLSL shaders. It allows for easy loading, linking, and configuration of shaders for your rendering pipeline.

Shader Class

Initialization & Destructor

  • Constructor: Initialize the Shader class with optional vertex, fragment, and geometry files.

Shader(const char* vertexFile = nullptr, const char* fragmentFile = nullptr, const char* geometryFile = nullptr);
  • Destructor: Handles proper cleanup.

~Shader();

Program Management

  • Using & Unbinding Shaders:

    • Use a shader for rendering.

    • Unbind a shader after rendering.

    void use();
    void unbind();

Uniform Setters

  • Integer & Float: Setting integer and float uniforms in the shader.

void set1i(GLint value, const GLchar* name);
void set1f(GLfloat value, const GLchar* name);
  • Vectors: Setting vector uniforms (vec2, vec3, vec4).

void setVec2f(glm::fvec2 value, const GLchar* name);
void setVec3f(glm::fvec3 value, const GLchar* name);
void setVec4f(glm::fvec4 value, const GLchar* name);
  • Matrices: Setting matrix uniforms (mat3, mat4).

void setMat3fv(glm::mat3 value, const GLchar* name, GLboolean transpose = GL_FALSE);
void setMat4fv(glm::mat4 value, const GLchar* name, GLboolean transpose = GL_FALSE);

Last updated