diff options
author | DRC <dcommander@users.sourceforge.net> | 2011-10-07 05:38:00 +0000 |
---|---|---|
committer | DRC <dcommander@users.sourceforge.net> | 2011-10-07 05:38:00 +0000 |
commit | c19ab9ec7f3ac4823802388ac953e9494c613575 (patch) | |
tree | 63513ffd7ce0b3ab3de2d9b619cc4e5b892eea31 /java/com/tigervnc/rfb/RawDecoder.java | |
parent | bba54b0b14fded1d457f426cdc8843a34d6c9dc5 (diff) | |
download | tigervnc-c19ab9ec7f3ac4823802388ac953e9494c613575.tar.gz tigervnc-c19ab9ec7f3ac4823802388ac953e9494c613575.zip |
Move Java source up one level and allow Java viewer to be built as a standalone project (per community request)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4715 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'java/com/tigervnc/rfb/RawDecoder.java')
-rw-r--r-- | java/com/tigervnc/rfb/RawDecoder.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/java/com/tigervnc/rfb/RawDecoder.java b/java/com/tigervnc/rfb/RawDecoder.java new file mode 100644 index 00000000..79db8260 --- /dev/null +++ b/java/com/tigervnc/rfb/RawDecoder.java @@ -0,0 +1,45 @@ +/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved. + * + * 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; + +public class RawDecoder extends Decoder { + + public RawDecoder(CMsgReader reader_) { reader = reader_; } + + public void readRect(Rect r, CMsgHandler handler) { + int x = r.tl.x; + int y = r.tl.y; + int w = r.width(); + int h = r.height(); + int[] imageBuf = reader.getImageBuf(w * h); + int nPixels = imageBuf.length / (reader.bpp() / 8); + int bytesPerRow = w * (reader.bpp() / 8); + while (h > 0) { + int nRows = nPixels / w; + if (nRows > h) nRows = h; + reader.is.readPixels(imageBuf, w * h, (reader.bpp() / 8), handler.cp.pf().bigEndian); + handler.imageRect(new Rect(x, y, x+w, y+nRows), imageBuf); + h -= nRows; + y += nRows; + } + } + + CMsgReader reader; + static LogWriter vlog = new LogWriter("RawDecoder"); +} |