|
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.