mirror of
https://github.com/KhronosGroup/Vulkan-Hpp.git
synced 2025-09-09 11:58:06 -04:00
Filter out multiply spec'ed handles for UniqueHandles types. (#2188)
This commit is contained in:
parent
5bac8fc8fc
commit
8ee3f2fabd
@ -12820,7 +12820,9 @@ ${aliasHandle})";
|
||||
return "";
|
||||
}
|
||||
|
||||
std::string VulkanHppGenerator::generateUniqueHandle( std::vector<RequireData> const & requireData, std::string const & title ) const
|
||||
std::string VulkanHppGenerator::generateUniqueHandle( std::vector<RequireData> const & requireData,
|
||||
std::string const & title,
|
||||
std::set<std::string> & listedHandles ) const
|
||||
{
|
||||
std::string str;
|
||||
for ( auto const & require : requireData )
|
||||
@ -12828,7 +12830,7 @@ std::string VulkanHppGenerator::generateUniqueHandle( std::vector<RequireData> c
|
||||
for ( auto const & type : require.types )
|
||||
{
|
||||
auto handleIt = m_handles.find( type.name );
|
||||
if ( handleIt != m_handles.end() )
|
||||
if ( ( handleIt != m_handles.end() ) && listedHandles.insert( handleIt->first ).second )
|
||||
{
|
||||
str += generateUniqueHandle( *handleIt );
|
||||
}
|
||||
@ -12850,13 +12852,14 @@ ${uniqueHandles}
|
||||
)";
|
||||
|
||||
std::string uniqueHandles;
|
||||
std::set<std::string> listedHandles;
|
||||
for ( auto const & feature : m_features )
|
||||
{
|
||||
uniqueHandles += generateUniqueHandle( feature.requireData, feature.name );
|
||||
uniqueHandles += generateUniqueHandle( feature.requireData, feature.name, listedHandles );
|
||||
}
|
||||
for ( auto const & extension : m_extensions )
|
||||
{
|
||||
uniqueHandles += generateUniqueHandle( extension.requireData, extension.name );
|
||||
uniqueHandles += generateUniqueHandle( extension.requireData, extension.name, listedHandles );
|
||||
}
|
||||
if ( uniqueHandles.back() == '\n' )
|
||||
{
|
||||
|
@ -1062,7 +1062,7 @@ private:
|
||||
CommandFlavourFlags flavourFlags ) const;
|
||||
std::string generateUnion( std::pair<std::string, StructureData> const & structure ) const;
|
||||
std::string generateUniqueHandle( std::pair<std::string, HandleData> const & handleData ) const;
|
||||
std::string generateUniqueHandle( std::vector<RequireData> const & requireData, std::string const & title ) const;
|
||||
std::string generateUniqueHandle( std::vector<RequireData> const & requireData, std::string const & title, std::set<std::string> & listedHandles ) const;
|
||||
std::string generateUniqueHandles() const;
|
||||
std::string generateSharedHandle( std::pair<std::string, HandleData> const & handleData ) const;
|
||||
std::string generateSharedHandle( std::vector<RequireData> const & requireData, std::string const & title ) const;
|
||||
|
Loading…
x
Reference in New Issue
Block a user