+ /**
+ * Sets the stencil function mask
+ * @param[in] stencilFunctionMask The stencil function mask
+ */
+ void SetStencilFunctionMask( int stencilFunctionMask );
+
+ /**
+ * Gets the stencil function mask
+ * @return The stencil function mask
+ */
+ int GetStencilFunctionMask() const;
+
+ /**
+ * Sets the stencil function reference
+ * @param[in] stencilFunctionReference The stencil function reference
+ */
+ void SetStencilFunctionReference( int stencilFunctionReference );
+
+ /**
+ * Gets the stencil function reference
+ * @return The stencil function reference
+ */
+ int GetStencilFunctionReference() const;
+
+ /**
+ * Sets the stencil mask
+ * @param[in] stencilMask The stencil mask
+ */
+ void SetStencilMask( int stencilMask );
+
+ /**
+ * Gets the stencil mask
+ * @return The stencil mask
+ */
+ int GetStencilMask() const;
+
+ /**
+ * Sets the stencil operation for when the stencil test fails
+ * @param[in] stencilOperationOnFail The stencil operation
+ */
+ void SetStencilOperationOnFail( StencilOperation::Type stencilOperationOnFail );
+
+ /**
+ * Gets the stencil operation for when the stencil test fails
+ * @return The stencil operation
+ */
+ StencilOperation::Type GetStencilOperationOnFail() const;
+
+ /**
+ * Sets the stencil operation for when the depth test fails
+ * @param[in] stencilOperationOnZFail The stencil operation
+ */
+ void SetStencilOperationOnZFail( StencilOperation::Type stencilOperationOnZFail );
+
+ /**
+ * Gets the stencil operation for when the depth test fails
+ * @return The stencil operation
+ */
+ StencilOperation::Type GetStencilOperationOnZFail() const;
+
+ /**
+ * Sets the stencil operation for when the depth test passes
+ * @param[in] stencilOperationOnZPass The stencil operation
+ */
+ void SetStencilOperationOnZPass( StencilOperation::Type stencilOperationOnZPass );
+
+ /**
+ * Gets the stencil operation for when the depth test passes
+ * @return The stencil operation
+ */
+ StencilOperation::Type GetStencilOperationOnZPass() const;
+
+ /**
+ * Sets whether or not to write to the color buffer
+ * @param[in] writeToColorBuffer True to write to the color buffer
+ */
+ void SetWriteToColorBuffer( bool writeToColorBuffer );
+
+ /**
+ * Gets whether or not to write to the color buffer
+ * @return True to write to the color buffer
+ */
+ bool GetWriteToColorBuffer() const;
+
+ /**
+ * Called to render during RenderManager::Render().
+ * @param[in] context The context used for rendering
+ * @param[in] textureCache The texture cache used to get textures
+ * @param[in] bufferIndex The index of the previous update buffer.
+ * @param[in] node The node using this renderer
+ * @param[in] defaultShader in case there is no custom shader
+ * @param[in] modelViewMatrix The model-view matrix.
+ * @param[in] viewMatrix The view matrix.
+ * @param[in] projectionMatrix The projection matrix.
+ */
+ void Render( Context& context,
+ SceneGraph::TextureCache& textureCache,
+ BufferIndex bufferIndex,
+ const SceneGraph::NodeDataProvider& node,
+ SceneGraph::Shader& defaultShader,
+ const Matrix& modelMatrix,
+ const Matrix& modelViewMatrix,
+ const Matrix& viewMatrix,
+ const Matrix& projectionMatrix,
+ const Vector3& size,
+ bool blend);
+
+ /**
+ * Write the renderer's sort attributes to the passed in reference
+ *
+ * @param[in] bufferIndex The current update buffer index.
+ * @param[out] sortAttributes
+ */
+ void SetSortAttributes( BufferIndex bufferIndex, SceneGraph::RendererWithSortAttributes& sortAttributes ) const;