summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/blitter/base.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/blitter/base.cpp b/src/blitter/base.cpp
index cbaea29f9..bb8b9f234 100644
--- a/src/blitter/base.cpp
+++ b/src/blitter/base.cpp
@@ -36,6 +36,12 @@ void Blitter::DrawLine(void *video, int x, int y, int x2, int y2, int screen_wid
stepx = 1;
}
+ if (dx == 0 && dy == 0) {
+ /* The algorithm below cannot handle this special case; make it work at least for line width 1 */
+ if (x >= 0 && x < screen_width && y >= 0 && y < screen_height) this->SetPixel(video, x, y, colour);
+ return;
+ }
+
int frac_diff = width * max(dx, dy);
if (width > 1) {
/* compute frac_diff = width * sqrt(dx*dx + dy*dy)