diff options
author | Constantin Kaplinsky <const@tightvnc.com> | 2006-05-26 05:24:24 +0000 |
---|---|---|
committer | Constantin Kaplinsky <const@tightvnc.com> | 2006-05-26 05:24:24 +0000 |
commit | 1ae2eb0b58a028349d3857eb079cad389e67aa53 (patch) | |
tree | c78b2afa651d1d049651d3cdef46c588e113202e /common/rfb | |
parent | 3cb96488621541bc39562823e3f17dcf560f00b0 (diff) | |
download | tigervnc-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.cxx | 20 | ||||
-rw-r--r-- | common/rfb/ScaledPixelBuffer.h | 10 |
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; |