Class shader

Class Documentation

class legion::rendering::shader

Abstraction class of a shader program.

Public Functions

shader(const shader&) = delete
shader(shader&&) = default
shader() = default
shader &operator=(shader&&) = default
shader &operator=(const shader&) = delete
bool has_variant(id_type variantId) const
bool has_variant(const std::string &variant) const
void configure_variant(id_type variantId) const
void configure_variant(const std::string &variant) const
shader_variant &get_variant(id_type variantId)
shader_variant &get_variant(const std::string &variant)
const shader_variant &get_variant(id_type variantId) const
const shader_variant &get_variant(const std::string &variant) const
void bind()
GLuint get_uniform_block_index(const std::string &name) const
void bind_uniform_block(GLuint uniformBlockIndex, GLuint uniformBlockBinding) const
template<typename T>
inline uniform<T> get_uniform(const std::string &name)
template<typename T>
inline bool has_uniform(const std::string &name)
template<typename T>
inline uniform<T> get_uniform(id_type id)
template<typename T>
inline bool has_uniform(id_type id)
template<typename T>
inline uniform<T> get_uniform_with_location(GLint location)
template<typename T>
inline bool has_uniform_with_location(GLint location)
attribute get_attribute(const std::string &name)
attribute get_attribute(id_type id)

Public Members

std::string name
std::string path

Public Static Functions

static void release()

Friends

friend class ShaderCache
friend struct shader_handle