not quite so much needs to be delayed to the init() function
[personal-kdebase.git] / workspace / kwin / effects / explosioneffect.h
blob6c21d512688e0c09cc9bf93505063ef8eb809441
1 /********************************************************************
2 KWin - the KDE window manager
3 This file is part of the KDE project.
5 Copyright (C) 2007 Rivo Laks <rivolaks@hot.ee>
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *********************************************************************/
21 #ifndef KWIN_EXPLOSIONEFFECT_H
22 #define KWIN_EXPLOSIONEFFECT_H
24 // Include with base class for effects.
25 #include <kwineffects.h>
27 #include <QMap>
29 namespace KWin
32 class GLShader;
33 class GLTexture;
35 /**
36 * Makes windows explode into small pieces when they're closed
37 **/
38 class ExplosionEffect
39 : public Effect
41 public:
42 ExplosionEffect();
43 ~ExplosionEffect();
45 virtual void prePaintScreen( ScreenPrePaintData& data, int time );
46 virtual void prePaintWindow( EffectWindow* w, WindowPrePaintData& data, int time );
47 virtual void paintWindow( EffectWindow* w, int mask, QRegion region, WindowPaintData& data );
48 virtual void postPaintScreen();
50 virtual void windowClosed( EffectWindow* c );
51 virtual void windowDeleted( EffectWindow* c );
53 static bool supported();
56 protected:
57 bool loadData();
59 private:
60 GLShader* mShader;
61 GLTexture* mStartOffsetTex;
62 GLTexture* mEndOffsetTex;
63 QMap< const EffectWindow*, double > mWindows;
64 int mActiveAnimations;
65 bool mValid;
66 bool mInited;
69 } // namespace
71 #endif