You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Two related UX fixes folded together because they both touch the FPS
display surface:
1) OutputWindow now matches the main windows FPS counter exactly.
The per-window m_frameCount / m_fpsTime / m_timingText state is
gone -- every render tick presents to all output windows
synchronously, so the main windows FPS *is* every output windows
FPS. New SetStatusText() + SetStatusTooltip() setters take the
canonical strings; PresentOutputWindows pushes them each frame.
Both windows now display "60 fps | 16.5 ms" with the same
per-phase breakdown on hover.
Factored BuildFpsStatusText() and BuildFpsTooltipText() out of
UpdateFpsTooltip() as the single source of truth so any future
FPS surface (debugger overlay, MCP /perf, etc.) can reuse them.
2) The per-phase frame-timing breakdown is now a click-persistent
Flyout instead of a hover Tooltip. The previous hover-tooltip
auto-dismissed ~1s after the cursor entered, making the multi-line
text effectively unreadable. Now: click the FPS counter to open,
click outside to dismiss, no auto-dismiss. The button itself has a
short hover tooltip ("Click for per-phase frame timing breakdown")
so the affordance is discoverable.
FpsTooltipText (the inner monospace TextBlock) is x:Named the same
way it was inside the old Tooltip, so UpdateFpsTooltip() still
targets it without changes.
154/154 tests pass.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
0 commit comments