KarmaEngine
Game Engine for practical learning and research purposes
Loading...
Searching...
No Matches
OpenGLShader.h
Go to the documentation of this file.
1
10#pragma once
11
12#include "krpch.h"
13
15#include "glad/glad.h"
17
18namespace Karma
19{
21
28 {
29 public:
41 OpenGLShader(const std::string& vertexSrc, const std::string& fragmentSrc);
42
55 OpenGLShader(const std::string& vertexSrcFile, const std::string& fragmentSrcFile, std::shared_ptr<UniformBufferObject> ubo,
56 const std::string& shaderName);
57
63 virtual ~OpenGLShader() override;
64
72 virtual void Bind() const override;
73
82 virtual void Bind(const std::string& texShaderName) const override;
83
90 virtual void UnBind() const override;
91
100 void UploadUniformMat4(const std::string& name, const glm::mat4& matrix);
101
102 private:
109 void Compile(const std::unordered_map<GLenum, std::string>& shaderSources);
110
111 private:
112 // OpenGL's identification scheme
113 uint32_t m_RendererID;
114 std::shared_ptr<OpenGLUniformBuffer> m_UniformBufferObject;
115 };
116}
#define KARMA_API
Defining Karma's API macro for storage class information.
Definition Core.h:41
This file contains various classes and functions for various Karma's utilities.
This file contains the Shader class.
virtual void Bind() const override
Binds the shader and uniform. Seems legacy.
Definition OpenGLShader.cpp:207
OpenGLShader(const std::string &vertexSrc, const std::string &fragmentSrc)
A constructor.
Definition OpenGLShader.cpp:8
virtual void UnBind() const override
Unbind the shader.
Definition OpenGLShader.cpp:220
void UploadUniformMat4(const std::string &name, const glm::mat4 &matrix)
A legacy uniform upload routine.
Definition OpenGLShader.cpp:225
Shader(std::shared_ptr< UniformBufferObject > ubo)
A constructor.
Definition Shader.h:31
OpenGL's uniform buffer, used in OpenGLShader type instance of Shader object.
Definition OpenGLBuffer.h:177