31 Shader(std::shared_ptr<UniformBufferObject> ubo) : m_UniformBufferObject(ubo)
47 virtual void Bind()
const {}
55 virtual void Bind(
const std::string& texShaderNames)
const {}
79 static Shader* Create(
const std::string& vertexSrc,
const std::string& fragmentSrc);
91 static Shader* Create(
const std::string& vertexSrcFile,
const std::string& fragmentSrcFile, std::shared_ptr<UniformBufferObject> ubo,
92 const std::string& shaderName =
"NoNamedShader");
104 std::shared_ptr<UniformBufferObject> m_UniformBufferObject;
107 std::string m_ShaderName;
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