From 1a851d00af587a034bd2ccfab8cc2b89f4aa168d Mon Sep 17 00:00:00 2001 From: asuessenbach Date: Thu, 15 Oct 2020 13:09:43 +0200 Subject: [PATCH] Refactor commands returning some value --- VulkanHppGenerator.cpp | 737 +++++++++++++++++------------------------ VulkanHppGenerator.hpp | 134 +++----- vulkan/vulkan.hpp | 169 ++++++---- 3 files changed, 459 insertions(+), 581 deletions(-) diff --git a/VulkanHppGenerator.cpp b/VulkanHppGenerator.cpp index 523011b..83d14b1 100644 --- a/VulkanHppGenerator.cpp +++ b/VulkanHppGenerator.cpp @@ -1172,51 +1172,23 @@ void VulkanHppGenerator::appendCommand( std::string & str, // no vector paramter and no non-void const-pointer if ( commandData.returnType == "void" ) { - // void functions - appendCommandTrivialVoid( str, name, commandData, definition ); + // void functions with no fancy input have just standard call + appendCommandStandard( str, name, commandData, definition ); appendedFunction = true; } else if ( commandData.returnType == "VkResult" ) { - // function returning a result - appendCommandTrivial( str, name, commandData, definition ); + // function returning a result but no fancy input have either standard or enhanced call + appendCommandStandardOrEnhanced( str, name, commandData, definition ); appendedFunction = true; } } else { - // with const-pointers that might be changed to by-reference arguments - if ( commandData.returnType == "void" ) - { - appendCommandSimpleVoid( str, name, commandData, definition, vectorParamIndices ); - appendedFunction = true; - } - else if ( commandData.returnType == "VkResult" ) - { - switch ( vectorParamIndices.size() ) - { - case 0: // fallthtrough - case 1: - // returns VkResult, but there's just one success code - appendCommandSimple( str, name, commandData, definition, vectorParamIndices ); - appendedFunction = true; - break; - case 2: - assert( vectorParamIndices.begin()->second != INVALID_INDEX ); - assert( vectorParamIndices.begin()->second == std::next( vectorParamIndices.begin() )->second ); - assert( commandData.params[vectorParamIndices.begin()->second].type.isValue() ); - // size is given by value and the vectors are const pointers, that is input parameters - appendCommandTwoVectors( str, name, commandData, vectorParamIndices, definition ); - appendedFunction = true; - break; - default: assert( false ); break; - } - } - else - { - appendCommandSimpleReturn( str, name, commandData, definition, vectorParamIndices ); - appendedFunction = true; - } + // functions with some fancy input have both, standard and enhanced call + appendCommandStandardAndEnhanced( + str, name, commandData, definition, vectorParamIndices, nonConstPointerParamIndices ); + appendedFunction = true; } } break; @@ -1227,34 +1199,27 @@ void VulkanHppGenerator::appendCommand( std::string & str, if ( returnVectorParamIt == vectorParamIndices.end() ) { // the return parameter is not a vector - if ( isStructureChainAnchor( commandData.params[nonConstPointerParamIndices[0]].type.type ) ) + if ( isHandleType( commandData.params[nonConstPointerParamIndices[0]].type.type ) ) { if ( commandData.returnType == "VkResult" ) { - appendCommandGetChainResult( str, name, commandData, nonConstPointerParamIndices[0], definition ); - } - else - { - assert( commandData.returnType == "void" ); - appendCommandGetChainVoid( str, name, commandData, nonConstPointerParamIndices[0], definition ); - } - appendedFunction = true; - } - else - { - if ( commandData.returnType == "VkResult" ) - { - if ( isHandleType( commandData.params[nonConstPointerParamIndices[0]].type.type ) ) - { - appendCommandGetHandle( str, name, commandData, nonConstPointerParamIndices[0], definition ); - } - else - { - appendCommandGetValue( str, name, commandData, nonConstPointerParamIndices[0], definition ); - } + // provide standard, enhanced, and unique call + appendCommandUnique( str, name, commandData, nonConstPointerParamIndices[0], definition ); appendedFunction = true; } } + else if ( isStructureChainAnchor( commandData.params[nonConstPointerParamIndices[0]].type.type ) ) + { + // provide standard, enhanced, and chained call + appendCommandChained( str, name, commandData, nonConstPointerParamIndices[0], definition ); + appendedFunction = true; + } + else if ( ( commandData.returnType == "VkResult" ) || ( commandData.returnType == "void" ) ) + { + appendCommandStandardAndEnhanced( + str, name, commandData, definition, vectorParamIndices, nonConstPointerParamIndices ); + appendedFunction = true; + } } else { @@ -1265,7 +1230,8 @@ void VulkanHppGenerator::appendCommand( std::string & str, { assert( vectorParamIndices.size() == 2 ); assert( vectorParamIndices.begin()->second == std::next( vectorParamIndices.begin() )->second ); - appendCommandGetVectorOfHandles( + // provide standard, enhanced, vector, singular, and unique (and the combinations!) calls + appendCommandVectorSingularUnique( str, name, commandData, vectorParamIndices, nonConstPointerParamIndices[0], definition ); } else @@ -1273,7 +1239,8 @@ void VulkanHppGenerator::appendCommand( std::string & str, assert( ( isParamIndirect( commandData.params[returnVectorParamIt->first].len, commandData.params[returnVectorParamIt->second] ) ) ); assert( vectorParamIndices.size() == 1 ); - appendCommandGetVectorOfHandlesIndirect( + // provide standard, enhanced, vector, and unique (and the combinations!) calls + appendCommandVectorUnique( str, name, commandData, vectorParamIndices, nonConstPointerParamIndices[0], definition ); } appendedFunction = true; @@ -1282,7 +1249,8 @@ void VulkanHppGenerator::appendCommand( std::string & str, { assert( commandData.params[returnVectorParamIt->first].type.type == "void" ); assert( commandData.params[returnVectorParamIt->second].type.isValue() ); - appendCommandGetVector( + // provide standard, enhanced, and singular calls + appendCommandSingular( str, name, commandData, vectorParamIndices, nonConstPointerParamIndices[0], definition ); appendedFunction = true; } @@ -1304,7 +1272,8 @@ void VulkanHppGenerator::appendCommand( std::string & str, m_extendedStructs ) ) { assert( commandData.params[vectorParamIndexIt->first].type.type != "void" ); - appendCommandEnumerateVoid( str, name, commandData, *vectorParamIndexIt, definition ); + // provide standard, enhanced, and vector calls + appendCommandVector( str, name, commandData, *vectorParamIndexIt, definition ); appendedFunction = true; } } @@ -1331,7 +1300,8 @@ void VulkanHppGenerator::appendCommand( std::string & str, params[firstVectorParam->second].type.isNonConstPointer() ) { // both vectors, as well as the size parameter are non-const pointer that is output parameters - appendCommandEnumerateTwoVectors( str, name, commandData, vectorParamIndices, definition ); + // provide standard, enhanced, vector and deprecated calls! + appendCommandVectorDeprecated( str, name, commandData, vectorParamIndices, definition ); appendedFunction = true; } } @@ -1508,11 +1478,256 @@ void VulkanHppGenerator::appendCommand( std::string & str, } } -void VulkanHppGenerator::appendCommandEnumerateTwoVectors( std::string & str, - std::string const & name, - CommandData const & commandData, - std::map const & vectorParamIndices, - bool definition ) const +void VulkanHppGenerator::appendCommandChained( std::string & str, + std::string const & name, + CommandData const & commandData, + size_t nonConstPointerIndex, + bool definition ) const +{ + assert( ( commandData.returnType == "VkResult" ) || ( commandData.returnType == "void" ) ); + + std::string const functionTemplate = R"( +${enter}${commandStandard}${newlineOnDefinition} +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE +${commandEnhanced}${newlineOnDefinition} +${commandEnhancedChained} +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +${leave})"; + + std::string enter, leave; + std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); + + str += + replaceWithMap( functionTemplate, + std::map( + { { "commandEnhanced", + ( commandData.returnType == "void" ) + ? constructCommandVoidGetValue( name, commandData, nonConstPointerIndex, definition ) + : constructCommandResultGetValue( name, commandData, nonConstPointerIndex, definition ) }, + { "commandEnhancedChained", + ( commandData.returnType == "void" ) + ? constructCommandVoidGetChain( name, commandData, nonConstPointerIndex, definition ) + : constructCommandResultGetChain( name, commandData, nonConstPointerIndex, definition ) }, + { "commandStandard", constructCommandStandard( name, commandData, definition ) }, + { "enter", enter }, + { "leave", leave }, + { "newlineOnDefinition", definition ? "\n" : "" } } ) ); +} + +void VulkanHppGenerator::appendCommandSingular( std::string & str, + std::string const & name, + CommandData const & commandData, + std::map const & vectorParamIndices, + size_t returnParamIndex, + bool definition ) const +{ + assert( commandData.returnType == "VkResult" ); + + std::string const functionTemplate = R"( +${enter}${commandStandard}${newlineOnDefinition} +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE +${commandDeprecated}${newlineOnDefinition} +${commandEnhanced}${newlineOnDefinition} +${commandEnhancedSingular} +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +${leave})"; + + std::string enter, leave; + std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); + + str += replaceWithMap( + functionTemplate, + std::map( + { { "commandEnhanced", + constructCommandResultGetVector( name, commandData, vectorParamIndices, returnParamIndex, definition ) }, + { "commandDeprecated", + constructCommandResultGetVectorDeprecated( + name, commandData, vectorParamIndices, returnParamIndex, definition ) }, + { "commandEnhancedSingular", + constructCommandResultGetVectorSingular( + name, commandData, vectorParamIndices, returnParamIndex, definition ) }, + { "commandStandard", constructCommandStandard( name, commandData, definition ) }, + { "enter", enter }, + { "leave", leave }, + { "newlineOnDefinition", definition ? "\n" : "" } } ) ); +} + +void VulkanHppGenerator::appendCommandStandard( std::string & str, + std::string const & name, + CommandData const & commandData, + bool definition ) const +{ + const std::string functionTemplate = R"( +${commandStandard} +)"; + + std::string enter, leave; + std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); + assert( enter.empty() ); + + str += replaceWithMap( functionTemplate, + std::map( { + { "commandStandard", constructCommandStandard( name, commandData, definition ) }, + } ) ); +} + +void VulkanHppGenerator::appendCommandStandardAndEnhanced( + std::string & str, + std::string const & name, + CommandData const & commandData, + bool definition, + std::map const & vectorParamIndices, + std::vector const & nonConstPointerParamIndices ) const +{ + const std::string functionTemplate = R"( +${enter}${commandStandard}${newlineOnDefinition} +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE +${commandEnhanced} +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +${leave})"; + + std::string enter, leave; + std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); + + std::string commandEnhanced; + switch ( nonConstPointerParamIndices.size() ) + { + case 0: + if ( commandData.returnType == "void" ) + { + commandEnhanced = constructCommandVoid( name, commandData, definition, vectorParamIndices ); + } + else if ( commandData.returnType == "VkResult" ) + { + if ( vectorParamIndices.size() < 2 ) + { + commandEnhanced = constructCommandResult( name, commandData, definition, vectorParamIndices ); + } + else + { + assert( vectorParamIndices.size() == 2 ); + assert( vectorParamIndices.begin()->second != INVALID_INDEX ); + assert( vectorParamIndices.begin()->second == std::next( vectorParamIndices.begin() )->second ); + assert( commandData.params[vectorParamIndices.begin()->second].type.isValue() ); + commandEnhanced = constructCommandResultGetTwoVectors( name, commandData, vectorParamIndices, definition ); + } + } + else + { + commandEnhanced = constructCommandType( name, commandData, definition, vectorParamIndices ); + } + break; + case 1: + commandEnhanced = + ( commandData.returnType == "void" ) + ? constructCommandVoidGetValue( name, commandData, nonConstPointerParamIndices[0], definition ) + : constructCommandResultGetValue( name, commandData, nonConstPointerParamIndices[0], definition ); + break; + default: assert( false ); break; + } + + str += replaceWithMap( functionTemplate, + std::map( + { { "commandEnhanced", commandEnhanced }, + { "commandStandard", constructCommandStandard( name, commandData, definition ) }, + { "enter", enter }, + { "leave", leave }, + { "newlineOnDefinition", definition ? "\n" : "" } } ) ); +} + +void VulkanHppGenerator::appendCommandStandardOrEnhanced( std::string & str, + std::string const & name, + CommandData const & commandData, + bool definition ) const +{ + assert( commandData.returnType == "VkResult" ); + + const std::string functionTemplate = R"( +${enter}#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE +${commandStandard} +#else +${commandEnhanced} +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +${leave} +)"; + + std::string enter, leave; + std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); + + str += replaceWithMap( functionTemplate, + std::map( + { { "commandEnhanced", constructCommandResult( name, commandData, definition, {} ) }, + { "commandStandard", constructCommandStandard( name, commandData, definition ) }, + { "enter", enter }, + { "leave", leave } } ) ); +} + +void VulkanHppGenerator::appendCommandUnique( std::string & str, + std::string const & name, + CommandData const & commandData, + size_t nonConstPointerIndex, + bool definition ) const +{ + std::string const functionTemplate = R"( +${enter}${commandStandard}${newlineOnDefinition} +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE +${commandEnhanced}${newlineOnDefinition} +# ifndef VULKAN_HPP_NO_SMART_HANDLE +${commandEnhancedUnique} +# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +${leave})"; + + std::string enter, leave; + std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); + + str += replaceWithMap( + functionTemplate, + std::map( + { { "commandEnhanced", constructCommandResultGetValue( name, commandData, nonConstPointerIndex, definition ) }, + { "commandEnhancedUnique", + constructCommandResultGetHandleUnique( name, commandData, nonConstPointerIndex, definition ) }, + { "commandStandard", constructCommandStandard( name, commandData, definition ) }, + { "enter", enter }, + { "leave", leave }, + { "newlineOnDefinition", definition ? "\n" : "" } } ) ); +} + +void VulkanHppGenerator::appendCommandVector( std::string & str, + std::string const & name, + CommandData const & commandData, + std::pair const & vectorParamIndex, + bool definition ) const +{ + assert( commandData.returnType == "void" ); + + std::string enter, leave; + std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); + assert( enter.empty() ); + + const std::string functionTemplate = R"( +${commandStandard}${newlineOnDefinition} +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE +${commandEnhanced}${newlineOnDefinition} +${commandEnhancedWithAllocators} +#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +)"; + + str += replaceWithMap( + functionTemplate, + std::map( + { { "commandEnhanced", constructCommandVoidEnumerate( name, commandData, vectorParamIndex, definition, false ) }, + { "commandEnhancedWithAllocators", + constructCommandVoidEnumerate( name, commandData, vectorParamIndex, definition, true ) }, + { "commandStandard", constructCommandStandard( name, commandData, definition ) }, + { "newlineOnDefinition", definition ? "\n" : "" } } ) ); +} + +void VulkanHppGenerator::appendCommandVectorDeprecated( std::string & str, + std::string const & name, + CommandData const & commandData, + std::map const & vectorParamIndices, + bool definition ) const { assert( commandData.returnType == "VkResult" ); assert( vectorParamIndices.size() == 2 ); @@ -1548,195 +1763,12 @@ ${commandEnhancedWithAllocators} { "newlineOnDefinition", definition ? "\n" : "" } } ) ); } -void VulkanHppGenerator::appendCommandEnumerateVoid( std::string & str, - std::string const & name, - CommandData const & commandData, - std::pair const & vectorParamIndex, - bool definition ) const -{ - assert( commandData.returnType == "void" ); - - std::string enter, leave; - std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); - assert( enter.empty() ); - - const std::string functionTemplate = R"( -${commandStandard}${newlineOnDefinition} -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE -${commandEnhanced}${newlineOnDefinition} -${commandEnhancedWithAllocators} -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -)"; - - str += replaceWithMap( - functionTemplate, - std::map( - { { "commandEnhanced", constructCommandVoidEnumerate( name, commandData, vectorParamIndex, definition, false ) }, - { "commandEnhancedWithAllocators", - constructCommandVoidEnumerate( name, commandData, vectorParamIndex, definition, true ) }, - { "commandStandard", constructCommandStandard( name, commandData, definition ) }, - { "newlineOnDefinition", definition ? "\n" : "" } } ) ); -} - -void VulkanHppGenerator::appendCommandGetChainResult( std::string & str, - std::string const & name, - CommandData const & commandData, - size_t nonConstPointerIndex, - bool definition ) const -{ - std::string const functionTemplate = R"( -${enter}${commandStandard}${newlineOnDefinition} -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE -${commandEnhanced}${newlineOnDefinition} -${commandEnhancedChained} -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -${leave})"; - - std::string enter, leave; - std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); - - str += replaceWithMap( - functionTemplate, - std::map( - { { "commandEnhanced", constructCommandResultGetValue( name, commandData, nonConstPointerIndex, definition ) }, - { "commandEnhancedChained", - constructCommandResultGetChain( name, commandData, nonConstPointerIndex, definition ) }, - { "commandStandard", constructCommandStandard( name, commandData, definition ) }, - { "enter", enter }, - { "leave", leave }, - { "newlineOnDefinition", definition ? "\n" : "" } } ) ); -} - -void VulkanHppGenerator::appendCommandGetChainVoid( std::string & str, - std::string const & name, - CommandData const & commandData, - size_t nonConstPointerIndex, - bool definition ) const -{ - std::string const functionTemplate = R"( -${enter}${commandStandard}${newlineOnDefinition} -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE -${commandEnhanced}${newlineOnDefinition} -${commandEnhancedChained} -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -${leave})"; - - std::string enter, leave; - std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); - - str += replaceWithMap( - functionTemplate, - std::map( - { { "commandEnhanced", constructCommandVoidGetValue( name, commandData, nonConstPointerIndex, definition ) }, - { "commandEnhancedChained", - constructCommandVoidGetChain( name, commandData, nonConstPointerIndex, definition ) }, - { "commandStandard", constructCommandStandard( name, commandData, definition ) }, - { "enter", enter }, - { "leave", leave }, - { "newlineOnDefinition", definition ? "\n" : "" } } ) ); -} - -void VulkanHppGenerator::appendCommandGetHandle( std::string & str, - std::string const & name, - CommandData const & commandData, - size_t nonConstPointerIndex, - bool definition ) const -{ - std::string const functionTemplate = R"( -${enter}${commandStandard}${newlineOnDefinition} -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE -${commandEnhanced}${newlineOnDefinition} -# ifndef VULKAN_HPP_NO_SMART_HANDLE -${commandEnhancedUnique} -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -${leave})"; - - std::string enter, leave; - std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); - - str += replaceWithMap( - functionTemplate, - std::map( - { { "commandEnhanced", constructCommandResultGetValue( name, commandData, nonConstPointerIndex, definition ) }, - { "commandEnhancedUnique", - constructCommandResultGetHandleUnique( name, commandData, nonConstPointerIndex, definition ) }, - { "commandStandard", constructCommandStandard( name, commandData, definition ) }, - { "enter", enter }, - { "leave", leave }, - { "newlineOnDefinition", definition ? "\n" : "" } } ) ); -} - -void VulkanHppGenerator::appendCommandGetValue( std::string & str, - std::string const & name, - CommandData const & commandData, - size_t nonConstPointerIndex, - bool definition ) const -{ - std::string const functionTemplate = R"( -${enter}${commandStandard}${newlineOnDefinition} -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE -${commandEnhanced} -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -${leave})"; - - std::string enter, leave; - std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); - - str += replaceWithMap( - functionTemplate, - std::map( - { { "commandEnhanced", constructCommandResultGetValue( name, commandData, nonConstPointerIndex, definition ) }, - { "commandStandard", constructCommandStandard( name, commandData, definition ) }, - { "enter", enter }, - { "leave", leave }, - { "newlineOnDefinition", definition ? "\n" : "" } } ) ); -} - -void VulkanHppGenerator::appendCommandGetVector( std::string & str, - std::string const & name, - CommandData const & commandData, - std::map const & vectorParamIndices, - size_t returnParamIndex, - bool definition ) const -{ - assert( commandData.returnType == "VkResult" ); - - std::string const functionTemplate = R"( -${enter}${commandStandard}${newlineOnDefinition} -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE -${commandDeprecated}${newlineOnDefinition} -${commandEnhanced}${newlineOnDefinition} -${commandEnhancedSingular} -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -${leave})"; - - std::string enter, leave; - std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); - - str += replaceWithMap( - functionTemplate, - std::map( - { { "commandEnhanced", - constructCommandResultGetVector( name, commandData, vectorParamIndices, returnParamIndex, definition ) }, - { "commandDeprecated", - constructCommandResultGetVectorDeprecated( - name, commandData, vectorParamIndices, returnParamIndex, definition ) }, - { "commandEnhancedSingular", - constructCommandResultGetVectorSingular( - name, commandData, vectorParamIndices, returnParamIndex, definition ) }, - { "commandStandard", constructCommandStandard( name, commandData, definition ) }, - { "enter", enter }, - { "leave", leave }, - { "newlineOnDefinition", definition ? "\n" : "" } } ) ); -} - -void VulkanHppGenerator::appendCommandGetVectorOfHandles( std::string & str, - std::string const & name, - CommandData const & commandData, - std::map const & vectorParamIndices, - size_t returnParamIndex, - bool definition ) const +void VulkanHppGenerator::appendCommandVectorSingularUnique( std::string & str, + std::string const & name, + CommandData const & commandData, + std::map const & vectorParamIndices, + size_t returnParamIndex, + bool definition ) const { assert( commandData.returnType == "VkResult" ); @@ -1783,12 +1815,12 @@ ${leave})"; { "newlineOnDefinition", definition ? "\n" : "" } } ) ); } -void VulkanHppGenerator::appendCommandGetVectorOfHandlesIndirect( std::string & str, - std::string const & name, - CommandData const & commandData, - std::map const & vectorParamIndices, - size_t returnParamIndex, - bool definition ) const +void VulkanHppGenerator::appendCommandVectorUnique( std::string & str, + std::string const & name, + CommandData const & commandData, + std::map const & vectorParamIndices, + size_t returnParamIndex, + bool definition ) const { assert( commandData.returnType == "VkResult" ); @@ -1827,156 +1859,6 @@ ${leave})"; { "newlineOnDefinition", definition ? "\n" : "" } } ) ); } -void VulkanHppGenerator::appendCommandSimple( std::string & str, - std::string const & name, - CommandData const & commandData, - bool definition, - std::map const & vectorParamIndices ) const -{ - const std::string functionTemplate = R"( -${enter}${commandStandard}${newlineOnDefinition} -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE -${commandEnhanced} -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -${leave})"; - - std::string enter, leave; - std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); - - str += replaceWithMap( - functionTemplate, - std::map( - { { "commandEnhanced", constructCommandResult( name, commandData, definition, vectorParamIndices ) }, - { "commandStandard", constructCommandStandard( name, commandData, definition ) }, - { "enter", enter }, - { "leave", leave }, - { "newlineOnDefinition", definition ? "\n" : "" } } ) ); -} - -void VulkanHppGenerator::appendCommandSimpleReturn( std::string & str, - std::string const & name, - CommandData const & commandData, - bool definition, - std::map const & vectorParamIndices ) const -{ - const std::string functionTemplate = R"( -${enter}${commandStandard}${newlineOnDefinition} -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE -${commandEnhanced} -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -${leave})"; - - std::string enter, leave; - std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); - - str += replaceWithMap( - functionTemplate, - std::map( - { { "commandEnhanced", constructCommandType( name, commandData, definition, vectorParamIndices ) }, - { "commandStandard", constructCommandStandard( name, commandData, definition ) }, - { "enter", enter }, - { "leave", leave }, - { "newlineOnDefinition", definition ? "\n" : "" } } ) ); -} - -void VulkanHppGenerator::appendCommandSimpleVoid( std::string & str, - std::string const & name, - CommandData const & commandData, - bool definition, - std::map const & vectorParamIndices ) const -{ - const std::string functionTemplate = R"( -${enter}${commandStandard}${newlineOnDefinition} -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE -${commandEnhanced} -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -${leave})"; - - std::string enter, leave; - std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); - - str += replaceWithMap( - functionTemplate, - std::map( - { { "commandEnhanced", constructCommandVoid( name, commandData, definition, vectorParamIndices ) }, - { "commandStandard", constructCommandStandard( name, commandData, definition ) }, - { "enter", enter }, - { "leave", leave }, - { "newlineOnDefinition", definition ? "\n" : "" } } ) ); -} - -void VulkanHppGenerator::appendCommandTrivial( std::string & str, - std::string const & name, - CommandData const & commandData, - bool definition ) const -{ - const std::string functionTemplate = R"( -${enter}#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE -${commandStandard} -#else -${commandEnhanced} -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -${leave} -)"; - - std::string enter, leave; - std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); - - str += replaceWithMap( functionTemplate, - std::map( - { { "commandEnhanced", constructCommandResult( name, commandData, definition, {} ) }, - { "commandStandard", constructCommandStandard( name, commandData, definition ) }, - { "enter", enter }, - { "leave", leave } } ) ); -} - -void VulkanHppGenerator::appendCommandTrivialVoid( std::string & str, - std::string const & name, - CommandData const & commandData, - bool definition ) const -{ - const std::string functionTemplate = R"( -${commandStandard} -)"; - - std::string enter, leave; - std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); - assert( enter.empty() ); - - str += replaceWithMap( functionTemplate, - std::map( { - { "commandStandard", constructCommandStandard( name, commandData, definition ) }, - } ) ); -} - -void VulkanHppGenerator::appendCommandTwoVectors( std::string & str, - std::string const & name, - CommandData const & commandData, - std::map const & vectorParamIndices, - bool definition ) const -{ - assert( vectorParamIndices.size() == 2 ); - - std::string enter, leave; - std::tie( enter, leave ) = generateProtection( commandData.feature, commandData.extensions ); - - const std::string functionTemplate = R"( -${enter}${commandStandard}${newlineOnDefinition} -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE -${commandEnhanced} -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -${leave})"; - - str += replaceWithMap( - functionTemplate, - std::map( - { { "commandEnhanced", constructCommandResultGetTwoVectors( name, commandData, vectorParamIndices, definition ) }, - { "commandStandard", constructCommandStandard( name, commandData, definition ) }, - { "enter", enter }, - { "leave", leave }, - { "newlineOnDefinition", definition ? "\n" : "" } } ) ); -} - void VulkanHppGenerator::appendDispatchLoaderDynamic( std::string & str ) { str += R"( @@ -2614,13 +2496,12 @@ void VulkanHppGenerator::appendFunction( std::string & str, } } -std::string VulkanHppGenerator::appendFunctionBodyEnhancedLocalReturnVariable( - std::string & str, - std::string const & indentation, - CommandData const & commandData, - size_t returnParamIndex, - std::string const & enhancedReturnType, - bool withAllocator ) const +std::string VulkanHppGenerator::appendFunctionBodyEnhancedLocalReturnVariable( std::string & str, + std::string const & indentation, + CommandData const & commandData, + size_t returnParamIndex, + std::string const & enhancedReturnType, + bool withAllocator ) const { std::string pureReturnType = stripPrefix( commandData.params[returnParamIndex].type.type, "Vk" ); std::string returnName = startLowerCase( stripPrefix( commandData.params[returnParamIndex].name, "p" ) ); @@ -5465,9 +5346,11 @@ std::string VulkanHppGenerator::constructCommandVoidGetValue( std::string const constructArgumentListEnhanced( commandData.params, skippedParameters, INVALID_INDEX, definition, false ); std::string commandName = determineCommandName( name, commandData.params[0].type.type ); std::string nodiscard = constructNoDiscardEnhanced( commandData ); - assert( beginsWith( commandData.params[nonConstPointerIndex].type.type, "Vk" ) ); - std::string returnType = - "VULKAN_HPP_NAMESPACE::" + stripPrefix( commandData.params[nonConstPointerIndex].type.type, "Vk" ); + std::string returnType = commandData.params[nonConstPointerIndex].type.type; + if ( beginsWith( returnType, "Vk" ) ) + { + returnType = "VULKAN_HPP_NAMESPACE::" + stripPrefix( returnType, "Vk" ); + } if ( definition ) { @@ -5546,12 +5429,8 @@ std::string VulkanHppGenerator::constructFunctionBodyEnhanced( std::string const std::string returnName; if ( returnParamIndex != INVALID_INDEX ) { - returnName = appendFunctionBodyEnhancedLocalReturnVariable( str, - indentation, - commandData, - returnParamIndex, - enhancedReturnType, - withAllocator ); + returnName = appendFunctionBodyEnhancedLocalReturnVariable( + str, indentation, commandData, returnParamIndex, enhancedReturnType, withAllocator ); } if ( twoStep ) diff --git a/VulkanHppGenerator.hpp b/VulkanHppGenerator.hpp index 253a009..43f7e7d 100644 --- a/VulkanHppGenerator.hpp +++ b/VulkanHppGenerator.hpp @@ -313,82 +313,58 @@ private: std::string const & name, CommandData const & commandData, bool definition ) const; - void appendCommandEnumerateTwoVectors( std::string & str, - std::string const & name, - CommandData const & commandData, - std::map const & vectorParamIndices, - bool definition ) const; - void appendCommandEnumerateVoid( std::string & str, - std::string const & name, - CommandData const & commandData, - std::pair const & vectorParamIndex, - bool definition ) const; - void appendCommandGetChainResult( std::string & str, - std::string const & name, - CommandData const & commandData, - size_t nonConstPointerIndex, - bool definition ) const; - void appendCommandGetChainVoid( std::string & str, - std::string const & name, - CommandData const & commandData, - size_t nonConstPointerIndex, - bool definition ) const; - void appendCommandGetHandle( std::string & str, - std::string const & name, - CommandData const & commandData, - size_t nonConstPointerIndex, - bool definition ) const; - void appendCommandGetValue( std::string & str, - std::string const & name, - CommandData const & commandData, - size_t nonConstPointerIndex, - bool definition ) const; - void appendCommandGetVector( std::string & str, - std::string const & name, - CommandData const & commandData, - std::map const & vectorParamIndices, - size_t returnParamIndex, - bool definition ) const; - void appendCommandGetVectorOfHandles( std::string & str, - std::string const & name, - CommandData const & commandData, - std::map const & vectorParamIndices, - size_t returnParamIndex, - bool definition ) const; - void appendCommandGetVectorOfHandlesIndirect( std::string & str, - std::string const & name, - CommandData const & commandData, - std::map const & vectorParamIndices, - size_t returnParamIndex, - bool definition ) const; - void appendCommandSimple( std::string & str, - std::string const & name, - CommandData const & commandData, - bool definition, - std::map const & vectorParamIndices ) const; - void appendCommandSimpleReturn( std::string & str, - std::string const & name, - CommandData const & commandData, - bool definition, - std::map const & vectorParamIndices ) const; - void appendCommandSimpleVoid( std::string & str, - std::string const & name, - CommandData const & commandData, - bool definition, - std::map const & vectorParamIndices ) const; - void appendCommandTrivial( std::string & str, + void appendCommandChained( std::string & str, std::string const & name, CommandData const & commandData, + size_t nonConstPointerIndex, bool definition ) const; - void appendCommandTrivialVoid( std::string & str, - std::string const & name, - CommandData const & commandData, - bool definition ) const; - void appendCommandTwoVectors( std::string & str, - std::string const & name, - CommandData const & commandData, - std::map const & vectorParamIndices, - bool definition ) const; + void appendCommandSingular( std::string & str, + std::string const & name, + CommandData const & commandData, + std::map const & vectorParamIndices, + size_t returnParamIndex, + bool definition ) const; + void appendCommandStandard( std::string & str, + std::string const & name, + CommandData const & commandData, + bool definition ) const; + void appendCommandStandardAndEnhanced( std::string & str, + std::string const & name, + CommandData const & commandData, + bool definition, + std::map const & vectorParamIndices, + std::vector const & nonConstPointerParamIndices ) const; + void appendCommandStandardOrEnhanced( std::string & str, + std::string const & name, + CommandData const & commandData, + bool definition ) const; + void appendCommandUnique( std::string & str, + std::string const & name, + CommandData const & commandData, + size_t nonConstPointerIndex, + bool definition ) const; + void appendCommandVector( std::string & str, + std::string const & name, + CommandData const & commandData, + std::pair const & vectorParamIndex, + bool definition ) const; + void appendCommandVectorDeprecated( std::string & str, + std::string const & name, + CommandData const & commandData, + std::map const & vectorParamIndices, + bool definition ) const; + void appendCommandVectorSingularUnique( std::string & str, + std::string const & name, + CommandData const & commandData, + std::map const & vectorParamIndices, + size_t returnParamIndex, + bool definition ) const; + void appendCommandVectorUnique( std::string & str, + std::string const & name, + CommandData const & commandData, + std::map const & vectorParamIndices, + size_t returnParamIndex, + bool definition ) const; void appendDispatchLoaderDynamicCommand( std::string & str, std::string & emptyFunctions, std::string & deviceFunctions, @@ -415,12 +391,12 @@ private: bool enhanced, bool isStructureChain, bool withAllocatorArgument ) const; - std::string appendFunctionBodyEnhancedLocalReturnVariable( std::string & str, - std::string const & indentation, - CommandData const & commandData, - size_t returnParamIndex, - std::string const & enhancedReturnType, - bool withAllocator ) const; + std::string appendFunctionBodyEnhancedLocalReturnVariable( std::string & str, + std::string const & indentation, + CommandData const & commandData, + size_t returnParamIndex, + std::string const & enhancedReturnType, + bool withAllocator ) const; void appendFunctionBodyEnhancedMultiVectorSizeCheck( std::string & str, std::string const & indentation, std::string const & name, diff --git a/vulkan/vulkan.hpp b/vulkan/vulkan.hpp index f54c9d9..3661fa5 100644 --- a/vulkan/vulkan.hpp +++ b/vulkan/vulkan.hpp @@ -54337,7 +54337,7 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::MemoryRequirements getBufferMemoryRequirements( + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -54493,7 +54493,7 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeatures( + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, @@ -54509,7 +54509,7 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeaturesKHR( + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, @@ -54561,9 +54561,9 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::DeviceSize - getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, - Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize + getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template @@ -54706,7 +54706,7 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::MemoryRequirements getImageMemoryRequirements( + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -54825,7 +54825,7 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::SubresourceLayout getImageSubresourceLayout( + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; @@ -55095,10 +55095,11 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - uint64_t getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, - uint64_t objectHandle, - VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, - Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + VULKAN_HPP_NODISCARD uint64_t + getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, + uint64_t objectHandle, + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template @@ -55268,9 +55269,9 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::Extent2D - getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, - Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D + getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template @@ -60854,7 +60855,7 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties( + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -60866,7 +60867,7 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferPropertiesKHR( + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -60878,7 +60879,7 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties( + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -60890,7 +60891,7 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFencePropertiesKHR( + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -60926,7 +60927,7 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphoreProperties( + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -60938,7 +60939,7 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR( + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -60948,8 +60949,8 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures - getFeatures( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures + getFeatures( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template @@ -60982,9 +60983,9 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::FormatProperties - getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, - Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties + getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template @@ -61075,8 +61076,8 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties - getMemoryProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties + getMemoryProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template @@ -61111,7 +61112,7 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT getMultisamplePropertiesEXT( + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -61142,8 +61143,8 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties - getProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties + getProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ template @@ -61177,7 +61178,7 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - uint32_t getQueueFamilyPerformanceQueryPassesKHR( + VULKAN_HPP_NODISCARD uint32_t getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -97515,10 +97516,11 @@ namespace VULKAN_HPP_NAMESPACE d.vkGetBufferMemoryRequirements( m_device, static_cast( buffer ), reinterpret_cast( pMemoryRequirements ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements - Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements + Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; @@ -97841,10 +97843,11 @@ namespace VULKAN_HPP_NAMESPACE remoteDeviceIndex, reinterpret_cast( pPeerMemoryFeatures ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags - Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags + Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT @@ -97873,10 +97876,11 @@ namespace VULKAN_HPP_NAMESPACE remoteDeviceIndex, reinterpret_cast( pPeerMemoryFeatures ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags - Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags + Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT @@ -97979,10 +97983,11 @@ namespace VULKAN_HPP_NAMESPACE d.vkGetDeviceMemoryCommitment( m_device, static_cast( memory ), reinterpret_cast( pCommittedMemoryInBytes ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize - Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize + Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes; @@ -98247,10 +98252,11 @@ namespace VULKAN_HPP_NAMESPACE d.vkGetImageMemoryRequirements( m_device, static_cast( image ), reinterpret_cast( pMemoryRequirements ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements - Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements + Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; @@ -98545,10 +98551,11 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( pSubresource ), reinterpret_cast( pLayout ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout - Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout + Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { @@ -99268,12 +99275,14 @@ namespace VULKAN_HPP_NAMESPACE static_cast( privateDataSlot ), pData ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE uint64_t Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, - uint64_t objectHandle, - VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, - Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t + Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, + uint64_t objectHandle, + VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { uint64_t data; d.vkGetPrivateDataEXT( m_device, @@ -99642,10 +99651,11 @@ namespace VULKAN_HPP_NAMESPACE d.vkGetRenderAreaGranularity( m_device, static_cast( renderPass ), reinterpret_cast( pGranularity ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D - Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D + Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::Extent2D granularity; @@ -103485,10 +103495,11 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( pExternalBufferInfo ), reinterpret_cast( pExternalBufferProperties ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties - PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties + PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; @@ -103511,10 +103522,11 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( pExternalBufferInfo ), reinterpret_cast( pExternalBufferProperties ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties - PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties + PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; @@ -103537,10 +103549,11 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( pExternalFenceInfo ), reinterpret_cast( pExternalFenceProperties ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties - PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties + PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; @@ -103563,10 +103576,11 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( pExternalFenceInfo ), reinterpret_cast( pExternalFenceProperties ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties - PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties + PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; @@ -103640,10 +103654,11 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( pExternalSemaphoreInfo ), reinterpret_cast( pExternalSemaphoreProperties ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties - PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties + PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; @@ -103666,10 +103681,12 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( pExternalSemaphoreInfo ), reinterpret_cast( pExternalSemaphoreProperties ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphorePropertiesKHR( - const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties + PhysicalDevice::getExternalSemaphorePropertiesKHR( + const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( @@ -103686,10 +103703,11 @@ namespace VULKAN_HPP_NAMESPACE { d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast( pFeatures ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures - PhysicalDevice::getFeatures( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures + PhysicalDevice::getFeatures( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features; d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast( &features ) ); @@ -103764,10 +103782,11 @@ namespace VULKAN_HPP_NAMESPACE d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast( format ), reinterpret_cast( pFormatProperties ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties - PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties + PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::FormatProperties formatProperties; @@ -103992,10 +104011,11 @@ namespace VULKAN_HPP_NAMESPACE d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast( pMemoryProperties ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties - PhysicalDevice::getMemoryProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties + PhysicalDevice::getMemoryProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties; d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, @@ -104081,10 +104101,11 @@ namespace VULKAN_HPP_NAMESPACE static_cast( samples ), reinterpret_cast( pMultisampleProperties ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT - PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT + PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties; @@ -104176,10 +104197,11 @@ namespace VULKAN_HPP_NAMESPACE { d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast( pProperties ) ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties - PhysicalDevice::getProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties + PhysicalDevice::getProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties; d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast( &properties ) ); @@ -104263,9 +104285,10 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( pPerformanceQueryCreateInfo ), pNumPasses ); } + #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { uint32_t numPasses;