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

120 lines
3.3 KiB
C#

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();
}
}
public RenderClearFlags clearFlags
{
get =>
m_requestContext != null
? m_requestContext.clearFlags
: RenderClearFlags.All;
set
{
if (m_requestContext != null)
{
m_requestContext.clearFlags = value;
}
}
}
public void SetResolvedFinalColorPolicy(
FinalColorSettings settings,
bool hasPipelineDefaults,
bool hasCameraOverrides)
{
if (m_requestContext != null)
{
m_requestContext
.SetResolvedFinalColorPolicy(
settings,
hasPipelineDefaults,
hasCameraOverrides);
}
}
public void ClearFinalColorPolicy()
{
if (m_requestContext != null)
{
m_requestContext.ClearFinalColorPolicy();
}
}
internal CameraRenderRequestContext requestContext =>
m_requestContext;
}
}