Brings ~55 mod-exclusive files to the upstream-based mod/master-resync branch: Activities (migrated to new ActivityManager pattern): - Clock/Time: SetTimeActivity, SetTimezoneOffsetActivity, NtpSyncActivity - Dictionary: DictionaryDefinitionActivity, DictionarySuggestionsActivity, DictionaryWordSelectActivity, LookedUpWordsActivity - Bookmark: EpubReaderBookmarkSelectionActivity - Book management: BookManageMenuActivity, EndOfBookMenuActivity - OPDS: OpdsServerListActivity, OpdsSettingsActivity - Utility: DirectoryPickerActivity, NumericStepperActivity Utilities (unchanged): - BookManager, BookSettings, BookmarkStore, BootNtpSync - Dictionary, LookupHistory, TimeSync, OpdsServerStore Libraries: PlaceholderCover, TableData, ChapterXPathIndexer Scripts: inject_mod_version, generate_book_icon, preview_placeholder_cover Docs: KOReader sync XPath mapping Migration changes: - ActivityWithSubactivity -> Activity base class - Callback constructors -> finish()/setResult() pattern - enterNewActivity() -> startActivityForResult() - Activity::RenderLock&& -> RenderLock&& These files won't compile yet - they reference mod settings and I18n strings that will be added in subsequent phases. Made-with: Cursor
1.5 KiB
1.5 KiB
Port PR #1055: Byte-level framebuffer writes
Date: 2026-02-21 Task: Port upstream PR #1055 (jpirnay) into the mod, including coderabbit review nitpick.
Changes made
lib/GfxRenderer/GfxRenderer.h
- Added two private method declarations:
fillPhysicalHSpanByte(patterned byte-level span writer) andfillPhysicalHSpan(solid-fill wrapper).
lib/GfxRenderer/GfxRenderer.cpp
- Added
#include <cstring>formemset. - Implemented
fillPhysicalHSpanByte: bounds-clamped byte-level span writer with MSB-first bit packing, partial-byte masking at edges, andmemsetfor aligned middle. - Implemented
fillPhysicalHSpan: thin wrapper mappingstatebool to0x00/0xFFpattern byte. drawLine: Replaced per-pixel loops for axis-aligned lines with orientation-awarefillPhysicalHSpancalls (vertical lines in Portrait, horizontal lines in Landscape).fillRect: Replaced per-rowdrawLineloop with orientation-specific byte-level fast paths for all 4 orientations.fillRectDither: Replaced per-pixeldrawPixelDitherloops for DarkGray/LightGray with orientation-awarefillPhysicalHSpanByteusing pre-computed byte patterns.fillPolygon(coderabbit nitpick): AddedfillPhysicalHSpanfast path for Landscape orientations in the scanline inner loop.
mod/prs/MERGED.md
- Appended PR #1055 entry with full documentation.
Differences from upstream
fillPolygonlandscape optimization (from coderabbit review nitpick) was applied as a mod enhancement.
Follow-up items
- None. Build verified successful.