Botcraft 1.21.4
Loading...
Searching...
No Matches
Shader.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <glad/glad.h>
4#include <glm/glm.hpp>
5#include <glm/gtc/matrix_transform.hpp>
6#include <glm/gtc/type_ptr.hpp>
7
8#include <string>
9#include <vector>
10
11namespace Botcraft
12{
13 namespace Renderer
14 {
15 class Shader
16 {
17 public:
18 // constructor reads and builds the shader
19 Shader(const std::string& vertexPath = "", const std::string& fragmentPath = "");
20 ~Shader();
21
22 const unsigned int Program();
23
24 // use/activate the shader
25 void Use();
26 // utility uniform functions
27 void SetBool(const std::string& name, const bool value) const;
28 void SetInt(const std::string& name, const int value) const;
29 void SetFloat(const std::string& name, const float value) const;
30 void SetMat4(const std::string& name, const glm::mat4& value) const;
31 void SetMat3(const std::string& name, const glm::mat3& value) const;
32 void SetMat4xN(const std::string& name, const std::vector<glm::mat4>& value) const;
33 void SetMat3xN(const std::string& name, const std::vector<glm::mat3>& value) const;
34 void SetVec3(const std::string& name, const glm::vec3& value) const;
35 void SetVec2(const std::string& name, const glm::vec2& value) const;
36
37 private:
38 unsigned int program;
39 void CheckCompileErrors(const unsigned int shader, const std::string& type);
40
41 static const std::string default_vertex_shader;
42 static const std::string default_fragment_shader;
43 };
44 } // Renderer
45} // Botcraft
void SetFloat(const std::string &name, const float value) const
Definition Shader.cpp:119
void SetMat3(const std::string &name, const glm::mat3 &value) const
Definition Shader.cpp:131
static const std::string default_fragment_shader
Definition Shader.hpp:42
void SetVec2(const std::string &name, const glm::vec2 &value) const
Definition Shader.cpp:155
void CheckCompileErrors(const unsigned int shader, const std::string &type)
Definition Shader.cpp:161
void SetVec3(const std::string &name, const glm::vec3 &value) const
Definition Shader.cpp:149
void SetMat4xN(const std::string &name, const std::vector< glm::mat4 > &value) const
Definition Shader.cpp:137
const unsigned int Program()
Definition Shader.cpp:95
void SetMat4(const std::string &name, const glm::mat4 &value) const
Definition Shader.cpp:125
static const std::string default_vertex_shader
Definition Shader.hpp:41
void SetInt(const std::string &name, const int value) const
Definition Shader.cpp:113
void SetBool(const std::string &name, const bool value) const
Definition Shader.cpp:107
void SetMat3xN(const std::string &name, const std::vector< glm::mat3 > &value) const
Definition Shader.cpp:143