From 15740faf9fe9fe4be08965098bbf2947e096aeeb Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 14 Aug 2019 22:50:43 +0800 Subject: +Unity Runtime code --- Runtime/Mono/MonoBehaviourSerialization.h | 51 +++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Runtime/Mono/MonoBehaviourSerialization.h (limited to 'Runtime/Mono/MonoBehaviourSerialization.h') diff --git a/Runtime/Mono/MonoBehaviourSerialization.h b/Runtime/Mono/MonoBehaviourSerialization.h new file mode 100644 index 0000000..1e7fadb --- /dev/null +++ b/Runtime/Mono/MonoBehaviourSerialization.h @@ -0,0 +1,51 @@ +#pragma once + +#include "Runtime/Scripting/Backend/ScriptingTypes.h" + +static bool CalculateTransferPrivateVariables (MonoClass* klass); +struct BackupState; +YAMLNode* ConvertBackupToYAML (BackupState& binary); + +enum { kClassSerializationDepthLimit = 7 }; + + +struct MonoPPtr : PPtr +{ + MonoPPtr () { m_Buffer = NULL; m_Class = SCRIPTING_NULL; } + + char* m_Buffer; + ScriptingTypePtr m_Class; +}; + +struct TransferScriptInstance; + +template +void TransferScriptData (TransferScriptInstance& info, TransferFunction& transfer); + +struct TransferScriptInstance +{ + inline static const char* GetTypeString () { return "Generic Mono"; } + inline static bool IsAnimationChannel () { return false; } + inline static bool MightContainPPtr () { return true; } + inline static bool AllowTransferOptimization () { return false; } + + template inline + void Transfer (TransferFunction& transfer) + { + TransferScriptData (*this, transfer); + } + + TransferScriptInstance() + { + depthCounter = -9999; + } + + ScriptingObjectPtr instance; + ScriptingTypePtr klass; + bool transferPrivate; + const CommonScriptingClasses* commonClasses; + int depthCounter; +}; + +ScriptingObjectPtr TransferPPtrToMonoObjectUnChecked(int instanceID, bool threadedLoading); +ScriptingObjectPtr TransferPPtrToMonoObject(int instanceID, ScriptingClassPtr klass, int classID, ScriptingFieldPtr field, ScriptingObjectPtr parentInstance, bool threadedLoading); -- cgit v1.1-26-g67d0