refactor(srp): make universal renderer execution context-first
Promote ScriptableRenderer renderer-recording context methods to the primary Universal execution seam and route the renderer-driven pipeline through that seam. Update managed probes and scripting expectations to cover the new non-public renderer recording contract, and archive the completed phase plan.
This commit is contained in:
@@ -77,32 +77,34 @@ namespace XCEngine.Rendering.Universal
|
||||
{
|
||||
}
|
||||
|
||||
internal bool SupportsRendererRecording(
|
||||
internal bool SupportsRendererRecordingInstance(
|
||||
RendererRecordingContext context)
|
||||
{
|
||||
return context != null &&
|
||||
SupportsStageRenderGraph(context.stage);
|
||||
return SupportsRendererRecording(context);
|
||||
}
|
||||
|
||||
internal bool RecordRenderer(
|
||||
internal bool RecordRendererInstance(
|
||||
RendererRecordingContext context)
|
||||
{
|
||||
return context != null &&
|
||||
context.renderContext != null &&
|
||||
RecordStageRenderGraph(
|
||||
context.renderContext);
|
||||
return RecordRenderer(context);
|
||||
}
|
||||
|
||||
protected internal virtual bool SupportsStageRenderGraph(
|
||||
CameraFrameStage stage)
|
||||
protected virtual bool SupportsRendererRecording(
|
||||
RendererRecordingContext context)
|
||||
{
|
||||
RenderingData renderingData = new RenderingData(stage);
|
||||
if (context == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
RenderingData renderingData =
|
||||
context.renderingData;
|
||||
BuildPassQueue(renderingData);
|
||||
for (int i = 0; i < m_activePassQueue.Count; ++i)
|
||||
{
|
||||
ScriptableRenderPass renderPass = m_activePassQueue[i];
|
||||
if (renderPass != null &&
|
||||
renderPass.SupportsStage(stage))
|
||||
renderPass.SupportsStage(context.stage))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -111,16 +113,17 @@ namespace XCEngine.Rendering.Universal
|
||||
return false;
|
||||
}
|
||||
|
||||
protected internal virtual bool RecordStageRenderGraph(
|
||||
ScriptableRenderContext context)
|
||||
protected virtual bool RecordRenderer(
|
||||
RendererRecordingContext context)
|
||||
{
|
||||
if (context == null)
|
||||
if (context == null ||
|
||||
context.renderContext == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
RenderingData renderingData =
|
||||
new RenderingData(context);
|
||||
context.renderingData;
|
||||
BuildPassQueue(renderingData);
|
||||
|
||||
bool recordedAnyPass = false;
|
||||
@@ -134,7 +137,7 @@ namespace XCEngine.Rendering.Universal
|
||||
}
|
||||
|
||||
if (!renderPass.Record(
|
||||
context,
|
||||
context.renderContext,
|
||||
renderingData))
|
||||
{
|
||||
return false;
|
||||
@@ -146,6 +149,21 @@ namespace XCEngine.Rendering.Universal
|
||||
return recordedAnyPass;
|
||||
}
|
||||
|
||||
protected internal virtual bool SupportsStageRenderGraph(
|
||||
CameraFrameStage stage)
|
||||
{
|
||||
return SupportsRendererRecording(
|
||||
new RendererRecordingContext(stage));
|
||||
}
|
||||
|
||||
protected internal virtual bool RecordStageRenderGraph(
|
||||
ScriptableRenderContext context)
|
||||
{
|
||||
return context != null &&
|
||||
RecordRenderer(
|
||||
new RendererRecordingContext(context));
|
||||
}
|
||||
|
||||
private void BuildPassQueue(
|
||||
RenderingData renderingData)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user