Voltray Engine Docs
Loading...
Searching...
No Matches
Shader.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4#include <unordered_map>
5
13class Shader
14{
15public:
16 Shader(const std::string &vertexPath, const std::string &fragmentPath);
17 ~Shader();
18 void Bind() const;
19 void Unbind() const;
20
21 void SetUniformMat4(const std::string &name, const float *matrix) const;
22 void SetUniform3f(const std::string &name, float x, float y, float z) const;
23 void SetUniform1f(const std::string &name, float value) const;
24
25private:
26 unsigned int m_RendererID;
27 mutable std::unordered_map<std::string, int> m_UniformLocationCache;
28
29 std::string LoadShaderSource(const std::string &filepath);
30 unsigned int CompileShader(unsigned int type, const std::string &source);
31 unsigned int CreateShaderProgram(const std::string &vertexSource, const std::string &fragmentSource);
32 int GetUniformLocation(const std::string &name) const;
33};
Encapsulates an OpenGL shader program, handling compilation, linking, and usage.
Definition Shader.h:14
void SetUniform3f(const std::string &name, float x, float y, float z) const
Definition Shader.cpp:149
void Bind() const
Definition Shader.cpp:35
void SetUniform1f(const std::string &name, float value) const
Definition Shader.cpp:154
void SetUniformMat4(const std::string &name, const float *matrix) const
Definition Shader.cpp:144
void Unbind() const
Definition Shader.cpp:40
~Shader()
Definition Shader.cpp:30