refactor(srp): signal managed camera frame baseline directly
This commit is contained in:
@@ -1370,6 +1370,9 @@ public:
|
||||
override;
|
||||
std::string GetCameraFramePlanPolicyAssetKey(
|
||||
int32_t rendererIndex) const override;
|
||||
bool UsesNativeCameraFramePlanBaseline() const override;
|
||||
bool UsesNativeCameraFramePlanBaseline(
|
||||
int32_t rendererIndex) const override;
|
||||
std::string GetRenderSceneSetupPolicyAssetKey() const
|
||||
override;
|
||||
std::string GetRenderSceneSetupPolicyAssetKey(
|
||||
@@ -1423,6 +1426,10 @@ private:
|
||||
MonoObject* assetObject) const;
|
||||
MonoMethod* ResolveGetCameraFramePlanPolicyAssetKeyContextualMethod(
|
||||
MonoObject* assetObject) const;
|
||||
MonoMethod* ResolveUsesNativeCameraFramePlanBaselineMethod(
|
||||
MonoObject* assetObject) const;
|
||||
MonoMethod* ResolveUsesNativeCameraFramePlanBaselineContextualMethod(
|
||||
MonoObject* assetObject) const;
|
||||
MonoMethod* ResolveGetRenderSceneSetupPolicyAssetKeyMethod(
|
||||
MonoObject* assetObject) const;
|
||||
MonoMethod* ResolveGetRenderSceneSetupPolicyAssetKeyContextualMethod(
|
||||
@@ -1460,6 +1467,11 @@ private:
|
||||
mutable MonoMethod*
|
||||
m_getCameraFramePlanPolicyAssetKeyContextualMethod =
|
||||
nullptr;
|
||||
mutable MonoMethod* m_usesNativeCameraFramePlanBaselineMethod =
|
||||
nullptr;
|
||||
mutable MonoMethod*
|
||||
m_usesNativeCameraFramePlanBaselineContextualMethod =
|
||||
nullptr;
|
||||
mutable MonoMethod* m_getRenderSceneSetupPolicyAssetKeyMethod =
|
||||
nullptr;
|
||||
mutable MonoMethod*
|
||||
@@ -2178,6 +2190,66 @@ std::string MonoManagedRenderPipelineAssetRuntime::
|
||||
reinterpret_cast<MonoString*>(managedKeyObject));
|
||||
}
|
||||
|
||||
bool MonoManagedRenderPipelineAssetRuntime::UsesNativeCameraFramePlanBaseline()
|
||||
const {
|
||||
return UsesNativeCameraFramePlanBaseline(-1);
|
||||
}
|
||||
|
||||
bool MonoManagedRenderPipelineAssetRuntime::UsesNativeCameraFramePlanBaseline(
|
||||
int32_t rendererIndex) const {
|
||||
if (!SyncManagedAssetRuntimeState()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
MonoObject* const assetObject = GetManagedAssetObject();
|
||||
if (assetObject == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
MonoMethod* const contextualMethod =
|
||||
ResolveUsesNativeCameraFramePlanBaselineContextualMethod(
|
||||
assetObject);
|
||||
if (contextualMethod != nullptr) {
|
||||
void* args[1] = { &rendererIndex };
|
||||
MonoObject* managedValueObject = nullptr;
|
||||
if (!m_runtime->InvokeManagedMethod(
|
||||
assetObject,
|
||||
contextualMethod,
|
||||
args,
|
||||
&managedValueObject)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool usesBaseline = false;
|
||||
return TryUnboxManagedBoolean(
|
||||
managedValueObject,
|
||||
usesBaseline) &&
|
||||
usesBaseline;
|
||||
}
|
||||
|
||||
MonoMethod* const method =
|
||||
ResolveUsesNativeCameraFramePlanBaselineMethod(
|
||||
assetObject);
|
||||
if (method == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
MonoObject* managedValueObject = nullptr;
|
||||
if (!m_runtime->InvokeManagedMethod(
|
||||
assetObject,
|
||||
method,
|
||||
nullptr,
|
||||
&managedValueObject)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool usesBaseline = false;
|
||||
return TryUnboxManagedBoolean(
|
||||
managedValueObject,
|
||||
usesBaseline) &&
|
||||
usesBaseline;
|
||||
}
|
||||
|
||||
std::string MonoManagedRenderPipelineAssetRuntime::
|
||||
GetRenderSceneSetupPolicyAssetKey() const {
|
||||
return GetRenderSceneSetupPolicyAssetKey(-1);
|
||||
@@ -2594,6 +2666,8 @@ void MonoManagedRenderPipelineAssetRuntime::ReleaseManagedAsset() const {
|
||||
m_getPipelineRendererAssetKeyContextualMethod = nullptr;
|
||||
m_getCameraFramePlanPolicyAssetKeyMethod = nullptr;
|
||||
m_getCameraFramePlanPolicyAssetKeyContextualMethod = nullptr;
|
||||
m_usesNativeCameraFramePlanBaselineMethod = nullptr;
|
||||
m_usesNativeCameraFramePlanBaselineContextualMethod = nullptr;
|
||||
m_getRenderSceneSetupPolicyAssetKeyMethod = nullptr;
|
||||
m_getRenderSceneSetupPolicyAssetKeyContextualMethod = nullptr;
|
||||
m_getDirectionalShadowPlanningPolicyAssetKeyMethod = nullptr;
|
||||
@@ -2781,6 +2855,37 @@ MonoManagedRenderPipelineAssetRuntime::
|
||||
return m_getCameraFramePlanPolicyAssetKeyContextualMethod;
|
||||
}
|
||||
|
||||
MonoMethod*
|
||||
MonoManagedRenderPipelineAssetRuntime::
|
||||
ResolveUsesNativeCameraFramePlanBaselineMethod(
|
||||
MonoObject* assetObject) const {
|
||||
if (m_usesNativeCameraFramePlanBaselineMethod == nullptr) {
|
||||
m_usesNativeCameraFramePlanBaselineMethod =
|
||||
m_runtime->ResolveManagedMethod(
|
||||
assetObject,
|
||||
"UsesNativeCameraFramePlanBaseline",
|
||||
0);
|
||||
}
|
||||
|
||||
return m_usesNativeCameraFramePlanBaselineMethod;
|
||||
}
|
||||
|
||||
MonoMethod*
|
||||
MonoManagedRenderPipelineAssetRuntime::
|
||||
ResolveUsesNativeCameraFramePlanBaselineContextualMethod(
|
||||
MonoObject* assetObject) const {
|
||||
if (m_usesNativeCameraFramePlanBaselineContextualMethod ==
|
||||
nullptr) {
|
||||
m_usesNativeCameraFramePlanBaselineContextualMethod =
|
||||
m_runtime->ResolveManagedMethod(
|
||||
assetObject,
|
||||
"UsesNativeCameraFramePlanBaselineContextual",
|
||||
1);
|
||||
}
|
||||
|
||||
return m_usesNativeCameraFramePlanBaselineContextualMethod;
|
||||
}
|
||||
|
||||
MonoMethod*
|
||||
MonoManagedRenderPipelineAssetRuntime::
|
||||
ResolveGetRenderSceneSetupPolicyAssetKeyMethod(
|
||||
|
||||
Reference in New Issue
Block a user