A question about XCompositeRedirectSubwindows

Jasper St. Pierre jstpierre at mecheye.net
Tue Jun 19 06:42:18 UTC 2018


Hi,

What you're seeing here is a fun little side effect of composite. As you
might be aware, unredirected X windows don't have any backing storage
beyond the front buffer -- the full window contents are not really there.
That means that when the X server first goes to redirect these windows, it
decides that it should let the window paint again, and sends the window an
Expose event to let it know it should repaint. A side effect of this is
that the X server redraws the background for the window. This is the
semantics for what an Expose event means -- an area that is "Exposed" is
the background color until the client paints over it.

The client will eventually paint its window contents, but since your CM
does not appear to have a frame loop, and it only paints once, you do not
see the updated frame contents.

On Sun, Jun 17, 2018 at 1:28 PM Egil Möller <egil at innovationgarage.no>
wrote:

> Hi!
>
> I'm trying to write a new compositing window manager, and finding the
> documentation for the API:s I need quite spread out.
>
> The particular problem I'm having right now is that copying some windows
> (xclock) using
> XCompositeRedirectSubwindows and e.g. XRenderComposite works fine, while
> other windows (xterm, xlock) leaves me we a square with only their
> background color. This seems to be true for both XRenderComposite and
> glXBindTexImageEXT. Any ideas what's different between them, and what I
> need to do differently?
>
> My code is here: https://github.com/redhog/InfiniteGlass
> (main code is in wm.c; running "make" ahould give you an Xephyr nested X
> session that shows the problem).
>
> Thanks in advance,
>
> Egil Möller
>
>
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: https://lists.x.org/mailman/listinfo/xorg-devel



-- 
  Jasper
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.x.org/archives/xorg-devel/attachments/20180618/2c0c2071/attachment.html>


More information about the xorg-devel mailing list