3#include "Vesper/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;
28 virtual const std::string&
GetName()
const override {
return m_Name; }
41 std::string
ReadFile(
const std::string& filepath);
43 void Compile(std::unordered_map<GLenum, std::string>& shaderSources);
#define VZ_CORE_ASSERT(x,...)
Definition Asserts.h:20
#define VZ_PROFILE_FUNCTION()
Definition Instrumentor.h:240
#define VZ_CORE_ERROR(...)
error: indicates an error that has occurred
Definition Log.h:41
unsigned int GLenum
Definition OpenGLShader.h:7
Definition OpenGLShader.h:12
~OpenGLShader()
Definition OpenGLShader.cpp:46
OpenGLShader(const std::string &filepath)
Definition OpenGLShader.cpp:21
virtual const std::string & GetName() const override
Definition OpenGLShader.h:28
OpenGLShader(const std::string &name, const std::string &vertexSrc, const std::string &fragmentSrc)
Definition OpenGLShader.cpp:36
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:212
void UploadUniformFloat(const std::string &name, float value)
Definition OpenGLShader.cpp:256
void Bind() const override
connects the shader program for use.
Definition OpenGLShader.cpp:175
void UploadUniformMat3(const std::string &name, const glm::mat3 &matrix)
Definition OpenGLShader.cpp:232
void Compile(std::unordered_map< GLenum, std::string > &shaderSources)
Definition OpenGLShader.cpp:98
virtual void SetInt(const std::string &name, int value) override
Sets a single integer uniform in the shader.
Definition OpenGLShader.cpp:206
virtual void SetMat4(const std::string &name, const glm::mat4 &value) override
Sets a 4x4 matrix uniform in the shader.
Definition OpenGLShader.cpp:219
virtual void SetFloat(const std::string &name, float value) override
Sets a single float uniform in the shader.
Definition OpenGLShader.cpp:200
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:194
unsigned int m_RendererID
Definition OpenGLShader.h:45
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:188
void Unbind() const override
disconnects the shader program.
Definition OpenGLShader.cpp:181
void UploadUniformFloat4(const std::string &name, const glm::vec4 &values)
Definition OpenGLShader.cpp:238
void UploadUniformFloat2(const std::string &name, const glm::vec2 &values)
Definition OpenGLShader.cpp:250
void UploadUniformMat4(const std::string &name, const glm::mat4 &matrix)
Definition OpenGLShader.cpp:226
void UploadUniformInt(const std::string &name, int value)
Definition OpenGLShader.cpp:262
std::string ReadFile(const std::string &filepath)
Definition OpenGLShader.cpp:52
void UploadUniformFloat3(const std::string &name, const glm::vec3 &values)
Definition OpenGLShader.cpp:244
std::unordered_map< GLenum, std::string > PreProcess(const std::string &source)
Definition OpenGLShader.cpp:72
std::string m_Name
Definition OpenGLShader.h:46
An abstraction for a shader program.
Definition Shader.h:12
TEMPORARY.
Definition WindowsInput.cpp:7
static GLenum ShaderTypeFromString(const std::string &type)
Definition OpenGLShader.cpp:10