aboutsummaryrefslogtreecommitdiffstats
path: root/src/render.h
diff options
context:
space:
mode:
authorgbc dev <gbc@localhost>2026-07-04 22:39:34 +0200
committergbc dev <gbc@localhost>2026-07-04 22:39:34 +0200
commit894ddbe9bcf2bbd1da3af0429b6ed9550c0d4ce3 (patch)
tree4089a0c9bb2a1661f57564e3d2044fcb2df5d23e /src/render.h
parentdocs: note mem_timing-2 passing (diff)
downloadsl0pboy-894ddbe9bcf2bbd1da3af0429b6ed9550c0d4ce3.tar.gz
sl0pboy-894ddbe9bcf2bbd1da3af0429b6ed9550c0d4ce3.tar.xz
sl0pboy-894ddbe9bcf2bbd1da3af0429b6ed9550c0d4ce3.zip
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).
Diffstat (limited to 'src/render.h')
-rw-r--r--src/render.h1
1 files changed, 1 insertions, 0 deletions
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);