1 /********************************************************************
2 KWin - the KDE window manager
3 This file is part of the KDE project.
5 Copyright (C) 2007 Bernhard Loos <nhuh.put@web.de>
6 Copyright (C) 2007 Christian Nitschkowski <christian.nitschkowski@kdemail.net>
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>.
20 *********************************************************************/
22 #include <kwinconfig.h>
24 #include "boxswitch_config.h"
25 #include "desktopgrid_config.h"
26 #include "diminactive_config.h"
27 #include "magiclamp_config.h"
28 #include "maketransparent_config.h"
29 #include "presentwindows_config.h"
30 #include "shadow_config.h"
31 #include "showfps_config.h"
32 #include "thumbnailaside_config.h"
33 #include "zoom_config.h"
36 #ifdef KWIN_HAVE_OPENGL_COMPOSITING
37 #include "coverswitch_config.h"
38 #include "cube_config.h"
39 #include "cylinder_config.h"
40 #include "flipswitch_config.h"
41 #include "invert_config.h"
42 #include "lookingglass_config.h"
43 #include "mousemark_config.h"
44 #include "magnifier_config.h"
45 #include "sharpen_config.h"
46 #include "snow_config.h"
47 #include "sphere_config.h"
48 #include "trackmouse_config.h"
49 #include "wobblywindows_config.h"
51 #ifdef KWIN_HAVE_XRENDER_COMPOSITING
52 // xrender-only here if any
55 #include "videorecord_config.h"
58 #include <kwineffects.h>
60 #include <KPluginLoader>
62 KWIN_EFFECT_CONFIG_FACTORY
65 #define COMMON_PLUGINS \
66 registerPlugin<KWin::BoxSwitchEffectConfig>("boxswitch"); \
67 registerPlugin<KWin::DesktopGridEffectConfig>("desktopgrid"); \
68 registerPlugin<KWin::DimInactiveEffectConfig>("diminactive"); \
69 registerPlugin<KWin::MagicLampEffectConfig>("magiclamp"); \
70 registerPlugin<KWin::MakeTransparentEffectConfig>("maketransparent"); \
71 registerPlugin<KWin::PresentWindowsEffectConfig>("presentwindows"); \
72 registerPlugin<KWin::ShadowEffectConfig>("shadow"); \
73 registerPlugin<KWin::ShowFpsEffectConfig> ("showfps"); \
74 registerPlugin<KWin::ThumbnailAsideEffectConfig>("thumbnailaside"); \
75 registerPlugin<KWin::ZoomEffectConfig>("zoom");
77 #define OPENGL_PLUGINS \
78 registerPlugin<KWin::CoverSwitchEffectConfig>("coverswitch"); \
79 registerPlugin<KWin::CubeEffectConfig>("cube"); \
80 registerPlugin<KWin::CylinderEffectConfig>("cylinder"); \
81 registerPlugin<KWin::FlipSwitchEffectConfig>("flipswitch"); \
82 registerPlugin<KWin::InvertEffectConfig>("invert"); \
83 registerPlugin<KWin::LookingGlassEffectConfig>("lookingglass"); \
84 registerPlugin<KWin::MouseMarkEffectConfig>("mousemark"); \
85 registerPlugin<KWin::MagnifierEffectConfig>("magnifier"); \
86 registerPlugin<KWin::SharpenEffectConfig>("sharpen"); \
87 registerPlugin<KWin::SnowEffectConfig>("snow"); \
88 registerPlugin<KWin::SphereEffectConfig>("sphere"); \
89 registerPlugin<KWin::TrackMouseEffectConfig>("trackmouse"); \
90 registerPlugin<KWin::WobblyWindowsEffectConfig> ("wobblywindows");
92 #define XRENDER_PLUGINS
93 #define CAPTURY_PLUGINS \
94 registerPlugin<KWin::VideoRecordEffectConfig> ("videorecord");
96 K_PLUGIN_FACTORY_DEFINITION(EffectFactory
,
98 #ifdef KWIN_HAVE_OPENGL_COMPOSITING
101 #ifdef KWIN_HAVE_XRENDER_COMPOSITING
108 K_EXPORT_PLUGIN(EffectFactory("kwin"))
110 #undef COMMON_PLUGINS
111 #undef OPENGL_PLUGINS
112 #undef XRENDER_PLUGINS
113 #undef CAPTURY_PLUGINS