From 605d854057eb470a1d75210193b82eb0b1ad6b53 Mon Sep 17 00:00:00 2001 From: treke Date: Wed, 04 Sep 2002 17:53:12 +0000 Subject: 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 --- (limited to 'noncore/comm/keypebble/krfbbuffer.cpp') 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 ); -- cgit v0.9.0.2