#pragma once #include namespace dx12_starter { struct WindowCreateParams { int x; int y; int width; int height; const char* name; }; class IWindow { public: virtual ~IWindow() = default; virtual void PumpMessages() = 0; virtual bool IsOpen() const = 0; virtual void* GetNativeHandle() const = 0; static std::unique_ptr Create(WindowCreateParams params); }; } // namespace starter_window