mirror of
https://github.com/libretro/RetroArch
synced 2025-04-01 04:20:27 +00:00
Start implementing xlib/xcb bits (for when these context drivers
get added)
This commit is contained in:
parent
14d39be698
commit
eb1fe0476d
@ -66,6 +66,12 @@ typedef struct gfx_ctx_vulkan_data
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
PFN_vkCreateWin32SurfaceKHR fpCreateWin32SurfaceKHR;
|
PFN_vkCreateWin32SurfaceKHR fpCreateWin32SurfaceKHR;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef HAVE_XCB
|
||||||
|
PFN_vkCreateXcbSurfaceKHR fpCreateXcbSurfaceKHR;
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_XLIB
|
||||||
|
PFN_vkCreateXlibSurfaceKHR fpCreateXlibSurfaceKHR;
|
||||||
|
#endif
|
||||||
#ifdef ANDROID
|
#ifdef ANDROID
|
||||||
PFN_vkCreateAndroidSurfaceKHR fpCreateAndroidSurfaceKHR;
|
PFN_vkCreateAndroidSurfaceKHR fpCreateAndroidSurfaceKHR;
|
||||||
#endif
|
#endif
|
||||||
@ -798,6 +804,18 @@ static bool vulkan_init_context(gfx_ctx_vulkan_data_t *vk,
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
VK_GET_INSTANCE_PROC_ADDR(vk,
|
VK_GET_INSTANCE_PROC_ADDR(vk,
|
||||||
vk->context.instance, CreateWin32SurfaceKHR);
|
vk->context.instance, CreateWin32SurfaceKHR);
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
case VULKAN_WSI_XLIB:
|
||||||
|
#ifdef HAVE_XLIB
|
||||||
|
VK_GET_INSTANCE_PROC_ADDR(vk,
|
||||||
|
vk->context.instance, CreateXlibSurfaceKHR);
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
case VULKAN_WSI_XCB:
|
||||||
|
#ifdef HAVE_XCB
|
||||||
|
VK_GET_INSTANCE_PROC_ADDR(vk,
|
||||||
|
vk->context.instance, CreateXcbSurfaceKHR);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case VULKAN_WSI_NONE:
|
case VULKAN_WSI_NONE:
|
||||||
@ -1160,6 +1178,44 @@ static bool vulkan_surface_create(gfx_ctx_vulkan_data_t *vk,
|
|||||||
&surf_info, NULL, &vk->vk_surface) != VK_SUCCESS)
|
&surf_info, NULL, &vk->vk_surface) != VK_SUCCESS)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
case VULKAN_WSI_XLIB:
|
||||||
|
#ifdef HAVE_XLIB
|
||||||
|
{
|
||||||
|
VkXlibSurfaceCreateInfoKHR surf_info;
|
||||||
|
|
||||||
|
memset(&surf_info, 0, sizeof(VkXlibSurfaceCreateInfoKHR));
|
||||||
|
|
||||||
|
surf_info.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;
|
||||||
|
surf_info.flags = 0;
|
||||||
|
surf_info.dpy = display;
|
||||||
|
surf_info.window = surface;
|
||||||
|
|
||||||
|
if (vktsCreateXlibSurfaceKHR(vk->context.instance,
|
||||||
|
&surf_info, NULL, &vk->vk_surface)
|
||||||
|
!= VK_SUCCESS)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
case VULKAN_WSI_XCB:
|
||||||
|
#ifdef HAVE_XCB
|
||||||
|
{
|
||||||
|
VkXcbSurfaceCreateInfoKHR surf_info;
|
||||||
|
|
||||||
|
memset(&surf_info, 0, sizeof(VkXcbSurfaceCreateInfoKHR));
|
||||||
|
|
||||||
|
surf_info.sType = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
|
||||||
|
surf_info.flags = 0;
|
||||||
|
surf_info.connection = XGetXCBConnection(display);
|
||||||
|
surf_info.window = (xcb_window_t)surface;
|
||||||
|
|
||||||
|
if (vktsCreateXcbSurfaceKHR(vk->context.instance,
|
||||||
|
&surf_info, NULL, &vk->vk_surface)
|
||||||
|
!= VK_SUCCESS)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case VULKAN_WSI_NONE:
|
case VULKAN_WSI_NONE:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user