diff --git a/engine/src/Scripting/Mono/MonoScriptRuntime.cpp b/engine/src/Scripting/Mono/MonoScriptRuntime.cpp index dee5fe77..4aeee727 100644 --- a/engine/src/Scripting/Mono/MonoScriptRuntime.cpp +++ b/engine/src/Scripting/Mono/MonoScriptRuntime.cpp @@ -92,9 +92,8 @@ struct ManagedScriptableRenderContextState { uint64_t handle = 0; Rendering::CameraFrameStage stage = Rendering::CameraFrameStage::MainScene; const Rendering::RenderPipelineStageRenderGraphContext* graphContext = nullptr; - Rendering::Pipelines::BuiltinForwardSceneRecorder* builtinForwardSceneRecorder = - nullptr; - std::vector queuedBuiltinColorScaleFullscreenPasses = {}; + Rendering::Pipelines::BuiltinForwardSceneRecorder* sceneRecorder = nullptr; + std::vector queuedColorScaleFullscreenPasses = {}; }; struct ManagedScriptableRenderPipelineCameraRequestContextState { @@ -408,14 +407,14 @@ public: void Shutdown() override { for (std::unique_ptr& pass : - m_builtinColorScalePassPool) { + m_colorScalePassPool) { if (pass != nullptr) { pass->Shutdown(); } } - m_builtinColorScalePassPool.clear(); - if (m_builtinSceneRenderer != nullptr) { - m_builtinSceneRenderer->Shutdown(); + m_colorScalePassPool.clear(); + if (m_defaultSceneRenderer != nullptr) { + m_defaultSceneRenderer->Shutdown(); } ReleaseManagedObjects(); m_supportsStageMethod = nullptr; @@ -467,18 +466,17 @@ public: ManagedScriptableRenderContextState managedContextState = {}; managedContextState.stage = context.stage; managedContextState.graphContext = &context; - if (m_builtinSceneRenderer == nullptr) { - m_builtinSceneRenderer = + if (m_defaultSceneRenderer == nullptr) { + m_defaultSceneRenderer = Rendering::Internal::CreateDefaultNativeSceneRenderer(); } - if (m_builtinSceneRenderer == nullptr) { + if (m_defaultSceneRenderer == nullptr) { return false; } - Rendering::Pipelines::BuiltinForwardSceneRecorder builtinForwardSceneRecorder( - *m_builtinSceneRenderer, + Rendering::Pipelines::BuiltinForwardSceneRecorder sceneRecorder( + *m_defaultSceneRenderer, context); - managedContextState.builtinForwardSceneRecorder = - &builtinForwardSceneRecorder; + managedContextState.sceneRecorder = &sceneRecorder; const uint64_t managedContextHandle = RegisterManagedScriptableRenderContextState(managedContextState); MonoObject* const managedContextObject = @@ -570,29 +568,29 @@ private: bool FlushManagedFullscreenPasses( const Rendering::RenderPipelineStageRenderGraphContext& context, const ManagedScriptableRenderContextState& managedContextState) { - if (managedContextState.queuedBuiltinColorScaleFullscreenPasses.empty()) { + if (managedContextState.queuedColorScaleFullscreenPasses.empty()) { return true; } if (!Rendering::IsCameraFrameFullscreenSequenceStage(context.stage)) { return false; } - while (m_builtinColorScalePassPool.size() < - managedContextState.queuedBuiltinColorScaleFullscreenPasses.size()) { - m_builtinColorScalePassPool.push_back( + while (m_colorScalePassPool.size() < + managedContextState.queuedColorScaleFullscreenPasses.size()) { + m_colorScalePassPool.push_back( std::make_unique()); } std::vector passes = {}; passes.reserve( - managedContextState.queuedBuiltinColorScaleFullscreenPasses.size()); + managedContextState.queuedColorScaleFullscreenPasses.size()); for (size_t passIndex = 0u; - passIndex < managedContextState.queuedBuiltinColorScaleFullscreenPasses.size(); + passIndex < managedContextState.queuedColorScaleFullscreenPasses.size(); ++passIndex) { Rendering::Passes::BuiltinColorScalePostProcessPass* const pass = - m_builtinColorScalePassPool[passIndex].get(); + m_colorScalePassPool[passIndex].get(); pass->SetColorScale( - managedContextState.queuedBuiltinColorScaleFullscreenPasses[passIndex]); + managedContextState.queuedColorScaleFullscreenPasses[passIndex]); passes.push_back(pass); } @@ -608,8 +606,8 @@ private: mutable MonoMethod* m_recordStageMethod = nullptr; mutable bool m_pipelineCreationAttempted = false; std::vector> - m_builtinColorScalePassPool = {}; - std::unique_ptr m_builtinSceneRenderer = nullptr; + m_colorScalePassPool = {}; + std::unique_ptr m_defaultSceneRenderer = nullptr; }; std::unique_ptr @@ -2568,62 +2566,62 @@ int32_t InternalCall_Rendering_ScriptableRenderContext_GetStage( : static_cast(Rendering::CameraFrameStage::MainScene); } -mono_bool InternalCall_Rendering_ScriptableRenderContext_RecordBuiltinForwardMainScene( +mono_bool InternalCall_Rendering_ScriptableRenderContext_RecordScene( uint64_t nativeHandle) { ManagedScriptableRenderContextState* const state = FindManagedScriptableRenderContextState(nativeHandle); if (state == nullptr || state->graphContext == nullptr || - state->builtinForwardSceneRecorder == nullptr || + state->sceneRecorder == nullptr || state->stage != Rendering::CameraFrameStage::MainScene) { return 0; } - return state->builtinForwardSceneRecorder->RecordDefaultScene() + return state->sceneRecorder->RecordDefaultScene() ? 1 : 0; } mono_bool -InternalCall_Rendering_ScriptableRenderContext_RecordBuiltinForwardScenePhase( +InternalCall_Rendering_ScriptableRenderContext_RecordScenePhase( uint64_t nativeHandle, int32_t scenePhase) { ManagedScriptableRenderContextState* const state = FindManagedScriptableRenderContextState(nativeHandle); if (state == nullptr || state->graphContext == nullptr || - state->builtinForwardSceneRecorder == nullptr || + state->sceneRecorder == nullptr || state->stage != Rendering::CameraFrameStage::MainScene) { return 0; } - return state->builtinForwardSceneRecorder->RecordScenePhase( + return state->sceneRecorder->RecordScenePhase( static_cast(scenePhase)) ? 1 : 0; } mono_bool -InternalCall_Rendering_ScriptableRenderContext_RecordBuiltinForwardInjectionPoint( +InternalCall_Rendering_ScriptableRenderContext_RecordSceneInjectionPoint( uint64_t nativeHandle, int32_t injectionPoint) { ManagedScriptableRenderContextState* const state = FindManagedScriptableRenderContextState(nativeHandle); if (state == nullptr || state->graphContext == nullptr || - state->builtinForwardSceneRecorder == nullptr || + state->sceneRecorder == nullptr || state->stage != Rendering::CameraFrameStage::MainScene) { return 0; } - return state->builtinForwardSceneRecorder->RecordInjectionPoint( + return state->sceneRecorder->RecordInjectionPoint( static_cast(injectionPoint)) ? 1 : 0; } mono_bool -InternalCall_Rendering_ScriptableRenderContext_RecordBuiltinColorScaleFullscreenPass( +InternalCall_Rendering_ScriptableRenderContext_RecordColorScaleFullscreenPass( uint64_t nativeHandle, XCEngine::Math::Vector4* colorScale) { ManagedScriptableRenderContextState* const state = @@ -2635,7 +2633,7 @@ InternalCall_Rendering_ScriptableRenderContext_RecordBuiltinColorScaleFullscreen return 0; } - state->queuedBuiltinColorScaleFullscreenPasses.push_back(*colorScale); + state->queuedColorScaleFullscreenPasses.push_back(*colorScale); return 1; } @@ -2873,10 +2871,10 @@ void RegisterInternalCalls() { mono_add_internal_call("XCEngine.InternalCalls::Rendering_SetRenderPipelineAssetType", reinterpret_cast(&InternalCall_Rendering_SetRenderPipelineAssetType)); mono_add_internal_call("XCEngine.InternalCalls::Rendering_GetRenderPipelineAssetTypeName", reinterpret_cast(&InternalCall_Rendering_GetRenderPipelineAssetTypeName)); mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_GetStage", reinterpret_cast(&InternalCall_Rendering_ScriptableRenderContext_GetStage)); - mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordBuiltinForwardMainScene", reinterpret_cast(&InternalCall_Rendering_ScriptableRenderContext_RecordBuiltinForwardMainScene)); - mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordBuiltinForwardScenePhase", reinterpret_cast(&InternalCall_Rendering_ScriptableRenderContext_RecordBuiltinForwardScenePhase)); - mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordBuiltinForwardInjectionPoint", reinterpret_cast(&InternalCall_Rendering_ScriptableRenderContext_RecordBuiltinForwardInjectionPoint)); - mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordBuiltinColorScaleFullscreenPass", reinterpret_cast(&InternalCall_Rendering_ScriptableRenderContext_RecordBuiltinColorScaleFullscreenPass)); + mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordScene", reinterpret_cast(&InternalCall_Rendering_ScriptableRenderContext_RecordScene)); + mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordScenePhase", reinterpret_cast(&InternalCall_Rendering_ScriptableRenderContext_RecordScenePhase)); + mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordSceneInjectionPoint", reinterpret_cast(&InternalCall_Rendering_ScriptableRenderContext_RecordSceneInjectionPoint)); + mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordColorScaleFullscreenPass", reinterpret_cast(&InternalCall_Rendering_ScriptableRenderContext_RecordColorScaleFullscreenPass)); mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelineCameraRequestContext_GetRenderedBaseCameraCount", reinterpret_cast(&InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_GetRenderedBaseCameraCount)); mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelineCameraRequestContext_GetRenderedRequestCount", reinterpret_cast(&InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_GetRenderedRequestCount)); mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelineCameraRequestContext_GetHasDirectionalShadow", reinterpret_cast(&InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_GetHasDirectionalShadow)); diff --git a/managed/GameScripts/RenderPipelineApiProbe.cs b/managed/GameScripts/RenderPipelineApiProbe.cs index ba17c50b..d06efbad 100644 --- a/managed/GameScripts/RenderPipelineApiProbe.cs +++ b/managed/GameScripts/RenderPipelineApiProbe.cs @@ -107,20 +107,20 @@ namespace Gameplay RecordStageCallCount++; return context != null && context.stage == CameraFrameStage.MainScene && - context.RecordBuiltinForwardInjectionPoint( + context.RecordSceneInjectionPoint( SceneRenderInjectionPoint.BeforeOpaque) && - context.RecordBuiltinForwardScenePhase(ScenePhase.Opaque) && - context.RecordBuiltinForwardInjectionPoint( + context.RecordScenePhase(ScenePhase.Opaque) && + context.RecordSceneInjectionPoint( SceneRenderInjectionPoint.AfterOpaque) && - context.RecordBuiltinForwardInjectionPoint( + context.RecordSceneInjectionPoint( SceneRenderInjectionPoint.BeforeSkybox) && - context.RecordBuiltinForwardScenePhase(ScenePhase.Skybox) && - context.RecordBuiltinForwardInjectionPoint( + context.RecordScenePhase(ScenePhase.Skybox) && + context.RecordSceneInjectionPoint( SceneRenderInjectionPoint.AfterSkybox) && - context.RecordBuiltinForwardInjectionPoint( + context.RecordSceneInjectionPoint( SceneRenderInjectionPoint.BeforeTransparent) && - context.RecordBuiltinForwardScenePhase(ScenePhase.Transparent) && - context.RecordBuiltinForwardInjectionPoint( + context.RecordScenePhase(ScenePhase.Transparent) && + context.RecordSceneInjectionPoint( SceneRenderInjectionPoint.AfterTransparent); } } @@ -138,9 +138,9 @@ namespace Gameplay { return context != null && context.stage == CameraFrameStage.PostProcess && - context.RecordBuiltinColorScaleFullscreenPass( + context.RecordColorScaleFullscreenPass( new Vector4(1.10f, 0.95f, 0.90f, 1.0f)) && - context.RecordBuiltinColorScaleFullscreenPass( + context.RecordColorScaleFullscreenPass( new Vector4(0.95f, 1.05f, 1.10f, 1.0f)); } } @@ -151,7 +151,7 @@ namespace Gameplay public static int SupportsMainSceneCallCount; public static int SupportsPostProcessCallCount; public static int RecordMainSceneCallCount; - public static int RecordBuiltinForwardMainSceneCallCount; + public static int RecordSceneCallCount; public static int RecordPostProcessCallCount; protected override bool SupportsStageRenderGraph( @@ -183,10 +183,10 @@ namespace Gameplay if (context.stage == CameraFrameStage.MainScene) { RecordMainSceneCallCount++; - bool recorded = context.RecordBuiltinForwardMainScene(); + bool recorded = context.RecordScene(); if (recorded) { - RecordBuiltinForwardMainSceneCallCount++; + RecordSceneCallCount++; } return recorded; @@ -195,7 +195,7 @@ namespace Gameplay if (context.stage == CameraFrameStage.PostProcess) { RecordPostProcessCallCount++; - return context.RecordBuiltinColorScaleFullscreenPass( + return context.RecordColorScaleFullscreenPass( new Vector4(1.03f, 0.98f, 0.94f, 1.0f)); } @@ -219,7 +219,7 @@ namespace Gameplay return context != null && (context.stage == CameraFrameStage.PostProcess || context.stage == CameraFrameStage.FinalOutput) && - context.RecordBuiltinColorScaleFullscreenPass( + context.RecordColorScaleFullscreenPass( new Vector4(1.05f, 1.0f, 0.95f, 1.0f)); } } @@ -279,7 +279,7 @@ namespace Gameplay public int ObservedSupportsMainSceneCallCount; public int ObservedSupportsPostProcessCallCount; public int ObservedRecordMainSceneCallCount; - public int ObservedRecordBuiltinForwardMainSceneCallCount; + public int ObservedRecordSceneCallCount; public int ObservedRecordPostProcessCallCount; public void Start() @@ -288,7 +288,7 @@ namespace Gameplay ManagedForwardRenderPipelineProbe.SupportsMainSceneCallCount = 0; ManagedForwardRenderPipelineProbe.SupportsPostProcessCallCount = 0; ManagedForwardRenderPipelineProbe.RecordMainSceneCallCount = 0; - ManagedForwardRenderPipelineProbe.RecordBuiltinForwardMainSceneCallCount = 0; + ManagedForwardRenderPipelineProbe.RecordSceneCallCount = 0; ManagedForwardRenderPipelineProbe.RecordPostProcessCallCount = 0; GraphicsSettings.renderPipelineAssetType = typeof(ManagedForwardRenderPipelineProbeAsset); @@ -304,8 +304,8 @@ namespace Gameplay ManagedForwardRenderPipelineProbe.SupportsPostProcessCallCount; ObservedRecordMainSceneCallCount = ManagedForwardRenderPipelineProbe.RecordMainSceneCallCount; - ObservedRecordBuiltinForwardMainSceneCallCount = - ManagedForwardRenderPipelineProbe.RecordBuiltinForwardMainSceneCallCount; + ObservedRecordSceneCallCount = + ManagedForwardRenderPipelineProbe.RecordSceneCallCount; ObservedRecordPostProcessCallCount = ManagedForwardRenderPipelineProbe.RecordPostProcessCallCount; } diff --git a/managed/XCEngine.ScriptCore/InternalCalls.cs b/managed/XCEngine.ScriptCore/InternalCalls.cs index 7c1b9637..66fe21a2 100644 --- a/managed/XCEngine.ScriptCore/InternalCalls.cs +++ b/managed/XCEngine.ScriptCore/InternalCalls.cs @@ -388,24 +388,24 @@ namespace XCEngine [MethodImpl(MethodImplOptions.InternalCall)] internal static extern bool - Rendering_ScriptableRenderContext_RecordBuiltinForwardMainScene( + Rendering_ScriptableRenderContext_RecordScene( ulong nativeHandle); [MethodImpl(MethodImplOptions.InternalCall)] internal static extern bool - Rendering_ScriptableRenderContext_RecordBuiltinForwardScenePhase( + Rendering_ScriptableRenderContext_RecordScenePhase( ulong nativeHandle, int scenePhase); [MethodImpl(MethodImplOptions.InternalCall)] internal static extern bool - Rendering_ScriptableRenderContext_RecordBuiltinForwardInjectionPoint( + Rendering_ScriptableRenderContext_RecordSceneInjectionPoint( ulong nativeHandle, int injectionPoint); [MethodImpl(MethodImplOptions.InternalCall)] internal static extern bool - Rendering_ScriptableRenderContext_RecordBuiltinColorScaleFullscreenPass( + Rendering_ScriptableRenderContext_RecordColorScaleFullscreenPass( ulong nativeHandle, ref Vector4 colorScale); diff --git a/managed/XCEngine.ScriptCore/ScriptableRenderContext.cs b/managed/XCEngine.ScriptCore/ScriptableRenderContext.cs index a548097a..8513c199 100644 --- a/managed/XCEngine.ScriptCore/ScriptableRenderContext.cs +++ b/managed/XCEngine.ScriptCore/ScriptableRenderContext.cs @@ -13,40 +13,40 @@ namespace XCEngine (CameraFrameStage)InternalCalls.Rendering_ScriptableRenderContext_GetStage( m_nativeHandle); - public bool RecordBuiltinForwardMainScene() + public bool RecordScene() { return InternalCalls - .Rendering_ScriptableRenderContext_RecordBuiltinForwardMainScene( + .Rendering_ScriptableRenderContext_RecordScene( m_nativeHandle); } - public bool RenderBuiltinForwardMainScene() + public bool RenderScene() { - return RecordBuiltinForwardMainScene(); + return RecordScene(); } - public bool RecordBuiltinForwardScenePhase(ScenePhase scenePhase) + public bool RecordScenePhase(ScenePhase scenePhase) { return InternalCalls - .Rendering_ScriptableRenderContext_RecordBuiltinForwardScenePhase( + .Rendering_ScriptableRenderContext_RecordScenePhase( m_nativeHandle, (int)scenePhase); } - public bool RecordBuiltinForwardInjectionPoint( + public bool RecordSceneInjectionPoint( SceneRenderInjectionPoint injectionPoint) { return InternalCalls - .Rendering_ScriptableRenderContext_RecordBuiltinForwardInjectionPoint( + .Rendering_ScriptableRenderContext_RecordSceneInjectionPoint( m_nativeHandle, (int)injectionPoint); } - public bool RecordBuiltinColorScaleFullscreenPass( + public bool RecordColorScaleFullscreenPass( Vector4 colorScale) { return InternalCalls - .Rendering_ScriptableRenderContext_RecordBuiltinColorScaleFullscreenPass( + .Rendering_ScriptableRenderContext_RecordColorScaleFullscreenPass( m_nativeHandle, ref colorScale); } diff --git a/tests/scripting/test_mono_script_runtime.cpp b/tests/scripting/test_mono_script_runtime.cpp index 0c4aa09e..4e34d77c 100644 --- a/tests/scripting/test_mono_script_runtime.cpp +++ b/tests/scripting/test_mono_script_runtime.cpp @@ -522,7 +522,7 @@ TEST_F( int observedSupportsMainSceneCallCount = 0; int observedSupportsPostProcessCallCount = 0; int observedRecordMainSceneCallCount = 0; - int observedRecordBuiltinForwardMainSceneCallCount = 0; + int observedRecordSceneCallCount = 0; int observedRecordPostProcessCallCount = 0; EXPECT_TRUE(runtime->TryGetFieldValue( selectionScript, @@ -542,8 +542,8 @@ TEST_F( observedRecordMainSceneCallCount)); EXPECT_TRUE(runtime->TryGetFieldValue( selectionScript, - "ObservedRecordBuiltinForwardMainSceneCallCount", - observedRecordBuiltinForwardMainSceneCallCount)); + "ObservedRecordSceneCallCount", + observedRecordSceneCallCount)); EXPECT_TRUE(runtime->TryGetFieldValue( selectionScript, "ObservedRecordPostProcessCallCount", @@ -553,7 +553,7 @@ TEST_F( EXPECT_GT(observedSupportsMainSceneCallCount, 0); EXPECT_GT(observedSupportsPostProcessCallCount, 0); EXPECT_EQ(observedRecordMainSceneCallCount, 1); - EXPECT_EQ(observedRecordBuiltinForwardMainSceneCallCount, 1); + EXPECT_EQ(observedRecordSceneCallCount, 1); EXPECT_EQ(observedRecordPostProcessCallCount, 1); }