diff options
author | Pierre Ossman <ossman@cendio.se> | 2014-07-09 16:44:11 +0200 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2014-07-14 16:03:41 +0200 |
commit | 0c9bd4b0ba28f5aab8b1f3e2eb8d83e01915e2b8 (patch) | |
tree | 500f61ee230d30fa1f8e955214c698e86b69e2f4 /common/rfb/RREDecoder.cxx | |
parent | 126e56420e47d72cc950d03976ee57d1efda436e (diff) | |
download | tigervnc-0c9bd4b0ba28f5aab8b1f3e2eb8d83e01915e2b8.tar.gz tigervnc-0c9bd4b0ba28f5aab8b1f3e2eb8d83e01915e2b8.zip |
Use PixelBuffer objects as the interface for encoders and decoders
This avoid a lot of unnecessary middle men. This also pushes the
responsibility for pixel format conversion into the encoders and
decoders. The new bufferFromBuffer() is used for direct conversion,
rather than PixelTransformer/TransImageGetter.
Diffstat (limited to 'common/rfb/RREDecoder.cxx')
-rw-r--r-- | common/rfb/RREDecoder.cxx | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/common/rfb/RREDecoder.cxx b/common/rfb/RREDecoder.cxx index ecc97136..8dc391a8 100644 --- a/common/rfb/RREDecoder.cxx +++ b/common/rfb/RREDecoder.cxx @@ -17,7 +17,7 @@ */ #include <rfb/CMsgReader.h> #include <rfb/CConnection.h> -#include <rfb/CMsgHandler.h> +#include <rfb/PixelBuffer.h> #include <rfb/RREDecoder.h> using namespace rfb; @@ -40,12 +40,13 @@ RREDecoder::~RREDecoder() { } -void RREDecoder::readRect(const Rect& r, CMsgHandler* handler) +void RREDecoder::readRect(const Rect& r, ModifiablePixelBuffer* pb) { rdr::InStream* is = conn->getInStream(); - switch (conn->cp.pf().bpp) { - case 8: rreDecode8 (r, is, handler); break; - case 16: rreDecode16(r, is, handler); break; - case 32: rreDecode32(r, is, handler); break; + const PixelFormat& pf = conn->cp.pf(); + switch (pf.bpp) { + case 8: rreDecode8 (r, is, pf, pb); break; + case 16: rreDecode16(r, is, pf, pb); break; + case 32: rreDecode32(r, is, pf, pb); break; } } |