KarmaEngine
Game Engine for practical learning and research purposes
|
Base class of vertex + fragment shaders (for Vulkan and OpenGL) More...
#include <Shader.h>
Public Member Functions | |
Shader (std::shared_ptr< UniformBufferObject > ubo) | |
A constructor. | |
virtual | ~Shader ()=default |
Destructor. | |
virtual void | Bind () const |
Installs a shader (vertex + fragment) and uniform program object as part of current rendering state. | |
virtual void | Bind (const std::string &texShaderNames) const |
Binding using name of texture. | |
virtual void | UnBind () const |
Undo the binding of shader program. | |
std::shared_ptr< UniformBufferObject > | GetUniformBufferObject () const |
Getter for uniform buffer object. | |
const std::string & | GetShaderName () const |
Getter for shader name. | |
Static Public Member Functions | |
static Shader * | Create (const std::string &vertexSrc, const std::string &fragmentSrc) |
Instantiating shader object according to the programmer chosen API. | |
static Shader * | Create (const std::string &vertexSrcFile, const std::string &fragmentSrcFile, std::shared_ptr< UniformBufferObject > ubo, const std::string &shaderName="NoNamedShader") |
For instantiating shader object accodring to programer's chosen API. | |
Protected Attributes | |
std::string | m_ShaderName |
Base class of vertex + fragment shaders (for Vulkan and OpenGL)
|
inline |
A constructor.
ubo | Uniform buffer object to a assigned |
|
virtualdefault |
Destructor.
|
inlinevirtual |
Installs a shader (vertex + fragment) and uniform program object as part of current rendering state.
Reimplemented in Karma::OpenGLShader, and Karma::VulkanShader.
|
inlinevirtual |
Binding using name of texture.
Reimplemented in Karma::OpenGLShader.
|
static |
Instantiating shader object according to the programmer chosen API.
|
static |
For instantiating shader object accodring to programer's chosen API.
vertexSrcFile | Path to vertex shader (filename included). For instance "../Resources/Shaders/shader.vert", relative to Engine's running directory |
fragmentSrcFile | Path to fragment shader (filename included). |
ubo | UniformBufferObject to be used |
shaderName | Name of the shader to be supplied |
|
inline |
Getter for shader name.
|
inline |
Getter for uniform buffer object.
|
inlinevirtual |
Undo the binding of shader program.
Reimplemented in Karma::OpenGLShader, and Karma::VulkanShader.