72 lines
2.2 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|