diff options
author | Anton Kling <anton@kling.gg> | 2023-10-24 01:24:05 +0200 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2023-10-24 01:27:04 +0200 |
commit | e91a4f1e31ee100b2a13cefedb182e9d69ef04ad (patch) | |
tree | 3a6f4d6995a6f1c5cd142c7c77f736a7d58636a7 /userland/windowserver/draw.c | |
parent | 0f208f4f03d0df85aacafa35deba11f19e96b5dd (diff) |
WindowServer: Optimize 'for' loop such that it avoids doing a division during each iteration
Diffstat (limited to 'userland/windowserver/draw.c')
-rw-r--r-- | userland/windowserver/draw.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/userland/windowserver/draw.c b/userland/windowserver/draw.c index 31e4301..2272506 100644 --- a/userland/windowserver/draw.c +++ b/userland/windowserver/draw.c @@ -13,7 +13,7 @@ int mx; int my; -void update_display(DISPLAY *disp) { +void update_display(const DISPLAY *disp) { for (int i = 0; i < 20; i++) { place_pixel(0xFFFFFFFF, mx + i, my + i); place_pixel(0xFFFFFFFF, mx, my + i / 2); @@ -21,17 +21,19 @@ void update_display(DISPLAY *disp) { } uint32_t *dst = disp->true_buffer; uint32_t *src = disp->back_buffer; - for (int i = 0; i < disp->size / disp->bpp; i++) { + const uint32_t n = disp->size / disp->bpp; + for (int i = 0; i < n; i++) { *dst = *src; dst++; src++; } } -void draw_wallpaper(DISPLAY *disp) { +void draw_wallpaper(const DISPLAY *disp) { uint32_t *dst = disp->back_buffer; uint32_t *src = disp->wallpaper_buffer; - for (int i = 0; i < disp->size / disp->bpp; i++) { + const uint32_t n = disp->size / disp->bpp; + for (int i = 0; i < n; i++) { *dst = *src; dst++; src++; |