Browse Source

Make sure we list fallback encodings in a preferable order.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3661 3789f03b-4d11-0410-bbf8-ca57d06f2519
tags/v0.0.90
Pierre Ossman 15 years ago
parent
commit
090e7d6fb3
1 changed files with 29 additions and 2 deletions
  1. 29
    2
      common/rfb/CMsgWriter.cxx

+ 29
- 2
common/rfb/CMsgWriter.cxx View File

@@ -72,11 +72,38 @@ void CMsgWriter::writeSetEncodings(int preferredEncoding, bool useCopyRect)
if (useCopyRect) {
encodings[nEncodings++] = encodingCopyRect;
}

/*
* Prefer encodings in this order:
*
* Tight, ZRLE, Hextile, *
*/

if ((preferredEncoding != encodingTight) &&
Decoder::supported(encodingTight))
encodings[nEncodings++] = encodingTight;

if ((preferredEncoding != encodingZRLE) &&
Decoder::supported(encodingZRLE))
encodings[nEncodings++] = encodingZRLE;

if ((preferredEncoding != encodingHextile) &&
Decoder::supported(encodingHextile))
encodings[nEncodings++] = encodingHextile;

// Remaining encodings
for (int i = encodingMax; i >= 0; i--) {
if (i != preferredEncoding && Decoder::supported(i)) {
encodings[nEncodings++] = i;
switch (i) {
case encodingTight:
case encodingZRLE:
case encodingHextile:
break;
default:
if ((i != preferredEncoding) && Decoder::supported(i))
encodings[nEncodings++] = i;
}
}

encodings[nEncodings++] = pseudoEncodingLastRect;
if (cp->customCompressLevel && cp->compressLevel >= 0 && cp->compressLevel <= 9)
encodings[nEncodings++] = pseudoEncodingCompressLevel0 + cp->compressLevel;

Loading…
Cancel
Save