From 310183972e3b32f66fefe6865590f0be184306b6 Mon Sep 17 00:00:00 2001 From: Mira Grudzinska Date: Fri, 27 Sep 2024 12:21:35 +0200 Subject: [PATCH] renderer: fix clipped clippers Fast track was applied for clippers even if they were also clipped. As a result their clips were omitted. @Issue: https://github.com/thorvg/thorvg/issues/2777 --- src/renderer/tvgPaint.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/tvgPaint.cpp b/src/renderer/tvgPaint.cpp index cd9f4a44..4884d64f 100644 --- a/src/renderer/tvgPaint.cpp +++ b/src/renderer/tvgPaint.cpp @@ -278,7 +278,7 @@ RenderData Paint::Impl::update(RenderMethod* renderer, const Matrix& pm, Arrayclipper) { P(this->clipper)->ctxFlag &= ~ContextFlag::FastTrack; //reset viewport = renderer->viewport(); - if ((compFastTrack = _compFastTrack(renderer, this->clipper, pm, viewport)) == Result::Success) { + if (!P(this->clipper)->clipper && (compFastTrack = _compFastTrack(renderer, this->clipper, pm, viewport)) == Result::Success) { P(this->clipper)->ctxFlag |= ContextFlag::FastTrack; } if (compFastTrack == Result::InsufficientCondition) {