kwin/effects
Martin Gräßlin 142aab2e24 Introduce an EffectsHandler::animationsSupported -> bool
Summary:
A new method to tell the effects system whether the compositor scene
is able to drive animations. E.g. on software emulation (llvmpipe) it's
better to not do any animations at all.

This information can be used by effects to adjust their behavior, e.g.
PresentWindows could skip transitions or effects can use it in their
supported check to completely disable themselves.

As a first step all scripted effects are considered to be unsupported
if animations are not supported. They inherit AnimationEffect and are
all about driving animations.

The information whether animations are supported comes from the Scene.
It's implemented in the following way:
 * XRender: animations are always supported
 * QPainter: animations are never supported
 * OpenGL: animations are supported, except for software emulation

In addition - for easier testing - there is a new env variable
KWIN_EFFECTS_FORCE_ANIMATIONS to overwrite the selection.

Reviewers: #kwin, #plasma

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D2386
2016-08-15 17:38:33 +02:00
..
backgroundcontrast [effects] Disable Blur and BackgroundContrast on software emulation 2016-08-09 14:56:13 +02:00
blur [effects] Disable Blur and BackgroundContrast on software emulation 2016-08-09 14:56:13 +02:00
coverswitch Introduce an EffectsHandler::animationsSupported -> bool 2016-08-15 17:38:33 +02:00
cube Introduce an EffectsHandler::animationsSupported -> bool 2016-08-15 17:38:33 +02:00
desktopgrid Adding more frameless hints 2016-08-11 08:45:41 +02:00
dialogparent SVN_SILENT made messages (.desktop file) - always resolve ours 2016-01-30 09:40:55 +00:00
diminactive Use SERVICE_TYPES parameter to kcoreaddons_desktop_to_json() 2015-12-09 23:42:45 +00:00
dimscreen [effects] Drop the .desktop files for the BuiltIn Effects 2014-04-28 13:52:43 +02:00
eyeonscreen SVN_SILENT made messages (.desktop file) - always resolve ours 2016-05-31 11:06:54 +00:00
fade SVN_SILENT made messages (.desktop file) - always resolve ours 2016-02-20 09:52:01 +00:00
fadedesktop SVN_SILENT made messages (.desktop file) - always resolve ours 2016-01-30 09:40:55 +00:00
fallapart Introduce an EffectsHandler::animationsSupported -> bool 2016-08-15 17:38:33 +02:00
flipswitch Introduce an EffectsHandler::animationsSupported -> bool 2016-08-15 17:38:33 +02:00
glide Introduce an EffectsHandler::animationsSupported -> bool 2016-08-15 17:38:33 +02:00
highlightwindow invalidate iterator on removing pointed element 2015-01-24 22:20:21 +01:00
invert Port to CMake AUTOMOC 2016-02-01 21:05:36 +01:00
kscreen do not reinterpret_cast insufficient data 2015-10-05 23:41:16 +02:00
login SVN_SILENT made messages (.desktop file) - always resolve ours 2016-02-20 09:52:01 +00:00
logout [effects] Check for LimitedNPOT 2016-02-02 12:37:14 +01:00
lookingglass [effects] Check for LimitedNPOT 2016-02-02 12:37:14 +01:00
magiclamp Introduce an EffectsHandler::animationsSupported -> bool 2016-08-15 17:38:33 +02:00
magnifier Port to CMake AUTOMOC 2016-02-01 21:05:36 +01:00
maximize SVN_SILENT made messages (.desktop file) - always resolve ours 2016-05-31 11:06:54 +00:00
minimizeanimation [effects] Drop the .desktop files for the BuiltIn Effects 2014-04-28 13:52:43 +02:00
morphingpopups SVN_SILENT made messages (.desktop file) - always resolve ours 2016-07-28 09:56:48 +00:00
mouseclick SVN_SILENT made messages (.desktop file) - always resolve ours 2016-02-20 09:52:01 +00:00
mousemark Port to CMake AUTOMOC 2016-02-01 21:05:36 +01:00
presentwindows Adding more frameless hints 2016-08-11 08:45:41 +02:00
resize [effects] Use shader traits in Resize 2016-01-25 14:11:54 +01:00
scalein SVN_SILENT made messages (.desktop file) - always resolve ours 2016-01-30 09:40:55 +00:00
screenedge [effects] Use shader traits api in screenedge effect 2016-01-25 14:11:54 +01:00
screenshot Revert "Handle conflicts between epoxy and manually resolved function pointers" 2015-11-17 14:58:59 +01:00
sheet Introduce an EffectsHandler::animationsSupported -> bool 2016-08-15 17:38:33 +02:00
showfps SVN_SILENT made messages (.desktop file) - always resolve ours 2016-05-31 11:06:54 +00:00
showpaint [effects] Use shader traits in ShowPaint effect 2016-01-25 14:11:54 +01:00
slide Port to CMake AUTOMOC 2016-02-01 21:05:36 +01:00
slideback explicitly update the stack track on unminimization 2015-11-24 22:38:49 +01:00
slidingpopups [effects/slidingpopups] Don't reference previous pixmap 2016-07-15 12:45:10 +02:00
snaphelper [effects] Use shader traits in SnapHelper effect 2016-01-25 14:11:54 +01:00
startupfeedback [effects] Combine all shaders in resources 2016-02-01 08:42:30 +01:00
thumbnailaside Port to CMake AUTOMOC 2016-02-01 21:05:36 +01:00
trackmouse [effects] Use shader traits API in trackmouse 2016-01-25 14:11:54 +01:00
translucency SVN_SILENT made messages (.desktop file) - always resolve ours 2016-01-30 09:40:55 +00:00
windowaperture SVN_SILENT made messages (.desktop file) - always resolve ours 2016-02-09 10:37:25 +00:00
windowgeometry Use SERVICE_TYPES parameter to kcoreaddons_desktop_to_json() 2015-12-09 23:42:45 +00:00
wobblywindows Introduce an EffectsHandler::animationsSupported -> bool 2016-08-15 17:38:33 +02:00
zoom [effects/zoom] Remove unused variable 2016-06-29 10:51:47 +02:00
CMakeLists.txt Morphingpopups effect, to animate tooltips 2016-02-17 15:03:55 +01:00
Messages.sh Remove temporary file 2008-07-02 07:04:51 +00:00
effect_builtins.cpp Drop the Dashboard Effect 2015-10-19 13:56:46 +02:00
effect_builtins.h Drop the Dashboard Effect 2015-10-19 13:56:46 +02:00
kwineffect.desktop SVN_SILENT made messages (.desktop file) - always resolve ours 2015-12-06 09:17:34 +00:00
logging.cpp pedantic fixes 2016-07-16 13:14:44 -04:00
shaders.qrc [effects] Combine all shaders in resources 2016-02-01 08:42:30 +01:00