Finishing Composite to handle transformed windows
Adam Jackson
ajax at nwnk.net
Mon Jan 9 09:06:59 PST 2006
On Saturday 07 January 2006 05:35, Andy Ritger wrote:
> I'm not real excited about a GLX extension to give a GLXContext a
> subwindow_mode attribute, but it seems feasible. I'd be curious
> what other GLX implementors think about that.
I'm not completely clear on what it would entail, my knowledge of DRI clipping
far exceeds my knowledge of plain X clipping. But while we're on the subject
of DRI integration:
I did look into modifying the DRI to not clip DRI drawables if they're being
occluded by manually redirected windows. This turned out to be non-trivial,
the ClipNotify chain only gives you the window being clipped and not the
window doing the clipping. The MarkOverlappedWindows chain might give me
enough information to do this but that seems remarkably heavy.
The complementary problem is skipping clipping when the direct-rendered
surface is itself redirected. I think compRedirectWindow needs to grow a
notifier chain, and the DRI protocol or its moral equivalent extended to pass
the notification of front-buffer move to the client.
And then finally the DRI needs the ability to post Damage events to the server
on SwapBuffers and other front buffer updates, but that's pretty trivial and
not directly related to the above.
> > If we decide that the compositing manager must be allowed to draw to a
> > non-root window, then we must create a solution for that window to hold
> > the correct clip list.
>
> It does sound heavy handed to require that the composite manager's
> output window must be the root window. However, it makes things
> easier if that's enforced, and it makes sense in that the root
> window is the only window that cannot itself be redirected.
As you mentioned though, that does require that the server's GLX add all the
right visual properties to the root window, which sounds like a configuration
headache.
The way I've been thinking about it is that redirected windows logically live
in a rootless underlay that never gets exposed and never clips. I don't know
if that's the right model to do in the code, it's sounding like the topmost
stack idea is simplest.
- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20060109/c21869c8/attachment.pgp>
More information about the xorg
mailing list