Base class of vertex + fragment shaders (for Vulkan and OpenGL).
More...
#include <Shader.h>
|
| | 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 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.
|
Base class of vertex + fragment shaders (for Vulkan and OpenGL).
◆ Shader()
A constructor.
- Parameters
-
| ubo | Uniform buffer object to a assigned |
- Since
- Karma 1.0.0
◆ ~Shader()
| virtual Karma::Shader::~Shader |
( |
| ) |
|
|
virtualdefault |
Destructor.
- Since
- Karma 1.0.0
◆ Bind() [1/2]
| virtual void Karma::Shader::Bind |
( |
| ) |
const |
|
inlinevirtual |
Installs a shader (vertex + fragment) and uniform program object as part of current rendering state.
- Todo
- For OpenGL only. Vulkan Bind() is empty and may need abstract thinking
- Since
- Karma 1.0.0
Reimplemented in Karma::OpenGLShader, and Karma::VulkanShader.
◆ Bind() [2/2]
| virtual void Karma::Shader::Bind |
( |
const std::string & | texShaderNames | ) |
const |
|
inlinevirtual |
Binding using name of texture.
- Todo
- Think with the previous binding routiine
- Since
- Karma 1.0.0
Reimplemented in Karma::OpenGLShader.
◆ Create() [1/2]
| Shader * Karma::Shader::Create |
( |
const std::string & | vertexSrc, |
|
|
const std::string & | fragmentSrc ) |
|
static |
Instantiating shader object according to the programmer chosen API.
- Deprecated
- Use the overloaded function with uniformbuffer object argument
- Since
- Karma 1.0.0
◆ Create() [2/2]
| Shader * Karma::Shader::Create |
( |
const std::string & | vertexSrcFile, |
|
|
const std::string & | fragmentSrcFile, |
|
|
std::shared_ptr< UniformBufferObject > | ubo, |
|
|
const std::string & | shaderName = "NoNamedShader" ) |
|
static |
For instantiating shader object accodring to programer's chosen API.
- Parameters
-
| 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 |
- Since
- Karma 1.0.0
◆ GetShaderName()
| const std::string & Karma::Shader::GetShaderName |
( |
| ) |
const |
|
inline |
Getter for shader name.
- Note
- Could be a pointer?
- Since
- Karma 1.0.0
◆ GetUniformBufferObject()
Getter for uniform buffer object.
- Returns
- pointer to UniformBufferObject present in the shader
- Since
- Karma 1.0.0
◆ UnBind()
| virtual void Karma::Shader::UnBind |
( |
| ) |
const |
|
inlinevirtual |
The documentation for this class was generated from the following files:
- Karma/src/Karma/Renderer/Shader.h
- Karma/src/Karma/Renderer/Shader.cpp