Finishing Composite to handle transformed windows

Deron Johnson Deron.Johnson at Sun.COM
Mon Jan 9 11:15:29 PST 2006



Andy Ritger wrote On 01/06/06 19:59,:

> If anything, the clip generation change to not be clipped by siblings
> seems like a smaller behavioral change, which is appealing.
> 
> However, I wonder if the real problem is that the output window
> is a sibling of the redirected widnows, rather than the parent.
> It seems to me that the cleanest architecture is one where the
> output window is the parent of all the redirected windows.
> 
> What if windows were *not* clipped by redirected children (atleast
> for manual redirection)?  Then, in the LG example, LG could either
> use the root window as the output window (or, if rendering to
> the root window is not an option for the reasons Deron mentioned
> elsewhere in this thread, then create a fullscreen child of the
> root window for rendering the output, and then reparent all other
> windows under the output window).  If ClipByChildren rendering
> to the parent is not clipped by redirected children, then OpenGL
> rendering won't be clipped either.
> 
> I may be misunderstanding this, but I believe the above would
> solve both the problem of the output window getting clipped, and
> the problem of the output window accidentally getting redirected.
> 
> As a side benefit, other composite managers won't need to use
> IncludeInferiors, which feels a little kludgy to me.
> 
> A variation on the above that might provide more flexibility is to
> turn this decision of whether redirected children clip the parent
> into an attribute that is specified at redirection time.

This is precisely the architecture I've been prototyping for
two years and my conclusion after this investigation is that it
introduces many more problems and issues than topmost windows do.
My documents describe the many problems I had to hack around in
order to get reparenting to a pseudo-root window to work. Refer
to my earlier message in which I detail the specific sections of
my documents that deal with this issue.




More information about the xorg mailing list