diff src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java @ 419:7e811f33b99d

Adhoc implement multi display
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Fri, 01 Jan 2016 02:39:25 +0900
parents c225c7963778
children 0ad52aac3bc3
line wrap: on
line diff
--- a/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Fri Dec 18 13:48:21 2015 +0900
+++ b/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Fri Jan 01 02:39:25 2016 +0900
@@ -88,14 +88,15 @@
         decoders.setDecoderByType(EncodingType.ZRLE, decoder);
         decoders.setDecoderByType(EncodingType.ZRLEE, decoder);
 
-        if(!rfb.getCuiVersion())
+        if(!rfb.getCuiVersion()) {
             if (rfb.filterSingleDisplay) {
                 renderer = repaintController.createRenderer(reader, context.getFbWidth(), context.getFbHeight(), context.getPixelFormat());
                 fullscreenFbUpdateIncrementalRequest = new FramebufferUpdateRequestMessage(0, 0, rfb.getSingleWidth(), rfb.getSingleHeight(), false);
             } else {
                 renderer = repaintController.createRenderer(reader, context.getFbWidth(), context.getFbHeight(), context.getPixelFormat());
-                fullscreenFbUpdateIncrementalRequest = new FramebufferUpdateRequestMessage(0, 0, context.getFbWidth(), context.getFbHeight(), false);
+                fullscreenFbUpdateIncrementalRequest = new FramebufferUpdateRequestMessage(rfb.getX(), rfb.getY(), rfb.frameSizeWidth * rfb.getRetinaScale(), rfb.frameSizeHeight * rfb.getRetinaScale(), false);
             }
+        }
         if(rfb.isTreeManager()) {
             fullscreenFbUpdateIncrementalRequest.sendFullScreenRequest();
             connectionFinished();
@@ -106,7 +107,7 @@
                     public void run() { 
                         context.setFbWidth(rfb.fixingSizeWidth);
                         context.setFbHeight(rfb.fixingSizeHeight);
-                        context.sendMessage(new FramebufferUpdateRequestMessage(0, 0, context.getFbWidth(), context.getFbHeight(), true));
+                        context.sendMessage(new FramebufferUpdateRequestMessage(rfb.getX(), rfb.getY(), rfb.frameSizeWidth * rfb.getRetinaScale(), rfb.frameSizeHeight * rfb.getRetinaScale(), true));
                     }
                 }, 0, 100);
             }
@@ -130,10 +131,10 @@
                     reader.mark(20+8+4);
                     getLost(reader); //check seq consistency
                 } else {
-                    reader.mark(20+8);
+                    reader.mark(20+4);
                 }
+                byte messageId = reader.readByte();
 
-                byte messageId = reader.readByte();
                 switch (messageId) {
                     case FRAMEBUFFER_UPDATE:
                         // logger.fine("Server message: FramebufferUpdate (0)");
@@ -358,7 +359,7 @@
                     context.sendRefreshMessage();
                     logger.fine("sent: nonincremental fb update");
                 } else {
-                    context.sendMessage(new FramebufferUpdateRequestMessage(0, 0, context.getFbWidth(), context.getFbHeight(), false));
+                    context.sendMessage(new FramebufferUpdateRequestMessage(rfb.getX(), rfb.getY(), rfb.getSingleWidth() * rfb.getRetinaScale(), rfb.getSingleHeight() * rfb.getRetinaScale(), false));
                 }
             }
         }