Anti-Aliasing of BorderRenderer
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / controls / renderers / renderer-factory-impl.h
index 44af828..e129aef 100644 (file)
@@ -36,6 +36,9 @@ namespace Internal
 class RendererFactoryCache;
 typedef IntrusivePtr<RendererFactoryCache> RendererFactoryCachePtr;
 
+class ImageAtlasManager;
+typedef IntrusivePtr<ImageAtlasManager> ImageAtlasManagerPtr;
+
 /**
  * @copydoc Toolkit::RendererFactory
  */
@@ -46,13 +49,61 @@ public:
 
   /**
    * @brief Constructor
+   *
+   * @param[in] debugEnabled If true, use debug renderer to replace all the concrete renderer.
+   */
+  RendererFactory( bool debugEnabled );
+
+  /**
+   * @copydoc Toolkit::RenderFactory::GetControlRenderer( const Property::Map& )
+   */
+  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&, Actor& actor, const Vector4& )
+   */
+  void ResetRenderer( Toolkit::ControlRenderer& renderer, Actor& actor, const Vector4& color );
+
+  /**
+   * @copydoc Toolkit::RenderFactory::GetControlRenderer( float, const Vector4&, bool )
    */
-  RendererFactory();
+  Toolkit::ControlRenderer GetControlRenderer( float borderSize, const Vector4& borderColor, bool antiAliasing );
 
   /**
-   * @copydoc Toolkit::RenderFactory::GetControlRenderer
+   * @copydoc Toolkit::RenderFactory::GetControlRenderer( const Image& )
    */
-  Toolkit::ControlRenderer GetControlRenderer( const Property::Map& propertyMap  );
+  Toolkit::ControlRenderer GetControlRenderer( const Image& 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 )
+   */
+  Toolkit::ControlRenderer GetControlRenderer( const std::string& image, ImageDimensions size );
+
+  /**
+   * @copydoc Toolkit::RendererFactory::ResetRenderer( Toolkit::ControlRenderer&, Actor& actor, const std::string&, ImageDimensions )
+   */
+  void ResetRenderer( Toolkit::ControlRenderer& renderer, Actor& actor, const std::string& image, ImageDimensions size );
+
+public:
+  /**
+   * @brief Returns an image to be used when a renderer has failed to correctly render
+   */
+  static Image GetBrokenRendererImage();
 
 protected:
 
@@ -64,6 +115,11 @@ protected:
 private:
 
   /**
+   * Prepare the atlas manager
+   */
+  void CreateAtlasManager();
+
+  /**
    * Undefined copy constructor.
    */
   RendererFactory(const RendererFactory&);
@@ -76,6 +132,8 @@ private:
 private:
 
   RendererFactoryCachePtr mFactoryCache;
+  ImageAtlasManagerPtr    mAtlasManager;
+  bool                    mDebugEnabled;
 };
 
 } // namespace Internal