ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ereader_longstrip Directory Reference
Directory dependency graph for ereader_longstrip:

Directories

 
src

Detailed Description

The third e-reader reading mode (#289), beside reflowable EPUB text and paged CBZ/manga: a chapter is one continuous vertical strip – tall image slices stacked seamlessly and read by scrolling, with no page boundaries. This app makes the apps/shared_libs/longstrip scroll engine viewable by binding its band-composite blit sink to the live 1024x600 GLCDC panel framebuffer, so an emulator window or a captured frame shows the actual reader screen.

What it shows

  • A tall strip that costs almost nothing to boot. The strip is a JOF band-tile atlas, but only its header, index and footer are materialised: each band's pixels are painted procedurally on a tile-cache miss – a vivid palette hue with a top-to-bottom gradient and a white seam stripe at every band edge, so scrolling is obviously visible. Boot is instant and no multi-megabyte pixel buffer is ever needed.
  • Bounded-memory streaming. The ra8_tile_cache has fewer cells than the strip has bands, so the resident decoded-pixel set stays constant regardless of scroll distance; the LRU evicts and re-decodes as the viewport moves (#147).
  • Tap-zone navigation and chrome. Bottom third pages down, top third pages up, centre toggles the chrome (a status bar with band, scroll percent and skip count, plus a right-edge scroll rail whose thumb tracks position). SW1/SW2 are a button fallback. Navigation is discrete-tap only – the GT911 path reports contacts, not gestures – so the app needs no emulator change to be driven.

After the first render the app folds an FNV-1a-32 over the whole panel framebuffer and prints it. The framebuffer bytes are written identically whether or not a panel is attached, so the hash is the same on the unit-test host, in the emulator and on silicon. hil.conf pins the banner; the full validation is the rendered panel itself.