diff options
author | george82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519> | 2006-08-02 15:23:39 +0000 |
---|---|---|
committer | george82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519> | 2006-08-02 15:23:39 +0000 |
commit | e3341e7264eb5d2533cad338977fa26256b309ab (patch) | |
tree | db61c5d0c1435db5cf227b3cad846a58eb8fdad3 /win/rfb_win32 | |
parent | bf0adb358b0be339ca35fb0b984582883ba043da (diff) | |
download | tigervnc-e3341e7264eb5d2533cad338977fa26256b309ab.tar.gz tigervnc-e3341e7264eb5d2533cad338977fa26256b309ab.zip |
ScaledDIBSectionBuffer class code improvements. Added check
for changing class parameters such as width, height, pf.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@641 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'win/rfb_win32')
-rw-r--r-- | win/rfb_win32/ScaledDIBSectionBuffer.cxx | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/win/rfb_win32/ScaledDIBSectionBuffer.cxx b/win/rfb_win32/ScaledDIBSectionBuffer.cxx index 700e90b3..df3a6c93 100644 --- a/win/rfb_win32/ScaledDIBSectionBuffer.cxx +++ b/win/rfb_win32/ScaledDIBSectionBuffer.cxx @@ -67,6 +67,8 @@ void ScaledDIBSectionBuffer::setScaleRatio(double scale_ratio_) { } void ScaledDIBSectionBuffer::setPF(const PixelFormat &pf_) { + if (memcmp(&getPF(), &pf_, sizeof(pf_)) == 0) return; + if (scaling) { ScaledPixelBuffer::setPF(pf_); src_buffer->setPF(pf_); @@ -76,6 +78,8 @@ void ScaledDIBSectionBuffer::setPF(const PixelFormat &pf_) { } void ScaledDIBSectionBuffer::setSize(int src_width_, int src_height_) { + if (src_width == src_width_ && src_height == src_height_) return; + src_width = src_width_; src_height = src_height_; if (scaling) { @@ -89,8 +93,10 @@ void ScaledDIBSectionBuffer::setSize(int src_width_, int src_height_) { void ScaledDIBSectionBuffer::recreateScaledBuffer() { width_ = scaled_width; height_ = scaled_height; - DIBSectionBuffer::recreateBuffer(); - scaled_data = data; + if (width_ && height_ && (format.depth != 0)) { + DIBSectionBuffer::recreateBuffer(); + scaled_data = data; + } } void ScaledDIBSectionBuffer::fillRect(const Rect &dest, Pixel pix) { |