[Lazarus] Remote application

Santiago A. svaa at ciberpiula.net
Wed Oct 31 12:03:54 CET 2012

El 31/10/2012 10:13, Michael Schnell escribió:
> I understand that there are (at least) two ways to do the remote display.
> A) Read the pixels from the graphics driver. This is what VNC does.
> The problem here is, that you don't know when an update is necessary
> (and thus you need to do polling) and that reading the pixels needs a
> lot of performances (get a GDI-handle, read the complete screen memory
> via the bus and then transfer only the pixels that have changed). (In
> fact some time ago I stole this code from VNC, translated it from C to
> Pascal and did a thingy that could transfer a rectangle of the screen
> via TCP to another PC.)
> or
> B) Hook into the interface between the application and the Windows
> manager. This is what Linux "Remote X" and Windows "Remote Desktop"
> do. VirtualBox (and supposedly VMWare) seems to be able to do do this,
> too, and here I did already see that it is possible to virtualize a
> single program rather than a complete Desktop.
> Seemingly NX can do both, depending on the situation.

I suppose that NX not only compress, but decides from the server (in
behalf the client application) what must  be send to the client (the
graphic server). A lot of things needn't to be send, a lot of things can
be joint and send only the final result, and a lot of commands can be
queued, cached and sent in less commadds. And the other way around, the
client (the graphic server) needent to sent everything.

I suppose that NX does smart decisions filtering what needs to be sent
in both directions, so saves a lot of traffic and round trips.

X11 It is acceptable when in a local machine, but not for remote
machines, let alone a WAN.  I've heard that the problem is in a poor use
of X11 of libraries like gtk or qt, I've also heard that the problem is
in xlib, the common libarry of most widgets that doesn't optimize the

I have also heard that X11 is a too low level protocol and should be
replaced. There have been some tries like
http://en.wikipedia.org/wiki/Fresco_%28windowing_system%29. In fact,
that is what javascript and ajax tries, send widgets etc.


svaa at ciberpiula.net

More information about the Lazarus mailing list