Commit 50c5d23f7d1b5b15e5ecc3dce72fa6a35b68f960

Sam Lantinga 2022-08-23T07:42:48

Round coordinates so very small floating point values don't turn into 0x80000000 e.g. SDL_RenderDrawLineF(renderer, -1e20, -1e20, 10, 10); Fixes https://github.com/libsdl-org/SDL/issues/6116

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c
index 5893101..42cafee 100644
--- a/src/render/SDL_render.c
+++ b/src/render/SDL_render.c
@@ -2981,8 +2981,8 @@ RenderDrawLinesWithRectsF(SDL_Renderer * renderer,
                 frect->x += scale_x;
             }
         } else {
-            retval += RenderDrawLineBresenham(renderer, (int)points[i].x, (int)points[i].y,
-                                                        (int)points[i+1].x, (int)points[i+1].y, draw_last);
+            retval += RenderDrawLineBresenham(renderer, (int)SDL_roundf(points[i].x), (int)SDL_roundf(points[i].y),
+                                                        (int)SDL_roundf(points[i+1].x), (int)SDL_roundf(points[i+1].y), draw_last);
         }
         drew_line = SDL_TRUE;
     }