From bf7604d385df80849d9f48c25ddc0b87fe61ea37 Mon Sep 17 00:00:00 2001 From: Dennis Ranke Date: Thu, 30 Dec 2021 16:25:53 +0100 Subject: [PATCH] implement circle_outline function --- platform/bin/platform.uw8 | Bin 2377 -> 2497 bytes platform/src/platform.cwa | 52 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/platform/bin/platform.uw8 b/platform/bin/platform.uw8 index a96c6f0ed67507995ccf441913748c3725766e94..b51d958a4872d8b259a35d392c007bc9bc180539 100644 GIT binary patch literal 2497 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 prev_w { + if xl < xlp { + hline(xl, xlp, y, col); + } else { + if xl < xr { + setPixel(xl, y, col); + } + } + if xr > xrp { + hline(xrp, xr, y, col); + } else { + if xl < xr { + setPixel(xr - 1, y, col); + } + } + } else { + if xl > xlp { + hline(xlp, xl, y - 1, col); + } else { + if xlp < xrp { + setPixel(xlp, y - 1, col); + } + } + if xr < xrp { + hline(xr, xrp, y - 1, col); + } else { + if xlp < xrp { + setPixel(xrp - 1, y - 1, col); + } + } + } + + y = y + 1; + prev_w = w; + branch_if y <= maxY: lines; + } +} + export fn line(x1: f32, y1: f32, x2: f32, y2: f32, col: i32) { let swapTmp: f32; if x1 > x2 {