1 /********************************************************************
2 KWin - the KDE window manager
3 This file is part of the KDE project.
5 Copyright (C) 2007 Martin Gräßlin <ubuntu@martin-graesslin.com>
6 Copyright (C) 2008 Torgny Johansson <torgny.johansson@gmail.com>
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 *********************************************************************/
26 #include <kwineffects.h>
27 #include <kwinglutils.h>
38 SnowFlake(int x
, int y
, int width
, int height
, int maxVSpeed
, int maxHSpeed
);
42 float getRotationAngle();
43 float getRotationSpeed();
44 void updateSpeedAndRotation();
52 void setHeight(int height
);
53 void setWidth(int width
);
68 : public QObject
, public Effect
73 virtual ~SnowEffect();
74 virtual void reconfigure( ReconfigureFlags
);
75 virtual void prePaintScreen( ScreenPrePaintData
& data
, int time
);
76 virtual void paintScreen( int mask
, QRegion region
, ScreenPaintData
& data
);
77 virtual void postPaintScreen();
78 virtual void paintWindow( EffectWindow
* w
, int mask
, QRegion region
, WindowPaintData
& data
);
80 static bool supported();
85 void snowing( QRegion
& region
);
88 QList
<SnowFlake
> flakes
;
97 bool snowBehindWindows
;
101 QRegion repaintRegion
;