Further optimizations to the Tight encoder to eliminate getImage() overhead.  The encoder now directly accesses the framebuffer for solid rectangle computation, JPEG encoding, and color counting (if pixel translation is not required.)  Also moved everything in tightEncode.h into the TightEncoder class to eliminate all of the static mess (this will be important later on if we decide to multi-thread the encoder.)


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4631 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/rfb/TransImageGetter.h b/common/rfb/TransImageGetter.h
index 7942247..8fde743 100644
--- a/common/rfb/TransImageGetter.h
+++ b/common/rfb/TransImageGetter.h
@@ -1,4 +1,5 @@
 /* Copyright (C) 2002-2005 RealVNC Ltd.  All Rights Reserved.
+ * Copyright (C) 2011 D. R. Commander.  All Rights Reserved.
  * 
  * This is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -71,11 +72,15 @@
     // padding will be outStride-r.width() pixels).
     void getImage(void* outPtr, const Rect& r, int outStride=0);
 
+    rdr::U8 *getPixelsRW(const Rect &r, int *stride);
+
     // setPixelBuffer() changes the pixel buffer to be used.  The new pixel
     // buffer MUST have the same pixel format as the old one - if not you
     // should call init() instead.
     void setPixelBuffer(PixelBuffer* pb_) { pb = pb_; }
 
+    PixelBuffer *getPixelBuffer(void) { return pb; }
+
     // setOffset() sets an offset which is subtracted from the coordinates of
     // the rectangle given to getImage().
     void setOffset(const Point& offset_) { offset = offset_; }