Files
XCEngine/docs/api/XCEngine/Rendering/Builtin/BuiltinPassMetadataUtils/BuiltinPassMetadataUtils.md

2.3 KiB
Raw Blame History

BuiltinPassMetadataUtils

命名空间: XCEngine::Rendering

类型: utility header

头文件: XCEngine/Rendering/Builtin/BuiltinPassMetadataUtils.h

描述: builtin pass metadata 与 shader 资源语义解析辅助头,负责统一 pass 名称匹配、显式 metadata 判断、资源语义映射和调试描述字符串。

当前公开能力

这份头文件主要提供三类 helper

  1. pass 名称标准化与匹配
  2. shader / shader pass 是否显式声明 builtin metadata 的判断
  3. shader resources 语义映射与描述字符串生成

关键 helper

  • NormalizeBuiltinPassMetadataValue(...) 统一 trim + lower-case 规则。
  • IsForwardPassName(...) / IsUnlitPassName(...) / IsDepthOnlyPassName(...) / IsShadowCasterPassName(...) / IsObjectIdPassName(...) 把历史命名和 builtin 路径名称统一映射到标准 pass 语义。
  • MatchesBuiltinPassName(...) 把字符串名称和 BuiltinMaterialPass 枚举做一层收口匹配。
  • ShaderPassHasExplicitBuiltinMetadata(...) / ShaderHasExplicitBuiltinMetadata(...) 判断 shader 侧是否已经显式给出 pass 名或 LightMode tag。
  • ShaderPassMatchesBuiltinPass(...) 用当前规范判断一个 shader pass 是否属于某个 builtin pass。
  • ResolveBuiltinPassResourceSemantic(...)ShaderResourceBindingDescsemanticname 收口成 BuiltinPassResourceSemantic
  • DescribeShaderResourceBinding(...) / DescribeShaderResourceBindings(...) 生成带 name / semantic / type / set / binding 的调试描述。
  • IsBuiltinPassResourceTypeCompatible(...) 校验 builtin 资源语义与 ShaderResourceType 是否兼容。

当前实现边界

  • 这里只负责“解释元数据”,不负责生成 descriptor-set layout。
  • Unknown 语义不会在这里报错;真正的失败由后续 binding-plan 或 layout 构建阶段决定。
  • ShaderHasExplicitBuiltinMetadata(...) 的判断基于 shader pass 名称与 LightMode tag不会解析更复杂的自定义 tag 体系。

相关文档