From 551a6246a89796f726cf02b7d4b09b297800cb90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Fl=C3=B6ser?= Date: Sun, 10 Sep 2017 16:03:11 +0200 Subject: [PATCH] Move XRenderUtils init/cleanup into X11 standalone platform Summary: Only needed for kwin_x11 variant (required for the non-composited Outline). As that's nowadays in the x11 platform, we can move the complete XRenderUtils support into the platform. Thus KWin core does no longer require to link it. Test Plan: Compiles Reviewers: #kwin, #plasma Subscribers: plasma-devel, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D7760 --- CMakeLists.txt | 1 - plugins/platforms/x11/standalone/CMakeLists.txt | 2 +- plugins/platforms/x11/standalone/x11_platform.cpp | 4 ++++ plugins/platforms/x11/windowed/CMakeLists.txt | 2 +- plugins/scenes/xrender/CMakeLists.txt | 1 + workspace.cpp | 8 -------- 6 files changed, 7 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e03d5738ec..ed0ef631a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -526,7 +526,6 @@ ki18n_wrap_ui(kwin_KDEINIT_SRCS set(kwin_OWN_LIBS kwineffects - kwinxrenderutils kwin4_effect_builtins ) diff --git a/plugins/platforms/x11/standalone/CMakeLists.txt b/plugins/platforms/x11/standalone/CMakeLists.txt index 20bab3f5aa..de2fa07f43 100644 --- a/plugins/platforms/x11/standalone/CMakeLists.txt +++ b/plugins/platforms/x11/standalone/CMakeLists.txt @@ -20,7 +20,7 @@ if(HAVE_EPOXY_GLX) endif() add_library(KWinX11Platform MODULE ${X11PLATFORM_SOURCES}) -target_link_libraries(KWinX11Platform eglx11common kwin Qt5::X11Extras XCB::CURSOR) +target_link_libraries(KWinX11Platform eglx11common kwin kwinxrenderutils Qt5::X11Extras XCB::CURSOR) if(X11_Xinput_FOUND) target_link_libraries(KWinX11Platform ${X11_Xinput_LIB}) endif() diff --git a/plugins/platforms/x11/standalone/x11_platform.cpp b/plugins/platforms/x11/standalone/x11_platform.cpp index a2924d6862..2788908e1a 100644 --- a/plugins/platforms/x11/standalone/x11_platform.cpp +++ b/plugins/platforms/x11/standalone/x11_platform.cpp @@ -41,6 +41,8 @@ along with this program. If not, see . #include "workspace.h" #include "x11_decoration_renderer.h" +#include + #include #include @@ -76,6 +78,7 @@ X11StandalonePlatform::~X11StandalonePlatform() m_openGLFreezeProtectionThread->wait(); delete m_openGLFreezeProtectionThread; } + XRenderUtils::cleanup(); } void X11StandalonePlatform::init() @@ -84,6 +87,7 @@ void X11StandalonePlatform::init() emit initFailed(); return; } + XRenderUtils::init(kwinApp()->x11Connection(), kwinApp()->x11RootWindow()); setReady(true); emit screensQueried(); } diff --git a/plugins/platforms/x11/windowed/CMakeLists.txt b/plugins/platforms/x11/windowed/CMakeLists.txt index 2647bcc1f7..1c445c5b5f 100644 --- a/plugins/platforms/x11/windowed/CMakeLists.txt +++ b/plugins/platforms/x11/windowed/CMakeLists.txt @@ -6,7 +6,7 @@ set(X11BACKEND_SOURCES ) add_library(KWinWaylandX11Backend MODULE ${X11BACKEND_SOURCES}) -target_link_libraries(KWinWaylandX11Backend eglx11common kwin X11::XCB SceneQPainterBackend) +target_link_libraries(KWinWaylandX11Backend eglx11common kwin kwinxrenderutils X11::XCB SceneQPainterBackend) install( TARGETS diff --git a/plugins/scenes/xrender/CMakeLists.txt b/plugins/scenes/xrender/CMakeLists.txt index 8e8c67ed37..61ecea5ea5 100644 --- a/plugins/scenes/xrender/CMakeLists.txt +++ b/plugins/scenes/xrender/CMakeLists.txt @@ -15,6 +15,7 @@ ecm_qt_declare_logging_category( add_library(KWinSceneXRender MODULE ${SCENE_XRENDER_SRCS}) target_link_libraries(KWinSceneXRender kwin + kwinxrenderutils ) install( diff --git a/workspace.cpp b/workspace.cpp index d62c2a71c9..3a0d6dd120 100644 --- a/workspace.cpp +++ b/workspace.cpp @@ -22,7 +22,6 @@ along with this program. If not, see . #include "workspace.h" // kwin libs #include -#include // kwin #ifdef KWIN_BUILD_ACTIVITIES #include "activities.h" @@ -183,10 +182,6 @@ Workspace::Workspace(const QString &sessionKey) TabBox::TabBox::create(this); #endif - // init XRenderUtils - if (kwinApp()->operationMode() == Application::OperationModeX11) { - XRenderUtils::init(connection(), rootWindow()); - } if (Compositor::self()) { m_compositor = Compositor::self(); } else { @@ -514,9 +509,6 @@ Workspace::~Workspace() // TODO: ungrabXServer(); - if (kwinApp()->operationMode() == Application::OperationModeX11) { - XRenderUtils::cleanup(); - } Xcb::Extensions::destroy(); _self = 0; }