aboutsummaryrefslogtreecommitdiffstats
path: root/src/render.h
diff options
context:
space:
mode:
authorgbc dev <gbc@localhost>2026-07-18 20:41:19 +0200
committergbc dev <gbc@localhost>2026-07-18 20:41:19 +0200
commitfa1579cc9f209dbeb14ab277dc9c4ac741ace57c (patch)
tree7ca130f0d360e93460de2cae71daeb97c3819d0f /src/render.h
parentmain: allow --sock (control/debug socket) in headless mode (diff)
downloadsl0pboy-fa1579cc9f209dbeb14ab277dc9c4ac741ace57c.tar.gz
sl0pboy-fa1579cc9f209dbeb14ab277dc9c4ac741ace57c.tar.xz
sl0pboy-fa1579cc9f209dbeb14ab277dc9c4ac741ace57c.zip
render: --shrink N - downscale the half-block live display (1-4)
Decimates the LCD N x N before the half-block encode so the monitor pane takes 160/N cols x 72/N rows. Display-only: capture, recording and sixel still read the full-res framebuffer. Decimation is max-luma pick, not box-average: terminal fonts are 1px bright strokes on dark background, and averaging dims them into grey mush (the 'blurry font' regression). Keeping the brightest source pixel of each block preserves stroke brightness and hue.
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 1be1290..fed4ec8 100644
--- a/src/render.h
+++ b/src/render.h
@@ -11,6 +11,7 @@ void render_set_hud(int frameskip, bool turbo); // update HUD readout
// Switch terminal output to sixel graphics (scale = integer pixel zoom, >=1).
// Pass on=false to use the default Unicode half-block renderer.
void render_set_sixel(bool on, int scale);
+void render_set_shrink(int n); // half-block display downscale (1-4, def 1)
// Draw a Game Boy body/frame around the LCD (sixel output only); buttons on the
// drawn shell light up while pressed. No effect unless sixel mode is enabled.
void render_set_chrome(bool on);