diff --git a/Vulkan-Headers b/Vulkan-Headers index 361fe21..384881c 160000 --- a/Vulkan-Headers +++ b/Vulkan-Headers @@ -1 +1 @@ -Subproject commit 361fe216efa0a09634c8396d38a3ebfdc7095288 +Subproject commit 384881cc90fe243b4d29bfbc359f59752c2be995 diff --git a/vulkan/vulkan.hpp b/vulkan/vulkan.hpp index cb52a79..c215597 100644 --- a/vulkan/vulkan.hpp +++ b/vulkan/vulkan.hpp @@ -119,7 +119,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h # include #endif -static_assert( VK_HEADER_VERSION == 207, "Wrong VK_HEADER_VERSION!" ); +static_assert( VK_HEADER_VERSION == 208, "Wrong VK_HEADER_VERSION!" ); // 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default. // To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION diff --git a/vulkan/vulkan_enums.hpp b/vulkan/vulkan_enums.hpp index dfb29bf..056b201 100644 --- a/vulkan/vulkan_enums.hpp +++ b/vulkan/vulkan_enums.hpp @@ -2635,6 +2635,20 @@ namespace VULKAN_HPP_NAMESPACE } } + enum class InstanceCreateFlagBits : VkInstanceCreateFlags + { + eEnumeratePortabilityKHR = VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR + }; + + VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits value ) + { + switch ( value ) + { + case InstanceCreateFlagBits::eEnumeratePortabilityKHR: return "EnumeratePortabilityKHR"; + default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; + } + } + enum class InternalAllocationType { eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE @@ -2796,15 +2810,6 @@ namespace VULKAN_HPP_NAMESPACE } } - enum class InstanceCreateFlagBits - { - }; - - VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits ) - { - return "(void)"; - } - enum class DeviceCreateFlagBits { }; @@ -8630,9 +8635,45 @@ namespace VULKAN_HPP_NAMESPACE using InstanceCreateFlags = Flags; - VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags ) + template <> + struct FlagTraits { - return "{}"; + enum : VkFlags + { + allFlags = VkFlags( InstanceCreateFlagBits::eEnumeratePortabilityKHR ) + }; + }; + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR InstanceCreateFlags operator|( InstanceCreateFlagBits bit0, InstanceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + { + return InstanceCreateFlags( bit0 ) | bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR InstanceCreateFlags operator&( InstanceCreateFlagBits bit0, InstanceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + { + return InstanceCreateFlags( bit0 ) & bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR InstanceCreateFlags operator^( InstanceCreateFlagBits bit0, InstanceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT + { + return InstanceCreateFlags( bit0 ) ^ bit1; + } + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR InstanceCreateFlags operator~( InstanceCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT + { + return ~( InstanceCreateFlags( bits ) ); + } + + VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags value ) + { + if ( !value ) + return "{}"; + + std::string result; + if ( value & InstanceCreateFlagBits::eEnumeratePortabilityKHR ) + result += "EnumeratePortabilityKHR | "; + + return "{ " + result.substr( 0, result.size() - 3 ) + " }"; } using MemoryHeapFlags = Flags;