From 149acea6a49c026e8252c30e8573271778a7ae8b Mon Sep 17 00:00:00 2001 From: Sergii Liebodkin Date: Fri, 25 Jul 2025 14:35:07 +0900 Subject: [PATCH] wg/gl: add composition blend mode Set the scene to use Composition mode so that it generates a pre-composition image, and then normal blend with destination. see also: https://github.com/thorvg/thorvg/pull/3621 --- src/renderer/gl_engine/tvgGlRenderer.cpp | 2 +- src/renderer/wg_engine/tvgWgRenderer.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/renderer/gl_engine/tvgGlRenderer.cpp b/src/renderer/gl_engine/tvgGlRenderer.cpp index a852a133..c186a9ce 100644 --- a/src/renderer/gl_engine/tvgGlRenderer.cpp +++ b/src/renderer/gl_engine/tvgGlRenderer.cpp @@ -985,7 +985,7 @@ bool GlRenderer::blend(BlendMethod method) if (method == mBlendMethod) return true; - mBlendMethod = method; + mBlendMethod = (method == BlendMethod::Composition ? BlendMethod::Normal : method); return true; } diff --git a/src/renderer/wg_engine/tvgWgRenderer.cpp b/src/renderer/wg_engine/tvgWgRenderer.cpp index 2b162e0d..12ffa7a9 100644 --- a/src/renderer/wg_engine/tvgWgRenderer.cpp +++ b/src/renderer/wg_engine/tvgWgRenderer.cpp @@ -286,7 +286,8 @@ bool WgRenderer::blend(BlendMethod method) //TODO: support if (method == BlendMethod::Hue || method == BlendMethod::Saturation || method == BlendMethod::Color || method == BlendMethod::Luminosity || method == BlendMethod::HardMix) return false; - mBlendMethod = method; + mBlendMethod = (method == BlendMethod::Composition ? BlendMethod::Normal : method); + return true; }