KarmaEngine
Game Engine for practical learning and research purposes
Loading...
Searching...
No Matches
Karma::VulkanShader Class Reference
Inheritance diagram for Karma::VulkanShader:
Collaboration diagram for Karma::VulkanShader:

Public Member Functions

 VulkanShader (const std::string &vertexSrc, const std::string &fragmentSrc, std::shared_ptr< UniformBufferObject > ubo)
 
virtual void Bind () const override
 Installs a shader (vertex + fragment) and uniform program object as part of current rendering state.
 
virtual void UnBind () const override
 Undo the binding of shader program.
 
std::vector< uint32_t > Compile (const std::string &src, const std::string &source, EShLanguage lang)
 
void UploadUniformMat4 (const std::string &name, const glm::mat4 &matrix)
 
const std::vector< uint32_t > & GetVertSpirV () const
 
const std::vector< uint32_t > & GetFragSpirV () const
 
std::shared_ptr< VulkanUniformBufferGetUniformBufferObject () const
 
- Public Member Functions inherited from Karma::Shader
 Shader (std::shared_ptr< UniformBufferObject > ubo)
 A constructor.
 
virtual ~Shader ()=default
 Destructor.
 
virtual void Bind (const std::string &texShaderNames) const
 Binding using name of texture.
 
std::shared_ptr< UniformBufferObjectGetUniformBufferObject () const
 Getter for uniform buffer object.
 
const std::string & GetShaderName () const
 Getter for shader name.
 

Additional Inherited Members

- Static Public Member Functions inherited from Karma::Shader
static ShaderCreate (const std::string &vertexSrc, const std::string &fragmentSrc)
 Instantiating shader object according to the programmer chosen API.
 
static ShaderCreate (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 inherited from Karma::Shader
std::string m_ShaderName
 

Member Function Documentation

◆ Bind()

void Karma::VulkanShader::Bind ( ) const
overridevirtual

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 from Karma::Shader.

◆ UnBind()

void Karma::VulkanShader::UnBind ( ) const
overridevirtual

Undo the binding of shader program.

Todo
Only OpenGL uses this, that too, for shader and not uniform. May need pondering over.
Since
Karma 1.0.0

Reimplemented from Karma::Shader.


The documentation for this class was generated from the following files: