Skip to content
  • Martin Flöser's avatar
    [wayland] Add a QPA plugin for kwin_wayland · 26b3569a
    Martin Flöser authored
    This introduces an own QPA plugin for KWin. QtWayland's plugin is not
    a good solution for KWin as QtWayland is meant for Wayland clients and
    not for a Wayland server. Given that it makes more sense to have a very
    minimal QPA plugin which supports the use cases we actually have.
    
    With our own QPA plugin we should be able to improve the following
    areas:
    * no need to create Wayland server before QApplication
    * Qt::BypassWindowManagerHint can be supported
    * no workaround for creating OpenGL context in main thread
    * sharing OpenGL context with Qt
    * OpenGL context for Qt on libhybris backend
    
    The plugin supports so far the following features:
    * creating a QPlatformWindow using KWayland::Client (ShellSurface)
    * creating a QPlatformBackingStore using a ShmPool
    * creating a QPlatformOpenGLContext with Wayland::EGL
    * or creating a QPlatformOpenGLContext which shares with KWin's scene
    * creating a QPlatformScreen for each KWayland::Client::Output
    * QPlatformNativeInterface compatible to QtWayland
    26b3569a