| 381 | } |
| 382 | |
| 383 | std::string VideoHppGenerator::generateStructMembers( std::pair<std::string, StructureData> const & structData ) const |
| 384 | { |
| 385 | std::string members; |
| 386 | for ( auto const & member : structData.second.members ) |
| 387 | { |
| 388 | members += " "; |
| 389 | std::string type; |
| 390 | if ( !member.bitCount.empty() && member.type.name.starts_with( "StdVideo" ) ) |
| 391 | { |
| 392 | assert( member.type.prefix.empty() && member.type.postfix.empty() ); // never encounterd a different case |
| 393 | type = member.type.name; |
| 394 | } |
| 395 | else if ( member.arraySizes.empty() ) |
| 396 | { |
| 397 | type = member.type.compose( "StdVideo", "VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE" ); |
| 398 | } |
| 399 | else |
| 400 | { |
| 401 | assert( member.type.prefix.empty() && member.type.postfix.empty() ); |
| 402 | type = generateStandardArrayWrapper( member.type.compose( "" ), member.arraySizes ); |
| 403 | } |
| 404 | members += type + " " + member.name; |
| 405 | |
| 406 | // as we don't have any meaningful default initialization values, everything can be initialized by just '{}' ! |
| 407 | assert( member.arraySizes.empty() || member.bitCount.empty() ); |
| 408 | if ( !member.bitCount.empty() ) |
| 409 | { |
| 410 | members += " : " + member.bitCount; // except for bitfield members, where no default member initialization |
| 411 | // is supported (up to C++20) |
| 412 | } |
| 413 | else |
| 414 | { |
| 415 | members += " = "; |
| 416 | auto enumIt = m_enums.find( member.type.name ); |
| 417 | if ( member.arraySizes.empty() && ( enumIt != m_enums.end() ) && member.type.postfix.empty() ) |
| 418 | { |
| 419 | assert( member.type.prefix.empty() && member.arraySizes.empty() && !enumIt->second.values.empty() ); |
| 420 | |
| 421 | std::string prefix = toUpperCase( member.type.name ) + "_"; |
| 422 | std::string valueName = "e" + toCamelCase( stripPrefix( enumIt->second.values.front().name, prefix ), true ); |
| 423 | |
| 424 | members += type + "::" + valueName; |
| 425 | } |
| 426 | else |
| 427 | { |
| 428 | members += "{}"; |
| 429 | } |
| 430 | } |
| 431 | members += ";\n"; |
| 432 | } |
| 433 | return members; |
| 434 | } |
| 435 | |
| 436 | std::string VideoHppGenerator::generateStructs() const |
| 437 | { |
nothing calls this directly
no test coverage detected