Skip to content

v1.2.0-subpixel.1: Sub-pixel text rendering experiment

Latest

Choose a tag to compare

@ingpaschke ingpaschke released this 17 Apr 09:53

Based on v1.2.0, adding sub-pixel text rendering quality improvements for justified text (PR #1676):

  • Fixed-point cursor accumulation: glyph positions accumulate in 12.4 fixed-point (1/16px resolution) instead of integer pixels, eliminating rounding drift across a line
  • Dual-position glyphs: Bookerly 12pt and 14pt ship with alternate glyph bitmaps rendered at a 0.5px horizontal offset; the renderer selects primary or alternate based on the fractional cursor position
  • Paragraph-level tracking optimisation: for justified text, the layout engine searches a range of letter-spacing values to find the combination that produces the best line breaks; the search range and cap scale with the natural space width of the font (÷8)
  • Widow/orphan control: single-word last lines are suppressed by pulling a word from the penultimate line

Installing

Web (recommended)

  1. Download firmware.bin from this release
  2. Go to https://xteink.dve.al/ and flash using the "OTA fast flash controls" section

Command line

esptool.py --chip esp32c3 --port /dev/ttyACM0 --baud 921600 write_flash 0x10000 firmware.bin

Note: On first boot, the layout cache regenerates automatically (section format v21). Expect longer loading times on first open of each book.