Zach Nelson 86d636bf6a fix: Use differential rounding for consistent inter-glyph spacing (#1413)
**What is the goal of this PR?**

A tweak to the fixed-point x-advance and kerning calculations to ensure
that the spacing between any two glyphs is always calculated
consistently.

I noticed that sometimes I'd see common character pairs like "oo" more
than once on a page, and the distance between the two snapped to
different pixels depending on the running accumulated error for the line
of text.

This change uses a differential rounding approach where each glyph's
x-advance plus the kerning relative to the next glyph are combined in
fixed-point precision, then snapped to a pixel to draw the next glyph.
This results in a consistent inter-glyph spacing any time the same two
glyphs show up adjacent to each other, regardless of the accumulated
error across the line.

---

While CrossPoint doesn't have restrictions on AI tools in contributing,
please be transparent about their usage as it
helps set the right context for reviewers.

Did you use AI tools to help write this code? _**PARTIALLY**_
2026-04-08 10:40:57 +02:00
2026-04-04 17:36:47 +02:00
2026-04-04 10:05:14 +02:00
2026-04-08 10:20:05 +02:00
2025-12-03 22:06:45 +11:00
2026-04-07 09:29:20 +02:00
2025-12-03 22:06:45 +11:00
2025-12-03 22:06:45 +11:00

CrossPoint Reader ++

This firmware is based on the crosspoint-reader for the XTEINK X4, a great piece of software by Dave Allie and others

Why this fork

Unfortunately the official repository suffers from too many good ideas floating around and a lack of clear governance how to deal with these contributions, so it's lacking fundamental fixes for a proper reading experience (rendering issues, sub-par sync capabilities with KOReader, a popular multi-platform open-source epub reader).

Trying to contribute enhancements / fixes became increasingly difficult as the lack of progress effectively prevented further development.

Therefore this branch focuses on real fixes and real improvements while trying to keep up to pace with developments in the main branch.

What's different

  • Proper KOReader Snychronisation (including https TLS OOM fix)
  • Fixes for a lot of css rendering issues
  • Additional sleep screens support (information overlay, transparent pictures over current reader screen)
  • Clock-Support
  • Weather information panel
  • Multiple under-the-hood performance improvements
  • Book information screen
  • Reading ruler
  • ...
S
Description
No description provided
Readme MIT
134 MiB
Languages
C 78.2%
C++ 18.2%
Python 2%
HTML 1.4%