diff options
Diffstat (limited to 'src/vulkan/wsi/wsi_common.h')
-rw-r--r-- | src/vulkan/wsi/wsi_common.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/vulkan/wsi/wsi_common.h b/src/vulkan/wsi/wsi_common.h index a1f5a40186c..394b8fa1914 100644 --- a/src/vulkan/wsi/wsi_common.h +++ b/src/vulkan/wsi/wsi_common.h @@ -116,9 +116,27 @@ struct wsi_callbacks { return (__VkType)(uintptr_t) _obj; \ } -WSI_DEFINE_NONDISP_HANDLE_CASTS(_VkIcdSurfaceBase, VkSurfaceKHR) WSI_DEFINE_NONDISP_HANDLE_CASTS(wsi_swapchain, VkSwapchainKHR) +#define ICD_DEFINE_NONDISP_HANDLE_CASTS(__VkIcdType, __VkType) \ + \ + static inline __VkIcdType * \ + __VkIcdType ## _from_handle(__VkType _handle) \ + { \ + return (__VkIcdType *)(uintptr_t) _handle; \ + } \ + \ + static inline __VkType \ + __VkIcdType ## _to_handle(__VkIcdType *_obj) \ + { \ + return (__VkType)(uintptr_t) _obj; \ + } + +#define ICD_FROM_HANDLE(__VkIcdType, __name, __handle) \ + __VkIcdType *__name = __VkIcdType ## _from_handle(__handle) + +ICD_DEFINE_NONDISP_HANDLE_CASTS(VkIcdSurfaceBase, VkSurfaceKHR) + VkResult wsi_x11_init_wsi(struct wsi_device *wsi_device, const VkAllocationCallbacks *alloc); void wsi_x11_finish_wsi(struct wsi_device *wsi_device, |