KarmaEngine
Game Engine for practical learning and research purposes
Loading...
Searching...
No Matches
Shader.h
Go to the documentation of this file.
1
10#pragma once
11
12#include "krpch.h"
13
15#include "glm/glm.hpp"
16
17namespace Karma
18{
23 {
24 public:
31 Shader(std::shared_ptr<UniformBufferObject> ubo) : m_UniformBufferObject(ubo)
32 {}
33
39 virtual ~Shader() = default;
40
47 virtual void Bind() const {}
48
55 virtual void Bind(const std::string& texShaderNames) const {}
56
63 virtual void UnBind() const {}
64
71 std::shared_ptr<UniformBufferObject> GetUniformBufferObject() const { return m_UniformBufferObject; }
72
79 static Shader* Create(const std::string& vertexSrc, const std::string& fragmentSrc);
80
91 static Shader* Create(const std::string& vertexSrcFile, const std::string& fragmentSrcFile, std::shared_ptr<UniformBufferObject> ubo,
92 const std::string& shaderName = "NoNamedShader");
93
94 // Getters
101 const std::string& GetShaderName() const { return m_ShaderName; }
102
103 private:
104 std::shared_ptr<UniformBufferObject> m_UniformBufferObject;
105
106 protected:
107 std::string m_ShaderName;
108 };
109}
This file contains base classes for various kinds of buffers used by the Engine.
#define KARMA_API
Defining Karma's API macro for storage class information.
Definition Core.h:41
Base class of vertex + fragment shaders (for Vulkan and OpenGL)
Definition Shader.h:23
const std::string & GetShaderName() const
Getter for shader name.
Definition Shader.h:101
virtual void Bind() const
Installs a shader (vertex + fragment) and uniform program object as part of current rendering state.
Definition Shader.h:47
virtual void UnBind() const
Undo the binding of shader program.
Definition Shader.h:63
virtual ~Shader()=default
Destructor.
virtual void Bind(const std::string &texShaderNames) const
Binding using name of texture.
Definition Shader.h:55
Shader(std::shared_ptr< UniformBufferObject > ubo)
A constructor.
Definition Shader.h:31
std::shared_ptr< UniformBufferObject > GetUniformBufferObject() const
Getter for uniform buffer object.
Definition Shader.h:71