From 6b133aced6bef3baa1a41577617c5b6b175fd1ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tam=C3=A1s=20B=C3=A1lint=20Misius?= Date: Tue, 27 Dec 2022 08:49:32 +0100 Subject: [PATCH] Fix renderer table gradients The unsigned type would overflow when it was asked to represent negative values. --- src/graphics/Graphics.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/graphics/Graphics.cpp b/src/graphics/Graphics.cpp index 96909c147..e34e5a9f6 100644 --- a/src/graphics/Graphics.cpp +++ b/src/graphics/Graphics.cpp @@ -941,9 +941,9 @@ std::vector Graphics::Gradient(std::vector stops, int resol auto &right = stops[stop + 1]; auto f = (point - left.point) / (right.point - left.point); table[i] = PIXRGB( - int(PIXR(left.color) + (PIXR(right.color) - PIXR(left.color)) * f), - int(PIXG(left.color) + (PIXG(right.color) - PIXG(left.color)) * f), - int(PIXB(left.color) + (PIXB(right.color) - PIXB(left.color)) * f) + int(int(PIXR(left.color)) + (int(PIXR(right.color)) - int(PIXR(left.color))) * f), + int(int(PIXG(left.color)) + (int(PIXG(right.color)) - int(PIXG(left.color))) * f), + int(int(PIXB(left.color)) + (int(PIXB(right.color)) - int(PIXB(left.color))) * f) ); } }