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