Scaffold CoopAllTheThings: Remote Play Together for any XInput game via a mirror app under a donor appid (real game keeps its own appid, so DRM, achievements, and playtime stay intact). - Build: CMake skeleton, ImGui + SafetyHook submodules (no vcpkg) - common/: host<->hook IPC contract (seqlock pad state, shared-memory RAII) - host/: borderless D3D11 window + ImGui overlay listing visible XInput pads, behind an InputSource interface (Steam Input slots in later) - README documents the Phase 0 donor-launch validation procedure, anti-cheat limitation, and XInput/bitness constraints Phase 0 validates the riskiest assumption (Steam RPT streams an arbitrary window under a donor appid and routes guest input to it) before capture and injection are built. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
28 lines
473 B
C++
28 lines
473 B
C++
// Owns ImGui setup/teardown for the Win32 + DX11 backends.
|
|
#pragma once
|
|
|
|
#include <d3d11.h>
|
|
#include <windows.h>
|
|
|
|
namespace coop
|
|
{
|
|
|
|
class ImGuiLayer
|
|
{
|
|
public:
|
|
ImGuiLayer() = default;
|
|
~ImGuiLayer();
|
|
|
|
ImGuiLayer(const ImGuiLayer&) = delete;
|
|
ImGuiLayer& operator=(const ImGuiLayer&) = delete;
|
|
|
|
bool init(HWND hwnd, ID3D11Device* device, ID3D11DeviceContext* context);
|
|
void begin_frame();
|
|
void end_frame();
|
|
|
|
private:
|
|
bool initialized_ = false;
|
|
};
|
|
|
|
} // namespace coop
|