3#include "Renderer/Shader.h"
15 OpenGLShader(
const std::string& name,
const std::string& vertexSrc,
const std::string& fragmentSrc);
18 void Bind()
const override;
19 void Unbind()
const override;
21 virtual void SetMat4(
const std::string& name,
const glm::mat4& value)
override;
22 virtual void SetFloat4(
const std::string& name,
const glm::vec4& value)
override;
23 virtual void SetFloat3(
const std::string& name,
const glm::vec3& value)
override;
24 virtual void SetFloat(
const std::string& name,
float value)
override;
25 virtual void SetInt(
const std::string& name,
int value)
override;
26 virtual void SetIntArray(
const std::string& name,
int* values, uint32_t count)
override;
41 std::string
ReadFile(
const std::string& filepath);
43 void Compile(std::unordered_map<GLenum, std::string>& shaderSources);
#define MU_CORE_ASSERT(x,...)
Definition Asserts.h:32
#define MU_PROFILE_FUNCTION()
Definition Instrumentor.h:240
#define MU_CORE_ERROR(...)
error: indicates an error that has occurred
Definition Log.h:42
unsigned int GLenum
Definition OpenGLShader.h:7
Definition OpenGLShader.h:12
void UploadUniformFloat3(const std::string &name, const glm::vec3 &values)
Definition OpenGLShader.cpp:242
virtual void SetFloat3(const std::string &name, const glm::vec3 &value) override
Sets a 3-component float vector uniform in the shader.
Definition OpenGLShader.cpp:192
std::string ReadFile(const std::string &filepath)
Definition OpenGLShader.cpp:52
std::string m_Name
Definition OpenGLShader.h:46
virtual const std::string & GetName() const override
Definition OpenGLShader.h:28
void UploadUniformFloat4(const std::string &name, const glm::vec4 &values)
Definition OpenGLShader.cpp:236
virtual void SetMat4(const std::string &name, const glm::mat4 &value) override
Sets a 4x4 matrix uniform in the shader.
Definition OpenGLShader.cpp:217
OpenGLShader(const std::string &filepath)
Definition OpenGLShader.cpp:21
virtual void SetIntArray(const std::string &name, int *values, uint32_t count) override
Sets an array of integers uniform in the shader.
Definition OpenGLShader.cpp:210
void UploadUniformMat3(const std::string &name, const glm::mat3 &matrix)
Definition OpenGLShader.cpp:230
virtual void SetFloat(const std::string &name, float value) override
Sets a single float uniform in the shader.
Definition OpenGLShader.cpp:198
std::unordered_map< GLenum, std::string > PreProcess(const std::string &source)
Definition OpenGLShader.cpp:72
virtual void SetFloat4(const std::string &name, const glm::vec4 &value) override
Sets a 4-component float vector uniform in the shader.
Definition OpenGLShader.cpp:186
void Compile(std::unordered_map< GLenum, std::string > &shaderSources)
Definition OpenGLShader.cpp:97
void UploadUniformFloat2(const std::string &name, const glm::vec2 &values)
Definition OpenGLShader.cpp:248
void Bind() const override
connects the shader program for use.
Definition OpenGLShader.cpp:173
virtual void SetInt(const std::string &name, int value) override
Sets a single integer uniform in the shader.
Definition OpenGLShader.cpp:204
OpenGLShader(const std::string &name, const std::string &vertexSrc, const std::string &fragmentSrc)
Definition OpenGLShader.cpp:36
~OpenGLShader()
Definition OpenGLShader.cpp:46
unsigned int m_RendererID
Definition OpenGLShader.h:45
void UploadUniformInt(const std::string &name, int value)
Definition OpenGLShader.cpp:260
void UploadUniformFloat(const std::string &name, float value)
Definition OpenGLShader.cpp:254
void Unbind() const override
disconnects the shader program.
Definition OpenGLShader.cpp:179
void UploadUniformMat4(const std::string &name, const glm::mat4 &matrix)
Definition OpenGLShader.cpp:224
An abstraction for a shader program.
Definition Shader.h:16
The main namespace for the Muto engine.
Definition Application.cpp:15
static GLenum ShaderTypeFromString(const std::string &type)
Definition OpenGLShader.cpp:10