<div dir="ltr">Thanks Oliver. You are right, for opaque, it is top to bottom. And transparent is reverse.<div>For the opaque window, I noticed that it calls   XRenderComposite with PictOpSrc. If I understand this correctly, this means only the source picture (

dclient->picture

) will be written into the dest window. So for the opaque top to bottom, only the bottommost window will be drawn? It is weird.</div><div><br></div><div>    XRenderComposite(wm->xdpy, PictOpSrc, dclient->picture, None,<br></div><div>                     priv->root_buffer, 0, 0, 0, 0, geom.x, geom.y, geom.width,<br>                     geom.height);<br><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Olivier Fourdan <<a href="mailto:ofourdan@redhat.com">ofourdan@redhat.com</a>> 于2020年7月10日周五 下午5:12写道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi,</div><div><br></div><div>It actually renders the screen in two passes.</div><div><br></div><div>First pass from top to bottom, rendering only the opaque regions, while adding up each opaque region to a global clipping region.<br></div><div><br></div><div>Second pass, from bottom to top, rendering only the translucent areas, clipping out the opaque regions that it found in the first pass.</div><div><br></div><div>That's more efficient than rendering in a single pass from bottom to top.<br></div><div><br></div><div>FWIW, the logic is from xcompmgr, from Keith.</div><div><br></div><div>Cheers</div><div>Olivier</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jul 10, 2020 at 11:06 AM 徐星 <<a href="mailto:openxu@gmail.com" target="_blank">openxu@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><br clear="all"><div><p class="MsoNormal" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">Hi, </p>

<p class="MsoNormal" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">Do you have any ideas why matchbox window manager render
clients from top(near) to  bottom(far)?  I understand that the
painter algorithm requires paints from far  to near.</p>

<p class="MsoNormal" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p class="MsoNormal" style="margin:0cm 0cm 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><a href="https://git.yoctoproject.org/cgit/cgit.cgi/matchbox-window-manager-2/tree/matchbox/comp-mgr/mb-wm-comp-mgr-xrender.c#n1619" style="color:rgb(5,99,193)" target="_blank">https://git.yoctoproject.org/cgit/cgit.cgi/matchbox-window-manager-2/tree/matchbox/comp-mgr/mb-wm-comp-mgr-xrender.c#n1619</a></p></div>-- <br><div dir="ltr">NaCl!<br></div></div>
_______________________________________________<br>
<a href="mailto:xorg-devel@lists.x.org" target="_blank">xorg-devel@lists.x.org</a>: X.Org development<br>
Archives: <a href="http://lists.x.org/archives/xorg-devel" rel="noreferrer" target="_blank">http://lists.x.org/archives/xorg-devel</a><br>
Info: <a href="https://lists.x.org/mailman/listinfo/xorg-devel" rel="noreferrer" target="_blank">https://lists.x.org/mailman/listinfo/xorg-devel</a><br>
</blockquote></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">NaCl!<br></div>