[compiz] Re: input transformations

David Reveman davidr at novell.com
Tue Feb 6 21:25:20 PST 2007

On Tue, 2007-02-06 at 11:36 -0800, Deron Johnson wrote: 
> David Reveman wrote:
> I'm having trouble understanding this terminology.
> >In this approach I allow every window to have it's own root window
> >coordinate space.
> >
> In the X server, "root window coordinate space" means something very 
> specific.
> It means the coordinate space of the WindowTable[pScreen->myNum] window,
> or, the root window. Saying that each window has its own root window 
> coordinate
> space is going to get confusing. Is there some other term you can use?

Each window got its own coordinate space and the tri-mesh for a window
maps root coordinates from the parent window. I called it "root
coordinate space" because it's root coordinates we're mapping but I
understand that that must have been confusing.

> And, is the coordinate space a 2D or 3D frame of reference?


> > A window's root window coordinate space is affected by
> >all it's ancestors.
> >
> How do these ancestors affect the coordinate space? Are their transforms 
> concatenated?


> > Composite clients can set a triangular mesh that
> >maps root window coordinates from a composite window to one of its
> >redirected child-windows. 
> >
> Specifically how is the triangular mesh used to map the coordinates?
> What is the algorithm?

It's just pairs of triangles, one triangle in parent space paired with a
triangle in child space. Basic uv-mapping is used to transform a
coordinate from parent -> child or child -> parent.

Implementation doesn't care of triangles in the mesh overlap or if holes
exist in the mesh.

Looking at the code in my patch might also help understand what I'm
trying to explain.

- David

More information about the compiz mailing list