diff options
Diffstat (limited to 'win/rfb_win32')
-rw-r--r-- | win/rfb_win32/ScaledDIBSectionBuffer.cxx | 8 | ||||
-rw-r--r-- | win/rfb_win32/ScaledDIBSectionBuffer.h | 3 |
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); } |