#ifndef GAME_WINDOW_H #define GAME_WINDOW_H #include "tier2/iappsystem.h" #include "tier0/platform.h" enum EGraphicsAPI { GRAPHICS_API_METAL, GRAPHICS_API_VULKAN, }; abstract_class IGameWindow: public IAppSystem { public: virtual void UpdateWindow() = 0; virtual EGraphicsAPI GetGraphicsAPI() = 0; virtual int GetVulkanInstanceExtensionCount() = 0; virtual const char **GetVulkanInstanceExtensions() = 0; virtual void CreateVulkanSurface( void *pInstance ) = 0; virtual void DestroyVulkanSurface( void *pInstance ) = 0; virtual void *GetVulkanSurface() = 0; }; extern IGameWindow *gamewindow; #endif