From ae84708f9b668c07b922e7890e20afd9a529167b Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Wed, 7 May 2025 10:54:08 +0900 Subject: [PATCH] sw_engine: fix regression in alpha handling revert the alpha skip condition introduced in commit 2990e72b23b51d4700417325763eb86484944fc6. color values with alpha = 0 must be transformed to 0 to ensure correct intermediate composition results. --- src/renderer/sw_engine/tvgSwRaster.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/sw_engine/tvgSwRaster.cpp b/src/renderer/sw_engine/tvgSwRaster.cpp index e1dfde50..6e6741be 100644 --- a/src/renderer/sw_engine/tvgSwRaster.cpp +++ b/src/renderer/sw_engine/tvgSwRaster.cpp @@ -1706,7 +1706,7 @@ void rasterPremultiply(RenderSurface* surface) for (uint32_t x = 0; x < surface->w; ++x, ++dst) { auto c = *dst; auto a = (c >> 24); - if (a == 255 || a == 0) continue; + if (a == 255) continue; *dst = (c & 0xff000000) + ((((c >> 8) & 0xff) * a) & 0xff00) + ((((c & 0x00ff00ff) * a) >> 8) & 0x00ff00ff); } }