Added the new method setSourceBuffer() to the rfb::ScaledPixelBuffer class.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@513 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/rfb/ScaledPixelBuffer.cxx b/rfb/ScaledPixelBuffer.cxx
index 1eb8e94..bd1ff72 100644
--- a/rfb/ScaledPixelBuffer.cxx
+++ b/rfb/ScaledPixelBuffer.cxx
@@ -28,10 +28,9 @@
 
 ScaledPixelBuffer::ScaledPixelBuffer(U8 **src_data_, int src_width_,
                                      int src_height_, int scale)
-  : src_data(src_data_), src_width(src_width_), src_height(src_height_),
-    bpp(32), scaled_data(0), scale_ratio(0), scale(100) {
+  : bpp(32), scaled_data(0), scale_ratio(1), scale(100) {
 
-  setScale(scale);
+  setSourceBuffer(src_data_, src_width_, src_height_);
 }
 
 ScaledPixelBuffer::ScaledPixelBuffer() 
@@ -42,6 +41,15 @@
 ScaledPixelBuffer::~ScaledPixelBuffer() {
 }
 
+void ScaledPixelBuffer::setSourceBuffer(U8 **src_data_, int w, int h) {
+  src_data = src_data_;
+  src_width  = w;
+  src_height = h;
+  scaled_width  = (int)ceil(src_width  * scale_ratio);
+  scaled_height = (int)ceil(src_height * scale_ratio);
+  recreateScaledBuffer();
+}
+
 void ScaledPixelBuffer::setScale(int scale_) {
   if (scale != scale_) {
     scale = scale_;