kwin/libkwineffects/CMakeLists.txt

121 lines
3.5 KiB
Text
Raw Normal View History

########### next target ###############
include(ECMSetupVersion)
ecm_setup_version(${PROJECT_VERSION}
VARIABLE_PREFIX KWINEFFECTS
VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kwineffects_version.h"
PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KWinEffectsConfigVersion.cmake"
Add support for global touchpad swipe gestures Summary: This change adds global touchpad swipe gestures to the GlobalShortcutsManager and hooks up the swipe gestures as defined at the Plasma Affenfels sprint: * swipe up: Desktop Grid * swipe down: Present Windows * swipe left: previous virtual desktop * swipe right: next virtual desktop The main work is handled by two new classes: SwipeGesture and GestureRecognizer. This is implemented in a way that it can be extended to also recognize touch screen gestures and pinch gestures. The SwipeGesture defines what is required for the gesture to trigger. Currently this includes the minimum and maximum number of fingers participating in the gesture and the direction. The gesture gets registered in the GestureRecognizer. The events for the gesture are fed into the GestureRecognizer. It evaluates which gestures could trigger and tracks them for every update of the gesture. In the process of the gesture tracking the GestureRecognizer emits signals on the Gesture: * started: when the Gesture gets considered for a sequence * cancelled: the Gesture no longer matches the sequence * triggered: the sequence ended and the Gesture still matches The remaining changes are related to hook up the existing shortcut framework with the new touchpad gestures. The GlobalShortcutManager gained support for it, InputRedirection and EffectsHandler offer methods to register a QAction. VirtualDesktopManager, PresentWindows and DesktopGrid are adjusted to support the gesture. Reviewers: #kwin, #plasma_on_wayland Subscribers: plasma-devel Tags: #plasma_on_wayland Differential Revision: https://phabricator.kde.org/D5097
2017-03-18 10:00:30 +00:00
SOVERSION 11
)
### xrenderutils lib ###
set(kwin_XRENDERUTILS_SRCS
kwinxrenderutils.cpp
logging.cpp
)
add_library(kwinxrenderutils SHARED ${kwin_XRENDERUTILS_SRCS})
generate_export_header(kwinxrenderutils EXPORT_FILE_NAME kwinxrenderutils_export.h)
target_link_libraries(kwinxrenderutils
PUBLIC
Qt5::Core
Qt5::Gui
XCB::XCB
XCB::XFIXES
XCB::RENDER
KF5::WaylandServer
)
set_target_properties(kwinxrenderutils PROPERTIES
VERSION ${KWINEFFECTS_VERSION_STRING}
SOVERSION ${KWINEFFECTS_SOVERSION}
)
set_target_properties(kwinxrenderutils PROPERTIES OUTPUT_NAME ${KWIN_NAME}xrenderutils)
install(TARGETS kwinxrenderutils EXPORT kdeworkspaceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS})
### effects lib ###
set(kwin_EFFECTSLIB_SRCS
kwineffects.cpp
anidata.cpp
kwinanimationeffect.cpp
logging.cpp
)
set(kwineffects_QT_LIBS
Qt5::DBus
Qt5::Widgets
)
set(kwineffects_KDE_LIBS
2013-12-11 20:41:47 +00:00
KF5::ConfigCore
KF5::CoreAddons
KF5::WindowSystem
)
set(kwineffects_XCB_LIBS
XCB::XCB
)
add_library(kwineffects SHARED ${kwin_EFFECTSLIB_SRCS})
generate_export_header(kwineffects EXPORT_FILE_NAME kwineffects_export.h)
target_link_libraries(kwineffects
PUBLIC
${kwineffects_QT_LIBS}
${kwineffects_KDE_LIBS}
${kwineffects_XCB_LIBS}
)
if( KWIN_HAVE_XRENDER_COMPOSITING )
target_link_libraries(kwineffects PRIVATE kwinxrenderutils XCB::XFIXES)
endif()
set_target_properties(kwineffects PROPERTIES
VERSION ${KWINEFFECTS_VERSION_STRING}
SOVERSION ${KWINEFFECTS_SOVERSION}
)
set_target_properties(kwineffects PROPERTIES OUTPUT_NAME ${KWIN_NAME}effects)
install(TARGETS kwineffects EXPORT kdeworkspaceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS})
# kwingl(es)utils library
set(kwin_GLUTILSLIB_SRCS
kwinglutils.cpp
kwingltexture.cpp
kwinglutils_funcs.cpp
kwinglplatform.cpp
logging.cpp
)
macro( KWIN4_ADD_GLUTILS_BACKEND name glinclude )
include_directories(${glinclude})
add_library(${name} SHARED ${kwin_GLUTILSLIB_SRCS})
generate_export_header(${name} BASE_NAME kwinglutils EXPORT_FILE_NAME kwinglutils_export.h)
Drop OpenGL based color correction from KWin Summary: The feature has always been considered experimental. Unfortunately it is completely unmaintained and hasn't seen any commits in years. It requires kolor-manager to function, but that has not seen a release based on frameworks yet. This makes it difficult to maintain. In fact I have never been able from the introduction till now to setup a color corrected system. One needs kolor-manager and oyranos and especially the latter is hardly available on any linux distribution (e.g. not on the Debian/Ubuntu systems). Due to being unmaintained color correction in KWin did not keep up with recent changes. Neither did it see any updates during the xlib->xcb port, nor during the Wayland port. Especially the Wayland port with the rendering changes make it unlikely to function correctly. E.g. Wayland introduced a proper per-screen rendering, while color correction did a "fake" per screen rendering. How that is going to work in combination is something nobody ever tried. Now after the introduction of proper per-screen rendering the solution would be to port color correction to the new api, but that never happened. Color correction also modified the shaders, but a newer shader API got introduced some time ago. Whether the color correction shader support that or not, is unknown to me. Also which shader language versions are supported. I know it was based on 3d texture support, which back on introduction was partially lacking in OpenGL ES. Nowadays that changed, but color correction didn't update. Last but not least it is completely X11 based and there is no work on how to make it work with Wayland. Given all the problems, especially the fact that it is unmaintained and cannot be setup on my system, means to me that the only solution is to remove it. I'm open to having it reintroduced in future, but only if the availability on Linux distributions gets addressed before. As long as major linux distributions do not ship this feature, it should not be in KWin. Given that I must say that it was a mistake to add it in the first place and I need to point out that I was against the merge back then. Reviewers: #kwin, #plasma Subscribers: plasma-devel, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D3402
2016-11-17 14:03:54 +00:00
target_link_libraries(${name} PUBLIC XCB::XCB KF5::CoreAddons KF5::WindowSystem)
set_target_properties(${name} PROPERTIES
VERSION ${KWINEFFECTS_VERSION_STRING}
SOVERSION ${KWINEFFECTS_SOVERSION}
)
target_link_libraries(${name} PUBLIC ${ARGN})
install(TARGETS ${name} EXPORT kdeworkspaceLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS})
2013-02-25 10:44:26 +00:00
endmacro()
kwin4_add_glutils_backend(kwinglutils ${epoxy_INCLUDE_DIR} ${epoxy_LIBRARY})
set_target_properties(kwinglutils PROPERTIES OUTPUT_NAME ${KWIN_NAME}glutils)
target_link_libraries(kwinglutils PUBLIC ${epoxy_LIBRARY})
install( FILES
kwinglobals.h
kwineffects.h
kwinanimationeffect.h
kwinglplatform.h
kwinglutils.h
kwinglutils_funcs.h
kwingltexture.h
kwinxrenderutils.h
${CMAKE_CURRENT_BINARY_DIR}/kwinconfig.h
${CMAKE_CURRENT_BINARY_DIR}/kwineffects_export.h
${CMAKE_CURRENT_BINARY_DIR}/kwinglutils_export.h
${CMAKE_CURRENT_BINARY_DIR}/kwinxrenderutils_export.h
DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel)