common: code refactoring 60/239760/3
authorHermet Park <chuneon.park@samsung.com>
Wed, 29 Jul 2020 11:41:34 +0000 (20:41 +0900)
committerHermet Park <chuneon.park@samsung.com>
Wed, 29 Jul 2020 11:49:59 +0000 (20:49 +0900)
keep consistency of internal functions among the paint type methods.

Change-Id: I98a42ac398ddc5aaf49ac59e5cbb1790266bd612

src/lib/tvgCanvasImpl.h
src/lib/tvgSceneImpl.h
src/lib/tvgShape.cpp
src/lib/tvgShapeImpl.h

index 94737c9..5960f02 100644 (file)
@@ -59,10 +59,10 @@ struct Canvas::Impl
             if (paint->id() == PAINT_ID_SCENE) {
                 //We know renderer type, avoid dynamic_cast for performance.
                 auto scene = static_cast<Scene*>(paint);
-                if (!SCENE_IMPL->clear(*renderer)) return Result::InsufficientCondition;
+                if (!SCENE_IMPL->dispose(*renderer)) return Result::InsufficientCondition;
             } else {
                 auto shape = static_cast<Shape*>(paint);
-                if (!SHAPE_IMPL->dispose(*shape, *renderer)) return Result::InsufficientCondition;
+                if (!SHAPE_IMPL->dispose(*renderer)) return Result::InsufficientCondition;
             }
             delete(paint);
         }
@@ -79,10 +79,10 @@ struct Canvas::Impl
             if (paint->id() == PAINT_ID_SCENE) {
                 //We know renderer type, avoid dynamic_cast for performance.
                 auto scene = static_cast<Scene*>(paint);
-                if (!SCENE_IMPL->update(*renderer, nullptr)) return Result::InsufficientCondition;
+                if (!SCENE_IMPL->update(*renderer, nullptr, RenderUpdateFlag::None)) return Result::InsufficientCondition;
             } else {
                 auto shape = static_cast<Shape*>(paint);
-                if (!SHAPE_IMPL->update(*shape, *renderer, nullptr)) return Result::InsufficientCondition;
+                if (!SHAPE_IMPL->update(*renderer, nullptr, RenderUpdateFlag::None)) return Result::InsufficientCondition;
             }
         }
         return Result::Success;
@@ -95,10 +95,10 @@ struct Canvas::Impl
         if (paint->id() == PAINT_ID_SCENE) {
             //We know renderer type, avoid dynamic_cast for performance.
             auto scene = static_cast<Scene*>(paint);
-            if (!SCENE_IMPL->update(*renderer)) return Result::InsufficientCondition;
+            if (!SCENE_IMPL->update(*renderer, nullptr, RenderUpdateFlag::None)) return Result::InsufficientCondition;
         } else {
             auto shape = static_cast<Shape*>(paint);
-            if (!SHAPE_IMPL->update(*shape, *renderer)) return Result::InsufficientCondition;
+            if (!SHAPE_IMPL->update(*renderer, nullptr, RenderUpdateFlag::None)) return Result::InsufficientCondition;
         }
         return Result::Success;
     }
@@ -116,7 +116,7 @@ struct Canvas::Impl
                 if(!SCENE_IMPL->render(*renderer)) return Result::InsufficientCondition;
             } else {
                 auto shape = static_cast<Shape*>(paint);
-                if(!SHAPE_IMPL->render(*shape, *renderer)) return Result::InsufficientCondition;
+                if(!SHAPE_IMPL->render(*renderer)) return Result::InsufficientCondition;
             }
         }
 
index 08b42d3..b8d71f2 100644 (file)
@@ -37,16 +37,16 @@ struct Scene::Impl
         if (rTransform) delete(rTransform);
     }
 
-    bool clear(RenderMethod& renderer)
+    bool dispose(RenderMethod& renderer)
     {
         for (auto paint : paints) {
             if (paint->id() == PAINT_ID_SCENE) {
                 //We know renderer type, avoid dynamic_cast for performance.
                 auto scene = static_cast<Scene*>(paint);
-                if (!SCENE_IMPL->clear(renderer)) return false;
+                if (!SCENE_IMPL->dispose(renderer)) return false;
             } else {
                 auto shape = static_cast<Shape*>(paint);
-                if (!SHAPE_IMPL->dispose(*shape, renderer)) return false;
+                if (!SHAPE_IMPL->dispose(renderer)) return false;
             }
             delete(paint);
         }
@@ -64,13 +64,13 @@ struct Scene::Impl
                 if (!SCENE_IMPL->update(renderer, transform, flag)) return false;
             } else {
                 auto shape = static_cast<Shape*>(paint);
-                if (!SHAPE_IMPL->update(*shape, renderer, transform, flag)) return false;
+                if (!SHAPE_IMPL->update(renderer, transform, flag)) return false;
             }
         }
         return true;
     }
 
-    bool update(RenderMethod &renderer, const RenderTransform* pTransform = nullptr, uint32_t pFlag = 0)
+    bool update(RenderMethod &renderer, const RenderTransform* pTransform, uint32_t pFlag)
     {
         if (loader) {
             auto scene = loader->data();
@@ -114,7 +114,7 @@ struct Scene::Impl
                 if(!SCENE_IMPL->render(renderer)) return false;
             } else {
                 auto shape = static_cast<Shape*>(paint);
-                if(!SHAPE_IMPL->render(*shape, renderer)) return false;
+                if(!SHAPE_IMPL->render(renderer)) return false;
             }
         }
         return true;
index ddd3ef0..648c0ee 100644 (file)
@@ -29,7 +29,7 @@ constexpr auto PATH_KAPPA = 0.552284f;
 /* External Class Implementation                                        */
 /************************************************************************/
 
-Shape :: Shape() : pImpl(make_unique<Impl>())
+Shape :: Shape() : pImpl(make_unique<Impl>(this))
 {
     _id = PAINT_ID_SHAPE;
 
index c38916a..b733bd5 100644 (file)
@@ -48,9 +48,10 @@ struct Shape::Impl
     uint8_t color[4] = {0, 0, 0, 0};    //r, g, b, a
     uint32_t flag = RenderUpdateFlag::None;
     void *edata = nullptr;              //engine data
+    Shape *shape = nullptr;
 
 
-    Impl() : path(new ShapePath)
+    Impl(Shape* s) : path(new ShapePath), shape(s)
     {
     }
 
@@ -62,17 +63,17 @@ struct Shape::Impl
         if (rTransform) delete(rTransform);
     }
 
-    bool dispose(Shape& shape, RenderMethod& renderer)
+    bool dispose(RenderMethod& renderer)
     {
-        return renderer.dispose(shape, edata);
+        return renderer.dispose(*shape, edata);
     }
 
-    bool render(Shape& shape, RenderMethod& renderer)
+    bool render(RenderMethod& renderer)
     {
-        return renderer.render(shape, edata);
+        return renderer.render(*shape, edata);
     }
 
-    bool update(Shape& shape, RenderMethod& renderer, const RenderTransform* pTransform = nullptr, uint32_t pFlag = 0)
+    bool update(RenderMethod& renderer, const RenderTransform* pTransform, uint32_t pFlag)
     {
         if (flag & RenderUpdateFlag::Transform) {
             if (!rTransform) return false;
@@ -84,10 +85,10 @@ struct Shape::Impl
 
         if (rTransform && pTransform) {
             RenderTransform outTransform(pTransform, rTransform);
-            edata = renderer.prepare(shape, edata, &outTransform, static_cast<RenderUpdateFlag>(pFlag | flag));
+            edata = renderer.prepare(*shape, edata, &outTransform, static_cast<RenderUpdateFlag>(pFlag | flag));
         } else {
             auto outTransform = pTransform ? pTransform : rTransform;
-            edata = renderer.prepare(shape, edata, outTransform, static_cast<RenderUpdateFlag>(pFlag | flag));
+            edata = renderer.prepare(*shape, edata, outTransform, static_cast<RenderUpdateFlag>(pFlag | flag));
         }
 
         flag = RenderUpdateFlag::None;