feat(srp): add renderer-driven pipeline backbone

Introduce renderer-driven and renderer-backed managed pipeline base types in the Universal package.

Move shared renderer-data/default-renderer ownership out of UniversalRenderPipelineAsset, migrate probe assets onto the generic seam, and expose renderer recording/request context types for future SRP expansion.

Update scripting API-surface expectations and validate with build, unit tests, scripting tests, and old editor smoke.
This commit is contained in:
2026-04-20 02:05:17 +08:00
parent 9e6c473186
commit cd29c8b2bc
12 changed files with 575 additions and 197 deletions

View File

@@ -0,0 +1,48 @@
using XCEngine;
using XCEngine.Rendering;
namespace XCEngine.Rendering.Universal
{
public sealed class RendererRecordingContext
{
private readonly ScriptableRenderContext m_renderContext;
private readonly RenderingData m_renderingData;
internal RendererRecordingContext(
CameraFrameStage stage)
: this(
null,
new RenderingData(stage))
{
}
internal RendererRecordingContext(
ScriptableRenderContext renderContext)
: this(
renderContext,
renderContext != null
? new RenderingData(renderContext)
: new RenderingData(CameraFrameStage.MainScene))
{
}
private RendererRecordingContext(
ScriptableRenderContext renderContext,
RenderingData renderingData)
{
m_renderContext = renderContext;
m_renderingData =
renderingData ??
new RenderingData(CameraFrameStage.MainScene);
}
public CameraFrameStage stage =>
m_renderingData.stage;
public RenderingData renderingData =>
m_renderingData;
internal ScriptableRenderContext renderContext =>
m_renderContext;
}
}