refactor(srp): align renderer api with unity contexts

This commit is contained in:
2026-04-19 13:05:57 +08:00
parent fe7e6dddf3
commit 0cea7b80e8
16 changed files with 59 additions and 230 deletions

View File

@@ -26,10 +26,8 @@ namespace XCEngine.Rendering.Renderer
ResolveRendererData();
if (rendererData != null)
{
RendererCameraRequestContext rendererContext =
new RendererCameraRequestContext(context);
rendererData.ConfigureCameraRenderRequestInstance(
rendererContext);
context);
}
}

View File

@@ -1,39 +0,0 @@
using XCEngine;
using XCEngine.Rendering;
namespace XCEngine.Rendering.Renderer
{
public sealed class RendererCameraRequestContext
{
private readonly ScriptableRenderPipelineCameraRequestContext
m_requestContext;
internal RendererCameraRequestContext(
ScriptableRenderPipelineCameraRequestContext requestContext)
{
m_requestContext = requestContext;
}
public int renderedBaseCameraCount =>
m_requestContext != null
? m_requestContext.renderedBaseCameraCount
: 0;
public int renderedRequestCount =>
m_requestContext != null
? m_requestContext.renderedRequestCount
: 0;
public bool hasDirectionalShadow =>
m_requestContext != null &&
m_requestContext.hasDirectionalShadow;
public void ClearDirectionalShadow()
{
if (m_requestContext != null)
{
m_requestContext.ClearDirectionalShadow();
}
}
}
}

View File

@@ -1,97 +0,0 @@
using XCEngine;
using XCEngine.Rendering;
namespace XCEngine.Rendering.Renderer
{
public sealed class RendererRecordingContext
{
private readonly ScriptableRenderContext m_renderContext;
internal RendererRecordingContext(
ScriptableRenderContext renderContext)
{
m_renderContext = renderContext;
}
public bool RecordScene()
{
return m_renderContext != null &&
m_renderContext.RecordScene();
}
public bool RecordOpaqueScenePhase()
{
return m_renderContext != null &&
m_renderContext.RecordOpaqueScenePhase();
}
public bool RecordSkyboxScenePhase()
{
return m_renderContext != null &&
m_renderContext.RecordSkyboxScenePhase();
}
public bool RecordTransparentScenePhase()
{
return m_renderContext != null &&
m_renderContext.RecordTransparentScenePhase();
}
public bool RecordBeforeOpaqueInjection()
{
return m_renderContext != null &&
m_renderContext.RecordBeforeOpaqueInjection();
}
public bool RecordAfterOpaqueInjection()
{
return m_renderContext != null &&
m_renderContext.RecordAfterOpaqueInjection();
}
public bool RecordBeforeSkyboxInjection()
{
return m_renderContext != null &&
m_renderContext.RecordBeforeSkyboxInjection();
}
public bool RecordAfterSkyboxInjection()
{
return m_renderContext != null &&
m_renderContext.RecordAfterSkyboxInjection();
}
public bool RecordBeforeTransparentInjection()
{
return m_renderContext != null &&
m_renderContext.RecordBeforeTransparentInjection();
}
public bool RecordAfterTransparentInjection()
{
return m_renderContext != null &&
m_renderContext.RecordAfterTransparentInjection();
}
public bool RecordColorScaleFullscreenPass(
Vector4 colorScale)
{
return m_renderContext != null &&
m_renderContext.RecordColorScaleFullscreenPass(
colorScale);
}
public bool RecordShaderVectorFullscreenPass(
string shaderPath,
Vector4 vectorPayload,
string passName = null)
{
return m_renderContext != null &&
m_renderContext.RecordShaderVectorFullscreenPass(
shaderPath,
vectorPayload,
passName);
}
}
}

View File

@@ -23,7 +23,7 @@ namespace XCEngine.Rendering.Renderer
}
internal bool Record(
RendererRecordingContext context,
ScriptableRenderContext context,
RenderingData renderingData)
{
return RecordRenderGraph(
@@ -32,7 +32,7 @@ namespace XCEngine.Rendering.Renderer
}
protected abstract bool RecordRenderGraph(
RendererRecordingContext context,
ScriptableRenderContext context,
RenderingData renderingData);
internal static bool TryResolveStage(

View File

@@ -81,8 +81,6 @@ namespace XCEngine.Rendering.Renderer
RenderingData renderingData =
new RenderingData(context);
RendererRecordingContext recordingContext =
new RendererRecordingContext(context);
BuildPassQueue(renderingData);
bool recordedAnyPass = false;
@@ -96,7 +94,7 @@ namespace XCEngine.Rendering.Renderer
}
if (!renderPass.Record(
recordingContext,
context,
renderingData))
{
return false;

View File

@@ -23,7 +23,7 @@ namespace XCEngine.Rendering.Renderer
}
internal void ConfigureCameraRenderRequestInstance(
RendererCameraRequestContext context)
ScriptableRenderPipelineCameraRequestContext context)
{
ConfigureCameraRenderRequest(context);
@@ -72,7 +72,7 @@ namespace XCEngine.Rendering.Renderer
}
protected virtual void ConfigureCameraRenderRequest(
RendererCameraRequestContext context)
ScriptableRenderPipelineCameraRequestContext context)
{
}

View File

@@ -16,7 +16,7 @@ namespace XCEngine.Rendering.Renderer
}
public virtual void ConfigureCameraRenderRequest(
RendererCameraRequestContext context)
ScriptableRenderPipelineCameraRequestContext context)
{
}