feat: Sleep screen letterbox fill and image upscaling
Add configurable letterbox fill for sleep screen cover images that don't match the display aspect ratio. Four fill modes are available: Solid (single dominant edge shade), Blended (per-pixel edge colors), Gradient (edge colors interpolated toward white/black), and None. Enable upscaling of cover images smaller than the display in Fit mode by modifying drawBitmap/drawBitmap1Bit to support both up and downscaling via a unified block-fill approach. Edge sampling data is cached to .crosspoint alongside the cover BMP to avoid redundant bitmap scanning on subsequent sleeps. Cache is validated against screen dimensions and auto-regenerated when stale. New settings: Letterbox Fill (None/Solid/Blended/Gradient) and Gradient Direction (To White/To Black). Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -18,6 +18,10 @@ inline std::vector<SettingInfo> getSettingsList() {
|
||||
"sleepScreenCoverMode", "Display"),
|
||||
SettingInfo::Enum("Sleep Screen Cover Filter", &CrossPointSettings::sleepScreenCoverFilter,
|
||||
{"None", "Contrast", "Inverted"}, "sleepScreenCoverFilter", "Display"),
|
||||
SettingInfo::Enum("Letterbox Fill", &CrossPointSettings::sleepScreenLetterboxFill,
|
||||
{"None", "Solid", "Blended", "Gradient"}, "sleepScreenLetterboxFill", "Display"),
|
||||
SettingInfo::Enum("Gradient Direction", &CrossPointSettings::sleepScreenGradientDir, {"To White", "To Black"},
|
||||
"sleepScreenGradientDir", "Display"),
|
||||
SettingInfo::Enum(
|
||||
"Status Bar", &CrossPointSettings::statusBar,
|
||||
{"None", "No Progress", "Full w/ Percentage", "Full w/ Book Bar", "Book Bar Only", "Full w/ Chapter Bar"},
|
||||
|
||||
Reference in New Issue
Block a user