class RendererFactoryCache;
typedef IntrusivePtr<RendererFactoryCache> RendererFactoryCachePtr;
+class ImageAtlasManager;
+typedef IntrusivePtr<ImageAtlasManager> ImageAtlasManagerPtr;
+
/**
* @copydoc Toolkit::RendererFactory
*/
class RendererFactory : public BaseObject
{
-
public:
+ enum RendererType
+ {
+ COLOR,
+ BORDER,
+ GRADIENT,
+ IMAGE,
+ N_PATCH,
+ SVG,
+ MESH,
+ PRIMITIVE,
+ UNDEFINED
+ };
+
/**
* @brief Constructor
+ *
+ * @param[in] debugEnabled If true, use debug renderer to replace all the concrete renderer.
*/
- RendererFactory();
+ RendererFactory( bool debugEnabled );
/**
- * @copydoc Toolkit::RenderFactory::GetControlRenderer( const Property::Map& )
+ * @copydoc Toolkit::RenderFactory::CreateControlRenderer( const Property::Map& )
*/
- Toolkit::ControlRenderer GetControlRenderer( const Property::Map& propertyMap );
+ Toolkit::ControlRenderer CreateControlRenderer( const Property::Map& propertyMap );
/**
- * @copydoc Toolkit::RenderFactory::GetControlRenderer( const Vector4& )
+ * @copydoc Toolkit::RenderFactory::CreateControlRenderer( const Image& )
*/
- Toolkit::ControlRenderer GetControlRenderer( const Vector4& color );
+ Toolkit::ControlRenderer CreateControlRenderer( const Image& image );
/**
- * @copydoc Toolkit::RendererFactory::ResetRenderer( Toolkit::ControlRenderer&, const Vector4& )
+ * @copydoc Toolkit::RenderFactory::CreateControlRenderer( const std::string&, ImageDimensions )
*/
- bool ResetRenderer( Toolkit::ControlRenderer& renderer, const Vector4& color );
+ Toolkit::ControlRenderer CreateControlRenderer( const std::string& image, ImageDimensions size );
+public:
/**
- * @copydoc Toolkit::RenderFactory::GetControlRenderer( float, const Vector4& )
+ * @brief Returns an image to be used when a renderer has failed to correctly render
*/
- Toolkit::ControlRenderer GetControlRenderer( float borderSize, const Vector4& borderColor );
+ static Image GetBrokenRendererImage();
- /**
- * @copydoc Toolkit::RenderFactory::GetControlRenderer( const Image& )
- */
- Toolkit::ControlRenderer GetControlRenderer( const Image& image );
+protected:
/**
- * @copydoc Toolkit::RendererFactory::ResetRenderer( Toolkit::ControlRenderer&, const Image& )
+ * A reference counted object may only be deleted by calling Unreference()
*/
- bool ResetRenderer( Toolkit::ControlRenderer& renderer, const Image& image );
+ virtual ~RendererFactory();
- /**
- * @copydoc Toolkit::RenderFactory::GetControlRenderer( const std::string& )
- */
- Toolkit::ControlRenderer GetControlRenderer( const std::string& image );
+private:
/**
- * @copydoc Toolkit::RendererFactory::ResetRenderer( Toolkit::ControlRenderer&, const std::string& )
+ * Get the renderer type from the property map.
+ *
+ * @param[in] propertyMap The map contains the properties of the control renderer
+ * @return The rendererType
*/
- bool ResetRenderer( Toolkit::ControlRenderer& renderer, const std::string& image );
-
-protected:
+ RendererType GetRendererType( const Property::Map& propertyMap );
/**
- * A reference counted object may only be deleted by calling Unreference()
+ * Prepare the atlas manager
*/
- virtual ~RendererFactory();
-
-private:
+ void CreateAtlasManager();
/**
* Undefined copy constructor.
private:
RendererFactoryCachePtr mFactoryCache;
+ ImageAtlasManagerPtr mAtlasManager;
+ bool mDebugEnabled;
};
} // namespace Internal