Now rfb_win32::ScaledDIBSectionBuffer is an universal class which consist
of source image buffer and destination (scaled) image buffer. It automatically
scale the image data from source buffer to destination when data was
changed in the input buffer.
Overrided methods in the ScaledDIBSectionBuffer class: fillRect(), imageRect(),
copyRect(), maskRect().
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@516 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfb_win32/ScaledDIBSectionBuffer.h b/rfb_win32/ScaledDIBSectionBuffer.h
index c0dd586..3cc267b 100644
--- a/rfb_win32/ScaledDIBSectionBuffer.h
+++ b/rfb_win32/ScaledDIBSectionBuffer.h
@@ -36,18 +36,30 @@
// -=- ScaledDIBSectionBuffer
//
- class ScaledDIBSectionBuffer : public ScaledPixelBuffer, DIBSectionBuffer {
+ class ScaledDIBSectionBuffer : public ScaledPixelBuffer, public DIBSectionBuffer {
public:
ScaledDIBSectionBuffer(HWND window);
- virtual ~ScaledDIBSectionBuffer() {};
+ virtual ~ScaledDIBSectionBuffer();
int width() const { return scaled_width; }
int height() const { return scaled_height; }
bool isScaling() const { return scaling; }
- virtual void setSrcPixelBuffer(U8 **src_data, int w, int h, PixelFormat pf=PixelFormat());
virtual void setPF(const PixelFormat &pf);
virtual void setSize(int w, int h);
+ virtual void setScale(int scale);
+
+ Rect getRect() const { return ScaledPixelBuffer::getRect(); }
+ Rect getRect(const Point& pos) const { return ScaledPixelBuffer::getRect(pos); }
+
+ // -=- Overrides basic rendering operations of
+ // FullFramePixelBuffer class
+
+ virtual void fillRect(const Rect &dest, Pixel pix);
+ virtual void imageRect(const Rect &dest, const void* pixels, int stride=0);
+ virtual void copyRect(const Rect &dest, const Point &move_by_delta);
+ virtual void maskRect(const Rect& r, const void* pixels, const void* mask_);
+ virtual void maskRect(const Rect& r, Pixel pixel, const void* mask_);
protected:
virtual void recreateScaledBuffer();
@@ -55,6 +67,7 @@
recreateScaledBuffer();
};
+ ManagedPixelBuffer *src_buffer;
bool scaling;
};