diff options
author | Jørgen Lind <jorgen.lind@nokia.com> | 2012-01-04 08:33:28 +0100 |
---|---|---|
committer | Jørgen Lind <jorgen.lind@nokia.com> | 2012-01-04 10:34:40 +0100 |
commit | d5ea033df8cf0a2dec49fce639d84e7dd0a2fced (patch) | |
tree | 15d92a4990b612e73450d110a6cc820df8cdee2e /src/compositor/wayland_wrapper/wlcompositor.cpp | |
parent | 62bba49c83849ca5904357de45c888f9fab3106a (diff) |
Implement subsurfaces extension
This allows you to have subwindows in the compositor.
We tried to experiment with composing subsurfaces client side, but the
architecture did not feel very lean. This however, requires the
compositor to compose each surface before drawing the surface. The
example compositors render the subsurfaces into the wl_surfaces texture.
This might not be a good idea.
Change-Id: I6e186b62d7b490de7f4e6c6f22fcf6c1e0a70df3
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/compositor/wayland_wrapper/wlcompositor.cpp')
-rw-r--r-- | src/compositor/wayland_wrapper/wlcompositor.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/compositor/wayland_wrapper/wlcompositor.cpp b/src/compositor/wayland_wrapper/wlcompositor.cpp index abfcac63f..b998c9120 100644 --- a/src/compositor/wayland_wrapper/wlcompositor.cpp +++ b/src/compositor/wayland_wrapper/wlcompositor.cpp @@ -49,6 +49,7 @@ #include "wldatadevice.h" #include "wlextendedoutput.h" #include "wlextendedsurface.h" +#include "wlsubsurface.h" #include <QWindow> #include <QSocketNotifier> @@ -120,6 +121,7 @@ Compositor::Compositor(WaylandCompositor *qt_compositor) , m_retainNotify(0) , m_outputExtension(0) , m_surfaceExtension(0) + , m_subSurfaceExtension(0) { compositor = this; qDebug() << "Compositor instance is" << this; @@ -339,6 +341,13 @@ void Compositor::initializeWindowManagerProtocol() m_windowManagerIntegration->initialize(m_display); } +void Compositor::enableSubSurfaceExtension() +{ + if (!m_subSurfaceExtension) { + m_subSurfaceExtension = new SubSurfaceExtensionGlobal(this); + } +} + bool Compositor::setDirectRenderSurface(Surface *surface) { #ifdef QT_COMPOSITOR_WAYLAND_GL |