kwin/plugins/platforms/drm
Martin Flöser cbbe94d769 Restrict available supported compositors based on first initialized one
Summary:
On Wayland we cannot switch from OpenGL to QPainter compositor as this
would break any running OpenGL application. KWin registers it's
EGLDisplay to Wayland and without OpenGL this doesn't make sense any
more. We are not able to render OpenGL buffers in the QPainter
compositor.

While it's theoretically possible to switch from QPainter to OpenGL it
doesn't make any sense for the same reason. Any running OpenGL
application would be using llvmpipe and could not be switched to proper
OpenGL.

This change stores the selected compositing type in Platform and the
implementations can use it to restrict the supported compositors. On X11
we don't need this, all other Platforms implement the restriction. Thus
it's no longer possible to switch the backends at runtime.

Test Plan:
Adjusted tests run, no runtime test as gui doesn't support
switching to QPainter anyway.

Reviewers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D19084
2019-02-22 16:59:08 +01:00
..
CMakeLists.txt Build platform plugins in correct sub directory of build dir 2018-12-13 19:36:28 +01:00
drm.json SVN_SILENT made messages (.desktop file) - always resolve ours 2018-10-24 06:05:03 +02:00
drm_backend.cpp Restrict available supported compositors based on first initialized one 2019-02-22 16:59:08 +01:00
drm_backend.h Overhaul doxygen comments 2019-02-12 19:29:33 +02:00
drm_buffer.cpp [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_buffer.h [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_buffer_gbm.cpp [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_buffer_gbm.h GBM remote access support for KWin 2018-03-25 20:18:47 +03:00
drm_inputeventfilter.cpp Update seat's timestamp after waking up screen through double tap 2018-05-20 15:38:31 +02:00
drm_inputeventfilter.h
drm_object.cpp [platforms/drm] Use more ScopedDrmPointer 2019-02-10 20:26:02 +02:00
drm_object.h Fix minor EBN issues 2018-08-29 21:02:16 +03:00
drm_object_connector.cpp [platforms/drm] Use more ScopedDrmPointer 2019-02-10 20:26:02 +02:00
drm_object_connector.h [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_object_crtc.cpp [platforms/drm] Use more ScopedDrmPointer 2019-02-10 20:26:02 +02:00
drm_object_crtc.h [colorcorrection] Set gamma through Output class 2018-08-31 11:58:21 +02:00
drm_object_plane.cpp [platforms/drm] Use more ScopedDrmPointer 2019-02-10 20:26:02 +02:00
drm_object_plane.h [autotests] Add tests for DRM platform plugin 2017-11-21 19:27:33 +01:00
drm_output.cpp Add output orientation size helper 2018-11-14 20:05:39 +01:00
drm_output.h Move output refresh rate getter into AbstractOutput 2018-11-14 20:04:29 +01:00
drm_pointer.h
egl_gbm_backend.cpp Introduce generic Output class 2018-08-31 11:53:12 +02:00
egl_gbm_backend.h Overhaul doxygen comments 2019-02-12 19:29:33 +02:00
gbm_surface.cpp [platforms/drm] Use a shared pointer for gbm_surface 2017-10-05 21:32:46 +02:00
gbm_surface.h Fix DRM EGL crash regression 2017-10-12 10:12:24 +02:00
logging.cpp
logging.h
remoteaccess_manager.cpp Introduce generic Output class 2018-08-31 11:53:12 +02:00
remoteaccess_manager.h GBM remote access support for KWin 2018-03-25 20:18:47 +03:00
scene_qpainter_drm_backend.cpp Introduce generic Output class 2018-08-31 11:53:12 +02:00
scene_qpainter_drm_backend.h Move QPainter compositor into plugin 2017-09-01 17:44:49 +02:00
screens_drm.cpp Move output refresh rate getter into AbstractOutput 2018-11-14 20:04:29 +01:00
screens_drm.h Move output refresh rate getter into AbstractOutput 2018-11-14 20:04:29 +01:00