コード例 #1
0
        /// <summary>
        /// Primary UNSAFE Reader for PackedBits.
        /// </summary>
        public unsafe static ulong ReadPackedBits(ulong *uPtr, ref int bitposition, int bits)
        {
            if (bits == 0)
            {
                return(0);
            }

            int sizebits  = bits.UsedBitCount();
            int valuebits = (int)ArraySerializeUnsafe.Read(uPtr, ref bitposition, sizebits);

            //UnityEngine.Debug.Log("Read Packedunsafe sizer/value : " + sizebits + " : " + valuebits);
            return(ArraySerializeUnsafe.Read(uPtr, ref bitposition, valuebits));
        }
コード例 #2
0
        /// <summary>
        /// EXPERIMENTAL: Primary UNSAFE WritePacked Method.
        /// </summary>
        /// <param name="countbits"></param>
        public unsafe static void WritePackedBits(ulong *uPtr, ulong value, ref int bitposition, int bits)
        {
            if (bits == 0)
            {
                return;
            }

            int valuebits = value.UsedBitCount();
            int sizebits  = bits.UsedBitCount();

            ArraySerializeUnsafe.Write(uPtr, (uint)(valuebits), ref bitposition, sizebits);
            ArraySerializeUnsafe.Write(uPtr, value, ref bitposition, valuebits);

            //UnityEngine.Debug.Log("Write Unsafe PBits " + value + " = " + sizebits + " : " + valuebits);
        }