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/BaseClasses/BitField.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Runtime/BaseClasses/BitField.h (limited to 'Runtime/BaseClasses/BitField.h') diff --git a/Runtime/BaseClasses/BitField.h b/Runtime/BaseClasses/BitField.h new file mode 100644 index 0000000..1ead092 --- /dev/null +++ b/Runtime/BaseClasses/BitField.h @@ -0,0 +1,26 @@ +#ifndef BITFIELD_H +#define BITFIELD_H +#include "Runtime/Serialize/SerializeUtility.h" + +struct BitField +{ + DECLARE_SERIALIZE_OPTIMIZE_TRANSFER (BitField) + UInt32 m_Bits; +}; + +enum { kPreUnity2UnusedLayerMask = 1 << 5 }; + +template +void BitField::Transfer (TransferFunc& transfer) +{ + transfer.SetVersion (2); + transfer.Transfer (m_Bits, "m_Bits", kHideInEditorMask | kGenerateBitwiseDifferences); + + if (transfer.IsOldVersion(1)) + { + if (m_Bits & kPreUnity2UnusedLayerMask) + m_Bits |= 0xFFFF << 16; + } +} + +#endif -- cgit v1.1-26-g67d0