Unresponsive applications
Bill Spitzak
spitzak at gmail.com
Thu Sep 22 20:24:44 PDT 2011
The linked document pretty clearly indicates that you can just extend
the blurry render further into the window. There are only 4 parameters
to set the margin thickness, yet the demo program draws a more complex
rendering where the resulting shape two rectangular opaque areas. This
is entirely determined by the app drawing two opaque rectangles into the
buffer.
In fact the implementation communicates the border to the compositor so
it can blur that thickness around the edge before the window buffer
(which just contains the partial transparency and no blurriness) is
composited atop. I would guess this was to save time over blurring the
entire window area before compositing, and perhaps to allow non-blurry
transparent holes in the interior of the window. Blur is not comosited
into the client buffer because it would make window dragging too slow.
Further proof that it works this way is the need to fill the region
between the window border with white. This is because the default
transparency would show up as very dark gray on a non-compositing window
manager. If the blur was done by the compositor into the buffer then it
could also do this white if it is not doing compositing.
> [1] http://msdn.microsoft.com/en-us/library/ms748975.aspx
If this is necessary to achieve acceptable speed, then communicating the
border thickness to the compositor in the same way Windows does may be
necessary. Border thickness may also be useful for previewing resizes or
drawing thumbnail versions. I was hoping however it could be determined
from the alpha channel of the buffer.
More information about the wayland-devel
mailing list