diff --git a/src/renderer/sw_engine/tvgSwRenderer.cpp b/src/renderer/sw_engine/tvgSwRenderer.cpp index 63371180..9b8253e7 100644 --- a/src/renderer/sw_engine/tvgSwRenderer.cpp +++ b/src/renderer/sw_engine/tvgSwRenderer.cpp @@ -383,12 +383,6 @@ bool SwRenderer::postRender() rasterUnpremultiply(surface); } - ARRAY_FOREACH(p, tasks) { - if ((*p)->disposed) delete(*p); - else (*p)->pushed = false; - } - tasks.clear(); - return true; } @@ -718,13 +712,6 @@ void* SwRenderer::prepareCommon(SwTask* task, const Matrix& transform, const Arr if (flags == RenderUpdateFlag::None) return task; if ((transform.e11 == 0.0f && transform.e12 == 0.0f) || (transform.e21 == 0.0f && transform.e22 == 0.0f)) return task; //zero size? - //TODO: Failed threading them. It would be better if it's possible. - //See: https://github.com/thorvg/thorvg/issues/1409 - //Guarantee composition targets get ready. - ARRAY_FOREACH(p, clips) { - static_cast(*p)->done(); - } - task->surface = surface; task->mpool = mpool; task->bbox = RenderRegion::intersect(vport, {{0, 0}, {int32_t(surface->w), int32_t(surface->h)}}); @@ -738,6 +725,13 @@ void* SwRenderer::prepareCommon(SwTask* task, const Matrix& transform, const Arr tasks.push(task); } + //TODO: Failed threading them. It would be better if it's possible. + //See: https://github.com/thorvg/thorvg/issues/1409 + //Guarantee composition targets get ready. + ARRAY_FOREACH(p, clips) { + static_cast(*p)->done(); + } + TaskScheduler::request(task); return task;