internal static void drawMultiScreenBltOrder()
 {
     foreach (Rectangle rectangle in DeltaList)
     {
         ScreenBltOrder.drawScreenBltOrder(rectangle.X, rectangle.Y, rectangle.Width, rectangle.Height, SrcX, SrcY, Opcode);
     }
 }
示例#2
0
        private static void processScreenBlt(RdpPacket data, int present, bool delta)
        {
            if ((present & 1) != 0)
            {
                ScreenBltOrder.X = setCoordinate(data, ScreenBltOrder.X, delta);
            }

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

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

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

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

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

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

            ScreenBltOrder.drawScreenBltOrder();
        }