Implement PRK.Client Display options panel
Outcome Connect the existing Display options inventory to validated machine preferences and actual window/presentation behavior, reusing the options presenter, PreferenceStore and renderer/window lifecycle. Scope Window mode, monitor, fullscreen resolution/refresh, remembered window geometry, VSync, foreground/background frame limits and minimized rendering. Platform capabilities must be represented honestly; unsupported modes must not be offered. Preserve connection/update processing when rendering is reduced. Respect existing frame-limit environment overrides. Stage changes with Apply, discard on close, restore category defaults and report save/apply failures. Acceptance Preference/model/presenter and presentation-policy regression tests pass; client builds. Display settings survive restart and affect the actual runtime. Explicitly report any unverified native GUI/platform behavior. Implementation decisions and validation - All nine Display settings are connected. All Display settings now apply live without restarting. Native window transitions reuse the existing GLFW window; monitor/resolution/refresh changes and VSync reconfigure swapchain resources under the existing GPU maintenance lock. Return to windowed mode restores its prior geometry, independent of the persistence toggle. Refused native/presentation changes are rolled back where recoverable and do not save; a failed GPU recovery is fatal rather than continuing with invalid resources. Zero-extent surfaces defer presentation refresh until drawable without blocking updates. Remembered window geometry is machine-scoped and restored within available monitor workareas. Missing monitors/modes fall back to primary/desktop; monitor identifiers use name plus duplicate occurrence rather than global enumeration position. - Apply saves pending edits across Display and Graphics; Defaults stages defaults only for supported categories represented on the current page/search. Close discards drafts. PRK_FPS_LIMIT locks foreground cap without overwriting saved preferences. Long choice menus are grouped into bounded cascading pages. - Removed the renderer's blocking zero-extent swapchain wait so minimizing does not suspend network/update processing. Paused rendering still paces the main loop; reduced rendering is capped at 10 fps and zero-extent surfaces are skipped. - Client/test build passes. Latest nonvisual validation: 113 focused options/preferences/frame-policy, original AO preference-seed and world-shadow tests pass, including live runtime configuration, draft/apply refusal/retry and absence of Display restart labels. PR preparation reproduced an original AO DisplayWidth/DisplayHeight key collision; PRK now uses DisplayFullscreenWidth/DisplayFullscreenHeight, verified with real seeds and a seedless regression. Three stock-profile fixture tests were excluded because the available install lacks prefs/Prefs.xml. Opt-in repeated native window-transition and live Vulkan-rendering smoke tests are implemented but not run for this revision. Earlier initial-implementation startup smoke tests and rendered previews do not verify the new live transition path. - Broader suite: 2,963 passed, 82 asset-dependent failures and 10 skipped because installation/text paths were not configured in the standard test container. No claim that the whole suite passed. - User owns all visual verification from now on. Do not launch GUIs, render/review screenshots or run virtual-display verification without a new explicit request. The assistant's disposable virtual-display container was stopped before live native tests ran. User verification remains for live mode/monitor/resolution/refresh/VSync transitions, geometry restoration, minimized/focus behavior and target-platform presentation (including Windows/macOS/MoltenVK where applicable). Committed as ee36a4a71 (feature: Add live client display options), with ba013d641 (fix: Avoid original display preference key collisions), on feature/client-options-window; pushed with upstream and working tree clean. Implementation and nonvisual validation are complete, awaiting user visual verification. Pull request PR #2625: https://git.project-rk.com/prk/engines/pulls/2625 Head feature/client-options-window → base develop. User explicitly approved including the complete prerequisite options/layout/design and graphics branch.
Checklist
4 of 5 complete- Connect all Display controls to staged, validated machine preferences and category defaults/discard/save behavior.
- Implement native monitor/mode discovery, safe startup window geometry/fullscreen/VSync and live foreground/background/minimized frame policy.
- Pass client build and focused regression tests, render the wired Display panel with real assets, and record native/platform smoke-test limitations.
- All Display settings use live apply with windowed geometry preservation, apply-failure handling and passing runtime/model/presenter code-level regression tests.
- User visually verifies live Display transitions (mode, monitor, resolution, refresh and VSync), windowed geometry restoration and focus/minimized behavior on target platforms. Assistant must not launch GUI or screenshot verification without explicit request.
- Area
- Project Rubi-Ka
- Project
- engines
- Kind
- Feature
- Task ID
tsk_dn85f73r7y- Updated