Changing pixelformat on the fly

Peter Åstrand astrand "at" cendio.se
Mon Dec 27 10:46:01 2004


On Thu, 23 Dec 2004, James Weatherall wrote:

> I'm not talking about the Tight encoding, I'm talking about the other
> Tight protocol messages. The problem is *NOT* local cursor support.  
> Local cursor rendering works fine if implemented as specified in the RFB
> protocol document.  The problem is specifically with the TightVNC
> implementation of local cursor rendering,

Yes, this is correct. 


> therefore hacking your viewer to work around the bug in TightVNC by
> detecting that it is TightVNC makes perfect sense.

Also true. However, I'm still not convinced that looking at the Tight 
security type is a good way of detecting that the server is a TightVNC 
server with the unsolicited FU bug. As far as I understand, *no* TightVNC 
1.2.X server sends the special Tight security type. This was added on 
2004-01-13 - six months after 1.2.9 was released. 


> With regard to full colour mode, it's obviously better to start with
> fewer colours, since that way the initial screen contents will download
> reasonably quickly, even over slow links.  Over fast links, the extra
> time taken to download the low colour copy before switching to full
> colour will be negligible.

This is not my experience. At least when using the Tight encoding, the
time before the first bandwidth estimation is done is many seconds, if not
minutes.

One explanation for this is that the bandwidth calculation only works when 
reading in data via readBytes. If using readU8, readOpaque32 etc, the 
bandwidth calculator is inactive. 


>Over slow links, the extra time taken to load a full colour
> copy before immediately switching to low colour mode and downloading it
> again will be prohibitive.

I don't agree. At least when using the Tight encoding, a full color 
framebuffer isn't much more expensive than a low color one. 

Also, since we have the "unsolicited FU bug", if we were to start in low 
color mode, we would not be able to switch to full color, when running 
against TightVNC 1.2 servers!


-- 
Peter Estrand		Chief Developer
Cendio			www.thinlinc.com
Teknikringen 3		www.cendio.se
583 30 Linkvping        Phone: +46-13-21 46 00