/******************************************************************** KWin - the KDE window manager This file is part of the KDE project. Copyright (C) 2007 Martin Gräßlin . *********************************************************************/ #ifndef KWIN_SNOW_H #define KWIN_SNOW_H #include #include #include #include #include namespace KWin { class SnowEffect : public QObject, public Effect { Q_OBJECT public: SnowEffect(); virtual ~SnowEffect(); virtual void reconfigure( ReconfigureFlags ); virtual void prePaintScreen( ScreenPrePaintData& data, int time ); virtual void paintScreen( int mask, QRegion region, ScreenPaintData& data ); virtual void postPaintScreen(); private slots: void toggle(); private: void loadTexture(); GLTexture* texture; QList* flakes; QTime lastFlakeTime; long nextFlakeMillis; int mNumberFlakes; int mMinFlakeSize; int mMaxFlakeSize; bool active; }; } // namespace #endif