examples: revise example code.
authorHermet Park <chuneon.park@samsung.com>
Wed, 4 Nov 2020 08:56:33 +0000 (17:56 +0900)
committerHermet Park <chuneon.park@samsung.com>
Thu, 5 Nov 2020 01:26:22 +0000 (10:26 +0900)
Move the Clear call to the end of drawing those scenarios doesn't need to retain paints resources.

We should show the examples as the best usage.

@Issues: 75

Change-Id: Ieea116077e578742d627b71fb5fad395a74dbc9d

21 files changed:
src/examples/Arc.cpp
src/examples/Blending.cpp
src/examples/Boundary.cpp
src/examples/ClipPath.cpp
src/examples/Duplicate.cpp
src/examples/FillRule.cpp
src/examples/LinearGradient.cpp
src/examples/MultiCanvas.cpp
src/examples/MultiShapes.cpp
src/examples/Opacity.cpp
src/examples/Path.cpp
src/examples/PathCopy.cpp
src/examples/RadialGradient.cpp
src/examples/Scene.cpp
src/examples/Shape.cpp
src/examples/Stroke.cpp
src/examples/StrokeLine.cpp
src/examples/Svg.cpp
src/examples/Svg2.cpp
src/examples/Update.cpp
src/lib/sw_engine/tvgSwResMgr.cpp

index ccd75fb..4bedced 100644 (file)
@@ -93,6 +93,7 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+    swCanvas->clear();  //Flush out cached resource
 }
 
 
index 81f3e01..a821d66 100644 (file)
@@ -76,6 +76,9 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -109,6 +112,9 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index e39e1cb..cc89f28 100644 (file)
@@ -65,6 +65,9 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -98,6 +101,9 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index f695fe1..2b24667 100644 (file)
@@ -135,6 +135,9 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -168,6 +171,9 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index 2c94642..799248a 100644 (file)
@@ -117,6 +117,9 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -150,6 +153,9 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index dd6728e..ce5bd34 100644 (file)
@@ -59,6 +59,9 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -92,6 +95,9 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index 8d25543..0e87e52 100644 (file)
@@ -94,6 +94,9 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -127,6 +130,9 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index e8739af..42ea214 100644 (file)
@@ -79,6 +79,9 @@ void drawSwView(void* data, Eo* obj)
     if (canvas->draw() == tvg::Result::Success) {
         canvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    canvas->clear();
 }
 
 
@@ -160,6 +163,9 @@ void drawGLview(Evas_Object *obj)
     if (canvas->draw() == tvg::Result::Success) {
         canvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    canvas->clear();
 }
 
 
index c7b88a0..a629a66 100644 (file)
@@ -54,6 +54,9 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -87,6 +90,9 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index 3b9dd44..afc7309 100644 (file)
@@ -83,6 +83,9 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -116,6 +119,9 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index 3b4241e..5d22adc 100644 (file)
@@ -71,6 +71,9 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -104,6 +107,9 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index fca78be..13747f3 100644 (file)
@@ -108,6 +108,9 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -141,6 +144,9 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index c33ba43..e778ffe 100644 (file)
@@ -94,6 +94,9 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -127,6 +130,9 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index 4760b94..3e80908 100644 (file)
@@ -101,6 +101,9 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -134,6 +137,9 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index 235e82e..200ad2d 100644 (file)
@@ -44,6 +44,9 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -77,6 +80,9 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index a1beeee..707b21d 100644 (file)
@@ -102,6 +102,8 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -135,6 +137,8 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index 6c8cc7b..33acccf 100644 (file)
@@ -176,6 +176,8 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -209,6 +211,8 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
@@ -237,7 +241,6 @@ int main(int argc, char **argv)
     //Initialize ThorVG Engine
     if (tvg::Initializer::init(tvgEngine, threads) == tvg::Result::Success) {
 
-
         elm_init(argc, argv);
 
         if (tvgEngine == tvg::CanvasEngine::Sw) {
index d1ef9e7..548ece5 100644 (file)
@@ -97,6 +97,8 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -130,6 +132,8 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index 4cf6114..b9cf5c0 100644 (file)
@@ -69,6 +69,8 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -102,6 +104,8 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 
index 8ebe428..fdd0045 100644 (file)
@@ -19,9 +19,6 @@ void tvgUpdateCmds(tvg::Canvas* canvas, float progress)
 {
     if (!canvas) return;
 
-    //Explicitly clear all retained paint nodes.
-    if (canvas->clear() != tvg::Result::Success) return;
-
     //Shape
     auto shape = tvg::Shape::gen();
     shape->appendRect(-100, -100, 200, 200, (100 * progress), (100 * progress));
@@ -68,6 +65,8 @@ void drawSwView(void* data, Eo* obj)
     if (swCanvas->draw() == tvg::Result::Success) {
         swCanvas->sync();
     }
+    //Explicitly clear all retained resources.
+    swCanvas->clear();
 }
 
 
@@ -101,6 +100,8 @@ void drawGLview(Evas_Object *obj)
     if (glCanvas->draw() == tvg::Result::Success) {
         glCanvas->sync();
     }
+    //Explicitly clear all retained resources.
+    glCanvas->clear();
 }
 
 void transitGlCb(Elm_Transit_Effect *effect, Elm_Transit* transit, double progress)
index 3a33e9f..6a21260 100644 (file)
@@ -50,6 +50,7 @@ void resMgrRetrieveOutline(unsigned idx)
 
 bool resMgrInit(unsigned threads)
 {
+    if (threads == 0) threads = 1;
     sharedOutline.reserve(threads);
     sharedOutline.resize(threads);
     threadsCnt = threads;