diff --git a/plugins/qpa/CMakeLists.txt b/plugins/qpa/CMakeLists.txt
index 8da7465877..71077e50c4 100644
--- a/plugins/qpa/CMakeLists.txt
+++ b/plugins/qpa/CMakeLists.txt
@@ -7,7 +7,6 @@ set(QPA_SOURCES
integration.cpp
main.cpp
nativeinterface.cpp
- platformcontextwayland.cpp
platformcursor.cpp
screen.cpp
sharingplatformcontext.cpp
@@ -34,10 +33,6 @@ target_link_libraries(KWinQpaPlugin
${FREETYPE_LIBRARIES}
)
-if(HAVE_WAYLAND_EGL)
- target_link_libraries(KWinQpaPlugin Wayland::Egl)
-endif()
-
install(
TARGETS
KWinQpaPlugin
diff --git a/plugins/qpa/integration.cpp b/plugins/qpa/integration.cpp
index 49459ab930..4bf5fb8bef 100644
--- a/plugins/qpa/integration.cpp
+++ b/plugins/qpa/integration.cpp
@@ -22,7 +22,6 @@ along with this program. If not, see .
#include "platform.h"
#include "backingstore.h"
#include "nativeinterface.h"
-#include "platformcontextwayland.h"
#include "screen.h"
#include "sharingplatformcontext.h"
#include "window.h"
@@ -192,13 +191,7 @@ QPlatformOpenGLContext *Integration::createPlatformOpenGLContext(QOpenGLContext
return new SharingPlatformContext(context, s, kwinApp()->platform()->sceneEglConfig());
}
}
- if (m_eglDisplay == EGL_NO_DISPLAY) {
- const_cast(this)->initEgl();
- }
- if (m_eglDisplay == EGL_NO_DISPLAY) {
- return nullptr;
- }
- return new PlatformContextWayland(context, const_cast(this));
+ return nullptr;
}
void Integration::initScreens()
@@ -252,38 +245,6 @@ EGLDisplay Integration::eglDisplay() const
return m_eglDisplay;
}
-void Integration::initEgl()
-{
- Q_ASSERT(m_eglDisplay == EGL_NO_DISPLAY);
- // This variant uses Wayland as the EGL platform
- qputenv("EGL_PLATFORM", "wayland");
- m_eglDisplay = eglGetDisplay(waylandServer()->internalClientConection()->display());
- if (m_eglDisplay == EGL_NO_DISPLAY) {
- return;
- }
- // call eglInitialize in a thread to not block
- QFuture future = QtConcurrent::run([this] () -> bool {
- EGLint major, minor;
- if (eglInitialize(m_eglDisplay, &major, &minor) == EGL_FALSE) {
- return false;
- }
- EGLint error = eglGetError();
- if (error != EGL_SUCCESS) {
- return false;
- }
- return true;
- });
- // TODO: make this better
- while (!future.isFinished()) {
- waylandServer()->internalClientConection()->flush();
- QCoreApplication::processEvents(QEventLoop::WaitForMoreEvents);
- }
- if (!future.result()) {
- eglTerminate(m_eglDisplay);
- m_eglDisplay = EGL_NO_DISPLAY;
- }
-}
-
QPlatformInputContext *Integration::inputContext() const
{
return m_inputContext.data();
diff --git a/plugins/qpa/integration.h b/plugins/qpa/integration.h
index d8bf6bcbec..708c751a66 100644
--- a/plugins/qpa/integration.h
+++ b/plugins/qpa/integration.h
@@ -69,7 +69,6 @@ public:
private:
void initScreens();
- void initEgl();
KWayland::Client::Shell *shell() const;
QPlatformFontDatabase *m_fontDb;
diff --git a/plugins/qpa/platformcontextwayland.cpp b/plugins/qpa/platformcontextwayland.cpp
deleted file mode 100644
index f43ae9f792..0000000000
--- a/plugins/qpa/platformcontextwayland.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/********************************************************************
- KWin - the KDE window manager
- This file is part of the KDE project.
-
-Copyright (C) 2015 Martin Gräßlin
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see .
-*********************************************************************/
-#include "platformcontextwayland.h"
-#include "integration.h"
-#include "window.h"
-
-namespace KWin
-{
-
-namespace QPA
-{
-
-PlatformContextWayland::PlatformContextWayland(QOpenGLContext *context, Integration *integration)
- : AbstractPlatformContext(context, integration, integration->eglDisplay())
-{
- create();
-}
-
-bool PlatformContextWayland::makeCurrent(QPlatformSurface *surface)
-{
- Window *window = static_cast(surface);
- EGLSurface s = window->eglSurface();
- if (s == EGL_NO_SURFACE) {
- window->createEglSurface(eglDisplay(), config());
- s = window->eglSurface();
- if (s == EGL_NO_SURFACE) {
- return false;
- }
- }
- return eglMakeCurrent(eglDisplay(), s, s, eglContext());
-}
-
-bool PlatformContextWayland::isSharing() const
-{
- return false;
-}
-
-void PlatformContextWayland::swapBuffers(QPlatformSurface *surface)
-{
- Window *window = static_cast(surface);
- EGLSurface s = window->eglSurface();
- if (s == EGL_NO_SURFACE) {
- return;
- }
- eglSwapBuffers(eglDisplay(), s);
-}
-
-void PlatformContextWayland::create()
-{
- if (config() == 0) {
- return;
- }
- if (!bindApi()) {
- return;
- }
- createContext();
-}
-
-}
-}
diff --git a/plugins/qpa/platformcontextwayland.h b/plugins/qpa/platformcontextwayland.h
deleted file mode 100644
index fbf7c210e1..0000000000
--- a/plugins/qpa/platformcontextwayland.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/********************************************************************
- KWin - the KDE window manager
- This file is part of the KDE project.
-
-Copyright (C) 2015 Martin Gräßlin
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see .
-*********************************************************************/
-#ifndef KWIN_QPA_PLATFORMCONTEXTWAYLAND_H
-#define KWIN_QPA_PLATFORMCONTEXTWAYLAND_H
-
-#include "abstractplatformcontext.h"
-
-namespace KWin
-{
-namespace QPA
-{
-class Integration;
-
-class PlatformContextWayland : public AbstractPlatformContext
-{
-public:
- explicit PlatformContextWayland(QOpenGLContext *context, Integration *integration);
-
- void swapBuffers(QPlatformSurface *surface) override;
-
- bool makeCurrent(QPlatformSurface *surface) override;
-
- bool isSharing() const override;
-
-private:
- void create();
-};
-
-}
-}
-
-#endif
diff --git a/plugins/qpa/window.cpp b/plugins/qpa/window.cpp
index 04deadbe8b..8b0717321a 100644
--- a/plugins/qpa/window.cpp
+++ b/plugins/qpa/window.cpp
@@ -17,7 +17,6 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*********************************************************************/
-#define WL_EGL_PLATFORM 1
#include "integration.h"
#include "window.h"
#include "screens.h"
@@ -57,14 +56,6 @@ Window::Window(QWindow *window, KWayland::Client::Surface *surface, KWayland::Cl
Window::~Window()
{
unmap();
- if (m_eglSurface != EGL_NO_SURFACE) {
- eglDestroySurface(m_integration->eglDisplay(), m_eglSurface);
- }
-#if HAVE_WAYLAND_EGL
- if (m_eglWaylandWindow) {
- wl_egl_window_destroy(m_eglWaylandWindow);
- }
-#endif
delete m_shellSurface;
delete m_surface;
}
@@ -106,11 +97,6 @@ void Window::setGeometry(const QRect &rect)
m_resized = true;
}
}
-#if HAVE_WAYLAND_EGL
- if (m_eglWaylandWindow) {
- wl_egl_window_resize(m_eglWaylandWindow, nativeSize.width(), nativeSize.height(), 0, 0);
- }
-#endif
QWindowSystemInterface::handleGeometryChange(window(), geometry());
}
@@ -128,21 +114,6 @@ void Window::unmap()
}
}
-void Window::createEglSurface(EGLDisplay dpy, EGLConfig config)
-{
-#if HAVE_WAYLAND_EGL
- const QSize size = window()->size() * m_scale;
- m_eglWaylandWindow = wl_egl_window_create(*m_surface, size.width(), size.height());
- if (!m_eglWaylandWindow) {
- return;
- }
- m_eglSurface = eglCreateWindowSurface(dpy, config, m_eglWaylandWindow, nullptr);
-#else
- Q_UNUSED(dpy)
- Q_UNUSED(config)
-#endif
-}
-
void Window::bindContentFBO()
{
if (m_resized || !m_contentFBO) {
diff --git a/plugins/qpa/window.h b/plugins/qpa/window.h
index bc334c359c..f430195355 100644
--- a/plugins/qpa/window.h
+++ b/plugins/qpa/window.h
@@ -25,17 +25,9 @@ along with this program. If not, see .
#include
#include
-// wayland
-#include
-#if HAVE_WAYLAND_EGL
-#include
-#endif
class QOpenGLFramebufferObject;
-#if HAVE_WAYLAND_EGL
-struct wl_egl_window;
-#endif
namespace KWayland
{
@@ -69,10 +61,6 @@ public:
KWayland::Client::Surface *surface() const {
return m_surface;
}
- EGLSurface eglSurface() const {
- return m_eglSurface;
- }
- void createEglSurface(EGLDisplay dpy, EGLConfig config);
int scale() const;
qreal devicePixelRatio() const override;
@@ -90,13 +78,9 @@ private:
KWayland::Client::Surface *m_surface;
KWayland::Client::ShellSurface *m_shellSurface;
- EGLSurface m_eglSurface = EGL_NO_SURFACE;
QSharedPointer m_contentFBO;
bool m_resized = false;
ShellClient *m_shellClient = nullptr;
-#if HAVE_WAYLAND_EGL
- wl_egl_window *m_eglWaylandWindow = nullptr;
-#endif
quint32 m_windowId;
const Integration *m_integration;
int m_scale = 1;