From 894ddbe9bcf2bbd1da3af0429b6ed9550c0d4ce3 Mon Sep 17 00:00:00 2001 From: gbc dev Date: Sat, 4 Jul 2026 22:39:34 +0200 Subject: renderer: inter-frame diffing to minimize terminal output Only cells that changed since the previous frame are redrawn, using cursor positioning to skip unchanged runs. Static screens write nothing after the first frame (~108x reduction on acid2). SIGWINCH forces a full repaint. Verified pixel-exact against the framebuffer (11520/11520 cells, 0 mismatch). --- src/render.h | 1 + 1 file changed, 1 insertion(+) (limited to 'src/render.h') diff --git a/src/render.h b/src/render.h index 15f9cda..93ca32a 100644 --- a/src/render.h +++ b/src/render.h @@ -6,6 +6,7 @@ void term_init(void); void term_restore(void); void render_frame(GB *gb); +void render_force_full(void); // force a complete repaint next frame // Poll keyboard, update gb->buttons. Returns false if quit requested. bool input_poll(GB *gb); -- cgit v1.3.1-sl0p