From 4c1f33184f1cba5006b4da8bbe2a161cd971aabc Mon Sep 17 00:00:00 2001 From: "Juan J. Martinez" Date: Sat, 17 Jun 2023 22:19:40 +0100 Subject: Function to read from the back buffer --- src/vga.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/vga.c') diff --git a/src/vga.c b/src/vga.c index 0df25f8..cb2c5a8 100644 --- a/src/vga.c +++ b/src/vga.c @@ -129,3 +129,20 @@ void blit_update() { memcpy(screen, buffer, 320 * 200); } + +void read_buffer(uint8_t *dst, const Rect *src) +{ + for (int32_t j = src->y * 320; j < (src->y + src->h) * 320; j += 320) + for (int16_t i = src->x; i < src->x + src->w; i++) + { + uint8_t b; + + /* clipping */ + if (i < 0 || i >= 320 || j < 0 || j >= 200 * 320) + b = TRANSPARENT; + else + b = buffer[i + j]; + + *dst++ = b; + } +} -- cgit v1.2.3