Add support of attribute "type" for a enums in an extension, storing them as a constant. (#1668)

This commit is contained in:
Andreas Süßenbach 2023-09-28 13:23:31 +02:00 committed by GitHub
parent f3cdc24a13
commit 9aa679e5e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -13841,9 +13841,10 @@ void VulkanHppGenerator::readRequireEnum(
{ "extnumber", {} },
{ "offset", {} },
{ "protect", { "VK_ENABLE_BETA_EXTENSIONS" } },
{ "type", { "uint32_t" } },
{ "value", {} } } );
std::string api, bitpos, extends, name, offset, protect, value;
std::string api, bitpos, extends, name, offset, protect, type, value;
for ( auto const & attribute : attributes )
{
if ( attribute.first == "api" )
@ -13870,6 +13871,10 @@ void VulkanHppGenerator::readRequireEnum(
{
protect = attribute.second;
}
else if (attribute.first == "type")
{
type = attribute.second;
}
else if ( attribute.first == "value" )
{
value = attribute.second;
@ -13892,6 +13897,11 @@ void VulkanHppGenerator::readRequireEnum(
checkForError( m_types.insert( { name, TypeData{ TypeCategory::Constant, { requiredBy }, line } } ).second,
line,
"required enum <" + name + "> specified by value <" + value + "> is already specified" );
if (type == "uint32_t")
{
assert( !m_constants.contains( name ) );
m_constants[name] = { type, value, line };
}
}
}
}