OpenGL variant of Karma's Shader.
More...
#include <OpenGLShader.h>
|
| OpenGLShader (const std::string &vertexSrc, const std::string &fragmentSrc) |
| A constructor.
|
|
| OpenGLShader (const std::string &vertexSrcFile, const std::string &fragmentSrcFile, std::shared_ptr< UniformBufferObject > ubo, const std::string &shaderName) |
| Overloaded constructor.
|
|
virtual | ~OpenGLShader () override |
| Deletes the appropriate resources, no longer in use, and clean up.
|
|
virtual void | Bind () const override |
| Binds the shader and uniform. Seems legacy.
|
|
virtual void | Bind (const std::string &texShaderName) const override |
| Bind the shader and specified uniform.
|
|
virtual void | UnBind () const override |
| Unbind the shader.
|
|
void | UploadUniformMat4 (const std::string &name, const glm::mat4 &matrix) |
| A legacy uniform upload routine.
|
|
| Shader (std::shared_ptr< UniformBufferObject > ubo) |
| A constructor.
|
|
virtual | ~Shader ()=default |
| Destructor.
|
|
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.
|
|
std::string | m_ShaderName |
|
OpenGL variant of Karma's Shader.
- Since
- Karma 1.0.0
◆ OpenGLShader() [1/2]
Karma::OpenGLShader::OpenGLShader |
( |
const std::string & | vertexSrc, |
|
|
const std::string & | fragmentSrc ) |
A constructor.
Creates Karma Shader using OpenGL API with given vertex shader and fragment shader source.
- Parameters
-
vertexSrc | The source of vertex shader |
fragmentSrc | The source of fragment shader |
- Note
- The compilation and linking is done by OpenGL
- Since
- Karma 1.0.0
◆ OpenGLShader() [2/2]
Karma::OpenGLShader::OpenGLShader |
( |
const std::string & | vertexSrcFile, |
|
|
const std::string & | fragmentSrcFile, |
|
|
std::shared_ptr< UniformBufferObject > | ubo, |
|
|
const std::string & | shaderName ) |
Overloaded constructor.
Creates Karma Shader using OpenGL API with given vertex shader, fragment shader, uniform buffer, and shader name
- Parameters
-
vertexScrFile | The source of vertex shader |
fragmentScrFile | The source of fragment shader |
ubo | The list of uniform buffer objects |
shaderName | The name of the shader |
- Since
- Karma 1.0.0
◆ ~OpenGLShader()
Karma::OpenGLShader::~OpenGLShader |
( |
| ) |
|
|
overridevirtual |
Deletes the appropriate resources, no longer in use, and clean up.
- Since
- Karma 1.0.0
◆ Bind() [1/2]
void Karma::OpenGLShader::Bind |
( |
| ) |
const |
|
overridevirtual |
Binds the shader and uniform. Seems legacy.
- Todo
- See to remove the "texSampler" and make generic
- See also
- Bind(const std::string& texShaderNames)
- Since
- Karma 1.0.0.
Reimplemented from Karma::Shader.
◆ Bind() [2/2]
void Karma::OpenGLShader::Bind |
( |
const std::string & | texShaderName | ) |
const |
|
overridevirtual |
Bind the shader and specified uniform.
- Parameters
-
texShaderName | The name of the uniform |
- Todo
- Maybe make arrangements for list of uniforms and rename texShaderName
- Since
- Karma 1.0.0
Reimplemented from Karma::Shader.
◆ UnBind()
void Karma::OpenGLShader::UnBind |
( |
| ) |
const |
|
overridevirtual |
Unbind the shader.
- Todo
- Ponder about uniform unbinding
- Since
- Karma 1.0.0
Reimplemented from Karma::Shader.
◆ UploadUniformMat4()
void Karma::OpenGLShader::UploadUniformMat4 |
( |
const std::string & | name, |
|
|
const glm::mat4 & | matrix ) |
A legacy uniform upload routine.
- Parameters
-
name | The name of the uniform |
matrix | The matrix with latest value entries |
- Since
- Karma 1.0.0
The documentation for this class was generated from the following files:
- Karma/src/Platform/OpenGL/OpenGLShader.h
- Karma/src/Platform/OpenGL/OpenGLShader.cpp