| 1430 | } |
| 1431 | |
| 1432 | std::vector<std::string> VulkanHppGenerator::determineDataTypes( std::vector<VulkanHppGenerator::ParamData> const & params, |
| 1433 | std::map<size_t, VectorParamData> const & vectorParams, |
| 1434 | std::vector<size_t> const & returnParams, |
| 1435 | std::set<size_t> const & templatedParams, |
| 1436 | bool raii ) const |
| 1437 | { |
| 1438 | std::vector<std::string> dataTypes; |
| 1439 | for ( auto rp : returnParams ) |
| 1440 | { |
| 1441 | auto vectorParamIt = vectorParams.find( rp ); |
| 1442 | if ( templatedParams.contains( rp ) ) |
| 1443 | { |
| 1444 | assert( ( vectorParamIt == vectorParams.end() ) || !vectorParamIt->second.byStructure ); |
| 1445 | if ( ( vectorParamIt != vectorParams.end() ) && ( params[rp].type.name == "void" ) && |
| 1446 | std::ranges::any_of( returnParams, [&vectorParamIt]( size_t rp ) noexcept { return rp == vectorParamIt->first; } ) && |
| 1447 | std::ranges::any_of( returnParams, [&vectorParamIt]( size_t rp ) noexcept { return rp == vectorParamIt->second.lenParam; } ) ) |
| 1448 | { |
| 1449 | // sized data of type void is returned as a std::array<uint8_t> |
| 1450 | dataTypes.push_back( "uint8_t" ); |
| 1451 | } |
| 1452 | else |
| 1453 | { |
| 1454 | // for all other (templated) return parameters, the dataType is the name of the parameter with prefix "p" removed and "Type" appended |
| 1455 | dataTypes.push_back( ( stripPrefix( params[rp].name, "p" ) + "Type" ) ); |
| 1456 | } |
| 1457 | } |
| 1458 | else if ( ( vectorParamIt != vectorParams.end() ) && vectorParamIt->second.byStructure ) |
| 1459 | { |
| 1460 | // for non-templated vector parameters, we have to distinguish between those specified by a structure and those specified by a simple length parameter |
| 1461 | dataTypes.push_back( |
| 1462 | trimEnd( stripPostfix( vectorMemberByStructure( params[rp].type.name ).type.compose( "Vk", raii ? "VULKAN_HPP_NAMESPACE" : "" ), "*" ) ) ); |
| 1463 | } |
| 1464 | else |
| 1465 | { |
| 1466 | dataTypes.push_back( |
| 1467 | trimEnd( stripPostfix( params[rp].type.compose( "Vk", ( raii && m_handles.contains( params[rp].type.name ) ) ? "VULKAN_HPP_NAMESPACE" : "" ), "*" ) ) ); |
| 1468 | } |
| 1469 | } |
| 1470 | return dataTypes; |
| 1471 | } |
| 1472 | |
| 1473 | size_t VulkanHppGenerator::determineDefaultStartIndex( std::vector<ParamData> const & params, std::set<size_t> const & skippedParams ) const |
| 1474 | { |
nothing calls this directly
no test coverage detected