From 8ddea439425dec836c58808b2f1b07f31e4c25c7 Mon Sep 17 00:00:00 2001 From: asuessenbach Date: Wed, 1 Jul 2020 14:43:37 +0200 Subject: [PATCH] Introduce helper class ArrayProxyNoTemporaries and structure setter functions using that. Resolves #62! --- VulkanHppGenerator.cpp | 433 +++++++++--- VulkanHppGenerator.hpp | 10 +- vulkan/vulkan.hpp | 1429 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1779 insertions(+), 93 deletions(-) diff --git a/VulkanHppGenerator.cpp b/VulkanHppGenerator.cpp index 94bff30..c3500a2 100644 --- a/VulkanHppGenerator.cpp +++ b/VulkanHppGenerator.cpp @@ -3744,12 +3744,14 @@ void VulkanHppGenerator::appendStructs( std::string & str ) const } } -void VulkanHppGenerator::appendStructSetter( std::string & str, - std::string const & structureName, - bool isUnion, - MemberData const & memberData ) const +void VulkanHppGenerator::appendStructSetter( std::string & str, + std::string const & structureName, + bool isUnion, + std::vector const & memberData, + size_t index ) const { - if ( memberData.type.type != "VkStructureType" ) // filter out StructureType, which is supposed to be immutable ! + MemberData const & member = memberData[index]; + if ( member.type.type != "VkStructureType" ) // filter out StructureType, which is supposed to be immutable ! { static const std::string templateString = R"( ${structureName} & set${MemberName}( ${memberType} ${reference}${memberName}_ ) VULKAN_HPP_NOEXCEPT @@ -3759,35 +3761,97 @@ void VulkanHppGenerator::appendStructSetter( std::string & str, } )"; - std::string memberType = memberData.arraySizes.empty() - ? memberData.type.compose() - : constructStandardArray( memberData.type.compose(), memberData.arraySizes ); + std::string memberType = member.arraySizes.empty() + ? member.type.compose() + : constructStandardArray( member.type.compose(), member.arraySizes ); std::string assignment; - if ( !memberData.bitCount.empty() && beginsWith( memberData.type.type, "Vk" ) ) + if ( !member.bitCount.empty() && beginsWith( member.type.type, "Vk" ) ) { - assignment = - memberData.name + " = " + "*reinterpret_cast<" + memberData.type.type + "*>(&" + memberData.name + "_)"; + assignment = member.name + " = " + "*reinterpret_cast<" + member.type.type + "*>(&" + member.name + "_)"; } - else if ( isUnion && holdsSType( memberData.type.type ) ) + else if ( isUnion && holdsSType( member.type.type ) ) { - assignment = "memcpy( &" + memberData.name + ", &" + memberData.name + "_, sizeof(" + memberType + "))"; + assignment = "memcpy( &" + member.name + ", &" + member.name + "_, sizeof(" + memberType + "))"; } else { - assignment = memberData.name + " = " + memberData.name + "_"; + assignment = member.name + " = " + member.name + "_"; } str += replaceWithMap( templateString, { { "assignment", assignment }, - { "memberName", memberData.name }, - { "MemberName", startUpperCase( memberData.name ) }, + { "memberName", member.name }, + { "MemberName", startUpperCase( member.name ) }, { "memberType", memberType }, { "reference", - ( memberData.type.postfix.empty() && ( m_structures.find( memberData.type.type ) != m_structures.end() ) ) + ( member.type.postfix.empty() && ( m_structures.find( member.type.type ) != m_structures.end() ) ) ? "const & " : "" }, { "structureName", structureName } } ); + + std::set ignoreLens = { "null-terminated", + R"(latexmath:[\lceil{\mathit{rasterizationSamples} \over 32}\rceil])", + "2*VK_UUID_SIZE" }; + if ( !member.len.empty() && ( ignoreLens.find( member.len[0] ) == ignoreLens.end() ) ) + { + assert( member.name.front() == 'p' ); + std::string arrayName = startLowerCase( stripPrefix( member.name, "p" ) ); + + std::string lenName, lenValue; + if ( member.len[0] == R"(latexmath:[\textrm{codeSize} \over 4])" ) + { + lenName = "codeSize"; + lenValue = arrayName + ".size() * 4"; + } + else + { + lenName = member.len[0]; + lenValue = arrayName + ".size()"; + } + + assert( memberType.back() == '*' ); + memberType.pop_back(); + + std::string templateHeader; + if ( member.type.type == "void" ) + { + templateHeader = "template \n"; + + size_t pos = memberType.find( "void" ); + assert( pos != std::string::npos ); + memberType.replace( pos, strlen( "void" ), "T" ); + + lenValue += " * sizeof(T)"; + } + + auto lenMember = std::find_if( + memberData.begin(), memberData.end(), [&lenName]( MemberData const & md ) { return md.name == lenName; } ); + assert( lenMember != memberData.end() && lenMember->type.prefix.empty() && lenMember->type.postfix.empty() ); + if ( lenMember->type.type != "size_t" ) + { + lenValue = "static_cast<" + lenMember->type.type + ">( " + lenValue + " )"; + } + + static const std::string setArrayTemplate = R"( + ${templateHeader}${structureName} & set${ArrayName}( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<${memberType}> ${arrayName} ) VULKAN_HPP_NOEXCEPT + { + ${lenName} = ${lenValue}; + ${memberName} = ${arrayName}.data(); + return *this; + } +)"; + + str += replaceWithMap( setArrayTemplate, + { { "arrayName", arrayName }, + { "ArrayName", startUpperCase( arrayName ) }, + { "lenName", lenName }, + { "lenValue", lenValue }, + { "memberName", member.name }, + { "memberType", memberType }, + { "structureName", structureName }, + { "templateHeader", templateHeader } } ); + } } } @@ -3850,9 +3914,10 @@ void VulkanHppGenerator::appendStructure( std::string & if ( !structure.second.returnedOnly ) { // only structs that are not returnedOnly get setters! - for ( auto const & member : structure.second.members ) + for ( size_t i = 0; i < structure.second.members.size(); i++ ) { - appendStructSetter( constructorAndSetters, stripPrefix( structure.first, "Vk" ), false, member ); + appendStructSetter( + constructorAndSetters, stripPrefix( structure.first, "Vk" ), false, structure.second.members, i ); } } @@ -4066,9 +4131,9 @@ void VulkanHppGenerator::appendUnion( std::string & str, std::pair children = getChildElements( element ); checkElements( line, children, { { "name", true }, { "type", true } }, { "comment", "enum" } ); - members.push_back( MemberData( line ) ); - MemberData & memberData = members.back(); + MemberData memberData( line ); for ( auto child : children ) { @@ -6421,7 +6485,34 @@ void VulkanHppGenerator::readStructMember( tinyxml2::XMLElement const * element, for ( auto const & attribute : attributes ) { - if ( attribute.first == "selection" ) + if ( attribute.first == "len" ) + { + memberData.len = tokenize( attribute.second, "," ); + check( !memberData.len.empty() && ( memberData.len.size() <= 2 ), + line, + "member attribute holds unknown number of data: " + std::to_string( memberData.len.size() ) ); + std::string const & len = memberData.len[0]; + auto lenMember = + std::find_if( members.begin(), members.end(), [&len]( MemberData const & md ) { return ( md.name == len ); } ); + check( ( len == "null-terminated" ) || ( len == R"(latexmath:[\textrm{codeSize} \over 4])" ) || + ( len == R"(latexmath:[\lceil{\mathit{rasterizationSamples} \over 32}\rceil])" ) || + ( len == "2*VK_UUID_SIZE" ) || ( lenMember != members.end() ), + line, + "member attribute holds unknown value <" + len + ">" ); + if ( lenMember != members.end() ) + { + check( lenMember->type.prefix.empty() && lenMember->type.postfix.empty(), + line, + "member attribute references a member of unexpected type <" + lenMember->type.compose() + ">" ); + } + if ( 1 < memberData.len.size() ) + { + check( memberData.len[1] == "null-terminated", + line, + "member attribute holds unknown second value <" + memberData.len[1] + ">" ); + } + } + else if ( attribute.first == "selection" ) { check( isUnion, line, "attribute is used with a non-union structure." ); memberData.selection = attribute.second; @@ -6448,6 +6539,8 @@ void VulkanHppGenerator::readStructMember( tinyxml2::XMLElement const * element, memberData.values = attribute.second; } } + + members.push_back( memberData ); } void VulkanHppGenerator::readStructMemberEnum( tinyxml2::XMLElement const * element, MemberData & memberData ) @@ -6789,105 +6882,109 @@ int main( int argc, char ** argv ) { public: VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT - : m_count(0) - , m_ptr(nullptr) + : m_count( 0 ) + , m_ptr( nullptr ) {} - VULKAN_HPP_CONSTEXPR ArrayProxy(std::nullptr_t) VULKAN_HPP_NOEXCEPT - : m_count(0) - , m_ptr(nullptr) + VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + : m_count( 0 ) + , m_ptr( nullptr ) {} - ArrayProxy(T & value) VULKAN_HPP_NOEXCEPT - : m_count(1) - , m_ptr(&value) + ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT + : m_count( 1 ) + , m_ptr( &value ) {} - template::value, int>::type = 0> - ArrayProxy(typename std::remove_const::type & value) VULKAN_HPP_NOEXCEPT - : m_count(1) - , m_ptr(&value) + template ::value, int>::type = 0> + ArrayProxy( typename std::remove_const::type & value ) VULKAN_HPP_NOEXCEPT + : m_count( 1 ) + , m_ptr( &value ) {} - ArrayProxy(uint32_t count, T * ptr) VULKAN_HPP_NOEXCEPT - : m_count(count) - , m_ptr(ptr) + ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT + : m_count( count ) + , m_ptr( ptr ) {} - template::value, int>::type = 0> - ArrayProxy(uint32_t count, typename std::remove_const::type * ptr) VULKAN_HPP_NOEXCEPT - : m_count(count) - , m_ptr(ptr) + template ::value, int>::type = 0> + ArrayProxy( uint32_t count, typename std::remove_const::type * ptr ) VULKAN_HPP_NOEXCEPT + : m_count( count ) + , m_ptr( ptr ) {} - ArrayProxy(std::initializer_list const& list) VULKAN_HPP_NOEXCEPT - : m_count(static_cast(list.size())) - , m_ptr(list.begin()) + ArrayProxy( std::initializer_list const & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) {} - template::value, int>::type = 0> - ArrayProxy(std::initializer_list::type> const& list) VULKAN_HPP_NOEXCEPT - : m_count(static_cast(list.size())) - , m_ptr(list.begin()) + template ::value, int>::type = 0> + ArrayProxy( std::initializer_list::type> const & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) {} - ArrayProxy(std::initializer_list & list) VULKAN_HPP_NOEXCEPT - : m_count(static_cast(list.size())) - , m_ptr(list.begin()) + ArrayProxy( std::initializer_list & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) {} - template::value, int>::type = 0> - ArrayProxy(std::initializer_list::type> & list) VULKAN_HPP_NOEXCEPT - : m_count(static_cast(list.size())) - , m_ptr(list.begin()) + template ::value, int>::type = 0> + ArrayProxy( std::initializer_list::type> & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) {} template - ArrayProxy(std::array const & data) VULKAN_HPP_NOEXCEPT - : m_count(N) - , m_ptr(data.data()) + ArrayProxy( std::array const & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) {} template ::value, int>::type = 0> - ArrayProxy(std::array::type, N> const & data) VULKAN_HPP_NOEXCEPT - : m_count(N) - , m_ptr(data.data()) + ArrayProxy( std::array::type, N> const & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) {} template - ArrayProxy(std::array & data) VULKAN_HPP_NOEXCEPT - : m_count(N) - , m_ptr(data.data()) + ArrayProxy( std::array & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) {} template ::value, int>::type = 0> - ArrayProxy(std::array::type, N> & data) VULKAN_HPP_NOEXCEPT - : m_count(N) - , m_ptr(data.data()) + ArrayProxy( std::array::type, N> & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) {} template ::type>> - ArrayProxy(std::vector const & data) VULKAN_HPP_NOEXCEPT - : m_count(static_cast(data.size())) - , m_ptr(data.data()) + ArrayProxy( std::vector const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) {} - template ::type>, typename B = T, typename std::enable_if::value, int>::type = 0> - ArrayProxy(std::vector::type, Allocator> const& data) VULKAN_HPP_NOEXCEPT - : m_count(static_cast(data.size())) - , m_ptr(data.data()) + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxy( std::vector::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) {} template ::type>> - ArrayProxy(std::vector & data) VULKAN_HPP_NOEXCEPT - : m_count(static_cast(data.size())) - , m_ptr(data.data()) + ArrayProxy( std::vector & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) {} - template ::type>, typename B = T, typename std::enable_if::value, int>::type = 0> - ArrayProxy(std::vector::type, Allocator> & data) VULKAN_HPP_NOEXCEPT - : m_count(static_cast(data.size())) - , m_ptr(data.data()) + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxy( std::vector::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) {} const T * begin() const VULKAN_HPP_NOEXCEPT @@ -6902,19 +6999,19 @@ int main( int argc, char ** argv ) const T & front() const VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT(m_count && m_ptr); + VULKAN_HPP_ASSERT( m_count && m_ptr ); return *m_ptr; } const T & back() const VULKAN_HPP_NOEXCEPT { - VULKAN_HPP_ASSERT(m_count && m_ptr); - return *(m_ptr + m_count - 1); + VULKAN_HPP_ASSERT( m_count && m_ptr ); + return *( m_ptr + m_count - 1 ); } bool empty() const VULKAN_HPP_NOEXCEPT { - return (m_count == 0); + return ( m_count == 0 ); } uint32_t size() const VULKAN_HPP_NOEXCEPT @@ -6928,8 +7025,166 @@ int main( int argc, char ** argv ) } private: - uint32_t m_count; - T * m_ptr; + uint32_t m_count; + T * m_ptr; + }; + + template + class ArrayProxyNoTemporaries + { + public: + VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT + : m_count( 0 ) + , m_ptr( nullptr ) + {} + + VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + : m_count( 0 ) + , m_ptr( nullptr ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( typename std::remove_const::type & value ) VULKAN_HPP_NOEXCEPT + : m_count( 1 ) + , m_ptr( &value ) + {} + + ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT + : m_count( count ) + , m_ptr( ptr ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const::type * ptr ) VULKAN_HPP_NOEXCEPT + : m_count( count ) + , m_ptr( ptr ) + {} + + ArrayProxyNoTemporaries( std::initializer_list const & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::initializer_list::type> const & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + ArrayProxyNoTemporaries( std::initializer_list & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::initializer_list::type> & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + ArrayProxyNoTemporaries( std::initializer_list const && list ) VULKAN_HPP_NOEXCEPT = delete; + ArrayProxyNoTemporaries( std::initializer_list && list ) VULKAN_HPP_NOEXCEPT = delete; + + template + ArrayProxyNoTemporaries( std::array const & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::array::type, N> const & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template + ArrayProxyNoTemporaries( std::array & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::array::type, N> & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template + ArrayProxyNoTemporaries( std::array const && data ) VULKAN_HPP_NOEXCEPT = delete; + template + ArrayProxyNoTemporaries( std::array && data ) VULKAN_HPP_NOEXCEPT = delete; + + template ::type>> + ArrayProxyNoTemporaries( std::vector const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxyNoTemporaries( std::vector::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>> + ArrayProxyNoTemporaries( std::vector & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxyNoTemporaries( std::vector::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + ArrayProxyNoTemporaries( std::vector const && data ) VULKAN_HPP_NOEXCEPT = delete; + ArrayProxyNoTemporaries( std::vector && data ) VULKAN_HPP_NOEXCEPT = delete; + + const T * begin() const VULKAN_HPP_NOEXCEPT + { + return m_ptr; + } + + const T * end() const VULKAN_HPP_NOEXCEPT + { + return m_ptr + m_count; + } + + const T & front() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_count && m_ptr ); + return *m_ptr; + } + + const T & back() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_count && m_ptr ); + return *( m_ptr + m_count - 1 ); + } + + bool empty() const VULKAN_HPP_NOEXCEPT + { + return ( m_count == 0 ); + } + + uint32_t size() const VULKAN_HPP_NOEXCEPT + { + return m_count; + } + + T * data() const VULKAN_HPP_NOEXCEPT + { + return m_ptr; + } + + private: + uint32_t m_count; + T * m_ptr; }; #endif )"; diff --git a/VulkanHppGenerator.hpp b/VulkanHppGenerator.hpp index 1c798cd..c50a5be 100644 --- a/VulkanHppGenerator.hpp +++ b/VulkanHppGenerator.hpp @@ -193,6 +193,7 @@ private: std::string name; std::vector arraySizes; std::string bitCount; + std::vector len; std::string selection; std::string selector; std::string values; @@ -481,10 +482,11 @@ private: std::string appendStructMembers( std::string & str, std::pair const & structData, std::string const & prefix ) const; - void appendStructSetter( std::string & str, - std::string const & structureName, - bool isUnion, - MemberData const & memberData ) const; + void appendStructSetter( std::string & str, + std::string const & structureName, + bool isUnion, + std::vector const & memberData, + size_t index ) const; void appendStructSubConstructor( std::string & str, std::pair const & structData, std::string const & prefix ) const; diff --git a/vulkan/vulkan.hpp b/vulkan/vulkan.hpp index 38b21ce..e435169 100644 --- a/vulkan/vulkan.hpp +++ b/vulkan/vulkan.hpp @@ -345,6 +345,166 @@ namespace VULKAN_HPP_NAMESPACE uint32_t m_count; T * m_ptr; }; + + template + class ArrayProxyNoTemporaries + { + public: + VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT + : m_count( 0 ) + , m_ptr( nullptr ) + {} + + VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT + : m_count( 0 ) + , m_ptr( nullptr ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( typename std::remove_const::type & value ) VULKAN_HPP_NOEXCEPT + : m_count( 1 ) + , m_ptr( &value ) + {} + + ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT + : m_count( count ) + , m_ptr( ptr ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const::type * ptr ) VULKAN_HPP_NOEXCEPT + : m_count( count ) + , m_ptr( ptr ) + {} + + ArrayProxyNoTemporaries( std::initializer_list const & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::initializer_list::type> const & list ) + VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + ArrayProxyNoTemporaries( std::initializer_list & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::initializer_list::type> & list ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( list.size() ) ) + , m_ptr( list.begin() ) + {} + + ArrayProxyNoTemporaries( std::initializer_list const && list ) VULKAN_HPP_NOEXCEPT = delete; + ArrayProxyNoTemporaries( std::initializer_list && list ) VULKAN_HPP_NOEXCEPT = delete; + + template + ArrayProxyNoTemporaries( std::array const & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::array::type, N> const & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template + ArrayProxyNoTemporaries( std::array & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template ::value, int>::type = 0> + ArrayProxyNoTemporaries( std::array::type, N> & data ) VULKAN_HPP_NOEXCEPT + : m_count( N ) + , m_ptr( data.data() ) + {} + + template + ArrayProxyNoTemporaries( std::array const && data ) VULKAN_HPP_NOEXCEPT = delete; + template + ArrayProxyNoTemporaries( std::array && data ) VULKAN_HPP_NOEXCEPT = delete; + + template ::type>> + ArrayProxyNoTemporaries( std::vector const & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxyNoTemporaries( std::vector::type, Allocator> const & data ) + VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>> + ArrayProxyNoTemporaries( std::vector & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + template ::type>, + typename B = T, + typename std::enable_if::value, int>::type = 0> + ArrayProxyNoTemporaries( std::vector::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT + : m_count( static_cast( data.size() ) ) + , m_ptr( data.data() ) + {} + + ArrayProxyNoTemporaries( std::vector const && data ) VULKAN_HPP_NOEXCEPT = delete; + ArrayProxyNoTemporaries( std::vector && data ) VULKAN_HPP_NOEXCEPT = delete; + + const T * begin() const VULKAN_HPP_NOEXCEPT + { + return m_ptr; + } + + const T * end() const VULKAN_HPP_NOEXCEPT + { + return m_ptr + m_count; + } + + const T & front() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_count && m_ptr ); + return *m_ptr; + } + + const T & back() const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( m_count && m_ptr ); + return *( m_ptr + m_count - 1 ); + } + + bool empty() const VULKAN_HPP_NOEXCEPT + { + return ( m_count == 0 ); + } + + uint32_t size() const VULKAN_HPP_NOEXCEPT + { + return m_count; + } + + T * data() const VULKAN_HPP_NOEXCEPT + { + return m_ptr; + } + + private: + uint32_t m_count; + T * m_ptr; + }; #endif template @@ -27819,6 +27979,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + AccelerationStructureCreateInfoKHR & setGeometryInfos( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries< + const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateGeometryTypeInfoKHR> geometryInfos ) VULKAN_HPP_NOEXCEPT + { + maxGeometryCount = static_cast( geometryInfos.size() ); + pGeometryInfos = geometryInfos.data(); + return *this; + } + AccelerationStructureCreateInfoKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT { @@ -28394,6 +28563,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + AccelerationStructureInfoNV & + setGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries geometries ) + VULKAN_HPP_NOEXCEPT + { + geometryCount = static_cast( geometries.size() ); + pGeometries = geometries.data(); + return *this; + } + operator VkAccelerationStructureInfoNV const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -30803,6 +30981,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SampleLocationsInfoEXT & setSampleLocations( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries sampleLocations ) + VULKAN_HPP_NOEXCEPT + { + sampleLocationsCount = static_cast( sampleLocations.size() ); + pSampleLocations = sampleLocations.data(); + return *this; + } + operator VkSampleLocationsInfoEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -31106,6 +31293,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + BindAccelerationStructureMemoryInfoKHR & setDeviceIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries deviceIndices ) VULKAN_HPP_NOEXCEPT + { + deviceIndexCount = static_cast( deviceIndices.size() ); + pDeviceIndices = deviceIndices.data(); + return *this; + } + operator VkBindAccelerationStructureMemoryInfoKHR const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -31203,6 +31398,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + BindBufferMemoryDeviceGroupInfo & setDeviceIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries deviceIndices ) VULKAN_HPP_NOEXCEPT + { + deviceIndexCount = static_cast( deviceIndices.size() ); + pDeviceIndices = deviceIndices.data(); + return *this; + } + operator VkBindBufferMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -31525,6 +31728,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + BindImageMemoryDeviceGroupInfo & setDeviceIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries deviceIndices ) VULKAN_HPP_NOEXCEPT + { + deviceIndexCount = static_cast( deviceIndices.size() ); + pDeviceIndices = deviceIndices.data(); + return *this; + } + BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ ) VULKAN_HPP_NOEXCEPT { @@ -31539,6 +31750,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegions( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries splitInstanceBindRegions ) + VULKAN_HPP_NOEXCEPT + { + splitInstanceBindRegionCount = static_cast( splitInstanceBindRegions.size() ); + pSplitInstanceBindRegions = splitInstanceBindRegions.data(); + return *this; + } + operator VkBindImageMemoryDeviceGroupInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -32126,6 +32346,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SparseBufferMemoryBindInfo & + setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries binds ) + VULKAN_HPP_NOEXCEPT + { + bindCount = static_cast( binds.size() ); + pBinds = binds.data(); + return *this; + } + operator VkSparseBufferMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -32203,6 +32432,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SparseImageOpaqueMemoryBindInfo & + setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries binds ) + VULKAN_HPP_NOEXCEPT + { + bindCount = static_cast( binds.size() ); + pBinds = binds.data(); + return *this; + } + operator VkSparseImageOpaqueMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -32607,6 +32845,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SparseImageMemoryBindInfo & + setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries binds ) + VULKAN_HPP_NOEXCEPT + { + bindCount = static_cast( binds.size() ); + pBinds = binds.data(); + return *this; + } + operator VkSparseImageMemoryBindInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -32706,6 +32953,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + BindSparseInfo & setWaitSemaphores( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries waitSemaphores ) + VULKAN_HPP_NOEXCEPT + { + waitSemaphoreCount = static_cast( waitSemaphores.size() ); + pWaitSemaphores = waitSemaphores.data(); + return *this; + } + BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ ) VULKAN_HPP_NOEXCEPT { bufferBindCount = bufferBindCount_; @@ -32719,6 +32975,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + BindSparseInfo & setBufferBinds( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + bufferBinds ) VULKAN_HPP_NOEXCEPT + { + bufferBindCount = static_cast( bufferBinds.size() ); + pBufferBinds = bufferBinds.data(); + return *this; + } + BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ ) VULKAN_HPP_NOEXCEPT { imageOpaqueBindCount = imageOpaqueBindCount_; @@ -32732,6 +32997,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + BindSparseInfo & setImageOpaqueBinds( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + imageOpaqueBinds ) VULKAN_HPP_NOEXCEPT + { + imageOpaqueBindCount = static_cast( imageOpaqueBinds.size() ); + pImageOpaqueBinds = imageOpaqueBinds.data(); + return *this; + } + BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ ) VULKAN_HPP_NOEXCEPT { imageBindCount = imageBindCount_; @@ -32745,6 +33019,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + BindSparseInfo & setImageBinds( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries imageBinds ) + VULKAN_HPP_NOEXCEPT + { + imageBindCount = static_cast( imageBinds.size() ); + pImageBinds = imageBinds.data(); + return *this; + } + BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT { signalSemaphoreCount = signalSemaphoreCount_; @@ -32758,6 +33041,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + BindSparseInfo & setSignalSemaphores( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries signalSemaphores ) + VULKAN_HPP_NOEXCEPT + { + signalSemaphoreCount = static_cast( signalSemaphores.size() ); + pSignalSemaphores = signalSemaphores.data(); + return *this; + } + operator VkBindSparseInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -33040,6 +33332,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + BufferCreateInfo & setQueueFamilyIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries queueFamilyIndices ) VULKAN_HPP_NOEXCEPT + { + queueFamilyIndexCount = static_cast( queueFamilyIndices.size() ); + pQueueFamilyIndices = queueFamilyIndices.data(); + return *this; + } + operator VkBufferCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -34437,6 +34737,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + CoarseSampleOrderCustomNV & setSampleLocations( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + sampleLocations ) VULKAN_HPP_NOEXCEPT + { + sampleLocationCount = static_cast( sampleLocations.size() ); + pSampleLocations = sampleLocations.data(); + return *this; + } + operator VkCoarseSampleOrderCustomNV const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -35196,6 +35505,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SpecializationInfo & setMapEntries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries mapEntries ) + VULKAN_HPP_NOEXCEPT + { + mapEntryCount = static_cast( mapEntries.size() ); + pMapEntries = mapEntries.data(); + return *this; + } + SpecializationInfo & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT { dataSize = dataSize_; @@ -35208,6 +35526,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + template + SpecializationInfo & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries data ) VULKAN_HPP_NOEXCEPT + { + dataSize = data.size() * sizeof( T ); + pData = data.data(); + return *this; + } + operator VkSpecializationInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -36315,6 +36641,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + D3D12FenceSubmitInfoKHR & setWaitSemaphoreValues( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries waitSemaphoreValues ) VULKAN_HPP_NOEXCEPT + { + waitSemaphoreValuesCount = static_cast( waitSemaphoreValues.size() ); + pWaitSemaphoreValues = waitSemaphoreValues.data(); + return *this; + } + D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT { signalSemaphoreValuesCount = signalSemaphoreValuesCount_; @@ -36327,6 +36661,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + D3D12FenceSubmitInfoKHR & setSignalSemaphoreValues( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries signalSemaphoreValues ) VULKAN_HPP_NOEXCEPT + { + signalSemaphoreValuesCount = static_cast( signalSemaphoreValues.size() ); + pSignalSemaphoreValues = signalSemaphoreValues.data(); + return *this; + } + operator VkD3D12FenceSubmitInfoKHR const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -36641,6 +36983,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + template + DebugMarkerObjectTagInfoEXT & + setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries tag ) VULKAN_HPP_NOEXCEPT + { + tagSize = tag.size() * sizeof( T ); + pTag = tag.data(); + return *this; + } + operator VkDebugMarkerObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -37074,6 +37425,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DebugUtilsMessengerCallbackDataEXT & setQueueLabels( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries queueLabels ) + VULKAN_HPP_NOEXCEPT + { + queueLabelCount = static_cast( queueLabels.size() ); + pQueueLabels = queueLabels.data(); + return *this; + } + DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ ) VULKAN_HPP_NOEXCEPT { cmdBufLabelCount = cmdBufLabelCount_; @@ -37087,6 +37447,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DebugUtilsMessengerCallbackDataEXT & setCmdBufLabels( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries cmdBufLabels ) + VULKAN_HPP_NOEXCEPT + { + cmdBufLabelCount = static_cast( cmdBufLabels.size() ); + pCmdBufLabels = cmdBufLabels.data(); + return *this; + } + DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT { objectCount = objectCount_; @@ -37100,6 +37469,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DebugUtilsMessengerCallbackDataEXT & setObjects( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries objects ) + VULKAN_HPP_NOEXCEPT + { + objectCount = static_cast( objects.size() ); + pObjects = objects.data(); + return *this; + } + operator VkDebugUtilsMessengerCallbackDataEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -37353,6 +37731,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + template + DebugUtilsObjectTagInfoEXT & + setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries tag ) VULKAN_HPP_NOEXCEPT + { + tagSize = tag.size() * sizeof( T ); + pTag = tag.data(); + return *this; + } + operator VkDebugUtilsObjectTagInfoEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -38035,6 +38422,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DescriptorPoolCreateInfo & setPoolSizes( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries poolSizes ) + VULKAN_HPP_NOEXCEPT + { + poolSizeCount = static_cast( poolSizes.size() ); + pPoolSizes = poolSizes.data(); + return *this; + } + operator VkDescriptorPoolCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -38228,6 +38624,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DescriptorSetAllocateInfo & setSetLayouts( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries setLayouts ) + VULKAN_HPP_NOEXCEPT + { + descriptorSetCount = static_cast( setLayouts.size() ); + pSetLayouts = setLayouts.data(); + return *this; + } + operator VkDescriptorSetAllocateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -38331,6 +38736,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DescriptorSetLayoutBinding & setImmutableSamplers( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries immutableSamplers ) + VULKAN_HPP_NOEXCEPT + { + descriptorCount = static_cast( immutableSamplers.size() ); + pImmutableSamplers = immutableSamplers.data(); + return *this; + } + operator VkDescriptorSetLayoutBinding const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -38426,6 +38840,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DescriptorSetLayoutBindingFlagsCreateInfo & setBindingFlags( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries bindingFlags ) + VULKAN_HPP_NOEXCEPT + { + bindingCount = static_cast( bindingFlags.size() ); + pBindingFlags = bindingFlags.data(); + return *this; + } + operator VkDescriptorSetLayoutBindingFlagsCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -38530,6 +38953,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DescriptorSetLayoutCreateInfo & setBindings( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries bindings ) + VULKAN_HPP_NOEXCEPT + { + bindingCount = static_cast( bindings.size() ); + pBindings = bindings.data(); + return *this; + } + operator VkDescriptorSetLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -38700,6 +39132,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorCounts( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries descriptorCounts ) VULKAN_HPP_NOEXCEPT + { + descriptorSetCount = static_cast( descriptorCounts.size() ); + pDescriptorCounts = descriptorCounts.data(); + return *this; + } + operator VkDescriptorSetVariableDescriptorCountAllocateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -39003,6 +39443,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + descriptorUpdateEntries ) VULKAN_HPP_NOEXCEPT + { + descriptorUpdateEntryCount = static_cast( descriptorUpdateEntries.size() ); + pDescriptorUpdateEntries = descriptorUpdateEntries.data(); + return *this; + } + DescriptorUpdateTemplateCreateInfo & setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT { @@ -39153,6 +39602,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DeviceQueueCreateInfo & setQueuePriorities( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries queuePriorities ) VULKAN_HPP_NOEXCEPT + { + queueCount = static_cast( queuePriorities.size() ); + pQueuePriorities = queuePriorities.data(); + return *this; + } + operator VkDeviceQueueCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -39881,6 +40338,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DeviceCreateInfo & setQueueCreateInfos( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + queueCreateInfos ) VULKAN_HPP_NOEXCEPT + { + queueCreateInfoCount = static_cast( queueCreateInfos.size() ); + pQueueCreateInfos = queueCreateInfos.data(); + return *this; + } + DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT { enabledLayerCount = enabledLayerCount_; @@ -39893,6 +40359,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DeviceCreateInfo & setPEnabledLayerNames( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries pEnabledLayerNames ) VULKAN_HPP_NOEXCEPT + { + enabledLayerCount = static_cast( pEnabledLayerNames.size() ); + ppEnabledLayerNames = pEnabledLayerNames.data(); + return *this; + } + DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT { enabledExtensionCount = enabledExtensionCount_; @@ -39905,6 +40379,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DeviceCreateInfo & setPEnabledExtensionNames( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries pEnabledExtensionNames ) VULKAN_HPP_NOEXCEPT + { + enabledExtensionCount = static_cast( pEnabledExtensionNames.size() ); + ppEnabledExtensionNames = pEnabledExtensionNames.data(); + return *this; + } + DeviceCreateInfo & setPEnabledFeatures( const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pEnabledFeatures_ ) VULKAN_HPP_NOEXCEPT { @@ -40353,6 +40835,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DeviceGroupDeviceCreateInfo & setPhysicalDevices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries physicalDevices ) + VULKAN_HPP_NOEXCEPT + { + physicalDeviceCount = static_cast( physicalDevices.size() ); + pPhysicalDevices = physicalDevices.data(); + return *this; + } + operator VkDeviceGroupDeviceCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -40523,6 +41014,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DeviceGroupPresentInfoKHR & + setDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries deviceMasks ) VULKAN_HPP_NOEXCEPT + { + swapchainCount = static_cast( deviceMasks.size() ); + pDeviceMasks = deviceMasks.data(); + return *this; + } + DeviceGroupPresentInfoKHR & setMode( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ ) VULKAN_HPP_NOEXCEPT { @@ -40634,6 +41133,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DeviceGroupRenderPassBeginInfo & setDeviceRenderAreas( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries deviceRenderAreas ) + VULKAN_HPP_NOEXCEPT + { + deviceRenderAreaCount = static_cast( deviceRenderAreas.size() ); + pDeviceRenderAreas = deviceRenderAreas.data(); + return *this; + } + operator VkDeviceGroupRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -40735,6 +41243,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DeviceGroupSubmitInfo & setWaitSemaphoreDeviceIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries waitSemaphoreDeviceIndices ) VULKAN_HPP_NOEXCEPT + { + waitSemaphoreCount = static_cast( waitSemaphoreDeviceIndices.size() ); + pWaitSemaphoreDeviceIndices = waitSemaphoreDeviceIndices.data(); + return *this; + } + DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT { commandBufferCount = commandBufferCount_; @@ -40748,6 +41264,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DeviceGroupSubmitInfo & setCommandBufferDeviceMasks( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries commandBufferDeviceMasks ) VULKAN_HPP_NOEXCEPT + { + commandBufferCount = static_cast( commandBufferDeviceMasks.size() ); + pCommandBufferDeviceMasks = commandBufferDeviceMasks.data(); + return *this; + } + DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT { signalSemaphoreCount = signalSemaphoreCount_; @@ -40761,6 +41285,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + DeviceGroupSubmitInfo & setSignalSemaphoreDeviceIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries signalSemaphoreDeviceIndices ) VULKAN_HPP_NOEXCEPT + { + signalSemaphoreCount = static_cast( signalSemaphoreDeviceIndices.size() ); + pSignalSemaphoreDeviceIndices = signalSemaphoreDeviceIndices.data(); + return *this; + } + operator VkDeviceGroupSubmitInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -45324,6 +45856,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + FramebufferAttachmentImageInfo & + setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries viewFormats ) + VULKAN_HPP_NOEXCEPT + { + viewFormatCount = static_cast( viewFormats.size() ); + pViewFormats = viewFormats.data(); + return *this; + } + operator VkFramebufferAttachmentImageInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -45425,6 +45966,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + FramebufferAttachmentsCreateInfo & setAttachmentImageInfos( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + attachmentImageInfos ) VULKAN_HPP_NOEXCEPT + { + attachmentImageInfoCount = static_cast( attachmentImageInfos.size() ); + pAttachmentImageInfos = attachmentImageInfos.data(); + return *this; + } + operator VkFramebufferAttachmentsCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -45538,6 +46088,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + FramebufferCreateInfo & + setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries attachments ) + VULKAN_HPP_NOEXCEPT + { + attachmentCount = static_cast( attachments.size() ); + pAttachments = attachments.data(); + return *this; + } + FramebufferCreateInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT { width = width_; @@ -45850,6 +46409,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + GeneratedCommandsInfoNV & setStreams( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries streams ) + VULKAN_HPP_NOEXCEPT + { + streamCount = static_cast( streams.size() ); + pStreams = streams.data(); + return *this; + } + GeneratedCommandsInfoNV & setSequencesCount( uint32_t sequencesCount_ ) VULKAN_HPP_NOEXCEPT { sequencesCount = sequencesCount_; @@ -46315,6 +46883,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineVertexInputStateCreateInfo & setVertexBindingDescriptions( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + vertexBindingDescriptions ) VULKAN_HPP_NOEXCEPT + { + vertexBindingDescriptionCount = static_cast( vertexBindingDescriptions.size() ); + pVertexBindingDescriptions = vertexBindingDescriptions.data(); + return *this; + } + PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT { @@ -46329,6 +46906,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptions( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + vertexAttributeDescriptions ) VULKAN_HPP_NOEXCEPT + { + vertexAttributeDescriptionCount = static_cast( vertexAttributeDescriptions.size() ); + pVertexAttributeDescriptions = vertexAttributeDescriptions.data(); + return *this; + } + operator VkPipelineVertexInputStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -46749,6 +47335,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineViewportStateCreateInfo & + setViewports( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries viewports ) + VULKAN_HPP_NOEXCEPT + { + viewportCount = static_cast( viewports.size() ); + pViewports = viewports.data(); + return *this; + } + PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ ) VULKAN_HPP_NOEXCEPT { scissorCount = scissorCount_; @@ -46762,6 +47357,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineViewportStateCreateInfo & setScissors( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries scissors ) VULKAN_HPP_NOEXCEPT + { + scissorCount = static_cast( scissors.size() ); + pScissors = scissors.data(); + return *this; + } + operator VkPipelineViewportStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -47651,6 +48254,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineColorBlendStateCreateInfo & setAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + attachments ) VULKAN_HPP_NOEXCEPT + { + attachmentCount = static_cast( attachments.size() ); + pAttachments = attachments.data(); + return *this; + } + PipelineColorBlendStateCreateInfo & setBlendConstants( std::array blendConstants_ ) VULKAN_HPP_NOEXCEPT { blendConstants = blendConstants_; @@ -47766,6 +48378,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineDynamicStateCreateInfo & setDynamicStates( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries dynamicStates ) + VULKAN_HPP_NOEXCEPT + { + dynamicStateCount = static_cast( dynamicStates.size() ); + pDynamicStates = dynamicStates.data(); + return *this; + } + operator VkPipelineDynamicStateCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -47896,6 +48517,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + GraphicsPipelineCreateInfo & setStages( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries stages ) + VULKAN_HPP_NOEXCEPT + { + stageCount = static_cast( stages.size() ); + pStages = stages.data(); + return *this; + } + GraphicsPipelineCreateInfo & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT { @@ -48110,6 +48740,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + GraphicsShaderGroupCreateInfoNV & setStages( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries stages ) + VULKAN_HPP_NOEXCEPT + { + stageCount = static_cast( stages.size() ); + pStages = stages.data(); + return *this; + } + GraphicsShaderGroupCreateInfoNV & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo * pVertexInputState_ ) VULKAN_HPP_NOEXCEPT { @@ -48230,6 +48869,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + GraphicsPipelineShaderGroupsCreateInfoNV & setGroups( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + groups ) VULKAN_HPP_NOEXCEPT + { + groupCount = static_cast( groups.size() ); + pGroups = groups.data(); + return *this; + } + GraphicsPipelineShaderGroupsCreateInfoNV & setPipelineCount( uint32_t pipelineCount_ ) VULKAN_HPP_NOEXCEPT { pipelineCount = pipelineCount_; @@ -48243,6 +48891,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + GraphicsPipelineShaderGroupsCreateInfoNV & + setPipelines( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries pipelines ) + VULKAN_HPP_NOEXCEPT + { + pipelineCount = static_cast( pipelines.size() ); + pPipelines = pipelines.data(); + return *this; + } + operator VkGraphicsPipelineShaderGroupsCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -48983,6 +49640,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + ImageCreateInfo & setQueueFamilyIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries queueFamilyIndices ) VULKAN_HPP_NOEXCEPT + { + queueFamilyIndexCount = static_cast( queueFamilyIndices.size() ); + pQueueFamilyIndices = queueFamilyIndices.data(); + return *this; + } + ImageCreateInfo & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT { initialLayout = initialLayout_; @@ -49174,6 +49839,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + ImageDrmFormatModifierExplicitCreateInfoEXT & setPlaneLayouts( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries planeLayouts ) + VULKAN_HPP_NOEXCEPT + { + drmFormatModifierPlaneCount = static_cast( planeLayouts.size() ); + pPlaneLayouts = planeLayouts.data(); + return *this; + } + operator VkImageDrmFormatModifierExplicitCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -49276,6 +49950,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifiers( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries drmFormatModifiers ) VULKAN_HPP_NOEXCEPT + { + drmFormatModifierCount = static_cast( drmFormatModifiers.size() ); + pDrmFormatModifiers = drmFormatModifiers.data(); + return *this; + } + operator VkImageDrmFormatModifierListCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -49443,6 +50125,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + ImageFormatListCreateInfo & + setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries viewFormats ) + VULKAN_HPP_NOEXCEPT + { + viewFormatCount = static_cast( viewFormats.size() ); + pViewFormats = viewFormats.data(); + return *this; + } + operator VkImageFormatListCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -51961,12 +52652,29 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + IndirectCommandsLayoutTokenNV & + setIndexTypes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries indexTypes ) + VULKAN_HPP_NOEXCEPT + { + indexTypeCount = static_cast( indexTypes.size() ); + pIndexTypes = indexTypes.data(); + return *this; + } + IndirectCommandsLayoutTokenNV & setPIndexTypeValues( const uint32_t * pIndexTypeValues_ ) VULKAN_HPP_NOEXCEPT { pIndexTypeValues = pIndexTypeValues_; return *this; } + IndirectCommandsLayoutTokenNV & setIndexTypeValues( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries indexTypeValues ) VULKAN_HPP_NOEXCEPT + { + indexTypeCount = static_cast( indexTypeValues.size() ); + pIndexTypeValues = indexTypeValues.data(); + return *this; + } + operator VkIndirectCommandsLayoutTokenNV const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -52103,6 +52811,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + IndirectCommandsLayoutCreateInfoNV & setTokens( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries tokens ) + VULKAN_HPP_NOEXCEPT + { + tokenCount = static_cast( tokens.size() ); + pTokens = tokens.data(); + return *this; + } + IndirectCommandsLayoutCreateInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT { streamCount = streamCount_; @@ -52115,6 +52832,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + IndirectCommandsLayoutCreateInfoNV & setStreamStrides( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries streamStrides ) VULKAN_HPP_NOEXCEPT + { + streamCount = static_cast( streamStrides.size() ); + pStreamStrides = streamStrides.data(); + return *this; + } + operator VkIndirectCommandsLayoutCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -52393,6 +53118,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + InstanceCreateInfo & setPEnabledLayerNames( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries pEnabledLayerNames ) VULKAN_HPP_NOEXCEPT + { + enabledLayerCount = static_cast( pEnabledLayerNames.size() ); + ppEnabledLayerNames = pEnabledLayerNames.data(); + return *this; + } + InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT { enabledExtensionCount = enabledExtensionCount_; @@ -52405,6 +53138,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + InstanceCreateInfo & setPEnabledExtensionNames( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries pEnabledExtensionNames ) VULKAN_HPP_NOEXCEPT + { + enabledExtensionCount = static_cast( pEnabledExtensionNames.size() ); + ppEnabledExtensionNames = pEnabledExtensionNames.data(); + return *this; + } + operator VkInstanceCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -59491,6 +60232,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries queueFamilyIndices ) VULKAN_HPP_NOEXCEPT + { + queueFamilyIndexCount = static_cast( queueFamilyIndices.size() ); + pQueueFamilyIndices = queueFamilyIndices.data(); + return *this; + } + operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -68226,6 +68975,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + template + PipelineCacheCreateInfo & + setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries initialData ) VULKAN_HPP_NOEXCEPT + { + initialDataSize = initialData.size() * sizeof( T ); + pInitialData = initialData.data(); + return *this; + } + operator VkPipelineCacheCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -68554,6 +69312,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTable( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries coverageModulationTable ) VULKAN_HPP_NOEXCEPT + { + coverageModulationTableCount = static_cast( coverageModulationTable.size() ); + pCoverageModulationTable = coverageModulationTable.data(); + return *this; + } + operator VkPipelineCoverageModulationStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -68940,6 +69706,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbacks( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + pipelineStageCreationFeedbacks ) VULKAN_HPP_NOEXCEPT + { + pipelineStageCreationFeedbackCount = static_cast( pipelineStageCreationFeedbacks.size() ); + pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks.data(); + return *this; + } + operator VkPipelineCreationFeedbackCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -69062,6 +69837,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangles( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries discardRectangles ) + VULKAN_HPP_NOEXCEPT + { + discardRectangleCount = static_cast( discardRectangles.size() ); + pDiscardRectangles = discardRectangles.data(); + return *this; + } + operator VkPipelineDiscardRectangleStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -69723,6 +70507,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineLayoutCreateInfo & setSetLayouts( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries setLayouts ) + VULKAN_HPP_NOEXCEPT + { + setLayoutCount = static_cast( setLayouts.size() ); + pSetLayouts = setLayouts.data(); + return *this; + } + PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT { pushConstantRangeCount = pushConstantRangeCount_; @@ -69736,6 +70529,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineLayoutCreateInfo & setPushConstantRanges( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries pushConstantRanges ) + VULKAN_HPP_NOEXCEPT + { + pushConstantRangeCount = static_cast( pushConstantRanges.size() ); + pPushConstantRanges = pushConstantRanges.data(); + return *this; + } + operator VkPipelineLayoutCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -69834,6 +70636,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineLibraryCreateInfoKHR & + setLibraries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries libraries ) + VULKAN_HPP_NOEXCEPT + { + libraryCount = static_cast( libraries.size() ); + pLibraries = libraries.data(); + return *this; + } + operator VkPipelineLibraryCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -70905,6 +71716,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisors( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + vertexBindingDivisors ) VULKAN_HPP_NOEXCEPT + { + vertexBindingDivisorCount = static_cast( vertexBindingDivisors.size() ); + pVertexBindingDivisors = vertexBindingDivisors.data(); + return *this; + } + operator VkPipelineVertexInputDivisorStateCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -71018,6 +71838,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrders( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + customSampleOrders ) VULKAN_HPP_NOEXCEPT + { + customSampleOrderCount = static_cast( customSampleOrders.size() ); + pCustomSampleOrders = customSampleOrders.data(); + return *this; + } + operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -71124,6 +71953,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissors( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries exclusiveScissors ) + VULKAN_HPP_NOEXCEPT + { + exclusiveScissorCount = static_cast( exclusiveScissors.size() ); + pExclusiveScissors = exclusiveScissors.data(); + return *this; + } + operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -71202,6 +72040,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + ShadingRatePaletteNV & setShadingRatePaletteEntries( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + shadingRatePaletteEntries ) VULKAN_HPP_NOEXCEPT + { + shadingRatePaletteEntryCount = static_cast( shadingRatePaletteEntries.size() ); + pShadingRatePaletteEntries = shadingRatePaletteEntries.data(); + return *this; + } + operator VkShadingRatePaletteNV const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -71302,6 +72149,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRatePalettes( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + shadingRatePalettes ) VULKAN_HPP_NOEXCEPT + { + viewportCount = static_cast( shadingRatePalettes.size() ); + pShadingRatePalettes = shadingRatePalettes.data(); + return *this; + } + operator VkPipelineViewportShadingRateImageStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -71501,6 +72357,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineViewportSwizzleStateCreateInfoNV & setViewportSwizzles( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries viewportSwizzles ) + VULKAN_HPP_NOEXCEPT + { + viewportCount = static_cast( viewportSwizzles.size() ); + pViewportSwizzles = viewportSwizzles.data(); + return *this; + } + operator VkPipelineViewportSwizzleStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -71675,6 +72540,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PipelineViewportWScalingStateCreateInfoNV & setViewportWScalings( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries viewportWScalings ) + VULKAN_HPP_NOEXCEPT + { + viewportCount = static_cast( viewportWScalings.size() ); + pViewportWScalings = viewportWScalings.data(); + return *this; + } + operator VkPipelineViewportWScalingStateCreateInfoNV const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -71858,6 +72732,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PresentInfoKHR & setWaitSemaphores( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries waitSemaphores ) + VULKAN_HPP_NOEXCEPT + { + waitSemaphoreCount = static_cast( waitSemaphores.size() ); + pWaitSemaphores = waitSemaphores.data(); + return *this; + } + PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT { swapchainCount = swapchainCount_; @@ -71870,18 +72753,43 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PresentInfoKHR & setSwapchains( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries swapchains ) + VULKAN_HPP_NOEXCEPT + { + swapchainCount = static_cast( swapchains.size() ); + pSwapchains = swapchains.data(); + return *this; + } + PresentInfoKHR & setPImageIndices( const uint32_t * pImageIndices_ ) VULKAN_HPP_NOEXCEPT { pImageIndices = pImageIndices_; return *this; } + PresentInfoKHR & + setImageIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries imageIndices ) VULKAN_HPP_NOEXCEPT + { + swapchainCount = static_cast( imageIndices.size() ); + pImageIndices = imageIndices.data(); + return *this; + } + PresentInfoKHR & setPResults( VULKAN_HPP_NAMESPACE::Result * pResults_ ) VULKAN_HPP_NOEXCEPT { pResults = pResults_; return *this; } + PresentInfoKHR & setResults( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries results ) + VULKAN_HPP_NOEXCEPT + { + swapchainCount = static_cast( results.size() ); + pResults = results.data(); + return *this; + } + operator VkPresentInfoKHR const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -72039,6 +72947,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PresentRegionKHR & setRectangles( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries rectangles ) + VULKAN_HPP_NOEXCEPT + { + rectangleCount = static_cast( rectangles.size() ); + pRectangles = rectangles.data(); + return *this; + } + operator VkPresentRegionKHR const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -72120,6 +73037,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PresentRegionsKHR & + setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries regions ) + VULKAN_HPP_NOEXCEPT + { + swapchainCount = static_cast( regions.size() ); + pRegions = regions.data(); + return *this; + } + operator VkPresentRegionsKHR const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -72275,6 +73201,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + PresentTimesInfoGOOGLE & + setTimes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries times ) + VULKAN_HPP_NOEXCEPT + { + swapchainCount = static_cast( times.size() ); + pTimes = times.data(); + return *this; + } + operator VkPresentTimesInfoGOOGLE const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -72646,6 +73581,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + QueryPoolPerformanceCreateInfoKHR & setCounterIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries counterIndices ) VULKAN_HPP_NOEXCEPT + { + counterIndexCount = static_cast( counterIndices.size() ); + pCounterIndices = counterIndices.data(); + return *this; + } + operator VkQueryPoolPerformanceCreateInfoKHR const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -73310,6 +74253,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RayTracingPipelineCreateInfoKHR & setStages( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries stages ) + VULKAN_HPP_NOEXCEPT + { + stageCount = static_cast( stages.size() ); + pStages = stages.data(); + return *this; + } + RayTracingPipelineCreateInfoKHR & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT { groupCount = groupCount_; @@ -73323,6 +74275,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RayTracingPipelineCreateInfoKHR & setGroups( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + groups ) VULKAN_HPP_NOEXCEPT + { + groupCount = static_cast( groups.size() ); + pGroups = groups.data(); + return *this; + } + RayTracingPipelineCreateInfoKHR & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT { maxRecursionDepth = maxRecursionDepth_; @@ -73615,6 +74576,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RayTracingPipelineCreateInfoNV & setStages( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries stages ) + VULKAN_HPP_NOEXCEPT + { + stageCount = static_cast( stages.size() ); + pStages = stages.data(); + return *this; + } + RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT { groupCount = groupCount_; @@ -73628,6 +74598,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RayTracingPipelineCreateInfoNV & setGroups( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + groups ) VULKAN_HPP_NOEXCEPT + { + groupCount = static_cast( groups.size() ); + pGroups = groups.data(); + return *this; + } + RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT { maxRecursionDepth = maxRecursionDepth_; @@ -73807,6 +74786,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassAttachmentBeginInfo & + setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries attachments ) + VULKAN_HPP_NOEXCEPT + { + attachmentCount = static_cast( attachments.size() ); + pAttachments = attachments.data(); + return *this; + } + operator VkRenderPassAttachmentBeginInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -73922,6 +74910,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassBeginInfo & setClearValues( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries clearValues ) + VULKAN_HPP_NOEXCEPT + { + clearValueCount = static_cast( clearValues.size() ); + pClearValues = clearValues.data(); + return *this; + } + operator VkRenderPassBeginInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -74031,6 +75028,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SubpassDescription & setInputAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries inputAttachments ) + VULKAN_HPP_NOEXCEPT + { + inputAttachmentCount = static_cast( inputAttachments.size() ); + pInputAttachments = inputAttachments.data(); + return *this; + } + SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT { colorAttachmentCount = colorAttachmentCount_; @@ -74044,6 +75050,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SubpassDescription & setColorAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries colorAttachments ) + VULKAN_HPP_NOEXCEPT + { + colorAttachmentCount = static_cast( colorAttachments.size() ); + pColorAttachments = colorAttachments.data(); + return *this; + } + SubpassDescription & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT { @@ -74051,6 +75066,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SubpassDescription & setResolveAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + resolveAttachments ) VULKAN_HPP_NOEXCEPT + { + colorAttachmentCount = static_cast( resolveAttachments.size() ); + pResolveAttachments = resolveAttachments.data(); + return *this; + } + SubpassDescription & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT { @@ -74070,6 +75094,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SubpassDescription & setPreserveAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries preserveAttachments ) VULKAN_HPP_NOEXCEPT + { + preserveAttachmentCount = static_cast( preserveAttachments.size() ); + pPreserveAttachments = preserveAttachments.data(); + return *this; + } + operator VkSubpassDescription const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -74296,6 +75328,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassCreateInfo & setAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries attachments ) + VULKAN_HPP_NOEXCEPT + { + attachmentCount = static_cast( attachments.size() ); + pAttachments = attachments.data(); + return *this; + } + RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT { subpassCount = subpassCount_; @@ -74309,6 +75350,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassCreateInfo & setSubpasses( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries subpasses ) + VULKAN_HPP_NOEXCEPT + { + subpassCount = static_cast( subpasses.size() ); + pSubpasses = subpasses.data(); + return *this; + } + RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT { dependencyCount = dependencyCount_; @@ -74322,6 +75372,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassCreateInfo & setDependencies( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries dependencies ) + VULKAN_HPP_NOEXCEPT + { + dependencyCount = static_cast( dependencies.size() ); + pDependencies = dependencies.data(); + return *this; + } + operator VkRenderPassCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -74457,6 +75516,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SubpassDescription2 & setInputAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries inputAttachments ) + VULKAN_HPP_NOEXCEPT + { + inputAttachmentCount = static_cast( inputAttachments.size() ); + pInputAttachments = inputAttachments.data(); + return *this; + } + SubpassDescription2 & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT { colorAttachmentCount = colorAttachmentCount_; @@ -74470,6 +75538,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SubpassDescription2 & setColorAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries colorAttachments ) + VULKAN_HPP_NOEXCEPT + { + colorAttachmentCount = static_cast( colorAttachments.size() ); + pColorAttachments = colorAttachments.data(); + return *this; + } + SubpassDescription2 & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT { @@ -74477,6 +75554,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SubpassDescription2 & setResolveAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + resolveAttachments ) VULKAN_HPP_NOEXCEPT + { + colorAttachmentCount = static_cast( resolveAttachments.size() ); + pResolveAttachments = resolveAttachments.data(); + return *this; + } + SubpassDescription2 & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2 * pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT { @@ -74496,6 +75582,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SubpassDescription2 & setPreserveAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries preserveAttachments ) VULKAN_HPP_NOEXCEPT + { + preserveAttachmentCount = static_cast( preserveAttachments.size() ); + pPreserveAttachments = preserveAttachments.data(); + return *this; + } + operator VkSubpassDescription2 const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -74768,6 +75862,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassCreateInfo2 & setAttachments( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries attachments ) + VULKAN_HPP_NOEXCEPT + { + attachmentCount = static_cast( attachments.size() ); + pAttachments = attachments.data(); + return *this; + } + RenderPassCreateInfo2 & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT { subpassCount = subpassCount_; @@ -74781,6 +75884,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassCreateInfo2 & setSubpasses( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries subpasses ) + VULKAN_HPP_NOEXCEPT + { + subpassCount = static_cast( subpasses.size() ); + pSubpasses = subpasses.data(); + return *this; + } + RenderPassCreateInfo2 & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT { dependencyCount = dependencyCount_; @@ -74794,6 +75906,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassCreateInfo2 & setDependencies( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries dependencies ) + VULKAN_HPP_NOEXCEPT + { + dependencyCount = static_cast( dependencies.size() ); + pDependencies = dependencies.data(); + return *this; + } + RenderPassCreateInfo2 & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) VULKAN_HPP_NOEXCEPT { correlatedViewMaskCount = correlatedViewMaskCount_; @@ -74806,6 +75927,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassCreateInfo2 & setCorrelatedViewMasks( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries correlatedViewMasks ) VULKAN_HPP_NOEXCEPT + { + correlatedViewMaskCount = static_cast( correlatedViewMasks.size() ); + pCorrelatedViewMasks = correlatedViewMasks.data(); + return *this; + } + operator VkRenderPassCreateInfo2 const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -75007,6 +76136,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassInputAttachmentAspectCreateInfo & setAspectReferences( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + aspectReferences ) VULKAN_HPP_NOEXCEPT + { + aspectReferenceCount = static_cast( aspectReferences.size() ); + pAspectReferences = aspectReferences.data(); + return *this; + } + operator VkRenderPassInputAttachmentAspectCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -75108,6 +76246,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassMultiviewCreateInfo & + setViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries viewMasks ) VULKAN_HPP_NOEXCEPT + { + subpassCount = static_cast( viewMasks.size() ); + pViewMasks = viewMasks.data(); + return *this; + } + RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT { dependencyCount = dependencyCount_; @@ -75120,6 +76266,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassMultiviewCreateInfo & + setViewOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries viewOffsets ) VULKAN_HPP_NOEXCEPT + { + dependencyCount = static_cast( viewOffsets.size() ); + pViewOffsets = viewOffsets.data(); + return *this; + } + RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ ) VULKAN_HPP_NOEXCEPT { correlationMaskCount = correlationMaskCount_; @@ -75132,6 +76286,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassMultiviewCreateInfo & setCorrelationMasks( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries correlationMasks ) VULKAN_HPP_NOEXCEPT + { + correlationMaskCount = static_cast( correlationMasks.size() ); + pCorrelationMasks = correlationMasks.data(); + return *this; + } + operator VkRenderPassMultiviewCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -75310,6 +76472,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocations( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + attachmentInitialSampleLocations ) VULKAN_HPP_NOEXCEPT + { + attachmentInitialSampleLocationsCount = static_cast( attachmentInitialSampleLocations.size() ); + pAttachmentInitialSampleLocations = attachmentInitialSampleLocations.data(); + return *this; + } + RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT { @@ -75324,6 +76495,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocations( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + postSubpassSampleLocations ) VULKAN_HPP_NOEXCEPT + { + postSubpassSampleLocationsCount = static_cast( postSubpassSampleLocations.size() ); + pPostSubpassSampleLocations = postSubpassSampleLocations.data(); + return *this; + } + operator VkRenderPassSampleLocationsBeginInfoEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -76674,12 +77854,29 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SemaphoreWaitInfo & + setSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries semaphores ) + VULKAN_HPP_NOEXCEPT + { + semaphoreCount = static_cast( semaphores.size() ); + pSemaphores = semaphores.data(); + return *this; + } + SemaphoreWaitInfo & setPValues( const uint64_t * pValues_ ) VULKAN_HPP_NOEXCEPT { pValues = pValues_; return *this; } + SemaphoreWaitInfo & + setValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries values ) VULKAN_HPP_NOEXCEPT + { + semaphoreCount = static_cast( values.size() ); + pValues = values.data(); + return *this; + } + operator VkSemaphoreWaitInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -76835,6 +78032,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + ShaderModuleCreateInfo & + setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries code ) VULKAN_HPP_NOEXCEPT + { + codeSize = code.size() * 4; + pCode = code.data(); + return *this; + } + operator VkShaderModuleCreateInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -77698,6 +78903,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SubmitInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + waitSemaphores ) VULKAN_HPP_NOEXCEPT + { + waitSemaphoreCount = static_cast( waitSemaphores.size() ); + pWaitSemaphores = waitSemaphores.data(); + return *this; + } + SubmitInfo & setPWaitDstStageMask( const VULKAN_HPP_NAMESPACE::PipelineStageFlags * pWaitDstStageMask_ ) VULKAN_HPP_NOEXCEPT { @@ -77705,6 +78918,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SubmitInfo & setWaitDstStageMask( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries waitDstStageMask ) + VULKAN_HPP_NOEXCEPT + { + waitSemaphoreCount = static_cast( waitDstStageMask.size() ); + pWaitDstStageMask = waitDstStageMask.data(); + return *this; + } + SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT { commandBufferCount = commandBufferCount_; @@ -77717,6 +78939,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SubmitInfo & setCommandBuffers( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries commandBuffers ) + VULKAN_HPP_NOEXCEPT + { + commandBufferCount = static_cast( commandBuffers.size() ); + pCommandBuffers = commandBuffers.data(); + return *this; + } + SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT { signalSemaphoreCount = signalSemaphoreCount_; @@ -77729,6 +78960,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SubmitInfo & setSignalSemaphores( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries signalSemaphores ) + VULKAN_HPP_NOEXCEPT + { + signalSemaphoreCount = static_cast( signalSemaphores.size() ); + pSignalSemaphores = signalSemaphores.data(); + return *this; + } + operator VkSubmitInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -78991,6 +80231,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + SwapchainCreateInfoKHR & setQueueFamilyIndices( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries queueFamilyIndices ) VULKAN_HPP_NOEXCEPT + { + queueFamilyIndexCount = static_cast( queueFamilyIndices.size() ); + pQueueFamilyIndices = queueFamilyIndices.data(); + return *this; + } + SwapchainCreateInfoKHR & setPreTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ ) VULKAN_HPP_NOEXCEPT { @@ -79302,6 +80550,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + TimelineSemaphoreSubmitInfo & setWaitSemaphoreValues( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries waitSemaphoreValues ) VULKAN_HPP_NOEXCEPT + { + waitSemaphoreValueCount = static_cast( waitSemaphoreValues.size() ); + pWaitSemaphoreValues = waitSemaphoreValues.data(); + return *this; + } + TimelineSemaphoreSubmitInfo & setSignalSemaphoreValueCount( uint32_t signalSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT { @@ -79316,6 +80572,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + TimelineSemaphoreSubmitInfo & setSignalSemaphoreValues( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries signalSemaphoreValues ) VULKAN_HPP_NOEXCEPT + { + signalSemaphoreValueCount = static_cast( signalSemaphoreValues.size() ); + pSignalSemaphoreValues = signalSemaphoreValues.data(); + return *this; + } + operator VkTimelineSemaphoreSubmitInfo const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -79502,6 +80766,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + template + ValidationCacheCreateInfoEXT & + setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries initialData ) VULKAN_HPP_NOEXCEPT + { + initialDataSize = initialData.size() * sizeof( T ); + pInitialData = initialData.data(); + return *this; + } + operator VkValidationCacheCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -79600,6 +80873,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + ValidationFeaturesEXT & setEnabledValidationFeatures( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + enabledValidationFeatures ) VULKAN_HPP_NOEXCEPT + { + enabledValidationFeatureCount = static_cast( enabledValidationFeatures.size() ); + pEnabledValidationFeatures = enabledValidationFeatures.data(); + return *this; + } + ValidationFeaturesEXT & setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT { @@ -79614,6 +80896,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + ValidationFeaturesEXT & setDisabledValidationFeatures( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + disabledValidationFeatures ) VULKAN_HPP_NOEXCEPT + { + disabledValidationFeatureCount = static_cast( disabledValidationFeatures.size() ); + pDisabledValidationFeatures = disabledValidationFeatures.data(); + return *this; + } + operator VkValidationFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -79710,6 +81001,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + ValidationFlagsEXT & setDisabledValidationChecks( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + disabledValidationChecks ) VULKAN_HPP_NOEXCEPT + { + disabledValidationCheckCount = static_cast( disabledValidationChecks.size() ); + pDisabledValidationChecks = disabledValidationChecks.data(); + return *this; + } + operator VkValidationFlagsEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -80012,18 +81312,43 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireSyncs( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries acquireSyncs ) + VULKAN_HPP_NOEXCEPT + { + acquireCount = static_cast( acquireSyncs.size() ); + pAcquireSyncs = acquireSyncs.data(); + return *this; + } + Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t * pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT { pAcquireKeys = pAcquireKeys_; return *this; } + Win32KeyedMutexAcquireReleaseInfoKHR & + setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries acquireKeys ) VULKAN_HPP_NOEXCEPT + { + acquireCount = static_cast( acquireKeys.size() ); + pAcquireKeys = acquireKeys.data(); + return *this; + } + Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t * pAcquireTimeouts_ ) VULKAN_HPP_NOEXCEPT { pAcquireTimeouts = pAcquireTimeouts_; return *this; } + Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireTimeouts( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries acquireTimeouts ) VULKAN_HPP_NOEXCEPT + { + acquireCount = static_cast( acquireTimeouts.size() ); + pAcquireTimeouts = acquireTimeouts.data(); + return *this; + } + Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT { releaseCount = releaseCount_; @@ -80037,12 +81362,29 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseSyncs( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries releaseSyncs ) + VULKAN_HPP_NOEXCEPT + { + releaseCount = static_cast( releaseSyncs.size() ); + pReleaseSyncs = releaseSyncs.data(); + return *this; + } + Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t * pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT { pReleaseKeys = pReleaseKeys_; return *this; } + Win32KeyedMutexAcquireReleaseInfoKHR & + setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries releaseKeys ) VULKAN_HPP_NOEXCEPT + { + releaseCount = static_cast( releaseKeys.size() ); + pReleaseKeys = releaseKeys.data(); + return *this; + } + operator VkWin32KeyedMutexAcquireReleaseInfoKHR const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -80159,12 +81501,29 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + Win32KeyedMutexAcquireReleaseInfoNV & setAcquireSyncs( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries acquireSyncs ) + VULKAN_HPP_NOEXCEPT + { + acquireCount = static_cast( acquireSyncs.size() ); + pAcquireSyncs = acquireSyncs.data(); + return *this; + } + Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t * pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT { pAcquireKeys = pAcquireKeys_; return *this; } + Win32KeyedMutexAcquireReleaseInfoNV & + setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries acquireKeys ) VULKAN_HPP_NOEXCEPT + { + acquireCount = static_cast( acquireKeys.size() ); + pAcquireKeys = acquireKeys.data(); + return *this; + } + Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireTimeoutMilliseconds( const uint32_t * pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT { @@ -80172,6 +81531,14 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + Win32KeyedMutexAcquireReleaseInfoNV & setAcquireTimeoutMilliseconds( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries acquireTimeoutMilliseconds ) VULKAN_HPP_NOEXCEPT + { + acquireCount = static_cast( acquireTimeoutMilliseconds.size() ); + pAcquireTimeoutMilliseconds = acquireTimeoutMilliseconds.data(); + return *this; + } + Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT { releaseCount = releaseCount_; @@ -80185,12 +81552,29 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + Win32KeyedMutexAcquireReleaseInfoNV & setReleaseSyncs( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries releaseSyncs ) + VULKAN_HPP_NOEXCEPT + { + releaseCount = static_cast( releaseSyncs.size() ); + pReleaseSyncs = releaseSyncs.data(); + return *this; + } + Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t * pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT { pReleaseKeys = pReleaseKeys_; return *this; } + Win32KeyedMutexAcquireReleaseInfoNV & + setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries releaseKeys ) VULKAN_HPP_NOEXCEPT + { + releaseCount = static_cast( releaseKeys.size() ); + pReleaseKeys = releaseKeys.data(); + return *this; + } + operator VkWin32KeyedMutexAcquireReleaseInfoNV const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -80429,6 +81813,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + WriteDescriptorSet & setImageInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries imageInfo ) + VULKAN_HPP_NOEXCEPT + { + descriptorCount = static_cast( imageInfo.size() ); + pImageInfo = imageInfo.data(); + return *this; + } + WriteDescriptorSet & setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo * pBufferInfo_ ) VULKAN_HPP_NOEXCEPT { @@ -80436,6 +81829,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + WriteDescriptorSet & setBufferInfo( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries bufferInfo ) + VULKAN_HPP_NOEXCEPT + { + descriptorCount = static_cast( bufferInfo.size() ); + pBufferInfo = bufferInfo.data(); + return *this; + } + WriteDescriptorSet & setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView * pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT { @@ -80443,6 +81845,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + WriteDescriptorSet & setTexelBufferView( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries texelBufferView ) + VULKAN_HPP_NOEXCEPT + { + descriptorCount = static_cast( texelBufferView.size() ); + pTexelBufferView = texelBufferView.data(); + return *this; + } + operator VkWriteDescriptorSet const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -80551,6 +81962,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructures( + VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries + accelerationStructures ) VULKAN_HPP_NOEXCEPT + { + accelerationStructureCount = static_cast( accelerationStructures.size() ); + pAccelerationStructures = accelerationStructures.data(); + return *this; + } + operator VkWriteDescriptorSetAccelerationStructureKHR const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this ); @@ -80649,6 +82069,15 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + template + WriteDescriptorSetInlineUniformBlockEXT & + setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries data ) VULKAN_HPP_NOEXCEPT + { + dataSize = static_cast( data.size() * sizeof( T ) ); + pData = data.data(); + return *this; + } + operator VkWriteDescriptorSetInlineUniformBlockEXT const &() const VULKAN_HPP_NOEXCEPT { return *reinterpret_cast( this );