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:
Hermet Park 2020-11-04 17:56:33 +09:00 committed by Hermet Park
parent 1b8188ee67
commit 9bb1972ef9
21 changed files with 106 additions and 4 deletions

View file

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

View file

@ -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();
} }

View file

@ -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();
} }

View file

@ -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();
} }

View file

@ -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();
} }

View file

@ -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();
} }

View file

@ -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();
} }

View file

@ -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();
} }

View file

@ -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();
} }

View file

@ -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();
} }

View file

@ -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();
} }

View file

@ -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();
} }

View file

@ -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();
} }

View file

@ -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();
} }

View file

@ -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();
} }

View file

@ -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();
} }

View file

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

View file

@ -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();
} }

View file

@ -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();
} }

View file

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

View file

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