2.3 KiB
2.3 KiB
BuiltinPassMetadataUtils
命名空间: XCEngine::Rendering
类型: utility header
头文件: XCEngine/Rendering/Builtin/BuiltinPassMetadataUtils.h
描述: builtin pass metadata 与 shader 资源语义解析辅助头,负责统一 pass 名称匹配、显式 metadata 判断、资源语义映射和调试描述字符串。
当前公开能力
这份头文件主要提供三类 helper:
- pass 名称标准化与匹配
- shader / shader pass 是否显式声明 builtin metadata 的判断
- shader
resources语义映射与描述字符串生成
关键 helper
NormalizeBuiltinPassMetadataValue(...)统一 trim + lower-case 规则。IsForwardPassName(...)/IsUnlitPassName(...)/IsDepthOnlyPassName(...)/IsShadowCasterPassName(...)/IsObjectIdPassName(...)把历史命名和 builtin 路径名称统一映射到标准 pass 语义。MatchesBuiltinPassName(...)把字符串名称和BuiltinMaterialPass枚举做一层收口匹配。ShaderPassHasExplicitBuiltinMetadata(...)/ShaderHasExplicitBuiltinMetadata(...)判断 shader 侧是否已经显式给出 pass 名或LightModetag。ShaderPassMatchesBuiltinPass(...)用当前规范判断一个 shader pass 是否属于某个 builtin pass。ResolveBuiltinPassResourceSemantic(...)把ShaderResourceBindingDesc的semantic或name收口成BuiltinPassResourceSemantic。DescribeShaderResourceBinding(...)/DescribeShaderResourceBindings(...)生成带name / semantic / type / set / binding的调试描述。IsBuiltinPassResourceTypeCompatible(...)校验 builtin 资源语义与ShaderResourceType是否兼容。
当前实现边界
- 这里只负责“解释元数据”,不负责生成 descriptor-set layout。
Unknown语义不会在这里报错;真正的失败由后续 binding-plan 或 layout 构建阶段决定。ShaderHasExplicitBuiltinMetadata(...)的判断基于 shader pass 名称与LightModetag,不会解析更复杂的自定义 tag 体系。