48 lines
2.3 KiB
Markdown
48 lines
2.3 KiB
Markdown
# TODO
|
|
|
|
## Add anti-aliased reader fonts
|
|
|
|
The current reader uses TFT_eSPI's bitmap FreeSans, FreeSerif, and FreeMono
|
|
fonts. They are compact and fast, but their edges remain jagged at large sizes.
|
|
|
|
Use TFT_eSPI smooth-font (`.vlw`) assets for the reading view and font-setting
|
|
previews.
|
|
|
|
1. Generate or obtain licensed `.vlw` files for sans-serif, serif, and
|
|
monospace faces at the seven supported reader sizes: 1, 1.5, 2, 2.5, 3,
|
|
3.5, and 4.
|
|
2. Place the files in a dedicated SD-card directory, for example
|
|
`/fonts/<style>-<size>.vlw`; document these required files alongside the
|
|
existing `/books/<book>/<chapter>.txt` layout.
|
|
3. Change `Board` to load the selected smooth font from SD when a font setting
|
|
is applied, and fall back to the current bitmap font if the file is absent
|
|
or cannot be loaded.
|
|
4. Continue to clear only the union of the old and new word bounds. Smooth
|
|
glyphs should be drawn with an explicit black background so anti-aliased
|
|
edge pixels blend correctly without redrawing the status bar or dead space.
|
|
5. Measure load time, RAM use, and word-to-word rendering latency on the
|
|
T-Display-S3-Pro. Keep the cached active font in memory and avoid SD reads
|
|
during normal word advances.
|
|
6. Verify that chapter-title and `The End` cards use the same selected smooth
|
|
font and remain aligned with normal words.
|
|
|
|
## Preprocess unfamiliar-word timing
|
|
|
|
Avoid dictionary lookups while reading. The existing chapter sidecars already
|
|
carry sparse italic/bold metadata and reserve a timing-modifier field. Extend
|
|
the desktop preprocessor to populate that field before books are copied to the
|
|
SD card.
|
|
|
|
1. Store only marked words: delta-encoded word indexes plus a small extra-delay
|
|
class (for example, 25%, 50%, or 100%). This keeps metadata sparse rather
|
|
than recording timing for every token.
|
|
2. Have the preprocessor inspect the whole book to flag first appearances of
|
|
uncommon words, likely proper nouns, non-English terms, and user-supplied
|
|
vocabulary. Keep language models and dictionaries on the desktop, not the
|
|
device.
|
|
3. At runtime, compare the current word
|
|
index against the next marked index; do not perform SD or dictionary lookups
|
|
during word advancement.
|
|
4. Combine an extra-delay class with existing punctuation and long-word timing
|
|
using the strongest applicable delay, rather than multiplying every rule.
|