Diffstat (limited to 'noncore/comm/keypebble/krfbbuffer.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/comm/keypebble/krfbbuffer.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/noncore/comm/keypebble/krfbbuffer.cpp b/noncore/comm/keypebble/krfbbuffer.cpp index 5a52f31..f1cb929 100644 --- a/noncore/comm/keypebble/krfbbuffer.cpp +++ b/noncore/comm/keypebble/krfbbuffer.cpp @@ -7,4 +7,6 @@ #include "krfbdecoder.h" #include "krfbbuffer.h" +#include "krfbconnection.h" +#include "krfbserver.h" #include "krfbserverinfo.h" @@ -87,4 +89,5 @@ void KRFBBuffer::drawRawRectChunk( void *data, QImage img( w, h, 32 ); + int scaleFactor=decoder->con->options()->scaleFactor; int redMax = Swap16IfLE( decoder->format->redMax ); int greenMax = Swap16IfLE( decoder->format->greenMax ); @@ -98,5 +101,6 @@ void KRFBBuffer::drawRawRectChunk( void *data, uint r,g,b; - for ( int j = 0; j < h; j++ ) { + + for ( int j = 0; j < h; j++) { for ( int i = 0; i < w ; i++ ) { r = d[ j * w + i ]; @@ -188,7 +192,12 @@ void KRFBBuffer::drawRawRectChunk( void *data, } - p.drawImage( x, y, img ); - - emit updated( x, y, w, h ); + if (scaleFactor > 1) { + p.drawImage( x/scaleFactor, y/scaleFactor, img.smoothScale(w/scaleFactor,h/scaleFactor) ); + emit updated( x/scaleFactor, y/scaleFactor, w/scaleFactor, h/scaleFactor ); + } + else { + p.drawImage( x, y, img); + emit updated( x, y, w, h ); + } } |