示例#1
0
        private static void processMemBlt(RdpPacket data, int present, bool delta)
        {
            if ((present & 1) != 0)
            {
                MemBltOrder.CacheID    = data.ReadByte();
                MemBltOrder.ColorTable = data.ReadByte();
            }

            if ((present & 2) != 0)
            {
                MemBltOrder.X = setCoordinate(data, MemBltOrder.X, delta);
            }

            if ((present & 4) != 0)
            {
                MemBltOrder.Y = setCoordinate(data, MemBltOrder.Y, delta);
            }

            if ((present & 8) != 0)
            {
                MemBltOrder.CX = setCoordinate(data, MemBltOrder.CX, delta);
            }

            if ((present & 0x10) != 0)
            {
                MemBltOrder.CY = setCoordinate(data, MemBltOrder.CY, delta);
            }

            if ((present & 0x20) != 0)
            {
                MemBltOrder.Opcode = ROP2_S(data.ReadByte());
            }

            if ((present & 0x40) != 0)
            {
                MemBltOrder.SrcX = setCoordinate(data, MemBltOrder.SrcX, delta);
            }

            if ((present & 0x80) != 0)
            {
                MemBltOrder.SrcY = setCoordinate(data, MemBltOrder.SrcY, delta);
            }

            if ((present & 0x100) != 0)
            {
                MemBltOrder.CacheIDX = data.ReadLittleEndian16();
            }

            MemBltOrder.drawMemBltOrder();
        }