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.