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
---------------------------------------------------------------------