86 lines
1.8 KiB
C++
86 lines
1.8 KiB
C++
#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<ITexture*> 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;
|