aboutsummaryrefslogtreecommitdiffstats
path: root/common/rfb
diff options
context:
space:
mode:
authorConstantin Kaplinsky <const@tightvnc.com>2006-05-26 05:24:24 +0000
committerConstantin Kaplinsky <const@tightvnc.com>2006-05-26 05:24:24 +0000
commit1ae2eb0b58a028349d3857eb079cad389e67aa53 (patch)
treec78b2afa651d1d049651d3cdef46c588e113202e /common/rfb
parent3cb96488621541bc39562823e3f17dcf560f00b0 (diff)
downloadtigervnc-1ae2eb0b58a028349d3857eb079cad389e67aa53.tar.gz
tigervnc-1ae2eb0b58a028349d3857eb079cad389e67aa53.zip
Merged the changes from revision range 582:588 into reorganized sources. These changes accidentally were not included in files copied during directory structure reorganization.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@594 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'common/rfb')
-rw-r--r--common/rfb/ScaledPixelBuffer.cxx20
-rw-r--r--common/rfb/ScaledPixelBuffer.h10
2 files changed, 18 insertions, 12 deletions
diff --git a/common/rfb/ScaledPixelBuffer.cxx b/common/rfb/ScaledPixelBuffer.cxx
index bf4612de..5892a97b 100644
--- a/common/rfb/ScaledPixelBuffer.cxx
+++ b/common/rfb/ScaledPixelBuffer.cxx
@@ -18,6 +18,7 @@
// -=- ScaledPixelBuffer.cxx
+#include <rfb/Exception.h>
#include <rfb/ScaledPixelBuffer.h>
#include <math.h>
@@ -27,15 +28,16 @@ using namespace rdr;
using namespace rfb;
ScaledPixelBuffer::ScaledPixelBuffer(U8 **src_data_, int src_width_,
- int src_height_, int scale)
- : bpp(32), scaled_data(0), scale_ratio(1), scale(100) {
+ int src_height_, int scale, PixelFormat pf_)
+ : scaled_data(0), scale_ratio(1), scale(100) {
setSourceBuffer(src_data_, src_width_, src_height_);
+ setPF(pf_);
}
ScaledPixelBuffer::ScaledPixelBuffer()
: src_data(0), src_width(0), src_height(0), scale_ratio(1), scale(100),
- bpp(32), scaled_data(0) {
+ pf(PixelFormat(32,24,0,1,255,255,255,0,8,16)), scaled_data(0) {
}
ScaledPixelBuffer::~ScaledPixelBuffer() {
@@ -46,7 +48,13 @@ void ScaledPixelBuffer::setSourceBuffer(U8 **src_data_, int w, int h) {
src_width = w;
src_height = h;
calculateScaledBufferSize();
- recreateScaledBuffer();
+}
+
+void ScaledPixelBuffer::setPF(const PixelFormat &pf_) {
+ if (pf_.depth != 24) {
+ throw rfb::Exception("rfb::ScaledPixelBuffer support only the true colour pixel format.");
+ }
+ pf = pf_;
}
void ScaledPixelBuffer::setScale(int scale_) {
@@ -54,7 +62,6 @@ void ScaledPixelBuffer::setScale(int scale_) {
scale = scale_;
scale_ratio = double(scale) / 100;
calculateScaledBufferSize();
- recreateScaledBuffer();
}
}
@@ -127,6 +134,3 @@ void ScaledPixelBuffer::calculateScaledBufferSize() {
scaled_width = (int)ceil(src_width * scale_ratio);
scaled_height = (int)ceil(src_height * scale_ratio);
}
-
-void ScaledPixelBuffer::recreateScaledBuffer() {
-}
diff --git a/common/rfb/ScaledPixelBuffer.h b/common/rfb/ScaledPixelBuffer.h
index 3b6aa7ef..d69f0ac1 100644
--- a/common/rfb/ScaledPixelBuffer.h
+++ b/common/rfb/ScaledPixelBuffer.h
@@ -24,6 +24,7 @@
#include <rdr/types.h>
#include <rfb/Rect.h>
+#include <rfb/PixelFormat.h>
using namespace rdr;
@@ -31,7 +32,7 @@ namespace rfb {
class ScaledPixelBuffer {
public:
- ScaledPixelBuffer(U8 **data, int width, int height, int scale);
+ ScaledPixelBuffer(U8 **data, int width, int height, int scale, PixelFormat pf);
ScaledPixelBuffer();
virtual ~ScaledPixelBuffer();
@@ -51,6 +52,9 @@ namespace rfb {
// Set the new source buffer and its parameters
void setSourceBuffer(U8 **src_data, int w, int h);
+ // Set the new pixel format
+ void setPF(const PixelFormat &pf);
+
// Set the new scale, in percent
virtual void setScale(int scale);
@@ -68,14 +72,12 @@ namespace rfb {
// parameters (width, height, pixel format)
void calculateScaledBufferSize();
- // Recreate the scaled pixel buffer
- virtual void recreateScaledBuffer();
int src_width;
int src_height;
int scaled_width;
int scaled_height;
- int bpp;
+ PixelFormat pf;
int scale;
double scale_ratio;
U8 **src_data;