mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-16 04:54:39 +00:00
examples: ++safety.
Guarantee the resource free at the termination.
This commit is contained in:
parent
ab744fc164
commit
4ebbd0aefc
11 changed files with 46 additions and 4 deletions
|
@ -200,6 +200,9 @@ int main(int argc, char **argv)
|
||||||
elm_transit_go(transit);
|
elm_transit_go(transit);
|
||||||
|
|
||||||
elm_run();
|
elm_run();
|
||||||
|
|
||||||
|
elm_transit_del(transit);
|
||||||
|
|
||||||
elm_shutdown();
|
elm_shutdown();
|
||||||
|
|
||||||
//Terminate ThorVG Engine
|
//Terminate ThorVG Engine
|
||||||
|
|
|
@ -191,6 +191,9 @@ int main(int argc, char **argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
elm_run();
|
elm_run();
|
||||||
|
|
||||||
|
elm_transit_del(transit);
|
||||||
|
|
||||||
elm_shutdown();
|
elm_shutdown();
|
||||||
|
|
||||||
//Terminate ThorVG Engine
|
//Terminate ThorVG Engine
|
||||||
|
|
|
@ -210,6 +210,9 @@ int main(int argc, char **argv)
|
||||||
elm_transit_go(transit);
|
elm_transit_go(transit);
|
||||||
|
|
||||||
elm_run();
|
elm_run();
|
||||||
|
|
||||||
|
elm_transit_del(transit);
|
||||||
|
|
||||||
elm_shutdown();
|
elm_shutdown();
|
||||||
|
|
||||||
//Terminate ThorVG Engine
|
//Terminate ThorVG Engine
|
||||||
|
|
|
@ -63,6 +63,7 @@ void tvgUpdateCmds(tvg::Canvas* canvas, float progress)
|
||||||
|
|
||||||
/* Update shape directly.
|
/* Update shape directly.
|
||||||
You can update necessary properties of this shape. */
|
You can update necessary properties of this shape. */
|
||||||
|
canvas->clear(false);
|
||||||
|
|
||||||
//Reset Shape
|
//Reset Shape
|
||||||
if (pShape->reset() == tvg::Result::Success) {
|
if (pShape->reset() == tvg::Result::Success) {
|
||||||
|
@ -197,6 +198,9 @@ int main(int argc, char **argv)
|
||||||
elm_transit_go(transit);
|
elm_transit_go(transit);
|
||||||
|
|
||||||
elm_run();
|
elm_run();
|
||||||
|
|
||||||
|
elm_transit_del(transit);
|
||||||
|
|
||||||
elm_shutdown();
|
elm_shutdown();
|
||||||
|
|
||||||
//Terminate ThorVG Engine
|
//Terminate ThorVG Engine
|
||||||
|
|
|
@ -182,6 +182,9 @@ int main(int argc, char **argv)
|
||||||
elm_transit_go(transit);
|
elm_transit_go(transit);
|
||||||
|
|
||||||
elm_run();
|
elm_run();
|
||||||
|
|
||||||
|
elm_transit_del(transit);
|
||||||
|
|
||||||
elm_shutdown();
|
elm_shutdown();
|
||||||
|
|
||||||
//Terminate ThorVG Engine
|
//Terminate ThorVG Engine
|
||||||
|
|
|
@ -182,6 +182,9 @@ int main(int argc, char **argv)
|
||||||
elm_transit_go(transit);
|
elm_transit_go(transit);
|
||||||
|
|
||||||
elm_run();
|
elm_run();
|
||||||
|
|
||||||
|
elm_transit_del(transit);
|
||||||
|
|
||||||
elm_shutdown();
|
elm_shutdown();
|
||||||
|
|
||||||
//Terminate ThorVG Engine
|
//Terminate ThorVG Engine
|
||||||
|
|
|
@ -30,6 +30,7 @@ static tvg::Picture* pPicture = nullptr;
|
||||||
static double updateTime = 0;
|
static double updateTime = 0;
|
||||||
static double accumulateTime = 0;
|
static double accumulateTime = 0;
|
||||||
static uint32_t cnt = 0;
|
static uint32_t cnt = 0;
|
||||||
|
static bool reqSync = false;
|
||||||
|
|
||||||
void tvgDrawCmds(tvg::Canvas* canvas)
|
void tvgDrawCmds(tvg::Canvas* canvas)
|
||||||
{
|
{
|
||||||
|
@ -51,17 +52,21 @@ void tvgDrawCmds(tvg::Canvas* canvas)
|
||||||
|
|
||||||
void tvgUpdateCmds(tvg::Canvas* canvas, float progress)
|
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);
|
pPicture->translate(WIDTH * progress * 0.05f, HEIGHT * progress * 0.05f);
|
||||||
|
|
||||||
auto before = ecore_time_get();
|
auto before = ecore_time_get();
|
||||||
|
|
||||||
canvas->update(pPicture);
|
canvas->update();
|
||||||
|
|
||||||
auto after = ecore_time_get();
|
auto after = ecore_time_get();
|
||||||
|
|
||||||
updateTime = after - before;
|
updateTime = after - before;
|
||||||
|
|
||||||
|
reqSync = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -100,6 +105,7 @@ void drawSwView(void* data, Eo* obj)
|
||||||
|
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
|
reqSync = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto after = ecore_time_get();
|
auto after = ecore_time_get();
|
||||||
|
@ -193,6 +199,9 @@ int main(int argc, char **argv)
|
||||||
elm_transit_go(transit);
|
elm_transit_go(transit);
|
||||||
|
|
||||||
elm_run();
|
elm_run();
|
||||||
|
|
||||||
|
elm_transit_del(transit);
|
||||||
|
|
||||||
elm_shutdown();
|
elm_shutdown();
|
||||||
|
|
||||||
//Terminate ThorVG Engine
|
//Terminate ThorVG Engine
|
||||||
|
|
|
@ -189,15 +189,20 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
elm_init(argc, argv);
|
elm_init(argc, argv);
|
||||||
|
|
||||||
|
Ecore_Timer* timer;
|
||||||
|
|
||||||
if (tvgEngine == tvg::CanvasEngine::Sw) {
|
if (tvgEngine == tvg::CanvasEngine::Sw) {
|
||||||
auto view = createSwView();
|
auto view = createSwView();
|
||||||
ecore_timer_add(0.33, timerSwCb, view);
|
timer = ecore_timer_add(0.33, timerSwCb, view);
|
||||||
} else {
|
} else {
|
||||||
auto view = createGlView();
|
auto view = createGlView();
|
||||||
ecore_timer_add(0.33, timerGlCb, view);
|
timer = ecore_timer_add(0.33, timerGlCb, view);
|
||||||
}
|
}
|
||||||
|
|
||||||
elm_run();
|
elm_run();
|
||||||
|
|
||||||
|
ecore_timer_del(timer);
|
||||||
|
|
||||||
elm_shutdown();
|
elm_shutdown();
|
||||||
|
|
||||||
//Terminate ThorVG Engine
|
//Terminate ThorVG Engine
|
||||||
|
|
|
@ -231,6 +231,9 @@ int main(int argc, char **argv)
|
||||||
elm_transit_go(transit);
|
elm_transit_go(transit);
|
||||||
|
|
||||||
elm_run();
|
elm_run();
|
||||||
|
|
||||||
|
elm_transit_del(transit);
|
||||||
|
|
||||||
elm_shutdown();
|
elm_shutdown();
|
||||||
|
|
||||||
//Terminate ThorVG Engine
|
//Terminate ThorVG Engine
|
||||||
|
|
|
@ -188,6 +188,9 @@ int main(int argc, char **argv)
|
||||||
elm_transit_go(transit);
|
elm_transit_go(transit);
|
||||||
|
|
||||||
elm_run();
|
elm_run();
|
||||||
|
|
||||||
|
elm_transit_del(transit);
|
||||||
|
|
||||||
elm_shutdown();
|
elm_shutdown();
|
||||||
|
|
||||||
//Terminate ThorVG Engine
|
//Terminate ThorVG Engine
|
||||||
|
|
|
@ -176,6 +176,9 @@ int main(int argc, char **argv)
|
||||||
elm_transit_go(transit);
|
elm_transit_go(transit);
|
||||||
|
|
||||||
elm_run();
|
elm_run();
|
||||||
|
|
||||||
|
elm_transit_del(transit);
|
||||||
|
|
||||||
elm_shutdown();
|
elm_shutdown();
|
||||||
|
|
||||||
//Terminate ThorVG Engine
|
//Terminate ThorVG Engine
|
||||||
|
|
Loading…
Add table
Reference in a new issue