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( null, new RenderingData(stage)) { } 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; internal ScriptableRenderContext renderContext => m_renderContext; } }