Tighten managed SRP asset materialization
This commit is contained in:
@@ -3013,6 +3013,13 @@ bool MonoManagedRenderPipelineAssetRuntime::EnsureManagedAsset() const {
|
||||
return m_ownsManagedAssetHandle;
|
||||
}
|
||||
|
||||
if (m_descriptor.HasAssetRef()) {
|
||||
m_runtime->SetError(
|
||||
"Managed render pipeline asset selected by AssetRef has no serialized asset graph; refusing class-default materialization: " +
|
||||
m_descriptor.GetFullName() + ".");
|
||||
return false;
|
||||
}
|
||||
|
||||
MonoClass* assetClass = nullptr;
|
||||
if (!m_runtime->ResolveManagedClass(
|
||||
m_descriptor.assemblyName,
|
||||
@@ -9063,27 +9070,10 @@ bool MonoScriptRuntime::TryEnsureManagedRenderPipelineAssetHandle(
|
||||
return true;
|
||||
}
|
||||
|
||||
MonoClass* assetClass = nullptr;
|
||||
if (!ResolveManagedClass(
|
||||
ioDescriptor.assemblyName,
|
||||
ioDescriptor.namespaceName,
|
||||
ioDescriptor.className,
|
||||
assetClass) ||
|
||||
assetClass == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!IsMonoClassOrSubclass(
|
||||
assetClass,
|
||||
m_scriptableRenderPipelineAssetClass)) {
|
||||
SetError(
|
||||
"Managed render pipeline asset must derive from ScriptableRenderPipelineAsset: " +
|
||||
ioDescriptor.GetFullName() + ".");
|
||||
return false;
|
||||
}
|
||||
|
||||
return CreateExternalManagedObject(assetClass, ioDescriptor.managedAssetHandle) &&
|
||||
ioDescriptor.managedAssetHandle != 0u;
|
||||
SetError(
|
||||
"Configured managed render pipeline asset has no serialized asset graph; refusing GraphicsSettings class-default materialization: " +
|
||||
ioDescriptor.GetFullName() + ".");
|
||||
return false;
|
||||
}
|
||||
|
||||
void MonoScriptRuntime::DestroyExternalManagedObject(uint32_t gcHandle) {
|
||||
|
||||
Reference in New Issue
Block a user