- // Shaders
-
- /**
- * Set whether the node inherits a shader effect from its parent.
- * The inherited effect can be overriden using ApplyShader()
- * @param [in] inherit True if the parent effect is inherited.
- */
- void SetInheritShader(bool inherit)
- {
- if (inherit != mInheritShader)
- {
- mInheritShader = inherit;
-
- SetDirtyFlag(ShaderFlag);
- }
- }
-
- /**
- * Query whether the node inherits a shader from its parent.
- * @return True if the parent effect is inherited.
- */
- bool GetInheritShader() const
- {
- return mInheritShader;
- }
-
- /**
- * Apply a shader object to this Node.
- * Shader effects are weakly referenced, potentially by multiple nodes & node attachments.
- * @param[in] shader The shader to apply.
- */
- void ApplyShader( Shader* shader );
-
- /**
- * Remove the shader object from this Node (if any).
- */
- void RemoveShader();
-
- /**
- * Retrieve the applied shader.
- * @return The applied shader.
- */
- Shader* GetAppliedShader() const;
-
- /**
- * Sets the inherited shader of the node.
- * @param[in] shader The new inherited shader.
- */
- void SetInheritedShader(Shader* shader);
-
- /**
- * Retrieve the inherited shader.
- * @return The inherited shader.
- */
- Shader* GetInheritedShader() const;
-
- /**
- * Inherit a shader (if any) applied to the parent node.
- * This method should only be called when the parents inherited shader is up-to-date.
- * @param defaultShader pointer to the default shader, used if inherit shader is set to false
- * @pre The node has a parent.
- */
- void InheritShader(Shader* defaultShader);
-