From da3682149cb35e826133725b521c9b96ffb6a570 Mon Sep 17 00:00:00 2001 From: Lynix Date: Fri, 29 Apr 2016 22:45:54 +0200 Subject: [PATCH] Vulkan: Move device-level extension to Vk::Device Former-commit-id: a73c8cd9744517baea7a5fbd440ccb4d90e9bfc7 --- include/Nazara/Vulkan/VkDevice.hpp | 18 ++++++++++++++++++ include/Nazara/Vulkan/VkInstance.hpp | 10 ---------- src/Nazara/Vulkan/VkDevice.cpp | 14 ++++++++++++++ src/Nazara/Vulkan/VkInstance.cpp | 14 -------------- 4 files changed, 32 insertions(+), 24 deletions(-) diff --git a/include/Nazara/Vulkan/VkDevice.hpp b/include/Nazara/Vulkan/VkDevice.hpp index 0779cdcd8..547253fd9 100644 --- a/include/Nazara/Vulkan/VkDevice.hpp +++ b/include/Nazara/Vulkan/VkDevice.hpp @@ -40,10 +40,28 @@ namespace Nz // Vulkan functions #define NAZARA_VULKAN_DEVICE_FUNCTION(func) PFN_##func func + // Vulkan core NAZARA_VULKAN_DEVICE_FUNCTION(vkDestroyDevice); NAZARA_VULKAN_DEVICE_FUNCTION(vkDeviceWaitIdle); NAZARA_VULKAN_DEVICE_FUNCTION(vkGetDeviceQueue); + // VK_KHR_display_swapchain + NAZARA_VULKAN_DEVICE_FUNCTION(vkCreateSharedSwapchainsKHR); + + // VK_KHR_surface + NAZARA_VULKAN_DEVICE_FUNCTION(vkDestroySurfaceKHR); + NAZARA_VULKAN_DEVICE_FUNCTION(vkGetPhysicalDeviceSurfaceCapabilitiesKHR); + NAZARA_VULKAN_DEVICE_FUNCTION(vkGetPhysicalDeviceSurfaceFormatsKHR); + NAZARA_VULKAN_DEVICE_FUNCTION(vkGetPhysicalDeviceSurfacePresentModesKHR); + NAZARA_VULKAN_DEVICE_FUNCTION(vkGetPhysicalDeviceSurfaceSupportKHR); + + // VK_KHR_swapchain + NAZARA_VULKAN_DEVICE_FUNCTION(vkAcquireNextImageKHR); + NAZARA_VULKAN_DEVICE_FUNCTION(vkCreateSwapchainKHR); + NAZARA_VULKAN_DEVICE_FUNCTION(vkDestroySwapchainKHR); + NAZARA_VULKAN_DEVICE_FUNCTION(vkGetSwapchainImagesKHR); + NAZARA_VULKAN_DEVICE_FUNCTION(vkQueuePresentKHR); + #undef NAZARA_VULKAN_DEVICE_FUNCTION private: diff --git a/include/Nazara/Vulkan/VkInstance.hpp b/include/Nazara/Vulkan/VkInstance.hpp index 4581b9cf1..ded2b0ef7 100644 --- a/include/Nazara/Vulkan/VkInstance.hpp +++ b/include/Nazara/Vulkan/VkInstance.hpp @@ -75,9 +75,6 @@ namespace Nz NAZARA_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceDisplayPlanePropertiesKHR); NAZARA_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceDisplayPropertiesKHR); - // VK_KHR_display_swapchain - NAZARA_VULKAN_INSTANCE_FUNCTION(vkCreateSharedSwapchainsKHR); - // VK_KHR_surface NAZARA_VULKAN_INSTANCE_FUNCTION(vkDestroySurfaceKHR); NAZARA_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceCapabilitiesKHR); @@ -85,13 +82,6 @@ namespace Nz NAZARA_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfacePresentModesKHR); NAZARA_VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceSupportKHR); - // VK_KHR_swapchain - NAZARA_VULKAN_INSTANCE_FUNCTION(vkAcquireNextImageKHR); - NAZARA_VULKAN_INSTANCE_FUNCTION(vkCreateSwapchainKHR); - NAZARA_VULKAN_INSTANCE_FUNCTION(vkDestroySwapchainKHR); - NAZARA_VULKAN_INSTANCE_FUNCTION(vkGetSwapchainImagesKHR); - NAZARA_VULKAN_INSTANCE_FUNCTION(vkQueuePresentKHR); - // VK_EXT_debug_report NAZARA_VULKAN_INSTANCE_FUNCTION(vkCreateDebugReportCallbackEXT); NAZARA_VULKAN_INSTANCE_FUNCTION(vkDestroyDebugReportCallbackEXT); diff --git a/src/Nazara/Vulkan/VkDevice.cpp b/src/Nazara/Vulkan/VkDevice.cpp index ef28af223..1c3eafa3c 100644 --- a/src/Nazara/Vulkan/VkDevice.cpp +++ b/src/Nazara/Vulkan/VkDevice.cpp @@ -35,6 +35,20 @@ namespace Nz NAZARA_VULKAN_LOAD_DEVICE(vkDestroyDevice); NAZARA_VULKAN_LOAD_DEVICE(vkDeviceWaitIdle); NAZARA_VULKAN_LOAD_DEVICE(vkGetDeviceQueue); + + // VK_KHR_display_swapchain + if (m_instance.IsExtensionLoaded("VK_KHR_display_swapchain")) + NAZARA_VULKAN_LOAD_DEVICE(vkCreateSharedSwapchainsKHR); + + // VK_KHR_swapchain + if (m_instance.IsExtensionLoaded("VK_KHR_swapchain")) + { + NAZARA_VULKAN_LOAD_DEVICE(vkAcquireNextImageKHR); + NAZARA_VULKAN_LOAD_DEVICE(vkCreateSwapchainKHR); + NAZARA_VULKAN_LOAD_DEVICE(vkDestroySwapchainKHR); + NAZARA_VULKAN_LOAD_DEVICE(vkGetSwapchainImagesKHR); + NAZARA_VULKAN_LOAD_DEVICE(vkQueuePresentKHR); + } } catch (const std::exception& e) { diff --git a/src/Nazara/Vulkan/VkInstance.cpp b/src/Nazara/Vulkan/VkInstance.cpp index 5533798a5..e66189b7c 100644 --- a/src/Nazara/Vulkan/VkInstance.cpp +++ b/src/Nazara/Vulkan/VkInstance.cpp @@ -64,10 +64,6 @@ namespace Nz NAZARA_VULKAN_LOAD_INSTANCE(vkGetPhysicalDeviceDisplayPropertiesKHR); } - // VK_KHR_display_swapchain - if (IsExtensionLoaded("VK_KHR_display_swapchain")) - NAZARA_VULKAN_LOAD_INSTANCE(vkCreateSharedSwapchainsKHR); - // VK_KHR_surface if (IsExtensionLoaded("VK_KHR_display")) { @@ -78,16 +74,6 @@ namespace Nz NAZARA_VULKAN_LOAD_INSTANCE(vkGetPhysicalDeviceSurfaceSupportKHR); } - // VK_KHR_swapchain - if (IsExtensionLoaded("VK_KHR_swapchain")) - { - NAZARA_VULKAN_LOAD_INSTANCE(vkAcquireNextImageKHR); - NAZARA_VULKAN_LOAD_INSTANCE(vkCreateSwapchainKHR); - NAZARA_VULKAN_LOAD_INSTANCE(vkDestroySwapchainKHR); - NAZARA_VULKAN_LOAD_INSTANCE(vkGetSwapchainImagesKHR); - NAZARA_VULKAN_LOAD_INSTANCE(vkQueuePresentKHR); - } - // VK_EXT_debug_report if (IsExtensionLoaded("VK_EXT_debug_report")) {