[Tizen] CanvasRenderer::Shape: Add ResetPath() method for reset path information 75/256875/1
authorJunsuChoi <jsuya.choi@samsung.com>
Tue, 13 Apr 2021 07:07:30 +0000 (16:07 +0900)
committerJunsuChoi <jsuya.choi@samsung.com>
Wed, 14 Apr 2021 05:35:45 +0000 (14:35 +0900)
There was no way to modify or remote previously added path information.
The user can update the shape by deleting the path information
and adding a new path information by using ResetPath() API.

Change-Id: Ia5a6484877aa410c18ba6c53d72bc65c77ad09fa

dali/devel-api/adaptor-framework/canvas-renderer-shape.cpp
dali/devel-api/adaptor-framework/canvas-renderer-shape.h
dali/internal/canvas-renderer/common/shape-impl.cpp
dali/internal/canvas-renderer/common/shape-impl.h
dali/internal/canvas-renderer/tizen/shape-impl-tizen.cpp
dali/internal/canvas-renderer/tizen/shape-impl-tizen.h
dali/internal/canvas-renderer/ubuntu/shape-impl-ubuntu.cpp
dali/internal/canvas-renderer/ubuntu/shape-impl-ubuntu.h

index 4dd6b75..56fc4ce 100644 (file)
@@ -78,6 +78,11 @@ bool CanvasRenderer::Shape::Close()
   return GetImplementation(*this).Close();
 }
 
+bool CanvasRenderer::Shape::ResetPath()
+{
+  return GetImplementation(*this).ResetPath();
+}
+
 bool CanvasRenderer::Shape::SetFillColor(Vector4 color)
 {
   return GetImplementation(*this).SetFillColor(color);
index ddd621c..91ca295 100644 (file)
@@ -180,6 +180,13 @@ public:
   bool Close();
 
   /**
+   * @brief Reset the added path(rect, circle, path, etc...) information.
+   * Color and Stroke information are keeped.
+   * @return Returns True when it's successful. False otherwise.
+   */
+  bool ResetPath();
+
+  /**
    * @brief Set the color to use for filling the path.
    * @param[in] color The color value.
    * @return Returns True when it's successful. False otherwise.
index 3b3e850..b71e7a6 100644 (file)
@@ -63,6 +63,11 @@ bool Shape::Close()
   return false;
 }
 
+bool Shape::ResetPath()
+{
+  return false;
+}
+
 bool Shape::SetFillColor(Vector4 color)
 {
   return false;
index e5b485d..2b61935 100644 (file)
@@ -82,11 +82,16 @@ public:
   virtual bool AddCubicTo(Vector2 controlPoint1, Vector2 controlPoint2, Vector2 endPoint);
 
   /**
-   * @copydoc Dali::CanvasRenderer::Shape::AddClose
+   * @copydoc Dali::CanvasRenderer::Shape::Close
    */
   virtual bool Close();
 
   /**
+   * @copydoc Dali::CanvasRenderer::Shape::ResetPath
+   */
+  virtual bool ResetPath();
+
+  /**
    * @copydoc Dali::CanvasRenderer::Shape::SetFillColor
    */
   virtual bool SetFillColor(Vector4 color);
index 5e66c54..5351261 100644 (file)
@@ -184,6 +184,27 @@ bool ShapeTizen::Close()
   return true;
 }
 
+bool ShapeTizen::ResetPath()
+{
+#ifdef THORVG_SUPPORT
+  if(!mTvgShape)
+  {
+    DALI_LOG_ERROR("Shape is null\n");
+    return false;
+  }
+
+  if(static_cast<tvg::Shape*>(mTvgShape)->reset() != tvg::Result::Success)
+  {
+    DALI_LOG_ERROR("reset() fail.\n");
+    return false;
+  }
+  Drawable::SetChanged(true);
+  return true;
+#else
+  return false;
+#endif
+}
+
 bool ShapeTizen::SetFillColor(Vector4 color)
 {
   if(!mTvgShape)
index 578a135..156133b 100644 (file)
@@ -81,6 +81,11 @@ public:
   bool Close() override;
 
   /**
+   * @copydoc Dali::CanvasRenderer::Shape::ResetPath
+   */
+  bool ResetPath() override;
+
+  /**
    * @copydoc Dali::CanvasRenderer::Shape::SetFillColor
    */
   bool SetFillColor(Vector4 color) override;
index 79a4871..ac6d09d 100644 (file)
@@ -217,6 +217,27 @@ bool ShapeUbuntu::Close()
 #endif
 }
 
+bool ShapeUbuntu::ResetPath()
+{
+#ifdef THORVG_SUPPORT
+  if(!mTvgShape)
+  {
+    DALI_LOG_ERROR("Shape is null\n");
+    return false;
+  }
+
+  if(static_cast<tvg::Shape*>(mTvgShape)->reset() != tvg::Result::Success)
+  {
+    DALI_LOG_ERROR("reset() fail.\n");
+    return false;
+  }
+  Drawable::SetChanged(true);
+  return true;
+#else
+  return false;
+#endif
+}
+
 bool ShapeUbuntu::SetFillColor(Vector4 color)
 {
 #ifdef THORVG_SUPPORT
index 491a2bd..bd4b087 100644 (file)
@@ -83,6 +83,11 @@ public:
   bool Close() override;
 
   /**
+   * @copydoc Dali::CanvasRenderer::Shape::ResetPath
+   */
+  bool ResetPath() override;
+
+  /**
    * @copydoc Dali::CanvasRenderer::Shape::SetFillColor
    */
   bool SetFillColor(Vector4 color) override;