public |
Inheritance Graph
graph BT
Shader
Shader --> ReferenceCounter
click Shader "classRendering_1_1Shader"
click ReferenceCounter "classUtil_1_1ReferenceCounter"
Description
Main
typedef uint32_t | flag_t |
const flag_t | USE_GL |
const flag_t | USE_UNIFORMS |
~Shader() | |
bool | _enable() (internal) called by RenderingContext |
bool | enable( RenderingContext & rc) |
bool | isActive( RenderingContext & rc) |
bool | usesClassicOpenGL() const |
bool | usesSGUniforms() const |
void | setUsage( flag_t newUsage) |
RenderingStatus * | getRenderingStatus() |
(static) Factories
Shader * | loadShader(const Util::FileName & vsFile, const Util::FileName & fsFile, flag_t usage) |
Shader * | loadShader(const Util::FileName & vsFile, const Util::FileName & gsFile, const Util::FileName & fsFile, flag_t usage) |
Shader * | createShader( flag_t usage) |
Shader * | createShader(const std::string & vsa, const std::string & fsa, flag_t usage) |
Shader * | createShader(const std::string & vsa, const std::string & gsa, const std::string & fsa, flag_t usage) |
Program and status
enum | status_t {UNKNOWN, COMPILED, LINKED, INVALID} |
status_t | getStatus() const |
uint32_t | getShaderProg() const |
bool | init() Try to transfer the shader into LINKED-state. Returns true on success. |
Shader Objects
void | attachShaderObject( ShaderObjectInfo && obj) |
Uniforms
UniformRegistry * | _getUniformRegistry() const (internal) should only be used by renderingContext |
void | applyUniforms(bool forced) |
bool | isUniform(const Util::StringIdentifier name) |
void | getActiveUniforms(std::vector< Uniform > & uniforms) |
const Uniform & | getUniform(const Util::StringIdentifier name) |
void | setUniform( RenderingContext & rc, const Uniform & uniform, bool warnIfUnused, bool forced) |
Vertex attributes
void | defineVertexAttribute(const std::string & attrName, uint32_t index) |
int32_t | getVertexAttributeLocation( Util::StringIdentifier attrName) |
Transform Feedback
void | setInterleavedFeedbackVaryings(const std::vector< std::string > & names) |
void | setSeparateFeedbackVaryings(const std::vector< std::string > & names) |
Shader Subroutines
int32_t | getSubroutineIndex(uint32_t stage, const std::string & name) |
Documentation
typedef
Rendering::Shader::flag_t
public |
typedef uint32_t flag_t |
Defined in Rendering/Shader/Shader.h:47
variable
Rendering::Shader::USE_GL
public | static |
const flag_t USE_GL |
Defined in Rendering/Shader/Shader.h:48
variable
Rendering::Shader::USE_UNIFORMS
public | static |
const flag_t USE_UNIFORMS |
Defined in Rendering/Shader/Shader.h:49
function
Rendering::Shader::~Shader
public |
~Shader( | ) |
Defined in Rendering/Shader/Shader.h:51
function
Rendering::Shader::_enable
public |
bool _enable( | ) |
(internal) called by RenderingContext
Defined in Rendering/Shader/Shader.h:54
function
Rendering::Shader::enable
public |
bool enable( | RenderingContext & | rc ) |
Sets the active shader at the renderingContext. If the shader has not been linked, it is linked.
Returns
returns true if the status of the shader is LINKED
Defined in Rendering/Shader/Shader.h:59
function
Rendering::Shader::isActive
public |
bool isActive( | RenderingContext & | rc ) |
Defined in Rendering/Shader/Shader.h:60
function
Rendering::Shader::usesClassicOpenGL
public | const | inline |
bool usesClassicOpenGL( | ) const |
Defined in Rendering/Shader/Shader.h:62
function
Rendering::Shader::usesSGUniforms
public | const | inline |
bool usesSGUniforms( | ) const |
Defined in Rendering/Shader/Shader.h:63
function
Rendering::Shader::setUsage
public | inline |
void setUsage( | flag_t | newUsage ) |
Defined in Rendering/Shader/Shader.h:64
function
Rendering::Shader::getRenderingStatus
public | inline |
RenderingStatus * getRenderingStatus( | ) |
Defined in Rendering/Shader/Shader.h:66
function
Rendering::Shader::loadShader
public | static |
Shader * loadShader( | const Util::FileName & | vsFile, |
const Util::FileName & | fsFile, | |
flag_t | usage | |
) |
Defined in Rendering/Shader/Shader.h:81
function
Rendering::Shader::loadShader
public | static |
Shader * loadShader( | const Util::FileName & | vsFile, |
const Util::FileName & | gsFile, | |
const Util::FileName & | fsFile, | |
flag_t | usage | |
) |
Defined in Rendering/Shader/Shader.h:82
function
Rendering::Shader::createShader
public | static |
Shader * createShader( | flag_t | usage ) |
Defined in Rendering/Shader/Shader.h:83
function
Rendering::Shader::createShader
public | static |
Shader * createShader( | const std::string & | vsa, |
const std::string & | fsa, | |
flag_t | usage | |
) |
Defined in Rendering/Shader/Shader.h:84
function
Rendering::Shader::createShader
public | static |
Shader * createShader( | const std::string & | vsa, |
const std::string & | gsa, | |
const std::string & | fsa, | |
flag_t | usage | |
) |
Defined in Rendering/Shader/Shader.h:85
enum
Rendering::Shader::status_t
public |
enum status_t |
Enumerator | Description | |
---|---|---|
Enumerator | Description | |
UNKNOWN | = 0 | |
COMPILED | = 1 | |
LINKED | = 2 | |
INVALID | = 3 |
Defined in Rendering/Shader/Shader.h:93
function
Rendering::Shader::getStatus
public | const | inline |
status_t getStatus( | ) const |
Defined in Rendering/Shader/Shader.h:99
function
Rendering::Shader::getShaderProg
public | const | inline |
uint32_t getShaderProg( | ) const |
Defined in Rendering/Shader/Shader.h:100
function
Rendering::Shader::init
public |
bool init( | ) |
Try to transfer the shader into LINKED-state. Returns true on success.
Defined in Rendering/Shader/Shader.h:103
function
Rendering::Shader::attachShaderObject
public |
void attachShaderObject( | ShaderObjectInfo && | obj ) |
Defined in Rendering/Shader/Shader.h:127
function
Rendering::Shader::_getUniformRegistry
public | const | inline |
UniformRegistry * _getUniformRegistry( | ) const |
(internal) should only be used by renderingContext
Defined in Rendering/Shader/Shader.h:151
function
Rendering::Shader::applyUniforms
public |
void applyUniforms( | bool | forced ) |
Apply those uniforms stored in the internal uniformRegistry to the shader, that have been changed since the last call to this function (or all, if forced is true).
Note: The Shader needs not to be active.
Defined in Rendering/Shader/Shader.h:156
function
Rendering::Shader::isUniform
public |
bool isUniform( | const Util::StringIdentifier | name ) |
Defined in Rendering/Shader/Shader.h:158
function
Rendering::Shader::getActiveUniforms
public |
void getActiveUniforms( | std::vector< Uniform > & | uniforms ) |
Get the values of all uniforms defined in the shader’s program.
Note: The Shader needs not to be active.
Defined in Rendering/Shader/Shader.h:162
function
Rendering::Shader::getUniform
public |
const Uniform & getUniform( | const Util::StringIdentifier | name ) |
Get the value of the uniform with the given name. If the name is not defined in the shader’s program, the resulting Uniform is null (uniform.isNull()==true).
Note: The Shader needs not to be active.
Defined in Rendering/Shader/Shader.h:167
function
Rendering::Shader::setUniform
public |
void setUniform( | RenderingContext & | rc, |
const Uniform & | uniform, | |
bool | warnIfUnused, | |
bool | forced | |
) |
Set an Uniform . The uniform is applied when the shader is active and the renderingContext’s changes are applied.
Note: The uniform is stored at the Shader ‘s internal uniformRegistry.
Note: The Shader needs not to be active.
Defined in Rendering/Shader/Shader.h:172
function
Rendering::Shader::defineVertexAttribute
public |
void defineVertexAttribute( | const std::string & | attrName, |
uint32_t | index | |
) |
Defined in Rendering/Shader/Shader.h:182
function
Rendering::Shader::getVertexAttributeLocation
public |
int32_t getVertexAttributeLocation( | Util::StringIdentifier | attrName ) |
Defined in Rendering/Shader/Shader.h:183
function
Rendering::Shader::setInterleavedFeedbackVaryings
public |
void setInterleavedFeedbackVaryings( | const std::vector< std::string > & | names ) |
Defined in Rendering/Shader/Shader.h:192
function
Rendering::Shader::setSeparateFeedbackVaryings
public |
void setSeparateFeedbackVaryings( | const std::vector< std::string > & | names ) |
Defined in Rendering/Shader/Shader.h:193
function
Rendering::Shader::getSubroutineIndex
public |
int32_t getSubroutineIndex( | uint32_t | stage, |
const std::string & | name | |
) |
Defined in Rendering/Shader/Shader.h:203