From 932f55070dc232b2ad2d3354e0ec8754fd2d90e0 Mon Sep 17 00:00:00 2001 From: Mira Grudzinska Date: Thu, 26 Sep 2024 23:48:24 +0200 Subject: [PATCH] sw_engine: fix translucent grad rastering 8bit translucent gradient rle were missing AA. Fixed. --- src/renderer/sw_engine/tvgSwRaster.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/renderer/sw_engine/tvgSwRaster.cpp b/src/renderer/sw_engine/tvgSwRaster.cpp index acc754f2..2dc13a59 100644 --- a/src/renderer/sw_engine/tvgSwRaster.cpp +++ b/src/renderer/sw_engine/tvgSwRaster.cpp @@ -1507,7 +1507,8 @@ static bool _rasterTranslucentGradientRle(SwSurface* surface, const SwRle* rle, } else if (surface->channelSize == sizeof(uint8_t)) { for (uint32_t i = 0; i < rle->size; ++i, ++span) { auto dst = &surface->buf8[span->y * surface->stride + span->x]; - fillMethod()(fill, dst, span->y, span->x, span->len, _opMaskAdd, 255); + if (span->coverage == 255) fillMethod()(fill, dst, span->y, span->x, span->len, _opMaskNone, 255); + else fillMethod()(fill, dst, span->y, span->x, span->len, _opMaskAdd, span->coverage); } } return true;