18 #include "../utils/utils.hpp"
25 static char const * AppName =
"SurfaceCapabilities";
26 static char const * EngineName =
"Vulkan.hpp";
30 std::cout << std::string(
"\t" ) <<
"Capabilities:\n";
52 #if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
57 auto propertyIterator =
58 std::find_if( instanceExtensionProperties.begin(),
59 instanceExtensionProperties.end(),
60 [](
vk::ExtensionProperties const & ep ) { return strcmp( ep.extensionName, VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME ) == 0; } );
61 bool supportsGetSurfaceCapabilities2 = ( propertyIterator != instanceExtensionProperties.end() );
64 if ( supportsGetSurfaceCapabilities2 )
70 #if !defined( NDEBUG )
82 for (
size_t i = 0; i < physicalDevices.size(); i++ )
85 std::vector<vk::ExtensionProperties> extensionProperties = physicalDevices[i].enumerateDeviceExtensionProperties();
87 std::cout <<
"PhysicalDevice " << i <<
"\n";
88 if ( supportsGetSurfaceCapabilities2 )
90 auto surfaceCapabilities2 = physicalDevices[i]
97 cout( surfaceCapabilities );
103 std::cout << std::string(
"\t" ) <<
"DisplayNativeHdrSurfaceCapabilitiesAMD:\n";
108 if (
vk::su::contains( extensionProperties,
"VK_KHR_shared_presentable_image" ) )
111 std::cout << std::string(
"\t" ) <<
"SharedPresentSurfaceCapabilitiesKHR:\n";
117 if (
vk::su::contains( extensionProperties,
"VK_KHR_surface_protected_capabilities" ) )
120 std::cout << std::string(
"\t" ) <<
"SurfaceProtectedCapabilitiesKHR:\n";
128 cout( surfaceCapabilities );
135 #if !defined( NDEBUG )
145 catch ( std::exception & err )
void cout(vk::SurfaceCapabilitiesKHR const &surfaceCapabilities)
VULKAN_HPP_NODISCARD Result createDebugUtilsMessengerEXT(const vk::DebugUtilsMessengerCreateInfoEXT *pCreateInfo, const vk::AllocationCallbacks *pAllocator, vk::DebugUtilsMessengerEXT *pMessenger, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT
void destroy(const vk::AllocationCallbacks *pAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT
VULKAN_HPP_NODISCARD Result enumeratePhysicalDevices(uint32_t *pPhysicalDeviceCount, vk::PhysicalDevice *pPhysicalDevices, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT
void destroySurfaceKHR(vk::SurfaceKHR surface, const vk::AllocationCallbacks *pAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT
void destroyDebugUtilsMessengerEXT(vk::DebugUtilsMessengerEXT messenger, const vk::AllocationCallbacks *pAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT
virtual const char * what() const VULKAN_HPP_NOEXCEPT
vk::DebugUtilsMessengerCreateInfoEXT makeDebugUtilsMessengerCreateInfoEXT()
vk::Instance createInstance(std::string const &appName, std::string const &engineName, std::vector< std::string > const &layers, std::vector< std::string > const &extensions, uint32_t apiVersion)
std::vector< std::string > getInstanceExtensions()
bool contains(std::vector< vk::ExtensionProperties > const &extensionProperties, std::string const &extensionName)
VULKAN_HPP_INLINE std::string to_string(FormatFeatureFlags value)
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceExtensionProperties(const char *pLayerName, uint32_t *pPropertyCount, vk::ExtensionProperties *pProperties, Dispatch const &d) VULKAN_HPP_NOEXCEPT
vk::Bool32 localDimmingSupport
vk::ImageUsageFlags sharedPresentSupportedUsageFlags
vk::Extent2D maxImageExtent
vk::Extent2D minImageExtent
vk::SurfaceTransformFlagsKHR supportedTransforms
vk::SurfaceTransformFlagBitsKHR currentTransform
vk::ImageUsageFlags supportedUsageFlags
vk::CompositeAlphaFlagsKHR supportedCompositeAlpha
vk::Extent2D currentExtent
uint32_t maxImageArrayLayers
vk::Bool32 supportsProtected
#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME
#define VULKAN_HPP_DEFAULT_DISPATCHER