From 8f98681ea7d36cdb1c0330af1e7cb16354e6f81b Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Wed, 15 Jan 2025 11:52:55 +0900 Subject: [PATCH] renderer: minor code clean++ --- src/renderer/gl_engine/tvgGlRenderer.cpp | 1 - src/renderer/sw_engine/tvgSwRenderer.cpp | 1 - src/renderer/tvgPaint.h | 9 ++++++++- src/renderer/tvgPicture.h | 4 +--- src/renderer/tvgScene.h | 3 --- src/renderer/tvgShape.h | 6 ------ src/renderer/wg_engine/tvgWgRenderer.cpp | 7 ++----- 7 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/renderer/gl_engine/tvgGlRenderer.cpp b/src/renderer/gl_engine/tvgGlRenderer.cpp index 8788c52b..552222b2 100644 --- a/src/renderer/gl_engine/tvgGlRenderer.cpp +++ b/src/renderer/gl_engine/tvgGlRenderer.cpp @@ -1116,7 +1116,6 @@ bool GlRenderer::renderShape(RenderData data) void GlRenderer::dispose(RenderData data) { auto sdata = static_cast(data); - if (!sdata) return; //dispose the non thread-safety resources on clearDisposes() call if (sdata->texId) { diff --git a/src/renderer/sw_engine/tvgSwRenderer.cpp b/src/renderer/sw_engine/tvgSwRenderer.cpp index 1edd9780..86645874 100644 --- a/src/renderer/sw_engine/tvgSwRenderer.cpp +++ b/src/renderer/sw_engine/tvgSwRenderer.cpp @@ -721,7 +721,6 @@ ColorSpace SwRenderer::colorSpace() void SwRenderer::dispose(RenderData data) { auto task = static_cast(data); - if (!task) return; task->done(); task->dispose(); diff --git a/src/renderer/tvgPaint.h b/src/renderer/tvgPaint.h index f2250e3d..0d224a54 100644 --- a/src/renderer/tvgPaint.h +++ b/src/renderer/tvgPaint.h @@ -53,6 +53,8 @@ namespace tvg Mask* maskData = nullptr; Paint* clipper = nullptr; RenderMethod* renderer = nullptr; + RenderData rd = nullptr; + struct { Matrix m; //input matrix Matrix cm; //multipled parents matrix @@ -91,8 +93,13 @@ namespace tvg maskData->target->unref(); free(maskData); } + if (clipper) clipper->unref(); - if (renderer && (renderer->unref() == 0)) delete(renderer); + + if (renderer) { + if (rd) renderer->dispose(rd); + if (renderer->unref() == 0) delete(renderer); + } } uint8_t ref() diff --git a/src/renderer/tvgPicture.h b/src/renderer/tvgPicture.h index 70e0fab4..febd9e85 100644 --- a/src/renderer/tvgPicture.h +++ b/src/renderer/tvgPicture.h @@ -60,7 +60,6 @@ struct Picture::Impl : Paint::Impl ImageLoader* loader = nullptr; Paint* vector = nullptr; //vector picture uses RenderSurface* bitmap = nullptr; //bitmap picture uses - RenderData rd = nullptr; float w = 0, h = 0; uint8_t compFlag = CompositionFlag::Invalid; bool resizing = false; @@ -72,7 +71,6 @@ struct Picture::Impl : Paint::Impl ~Impl() { LoaderMgr::retrieve(loader); - if (bitmap && renderer) renderer->dispose(rd); delete(vector); } @@ -96,7 +94,7 @@ struct Picture::Impl : Paint::Impl resizing = false; } queryComposition(opacity); - rd = vector->pImpl->update(renderer, transform, clips, opacity, flag, false); + return vector->pImpl->update(renderer, transform, clips, opacity, flag, false); } return rd; } diff --git a/src/renderer/tvgScene.h b/src/renderer/tvgScene.h index b7110602..677cf0ed 100644 --- a/src/renderer/tvgScene.h +++ b/src/renderer/tvgScene.h @@ -62,7 +62,6 @@ struct SceneIterator : Iterator struct Scene::Impl : Paint::Impl { list paints; //children list - RenderData rd = nullptr; RenderRegion vport = {0, 0, INT32_MAX, INT32_MAX}; Array* effects = nullptr; uint8_t compFlag = CompositionFlag::Invalid; @@ -77,8 +76,6 @@ struct Scene::Impl : Paint::Impl resetEffects(); clearPaints(); - - if (renderer) renderer->dispose(rd); } uint8_t needComposition(uint8_t opacity) diff --git a/src/renderer/tvgShape.h b/src/renderer/tvgShape.h index 548b2a27..caa058f6 100644 --- a/src/renderer/tvgShape.h +++ b/src/renderer/tvgShape.h @@ -32,7 +32,6 @@ struct Shape::Impl : Paint::Impl { RenderShape rs; - RenderData rd = nullptr; uint8_t compFlag = CompositionFlag::Invalid; uint8_t opacity; //for composition @@ -40,11 +39,6 @@ struct Shape::Impl : Paint::Impl { } - ~Impl() - { - if (renderer) renderer->dispose(rd); - } - bool render(RenderMethod* renderer) { if (!rd) return false; diff --git a/src/renderer/wg_engine/tvgWgRenderer.cpp b/src/renderer/wg_engine/tvgWgRenderer.cpp index 2d84f869..d8fd347f 100755 --- a/src/renderer/wg_engine/tvgWgRenderer.cpp +++ b/src/renderer/wg_engine/tvgWgRenderer.cpp @@ -188,11 +188,8 @@ bool WgRenderer::postRender() void WgRenderer::dispose(RenderData data) { if (!mContext.queue) return; - auto renderData = (WgRenderDataPaint*)data; - if (renderData) { - ScopedLock lock(mDisposeKey); - mDisposeRenderDatas.push(data); - } + ScopedLock lock(mDisposeKey); + mDisposeRenderDatas.push(data); }