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/BaseClasses/BitField.h |
Diffstat (limited to 'Runtime/BaseClasses/BitField.h')
-rw-r--r-- | Runtime/BaseClasses/BitField.h | 26 |
1 files changed, 26 insertions, 0 deletions
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<class TransferFunc> +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 |