Move controller-poll info from Injection to Controllers panel

The per-slot XInput poll rates and the "game reading controller" summary
describe the controller, not the injection mechanism, so move them to the
Controllers panel (renamed from debug_overlay -> ControllersPanel, now a class
that owns the poll-rate sampling). The panel now shows both directions: the
guest pads the host receives from RPT, and what the injected game reads back.

The Injection panel keeps the hook attach state, focus spoof, focus-API
counts, and input-path diagnostics, and points to the Controllers panel for
poll rates.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-19 20:00:30 +02:00
parent 4e076420bf
commit 565934e8cf
8 changed files with 193 additions and 168 deletions

View File

@@ -15,8 +15,8 @@
#include "audio_panel.hpp"
#include "capture_panel.hpp"
#include "controllers_panel.hpp"
#include "d3d11_window.hpp"
#include "debug_overlay.hpp"
#include "imgui_layer.hpp"
#include "injection_panel.hpp"
#include "input/xinput_source.hpp"
@@ -64,6 +64,7 @@ int run()
}
auto input = std::make_unique<coop::XInputSource>();
coop::ControllersPanel controllers;
coop::InjectionPanel injection;
coop::AudioPanel audio;
coop::CapturePanel capture;
@@ -105,7 +106,7 @@ int run()
coop::draw_main_menu_bar(ui, stats);
if (ui.show_controllers)
{
coop::draw_controllers_panel(*input, ui.debug_details);
controllers.draw(*input, injection.hook_status(), ui.debug_details);
}
if (ui.show_injection)
{