xash3d-fwgs/engine/ref_vulkan.h
2021-07-11 15:47:51 -07:00

26 lines
921 B
C

#pragma once
#ifdef XASH_VULKAN
// Define Vulkan handles without depending on vulkan.h
#ifndef VULKAN_H_
#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
#else
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
#endif
VK_DEFINE_HANDLE(VkInstance)
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
#undef VK_DEFINE_HANDLE
#undef VK_DEFINE_NON_DISPATCHABLE_HANDLE
#endif // ifndef VULKAN_H_
int XVK_GetInstanceExtensions( unsigned int count, const char **pNames );
void *XVK_GetVkGetInstanceProcAddr( void );
VkSurfaceKHR XVK_CreateSurface( VkInstance instance );
#endif // ifdef XASH_VULKAN