private void processLine(RdpPacket_Localised data, LineOrder line,
			int present, boolean delta) {
		if ((present & 0x01) != 0)
			line.setMixmode(data.getLittleEndian16());
		if ((present & 0x02) != 0)
			line.setStartX(setCoordinate(data, line.getStartX(), delta));
		if ((present & 0x04) != 0)
			line.setStartY(setCoordinate(data, line.getStartY(), delta));
		if ((present & 0x08) != 0)
			line.setEndX(setCoordinate(data, line.getEndX(), delta));
		if ((present & 0x10) != 0)
			line.setEndY(setCoordinate(data, line.getEndY(), delta));
		if ((present & 0x20) != 0)
			line.setBackgroundColor(setColor(data));
		if ((present & 0x40) != 0)
			line.setOpcode(data.get8());

		parsePen(data, line.getPen(), present >> 7);

		// if(//logger.isInfoEnabled()) //logger.info("Line from
		// ("+line.getStartX()+","+line.getStartY()+") to
		// ("+line.getEndX()+","+line.getEndY()+")");

		if (line.getOpcode() < 0x01 || line.getOpcode() > 0x10) {
			//logger.warn("bad ROP2 0x" + line.getOpcode());
			return;
		}

		// now draw the line
		surface.drawLineOrder(line);
	}