]> source.dussan.org Git - tigervnc.git/commitdiff
Small ScaledPixelBuffer class improvements.
authorgeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>
Sun, 12 Feb 2006 11:28:53 +0000 (11:28 +0000)
committergeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>
Sun, 12 Feb 2006 11:28:53 +0000 (11:28 +0000)
Added ScaledPixelBuffer::recreateScaledBuffer() method.

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@487 3789f03b-4d11-0410-bbf8-ca57d06f2519

rfb/ScaledPixelBuffer.cxx
rfb/ScaledPixelBuffer.h

index 0c4d5abf4fb740e61605a99f73fb7ce45e7b5622..962a54be2a2d122c456a500880ae669d70de9eb9 100644 (file)
@@ -36,7 +36,7 @@ ScaledPixelBuffer::ScaledPixelBuffer(U8 **src_data_, int src_width_,
   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 @@ void ScaledPixelBuffer::setScale(int scale) {
     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::scaleRect(const Rect& r) {
     }
   }
 }
+
+void ScaledPixelBuffer::recreateScaledBuffer() {
+  if (scaled_data) delete [] scaled_data;
+  scaled_data = new U8[scaled_width * scaled_height * (bpp / 8)];
+}
index 588d102b3d1666bf2b486329c4560ccdc8e28623..b4b5a8ecabc53fc549c05ece0df1e87312456d1a 100644 (file)
@@ -69,6 +69,8 @@ namespace rfb {
     virtual void scaleRect(const Rect& r);
 
   protected:
+    virtual void recreateScaledBuffer();
+
     int src_width;
     int src_height;
     int scaled_width;