Replace check on (deprecated) VkDebugReportObjectTypeEXT enum values with check on VkObjectType values.

This commit is contained in:
asuessenbach 2020-11-10 10:26:05 +01:00
parent 009e56beb1
commit eb9370922b

View File

@ -3404,7 +3404,7 @@ std::string VulkanHppGenerator::constructCallArgumentsEnhanced( std::string cons
assert( param.arraySizes.empty() ); assert( param.arraySizes.empty() );
if ( ( singularParamIndex != INVALID_INDEX ) && ( params[singularParamIndex].len == param.name ) ) if ( ( singularParamIndex != INVALID_INDEX ) && ( params[singularParamIndex].len == param.name ) )
{ {
assert( ( param.type.type == "size_t") || ( param.type.type == "uint32_t" ) ); assert( ( param.type.type == "size_t" ) || ( param.type.type == "uint32_t" ) );
if ( params[singularParamIndex].type.type == "void" ) if ( params[singularParamIndex].type.type == "void" )
{ {
arguments += "sizeof( T )"; arguments += "sizeof( T )";
@ -3602,7 +3602,8 @@ std::string VulkanHppGenerator::constructCommandResultEnumerate( std::string con
{ "const", commandData.handle.empty() ? "" : " const" }, { "const", commandData.handle.empty() ? "" : " const" },
{ "counterName", startLowerCase( stripPrefix( commandData.params[vectorParamIndices.second].name, "p" ) ) }, { "counterName", startLowerCase( stripPrefix( commandData.params[vectorParamIndices.second].name, "p" ) ) },
{ "counterType", commandData.params[vectorParamIndices.second].type.type }, { "counterType", commandData.params[vectorParamIndices.second].type.type },
{ "firstCallArguments", constructCallArgumentsEnhanced( commandData.handle, commandData.params, true, INVALID_INDEX ) }, { "firstCallArguments",
constructCallArgumentsEnhanced( commandData.handle, commandData.params, true, INVALID_INDEX ) },
{ "nodiscard", nodiscard }, { "nodiscard", nodiscard },
{ "secondCallArguments", { "secondCallArguments",
constructCallArgumentsEnhanced( commandData.handle, commandData.params, false, INVALID_INDEX ) }, constructCallArgumentsEnhanced( commandData.handle, commandData.params, false, INVALID_INDEX ) },
@ -4466,7 +4467,8 @@ std::string VulkanHppGenerator::constructCommandResultGetVectorOfHandlesSingular
return replaceWithMap( return replaceWithMap(
functionTemplate, functionTemplate,
{ { "argumentList", argumentList }, { { "argumentList", argumentList },
{ "callArguments", constructCallArgumentsEnhanced( commandData.handle, commandData.params, false, returnParamIndex ) }, { "callArguments",
constructCallArgumentsEnhanced( commandData.handle, commandData.params, false, returnParamIndex ) },
{ "className", commandData.handle.empty() ? "" : stripPrefix( commandData.handle, "Vk" ) }, { "className", commandData.handle.empty() ? "" : stripPrefix( commandData.handle, "Vk" ) },
{ "classSeparator", commandData.handle.empty() ? "" : "::" }, { "classSeparator", commandData.handle.empty() ? "" : "::" },
{ "commandName", commandName }, { "commandName", commandName },
@ -4650,7 +4652,8 @@ std::string VulkanHppGenerator::constructCommandResultGetVectorOfHandlesUniqueSi
return replaceWithMap( return replaceWithMap(
functionTemplate, functionTemplate,
{ { "argumentList", argumentList }, { { "argumentList", argumentList },
{ "callArguments", constructCallArgumentsEnhanced( commandData.handle, commandData.params, false, returnParamIndex ) }, { "callArguments",
constructCallArgumentsEnhanced( commandData.handle, commandData.params, false, returnParamIndex ) },
{ "className", commandData.handle.empty() ? "" : stripPrefix( commandData.handle, "Vk" ) }, { "className", commandData.handle.empty() ? "" : stripPrefix( commandData.handle, "Vk" ) },
{ "classSeparator", commandData.handle.empty() ? "" : "::" }, { "classSeparator", commandData.handle.empty() ? "" : "::" },
{ "commandName", commandName }, { "commandName", commandName },
@ -4710,7 +4713,8 @@ std::string
return replaceWithMap( return replaceWithMap(
functionTemplate, functionTemplate,
{ { "argumentList", argumentList }, { { "argumentList", argumentList },
{ "callArguments", constructCallArgumentsEnhanced( commandData.handle, commandData.params, false, returnParamIndex ) }, { "callArguments",
constructCallArgumentsEnhanced( commandData.handle, commandData.params, false, returnParamIndex ) },
{ "className", commandData.handle.empty() ? "" : stripPrefix( commandData.handle, "Vk" ) }, { "className", commandData.handle.empty() ? "" : stripPrefix( commandData.handle, "Vk" ) },
{ "classSeparator", commandData.handle.empty() ? "" : "::" }, { "classSeparator", commandData.handle.empty() ? "" : "::" },
{ "commandName", commandName }, { "commandName", commandName },
@ -6438,38 +6442,36 @@ void VulkanHppGenerator::checkCorrectness()
} }
// handle checks // handle checks
auto debugReportObjectTypeIt = m_enums.find( "VkDebugReportObjectTypeEXT" ); auto objectTypeIt = m_enums.find( "VkObjectType" );
assert( debugReportObjectTypeIt != m_enums.end() ); assert( objectTypeIt != m_enums.end() );
for ( auto const & handle : m_handles ) for ( auto const & handle : m_handles )
{ {
for ( auto const & parent : handle.second.parents ) for ( auto const & parent : handle.second.parents )
{ {
check( m_handles.find( parent ) != m_handles.end(), check( m_handles.find( parent ) != m_handles.end(),
handle.second.xmlLine, handle.second.xmlLine,
"handle with unknown parent <" + parent + ">" ); "handle <" + handle.first + "> with unknown parent <" + parent + ">" );
} }
if ( !handle.first.empty() ) if ( !handle.first.empty() )
{ {
std::string debugReportObjectType = "e" + stripPrefix( handle.first, "Vk" ); std::string objectType = "e" + stripPrefix( handle.first, "Vk" );
auto valueIt = std::find_if( auto valueIt = std::find_if( objectTypeIt->second.values.begin(),
debugReportObjectTypeIt->second.values.begin(), objectTypeIt->second.values.end(),
debugReportObjectTypeIt->second.values.end(), [&objectType]( EnumValueData const & evd ) { return evd.vkValue == objectType; } );
[&debugReportObjectType]( EnumValueData const & evd ) { return evd.vkValue == debugReportObjectType; } ); check( valueIt != objectTypeIt->second.values.end(),
warn( valueIt != debugReportObjectTypeIt->second.values.end(),
handle.second.xmlLine, handle.second.xmlLine,
"Handle <" + handle.first + "> specified without a corresponding VkDebugReportObjectTypeEXT enum value" ); "handle <" + handle.first + "> specified without corresponding VkObjectType enum value" );
} }
} }
for ( auto const & debugReportObjectTyeValue : debugReportObjectTypeIt->second.values ) for ( auto const & objectTypeValue : objectTypeIt->second.values )
{ {
if ( debugReportObjectTyeValue.vkValue != "eUnknown" ) if ( objectTypeValue.vkValue != "eUnknown" )
{ {
std::string handleName = "Vk" + stripPrefix( debugReportObjectTyeValue.vkValue, "e" ); std::string handleName = "Vk" + stripPrefix( objectTypeValue.vkValue, "e" );
check( m_handles.find( handleName ) != m_handles.end(), check( m_handles.find( handleName ) != m_handles.end(),
debugReportObjectTyeValue.xmlLine, objectTypeValue.xmlLine,
"DebugReportObjectTypeEXT value <" + debugReportObjectTyeValue.vulkanValue + "VkObjectType value <" + objectTypeValue.vulkanValue + "> without corresponding handle" );
"> without corresponding handle" );
} }
} }