diff options
author | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-08-14 22:50:43 +0800 |
commit | 15740faf9fe9fe4be08965098bbf2947e096aeeb (patch) | |
tree | a730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/Export/Serialization/SerializedStateReader.txt |
Diffstat (limited to 'Runtime/Export/Serialization/SerializedStateReader.txt')
-rw-r--r-- | Runtime/Export/Serialization/SerializedStateReader.txt | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/Runtime/Export/Serialization/SerializedStateReader.txt b/Runtime/Export/Serialization/SerializedStateReader.txt new file mode 100644 index 0000000..35f6f0c --- /dev/null +++ b/Runtime/Export/Serialization/SerializedStateReader.txt @@ -0,0 +1,214 @@ +C++RAW + +#include "UnityPrefix.h" + +#include "Configuration/UnityConfigure.h" +#include "Runtime/Mono/MonoBehaviour.h" +#include "Runtime/Scripting/ScriptingObjectWithIntPtrField.h" + +#if ENABLE_SERIALIZATION_BY_CODEGENERATION +# include "Runtime/Mono/MonoBehaviourSerialization_ByCodeGeneration.h" +#endif + +CSRAW +using System; +using System.Collections.Generic; +using UnityEngine; +using Object=UnityEngine.Object; + +namespace UnityEngine.Serialization +{ + +CONDITIONAL ENABLE_SERIALIZATION_BY_CODEGENERATION +CLASS public SerializedStateReader : ISerializedStateReader + + CSRAW public static ISerializedStateReader Instance = null; + + CSRAW public static void Init() + { + if(Instance == null) + Instance = new SerializedStateReader(); + } + CSRAW public static void SetInstance(ISerializedStateReader reader) + { + Instance = reader; + } + CSRAW public void Align() + { + INTERNAL_Align(); + } + + THREAD_SAFE + CUSTOM private static void INTERNAL_Align() + { + NativeExt_MonoBehaviourSerialization_ReaderAlign(); + } + + CSRAW public byte ReadByte() + { + return INTERNAL_ReadByte(); + } + + THREAD_SAFE + CUSTOM private static byte INTERNAL_ReadByte() + { + return NativeExt_MonoBehaviourSerialization_ReadByte(); + } + + CSRAW public int ReadInt32() + { + return INTERNAL_ReadInt32(); + } + + THREAD_SAFE + CUSTOM private static int INTERNAL_ReadInt32() + { + return NativeExt_MonoBehaviourSerialization_ReadInt(); + } + + CSRAW public float ReadSingle() + { + return INTERNAL_ReadSingle(); + } + + THREAD_SAFE + CUSTOM private static float INTERNAL_ReadSingle() + { + return NativeExt_MonoBehaviourSerialization_ReadFloat(); + } + + CSRAW public double ReadDouble() + { + return INTERNAL_ReadDouble(); + } + + THREAD_SAFE + CUSTOM private static double INTERNAL_ReadDouble() + { + return NativeExt_MonoBehaviourSerialization_ReadDouble(); + } + + CSRAW public bool ReadBoolean() + { + return INTERNAL_ReadBoolean(); + } + + THREAD_SAFE + CUSTOM private static bool INTERNAL_ReadBoolean() + { + return NativeExt_MonoBehaviourSerialization_ReadBool() == 1; + } + + CSRAW public string ReadString() + { + return INTERNAL_ReadString(); + } + + THREAD_SAFE + CUSTOM private static string INTERNAL_ReadString() + { + return NativeExt_MonoBehaviourSerialization_ReadString(); + } + + CSRAW public object ReadUnityEngineObject() + { + return INTERNAL_ReadUnityEngineObject(); + } + + THREAD_SAFE + CUSTOM private static object INTERNAL_ReadUnityEngineObject() + { + return NativeExt_MonoBehaviourSerialization_ReadUnityEngineObject(); + } + + CSRAW public object ReadAnimationCurve() + { + var animation_curve = new AnimationCurve(); + INTERNAL_ReadAnimationCurve(animation_curve); + return animation_curve; + } + + THREAD_SAFE + CUSTOM private static void INTERNAL_ReadAnimationCurve(AnimationCurve animation_curve) + { + NativeExt_MonoBehaviourSerialization_ReadAnimationCurve(animation_curve); + } + + CSRAW public object ReadGradient() + { + var gradient = new Gradient(); + INTERNAL_ReadGradient(gradient); + return gradient; + } + + THREAD_SAFE + CUSTOM private static void INTERNAL_ReadGradient(Gradient gradient) + { + NativeExt_MonoBehaviourSerialization_ReadGradient(gradient); + } + + CSRAW public object ReadGUIStyle() + { + var style = new GUIStyle(); + INTERNAL_ReadGUIStyle(style); + return style; + } + + THREAD_SAFE + CUSTOM private static void INTERNAL_ReadGUIStyle(GUIStyle style) + { + NativeExt_MonoBehaviourSerialization_ReadGUIStyle(style); + } + + CSRAW public object ReadRectOffset() + { + var rect_offset = new RectOffset(); + INTERNAL_RectOffset(rect_offset); + return rect_offset; + } + + THREAD_SAFE + CUSTOM private static void INTERNAL_RectOffset(RectOffset rect_offset) + { + NativeExt_MonoBehaviourSerialization_ReadRectOffset(rect_offset); + } + + CSRAW public byte[] ReadArrayOfByte() + { + return ReadArrayInternal<byte>(ReadByte); + } + + CSRAW public List<byte> ReadListOfByte() + { + return ReadListInternal<byte>(ReadByte); + } + + CSRAW private T[] ReadArrayInternal<T>(Func<T> reader) + { + var length = ReadInt32(); + var result = new T[length]; + for(var i = 0; i < length; ++i) + result[i] = reader(); + return result; + } + + CSRAW private List<T> ReadListInternal<T>(Func<T> reader) + { + var length = ReadInt32(); + var result = new List<T>(length); + for(var i = 0; i < length; ++i) + result.Add(reader()); + return result; + } + +END + +CONDITIONAL !ENABLE_SERIALIZATION_BY_CODEGENERATION && UNITY_METRO +CLASS public SerializedStateReader + CSRAW public static void SetInstance(ISerializedStateReader reader) + { + } +END + +CSRAW +} |