private void processPatBlt(RdpPacket_Localised data, PatBltOrder patblt,
            int present, boolean delta) {
        if ((present & 0x01) != 0)
            patblt.setX(setCoordinate(data, patblt.getX(), delta));
        if ((present & 0x02) != 0)
            patblt.setY(setCoordinate(data, patblt.getY(), delta));
        if ((present & 0x04) != 0)
            patblt.setCX(setCoordinate(data, patblt.getCX(), delta));
        if ((present & 0x08) != 0)
            patblt.setCY(setCoordinate(data, patblt.getCY(), delta));
        if ((present & 0x10) != 0)
            patblt.setOpcode(ROP2_P(data.get8()));
        if ((present & 0x20) != 0)
            patblt.setBackgroundColor(setColor(data));
        if ((present & 0x40) != 0)
            patblt.setForegroundColor(setColor(data));
        parseBrush(data, patblt.getBrush(), present >> 7);
        // if(logger.isInfoEnabled()) logger.info("opcode="+patblt.getOpcode());
        surface.drawPatBltOrder(patblt);
    }