refactor(srp): formalize universal renderer selection and caching

This commit is contained in:
2026-04-20 00:16:32 +08:00
parent ad32d64269
commit cbc0ddbd42
6 changed files with 379 additions and 38 deletions

View File

@@ -878,6 +878,18 @@ namespace Gameplay
}
}
internal sealed class ManagedRendererReuseProbeRendererData
: ProbeRendererData
{
public static int CreateRendererCallCount;
protected override ScriptableRenderer CreateProbeRenderer()
{
CreateRendererCallCount++;
return new ManagedRenderPipelineProbe();
}
}
internal sealed class ManagedPlannedFullscreenRenderPipelineProbeRendererData
: ProbeRendererData
{
@@ -1000,6 +1012,33 @@ namespace Gameplay
}
}
public sealed class ManagedInvalidDefaultRendererSelectionProbeAsset
: UniversalRenderPipelineAsset
{
public ManagedInvalidDefaultRendererSelectionProbeAsset()
{
rendererDataList = new ScriptableRendererData[]
{
new ManagedRenderPipelineProbeRendererData(),
new ManagedUnknownBackendProbeRendererData()
};
defaultRendererIndex = 5;
}
}
public sealed class ManagedRendererReuseProbeAsset
: UniversalRenderPipelineAsset
{
public ManagedRendererReuseProbeAsset()
{
ManagedRendererReuseProbeRendererData.CreateRendererCallCount = 0;
rendererDataList = new ScriptableRendererData[]
{
new ManagedRendererReuseProbeRendererData()
};
}
}
public sealed class ManagedPlannedFullscreenRenderPipelineProbeAsset
: UniversalRenderPipelineAsset
{
@@ -1214,6 +1253,19 @@ namespace Gameplay
{
}
public sealed class ManagedRendererReuseObservationProbe
: MonoBehaviour
{
public int ObservedCreateRendererCallCount;
public void Start()
{
ObservedCreateRendererCallCount =
ManagedRendererReuseProbeRendererData
.CreateRendererCallCount;
}
}
public sealed class RenderPipelineApiProbe : MonoBehaviour
{
public bool InitialAssetWasNull;