James,
Thank you for an excellent program. I have a small question & perhaps a bug
fix. In the CheckBuffer function in vncBuffer,
memcpy(m_backbuff, m_mainbuff, m_desktop->ScreenBuffSize());
Is used to clear the backbuffer. Sounds very innocent.
If however in the client there is some outstanding m_changed_rgn to be
processed then a subsequent call to GetChangedRegion will not detect, and thus
not send, the changed rects. CheckBuffer seems to be called in this case after
a screen saver kicks in. (which btw as you prob know still happens even if vnc
managed to kill it in the first place.)
I don't know if this is a real problem as it is probably rare to have
outstanding m_changed_rgn. I can imagine it being a problem if a viewer
requests a non full screen m_incr_rgn. I get it because in my version of
vncClient::SendUpdate() I sometimes reduce m_changed_rgn to lower the CPU
impact of large area checks. Anyway commenting out the memcpy does not seem to
produce any harmful side effects, seems to save a "needless" and expensive
memcpy and removes my problem. I hope this is helpful.
---------------------------------------------------------------------
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
---------------------------------------------------------------------