[haiku-development] Re: Reading the Mouse Cursor and Dirty Screen

  • From: "Alexander G. M. Smith" <agmsmith@xxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Fri, 27 Mar 2015 10:24:50 -0400 EDT

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

Other related posts: