From 4ebbd0aefc0c2721e49a06c730a1c5aa555df928 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Sun, 31 Dec 2023 11:22:24 +0900 Subject: [PATCH] examples: ++safety. Guarantee the resource free at the termination. --- src/examples/AnimateMasking.cpp | 3 +++ src/examples/Animation.cpp | 3 +++ src/examples/CustomTransform.cpp | 3 +++ src/examples/DirectUpdate.cpp | 4 ++++ src/examples/ImageScaleDown.cpp | 3 +++ src/examples/ImageScaleUp.cpp | 3 +++ src/examples/Performance.cpp | 13 +++++++++++-- src/examples/Retaining.cpp | 9 +++++++-- src/examples/SceneTransform.cpp | 3 +++ src/examples/Transform.cpp | 3 +++ src/examples/Update.cpp | 3 +++ 11 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/examples/AnimateMasking.cpp b/src/examples/AnimateMasking.cpp index 47b2a0ac..ce5229f0 100644 --- a/src/examples/AnimateMasking.cpp +++ b/src/examples/AnimateMasking.cpp @@ -200,6 +200,9 @@ int main(int argc, char **argv) elm_transit_go(transit); elm_run(); + + elm_transit_del(transit); + elm_shutdown(); //Terminate ThorVG Engine diff --git a/src/examples/Animation.cpp b/src/examples/Animation.cpp index 6f983bd9..38b2865e 100644 --- a/src/examples/Animation.cpp +++ b/src/examples/Animation.cpp @@ -191,6 +191,9 @@ int main(int argc, char **argv) } elm_run(); + + elm_transit_del(transit); + elm_shutdown(); //Terminate ThorVG Engine diff --git a/src/examples/CustomTransform.cpp b/src/examples/CustomTransform.cpp index ff31f025..07253649 100644 --- a/src/examples/CustomTransform.cpp +++ b/src/examples/CustomTransform.cpp @@ -210,6 +210,9 @@ int main(int argc, char **argv) elm_transit_go(transit); elm_run(); + + elm_transit_del(transit); + elm_shutdown(); //Terminate ThorVG Engine diff --git a/src/examples/DirectUpdate.cpp b/src/examples/DirectUpdate.cpp index 7544d854..06e823f4 100644 --- a/src/examples/DirectUpdate.cpp +++ b/src/examples/DirectUpdate.cpp @@ -63,6 +63,7 @@ void tvgUpdateCmds(tvg::Canvas* canvas, float progress) /* Update shape directly. You can update necessary properties of this shape. */ + canvas->clear(false); //Reset Shape if (pShape->reset() == tvg::Result::Success) { @@ -197,6 +198,9 @@ int main(int argc, char **argv) elm_transit_go(transit); elm_run(); + + elm_transit_del(transit); + elm_shutdown(); //Terminate ThorVG Engine diff --git a/src/examples/ImageScaleDown.cpp b/src/examples/ImageScaleDown.cpp index 8f5a9d75..e448621b 100644 --- a/src/examples/ImageScaleDown.cpp +++ b/src/examples/ImageScaleDown.cpp @@ -182,6 +182,9 @@ int main(int argc, char **argv) elm_transit_go(transit); elm_run(); + + elm_transit_del(transit); + elm_shutdown(); //Terminate ThorVG Engine diff --git a/src/examples/ImageScaleUp.cpp b/src/examples/ImageScaleUp.cpp index e766eec4..ad69330f 100644 --- a/src/examples/ImageScaleUp.cpp +++ b/src/examples/ImageScaleUp.cpp @@ -182,6 +182,9 @@ int main(int argc, char **argv) elm_transit_go(transit); elm_run(); + + elm_transit_del(transit); + elm_shutdown(); //Terminate ThorVG Engine diff --git a/src/examples/Performance.cpp b/src/examples/Performance.cpp index 710ac9d6..8fcf6cfa 100644 --- a/src/examples/Performance.cpp +++ b/src/examples/Performance.cpp @@ -30,6 +30,7 @@ static tvg::Picture* pPicture = nullptr; static double updateTime = 0; static double accumulateTime = 0; static uint32_t cnt = 0; +static bool reqSync = false; void tvgDrawCmds(tvg::Canvas* canvas) { @@ -51,17 +52,21 @@ void tvgDrawCmds(tvg::Canvas* canvas) void tvgUpdateCmds(tvg::Canvas* canvas, float progress) { - if (!canvas) return; + if (!canvas || reqSync) return; + + canvas->clear(false); pPicture->translate(WIDTH * progress * 0.05f, HEIGHT * progress * 0.05f); auto before = ecore_time_get(); - canvas->update(pPicture); + canvas->update(); auto after = ecore_time_get(); updateTime = after - before; + + reqSync = true; } @@ -100,6 +105,7 @@ void drawSwView(void* data, Eo* obj) if (swCanvas->draw() == tvg::Result::Success) { swCanvas->sync(); + reqSync = false; } auto after = ecore_time_get(); @@ -193,6 +199,9 @@ int main(int argc, char **argv) elm_transit_go(transit); elm_run(); + + elm_transit_del(transit); + elm_shutdown(); //Terminate ThorVG Engine diff --git a/src/examples/Retaining.cpp b/src/examples/Retaining.cpp index 3d5d868d..d4bac2f5 100644 --- a/src/examples/Retaining.cpp +++ b/src/examples/Retaining.cpp @@ -189,15 +189,20 @@ int main(int argc, char **argv) elm_init(argc, argv); + Ecore_Timer* timer; + if (tvgEngine == tvg::CanvasEngine::Sw) { auto view = createSwView(); - ecore_timer_add(0.33, timerSwCb, view); + timer = ecore_timer_add(0.33, timerSwCb, view); } else { auto view = createGlView(); - ecore_timer_add(0.33, timerGlCb, view); + timer = ecore_timer_add(0.33, timerGlCb, view); } elm_run(); + + ecore_timer_del(timer); + elm_shutdown(); //Terminate ThorVG Engine diff --git a/src/examples/SceneTransform.cpp b/src/examples/SceneTransform.cpp index d52629f1..062be5f3 100644 --- a/src/examples/SceneTransform.cpp +++ b/src/examples/SceneTransform.cpp @@ -231,6 +231,9 @@ int main(int argc, char **argv) elm_transit_go(transit); elm_run(); + + elm_transit_del(transit); + elm_shutdown(); //Terminate ThorVG Engine diff --git a/src/examples/Transform.cpp b/src/examples/Transform.cpp index 60a7600c..9b326588 100644 --- a/src/examples/Transform.cpp +++ b/src/examples/Transform.cpp @@ -188,6 +188,9 @@ int main(int argc, char **argv) elm_transit_go(transit); elm_run(); + + elm_transit_del(transit); + elm_shutdown(); //Terminate ThorVG Engine diff --git a/src/examples/Update.cpp b/src/examples/Update.cpp index 32c452ba..32325eb5 100644 --- a/src/examples/Update.cpp +++ b/src/examples/Update.cpp @@ -176,6 +176,9 @@ int main(int argc, char **argv) elm_transit_go(transit); elm_run(); + + elm_transit_del(transit); + elm_shutdown(); //Terminate ThorVG Engine