diff --git a/managed/GameScripts/ScriptableRenderContextApiSurfaceProbe.cs b/managed/GameScripts/ScriptableRenderContextApiSurfaceProbe.cs index dbbd7407..0b665303 100644 --- a/managed/GameScripts/ScriptableRenderContextApiSurfaceProbe.cs +++ b/managed/GameScripts/ScriptableRenderContextApiSurfaceProbe.cs @@ -14,6 +14,7 @@ namespace Gameplay public bool HasPublicContextDrawRenderersByType; public bool HasPublicContextDrawRenderersByDesc; public bool HasPublicContextDrawRenderersByDescAndSettings; + public bool HasPublicContextDrawSkybox; public bool HasPublicContextDrawOpaqueRenderers; public bool HasPublicContextDrawTransparentRenderers; public bool HasPublicContextRecordOpaqueScenePhase; @@ -149,6 +150,10 @@ namespace Gameplay typeof(DrawingSettings) }, null) != null; + HasPublicContextDrawSkybox = + contextType.GetMethod( + "DrawSkybox", + PublicInstanceMethodFlags) != null; HasPublicContextDrawOpaqueRenderers = contextType.GetMethod( "DrawOpaqueRenderers", diff --git a/managed/XCEngine.RenderPipelines.Universal/Rendering/Universal/DrawSkyboxPass.cs b/managed/XCEngine.RenderPipelines.Universal/Rendering/Universal/DrawSkyboxPass.cs index a4b9ed22..ca8e195f 100644 --- a/managed/XCEngine.RenderPipelines.Universal/Rendering/Universal/DrawSkyboxPass.cs +++ b/managed/XCEngine.RenderPipelines.Universal/Rendering/Universal/DrawSkyboxPass.cs @@ -19,8 +19,7 @@ namespace XCEngine.Rendering.Universal return context != null && renderingData != null && renderingData.isMainSceneStage && - context.RecordScenePhase( - SceneRenderPhase.Skybox); + context.DrawSkybox(); } } } diff --git a/managed/XCEngine.ScriptCore/Rendering/Core/ScriptableRenderContext.cs b/managed/XCEngine.ScriptCore/Rendering/Core/ScriptableRenderContext.cs index a1ee8f7b..9d7a9df5 100644 --- a/managed/XCEngine.ScriptCore/Rendering/Core/ScriptableRenderContext.cs +++ b/managed/XCEngine.ScriptCore/Rendering/Core/ScriptableRenderContext.cs @@ -36,13 +36,13 @@ namespace XCEngine.Rendering public bool RecordScene() { return RecordBeforeOpaqueInjection() && - RecordOpaqueScenePhase() && + DrawOpaqueRenderers() && RecordAfterOpaqueInjection() && RecordBeforeSkyboxInjection() && - RecordSkyboxScenePhase() && + DrawSkybox() && RecordAfterSkyboxInjection() && RecordBeforeTransparentInjection() && - RecordTransparentScenePhase() && + DrawTransparentRenderers() && RecordAfterTransparentInjection(); } @@ -124,6 +124,12 @@ namespace XCEngine.Rendering SceneRenderPhase.Skybox); } + public bool DrawSkybox() + { + return RecordScenePhase( + SceneRenderPhase.Skybox); + } + public bool RecordTransparentScenePhase() { return RecordScenePhase(