14 OpenGLShader(
const std::string& filepath);
15 OpenGLShader(
const std::string& name,
const std::string& vertexSrc,
const std::string& fragmentSrc);
16 virtual ~OpenGLShader();
18 virtual void Bind()
const override;
19 virtual void Unbind()
const override;
21 virtual void SetInt(
const std::string& name,
int value)
override;
22 virtual void SetFloat3(
const std::string& name,
const glm::vec3& value)
override;
23 virtual void SetFloat4(
const std::string& name,
const glm::vec4& value)
override;
24 virtual void SetMat4(
const std::string& name,
const glm::mat4& value)
override;
26 virtual const std::string& GetName()
const override {
return m_Name; }
28 void UploadUniformInt(
const std::string& name,
int value);
30 void UploadUniformFloat(
const std::string& name,
float value);
31 void UploadUniformFloat2(
const std::string& name,
const glm::vec2& value);
32 void UploadUniformFloat3(
const std::string& name,
const glm::vec3& value);
33 void UploadUniformFloat4(
const std::string& name,
const glm::vec4& value);
35 void UploadUniformMat3(
const std::string& name,
const glm::mat3& matrix);
36 void UploadUniformMat4(
const std::string& name,
const glm::mat4& matrix);
38 std::string ReadFile(
const std::string& filepath);
39 std::unordered_map<GLenum, std::string> PreProcess(
const std::string& source);
40 void Compile(
const std::unordered_map<GLenum, std::string>& shaderSources);
42 unsigned int m_RendererID;