The problem is not the Qt API but OpenGL. There's no other way of translating the contents than telling somehow the offset to the client and let the developer accout for it, which is not acceptable.<div>Actually, thanks to <a href="http://doc-snapshot.qt-project.org/5.0/qopenglcontext.html#defaultFramebufferObject">http://doc-snapshot.qt-project.org/5.0/qopenglcontext.html#defaultFramebufferObject</a> a FBO solution is doable. But doable only, not good and not optimal at all.</div>
<div><br></div><div>Giulio<br><br><div class="gmail_quote">2012/11/4 Bill Spitzak <span dir="ltr"><<a href="mailto:spitzak@gmail.com" target="_blank">spitzak@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The Qt drawing api should be set with a translation, and possibly with a clip, so that when the contents are drawn into the buffer they are offset correctly to miss the area the window border is drawn into.<div><div class="h5">
<br>
<br>
On 11/03/2012 04:46 AM, Giulio Camuffo wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
Hi all,<br>
<br>
I'm trying to get decorations in QtWayland for EGL apps. The problem<br>
that I'm facing is that I cannot find a good way to do so.<br>
One solution could be to use an FBO, let the client draw in that and<br>
then draw the content of the FBO into the surface whith its nifty<br>
decoration. This would work but what happens if the client in its<br>
rendering code calls glBindFramebuffer(0)? It will start drawing<br>
directly to the surface and it will screw up badly.<br>
Using an EGL pixel buffer would solve the issue, as I can call<br>
eglMakeCurrent with that, but copying its content to the surface is slow.<br>
A faster thing would probably be wl_egl_pixmap but it's gone.<br>
<br>
The ideal solution would be to have an EGL extension that lets call<br>
eglMakeCurrent with a rect that defines the boundaries of the drawable<br>
surface.<br>
There's NV_post_sub_buffer<br>
(<a href="http://www.khronos.org/registry/egl/extensions/NV/EGL_NV_post_sub_buffer.txt" target="_blank">http://www.khronos.org/<u></u>registry/egl/extensions/NV/<u></u>EGL_NV_post_sub_buffer.txt</a>)<br>
but wl_egl_windows don't seem to support it.<br>
<br>
So I'm stuck. Does anyone have an idea?<br>
<br>
Giulio<br>
<br>
<br>
<br></div></div>
______________________________<u></u>_________________<br>
wayland-devel mailing list<br>
<a href="mailto:wayland-devel@lists.freedesktop.org" target="_blank">wayland-devel@lists.<u></u>freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" target="_blank">http://lists.freedesktop.org/<u></u>mailman/listinfo/wayland-devel</a><br>
<br>
</blockquote>
<br>
______________________________<u></u>_________________<br>
wayland-devel mailing list<br>
<a href="mailto:wayland-devel@lists.freedesktop.org" target="_blank">wayland-devel@lists.<u></u>freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/wayland-devel" target="_blank">http://lists.freedesktop.org/<u></u>mailman/listinfo/wayland-devel</a><br>
</blockquote></div><br></div>