refactor(srp): narrow renderer-data backend seam

This commit is contained in:
2026-04-21 14:26:45 +08:00
parent e0c9707aaf
commit 4883413d48
5 changed files with 172 additions and 57 deletions

View File

@@ -519,9 +519,9 @@ namespace Gameplay
}
internal sealed class ManagedFeaturePassOrderProbeRendererData
: ScriptableRendererData
: ProbeRendererData
{
protected override ScriptableRenderer CreateRenderer()
protected override ScriptableRenderer CreateProbeRenderer()
{
return new ManagedFeaturePassOrderProbeRenderer();
}
@@ -534,11 +534,6 @@ namespace Gameplay
new ManagedFeaturePassOrderCustomFeature("CustomB")
};
}
protected override string GetPipelineRendererAssetKey()
{
return "BuiltinForward";
}
}
internal sealed class CameraDataObservationPass
@@ -1034,11 +1029,6 @@ namespace Gameplay
{
return new ManagedRenderPipelineProbe();
}
protected override string GetPipelineRendererAssetKey()
{
return "MissingBackend";
}
}
internal sealed class ManagedBuiltinForwardAliasProbeRendererData
@@ -1048,11 +1038,6 @@ namespace Gameplay
{
return new ManagedRenderPipelineProbe();
}
protected override string GetPipelineRendererAssetKey()
{
return "BuiltinForwardAlias";
}
}
internal sealed class ManagedRendererSelectionInactiveRenderer
@@ -1072,9 +1057,9 @@ namespace Gameplay
}
internal sealed class ManagedRendererSelectionActiveRendererData
: ScriptableRendererData
: ProbeRendererData
{
protected override ScriptableRenderer CreateRenderer()
protected override ScriptableRenderer CreateProbeRenderer()
{
return new ProbeSceneRenderer();
}
@@ -1102,11 +1087,6 @@ namespace Gameplay
CameraFrameStage.PostProcess,
CameraFrameColorSource.MainSceneColor);
}
protected override string GetPipelineRendererAssetKey()
{
return "BuiltinForward";
}
}
internal sealed class ManagedRendererSelectionInactiveRendererData
@@ -1116,11 +1096,6 @@ namespace Gameplay
{
return new ManagedRendererSelectionInactiveRenderer();
}
protected override string GetPipelineRendererAssetKey()
{
return "MissingBackend";
}
}
internal sealed class ManagedRendererReuseProbeRendererData
@@ -1434,9 +1409,9 @@ namespace Gameplay
}
internal sealed class ManagedLifecycleProbeRendererData
: ScriptableRendererData
: ProbeRendererData
{
protected override ScriptableRenderer CreateRenderer()
protected override ScriptableRenderer CreateProbeRenderer()
{
ManagedLifecycleProbeState.CreateRendererCallCount++;
return new ManagedLifecycleProbeRenderer();
@@ -1458,11 +1433,6 @@ namespace Gameplay
};
}
protected override string GetPipelineRendererAssetKey()
{
return "BuiltinForward";
}
protected override void ReleaseRuntimeResources()
{
ManagedLifecycleProbeState.ReleaseRendererDataRuntimeResourcesCallCount++;
@@ -1512,6 +1482,60 @@ namespace Gameplay
}
}
internal abstract class ProbePipelineRendererKeyAsset
: RendererBackedRenderPipelineAsset
{
protected sealed override string
GetPipelineRendererAssetKeyContextual(
int rendererIndex)
{
int resolvedRendererIndex =
ResolvePipelineRendererProbeIndex(
rendererIndex);
string overrideAssetKey =
ResolveProbePipelineRendererAssetKey(
resolvedRendererIndex);
return !string.IsNullOrEmpty(overrideAssetKey)
? overrideAssetKey
: base.GetPipelineRendererAssetKeyContextual(
resolvedRendererIndex);
}
protected virtual string ResolveProbePipelineRendererAssetKey(
int resolvedRendererIndex)
{
return string.Empty;
}
private int ResolvePipelineRendererProbeIndex(
int rendererIndex)
{
if (rendererDataList != null &&
rendererIndex >= 0 &&
rendererIndex < rendererDataList.Length)
{
return rendererIndex;
}
if (rendererDataList == null ||
rendererDataList.Length == 0)
{
return -1;
}
int resolvedDefaultRendererIndex =
defaultRendererIndex;
if (resolvedDefaultRendererIndex < 0 ||
resolvedDefaultRendererIndex >=
rendererDataList.Length)
{
resolvedDefaultRendererIndex = 0;
}
return resolvedDefaultRendererIndex;
}
}
public sealed class ManagedUniversalLifecycleProbeAsset
: UniversalRenderPipelineAsset
{
@@ -1570,7 +1594,7 @@ namespace Gameplay
}
public sealed class ManagedUnknownBackendRenderPipelineProbeAsset
: RendererBackedRenderPipelineAsset
: ProbePipelineRendererKeyAsset
{
public ManagedUnknownBackendRenderPipelineProbeAsset()
{
@@ -1579,10 +1603,16 @@ namespace Gameplay
new ManagedUnknownBackendProbeRendererData()
};
}
protected override string ResolveProbePipelineRendererAssetKey(
int resolvedRendererIndex)
{
return "MissingBackend";
}
}
public sealed class ManagedBuiltinForwardAliasRenderPipelineProbeAsset
: RendererBackedRenderPipelineAsset
: ProbePipelineRendererKeyAsset
{
public ManagedBuiltinForwardAliasRenderPipelineProbeAsset()
{
@@ -1591,6 +1621,12 @@ namespace Gameplay
new ManagedBuiltinForwardAliasProbeRendererData()
};
}
protected override string ResolveProbePipelineRendererAssetKey(
int resolvedRendererIndex)
{
return "BuiltinForwardAlias";
}
}
public sealed class ManagedUniversalRenderPipelineProbeAsset
@@ -1622,7 +1658,7 @@ namespace Gameplay
}
public sealed class ManagedDefaultRendererSelectionProbeAsset
: RendererBackedRenderPipelineAsset
: ProbePipelineRendererKeyAsset
{
public ManagedDefaultRendererSelectionProbeAsset()
{
@@ -1633,10 +1669,18 @@ namespace Gameplay
};
defaultRendererIndex = 1;
}
protected override string ResolveProbePipelineRendererAssetKey(
int resolvedRendererIndex)
{
return resolvedRendererIndex == 0
? "MissingBackend"
: string.Empty;
}
}
public sealed class ManagedInvalidDefaultRendererSelectionProbeAsset
: RendererBackedRenderPipelineAsset
: ProbePipelineRendererKeyAsset
{
public ManagedInvalidDefaultRendererSelectionProbeAsset()
{
@@ -1647,10 +1691,18 @@ namespace Gameplay
};
defaultRendererIndex = 5;
}
protected override string ResolveProbePipelineRendererAssetKey(
int resolvedRendererIndex)
{
return resolvedRendererIndex == 1
? "MissingBackend"
: string.Empty;
}
}
public sealed class ManagedFallbackRendererSelectionConsistencyProbeAsset
: RendererBackedRenderPipelineAsset
: ProbePipelineRendererKeyAsset
{
public ManagedFallbackRendererSelectionConsistencyProbeAsset()
{
@@ -1661,6 +1713,14 @@ namespace Gameplay
};
defaultRendererIndex = 7;
}
protected override string ResolveProbePipelineRendererAssetKey(
int resolvedRendererIndex)
{
return resolvedRendererIndex == 1
? "MissingBackend"
: string.Empty;
}
}
public sealed class ManagedRendererReuseProbeAsset