Lay out the overlay panels in a fixed 3-column scheme
Panels used to Begin at cascade positions, so they overlapped and clipped. A new apply_panel_layout() in app_chrome positions/sizes each panel from the main viewport work area (ImGuiCond_FirstUseEver, still movable): Injection left column full height (room for hook diagnostics), Controllers/Video/Audio stacked in the center column, Log right edge full height (max room for the log stream). Added a "View -> Reset layout" menu item (request_layout_reset / apply_layout_end_frame re-apply the defaults once via ImGuiCond_Always). Each panel now calls apply_panel_layout(Panel::X) instead of its own ad-hoc SetNextWindowPos/Size. Verified live: captured the host overlay -- Injection (left, full height), Controllers/Video/Audio (center stack), Log (right, full height), no overlap among the panels. x64 build + ctest green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
11
README.md
11
README.md
@@ -75,17 +75,6 @@ is removed from this list once done — so the top item is always next. The
|
||||
self-verifiable tooling / UI / input items come first; the game-pipeline items that
|
||||
need a real game (and Remote Play) to fully validate come last.
|
||||
|
||||
- **Auto-size and lay out the overlay windows so none need manual resizing.** Panels
|
||||
currently `Begin` at default cascade positions, so they overlap and clip. Give each
|
||||
`ImGuiWindowFlags_AlwaysAutoResize` and an initial position computed from
|
||||
`ImGui::GetMainViewport()->WorkPos/WorkSize`, applied with `ImGuiCond_FirstUseEver`
|
||||
(still movable), plus a **View → Reset layout** menu item that re-applies it. Target
|
||||
layout: **Injection** left/top (room to grow downward for hook diagnostics);
|
||||
**Controllers** top-center; **Video mirror** center, below Controllers; **Audio
|
||||
mirror** below Video; **Log** right edge, full height (most room for the log
|
||||
stream). Auto-resize fits these because they're all control/debug panels — the live
|
||||
mirror image is drawn to the whole host window *behind* the overlay, not inside a
|
||||
panel.
|
||||
- **Fix the Audio panel "live" column.** It overlays a green dot and grey "idle"
|
||||
because liveness is recomputed each frame from the per-stream `frames_rendered`
|
||||
delta, which is zero on most frames (buffers release in bursts), so it flickers.
|
||||
|
||||
Reference in New Issue
Block a user