feat(srp): add shader pass selection for scene draws

- let DrawingSettings carry an optional shaderPassName across managed and native scene draw APIs
- allow RenderObjectsRendererFeature to author explicit ForwardLit or Unlit scene draws
- exercise the new scene draw pass selection seam in the project render pipeline probe
This commit is contained in:
2026-04-20 22:58:08 +08:00
parent 0319680954
commit cd6f9aa4cf
9 changed files with 134 additions and 17 deletions

View File

@@ -4592,7 +4592,8 @@ InternalCall_Rendering_ScriptableRenderContext_DrawRenderersByDesc(
uint64_t nativeHandle,
int32_t scenePhase,
ManagedRendererListDescData* rendererListDescData,
MonoString* overrideMaterialPath) {
MonoString* overrideMaterialPath,
MonoString* shaderPassName) {
ManagedScriptableRenderContextState* const state =
FindManagedScriptableRenderContextState(nativeHandle);
if (state == nullptr ||
@@ -4626,6 +4627,13 @@ InternalCall_Rendering_ScriptableRenderContext_DrawRenderersByDesc(
}
}
const std::string shaderPassNameUtf8 =
MonoStringToUtf8(shaderPassName);
if (!shaderPassNameUtf8.empty()) {
drawSettings.shaderPassName =
Containers::String(shaderPassNameUtf8.c_str());
}
return state->sceneRecorder->RecordSceneDrawSettings(
drawSettings)
? 1