From 9aa8578e747de28d0faf782a868785bded7ac8b3 Mon Sep 17 00:00:00 2001 From: Ilari Liusvaara Date: Mon, 27 Apr 2015 08:20:26 +0300 Subject: [PATCH] Circle coordinates can go negative and thus must be signed Fixes the bug where only one fourth of circle was drawn. --- src/lua/gui-circle.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lua/gui-circle.cpp b/src/lua/gui-circle.cpp index 6d2fead8..5d5ca623 100644 --- a/src/lua/gui-circle.cpp +++ b/src/lua/gui-circle.cpp @@ -27,11 +27,11 @@ namespace uint32_t oY = y + scr.get_origin_y(); range bX = (range::make_w(scr.get_width()) - oX) & range::make_b(-radius, radius + 1); range bY = (range::make_w(scr.get_height()) - oY) & range::make_b(-radius, radius + 1); - for(uint32_t r = bY.low(); r != bY.high(); r++) { + for(int32_t r = bY.low(); r != (int32_t)bY.high(); r++) { uint64_t pd2 = static_cast(r) * r; typename framebuffer::fb::element_t* rptr = scr.rowptr(oY + r); size_t eptr = oX + bX.low(); - for(uint32_t c = bX.low(); c != bX.high(); c++, eptr++) { + for(int32_t c = bX.low(); c != (int32_t)bX.high(); c++, eptr++) { uint64_t fd2 = pd2 + static_cast(c) * c; if(fd2 > radius2) continue; -- 2.11.4.GIT