MCPcopy Create free account
hub / github.com/KhronosGroup/Vulkan-Hpp / needsVectorSizeCheck

Method needsVectorSizeCheck

generator/VulkanHppGenerator.cpp:13017–13041  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13015}
13016
13017std::pair<bool, std::map<size_t, std::vector<size_t>>> VulkanHppGenerator::needsVectorSizeCheck( std::vector<ParamData> const & params,
13018 std::map<size_t, VectorParamData> const & vectorParams,
13019 std::vector<size_t> const & returnParams,
13020 std::set<size_t> const & singularParams,
13021 std::set<size_t> const & skippedParams ) const
13022{
13023 std::map<size_t, std::vector<size_t>> countToVectorMap;
13024 for ( auto const & vpi : vectorParams )
13025 {
13026 if ( ( vpi.second.lenParam != INVALID_INDEX ) && std::ranges::none_of( returnParams, [&vpi]( size_t rp ) { return rp == vpi.first; } ) &&
13027 ( !singularParams.contains( vpi.second.lenParam ) || isLenByStructMember( params[vpi.first].lenExpression, params[vpi.second.lenParam] ) ) )
13028 {
13029 countToVectorMap[vpi.second.lenParam].push_back( vpi.first );
13030 }
13031 }
13032 return { std::ranges::any_of( countToVectorMap,
13033 [this, &params, &skippedParams]( auto const & cvm )
13034 {
13035 return ( 1 < cvm.second.size() ) || isLenByStructMember( params[cvm.second[0]].lenExpression, params[cvm.first] ) ||
13036 std::ranges::none_of( params[cvm.second[0]].lenParams,
13037 [&skippedParams]( std::pair<std::string, size_t> const & lenParam )
13038 { return skippedParams.contains( lenParam.second ); } );
13039 } ),
13040 countToVectorMap };
13041}
13042
13043std::string VulkanHppGenerator::readComment( tinyxml2::XMLElement const * element ) const
13044{

Callers

nothing calls this directly

Calls 1

isLenByStructMemberFunction · 0.85

Tested by

no test coverage detected