From a879b2d5f9d2064b0891a5aba2454b0124e3ff51 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 17 Jul 2025 14:38:30 +0900 Subject: [PATCH] renderer: propagate picture blending to internal scene Users can regard a picture and its nested scene as a single entity, so blending options can be properly applied to the actual visual paint object. --- src/renderer/tvgPicture.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/renderer/tvgPicture.h b/src/renderer/tvgPicture.h index ab01d633..d5abeca5 100644 --- a/src/renderer/tvgPicture.h +++ b/src/renderer/tvgPicture.h @@ -98,6 +98,7 @@ struct PictureImpl : Picture resizing = false; } needComposition(opacity); + vector->blend(pImpl->blendMethod); //propagate blend method to nested vector scene return vector->pImpl->update(renderer, transform, clips, opacity, flag, false); } return true; @@ -248,10 +249,11 @@ struct PictureImpl : Picture bool render(RenderMethod* renderer) { auto ret = true; - renderer->blend(impl.blendMethod); - if (bitmap) return renderer->renderImage(impl.rd); - else if (vector) { + if (bitmap) { + renderer->blend(impl.blendMethod); + return renderer->renderImage(impl.rd); + } else if (vector) { RenderCompositor* cmp = nullptr; if (impl.cmpFlag) { cmp = renderer->target(bounds(renderer), renderer->colorSpace(), impl.cmpFlag);