Esempio n. 1
0
        public void WritePackedIntDelta(int value, int baseline, NetworkCompressionModel model)
        {
            int diff = (int)(baseline - value);

            WritePackedInt(diff, model);
        }
Esempio n. 2
0
        public uint ReadPackedUIntDelta(ref Context ctx, uint baseline, NetworkCompressionModel model)
        {
            uint delta = (uint)ReadPackedInt(ref ctx, model);

            return(baseline - delta);
        }
Esempio n. 3
0
        public void WritePackedInt(int value, NetworkCompressionModel model)
        {
            uint interleaved = (uint)((value >> 31) ^ (value << 1));      // interleave negative values between positive values: 0, -1, 1, -2, 2

            WritePackedUInt(interleaved, model);
        }
Esempio n. 4
0
        public int ReadPackedInt(ref Context ctx, NetworkCompressionModel model)
        {
            uint folded = ReadPackedUInt(ref ctx, model);

            return((int)(folded >> 1) ^ -(int)(folded & 1));    // Deinterleave values from [0, -1, 1, -2, 2...] to [..., -2, -1, -0, 1, 2, ...]
        }