mirror of
https://github.com/thorvg/thorvg.git
synced 2025-07-23 14:48:24 +00:00
examples: revise example code.
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
This commit is contained in:
parent
1b8188ee67
commit
9bb1972ef9
21 changed files with 106 additions and 4 deletions
|
@ -93,6 +93,7 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
swCanvas->clear(); //Flush out cached resource
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -76,6 +76,9 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -109,6 +112,9 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,9 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -98,6 +101,9 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -135,6 +135,9 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -168,6 +171,9 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -117,6 +117,9 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -150,6 +153,9 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -59,6 +59,9 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -92,6 +95,9 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -94,6 +94,9 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -127,6 +130,9 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,9 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (canvas->draw() == tvg::Result::Success) {
|
if (canvas->draw() == tvg::Result::Success) {
|
||||||
canvas->sync();
|
canvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
canvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -160,6 +163,9 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (canvas->draw() == tvg::Result::Success) {
|
if (canvas->draw() == tvg::Result::Success) {
|
||||||
canvas->sync();
|
canvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
canvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,9 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -87,6 +90,9 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -83,6 +83,9 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -116,6 +119,9 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,9 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -104,6 +107,9 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -108,6 +108,9 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -141,6 +144,9 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -94,6 +94,9 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -127,6 +130,9 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -101,6 +101,9 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -134,6 +137,9 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,9 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -77,6 +80,9 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -102,6 +102,8 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -135,6 +137,8 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -176,6 +176,8 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -209,6 +211,8 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -237,7 +241,6 @@ int main(int argc, char **argv)
|
||||||
//Initialize ThorVG Engine
|
//Initialize ThorVG Engine
|
||||||
if (tvg::Initializer::init(tvgEngine, threads) == tvg::Result::Success) {
|
if (tvg::Initializer::init(tvgEngine, threads) == tvg::Result::Success) {
|
||||||
|
|
||||||
|
|
||||||
elm_init(argc, argv);
|
elm_init(argc, argv);
|
||||||
|
|
||||||
if (tvgEngine == tvg::CanvasEngine::Sw) {
|
if (tvgEngine == tvg::CanvasEngine::Sw) {
|
||||||
|
|
|
@ -97,6 +97,8 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -130,6 +132,8 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,8 @@ void drawSwView(void* data, Eo* obj)
|
||||||
if (swCanvas->draw() == tvg::Result::Success) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -102,6 +104,8 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,9 +19,6 @@ void tvgUpdateCmds(tvg::Canvas* canvas, float progress)
|
||||||
{
|
{
|
||||||
if (!canvas) return;
|
if (!canvas) return;
|
||||||
|
|
||||||
//Explicitly clear all retained paint nodes.
|
|
||||||
if (canvas->clear() != tvg::Result::Success) return;
|
|
||||||
|
|
||||||
//Shape
|
//Shape
|
||||||
auto shape = tvg::Shape::gen();
|
auto shape = tvg::Shape::gen();
|
||||||
shape->appendRect(-100, -100, 200, 200, (100 * progress), (100 * progress));
|
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) {
|
if (swCanvas->draw() == tvg::Result::Success) {
|
||||||
swCanvas->sync();
|
swCanvas->sync();
|
||||||
}
|
}
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
swCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -101,6 +100,8 @@ void drawGLview(Evas_Object *obj)
|
||||||
if (glCanvas->draw() == tvg::Result::Success) {
|
if (glCanvas->draw() == tvg::Result::Success) {
|
||||||
glCanvas->sync();
|
glCanvas->sync();
|
||||||
}
|
}
|
||||||
|
//Explicitly clear all retained resources.
|
||||||
|
glCanvas->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void transitGlCb(Elm_Transit_Effect *effect, Elm_Transit* transit, double progress)
|
void transitGlCb(Elm_Transit_Effect *effect, Elm_Transit* transit, double progress)
|
||||||
|
|
|
@ -50,6 +50,7 @@ void resMgrRetrieveOutline(unsigned idx)
|
||||||
|
|
||||||
bool resMgrInit(unsigned threads)
|
bool resMgrInit(unsigned threads)
|
||||||
{
|
{
|
||||||
|
if (threads == 0) threads = 1;
|
||||||
sharedOutline.reserve(threads);
|
sharedOutline.reserve(threads);
|
||||||
sharedOutline.resize(threads);
|
sharedOutline.resize(threads);
|
||||||
threadsCnt = threads;
|
threadsCnt = threads;
|
||||||
|
|
Loading…
Add table
Reference in a new issue