Shkyera Engine
Easy to use, game engine for Python
Loading...
Searching...
No Matches
shkyera::ShaderProgram Class Reference

#include <ShaderProgram.hpp>

Public Member Functions

 ShaderProgram ()
 
 ~ShaderProgram ()
 
void attachShader (const std::shared_ptr< Shader > &shader)
 
void link ()
 
void use ()
 
void stopUsing ()
 
void setUniform (const std::string &name, int value)
 
void setUniform (const std::string &name, float value)
 
void setUniform (const std::string &name, const glm::vec2 &value)
 
void setUniform (const std::string &name, const glm::vec3 &value)
 
void setUniform (const std::string &name, const glm::mat4 &value)
 

Private Member Functions

bool isInUse ()
 
GLint getUniformLocation (const std::string &name)
 

Private Attributes

GLuint _id
 
std::unordered_map< std::string, GLint_uniformLocationCache
 

Static Private Attributes

static std::stack< GLuint_shadersInUse {}
 

Constructor & Destructor Documentation

◆ ShaderProgram()

shkyera::ShaderProgram::ShaderProgram ( )

◆ ~ShaderProgram()

shkyera::ShaderProgram::~ShaderProgram ( )

Member Function Documentation

◆ attachShader()

void shkyera::ShaderProgram::attachShader ( const std::shared_ptr< Shader > &  shader)

◆ getUniformLocation()

GLint shkyera::ShaderProgram::getUniformLocation ( const std::string &  name)
private

◆ isInUse()

bool shkyera::ShaderProgram::isInUse ( )
private

◆ link()

void shkyera::ShaderProgram::link ( )

◆ setUniform() [1/5]

void shkyera::ShaderProgram::setUniform ( const std::string &  name,
const glm::mat4 &  value 
)

◆ setUniform() [2/5]

void shkyera::ShaderProgram::setUniform ( const std::string &  name,
const glm::vec2 &  value 
)

◆ setUniform() [3/5]

void shkyera::ShaderProgram::setUniform ( const std::string &  name,
const glm::vec3 &  value 
)

◆ setUniform() [4/5]

void shkyera::ShaderProgram::setUniform ( const std::string &  name,
float  value 
)

◆ setUniform() [5/5]

void shkyera::ShaderProgram::setUniform ( const std::string &  name,
int  value 
)

◆ stopUsing()

void shkyera::ShaderProgram::stopUsing ( )

◆ use()

void shkyera::ShaderProgram::use ( )

Member Data Documentation

◆ _id

GLuint shkyera::ShaderProgram::_id
private

◆ _shadersInUse

std::stack<GLuint> shkyera::ShaderProgram::_shadersInUse {}
inlinestaticprivate

◆ _uniformLocationCache

std::unordered_map<std::string, GLint> shkyera::ShaderProgram::_uniformLocationCache
private

The documentation for this class was generated from the following files: