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, const std::string& shaderName);
56
62 virtual ~OpenGLShader() override;
63
71 virtual void Bind() const override;
72
81 virtual void Bind(const std::string& texShaderName) const override;
82
89 virtual void UnBind() const override;
90
99 void UploadUniformMat4(const std::string& name, const glm::mat4& matrix);
100
101 private:
108 void Compile(const std::unordered_map<GLenum, std::string>& shaderSources);
109
110 private:
111 // OpenGL's identification scheme
112 uint32_t m_RendererID;
113 };
114}
#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:200
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:213
void UploadUniformMat4(const std::string &name, const glm::mat4 &matrix)
A legacy uniform upload routine.
Definition OpenGLShader.cpp:218
Shader()
A constructor.
Definition Shader.h:29
OpenGL's uniform buffer, used in OpenGLShader type instance of Shader object.
Definition OpenGLBuffer.h:177