looncraz <looncraz@xxxxxxxxxxx> wrote on Thu, 26 Mar 2015 10:46:12 -0500: > Yes, both are doable. I'm not certain as to how VNC remote viewing is > handled, but I imagine it uses the RemoteHWInterface in the app_server, > which will not enable the hardware cursor, so will always use a software > cursor. Currently VNCServer just screen (using a BDirectWindow for direct video memory access or alternatively BScreen->ReadBitmap()) scrapes the active workspace, and handles switching between different screen sizes and depths fairly well. Are you are suggesting setting up a virtual video board in effect? That could be an interesting way of doing it, which would also speed up screen reading since it would reside in main RAM, not the occasionally much slower video memory. On the other hand, it would be simpler for the user to understand a program that merely shows what's on the real screen, remotely. > As for the dirty areas of the screen, the same aforementioned object > contains a CopyBackToFront(BRect) method which is called each time a > draw is performed by an attached DrawingEngine. Thanks - now I know where to look, for one way of doing it. > The base HWInterface will be getting a couple of methods for tracking > changes made by all attached DrawingEngines. This will be used by > compositing, for certain, and is obviously valuable for remote viewing. A global interface would be useful for the screen scraping variety of VNC. I can hack around with a modified version of the app server (once you've finished your work), and if it is useful, make an official hook function or some sort of add-on interface to it. > Hope this was in any way helpful ;-) Quite useful, thanks. - Alex