Files
XCEngine/managed/XCEngine.ScriptCore/Rendering/Core/CameraRenderRequestContext.cs

126 lines
3.8 KiB
C#
Raw Normal View History

using XCEngine;
namespace XCEngine.Rendering
{
public sealed class CameraRenderRequestContext
{
private readonly ulong m_nativeHandle;
internal CameraRenderRequestContext(ulong nativeHandle)
{
m_nativeHandle = nativeHandle;
}
public int renderedBaseCameraCount =>
InternalCalls
.Rendering_CameraRenderRequestContext_GetRenderedBaseCameraCount(
m_nativeHandle);
public int renderedRequestCount =>
InternalCalls
.Rendering_CameraRenderRequestContext_GetRenderedRequestCount(
m_nativeHandle);
public Camera camera
{
get
{
ulong cameraGameObjectUUID =
InternalCalls
.Rendering_CameraRenderRequestContext_GetCameraGameObjectUUID(
m_nativeHandle);
if (cameraGameObjectUUID == 0)
{
return null;
}
GameObject gameObject =
new GameObject(cameraGameObjectUUID);
return gameObject.GetComponent<Camera>();
}
}
public int rendererIndex
{
get =>
InternalCalls
.Rendering_CameraRenderRequestContext_GetRendererIndex(
m_nativeHandle);
set =>
InternalCalls
.Rendering_CameraRenderRequestContext_SetRendererIndex(
m_nativeHandle,
value);
}
public bool hasDirectionalShadow =>
InternalCalls
.Rendering_CameraRenderRequestContext_GetHasDirectionalShadow(
m_nativeHandle);
public DirectionalShadowPlanningSettings
directionalShadowPlanningSettings
{
get
{
InternalCalls
.Rendering_CameraRenderRequestContext_GetDirectionalShadowPlanningSettings(
m_nativeHandle,
out DirectionalShadowPlanningSettings settings);
return settings;
}
set
{
InternalCalls
.Rendering_CameraRenderRequestContext_SetDirectionalShadowPlanningSettings(
m_nativeHandle,
ref value);
}
}
public void ClearDirectionalShadow()
{
InternalCalls
.Rendering_CameraRenderRequestContext_ClearDirectionalShadow(
m_nativeHandle);
}
public RenderClearFlags clearFlags
{
get =>
(RenderClearFlags)InternalCalls
.Rendering_CameraRenderRequestContext_GetClearFlags(
m_nativeHandle);
set =>
InternalCalls
.Rendering_CameraRenderRequestContext_SetClearFlags(
m_nativeHandle,
(int)value);
}
public void SetResolvedFinalColorPolicy(
FinalColorSettings settings,
bool hasPipelineDefaults,
bool hasCameraOverrides)
{
InternalCalls
.Rendering_CameraRenderRequestContext_SetResolvedFinalColorPolicy(
m_nativeHandle,
ref settings,
hasPipelineDefaults,
hasCameraOverrides);
}
public void ClearFinalColorPolicy()
{
InternalCalls
.Rendering_CameraRenderRequestContext_ClearFinalColorPolicy(
m_nativeHandle);
}
internal ulong nativeHandle =>
m_nativeHandle;
}
}