XComposite input redirection/transformation proposal

Kristian Høgsberg krh at bitplanet.net
Mon Feb 18 17:20:16 PST 2008


On Feb 17, 2008 12:26 AM, Keith Packard <keithp at keithp.com> wrote:
>
> On Sun, 2008-02-17 at 05:16 +0100, Dennis Kasprzyk wrote:
>
> > David Reveman made patches for such a system a long time ago, but no one
> > with enough xserver knowledge tried to finalize the patches for xserver
> > inclusion. Everyone is saying that we need it, but it's always only moved
> > to the todo list for the next xserver version.
>
> indeed -- in-the-server transformation seems so ugly, and yet we haven't
> figured out how to do it out-of-server. It's not a motivating situation,
> I'm afraid.

I don't really think it's that bad - a 3D tri-mesh mirrors the way we
do output redirection, that is OpenGL triangles.  I'm sceptical that
we'll need more advanced primitives for the foreseeable future, I just
don't see a use case.  As it is we send the geometry to the X server
for each frame already and for your average compositing manager (even
with wobbling windows) it's tiny.  There are no round trips involved,
so it's essentially free.  I was going to write that we're letting
perfect get in the way of good enough, but I really don't think an
external input processing architechture can ever be perfect.  I think
there is an unspoken assumption that since the compositing manager is
an external client, we need to mirror that design for the input
redirection to be equally flexible.  I don't think that's true, and
even a compositing manager is limited by the primitives the X server
provides for rendering the redirected windows.

When I last talked to David about his trimesh implementation, I got
the impression that the biggest problem at this point was fixing the
clients.  A lot of applications do their own ad-hoc input redirection:
query the pointer position and then remap screen coordinates to local
window coordinates.  Not out or malice or because they hate freedom,
just because it was easier or more convenient to write the
drag-and-drop code that way.

cheers,
Kristian



More information about the xorg mailing list