// Monitor enumeration for the M3 multi-screen layout: DXGI outputs on the // render adapter, with virtual-desktop pixel rects. The world mapping // (px -> meters, OS-relative placement) lives in the app — this is just // the facts. #pragma once #include #include #include namespace sauna { struct MonitorDesc { int outputIndex = 0; // DXGI EnumOutputs index on the render adapter int32_t left = 0, top = 0; // virtual-desktop pixel coordinates int32_t right = 0, bottom = 0; bool primary = false; // contains the virtual-desktop origin wchar_t name[32] = {}; // e.g. \\.\DISPLAY1 int32_t width() const { return right - left; } int32_t height() const { return bottom - top; } }; // Outputs of the adapter that owns renderDev (matched by LUID), attached // desktops only. Empty on failure. The Beyond in direct mode does not // enumerate — no capture feedback loop. std::vector EnumerateMonitors(ID3D12Device* renderDev); } // namespace sauna