26b3569a0b
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 |
||
---|---|---|
.. | ||
abstractplatformcontext.cpp | ||
abstractplatformcontext.h | ||
backingstore.cpp | ||
backingstore.h | ||
CMakeLists.txt | ||
integration.cpp | ||
integration.h | ||
kwin.json | ||
main.cpp | ||
nativeinterface.cpp | ||
nativeinterface.h | ||
platformcontextwayland.cpp | ||
platformcontextwayland.h | ||
screen.cpp | ||
screen.h | ||
sharingplatformcontext.cpp | ||
sharingplatformcontext.h | ||
window.cpp | ||
window.h |