From 46d831ead72e0336a75ece316f402ce823fb1c79 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Tue, 12 Sep 2023 12:46:44 +0900 Subject: [PATCH] sw_engine: skip the rendering if possible. zero scale would not produce any visible artifacts. we can skip the further processing sonner. --- src/renderer/sw_engine/tvgSwRenderer.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/renderer/sw_engine/tvgSwRenderer.cpp b/src/renderer/sw_engine/tvgSwRenderer.cpp index fc6e2fdb..d5ad3499 100644 --- a/src/renderer/sw_engine/tvgSwRenderer.cpp +++ b/src/renderer/sw_engine/tvgSwRenderer.cpp @@ -741,6 +741,12 @@ void* SwRenderer::prepareCommon(SwTask* task, const RenderTransform* transform, task->transform = nullptr; } + //zero size? + if (task->transform) { + if (task->transform->e11 == 0.0f && task->transform->e12 == 0.0f) return task; //zero width + if (task->transform->e21 == 0.0f && task->transform->e22 == 0.0f) return task; //zero height + } + task->opacity = opacity; task->surface = surface; task->mpool = mpool;