|
VoltAir
|
A helper to define singletons for InstancedShaders. More...
Public Types | |
| typedef std::shared_ptr < TShaderImpl > | TShaderImplPtr |
Helper typedef for a shared pointer to a TShaderImpl. More... | |
| typedef std::weak_ptr < TShaderImpl > | TShaderImplWeakPtr |
Helper typedef for a weak shared pointer to a TShaderImpl. More... | |
Static Public Member Functions | |
| static TShaderImplPtr | getInstance () |
| Returns the singleton instance of this shader, creating it if necessary. More... | |
Static Public Member Functions inherited from InstancedShaderBase< TShaderImpl > | |
| static const ShaderPtr & | getSharedShader () |
| Returns the shared Shader singleton, creating it if necessary. More... | |
Additional Inherited Members | |
Public Member Functions inherited from InstancedShaderBase< TShaderImpl > | |
| InstancedShaderBase () | |
| Construct this InstancedShader, creating the shared Shader if necessary. More... | |
Public Member Functions inherited from InstancedShader | |
| InstancedShader (const ShaderPtr &sharedShader) | |
| Create an InstancedShader which references a shader Shader. More... | |
| const ShaderPtr & | getSharedShader () const |
| Returns the Shader that is shared among instances. More... | |
| virtual bool | isCurrent () const override |
| Returns whether or not this instance is bound. More... | |
| virtual bool | isValid () const override |
| Returns whether or not this shader is valid (compiled and linked) and can be used for rendering. More... | |
| virtual bool | isCompiled () const override |
| Returns whether or not this shader has been processed for compilation. More... | |
| virtual GLuint | getProgramId () const override |
| Returns the GL program id for this shader. More... | |
| virtual void | begin () override |
| Binds this shader, and sets uniforms and other GL state associated with this instance. More... | |
| virtual void | end () override |
| Unbinds this shader if bound by a corresponding call to begin(). More... | |
| virtual void | compile () override |
| Compiles this shader, resulting in the compilation of the shared Shader if necessary. More... | |
| virtual std::string | getErrorLog () const override |
Retrieves the string describing compilation errors, if the call to compile() failed and isValid() is false. More... | |
| virtual int | getAttributeLocation (int index) const override |
| Returns the location of an indexed Attribute. More... | |
| virtual int | getUniformLocation (int index) const override |
| Returns the location of an indexed uniform. More... | |
| void | setIndexedTexture (int index, int stage, const TexturePtr &value, TexturePtr *stateValue) |
Set the indexed texture for this instance at the given index. More... | |
Public Member Functions inherited from Shader | |
| Shader (const AttributeSetPtr &attributes, const std::vector< std::string > &uniformNames) | |
| Construct a Shader with the given list of attributes and uniforms. More... | |
| const AttributeSetPtr & | getAttributes () const |
| Returns the list of indexed Attributes for this shader, as an AttributeSet. More... | |
| const std::vector< std::string > & | getUniformNames () const |
| Returns the list of indexed uniforms. More... | |
| void | setIndexedUniform1f (int index, bool global, float value, float *stateValue) |
Set the value of a float scalar uniform at the given index. More... | |
| void | setIndexedUniform2f (int index, bool global, const Vector2 &value, Vector2 *stateValue) |
Set the value of a 2D float vector uniform at the given index. More... | |
| void | setIndexedUniform3f (int index, bool global, float value1, float value2, float value3, float *stateValue) |
Set the value of a 3D float vector uniform at the given index. More... | |
| void | setIndexedUniform4f (int index, bool global, float value1, float value2, float value3, float value4, float *stateValue) |
Set the value of a 4D float vector uniform at the given index. More... | |
| void | setIndexedUniform1i (int index, bool global, int value, int *stateValue) |
Set the value of an integer scalar uniform at the given index. More... | |
| void | setIndexedUniformMatrix4f (int index, bool global, bool transpose, const Matrix4 &value, Matrix4 *stateValue) |
Set the value of a 4x4 float matrix uniform at the given index. More... | |
Protected Member Functions inherited from InstancedShader | |
| virtual void | updateState () |
| Update state in response to this instance getting bound. More... | |
Static Protected Member Functions inherited from InstancedShaderBase< TShaderImpl > | |
| static ShaderPtr | createSharedShader () |
| The default implementation of createSharedShader(). More... | |
A helper to define singletons for InstancedShaders.
While treating an instanced shader as a singleton means that you can no longer create instances of that shader, it benefits from being able to use some extra functionality from InstancedShader and InstancedShaderBase.
| typedef std::shared_ptr<TShaderImpl> SingletonInstancedShaderBase< TShaderImpl >::TShaderImplPtr |
Helper typedef for a shared pointer to a TShaderImpl.
| typedef std::weak_ptr<TShaderImpl> SingletonInstancedShaderBase< TShaderImpl >::TShaderImplWeakPtr |
Helper typedef for a weak shared pointer to a TShaderImpl.
|
inlinestatic |
Returns the singleton instance of this shader, creating it if necessary.