aboutsummaryrefslogtreecommitdiffstats
path: root/java/com/tigervnc/rfb/CopyRectDecoder.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/tigervnc/rfb/CopyRectDecoder.java')
-rw-r--r--java/com/tigervnc/rfb/CopyRectDecoder.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/java/com/tigervnc/rfb/CopyRectDecoder.java b/java/com/tigervnc/rfb/CopyRectDecoder.java
new file mode 100644
index 00000000..a4298fd5
--- /dev/null
+++ b/java/com/tigervnc/rfb/CopyRectDecoder.java
@@ -0,0 +1,44 @@
+/* Copyright 2014 Pierre Ossman <ossman@cendio.se> for Cendio AB
+ * Copyright 2016 Brian P. Hinz
+ *
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * USA.
+ */
+
+package com.tigervnc.rfb;
+
+import com.tigervnc.rdr.*;
+
+public class CopyRectDecoder extends Decoder {
+
+ public CopyRectDecoder() { super(DecoderFlags.DecoderPlain); }
+
+ public void readRect(Rect r, InStream is,
+ ConnParams cp, OutStream os)
+ {
+ os.copyBytes(is, 4);
+ }
+
+ public void decodeRect(Rect r, Object buffer,
+ int buflen, ConnParams cp,
+ ModifiablePixelBuffer pb)
+ {
+ MemInStream is = new MemInStream((byte[])buffer, 0, buflen);
+ int srcX = is.readU16();
+ int srcY = is.readU16();
+ pb.copyRect(r, new Point(r.tl.x-srcX, r.tl.y-srcY));
+ }
+
+}