| 1698 | } |
| 1699 | |
| 1700 | std::string VulkanHppGenerator::determineSubStruct( std::pair<std::string, StructData> const & structure ) const |
| 1701 | { |
| 1702 | if ( structure.second.members.front().name != "sType" ) |
| 1703 | { |
| 1704 | // check if sd is a substruct of structure |
| 1705 | auto isSubStruct = [&structure]( std::pair<std::string, StructData> const & sd ) noexcept |
| 1706 | { |
| 1707 | // member-by-member comparison of type and name |
| 1708 | auto memberIt = structure.second.members.begin(); |
| 1709 | auto isMember = [&memberIt]( MemberData const & md ) noexcept |
| 1710 | { |
| 1711 | if ( ( md.type == memberIt->type ) && ( md.name == memberIt->name ) ) |
| 1712 | { |
| 1713 | ++memberIt; |
| 1714 | return true; |
| 1715 | } |
| 1716 | return false; |
| 1717 | }; |
| 1718 | |
| 1719 | return ( sd.second.xmlLine < structure.second.xmlLine ) && ( sd.second.members.size() < structure.second.members.size() ) && |
| 1720 | std::ranges::all_of( sd.second.members, isMember ); |
| 1721 | }; |
| 1722 | |
| 1723 | // look for a struct in m_structs that starts identically to structure |
| 1724 | auto structIt = std::ranges::find_if( m_structs, isSubStruct ); |
| 1725 | return ( structIt == m_structs.end() ) ? "" : structIt->first; |
| 1726 | } |
| 1727 | return ""; |
| 1728 | } |
| 1729 | |
| 1730 | std::map<size_t, VulkanHppGenerator::VectorParamData> VulkanHppGenerator::determineVectorParams( std::vector<ParamData> const & params ) const |
| 1731 | { |
nothing calls this directly
no outgoing calls
no test coverage detected