mirror of
https://github.com/daveallie/crosspoint-reader.git
synced 2026-02-07 16:17:38 +03:00
## Summary Reduce/fix the lag on the home screen before recent book covers are rendered ## Additional Context We were previously rendering the screen in two steps, delaying the recent book covers render to avoid a lag before the screen loads. In this PR, we are now doing that only if at least one book doesn't have the cover thumbnail generated yet. If all thumbs are already generated, we load and display them right away, with no lag. --- ### AI Usage 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? _**NO **_ |
||
|---|---|---|
| .. | ||
| Xtc | ||
| README | ||
| Xtc.cpp | ||
| Xtc.h | ||
# XTC/XTCH Library XTC ebook format support for CrossPoint Reader. ## Supported Formats | Format | Extension | Description | |--------|-----------|----------------------------------------------| | XTC | `.xtc` | Container with XTG pages (1-bit monochrome) | | XTCH | `.xtch` | Container with XTH pages (2-bit grayscale) | ## Format Overview XTC/XTCH are container formats designed for ESP32 e-paper displays. They store pre-rendered bitmap pages optimized for the XTeink X4 e-reader (480x800 resolution). ### Container Structure (XTC/XTCH) - 56-byte header with metadata offsets - Optional metadata (title, author, etc.) - Page index table (16 bytes per page) - Page data (XTG or XTH format) ### Page Formats #### XTG (1-bit monochrome) - Row-major storage, 8 pixels per byte - MSB first (bit 7 = leftmost pixel) - 0 = Black, 1 = White #### XTH (2-bit grayscale) - Two bit planes stored sequentially - Column-major order (right to left) - 8 vertical pixels per byte - Grayscale: 0=White, 1=Dark Grey, 2=Light Grey, 3=Black ## Reference Original format info: <https://gist.github.com/CrazyCoder/b125f26d6987c0620058249f59f1327d>