# HG changeset patch # User YU # Date 1411456403 -32400 # Node ID 66c06ebbced1a861863a09687cd1b3100be0d759 # Parent aff2d0bb9c50a8c0335e7d1c00d2b17fa280efc1 refactor diff -r aff2d0bb9c50 -r 66c06ebbced1 src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveUpdateRectangle.java --- a/src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveUpdateRectangle.java Thu Sep 18 21:37:03 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/alicevnc/ReceiveUpdateRectangle.java Tue Sep 23 16:13:23 2014 +0900 @@ -6,6 +6,7 @@ import com.glavsoft.rfb.encoding.EncodingType; import com.glavsoft.rfb.encoding.decoder.AliceVNCMessage; import com.glavsoft.rfb.encoding.decoder.FramebufferUpdateRectangle; +import com.glavsoft.rfb.encoding.decoder.RichCursorDecoder; import com.glavsoft.rfb.encoding.decoder.ZRLEDecoder; import alice.codesegment.CodeSegment; @@ -16,7 +17,7 @@ private Receiver info = ids.create(CommandType.PEEK); private Receiver info1 = ids.create(CommandType.TAKE); - private Receiver info2= ids.create(CommandType.PEEK); + private Receiver info2 = ids.create(CommandType.PEEK); public ReceiveUpdateRectangle(){ info.setKey("Holder"); @@ -32,11 +33,13 @@ if (message.getEncodingType() == EncodingType.ZRLE){ ZRLEDecoder decoder = new ZRLEDecoder(); - decoder.decode(message, holder.getRenderer()); FramebufferUpdateRectangle rect = new FramebufferUpdateRectangle( message.x, message.y, message.width, message.height); - - rect.encodingType = EncodingType.byId(message.encodingTypeId); + rect.encodingType = message.getEncodingType(); + byte[] buf = message.buf; + int offset = message.offset; + + decoder.setColorDataOnRenderer(holder.getRenderer(), rect, buf, offset); holder.getRepaintController().repaintBitmap(rect); @@ -46,8 +49,10 @@ message.height, message.getPixelFormat()) ); - - } + } else if (message.getEncodingType() == EncodingType.RICH_CURSOR) { + RichCursorDecoder.getInstance().decode(holder.getRenderer(), message); + holder.getRepaintController().repaintCursor(); + } @SuppressWarnings("unchecked") ArrayList clist = info2.asClass(ArrayList.class); @@ -55,7 +60,7 @@ if (!"parent".equals(node)) ods.put(node, "aliceVNCMessage", info1.getVal()); } - new ReceiveUpdateRectangle(); + this.recycle(); } catch (TransportException e) { e.printStackTrace();