aboutsummaryrefslogtreecommitdiffstats
path: root/win/rfb_win32
diff options
context:
space:
mode:
authorgeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>2006-07-29 10:29:41 +0000
committergeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>2006-07-29 10:29:41 +0000
commitbf0adb358b0be339ca35fb0b984582883ba043da (patch)
tree17aa845afc738f017854189aa2fba28d023c0140 /win/rfb_win32
parentd4344bec2cc1c16a4727ee795187f444bb7d21f5 (diff)
downloadtigervnc-bf0adb358b0be339ca35fb0b984582883ba043da.tar.gz
tigervnc-bf0adb358b0be339ca35fb0b984582883ba043da.zip
ScaledDIBSectionBuffer class code improvements. Now we
set the scale using setScaleRatio. It improve the accuracy of scaling operation. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@640 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'win/rfb_win32')
-rw-r--r--win/rfb_win32/ScaledDIBSectionBuffer.cxx8
-rw-r--r--win/rfb_win32/ScaledDIBSectionBuffer.h3
2 files changed, 6 insertions, 5 deletions
diff --git a/win/rfb_win32/ScaledDIBSectionBuffer.cxx b/win/rfb_win32/ScaledDIBSectionBuffer.cxx
index 7f14cceb..700e90b3 100644
--- a/win/rfb_win32/ScaledDIBSectionBuffer.cxx
+++ b/win/rfb_win32/ScaledDIBSectionBuffer.cxx
@@ -37,12 +37,12 @@ ScaledDIBSectionBuffer::~ScaledDIBSectionBuffer() {
if (src_buffer) delete src_buffer;
}
-void ScaledDIBSectionBuffer::setScale(int scale_) {
- if (scale_ == getScale()) return;
+void ScaledDIBSectionBuffer::setScaleRatio(double scale_ratio_) {
+ if (scale_ratio == scale_ratio_) return;
if (format.depth != 24) throw rfb::UnsupportedPixelFormatException();
- if (scale_ != 100) {
+ if (scale_ratio_ != 1) {
scaling = true;
if (!src_buffer) {
src_buffer = new ManagedPixelBuffer(format, src_width, src_height);
@@ -52,7 +52,7 @@ void ScaledDIBSectionBuffer::setScale(int scale_) {
} else {
scaling = false;
}
- ScaledPixelBuffer::setScale(scale_);
+ ScaledPixelBuffer::setScaleRatio(scale_ratio_);
recreateScaledBuffer();
if (scaling) {
scaleRect(Rect(0, 0, src_width, src_height));
diff --git a/win/rfb_win32/ScaledDIBSectionBuffer.h b/win/rfb_win32/ScaledDIBSectionBuffer.h
index 7ec0b1f1..86771918 100644
--- a/win/rfb_win32/ScaledDIBSectionBuffer.h
+++ b/win/rfb_win32/ScaledDIBSectionBuffer.h
@@ -48,7 +48,8 @@ namespace rfb {
virtual void setPF(const PixelFormat &pf);
virtual void setSize(int w, int h);
- virtual void setScale(int scale);
+ virtual void setScale(int scale) { setScaleRatio(double(scale)/100.0); };
+ virtual void setScaleRatio(double scale_ratio);
Rect getRect() const { return ScaledPixelBuffer::getRect(); }
Rect getRect(const Point& pos) const { return ScaledPixelBuffer::getRect(pos); }