// Owns ImGui setup/teardown for the Win32 + DX11 backends. #pragma once #include #include #include 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; // Backing storage for io.IniFilename (ImGui keeps the pointer, not a copy), so the // layout .ini path must outlive the context. Empty until init() sets it. std::string ini_path_; }; } // namespace coop