1. 17 Sep, 2019 1 commit
  2. 01 Jul, 2019 2 commits
    • Vlad Zahorodnii's avatar
      [plugins/qpa] Implement native offscreen surface · f5b66a58
      Vlad Zahorodnii authored
      Depending on whether the underlying platform supports offscreen surfaces,
      QOffscreenSurface may create an invisible QWindow. In our case that's the
      case, for each offscreen surface a native window is created. This may
      lead to some funky results related to window decorations, see bug 407612.
      There are several ways to implement offscreen surfaces - either use pbuffers
      or utilize a surfaceless context extension. For the sake of simplicity
      this change sticks with pbuffers, but it's a good idea to support both
      CCBUG: 407612
      Reviewers: #kwin, romangg
      Reviewed By: #kwin, romangg
      Subscribers: romangg, alexeymin, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D22150
    • Vlad Zahorodnii's avatar
      [plugins/qpa] Split out EGL helpers · 22d70d0c
      Vlad Zahorodnii authored
      Summary: This change is a prerequisite for adding offscreen surface support.
      Reviewers: #kwin, romangg
      Reviewed By: #kwin, romangg
      Subscribers: kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D22196
  3. 22 Feb, 2019 1 commit
    • Martin Flöser's avatar
      [qpa] Drop PlatformContextWayland which uses wayland egl for OpenGL · e48d9df1
      Martin Flöser authored
      Using the Wayland protocol for OpenGL is no longer used or useful. KWin
      internal windows only use OpenGL through QtQuick. We either have the
      sharing context (KWin uses OpenGL for compositing) or we have the
      QPainter compositor which also turns QtQuick to use software renderer.
      Thus a situation where the Wayland platform context is useful doesn't
      exist any more. Removing it helps getting the QPA plugin Wayland free.
      Test Plan:
      Run nested KWin triggering Outline once with OpenGL and once
      with QPainter compositor.
      Reviewers: #kwin
      Subscribers: kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D19012
  4. 17 Feb, 2019 1 commit
  5. 18 Dec, 2018 1 commit
  6. 04 Nov, 2018 1 commit
  7. 28 Oct, 2016 1 commit
  8. 18 Jul, 2016 1 commit
  9. 17 Feb, 2016 1 commit
    • Martin Flöser's avatar
      [plugins/qpa] Implement a custom QPlatformCursor · 7d81e9cf
      Martin Flöser authored
      This makes QCursor::pos and QCursor::setPos function correctly. KWin
      actually wouldn't need it as KWin has the KWin::Cursor replacement, but
      it allows Qt internal API to have it function correctly and also the
      zoom effect does use QCursor::setPos.
  10. 01 Dec, 2015 1 commit
    • Martin Flöser's avatar
      Make Wayland::EGL optional again · d89777bc
      Martin Flöser authored
      This is needed to make KWin build-able on non-Linux, but is actually
      only a workaround. The dependency should also be available on non-Linux.
      This disables the EGL integration in the Wayland backend (QPainter still
      available) and the EGL fallback in the qpa plugin (preferred context
      sharing still available, but requires a working OpenGL Scene).
      REVIEW: 126202
  11. 25 Aug, 2015 1 commit
    • 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
      * 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