aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>2006-05-24 10:05:24 +0000
committergeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>2006-05-24 10:05:24 +0000
commitbb92e1203066f02244eb26b6c1e2a09846314ce1 (patch)
treeb988d5fff365fa336ae2f6c974dc42e53a54444f
parent2dc01bcfc18944ecb015e2fe7647676f7e428836 (diff)
downloadtigervnc-bb92e1203066f02244eb26b6c1e2a09846314ce1.tar.gz
tigervnc-bb92e1203066f02244eb26b6c1e2a09846314ce1.zip
Small rfb_win32::ScaledDIBSectionBuffer class code
improvements. Create rfb_win32::ScaledDIBSectionBuffer::src_buffer only if the vncviewer work in the scaling mode. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@584 3789f03b-4d11-0410-bbf8-ca57d06f2519
-rw-r--r--rfb_win32/ScaledDIBSectionBuffer.cxx23
1 files changed, 14 insertions, 9 deletions
diff --git a/rfb_win32/ScaledDIBSectionBuffer.cxx b/rfb_win32/ScaledDIBSectionBuffer.cxx
index e6c15b8e..bd6b4d37 100644
--- a/rfb_win32/ScaledDIBSectionBuffer.cxx
+++ b/rfb_win32/ScaledDIBSectionBuffer.cxx
@@ -40,23 +40,28 @@ ScaledDIBSectionBuffer::~ScaledDIBSectionBuffer() {
void ScaledDIBSectionBuffer::setScale(int scale_) {
if (scale_ == getScale()) return;
- if (src_buffer) {
- delete src_buffer;
- src_buffer = 0;
- }
if (scale_ != 100) {
scaling = true;
- src_buffer = new ManagedPixelBuffer(format, src_width, src_height);
- src_data = &(src_buffer->data);
+ if (!src_buffer) {
+ src_buffer = new ManagedPixelBuffer(format, src_width, src_height);
+ src_data = &(src_buffer->data);
+ }
} else {
scaling = false;
+ if (src_buffer) delete src_buffer;
+ src_buffer = 0;
+ src_data = 0;
}
ScaledPixelBuffer::setScale(scale_);
+ recreateScaledBuffer();
}
-void ScaledDIBSectionBuffer::setPF(const PixelFormat &pf) {
- if (scaling) src_buffer->setPF(pf);
- DIBSectionBuffer::setPF(pf);
+void ScaledDIBSectionBuffer::setPF(const PixelFormat &pf_) {
+ if (scaling) {
+ ScaledPixelBuffer::setPF(pf_);
+ src_buffer->setPF(pf_);
+ }
+ DIBSectionBuffer::setPF(pf_);
scaled_data = data;
}