+ void RemoveRenderer( Render::Renderer* renderer );
+
+ /**
+ * Add a sampler to the render manager.
+ * @param[in] sampler The sampler to add.
+ * @post sampler is owned by RenderManager
+ */
+ void AddSampler( OwnerPointer< Render::Sampler >& sampler );
+
+ /**
+ * Remove a sampler from the render manager.
+ * @param[in] sampler The sampler to remove.
+ * @post sampler is destroyed.
+ */
+ void RemoveSampler( Render::Sampler* sampler );
+
+ /**
+ * Set minification and magnification filter modes for a sampler
+ * @param[in] minFilterMode Filter mode to use when the texture is minificated
+ * @param[in] magFilterMode Filter mode to use when the texture is magnified
+ */
+ void SetFilterMode( Render::Sampler* sampler, uint32_t minFilterMode, uint32_t magFilterMode );
+
+ /**
+ * Set wrapping mode for a sampler
+ * @param[in] rWrapMode Wrap mode in the z direction
+ * @param[in] uWrapMode Wrap mode in the x direction
+ * @param[in] vWrapMode Wrap mode in the y direction
+ */
+ void SetWrapMode( Render::Sampler* sampler, uint32_t rWrapMode, uint32_t sWrapMode, uint32_t tWrapMode );
+
+ /**
+ * Add a property buffer to the render manager.
+ * @param[in] propertyBuffer The property buffer to add.
+ * @post propertBuffer is owned by RenderManager
+ */
+ void AddPropertyBuffer( OwnerPointer< Render::PropertyBuffer >& propertyBuffer );
+
+ /**
+ * Remove a property buffer from the render manager.
+ * @param[in] propertyBuffer The property buffer to remove.
+ * @post propertyBuffer is destroyed.
+ */
+ void RemovePropertyBuffer( Render::PropertyBuffer* propertyBuffer );
+
+ /**
+ * Add a geometry to the render manager.
+ * @param[in] geometry The geometry to add.
+ * @post geometry is owned by RenderManager
+ */
+ void AddGeometry( OwnerPointer< Render::Geometry >& geometry );
+
+ /**
+ * Remove a geometry from the render manager.
+ * @param[in] geometry The geometry to remove.
+ * @post geometry is destroyed.
+ */
+ void RemoveGeometry( Render::Geometry* geometry );
+
+ /**
+ * Adds a property buffer to a geometry from the render manager.
+ * @param[in] geometry The geometry
+ * @param[in] propertyBuffer The property buffer to remove.
+ */
+ void AttachVertexBuffer( Render::Geometry* geometry, Render::PropertyBuffer* propertyBuffer );
+
+ /**
+ * Remove a property buffer from a Render::Geometry from the render manager.
+ * @param[in] geometry The geometry
+ * @param[in] propertyBuffer The property buffer to remove.
+ * @post property buffer is destroyed.
+ */
+ void RemoveVertexBuffer( Render::Geometry* geometry, Render::PropertyBuffer* propertyBuffer );
+
+ /**
+ * Sets the format of an existing property buffer
+ * @param[in] propertyBuffer The property buffer.
+ * @param[in] format The new format of the buffer
+ */
+ void SetPropertyBufferFormat( Render::PropertyBuffer* propertyBuffer, OwnerPointer< Render::PropertyBuffer::Format>& format );
+
+ /**
+ * Sets the data of an existing property buffer
+ * @param[in] propertyBuffer The property buffer.
+ * @param[in] data The new data of the buffer
+ * @param[in] size The new size of the buffer
+ */
+ void SetPropertyBufferData( Render::PropertyBuffer* propertyBuffer, OwnerPointer< Vector<uint8_t> >& data, uint32_t size );
+
+ /**
+ * Sets the data for the index buffer of an existing geometry
+ * @param[in] geometry The geometry
+ * @param[in] data A vector containing the indices
+ */
+ void SetIndexBuffer( Render::Geometry* geometry, Dali::Vector<uint16_t>& data );
+
+ /**
+ * Set the geometry type of an existing render geometry
+ * @param[in] geometry The render geometry
+ * @param[in] geometryType The new geometry type
+ */
+ void SetGeometryType( Render::Geometry* geometry, uint32_t geometryType );
+
+ /**
+ * Adds a texture to the render manager
+ * @param[in] texture The texture to add
+ */
+ void AddTexture( OwnerPointer< Render::Texture >& texture );
+
+ /**
+ * Removes a texture from the render manager
+ * @param[in] texture The texture to remove
+ */
+ void RemoveTexture( Render::Texture* texture );
+
+ /**
+ * Uploads data to an existing texture
+ * @param[in] texture The texture
+ * @param[in] pixelData The pixel data object
+ * @param[in] params The parameters for the upload
+ */
+ void UploadTexture( Render::Texture* texture, PixelDataPtr pixelData, const Texture::UploadParams& params );
+
+ /**
+ * Generates mipmaps for a given texture
+ * @param[in] texture The texture
+ */
+ void GenerateMipmaps( Render::Texture* texture );
+
+ /**
+ * Adds a framebuffer to the render manager
+ * @param[in] frameBuffer The framebuffer to add
+ */
+ void AddFrameBuffer( OwnerPointer< Render::FrameBuffer >& frameBuffer );
+
+ /**
+ * Removes a framebuffer from the render manager
+ * @param[in] frameBuffer The framebuffer to remove
+ */
+ void RemoveFrameBuffer( Render::FrameBuffer* frameBuffer );
+
+ /**
+ * Attach a texture as color output to an existing FrameBuffer
+ * @param[in] frameBuffer The FrameBuffer
+ * @param[in] texture The texture that will be used as output when rendering
+ * @param[in] mipmapLevel The mipmap of the texture to be attached
+ * @param[in] layer Indicates which layer of a cube map or array texture to attach. Unused for 2D textures
+ */
+ void AttachColorTextureToFrameBuffer( Render::FrameBuffer* frameBuffer, Render::Texture* texture, uint32_t mipmapLevel, uint32_t layer );