private void processRectangle(RdpPacket_Localised data,
            RectangleOrder rect, int present, boolean delta) {
        if ((present & 0x01) != 0)
            rect.setX(setCoordinate(data, rect.getX(), delta));
        if ((present & 0x02) != 0)
            rect.setY(setCoordinate(data, rect.getY(), delta));
        if ((present & 0x04) != 0)
            rect.setCX(setCoordinate(data, rect.getCX(), delta));
        if ((present & 0x08) != 0)
            rect.setCY(setCoordinate(data, rect.getCY(), delta));
        if ((present & 0x10) != 0)
            this.rect_colour = (this.rect_colour & 0xffffff00) | data.get8(); // rect.setColor(setColor(data));
        if ((present & 0x20) != 0)
            this.rect_colour = (this.rect_colour & 0xffff00ff)
                    | (data.get8() << 8); // rect.setColor(setColor(data));
        if ((present & 0x40) != 0)
            this.rect_colour = (this.rect_colour & 0xff00ffff)
                    | (data.get8() << 16);

        rect.setColor(this.rect_colour);
        surface.drawRectangleOrder(rect);
    }