How does RealVNC know when to make a screen capture

Castelier Serge (RBFM/ASQ1) * Serge.Castelier "at" fr.bosch.com
Wed Jan 7 08:59:01 2004


Thank you for your response Corne.

If you make screen captures of the entire screen at small intervalls ( say 50ms), you'll use a lot of processor time on a Win32 PC.

VNC apparently doesn't need a lot of processor time. That's why I gather VNC only makes screen captures of the screen areas which have changed. Unfortunately it's not clear to me how it's done. Is the screen divided in a certain number of regions ( say 10),that screens captures of each region are made, and if something new happens in some of the regionx, the server only makes screen captures of the regions where something has changed?

If so, how does VNC know that something has changed on the screen ? If you only wait until a keyboard or mouve events occurs you can miss changes on your screen.

Could you help me ?


Thank you in advance

Serge

-----Message d'origine-----
De : Corni Beerse [mailto:cbeerse "at" lycos.nl]
Envoyi : mardi 6 janvier 2004 17:30
@ : Castelier Serge (RBFM/ASQ1) *; vnc-list "at" realvnc.com
Objet : Re: How does RealVNC know when to make a screen capture


Castelier Serge (RBFM/ASQ1) * wrote:
> Hello
> 
> I downloaded the source code of VNC and had a look at it.
> 
> Apparently VNC makes screen captures for a Win32 PC by using API's such as
> GetDIBits(). But it's not clear to me how the server part of the application
> knows that something has changed on the screen of the PC. Furthermore ,I don't

It does not know that. That's why you can configure several polling options in 
the vncserver. It just peeks at some regular interval or when it expects 
differences (like mouse or keyboard actions).

> know if VNC makes a screen capture of the entire screen or just of the part
> that has been changed.

That's also one of the polling options.

> 
> I saw in the source code that regions are beeing used with API's such as
> GetRegionData() and I gather VNC is using regions to determine which part of
> the screen has to be refreshed, but I'm not  familiar with regions and I
> didn't manage to understand how it works.

In the end, I expect/experienced it does just some matrix over the polled area 
and sends the updated rectangles. I don't know for sure.

> 
> Can anyone help me ?
> 
> Thank you in advance
> 
> Serge Castelier
> _______________________________________________
> VNC-List mailing list
> VNC-List "at" realvnc.com
> To remove yourself from the list visit:
> http://www.realvnc.com/mailman/listinfo/vnc-list