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
Change-Id: Ieea116077e578742d627b71fb5fad395a74dbc9d
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+ swCanvas->clear(); //Flush out cached resource
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (canvas->draw() == tvg::Result::Success) {
canvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ canvas->clear();
}
if (canvas->draw() == tvg::Result::Success) {
canvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ canvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
//Initialize ThorVG Engine
if (tvg::Initializer::init(tvgEngine, threads) == tvg::Result::Success) {
-
elm_init(argc, argv);
if (tvgEngine == tvg::CanvasEngine::Sw) {
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
{
if (!canvas) return;
- //Explicitly clear all retained paint nodes.
- if (canvas->clear() != tvg::Result::Success) return;
-
//Shape
auto shape = tvg::Shape::gen();
shape->appendRect(-100, -100, 200, 200, (100 * progress), (100 * progress));
if (swCanvas->draw() == tvg::Result::Success) {
swCanvas->sync();
}
+ //Explicitly clear all retained resources.
+ swCanvas->clear();
}
if (glCanvas->draw() == tvg::Result::Success) {
glCanvas->sync();
}
+ //Explicitly clear all retained resources.
+ glCanvas->clear();
}
void transitGlCb(Elm_Transit_Effect *effect, Elm_Transit* transit, double progress)
bool resMgrInit(unsigned threads)
{
+ if (threads == 0) threads = 1;
sharedOutline.reserve(threads);
sharedOutline.resize(threads);
threadsCnt = threads;