XComposite Overlay Window usage
chris at chris-wilson.co.uk
Tue Sep 24 13:27:02 PDT 2013
On Tue, Sep 24, 2013 at 09:48:06PM +0200, Jochen Keil wrote:
> Hello Chris,
> On 23.09.2013 15:19, Chris Wilson wrote:
> > On Mon, Sep 23, 2013 at 01:23:08PM +0200, Jochen Keil wrote:
> >> Hello,
> >> I'm trying to write an application with which I'd like to draw "over"
> >> other windows. So far my attempts have been:
> >> * Drawing to an transparent overlay window I create myself: Main problem
> >> is to keep this window always on top of of all the other windows
> >> (repeated calls to XRaiseWindow, possible flicker) + requires a
> >> compositing manager.
> > I took this approach (using the hw overlay plane), plus a
> > XV_ALWAYS_ON_TOP attribute. (Eliminates the raise requirement, and
> > allows the user to write to the scanout without waking the GPU.) Using
> > the overlay also ensures that it appears over all windows, including the
> > compositing manager or fullscreen games (without interferring with those).
> thanks for your reply. I looked for documentation for XV_ALWAYS_ON_TOP,
> but couldn't find any. Is there documentation available somewhere?
I added it to the driver since it was the only way to achieve what I
wanted, as such document is pretty sparse - the only clue is in the
> However, I figured, that what I'd like my application to do resembles
> more a compositing manager. In particular I wanted my windows to become
> transparent only on overlapping parts. For example I have an focused
> window which is partially occluded by an unfocused window. The unfocused
> window would then be drawn transparently over the focused window. Thus I
> think it'd be more appropriate to write a plug-in for an existing
> compositing manager.
Indeed, that can only be done in a compositing manager. If you want to
learn the fundamentals, xcompmgr is a good place to start as it is the
minimal compositing manager and so easiest to understand. That should
allow you to prototype your ideas quickly, if you don't want to dive
into mutter/compiz/kwin straight-away.
Chris Wilson, Intel Open Source Technology Centre
More information about the xorg