feat(debug): theme x tab screenshot sweep + Debug options dialog
Add a debug tool that cycles every skin across every build-enabled tab and saves a PNG of each to a timestamped folder under the config dir (screenshots/sweep_<ts>/) — for gathering visual context on theme-specific UI work. - App state machine (app_network.cpp): startScreenshotSweep() builds the skin+enabled-page lists, saves the current skin/page, and steps through them; updateScreenshotSweep() (top of App::render) pins the page + settles ~4 frames after each skin/page change (skin switches reload TOML + reset the acrylic capture, so they need to settle); wantsScreenshotThisFrame()/screenshotSweepPath() /onScreenshotCaptured() coordinate with main.cpp. Restores the original skin/page when done; nothing persisted. - Framebuffer capture (main.cpp): read the finished frame and encode PNG via the bundled miniz (tdefl_write_image_to_png_file_in_memory_ex). GL reads FBO 0 (RGBA, bottom-up -> flip); DX11 copies the backbuffer to a staging texture + maps it (BGRA, top-down -> channel-swap). Alpha forced opaque. - Settings UI: move the Verbose logging checkbox off the wallet row into a new "Debug options" button that opens a dialog housing the verbose toggle + a "Run screenshot sweep" button. New i18n keys. Both platforms build; no-crash smoke verified. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1243,6 +1243,10 @@ void App::render()
|
||||
// Process deferred encryption from wizard (runs in background)
|
||||
processDeferredEncryption();
|
||||
|
||||
// Debug screenshot sweep — pins the current (skin,page) and arms capture once settled. Must run
|
||||
// before the sidebar reads current_page_ (below) so the forced page is reflected.
|
||||
updateScreenshotSweep();
|
||||
|
||||
// While any full-window BLUR overlay is open: (1) suppress panel theme-effects for the whole
|
||||
// frame so their foreground-draw-list borders (sidebar included) don't bleed over the overlay;
|
||||
// (2) mark a full-window blur overlay active so glass panels use their opaque fallback (they're
|
||||
|
||||
Reference in New Issue
Block a user