Tatooine
Public Member Functions | Private Attributes | List of all members
tatooine::gl::shader Class Reference

#include <shader.h>

Inheritance diagram for tatooine::gl::shader:
[legend]
Collaboration diagram for tatooine::gl::shader:
[legend]

Public Member Functions

 shader ()=default
 
 ~shader ()
 
template<typename T , typename... Args>
void add_stage (Args &&... args)
 
DLL_API void create ()
 
DLL_API void delete_shader ()
 
DLL_API void bind () const
 
DLL_API void unbind () const
 
DLL_API void add_uniform (const std::string &uniformVarName)
 
DLL_API void add_attribute (const std::string &attributeVarName)
 
DLL_API GLint uniform (const std::string &uniformVarName)
 
DLL_API GLint attribute (const std::string &attributeVarName)
 
DLL_API void set_uniform (const std::string &, GLfloat)
 
DLL_API void set_uniform (const std::string &, GLint)
 
DLL_API void set_uniform (const std::string &, GLuint)
 
DLL_API void set_uniform (const std::string &, GLboolean)
 
DLL_API void set_uniform (const std::string &, GLfloat, GLfloat)
 
DLL_API void set_uniform (const std::string &, GLfloat, GLfloat, GLfloat)
 
DLL_API void set_uniform (const std::string &, GLfloat, GLfloat, GLfloat, GLfloat)
 
DLL_API void set_uniform (const std::string &, std::array< GLfloat, 2 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLfloat, 3 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLfloat, 4 > const &data)
 
DLL_API void set_uniform (const std::string &, GLint, GLint)
 
DLL_API void set_uniform (const std::string &, GLint, GLint, GLint)
 
DLL_API void set_uniform (const std::string &, GLint, GLint, GLint, GLint)
 
DLL_API void set_uniform (const std::string &, std::array< GLint, 2 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLint, 3 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLint, 4 > const &data)
 
DLL_API void set_uniform (const std::string &, GLuint, GLuint)
 
DLL_API void set_uniform (const std::string &, GLuint, GLuint, GLuint)
 
DLL_API void set_uniform (const std::string &, GLuint, GLuint, GLuint, GLuint)
 
DLL_API void set_uniform (const std::string &, std::array< GLuint, 2 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLuint, 3 > const &data)
 
DLL_API void set_uniform (const std::string &, std::array< GLuint, 4 > const &data)
 
DLL_API void set_uniform (const std::string &, Vec2< GLfloat > const &)
 
DLL_API void set_uniform_vec2 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Vec2< GLint > const &)
 
DLL_API void set_uniform_vec2 (const std::string &, GLint const *)
 
DLL_API void set_uniform (const std::string &, Vec2< GLuint > const &)
 
DLL_API void set_uniform_vec2 (const std::string &, GLuint const *)
 
DLL_API void set_uniform (const std::string &, Vec3< GLfloat > const &)
 
DLL_API void set_uniform_vec3 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Vec3< GLint > const &)
 
DLL_API void set_uniform_vec3 (const std::string &, GLint const *)
 
DLL_API void set_uniform (const std::string &, Vec3< GLuint > const &)
 
DLL_API void set_uniform_vec3 (const std::string &, GLuint const *)
 
DLL_API void set_uniform (const std::string &, Vec4< GLfloat > const &)
 
DLL_API void set_uniform_vec4 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Vec4< GLint > const &)
 
DLL_API void set_uniform_vec4 (const std::string &, GLint const *)
 
DLL_API void set_uniform (const std::string &, Vec4< GLuint > const &)
 
DLL_API void set_uniform_vec4 (const std::string &, GLuint const *)
 
DLL_API void set_uniform (const std::string &, Mat2< GLfloat > const &)
 
DLL_API void set_uniform_mat2 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Mat3< GLfloat > const &)
 
DLL_API void set_uniform_mat3 (const std::string &, GLfloat const *)
 
DLL_API void set_uniform (const std::string &, Mat4< GLfloat > const &)
 
DLL_API void set_uniform_mat4 (const std::string &, GLfloat const *)
 
DLL_API std::optional< std::string > info_log ()
 
- Public Member Functions inherited from tatooine::gl::id_holder< GLuint >
 id_holder ()
 
 id_holder (GLuint _id)
 
 id_holder (id_holder const &other)=delete
 
 id_holder (id_holder &&other) noexcept
 
auto operator= (id_holder const &other) -> id_holder &=delete
 
auto operator= (id_holder &&other) noexcept -> id_holder &
 
 ~id_holder ()=default
 
auto id () const
 
void swap (id_holder &other)
 

Private Attributes

std::map< std::string, GLint > m_uniform_locations
 
std::map< std::string, GLint > m_attribute_locations
 
std::vector< shaderstagem_shader_stages
 
std::unordered_set< std::string > m_uniform_var_names
 
std::unordered_set< std::string > m_attribute_var_names
 
bool m_delete = true
 

Additional Inherited Members

- Static Public Attributes inherited from tatooine::gl::id_holder< GLuint >
static constexpr auto default_val
 
- Protected Member Functions inherited from tatooine::gl::id_holder< GLuint >
void set_id (GLuint id)
 
auto id_ptr ()
 
auto id_ref () -> auto &
 

Constructor & Destructor Documentation

◆ shader()

◆ ~shader()

tatooine::gl::shader::~shader ( )
inline

Member Function Documentation

◆ add_attribute()

DLL_API void tatooine::gl::shader::add_attribute ( const std::string &  attributeVarName)

◆ add_stage()

template<typename T , typename... Args>
void tatooine::gl::shader::add_stage ( Args &&...  args)
inline

◆ add_uniform()

DLL_API void tatooine::gl::shader::add_uniform ( const std::string &  uniformVarName)

◆ attribute()

DLL_API GLint tatooine::gl::shader::attribute ( const std::string &  attributeVarName)

◆ bind()

DLL_API void tatooine::gl::shader::bind ( ) const

◆ create()

DLL_API void tatooine::gl::shader::create ( )

◆ delete_shader()

DLL_API void tatooine::gl::shader::delete_shader ( )

◆ info_log()

DLL_API std::optional< std::string > tatooine::gl::shader::info_log ( )

◆ set_uniform() [1/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
GLboolean   
)

◆ set_uniform() [2/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
GLfloat   
)

◆ set_uniform() [3/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
GLfloat  ,
GLfloat   
)

◆ set_uniform() [4/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
GLfloat  ,
GLfloat  ,
GLfloat   
)

◆ set_uniform() [5/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
GLfloat  ,
GLfloat  ,
GLfloat  ,
GLfloat   
)

◆ set_uniform() [6/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
GLint   
)

◆ set_uniform() [7/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
GLint  ,
GLint   
)

◆ set_uniform() [8/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
GLint  ,
GLint  ,
GLint   
)

◆ set_uniform() [9/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
GLint  ,
GLint  ,
GLint  ,
GLint   
)

◆ set_uniform() [10/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
GLuint   
)

◆ set_uniform() [11/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
GLuint  ,
GLuint   
)

◆ set_uniform() [12/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
GLuint  ,
GLuint  ,
GLuint   
)

◆ set_uniform() [13/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
GLuint  ,
GLuint  ,
GLuint  ,
GLuint   
)

◆ set_uniform() [14/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
Mat2< GLfloat > const &   
)

◆ set_uniform() [15/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
Mat3< GLfloat > const &   
)

◆ set_uniform() [16/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
Mat4< GLfloat > const &   
)

◆ set_uniform() [17/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
std::array< GLfloat, 2 > const &  data 
)

◆ set_uniform() [18/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
std::array< GLfloat, 3 > const &  data 
)

◆ set_uniform() [19/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
std::array< GLfloat, 4 > const &  data 
)

◆ set_uniform() [20/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
std::array< GLint, 2 > const &  data 
)

◆ set_uniform() [21/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
std::array< GLint, 3 > const &  data 
)

◆ set_uniform() [22/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
std::array< GLint, 4 > const &  data 
)

◆ set_uniform() [23/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
std::array< GLuint, 2 > const &  data 
)

◆ set_uniform() [24/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
std::array< GLuint, 3 > const &  data 
)

◆ set_uniform() [25/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
std::array< GLuint, 4 > const &  data 
)

◆ set_uniform() [26/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
Vec2< GLfloat > const &   
)

◆ set_uniform() [27/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
Vec2< GLint > const &   
)

◆ set_uniform() [28/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
Vec2< GLuint > const &   
)

◆ set_uniform() [29/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
Vec3< GLfloat > const &   
)

◆ set_uniform() [30/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
Vec3< GLint > const &   
)

◆ set_uniform() [31/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
Vec3< GLuint > const &   
)

◆ set_uniform() [32/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
Vec4< GLfloat > const &   
)

◆ set_uniform() [33/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
Vec4< GLint > const &   
)

◆ set_uniform() [34/34]

DLL_API void tatooine::gl::shader::set_uniform ( const std::string &  ,
Vec4< GLuint > const &   
)

◆ set_uniform_mat2()

DLL_API void tatooine::gl::shader::set_uniform_mat2 ( const std::string &  ,
GLfloat const *   
)

◆ set_uniform_mat3()

DLL_API void tatooine::gl::shader::set_uniform_mat3 ( const std::string &  ,
GLfloat const *   
)

◆ set_uniform_mat4()

DLL_API void tatooine::gl::shader::set_uniform_mat4 ( const std::string &  ,
GLfloat const *   
)

◆ set_uniform_vec2() [1/3]

DLL_API void tatooine::gl::shader::set_uniform_vec2 ( const std::string &  ,
GLfloat const *   
)

◆ set_uniform_vec2() [2/3]

DLL_API void tatooine::gl::shader::set_uniform_vec2 ( const std::string &  ,
GLint const *   
)

◆ set_uniform_vec2() [3/3]

DLL_API void tatooine::gl::shader::set_uniform_vec2 ( const std::string &  ,
GLuint const *   
)

◆ set_uniform_vec3() [1/3]

DLL_API void tatooine::gl::shader::set_uniform_vec3 ( const std::string &  ,
GLfloat const *   
)

◆ set_uniform_vec3() [2/3]

DLL_API void tatooine::gl::shader::set_uniform_vec3 ( const std::string &  ,
GLint const *   
)

◆ set_uniform_vec3() [3/3]

DLL_API void tatooine::gl::shader::set_uniform_vec3 ( const std::string &  ,
GLuint const *   
)

◆ set_uniform_vec4() [1/3]

DLL_API void tatooine::gl::shader::set_uniform_vec4 ( const std::string &  ,
GLfloat const *   
)

◆ set_uniform_vec4() [2/3]

DLL_API void tatooine::gl::shader::set_uniform_vec4 ( const std::string &  ,
GLint const *   
)

◆ set_uniform_vec4() [3/3]

DLL_API void tatooine::gl::shader::set_uniform_vec4 ( const std::string &  ,
GLuint const *   
)

◆ unbind()

DLL_API void tatooine::gl::shader::unbind ( ) const

◆ uniform()

DLL_API GLint tatooine::gl::shader::uniform ( const std::string &  uniformVarName)

Member Data Documentation

◆ m_attribute_locations

std::map<std::string, GLint> tatooine::gl::shader::m_attribute_locations
private

◆ m_attribute_var_names

std::unordered_set<std::string> tatooine::gl::shader::m_attribute_var_names
private

◆ m_delete

bool tatooine::gl::shader::m_delete = true
private

◆ m_shader_stages

std::vector<shaderstage> tatooine::gl::shader::m_shader_stages
private

◆ m_uniform_locations

std::map<std::string, GLint> tatooine::gl::shader::m_uniform_locations
private

◆ m_uniform_var_names

std::unordered_set<std::string> tatooine::gl::shader::m_uniform_var_names
private

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