diff --git a/gfx/common/vulkan_common.h b/gfx/common/vulkan_common.h index 33cb75ee5e..35adc02ef0 100644 --- a/gfx/common/vulkan_common.h +++ b/gfx/common/vulkan_common.h @@ -16,7 +16,16 @@ #ifndef VULKAN_COMMON_H__ #define VULKAN_COMMON_H__ +#ifdef HAVE_CONFIG_H +#include "../../config.h" +#endif + #define VK_PROTOTYPES + +#ifdef HAVE_WAYLAND +#define VK_USE_PLATFORM_WAYLAND_KHR +#endif + #include #include @@ -78,6 +87,44 @@ typedef struct vulkan_context bool swapchain_is_srgb; } vulkan_context_t; +typedef struct gfx_ctx_vulkan_data +{ + vulkan_context_t context; + + PFN_vkGetPhysicalDeviceSurfaceSupportKHR fpGetPhysicalDeviceSurfaceSupportKHR; + PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR fpGetPhysicalDeviceSurfaceCapabilitiesKHR; + PFN_vkGetPhysicalDeviceSurfaceFormatsKHR fpGetPhysicalDeviceSurfaceFormatsKHR; + PFN_vkGetPhysicalDeviceSurfacePresentModesKHR fpGetPhysicalDeviceSurfacePresentModesKHR; + PFN_vkCreateSwapchainKHR fpCreateSwapchainKHR; + PFN_vkDestroySwapchainKHR fpDestroySwapchainKHR; + PFN_vkGetSwapchainImagesKHR fpGetSwapchainImagesKHR; + PFN_vkAcquireNextImageKHR fpAcquireNextImageKHR; + PFN_vkQueuePresentKHR fpQueuePresentKHR; +#ifdef _WIN32 + PFN_vkCreateWin32SurfaceKHR fpCreateWin32SurfaceKHR; +#endif +#ifdef HAVE_XCB + PFN_vkCreateXcbSurfaceKHR fpCreateXcbSurfaceKHR; +#endif +#ifdef HAVE_XLIB + PFN_vkCreateXlibSurfaceKHR fpCreateXlibSurfaceKHR; +#endif +#ifdef ANDROID + PFN_vkCreateAndroidSurfaceKHR fpCreateAndroidSurfaceKHR; +#endif +#ifdef HAVE_WAYLAND + PFN_vkCreateWaylandSurfaceKHR fpCreateWaylandSurfaceKHR; +#endif +#ifdef HAVE_MIR + FN_vkCreateMirSurfaceKHR fpCreateMirSurfaceKHR; +#endif + PFN_vkDestroySurfaceKHR fpDestroySurfaceKHR; + + VkSurfaceKHR vk_surface; + VkSwapchainKHR swapchain; + bool need_new_swapchain; +} gfx_ctx_vulkan_data_t; + struct vk_color { float r, g, b, a; diff --git a/gfx/drivers_context/wayland_ctx.c b/gfx/drivers_context/wayland_ctx.c index b5b8967fea..cbe07a4a40 100644 --- a/gfx/drivers_context/wayland_ctx.c +++ b/gfx/drivers_context/wayland_ctx.c @@ -19,7 +19,6 @@ #endif #ifdef HAVE_VULKAN -#define VK_USE_PLATFORM_WAYLAND_KHR #include "../common/vulkan_common.h" #endif @@ -49,49 +48,10 @@ static volatile sig_atomic_t g_quit = 0; #ifdef HAVE_VULKAN static VkInstance cached_instance; static VkDevice cached_device; - -typedef struct gfx_ctx_vulkan_data -{ - struct vulkan_context context; - - PFN_vkGetPhysicalDeviceSurfaceSupportKHR fpGetPhysicalDeviceSurfaceSupportKHR; - PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR fpGetPhysicalDeviceSurfaceCapabilitiesKHR; - PFN_vkGetPhysicalDeviceSurfaceFormatsKHR fpGetPhysicalDeviceSurfaceFormatsKHR; - PFN_vkGetPhysicalDeviceSurfacePresentModesKHR fpGetPhysicalDeviceSurfacePresentModesKHR; - PFN_vkCreateSwapchainKHR fpCreateSwapchainKHR; - PFN_vkDestroySwapchainKHR fpDestroySwapchainKHR; - PFN_vkGetSwapchainImagesKHR fpGetSwapchainImagesKHR; - PFN_vkAcquireNextImageKHR fpAcquireNextImageKHR; - PFN_vkQueuePresentKHR fpQueuePresentKHR; -#ifdef _WIN32 - PFN_vkCreateWin32SurfaceKHR fpCreateWin32SurfaceKHR; -#endif -#ifdef HAVE_XCB - PFN_vkCreateXcbSurfaceKHR fpCreateXcbSurfaceKHR; -#endif -#ifdef HAVE_XLIB - PFN_vkCreateXlibSurfaceKHR fpCreateXlibSurfaceKHR; -#endif -#ifdef ANDROID - PFN_vkCreateAndroidSurfaceKHR fpCreateAndroidSurfaceKHR; -#endif -#ifdef HAVE_WAYLAND - PFN_vkCreateWaylandSurfaceKHR fpCreateWaylandSurfaceKHR; -#endif -#ifdef HAVE_MIR - FN_vkCreateMirSurfaceKHR fpCreateMirSurfaceKHR; -#endif - PFN_vkDestroySurfaceKHR fpDestroySurfaceKHR; - - VkSurfaceKHR vk_surface; - VkSwapchainKHR swapchain; - bool need_new_swapchain; -} gfx_ctx_vulkan_data_t; #endif typedef struct gfx_ctx_wayland_data { - #ifdef HAVE_EGL egl_ctx_data_t egl; struct wl_egl_window *win;