# HG changeset patch # User oshiro # Date 1550396368 -32400 # Node ID 57ee5c26e8eb4051f06eae3866ca98314a88e2f3 # Parent 6609174beafef432bf38ab89225e2785386db98a fix multicastput diff -r 6609174beafe -r 57ee5c26e8eb src/main/java/com/glavsoft/rfb/encoding/decoder/ZRLEDecoder.java --- a/src/main/java/com/glavsoft/rfb/encoding/decoder/ZRLEDecoder.java Sun Feb 17 17:55:25 2019 +0900 +++ b/src/main/java/com/glavsoft/rfb/encoding/decoder/ZRLEDecoder.java Sun Feb 17 18:39:28 2019 +0900 @@ -50,7 +50,7 @@ int maxX = rect.x + rect.width; int maxY = rect.y + rect.height; int prevoffset = offset; - System.out.println("decode1: "+rect); + //System.out.println("decode1: "+rect); if (null == palette) { palette = new int [128]; } diff -r 6609174beafe -r 57ee5c26e8eb src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java Sun Feb 17 17:55:25 2019 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java Sun Feb 17 18:39:28 2019 +0900 @@ -770,7 +770,7 @@ int x = rect.x, y = rect.y, w = 0, h = 0, w0 = 0, h0 = 0; deflater.setInput(bytes,prevoffset,span); c1rect.height = tiley; - if (c1.remaining() < span || x + tilex >= rect.x + rect.width ) { + if (c1.remaining() < span || c1rect.x + c1rect.width + tilex >= rect.x + rect.width ) { deflater.deflate(c1, Deflater.FULL_FLUSH); c1.flip(); try { @@ -778,16 +778,17 @@ } catch (InterruptedException e) { e.printStackTrace(); } + c1rect.x += c1rect.width; + if (c1rect.x >= rect.x + rect.width) { + c1rect.x = rect.x; + c1rect.y += tiley; + } + c1rect.width = 0; c1 = multicastqueue.allocate(deflate_size); } else { deflater.deflate(c1, Deflater.SYNC_FLUSH); } c1rect.width += tilex; - if (c1rect.width >= rect.width) { - c1rect.width = 0; - c1rect.x = 0; - c1rect.y += tiley; - } } private void writeUpdateRectangleWithHeader(ByteBuffer c1, ByteBuffer header, int len2, int x, int y, int w, int h) throws InterruptedException {