Files
XCEngine/managed/XCEngine.RenderPipelines.Universal/Rendering/Universal/RendererCameraRequestContext.cs
ssdfasd bfc4b90ce6 refactor(srp): bridge universal shadow planning settings into managed asset
- expose directional shadow planning settings on camera request context\n- let the managed universal asset override planner defaults\n- recompute native directional shadow requests only when settings change
2026-04-21 02:19:30 +08:00

82 lines
2.2 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();
}
}
internal CameraRenderRequestContext requestContext =>
m_requestContext;
}
}