Commit 86c0cf2bb1031333bfa131b23f153f4a39a239cc

Ryan C. Gordon 2021-11-26T14:31:20

software: Draw a single pixel for a line with the same start/end point. Otherwise it would drop it, which seems like a bug to me, as it normally fills the endpoint on lines. Reference #2006.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
diff --git a/src/render/software/SDL_drawline.c b/src/render/software/SDL_drawline.c
index d482253..5eebdd5 100644
--- a/src/render/software/SDL_drawline.c
+++ b/src/render/software/SDL_drawline.c
@@ -193,8 +193,8 @@ SDL_DrawLines(SDL_Surface * dst, const SDL_Point * points, int count,
             continue;
         }
 
-        /* Draw the end if it was clipped */
-        draw_end = (x2 != points[i].x || y2 != points[i].y);
+        /* Draw the end if the whole line is a single point or it was clipped */
+        draw_end = ((x1 == x2) && (y1 == y2)) || (x2 != points[i].x || y2 != points[i].y);
 
         func(dst, x1, y1, x2, y2, color, draw_end);
     }