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,
+ 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& )
*/
- Toolkit::ControlRenderer GetControlRenderer( const Property::Map& propertyMap );
+ Toolkit::ControlRenderer GetControlRenderer( const Property::Map& propertyMap );
+
+ /**
+ * @copydoc Toolkit::RenderFactory::ResetRenderer( Toolkit::ControlRenderer& renderer, Actor& actor, const Property::Map& propertyMap )
+ */
+ void ResetRenderer( Toolkit::ControlRenderer& renderer, Actor& actor, const Property::Map& propertyMap );
/**
* @copydoc Toolkit::RenderFactory::GetControlRenderer( const Vector4& )
Toolkit::ControlRenderer GetControlRenderer( const Vector4& color );
/**
- * @copydoc Toolkit::RendererFactory::ResetRenderer( Toolkit::ControlRenderer&, const Vector4& )
+ * @copydoc Toolkit::RendererFactory::ResetRenderer( Toolkit::ControlRenderer&, Actor& actor, const Vector4& )
*/
- bool ResetRenderer( Toolkit::ControlRenderer& renderer, const Vector4& color );
+ void ResetRenderer( Toolkit::ControlRenderer& renderer, Actor& actor, const Vector4& color );
/**
- * @copydoc Toolkit::RenderFactory::GetControlRenderer( float, const Vector4& )
+ * @copydoc Toolkit::RenderFactory::GetControlRenderer( float, const Vector4&, bool )
*/
- Toolkit::ControlRenderer GetControlRenderer( float borderSize, const Vector4& borderColor );
+ Toolkit::ControlRenderer GetControlRenderer( float borderSize, const Vector4& borderColor, bool antiAliasing );
/**
* @copydoc Toolkit::RenderFactory::GetControlRenderer( const Image& )
Toolkit::ControlRenderer GetControlRenderer( const Image& image );
/**
- * @copydoc Toolkit::RendererFactory::ResetRenderer( Toolkit::ControlRenderer&, const Image& )
+ * @copydoc Toolkit::RendererFactory::ResetRenderer( Toolkit::ControlRenderer&, Actor& actor, const Image& )
+ */
+ void ResetRenderer( Toolkit::ControlRenderer& renderer, Actor& actor, const Image& image );
+
+ /**
+ * @copydoc Toolkit::RenderFactory::GetControlRenderer( const std::string&, ImageDimensions )
*/
- bool ResetRenderer( Toolkit::ControlRenderer& renderer, const Image& image );
+ Toolkit::ControlRenderer GetControlRenderer( const std::string& image, ImageDimensions size );
/**
- * @copydoc Toolkit::RenderFactory::GetControlRenderer( const std::string& )
+ * @copydoc Toolkit::RendererFactory::ResetRenderer( Toolkit::ControlRenderer&, Actor& actor, const std::string&, ImageDimensions )
*/
- Toolkit::ControlRenderer GetControlRenderer( const std::string& image );
+ void ResetRenderer( Toolkit::ControlRenderer& renderer, Actor& actor, const std::string& image, ImageDimensions size );
+public:
/**
- * @copydoc Toolkit::RendererFactory::ResetRenderer( Toolkit::ControlRenderer&, const std::string& )
+ * @brief Returns an image to be used when a renderer has failed to correctly render
*/
- bool ResetRenderer( Toolkit::ControlRenderer& renderer, const std::string& image );
+ static Image GetBrokenRendererImage();
protected:
private:
/**
+ * Get the renderer type from the property map.
+ *
+ * @param[in] propertyMap The map contains the properties of the control renderer
+ * @return The rendererType
+ */
+ RendererType GetRendererType( const Property::Map& propertyMap );
+
+ /**
+ * Prepare the atlas manager
+ */
+ void CreateAtlasManager();
+
+ /**
* Undefined copy constructor.
*/
RendererFactory(const RendererFactory&);
private:
RendererFactoryCachePtr mFactoryCache;
+ ImageAtlasManagerPtr mAtlasManager;
+ bool mDebugEnabled;
};
} // namespace Internal