<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 1, 2015 at 12:50 AM, Pekka Paalanen <span dir="ltr"><<a href="mailto:ppaalanen@gmail.com" target="_blank">ppaalanen@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
A fullscreen window with show-through parts is kind of an odd concept,<br>
IMHO. For maximized I might understand.<br></blockquote><div><br></div><div>It seems partially-transparent fullscreen terminals are really popular.<br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Pad repeat? That requires application awareness to actually set the<br>
edge pixels. This may be very hard e.g. for video players that just<br>
push the decoded video frame out to screen, and expect the compositor<br>
to add black bars as necessary. You are often dealing with<br>
hardware-acceleration capable buffers, which causes all kinds of<br>
complications.<br></blockquote><div><br></div><div>Yes you are probably right that this is difficult and expensive.<br><br>For the video player it would have to use a subsurface and make a surface with the background color that is 1 pixel larger on all sides, and then the compositor would have to detect this setup and still produce whatever the fast method of displaying the window is. That seems pretty painful.<br><br></div><div>If a client really wants to use the transparency, and does not want opaque black bars, it can be the client's responsibility to produce a buffer that can fill the screen.<br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The black blanket surface behind the window OTOH allows for direct<br>
scanout. If black bars are not visible and the client buffer is<br>
completely opaque, it is possible to scan it out without composition by<br>
rendering.<br></blockquote><div><br></div><div>There should be some way to detect if the buffer is opaque, in which case these optimizations could be done.<br><br></div></div></div></div>