refactor(srp): enable managed standalone shadow and depth stages
This commit is contained in:
@@ -1261,7 +1261,14 @@ Rendering::FinalColorSettings BuildManagedFinalColorSettings(
|
||||
bool SupportsManagedRenderPipelineStageGraphRecording(
|
||||
Rendering::CameraFrameStage stage) {
|
||||
return Rendering::SupportsCameraFramePipelineGraphRecording(stage) ||
|
||||
Rendering::IsCameraFrameFullscreenSequenceStage(stage);
|
||||
Rendering::IsCameraFrameFullscreenSequenceStage(stage) ||
|
||||
Rendering::IsCameraFrameScenePassRequestStage(stage);
|
||||
}
|
||||
|
||||
bool SupportsManagedScriptableRenderContextSceneRecordingStage(
|
||||
Rendering::CameraFrameStage stage) {
|
||||
return stage == Rendering::CameraFrameStage::MainScene ||
|
||||
Rendering::IsCameraFrameScenePassRequestStage(stage);
|
||||
}
|
||||
|
||||
Rendering::RenderPass* ConfigureManagedFullscreenPass(
|
||||
@@ -5532,7 +5539,8 @@ InternalCall_Rendering_ScriptableRenderContext_RecordScenePhase(
|
||||
if (state == nullptr ||
|
||||
state->graphContext == nullptr ||
|
||||
state->sceneRecorder == nullptr ||
|
||||
state->stage != Rendering::CameraFrameStage::MainScene) {
|
||||
!SupportsManagedScriptableRenderContextSceneRecordingStage(
|
||||
state->stage)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -5599,7 +5607,8 @@ InternalCall_Rendering_ScriptableRenderContext_DrawRenderersByDesc(
|
||||
if (state == nullptr ||
|
||||
state->graphContext == nullptr ||
|
||||
state->sceneRecorder == nullptr ||
|
||||
state->stage != Rendering::CameraFrameStage::MainScene ||
|
||||
!SupportsManagedScriptableRenderContextSceneRecordingStage(
|
||||
state->stage) ||
|
||||
rendererListDescData == nullptr) {
|
||||
return 0;
|
||||
}
|
||||
@@ -5905,6 +5914,29 @@ void InternalCall_Rendering_ScriptableRenderPipelinePlanningContext_ClearShadowC
|
||||
state->plan->ClearShadowCasterStage(true);
|
||||
}
|
||||
|
||||
mono_bool
|
||||
InternalCall_Rendering_ScriptableRenderPipelinePlanningContext_RequestDepthOnlyStage(
|
||||
uint64_t nativeHandle) {
|
||||
ManagedScriptableRenderPipelinePlanningContextState* const state =
|
||||
FindManagedScriptableRenderPipelinePlanningContextState(nativeHandle);
|
||||
return state != nullptr &&
|
||||
state->plan != nullptr &&
|
||||
state->plan->RequestDepthOnlyStage(true)
|
||||
? 1
|
||||
: 0;
|
||||
}
|
||||
|
||||
void InternalCall_Rendering_ScriptableRenderPipelinePlanningContext_ClearDepthOnlyStage(
|
||||
uint64_t nativeHandle) {
|
||||
ManagedScriptableRenderPipelinePlanningContextState* const state =
|
||||
FindManagedScriptableRenderPipelinePlanningContextState(nativeHandle);
|
||||
if (state == nullptr || state->plan == nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
state->plan->ClearDepthOnlyStage(true);
|
||||
}
|
||||
|
||||
mono_bool
|
||||
InternalCall_Rendering_ScriptableRenderPipelinePlanningContext_GetHasFinalColorProcessing(
|
||||
uint64_t nativeHandle) {
|
||||
@@ -6123,6 +6155,8 @@ void RegisterInternalCalls() {
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelinePlanningContext_ClearFullscreenStage", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelinePlanningContext_ClearFullscreenStage));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelinePlanningContext_RequestShadowCasterStage", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelinePlanningContext_RequestShadowCasterStage));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelinePlanningContext_ClearShadowCasterStage", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelinePlanningContext_ClearShadowCasterStage));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelinePlanningContext_RequestDepthOnlyStage", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelinePlanningContext_RequestDepthOnlyStage));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelinePlanningContext_ClearDepthOnlyStage", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelinePlanningContext_ClearDepthOnlyStage));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelinePlanningContext_GetHasFinalColorProcessing", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelinePlanningContext_GetHasFinalColorProcessing));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_CameraRenderRequestContext_GetRenderedBaseCameraCount", reinterpret_cast<const void*>(&InternalCall_Rendering_CameraRenderRequestContext_GetRenderedBaseCameraCount));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_CameraRenderRequestContext_GetRenderedRequestCount", reinterpret_cast<const void*>(&InternalCall_Rendering_CameraRenderRequestContext_GetRenderedRequestCount));
|
||||
|
||||
Reference in New Issue
Block a user