refactor(srp): remove managed standalone pass key seam

This commit is contained in:
2026-04-21 18:36:11 +08:00
parent 0a4c782122
commit ed738475fe
7 changed files with 80 additions and 258 deletions

View File

@@ -1504,11 +1504,6 @@ public:
bool UsesNativeCameraFramePlanBaseline() const override;
bool UsesNativeCameraFramePlanBaseline(
int32_t rendererIndex) const override;
std::string GetCameraFrameStandalonePassAssetKey(
Rendering::CameraFrameStage stage) const override;
std::string GetCameraFrameStandalonePassAssetKey(
Rendering::CameraFrameStage stage,
int32_t rendererIndex) const override;
MonoScriptRuntime* GetRuntime() const {
return m_runtime;
@@ -1551,11 +1546,6 @@ private:
MonoObject* assetObject) const;
MonoMethod* ResolveConfigureDirectionalShadowExecutionStateMethod(
MonoObject* assetObject) const;
MonoMethod* ResolveGetCameraFrameStandalonePassAssetKeyMethod(
MonoObject* assetObject) const;
MonoMethod*
ResolveGetCameraFrameStandalonePassAssetKeyContextualMethod(
MonoObject* assetObject) const;
MonoMethod* ResolveReleaseRuntimeResourcesMethod(
MonoObject* assetObject) const;
@@ -1581,10 +1571,6 @@ private:
nullptr;
mutable MonoMethod*
m_configureDirectionalShadowExecutionStateMethod = nullptr;
mutable MonoMethod* m_getCameraFrameStandalonePassAssetKeyMethod =
nullptr;
mutable MonoMethod*
m_getCameraFrameStandalonePassAssetKeyContextualMethod = nullptr;
mutable MonoMethod* m_releaseRuntimeResourcesMethod = nullptr;
mutable bool m_ownsManagedAssetHandle = false;
mutable bool m_assetCreationAttempted = false;
@@ -2380,72 +2366,6 @@ bool MonoManagedRenderPipelineAssetRuntime::UsesNativeCameraFramePlanBaseline(
usesBaseline;
}
std::string MonoManagedRenderPipelineAssetRuntime::
GetCameraFrameStandalonePassAssetKey(
Rendering::CameraFrameStage stage) const {
return GetCameraFrameStandalonePassAssetKey(
stage,
-1);
}
std::string MonoManagedRenderPipelineAssetRuntime::
GetCameraFrameStandalonePassAssetKey(
Rendering::CameraFrameStage stage,
int32_t rendererIndex) const {
if (!SyncManagedAssetRuntimeState()) {
return {};
}
MonoObject* const assetObject = GetManagedAssetObject();
if (assetObject == nullptr) {
return {};
}
MonoMethod* const contextualMethod =
ResolveGetCameraFrameStandalonePassAssetKeyContextualMethod(
assetObject);
if (contextualMethod != nullptr) {
int32_t managedStage =
static_cast<int32_t>(stage);
void* args[2] = {
&managedStage,
&rendererIndex };
MonoObject* managedKeyObject = nullptr;
if (!m_runtime->InvokeManagedMethod(
assetObject,
contextualMethod,
args,
&managedKeyObject)) {
return {};
}
return MonoStringToUtf8(
reinterpret_cast<MonoString*>(managedKeyObject));
}
MonoMethod* const method =
ResolveGetCameraFrameStandalonePassAssetKeyMethod(
assetObject);
if (method == nullptr) {
return {};
}
int32_t managedStage =
static_cast<int32_t>(stage);
void* args[1] = { &managedStage };
MonoObject* managedKeyObject = nullptr;
if (!m_runtime->InvokeManagedMethod(
assetObject,
method,
args,
&managedKeyObject)) {
return {};
}
return MonoStringToUtf8(
reinterpret_cast<MonoString*>(managedKeyObject));
}
bool MonoManagedRenderPipelineAssetRuntime::AcquireManagedPipelineHandle(
uint32_t& outPipelineHandle) const {
if (!SyncManagedAssetRuntimeState()) {
@@ -2657,8 +2577,6 @@ void MonoManagedRenderPipelineAssetRuntime::ReleaseManagedAsset() const {
m_usesNativeCameraFramePlanBaselineContextualMethod = nullptr;
m_configureRenderSceneSetupMethod = nullptr;
m_configureDirectionalShadowExecutionStateMethod = nullptr;
m_getCameraFrameStandalonePassAssetKeyMethod = nullptr;
m_getCameraFrameStandalonePassAssetKeyContextualMethod = nullptr;
m_pipelineRendererAsset.reset();
m_pipelineRendererAssetResolved = false;
m_contextualPipelineRendererAssets.clear();
@@ -2869,37 +2787,6 @@ MonoManagedRenderPipelineAssetRuntime::
return m_configureDirectionalShadowExecutionStateMethod;
}
MonoMethod*
MonoManagedRenderPipelineAssetRuntime::
ResolveGetCameraFrameStandalonePassAssetKeyMethod(
MonoObject* assetObject) const {
if (m_getCameraFrameStandalonePassAssetKeyMethod == nullptr) {
m_getCameraFrameStandalonePassAssetKeyMethod =
m_runtime->ResolveManagedMethod(
assetObject,
"GetCameraFrameStandalonePassAssetKey",
1);
}
return m_getCameraFrameStandalonePassAssetKeyMethod;
}
MonoMethod*
MonoManagedRenderPipelineAssetRuntime::
ResolveGetCameraFrameStandalonePassAssetKeyContextualMethod(
MonoObject* assetObject) const {
if (m_getCameraFrameStandalonePassAssetKeyContextualMethod ==
nullptr) {
m_getCameraFrameStandalonePassAssetKeyContextualMethod =
m_runtime->ResolveManagedMethod(
assetObject,
"GetCameraFrameStandalonePassAssetKeyContextual",
2);
}
return m_getCameraFrameStandalonePassAssetKeyContextualMethod;
}
MonoMethod*
MonoManagedRenderPipelineAssetRuntime::ResolveReleaseRuntimeResourcesMethod(
MonoObject* assetObject) const {