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

Method featureToFeatureData

generator/VulkanHppGenerator.cpp:2028–2126  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2026}
2027
2028VulkanHppGenerator::FeatureData VulkanHppGenerator::featureToFeatureData( Feature const & feature, bool supported )
2029{
2030 auto structureTypeIt = m_enums.find( "VkStructureType" );
2031 assert( structureTypeIt != m_enums.end() );
2032
2033 FeatureData featureData;
2034 featureData.api = feature.api;
2035 featureData.name = feature.name;
2036 featureData.number = feature.number;
2037 featureData.isInternal = ( feature.apiType == "internal" );
2038 featureData.depends = feature.depends;
2039 for ( auto const & deprecate : feature.deprecates )
2040 {
2041 DeprecateData deprecateData;
2042 deprecateData.explanationLink = deprecate.explanationLink;
2043 for ( auto const & deprecateCommand : deprecate.commands )
2044 {
2045 deprecateData.commands.push_back( { deprecateCommand.name, deprecateCommand.supersededBy } );
2046 }
2047 for ( auto const & deprecateType : deprecate.types )
2048 {
2049 deprecateData.types.push_back( { deprecateType.name, deprecateType.supersededBy } );
2050 }
2051 featureData.deprecateData.push_back( std::move( deprecateData ) );
2052 }
2053 for ( auto const & remove : feature.removes )
2054 {
2055 RemoveData removeData;
2056 for ( auto const & removeCommand : remove.commands )
2057 {
2058 removeData.commands.push_back( removeCommand.name );
2059 }
2060 for ( auto const & removeEnum : remove.enums )
2061 {
2062 removeData.enums.push_back( removeEnum.name );
2063 }
2064 for ( auto const & removeFeature : remove.features )
2065 {
2066 removeData.features.push_back( { { removeFeature.name }, removeFeature.structure, removeFeature.xmlLine } );
2067 }
2068 for ( auto const & removeType : remove.types )
2069 {
2070 removeData.types.push_back( removeType.name );
2071 }
2072 removeData.xmlLine = remove.xmlLine;
2073 featureData.removeData.push_back( std::move( removeData ) );
2074 }
2075 for ( auto const & require : feature.require )
2076 {
2077 RequireData requireData;
2078 requireData.depends = concatenate( require.depends );
2079 for ( auto const & requireCommand : require.commands )
2080 {
2081 requireData.commands.push_back( { requireCommand.name, requireCommand.xmlLine } );
2082 }
2083 for ( auto const & requireEnum : require.enums )
2084 {
2085 if ( requireEnum.extends.empty() )

Callers

nothing calls this directly

Calls 3

concatenateFunction · 0.85
findByNameFunction · 0.85
findByNameOrAliasFunction · 0.85

Tested by

no test coverage detected