Prepared the XPixelBuffer class for grabbing the screen in its grabRegion() method.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2383 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/unix/x0vncserver/XPixelBuffer.h b/unix/x0vncserver/XPixelBuffer.h
index 29b82f5..010763b 100644
--- a/unix/x0vncserver/XPixelBuffer.h
+++ b/unix/x0vncserver/XPixelBuffer.h
@@ -24,30 +24,35 @@
 #define __XPIXELBUFFER_H__
 
 #include <rfb/PixelBuffer.h>
+#include <x0vncserver/Image.h>
 
 using namespace rfb;
 
 //
-// XPixelBuffer is a modification of FullFramePixelBuffer that does
-// not always return buffer width in getStride().
+// XPixelBuffer is an Image-based implementation of FullFramePixelBuffer.
 //
 
 class XPixelBuffer : public FullFramePixelBuffer
 {
 public:
-  XPixelBuffer(const PixelFormat& pf, int width, int height,
-               rdr::U8* data_, ColourMap* cm, int stride_) :
-    FullFramePixelBuffer(pf, width, height, data_, cm), stride(stride_)
-  {
-  }
+  XPixelBuffer(Display *dpy, Image* image,
+               int offsetLeft, int offsetTop,
+               const PixelFormat& pf, ColourMap* cm);
+  virtual ~XPixelBuffer();
 
-  virtual int getStride() const { return stride; }
+  virtual int getStride() const { return m_stride; }
 
   // Override PixelBuffer's function.
   virtual void grabRegion(const rfb::Region& region);
 
 protected:
-  int stride;
+  Display *m_dpy;
+  Image* m_image;
+  int m_offsetLeft;
+  int m_offsetTop;
+
+  // The number of pixels in a row, with padding included.
+  int m_stride;
 };
 
 #endif // __XPIXELBUFFER_H__