#include "filesystem.h" #include "rendering.h" #include "tier0/platform.h" #include "tier1/utlvector.h" #include "console.h" #include "tier1/commandline.h" #include "vulkan/vulkan.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" 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; }; 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 VkFormat g_swapchainFormat; extern bool g_bConfigNotify; extern uint32_t g_nWindowWidth; extern uint32_t g_nWindowHeight; extern VkSampler g_invalidTextureSampler; extern IMaterial *g_pDefaultMaterial; extern IMaterial *g_pCurrentMaterial; extern CUtlVector g_textures; struct CameraProjection { mat4 viewprojection; }; extern vk_buffer_t g_cameraProperties; extern CameraProjection *g_cameraDataMap; extern vk_image2d_t g_meshDepth; extern vk_image2d_t g_meshDepthMSAA; extern vk_image2d_t g_meshColor; extern vk_image2d_t g_meshColorMSAA;