Small the ScaledDIBSectionBuffer class code improvements.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@647 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/win/rfb_win32/ScaledDIBSectionBuffer.cxx b/win/rfb_win32/ScaledDIBSectionBuffer.cxx
index e009187..155de3d 100644
--- a/win/rfb_win32/ScaledDIBSectionBuffer.cxx
+++ b/win/rfb_win32/ScaledDIBSectionBuffer.cxx
@@ -45,6 +45,7 @@
if (scale_ratio_ != 1) scaling = true;
else scaling = false;
ScaledPixelBuffer::setScaleRatio(scale_ratio_);
+ calculateScaledBufferSize();
recreateBuffers();
}
@@ -73,8 +74,6 @@
}
void ScaledDIBSectionBuffer::recreateScaledBuffer() {
- width_ = scaled_width;
- height_ = scaled_height;
if (width_ && height_ && (format.depth != 0)) {
DIBSectionBuffer::recreateBuffer();
scaled_data = data;
@@ -82,8 +81,6 @@
}
void ScaledDIBSectionBuffer::recreateBuffers() {
- width_ = scaled_width;
- height_ = scaled_height;
if (scaled_width && scaled_height && format.depth != 0 && scale_ratio != 0) {
if (scaling) {
if (src_buffer) {
@@ -111,6 +108,12 @@
}
}
+void ScaledDIBSectionBuffer::calculateScaledBufferSize() {
+ ScaledPixelBuffer::calculateScaledBufferSize();
+ width_ = scaled_width;
+ height_ = scaled_height;
+}
+
void ScaledDIBSectionBuffer::fillRect(const Rect &dest, Pixel pix) {
if (scaling) {
src_buffer->fillRect(dest, pix);
diff --git a/win/rfb_win32/ScaledDIBSectionBuffer.h b/win/rfb_win32/ScaledDIBSectionBuffer.h
index c2b8ed7..69c3848 100644
--- a/win/rfb_win32/ScaledDIBSectionBuffer.h
+++ b/win/rfb_win32/ScaledDIBSectionBuffer.h
@@ -51,6 +51,8 @@
virtual void setScale(int scale) { setScaleRatio(double(scale)/100.0); };
virtual void setScaleRatio(double scale_ratio);
+ virtual void calculateScaledBufferSize();
+
Rect getRect() const { return ScaledPixelBuffer::getRect(); }
Rect getRect(const Point& pos) const { return ScaledPixelBuffer::getRect(pos); }