Small ScaledPixelBuffer class improvements.
Added ScaledPixelBuffer::recreateScaledBuffer() method.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@487 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfb/ScaledPixelBuffer.cxx b/rfb/ScaledPixelBuffer.cxx
index 0c4d5ab..962a54b 100644
--- a/rfb/ScaledPixelBuffer.cxx
+++ b/rfb/ScaledPixelBuffer.cxx
@@ -36,7 +36,7 @@
scaled_width = (int)ceil(src_width * scale_ratio);
scaled_height = (int)ceil(src_height * scale_ratio);
- scaled_data = new U8[scaled_width * scaled_height * 4];
+ recreateScaledBuffer();
}
ScaledPixelBuffer::ScaledPixelBuffer()
@@ -78,8 +78,7 @@
scaled_width = (int)ceil(src_width * scale_ratio);
scaled_height = (int)ceil(src_height * scale_ratio);
- if (scaled_data) delete [] scaled_data;
- scaled_data = new U8[scaled_width * scaled_height * 4];
+ recreateScaledBuffer();
scaleRect(Rect(0, 0, scaled_width, scaled_height));
}
@@ -145,3 +144,8 @@
}
}
}
+
+void ScaledPixelBuffer::recreateScaledBuffer() {
+ if (scaled_data) delete [] scaled_data;
+ scaled_data = new U8[scaled_width * scaled_height * (bpp / 8)];
+}
diff --git a/rfb/ScaledPixelBuffer.h b/rfb/ScaledPixelBuffer.h
index 588d102..b4b5a8e 100644
--- a/rfb/ScaledPixelBuffer.h
+++ b/rfb/ScaledPixelBuffer.h
@@ -69,6 +69,8 @@
virtual void scaleRect(const Rect& r);
protected:
+ virtual void recreateScaledBuffer();
+
int src_width;
int src_height;
int scaled_width;