Align Universal renderer ownership with Unity SRP

This commit is contained in:
2026-04-26 22:43:22 +08:00
parent d4e0276b96
commit de64d9a698
11 changed files with 385 additions and 506 deletions

View File

@@ -1588,30 +1588,6 @@ namespace Gameplay
}
}
internal sealed class ManagedRendererInvalidationProbePipeline
: RendererBackedRenderPipeline
{
public ManagedRendererInvalidationProbePipeline(
RendererBackedRenderPipelineAsset asset)
: base(asset)
{
ManagedRendererInvalidationProbeState
.CreatePipelineCallCount++;
}
protected override void Dispose(
bool disposing)
{
if (disposing)
{
ManagedRendererInvalidationProbeState
.DisposePipelineCallCount++;
}
base.Dispose(disposing);
}
}
internal sealed class ManagedRendererInvalidationProbeFeature
: ScriptableRendererFeature
{
@@ -2146,6 +2122,35 @@ namespace Gameplay
}
}
internal sealed class ManagedCameraOverrideRendererSelectionProbeRenderer
: ScriptableRenderer
{
public ManagedCameraOverrideRendererSelectionProbeRenderer()
{
AddFeature(
new FullscreenFeature(
new FullscreenPass(
RenderPassEvent.BeforeRenderingPostProcessing,
BuiltinShaderPaths.ColorScalePostProcess,
new Vector4(1.05f, 1.0f, 0.95f, 1.0f),
"ManagedCameraOverridePostProcess")));
}
}
internal sealed class ManagedCameraOverrideRendererSelectionProbeRendererData
: ProbeRendererData
{
public ManagedCameraOverrideRendererSelectionProbeRendererData()
: base(false)
{
}
protected override ScriptableRenderer CreateProbeRenderer()
{
return new ManagedCameraOverrideRendererSelectionProbeRenderer();
}
}
public sealed class ManagedCameraOverrideRendererSelectionProbeAsset
: UniversalRenderPipelineAsset
{
@@ -2157,16 +2162,10 @@ namespace Gameplay
ProbeScriptableObjectFactory
.Create<ManagedRenderPipelineProbeRendererData>(),
ProbeScriptableObjectFactory
.Create<ManagedRenderPipelineProbeRendererData>());
.Create<ManagedCameraOverrideRendererSelectionProbeRendererData>());
defaultRendererIndex = 0;
}
protected override ScriptableRenderPipeline
CreateRendererBackedPipeline()
{
return new ManagedCameraOverrideRendererSelectionProbePipeline();
}
protected override void ConfigureCameraFramePlan(
ScriptableRenderPipelinePlanningContext context)
{
@@ -2215,11 +2214,11 @@ namespace Gameplay
m_rendererData);
}
protected override ScriptableRenderPipeline
CreateRendererBackedPipeline()
protected override ScriptableRenderPipeline CreatePipeline()
{
return new ManagedRendererInvalidationProbePipeline(
this);
ManagedRendererInvalidationProbeState
.CreatePipelineCallCount++;
return base.CreatePipeline();
}
public void InvalidateDefaultRendererForTest()
@@ -2565,6 +2564,34 @@ namespace Gameplay
}
}
internal sealed class ManagedUnknownBackendRenderPipelineProbe
: ScriptableRenderPipeline
{
protected override bool SupportsStageRenderGraph(
CameraFrameStage stage)
{
return stage == CameraFrameStage.MainScene;
}
protected override bool RecordStageRenderGraph(
ScriptableRenderContext context)
{
return context != null &&
context.DrawOpaqueRenderers() &&
context.DrawSkybox() &&
context.DrawTransparentRenderers();
}
}
public sealed class ManagedUnknownBackendRenderPipelineProbeAsset
: ScriptableRenderPipelineAsset
{
protected override ScriptableRenderPipeline CreatePipeline()
{
return new ManagedUnknownBackendRenderPipelineProbe();
}
}
internal sealed class ManagedMainSceneRasterPassProbePipeline
: ScriptableRenderPipeline
{
@@ -2598,34 +2625,6 @@ namespace Gameplay
}
}
internal sealed class ManagedCameraOverrideRendererSelectionProbePipeline
: ScriptableRenderPipeline
{
protected override bool SupportsStageRenderGraphContextual(
CameraFrameStage stage,
int rendererIndex)
{
return stage == CameraFrameStage.PostProcess &&
rendererIndex == 1;
}
protected override bool RecordStageRenderGraph(
ScriptableRenderContext context)
{
return context != null &&
context.stage == CameraFrameStage.PostProcess &&
context.rendererIndex == 1 &&
context
.AddRasterPass(
"ManagedCameraOverridePostProcess")
.SetColorAttachment(
context.primaryColorTarget)
.SetColorScaleFullscreenExecution(
new Vector4(1.05f, 1.0f, 0.95f, 1.0f))
.Commit();
}
}
internal sealed class ManagedRenderPipelineProbe
: ProbeSceneRenderer
{