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
diff --git a/win/rfb_win32/ScaledDIBSectionBuffer.cxx b/win/rfb_win32/ScaledDIBSectionBuffer.cxx
index 7f14cce..700e90b 100644
--- a/win/rfb_win32/ScaledDIBSectionBuffer.cxx
+++ b/win/rfb_win32/ScaledDIBSectionBuffer.cxx
@@ -37,12 +37,12 @@
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 @@
} else {
scaling = false;
}
- ScaledPixelBuffer::setScale(scale_);
+ ScaledPixelBuffer::setScaleRatio(scale_ratio_);
recreateScaledBuffer();
if (scaling) {
scaleRect(Rect(0, 0, src_width, src_height));