Add game-frame-synced flip toggle + multi-series colored perf graphs
Frame sync: new "Sync flip to game frames" toggle in the Video mirror panel (Hooked source only -- WGC frames are delivered by the compositor at monitor refresh and don't carry the game's true present cadence, so it's disabled there). When on, the main loop waits for the hook's next published frame (its generation bump) before rendering and presents with sync interval 0, so the tool flips in lockstep with the game instead of vsync. The wait pumps messages to stay responsive and times out after 200 ms so a paused/stalled game can't hang the overlay. timeBeginPeriod(1) keeps the wait's Sleep(1) granular; links winmm. render_frame() gained a sync_interval parameter (default 1 = vsync). Perf graphs: the old graphs drew the tool's frametime and FPS as single same-color lines. Replaced with a custom multi-series plotter (ImDrawList polylines) that overlays Tool (blue), Game present (green), and Hook publish (orange) -- or Tool + WGC capture in WGC mode -- in distinct colors with a colored legend, for both an FPS (0-144) and a frametime (0-33 ms) view. Game/hook rates come from an EdgeRate tracker that measures the instantaneous rate the moment each counter advances, so the lines have real per-frame resolution rather than 0.5 s stair-steps. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -36,6 +36,7 @@ target_link_libraries(coop_host PRIVATE
|
||||
windowsapp
|
||||
xinput
|
||||
mmdevapi
|
||||
winmm
|
||||
ole32)
|
||||
|
||||
set_target_properties(coop_host PROPERTIES OUTPUT_NAME "coop_host")
|
||||
|
||||
Reference in New Issue
Block a user