Fix XTC 1-bit thumb BMP polarity inversion

The thumb BMP generation for 1-bit XTC files had inverted polarity,
causing the Continue Reading cover image to appear with inverted colors.

- Fix: Change `grayValue = pixelBit ? 0 : 255` to `grayValue = pixelBit ? 255 : 0`
  to match the cover BMP generation logic where bit=0 is black and bit=1 is white
- Update misleading comment about XTC polarity
This commit is contained in:
Eunchurn Park 2026-01-15 00:52:17 +09:00
parent 56ec3dfb6d
commit 4cb915897c
No known key found for this signature in database
GPG Key ID: 29D94D9C697E3F92

View File

@ -203,7 +203,7 @@ bool Xtc::generateCoverBmp() const {
coverBmp.write(reinterpret_cast<const uint8_t*>(&colorsImportant), 4);
// Color palette (2 colors for 1-bit)
// XTC uses inverted polarity: 0 = black, 1 = white
// XTC 1-bit polarity: 0 = black, 1 = white (standard BMP palette order)
// Color 0: Black (text/foreground in XTC)
uint8_t black[4] = {0x00, 0x00, 0x00, 0x00};
coverBmp.write(black, 4);
@ -506,8 +506,8 @@ bool Xtc::generateThumbBmp() const {
// Bounds check for buffer access
if (byteIdx < bitmapSize) {
const uint8_t pixelBit = (pageBuffer[byteIdx] >> bitIdx) & 1;
// XTC polarity: 1=black, 0=white
grayValue = pixelBit ? 0 : 255;
// XTC 1-bit polarity: 0=black, 1=white (same as BMP palette)
grayValue = pixelBit ? 255 : 0;
}
}