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

105 lines
3.1 KiB
C#

namespace XCEngine.Rendering
{
public sealed class RenderSceneSetupContext
{
private readonly ulong m_nativeHandle;
internal RenderSceneSetupContext(ulong nativeHandle)
{
m_nativeHandle = nativeHandle;
}
public int rendererIndex =>
InternalCalls
.Rendering_RenderSceneSetupContext_GetRendererIndex(
m_nativeHandle);
public Camera camera
{
get
{
ulong cameraGameObjectUUID =
InternalCalls
.Rendering_RenderSceneSetupContext_GetCameraGameObjectUUID(
m_nativeHandle);
if (cameraGameObjectUUID == 0)
{
return null;
}
GameObject gameObject =
new GameObject(cameraGameObjectUUID);
return gameObject.GetComponent<Camera>();
}
}
public bool isConfigured =>
InternalCalls
.Rendering_RenderSceneSetupContext_GetIsConfigured(
m_nativeHandle);
public RenderClearFlags clearFlags =>
(RenderClearFlags)InternalCalls
.Rendering_RenderSceneSetupContext_GetClearFlags(
m_nativeHandle);
public bool hasMainSceneDepthAttachment =>
InternalCalls
.Rendering_RenderSceneSetupContext_GetHasMainSceneDepthAttachment(
m_nativeHandle);
public bool hasMainDirectionalShadow =>
InternalCalls
.Rendering_RenderSceneSetupContext_GetHasMainDirectionalShadow(
m_nativeHandle);
public void SetEnvironmentNone()
{
InternalCalls
.Rendering_RenderSceneSetupContext_SetEnvironmentNone(
m_nativeHandle);
}
public bool UseCameraSkyboxMaterial()
{
return InternalCalls
.Rendering_RenderSceneSetupContext_UseCameraSkyboxMaterial(
m_nativeHandle);
}
public void SetProceduralSkybox(
Color topColor,
Color horizonColor,
Color bottomColor)
{
InternalCalls
.Rendering_RenderSceneSetupContext_SetProceduralSkybox(
m_nativeHandle,
ref topColor,
ref horizonColor,
ref bottomColor);
}
public void ClearGlobalShaderKeywords()
{
InternalCalls
.Rendering_RenderSceneSetupContext_ClearGlobalShaderKeywords(
m_nativeHandle);
}
public void SetGlobalShaderKeyword(
string keyword,
bool enabled)
{
InternalCalls
.Rendering_RenderSceneSetupContext_SetGlobalShaderKeyword(
m_nativeHandle,
keyword ?? string.Empty,
enabled);
}
internal ulong nativeHandle =>
m_nativeHandle;
}
}