On Fri, 9 Mar 2001, Ralph Corderoy wrote:

> Hi Mac,
> 
> > History and technology lessons follow for those of you who are
> > interested...
> 
> Thanks for the interesting explanation.
> 
> > For those of you who are interested, this is a problem because WinVNC
> > must pull the image of the screen from the system.  It does this with
> > GetDIBits (probably with some intermediate work, but this is the core
> > routine), a function supplied as part of Windows.  To process the
> > pixels, VNC wants full 24bit color values.  GetDIBits refuses to
> > convert images from planar (definition below) screens into 24bit
> > color values.  It *would* be possible to replace GetDIBits with a
> > looping call to GetPixel, but the speed penalty would be
> > unimaginable.  GetPixel is PAINFULLY slow.
> 
> Will GetDIBits return the data in planar format?  If so, VNC server
> could be extended to then convert to the chunky format it prefers?

GetDIBits can only deal with chunky formats, I think. It *should* work
with 16-colour displays anyway, since the format requested by VNC for
these is always 256-colour chunky, but under Win9x the graphics driver
makes a mess of this.  Sadly, Microsoft used the same driver for Win2K,
rather than keeping the (working) WinNT one, I think.

It's possible that the faster DIBsection based code may actually be more
tolerant to the problem but I no longer have any 16-colour Win9x/Win2K
boxes available.

Cheers,

James "Wez" Weatherall
--
Laboratory for Communications Engineering, Cambridge - Tel : 766513
AT&T Labs Cambridge, UK                              - Tel : 343000
---------------------------------------------------------------------
To unsubscribe, send a message with the line: unsubscribe vnc-list
to [EMAIL PROTECTED]
See also: http://www.uk.research.att.com/vnc/intouch.html
---------------------------------------------------------------------

Reply via email to