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(); } } 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; } }