From 15740faf9fe9fe4be08965098bbf2947e096aeeb Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 14 Aug 2019 22:50:43 +0800 Subject: +Unity Runtime code --- .../TransferFunctions/StreamedBinaryWrite.cpp | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 Runtime/Serialize/TransferFunctions/StreamedBinaryWrite.cpp (limited to 'Runtime/Serialize/TransferFunctions/StreamedBinaryWrite.cpp') diff --git a/Runtime/Serialize/TransferFunctions/StreamedBinaryWrite.cpp b/Runtime/Serialize/TransferFunctions/StreamedBinaryWrite.cpp new file mode 100644 index 0000000..a7699e9 --- /dev/null +++ b/Runtime/Serialize/TransferFunctions/StreamedBinaryWrite.cpp @@ -0,0 +1,76 @@ +#include "UnityPrefix.h" +#include "StreamedBinaryWrite.h" +#include "Configuration/UnityConfigure.h" + +template +CachedWriter& StreamedBinaryWrite::Init (int flags, BuildTargetSelection target) +{ + m_Flags = flags; + m_UserData = NULL; + m_Target = target; + +#if UNITY_EDITOR && CHECK_SERIALIZE_ALIGNMENT + m_Cache.SetCheckSerializeAlignment(true); + #endif + return m_Cache; +} + +template +CachedWriter& StreamedBinaryWrite::Init (const CachedWriter& cachedWriter, int flags, BuildTargetSelection target, const BuildUsageTag& buildUsageTag) +{ + m_Flags = flags; + m_Target = target; + m_Cache = cachedWriter; + m_UserData = NULL; + + #if UNITY_EDITOR + m_BuildUsageTag = buildUsageTag; + #endif + +#if UNITY_EDITOR && CHECK_SERIALIZE_ALIGNMENT + m_Cache.SetCheckSerializeAlignment(true); +#endif + return m_Cache; +} + +template +void StreamedBinaryWrite::Align () +{ + m_Cache.Align4Write(); +} + + +template +void StreamedBinaryWrite::TransferTypeless (unsigned* byteSize, const char* /* name*/, TransferMetaFlags/* metaFlag*/) +{ + SInt32 size = *byteSize; + Transfer (size, "size"); +} + +// markerID is the id that was given by TransferTypeless. +// byteStart is +// optional temporaryDataHandle: temporaryDataHandle is a handle to the data +// optional copyData: is a pointer to where the data will be written or read from +template +void StreamedBinaryWrite::TransferTypelessData (unsigned byteSize, void* copyData, int/* metaData*/) +{ + AssertIf(copyData == NULL && byteSize != 0); + m_Cache.Write (copyData, byteSize); + Align(); +} + + +template CachedWriter& StreamedBinaryWrite::Init (int flags, BuildTargetSelection target); +template CachedWriter& StreamedBinaryWrite::Init (int flags, BuildTargetSelection target); + +template CachedWriter& StreamedBinaryWrite::Init (const CachedWriter& cachedWriter, int flags, BuildTargetSelection target, const BuildUsageTag& buildUsageTag); +template CachedWriter& StreamedBinaryWrite::Init (const CachedWriter& cachedWriter, int flags, BuildTargetSelection target, const BuildUsageTag& buildUsageTag); + +template void StreamedBinaryWrite::Align (); +template void StreamedBinaryWrite::Align (); + +template void StreamedBinaryWrite::TransferTypeless (unsigned* byteSize, const char*/* name*/, TransferMetaFlags/* metaFlag*/); +template void StreamedBinaryWrite::TransferTypeless (unsigned* byteSize, const char*/* name*/, TransferMetaFlags/* metaFlag*/); + +template void StreamedBinaryWrite::TransferTypelessData (unsigned byteSize, void* copyData, int metaData); +template void StreamedBinaryWrite::TransferTypelessData (unsigned byteSize, void* copyData, int metaData); -- cgit v1.1-26-g67d0