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/Serialize/TransferFunctions/StreamedBinaryRead.cpp |
Diffstat (limited to 'Runtime/Serialize/TransferFunctions/StreamedBinaryRead.cpp')
-rw-r--r-- | Runtime/Serialize/TransferFunctions/StreamedBinaryRead.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Runtime/Serialize/TransferFunctions/StreamedBinaryRead.cpp b/Runtime/Serialize/TransferFunctions/StreamedBinaryRead.cpp new file mode 100644 index 0000000..4daa8fb --- /dev/null +++ b/Runtime/Serialize/TransferFunctions/StreamedBinaryRead.cpp @@ -0,0 +1,54 @@ +#include "UnityPrefix.h" +#include "StreamedBinaryRead.h" + +template <bool kSwapEndianess> +void StreamedBinaryRead<kSwapEndianess>::Align () +{ + m_Cache.Align4Read(); +} + +template <bool kSwapEndianess> +void StreamedBinaryRead<kSwapEndianess>::TransferTypeless (unsigned* byteSize, const char*/* name*/, TransferMetaFlags/* metaFlag*/) +{ + SInt32 size; + Transfer (size, "size"); + *byteSize = size; +} + +// markerID is the id that was given by TransferTypeless. +// optional copyData: is a pointer to where the data will be written or read from +template <bool kSwapEndianess> +void StreamedBinaryRead<kSwapEndianess>::TransferTypelessData (unsigned byteSize, void* copyData, int metaData) +{ + if (byteSize == 0) + return; + + if (copyData == NULL) + { + // seek byte + m_Cache.Skip(byteSize); + } + else + m_Cache.Read (copyData, byteSize); + Align(); +} + +template <bool kSwapEndianess> +void StreamedBinaryRead<kSwapEndianess>::ReadDirect (void* data, int byteSize) +{ + AssertIf (kSwapEndianess); + m_Cache.Read (data, byteSize); +} + + +template void StreamedBinaryRead<true>::ReadDirect (void* data, int byteSize); +template void StreamedBinaryRead<false>::ReadDirect (void* data, int byteSize); + +template void StreamedBinaryRead<true>::Align(); +template void StreamedBinaryRead<false>::Align(); + +template void StreamedBinaryRead<true>::TransferTypelessData (unsigned byteSize, void* copyData, int metaData); +template void StreamedBinaryRead<false>::TransferTypelessData (unsigned byteSize, void* copyData, int metaData); + +template void StreamedBinaryRead<true>::TransferTypeless (unsigned* byteSize, const char*/* name*/, TransferMetaFlags/* metaFlag*/); +template void StreamedBinaryRead<false>::TransferTypeless (unsigned* byteSize, const char*/* name*/, TransferMetaFlags/* metaFlag*/); |