瀏覽代碼

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
Sam Lantinga 2 年之前
父節點
當前提交
50c5d23f7d
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      src/render/SDL_render.c

+ 2 - 2
src/render/SDL_render.c

@@ -2981,8 +2981,8 @@ RenderDrawLinesWithRectsF(SDL_Renderer * renderer,
                 frect->x += scale_x;
                 frect->x += scale_x;
             }
             }
         } else {
         } 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;
         drew_line = SDL_TRUE;
     }
     }