[
https://issues.apache.org/jira/browse/GUACAMOLE-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17312588#comment-17312588
]
Mike Jumper commented on GUACAMOLE-168:
---------------------------------------
{quote}
The main benefit of the XOrg driver approach is to eliminate the
encoding/decoding of the VNC protocol coming out of the VNC host
{quote}
That's one benefit, yes. The other main benefit is direct awareness of the
existence of individual windows and surfaces.
The Guacamole protocol has supported client-side compositing of nested surfaces
for ages. Awareness of window state would allow us to accelerate the
representation of individual windows. The various currently supported protocols
like VNC and RDP do not expose that kind of information, instead representing
the remote display as a single surface without any window-specific metadata.
When a window is moved, that operation generally accomplished with a series of
redraw and copy operations. When directly aware of window state, we can instead
represent that with a true move and simply update the location of the relevant
surface.
> Add support for X.Org
> ---------------------
>
> Key: GUACAMOLE-168
> URL: https://issues.apache.org/jira/browse/GUACAMOLE-168
> Project: Guacamole
> Issue Type: New Feature
> Components: guacamole-client, guacamole-server
> Reporter: Mike Jumper
> Assignee: Mike Jumper
> Priority: Major
> Attachments: 00-guac.conf, Xorg.0.log
>
>
> It's been frequently requested that we add support for a more efficient
> protocol like NX or X2Go. Though that sounds nice on the surface, and
> theoretically would allow us to leverage some of Guacamole's nicer
> protocol-level features, investigating deeper reveals:
> # X2Go *is* NX - it uses the same protocol behind the scenes.
> # NX isn't really a protocol - it is essentially a compressor for X11, and
> depends on the client having a local X11 server to handle the decompressed
> result.
> Implementing support for either of these would thus involve implementing
> support for X11, which is crazy. *However:*
> What about implementing a driver for the X.Org X11 server?
> The X.Org server provides a driver abstraction layer which exposes access to
> windows (including their hierarchy) and pixmaps, much in the same way the
> Guacamole protocol provides nestable layers and buffers. If we were to
> implement a Guacamole driver for X.Org, we would be able to make much greater
> use Guacamole protocol features like client-side compositing. Operations
> which are typically expensive in VNC or RDP like window movement suddenly
> become simple, as they only involve updating the properties of a layer.
> I have an experimental implementation of all this, built upon several other
> improvements which ended up being required. Work started several years ago,
> even before Guacamole was accepted into the Apache Incubator, but I think
> it's finally ready to move forward. I've been using it myself for roughly a
> month now, and so far so good.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)