1#ifndef TATOOINE_GL_SHADER_H
2#define TATOOINE_GL_SHADER_H
9#include <unordered_set>
33 template <
typename T,
typename... Args>
45 DLL_API GLint
uniform(
const std::string& uniformVarName);
46 DLL_API GLint
attribute(
const std::string& attributeVarName);
53 DLL_API
void set_uniform(
const std::string&, GLfloat, GLfloat);
54 DLL_API
void set_uniform(
const std::string&, GLfloat, GLfloat, GLfloat);
55 DLL_API
void set_uniform(
const std::string&, GLfloat, GLfloat, GLfloat,
59 std::array<GLfloat, 2>
const& data);
61 std::array<GLfloat, 3>
const& data);
63 std::array<GLfloat, 4>
const& data);
66 DLL_API
void set_uniform(
const std::string&, GLint, GLint, GLint);
67 DLL_API
void set_uniform(
const std::string&, GLint, GLint, GLint, GLint);
70 std::array<GLint, 2>
const& data);
72 std::array<GLint, 3>
const& data);
74 std::array<GLint, 4>
const& data);
81 std::array<GLuint, 2>
const& data);
83 std::array<GLuint, 3>
const& data);
85 std::array<GLuint, 4>
const& data);
DLL_API void set_uniform_vec4(const std::string &, GLint const *)
DLL_API void set_uniform_vec3(const std::string &, GLuint const *)
DLL_API void set_uniform(const std::string &, Vec2< GLuint > const &)
DLL_API void set_uniform_vec3(const std::string &, GLfloat const *)
~shader()
Definition: shader.h:27
std::vector< shaderstage > m_shader_stages
Definition: shader.h:120
DLL_API std::optional< std::string > info_log()
DLL_API void set_uniform(const std::string &, Mat2< GLfloat > const &)
DLL_API void set_uniform(const std::string &, GLfloat)
DLL_API void set_uniform(const std::string &, Vec2< GLint > const &)
DLL_API void set_uniform_vec3(const std::string &, GLint const *)
DLL_API void bind() const
DLL_API void set_uniform(const std::string &, GLfloat, GLfloat, GLfloat)
DLL_API GLint attribute(const std::string &attributeVarName)
DLL_API void set_uniform(const std::string &, std::array< GLint, 4 > const &data)
DLL_API void add_attribute(const std::string &attributeVarName)
DLL_API void set_uniform(const std::string &, std::array< GLint, 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 &, Vec3< GLfloat > const &)
DLL_API void set_uniform(const std::string &, std::array< GLfloat, 2 > const &data)
DLL_API void set_uniform(const std::string &, std::array< GLuint, 2 > const &data)
DLL_API void set_uniform_mat4(const std::string &, GLfloat const *)
DLL_API void add_uniform(const std::string &uniformVarName)
DLL_API void set_uniform(const std::string &, std::array< GLfloat, 4 > const &data)
std::unordered_set< std::string > m_uniform_var_names
Definition: shader.h:121
DLL_API void set_uniform(const std::string &, GLint, GLint, GLint)
void add_stage(Args &&... args)
Definition: shader.h:34
DLL_API void set_uniform(const std::string &, GLint)
DLL_API void set_uniform(const std::string &, std::array< GLuint, 3 > const &data)
DLL_API void set_uniform(const std::string &, GLuint, GLuint)
DLL_API void set_uniform_vec4(const std::string &, GLuint const *)
DLL_API void delete_shader()
std::unordered_set< std::string > m_attribute_var_names
Definition: shader.h:122
DLL_API void set_uniform(const std::string &, Vec2< GLfloat > const &)
DLL_API void set_uniform(const std::string &, std::array< GLint, 3 > const &data)
DLL_API void set_uniform(const std::string &, GLfloat, GLfloat, GLfloat, GLfloat)
DLL_API void set_uniform(const std::string &, GLuint)
DLL_API void set_uniform_vec2(const std::string &, GLint const *)
DLL_API void unbind() const
DLL_API void set_uniform_mat2(const std::string &, GLfloat const *)
DLL_API void set_uniform(const std::string &, GLint, GLint)
DLL_API void set_uniform(const std::string &, Vec3< GLuint > const &)
DLL_API GLint uniform(const std::string &uniformVarName)
DLL_API void set_uniform_vec2(const std::string &, GLuint const *)
DLL_API void set_uniform(const std::string &, Mat4< GLfloat > const &)
std::map< std::string, GLint > m_uniform_locations
Definition: shader.h:118
DLL_API void set_uniform_mat3(const std::string &, GLfloat const *)
DLL_API void set_uniform_vec2(const std::string &, GLfloat const *)
DLL_API void set_uniform(const std::string &, GLint, GLint, GLint, GLint)
DLL_API void set_uniform(const std::string &, Vec4< GLfloat > const &)
DLL_API void set_uniform(const std::string &, Mat3< GLfloat > const &)
DLL_API void set_uniform(const std::string &, GLuint, GLuint, GLuint, GLuint)
DLL_API void set_uniform(const std::string &, Vec3< GLint > const &)
DLL_API void set_uniform_vec4(const std::string &, GLfloat const *)
DLL_API void set_uniform(const std::string &, GLuint, GLuint, GLuint)
bool m_delete
Definition: shader.h:124
DLL_API void set_uniform(const std::string &, Vec4< GLint > const &)
DLL_API void set_uniform(const std::string &, Vec4< GLuint > const &)
std::map< std::string, GLint > m_attribute_locations
Definition: shader.h:119
DLL_API void set_uniform(const std::string &, std::array< GLuint, 4 > const &data)
DLL_API void set_uniform(const std::string &, GLboolean)
DLL_API void set_uniform(const std::string &, GLfloat, GLfloat)
Definition: ansiformat.h:6
Definition: idholder.h:31