refactor(srp): align renderer api with unity contexts
This commit is contained in:
@@ -26,10 +26,8 @@ namespace XCEngine.Rendering.Renderer
|
||||
ResolveRendererData();
|
||||
if (rendererData != null)
|
||||
{
|
||||
RendererCameraRequestContext rendererContext =
|
||||
new RendererCameraRequestContext(context);
|
||||
rendererData.ConfigureCameraRenderRequestInstance(
|
||||
rendererContext);
|
||||
context);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace XCEngine.Rendering.Renderer
|
||||
}
|
||||
|
||||
public virtual void ConfigureCameraRenderRequest(
|
||||
RendererCameraRequestContext context)
|
||||
ScriptableRenderPipelineCameraRequestContext context)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user