refactor(srp): align urp renderer feature ownership model

This commit is contained in:
2026-04-21 20:17:08 +08:00
parent 0d0919b276
commit e527ca4e3a
6 changed files with 201 additions and 76 deletions

View File

@@ -521,19 +521,20 @@ namespace Gameplay
internal sealed class ManagedFeaturePassOrderProbeRendererData
: ProbeRendererData
{
protected override ScriptableRenderer CreateProbeRenderer()
public ManagedFeaturePassOrderProbeRendererData()
: base(false)
{
return new ManagedFeaturePassOrderProbeRenderer();
}
protected override ScriptableRendererFeature[] CreateRendererFeatures()
{
return new ScriptableRendererFeature[]
rendererFeatures = new ScriptableRendererFeature[]
{
new ManagedFeaturePassOrderCustomFeature("CustomA"),
new ManagedFeaturePassOrderCustomFeature("CustomB")
};
}
protected override ScriptableRenderer CreateProbeRenderer()
{
return new ManagedFeaturePassOrderProbeRenderer();
}
}
internal sealed class CameraDataObservationPass
@@ -978,6 +979,16 @@ namespace Gameplay
internal abstract class ProbeRendererData
: UniversalRendererData
{
protected ProbeRendererData()
{
}
protected ProbeRendererData(
bool initializeDefaultRendererFeatures)
: base(initializeDefaultRendererFeatures)
{
}
protected sealed override ScriptableRenderer CreateRenderer()
{
return CreateProbeRenderer();
@@ -1111,6 +1122,16 @@ namespace Gameplay
internal sealed class ManagedRendererInvalidationProbeRendererData
: ProbeRendererData
{
public ManagedRendererInvalidationProbeRendererData()
: base(false)
{
ManagedRendererInvalidationProbeState.CreateFeatureCallCount++;
rendererFeatures = new ScriptableRendererFeature[]
{
new ManagedRendererInvalidationProbeFeature()
};
}
protected override ScriptableRenderer CreateProbeRenderer()
{
ManagedRendererInvalidationProbeState.CreateRendererCallCount++;
@@ -1124,15 +1145,6 @@ namespace Gameplay
base.SetupRenderer(renderer);
}
protected override ScriptableRendererFeature[] CreateRendererFeatures()
{
ManagedRendererInvalidationProbeState.CreateFeatureCallCount++;
return new ScriptableRendererFeature[]
{
new ManagedRendererInvalidationProbeFeature()
};
}
public void InvalidateForTest()
{
ManagedRendererInvalidationProbeState.InvalidateRendererCallCount++;
@@ -1187,8 +1199,18 @@ namespace Gameplay
internal sealed class ManagedPersistentFeatureProbeRendererData
: ProbeRendererData
{
private readonly ManagedPersistentFeatureProbeRendererFeature m_feature =
new ManagedPersistentFeatureProbeRendererFeature();
private readonly ManagedPersistentFeatureProbeRendererFeature m_feature;
public ManagedPersistentFeatureProbeRendererData()
: base(false)
{
m_feature =
new ManagedPersistentFeatureProbeRendererFeature();
rendererFeatures = new ScriptableRendererFeature[]
{
m_feature
};
}
protected override ScriptableRenderer CreateProbeRenderer()
{
@@ -1197,14 +1219,6 @@ namespace Gameplay
return new ManagedPersistentFeatureProbeRenderer();
}
protected override ScriptableRendererFeature[] CreateRendererFeatures()
{
return new ScriptableRendererFeature[]
{
m_feature
};
}
public void InvalidateForTest()
{
ManagedPersistentFeatureProbeState
@@ -1243,18 +1257,19 @@ namespace Gameplay
internal sealed class ManagedFeaturePlannedPostProcessRendererData
: ProbeRendererData
{
protected override ScriptableRenderer CreateProbeRenderer()
public ManagedFeaturePlannedPostProcessRendererData()
: base(false)
{
return new ProbeSceneRenderer();
}
protected override ScriptableRendererFeature[] CreateRendererFeatures()
{
return new ScriptableRendererFeature[]
rendererFeatures = new ScriptableRendererFeature[]
{
new ManagedFeaturePlannedPostProcessRendererFeature()
};
}
protected override ScriptableRenderer CreateProbeRenderer()
{
return new ProbeSceneRenderer();
}
}
internal sealed class ManagedRenderContextCameraDataProbeRendererData
@@ -1335,6 +1350,16 @@ namespace Gameplay
internal sealed class ManagedLifecycleProbeRendererData
: ProbeRendererData
{
public ManagedLifecycleProbeRendererData()
: base(false)
{
ManagedLifecycleProbeState.CreateFeatureCallCount++;
rendererFeatures = new ScriptableRendererFeature[]
{
new ManagedLifecycleProbeRendererFeature()
};
}
protected override ScriptableRenderer CreateProbeRenderer()
{
ManagedLifecycleProbeState.CreateRendererCallCount++;
@@ -1348,15 +1373,6 @@ namespace Gameplay
base.SetupRenderer(renderer);
}
protected override ScriptableRendererFeature[] CreateRendererFeatures()
{
ManagedLifecycleProbeState.CreateFeatureCallCount++;
return new ScriptableRendererFeature[]
{
new ManagedLifecycleProbeRendererFeature()
};
}
protected override void ReleaseRuntimeResources()
{
ManagedLifecycleProbeState.ReleaseRendererDataRuntimeResourcesCallCount++;