mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
Create vulkan_surface_create
This commit is contained in:
parent
98990d6afc
commit
96c9687a8a
@ -900,6 +900,49 @@ static void gfx_ctx_wl_set_swap_interval(void *data, unsigned swap_interval)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
static bool vulkan_surface_create(gfx_ctx_vulkan_data_t *vk,
|
||||
enum vulkan_wsi_type type,
|
||||
void *display, void *surface,
|
||||
unsigned width, unsigned height,
|
||||
unsigned swap_interval)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case VULKAN_WSI_WAYLAND:
|
||||
#ifdef HAVE_WAYLAND
|
||||
{
|
||||
VkWaylandSurfaceCreateInfoKHR wl_info;
|
||||
|
||||
memset(&wl_info, 0, sizeof(VkWaylandSurfaceCreateInfoKHR));
|
||||
|
||||
wl_info.sType = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR;
|
||||
wl_info.pNext = NULL;
|
||||
wl_info.flags = 0;
|
||||
wl_info.display = (struct wl_display*)display;
|
||||
wl_info.surface = (struct wl_surface*)surface;
|
||||
|
||||
vk->fpCreateWaylandSurfaceKHR(vk->context.instance,
|
||||
&wl_info, NULL, &vk->vk_surface);
|
||||
|
||||
if (!vulkan_create_swapchain(
|
||||
vk, width, height, swap_interval))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
#else
|
||||
break;
|
||||
#endif
|
||||
case VULKAN_WSI_NONE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
static bool gfx_ctx_wl_set_video_mode(void *data,
|
||||
unsigned width, unsigned height,
|
||||
bool fullscreen)
|
||||
@ -974,24 +1017,10 @@ static bool gfx_ctx_wl_set_video_mode(void *data,
|
||||
wl_display_roundtrip(wl->dpy);
|
||||
|
||||
#ifdef HAVE_VULKAN
|
||||
{
|
||||
VkWaylandSurfaceCreateInfoKHR wl_info;
|
||||
|
||||
memset(&wl_info, 0, sizeof(VkWaylandSurfaceCreateInfoKHR));
|
||||
|
||||
wl_info.sType = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR;
|
||||
wl_info.pNext = NULL;
|
||||
wl_info.flags = 0;
|
||||
wl_info.display = (struct wl_display*)wl->dpy;
|
||||
wl_info.surface = (struct wl_surface*)wl->surface;
|
||||
|
||||
wl->vk.fpCreateWaylandSurfaceKHR(wl->vk.context.instance,
|
||||
&wl_info, NULL, &wl->vk.vk_surface);
|
||||
|
||||
if (!vulkan_create_swapchain(
|
||||
&wl->vk, wl->width, wl->height, wl->swap_interval))
|
||||
goto error;
|
||||
}
|
||||
if (!vulkan_surface_create(&wl->vk, VULKAN_WSI_WAYLAND,
|
||||
wl->dpy, wl->surface,
|
||||
wl->width, wl->height, wl->swap_interval))
|
||||
goto error;
|
||||
#endif
|
||||
break;
|
||||
case GFX_CTX_NONE:
|
||||
|
Loading…
x
Reference in New Issue
Block a user