summaryrefslogtreecommitdiff
path: root/noncore/comm/keypebble/krfbbuffer.cpp
authortreke <treke>2002-09-04 17:53:12 (UTC)
committer treke <treke>2002-09-04 17:53:12 (UTC)
commit605d854057eb470a1d75210193b82eb0b1ad6b53 (patch) (side-by-side diff)
treec411b661d5211fefbd83a7c8f63eef8c9cca72ee /noncore/comm/keypebble/krfbbuffer.cpp
parentc35a5eabd8f5ed18e4216f6c88ee6794bacfb491 (diff)
downloadopie-605d854057eb470a1d75210193b82eb0b1ad6b53.zip
opie-605d854057eb470a1d75210193b82eb0b1ad6b53.tar.gz
opie-605d854057eb470a1d75210193b82eb0b1ad6b53.tar.bz2
Major modifications to the User Interface
1) Bookmark support added, all options are stored on a per bookmark basis 2) 16 Bit color is now a supported bit depth for the server
Diffstat (limited to 'noncore/comm/keypebble/krfbbuffer.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/comm/keypebble/krfbbuffer.cpp33
1 files changed, 32 insertions, 1 deletions
diff --git a/noncore/comm/keypebble/krfbbuffer.cpp b/noncore/comm/keypebble/krfbbuffer.cpp
index 4885261..5a52f31 100644
--- a/noncore/comm/keypebble/krfbbuffer.cpp
+++ b/noncore/comm/keypebble/krfbbuffer.cpp
@@ -150,7 +150,38 @@ void KRFBBuffer::drawRawRectChunk( void *data,
*p = qRgb( r,g,b );
}
}
- }
+ } else if (decoder->format->bpp == 16 ) {
+
+ CARD16 *d = (CARD16 *) data;
+
+ uint r,g,b;
+
+ for ( int j = 0; j < h; j++ ) {
+ for ( int i = 0; i < w ; i++ ) {
+ CARD16 pixel = d[ j * w + i ];
+ pixel = Swap16IfLE( pixel );
+
+ r = pixel;
+ r = r >> decoder->format->redShift;
+ r = r & redMax;
+
+ g = pixel;
+ g = g >> decoder->format->greenShift;
+ g = g & greenMax;
+
+ b = pixel;
+ b = b >> decoder->format->blueShift;
+ b = b & blueMax;
+
+ r = ( r * 255 ) / redMax;
+ g = ( g * 255 ) / greenMax;
+ b = ( b * 255 ) / blueMax;
+
+ ulong *p = ( ulong * ) img.scanLine( j ) + i;
+ *p = qRgb( r,g,b );
+ }
+ }
+ }
else {
p.setBrush( QBrush( Qt::black ) );
p.drawRect( x, y, w, h );