How does RealVNC know when to make a screen capture
Corné Beerse
cbeerse "at" lycos.nl
Wed Jan 7 10:27:01 2004
Castelier Serge (RBFM/ASQ1) * wrote:
> 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.
I don't know. The major cpu usage is in the compression.
>
> 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?
I'm sorry but I'm not that deep into the vnc source, definitly not on M$Winodws.
I only use it and twiggle a little with the polling settings.
Since I did that because I was on a low bandwith connection, I saw the slow update.
Some (10) years ago, I was a developper and I do know how to read source code
but currently I don't take the time to do so, definitly not for something I
don't need to twiggle with.
>
> 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.
On M$, vnc does not know if something has changed, the comparision takes way to
much resources (memory and processor power) It expects things to be changed (or
not). I don't know what meganism triggers that, I do know it has some flaws,
specially if tools are not written using the standard M$Windows libraries.
>
> Could you help me ?
no.
btw: in the archives (discussed a couple of months ago) there was a little tool
called rfbcounter or rfbclock or such. It just generates pictures and you can
view that with a vncviewer. It was all verry basic code but nice and small to
start learning the vnc concept. See if you can find that.
CBee
>
>
> 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