Vulkan: Move device-level extension to Vk::Device

Former-commit-id: a73c8cd9744517baea7a5fbd440ccb4d90e9bfc7
This commit is contained in:
Lynix 2016-04-29 22:45:54 +02:00
parent 81e2c3817a
commit da3682149c
4 changed files with 32 additions and 24 deletions

View File

@ -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:

View File

@ -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);

View File

@ -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)
{

View File

@ -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"))
{