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

72 lines
2.2 KiB
C#

using System;
using XCEngine;
namespace XCEngine.Rendering
{
public sealed class ScriptableRenderPipelineScenePlanningContext
{
private readonly ulong m_nativeHandle;
internal ScriptableRenderPipelineScenePlanningContext(
ulong nativeHandle)
{
m_nativeHandle = nativeHandle;
}
public int requestCount =>
InternalCalls
.Rendering_ScriptableRenderPipelineScenePlanningContext_GetRequestCount(
m_nativeHandle);
public Camera[] GetDefaultCameras()
{
ulong[] cameraGameObjectUUIDs =
InternalCalls
.Rendering_ScriptableRenderPipelineScenePlanningContext_GetDefaultCameraGameObjectUUIDs(
m_nativeHandle);
if (cameraGameObjectUUIDs == null ||
cameraGameObjectUUIDs.Length == 0)
{
return Array.Empty<Camera>();
}
Camera[] cameras =
new Camera[cameraGameObjectUUIDs.Length];
for (int index = 0; index < cameraGameObjectUUIDs.Length; ++index)
{
ulong gameObjectUUID = cameraGameObjectUUIDs[index];
cameras[index] =
gameObjectUUID != 0
? new Camera(gameObjectUUID)
: null;
}
return cameras;
}
public bool UseDefaultRequests()
{
return InternalCalls
.Rendering_ScriptableRenderPipelineScenePlanningContext_UseDefaultRequests(
m_nativeHandle);
}
public void ClearRequests()
{
InternalCalls
.Rendering_ScriptableRenderPipelineScenePlanningContext_ClearRequests(
m_nativeHandle);
}
public bool AddCamera(Camera camera)
{
return InternalCalls
.Rendering_ScriptableRenderPipelineScenePlanningContext_AddCamera(
m_nativeHandle,
camera != null
? camera.GameObjectUUID
: 0);
}
}
}