refactor(rendering): remove builtin naming from managed srp context
This commit is contained in:
@@ -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<Math::Vector4> queuedBuiltinColorScaleFullscreenPasses = {};
|
||||
Rendering::Pipelines::BuiltinForwardSceneRecorder* sceneRecorder = nullptr;
|
||||
std::vector<Math::Vector4> queuedColorScaleFullscreenPasses = {};
|
||||
};
|
||||
|
||||
struct ManagedScriptableRenderPipelineCameraRequestContextState {
|
||||
@@ -408,14 +407,14 @@ public:
|
||||
|
||||
void Shutdown() override {
|
||||
for (std::unique_ptr<Rendering::Passes::BuiltinColorScalePostProcessPass>& 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<Rendering::Passes::BuiltinColorScalePostProcessPass>());
|
||||
}
|
||||
|
||||
std::vector<Rendering::RenderPass*> 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<std::unique_ptr<Rendering::Passes::BuiltinColorScalePostProcessPass>>
|
||||
m_builtinColorScalePassPool = {};
|
||||
std::unique_ptr<Rendering::NativeSceneRenderer> m_builtinSceneRenderer = nullptr;
|
||||
m_colorScalePassPool = {};
|
||||
std::unique_ptr<Rendering::NativeSceneRenderer> m_defaultSceneRenderer = nullptr;
|
||||
};
|
||||
|
||||
std::unique_ptr<Rendering::RenderPipelineStageRecorder>
|
||||
@@ -2568,62 +2566,62 @@ int32_t InternalCall_Rendering_ScriptableRenderContext_GetStage(
|
||||
: static_cast<int32_t>(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<Rendering::ScenePhase>(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<Rendering::SceneRenderInjectionPoint>(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<const void*>(&InternalCall_Rendering_SetRenderPipelineAssetType));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_GetRenderPipelineAssetTypeName", reinterpret_cast<const void*>(&InternalCall_Rendering_GetRenderPipelineAssetTypeName));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_GetStage", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_GetStage));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordBuiltinForwardMainScene", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_RecordBuiltinForwardMainScene));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordBuiltinForwardScenePhase", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_RecordBuiltinForwardScenePhase));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordBuiltinForwardInjectionPoint", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_RecordBuiltinForwardInjectionPoint));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordBuiltinColorScaleFullscreenPass", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_RecordBuiltinColorScaleFullscreenPass));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordScene", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_RecordScene));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordScenePhase", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_RecordScenePhase));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordSceneInjectionPoint", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_RecordSceneInjectionPoint));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordColorScaleFullscreenPass", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_RecordColorScaleFullscreenPass));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelineCameraRequestContext_GetRenderedBaseCameraCount", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_GetRenderedBaseCameraCount));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelineCameraRequestContext_GetRenderedRequestCount", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_GetRenderedRequestCount));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelineCameraRequestContext_GetHasDirectionalShadow", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_GetHasDirectionalShadow));
|
||||
|
||||
Reference in New Issue
Block a user