examples: ++safety.

Guarantee the resource free at the termination.
This commit is contained in:
Hermet Park 2023-12-31 11:22:24 +09:00
parent ab744fc164
commit 4ebbd0aefc
11 changed files with 46 additions and 4 deletions

View file

@ -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

View file

@ -191,6 +191,9 @@ int main(int argc, char **argv)
}
elm_run();
elm_transit_del(transit);
elm_shutdown();
//Terminate ThorVG Engine

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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