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/rreDecode.h | |
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/rreDecode.h')
-rw-r--r-- | common/rfb/rreDecode.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/common/rfb/rreDecode.h b/common/rfb/rreDecode.h index d37461f9..9dc04703 100644 --- a/common/rfb/rreDecode.h +++ b/common/rfb/rreDecode.h @@ -36,11 +36,12 @@ namespace rfb { #define READ_PIXEL CONCAT2E(readOpaque,BPP) #define RRE_DECODE CONCAT2E(rreDecode,BPP) -void RRE_DECODE (const Rect& r, rdr::InStream* is, CMsgHandler* handler) +void RRE_DECODE (const Rect& r, rdr::InStream* is, + const PixelFormat& pf, ModifiablePixelBuffer* pb) { int nSubrects = is->readU32(); PIXEL_T bg = is->READ_PIXEL(); - handler->fillRect(r, bg); + pb->fillRect(pf, r, bg); for (int i = 0; i < nSubrects; i++) { PIXEL_T pix = is->READ_PIXEL(); @@ -48,7 +49,7 @@ void RRE_DECODE (const Rect& r, rdr::InStream* is, CMsgHandler* handler) int y = is->readU16(); int w = is->readU16(); int h = is->readU16(); - handler->fillRect(Rect(r.tl.x+x, r.tl.y+y, r.tl.x+x+w, r.tl.y+y+h), pix); + pb->fillRect(pf, Rect(r.tl.x+x, r.tl.y+y, r.tl.x+x+w, r.tl.y+y+h), pix); } } |