examples: ++safety.

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

View file

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

View file

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

View file

@ -203,6 +203,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) {
@ -190,6 +191,9 @@ int main(int argc, char **argv)
elm_transit_go(transit);
elm_run();
elm_transit_del(transit);
elm_shutdown();
//Terminate ThorVG Engine

View file

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

View file

@ -181,6 +181,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,7 +52,9 @@ void tvgDrawCmds(tvg::Canvas* canvas)
void tvgUpdateCmds(tvg::Canvas* canvas, float progress)
{
if (!canvas) return;
if (!canvas || reqSync) return;
canvas->clear(false);
canvas->clear(false);
@ -59,11 +62,13 @@ void tvgUpdateCmds(tvg::Canvas* canvas, float progress)
auto before = ecore_time_get();
canvas->update(pPicture);
canvas->update();
auto after = ecore_time_get();
updateTime = after - before;
reqSync = true;
}
@ -102,6 +107,7 @@ void drawSwView(void* data, Eo* obj)
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
reqSync = false;
}
auto after = ecore_time_get();
@ -192,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,15 +182,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

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

View file

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

View file

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