#pragma once #include namespace dx12_starter { struct DeviceCreateParams { void* nativeWindowHandle; int versionMajor; int versionMinor; }; class IDevice { public: virtual ~IDevice() = default; virtual void ClearBuffers() = 0; virtual void Present() = 0; virtual void DrawScene() = 0; virtual void Destroy() = 0; static std::unique_ptr Create(const DeviceCreateParams& params); }; } // namespace dx12_starter