| 2026 | } |
| 2027 | |
| 2028 | VulkanHppGenerator::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() ) |
nothing calls this directly
no test coverage detected