From 54886a05223459e13bcb57e0c8a870caf9f70a17 Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Mon, 23 Oct 2023 14:36:59 +0200 Subject: WindowServer: Optimize copying of buffers. This optimization should probably move over to memcpy later. --- userland/windowserver/draw.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'userland') diff --git a/userland/windowserver/draw.c b/userland/windowserver/draw.c index 1794378..e982d21 100644 --- a/userland/windowserver/draw.c +++ b/userland/windowserver/draw.c @@ -16,13 +16,23 @@ void update_display(DISPLAY *disp) { place_pixel(0xFFFFFFFF, mx, my + i / 2); place_pixel(0xFFFFFFFF, mx + i / 2, my); } - for (int i = 0; i < disp->size; i++) - disp->true_buffer[i] = disp->back_buffer[i]; - // memcpy(disp->true_buffer, disp->back_buffer, disp->size); + uint32_t *dst = disp->true_buffer; + uint32_t *src = disp->back_buffer; + for (int i = 0; i < disp->size / BPP; i++) { + *dst = *src; + dst++; + src++; + } } void draw_wallpaper(DISPLAY *disp) { -memcpy(disp->back_buffer, disp->wallpaper_buffer, disp->size); + uint32_t *dst = disp->back_buffer; + uint32_t *src = disp->wallpaper_buffer; + for (int i = 0; i < disp->size / BPP; i++) { + *dst = *src; + dst++; + src++; + } } void draw_mouse(DISPLAY *disp, int mouse_x, int mouse_y) { -- cgit v1.2.3