From c8c4cdc7d5b90567d93defe425480045b825856f Mon Sep 17 00:00:00 2001 From: reuk Date: Tue, 6 Jun 2023 14:06:18 +0100 Subject: [PATCH] EdgeTable: Add offset before truncating to somewhat restore old rounding behaviour --- modules/juce_graphics/geometry/juce_EdgeTable.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/juce_graphics/geometry/juce_EdgeTable.cpp b/modules/juce_graphics/geometry/juce_EdgeTable.cpp index 7b9813e1a7..c1d9d6208b 100644 --- a/modules/juce_graphics/geometry/juce_EdgeTable.cpp +++ b/modules/juce_graphics/geometry/juce_EdgeTable.cpp @@ -55,8 +55,13 @@ EdgeTable::EdgeTable (Rectangle area, const Path& path, const AffineTransfo while (iter.next()) { - auto y1 = static_cast (iter.y1 * 256.0f); - auto y2 = static_cast (iter.y2 * 256.0f); + const auto scaleIterY = [] (auto y) + { + return static_cast (y * 256.0f + (y >= 0 ? 0.5f : -0.5f)); + }; + + auto y1 = scaleIterY (iter.y1); + auto y2 = scaleIterY (iter.y2); if (y1 != y2) {