Files
XCEngine/managed/XCEngine.RenderPipelines.Universal/Rendering/Universal/RendererRecordingContext.cs

63 lines
1.6 KiB
C#

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(
stage,
-1)
{
}
internal RendererRecordingContext(
CameraFrameStage stage,
int rendererIndex)
: this(
null,
new RenderingData(
stage,
rendererIndex))
{
}
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;
public int rendererIndex =>
m_renderingData.rendererIndex;
internal ScriptableRenderContext renderContext =>
m_renderContext;
}
}