comparison src/main/java/com/glavsoft/rfb/encoding/decoder/ZRLEESender.java @ 183:6f452c497e0e

fix readSendData.
author oc
date Mon, 23 Jun 2014 20:37:58 +0900
parents b3426724667b
children 032b1bcc6ab4
comparison
equal deleted inserted replaced
182:b3426724667b 183:6f452c497e0e
21 @Override 21 @Override
22 public void decode(Reader reader, Renderer renderer, 22 public void decode(Reader reader, Renderer renderer,
23 FramebufferUpdateRectangle rect) throws TransportException { 23 FramebufferUpdateRectangle rect) throws TransportException {
24 int dataLen = getZrleLength(rect, reader); 24 int dataLen = getZrleLength(rect, reader);
25 reader.reset(); 25 reader.reset();
26 byte[] bytes = new byte[dataLen]; 26 byte[] bytes = new byte[rect.width * rect.height * renderer.getBytesPerPixel()];
27 // TreeVNC handling 27 // TreeVNC handling
28 rfb.readSendData(dataLen, reader, bytes); 28 rfb.readSendData(dataLen, reader, bytes);
29 // reader is reseted read again 29 // reader is reseted read again
30 30
31 if (rfb.hasViewer()) { 31 if (rfb.hasViewer()) {
34 if (!rfb.isRoot()) 34 if (!rfb.isRoot())
35 reader.readBytes(8); 35 reader.readBytes(8);
36 reader.readByte();// message 36 reader.readByte();// message
37 reader.readByte();// padding 37 reader.readByte();// padding
38 reader.readUInt16();// numberOfRectangle 38 reader.readUInt16();// numberOfRectangle
39 rect.fill(reader);// fill 39 reader.skypBytes(12);
40 ZRLEDecoder decoder = new ZRLEDecoder(); 40 ZRLEDecoder decoder = new ZRLEDecoder();
41 if (rfb.isRoot()) 41 if (rfb.isRoot())
42 decoder.decode1(reader, renderer, rect, bytes, dataLen); 42 decoder.decode1(reader, renderer, rect, bytes, 0);
43 else if (!rfb.getCuiVersion()) 43 else if (!rfb.getCuiVersion())
44 decoder.decode(reader, renderer, rect); 44 decoder.decode(reader, renderer, rect);
45 else { 45 else {
46 reader.readBytes((int) reader.readUInt32()); 46 reader.readBytes((int) reader.readUInt32());
47 } 47 }