#include "filesystem.h" #include "rendering.h" #include "tier0/platform.h" #include "tier1/utlvector.h" #include "console.h" #include "tier1/commandline.h" #include "X11/X.h" #include "X11/Xlib.h" #include "vulkan/vulkan.h" #include "vulkan/vulkan_core.h" #include "vulkan/vulkan_xlib.h" #define VULKAN_RENDERING_IMPL #include "vk_video.h" #define VK_DEVICE_FUNCTION(name) extern PFN_##name _##name #include "vk_external_functions.cpp" #undef VK_DEVICE_FUNCTION #include "cglm/affine.h" #include "cglm/cglm.h" extern Display* g_xdisplay; extern int g_xscreen; extern Window g_xroot; extern Window g_xwin; extern VkInstance g_vkInstance; extern VkPhysicalDevice g_vkPhysicalDevice; extern VkDevice g_vkDevice; extern uint32_t g_drawfamily; extern VkQueue g_drawQueue; extern uint32_t g_presentfamily; extern VkQueue g_presentQueue; extern VmaAllocator g_allocator; extern VkSurfaceKHR g_surface; extern VkSwapchainKHR g_swapchain; extern VkCommandPool g_vkCommandPool; extern VkCommandBuffer g_vkCommandBuffer; extern VkImageView g_swapchainImageView; extern VkImage g_swapchainImage; extern uint32_t g_nWindowWidth; extern uint32_t g_nWindowHeight; class CVertexBuffer: public IVertexBuffer { public: void *Map() override; void Unmap() override; vk_buffer_t m_buffer; void *m_pAllocated = NULL; }; class CIndexBuffer: public IIndexBuffer { public: void *Map() override; void Unmap() override; vk_buffer_t m_buffer; void *m_pAllocated; }; class CTexture: public ITexture { public: vk_image2d_t image; };