using XCEngine; using XCEngine.Rendering; namespace XCEngine.Rendering.Universal { public sealed class RendererCameraRequestContext { private readonly CameraRenderRequestContext m_requestContext; internal RendererCameraRequestContext( CameraRenderRequestContext 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 Camera camera => m_requestContext != null ? m_requestContext.camera : null; public int rendererIndex { get => m_requestContext != null ? m_requestContext.rendererIndex : -1; set { if (m_requestContext != null) { m_requestContext.rendererIndex = value; } } } public bool hasDirectionalShadow => m_requestContext != null && m_requestContext.hasDirectionalShadow; public DirectionalShadowPlanningSettings directionalShadowPlanningSettings { get => m_requestContext != null ? m_requestContext .directionalShadowPlanningSettings : DirectionalShadowPlanningSettings .CreateDefault(); set { if (m_requestContext != null) { m_requestContext .directionalShadowPlanningSettings = value; } } } public void ClearDirectionalShadow() { if (m_requestContext != null) { m_requestContext.ClearDirectionalShadow(); } } internal CameraRenderRequestContext requestContext => m_requestContext; } }