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:
@@ -0,0 +1,53 @@
|
||||
using XCEngine;
|
||||
using XCEngine.Rendering;
|
||||
|
||||
namespace XCEngine.Rendering.Universal
|
||||
{
|
||||
public abstract class RendererDrivenRenderPipeline
|
||||
: ScriptableRenderPipeline
|
||||
{
|
||||
protected RendererDrivenRenderPipeline()
|
||||
{
|
||||
}
|
||||
|
||||
protected sealed override bool SupportsStageRenderGraph(
|
||||
CameraFrameStage stage)
|
||||
{
|
||||
return SupportsRendererRecording(
|
||||
new RendererRecordingContext(stage));
|
||||
}
|
||||
|
||||
protected sealed override bool RecordStageRenderGraph(
|
||||
ScriptableRenderContext context)
|
||||
{
|
||||
if (context == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return RecordRenderer(
|
||||
new RendererRecordingContext(context));
|
||||
}
|
||||
|
||||
protected virtual bool SupportsRendererRecording(
|
||||
RendererRecordingContext context)
|
||||
{
|
||||
ScriptableRenderer renderer =
|
||||
ResolveRenderer(context);
|
||||
return renderer != null &&
|
||||
renderer.SupportsRendererRecording(context);
|
||||
}
|
||||
|
||||
protected virtual bool RecordRenderer(
|
||||
RendererRecordingContext context)
|
||||
{
|
||||
ScriptableRenderer renderer =
|
||||
ResolveRenderer(context);
|
||||
return renderer != null &&
|
||||
renderer.RecordRenderer(context);
|
||||
}
|
||||
|
||||
protected abstract ScriptableRenderer ResolveRenderer(
|
||||
RendererRecordingContext context);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user