#pragma once #include #include namespace deimos { class ApiRegistry; class Allocator; struct OsWindow; class IVulkanBackend { public: }; class VulkanBackendApi { public: VulkanBackendApi() = default; deimos_NO_COPY_MOVE(VulkanBackendApi); virtual ~VulkanBackendApi() = default; static constexpr IdName kApiName{"deimos::VulkanBackendApi"}; virtual StatusOr> CreateBackend(Allocator*, OsWindow*) = 0; }; void RegisterVulkanBackendApi(ApiRegistry*); } // namespace deimos