kwin/effects/cube/cylinder.h
Martin Gräßlin a16aba4b05 Merge in the first changes from cube git branch (http://github.com/mgraesslin/kwin/tree/cube):
* Code restructuring and clean-up
 * Use of glLists to store the rotation and painting of the cube. That way things are only calculated when something changed. Painting the cube is still required in each frame as it would break all other effects.
 * Use face culling to paint the cube in the correct sequence.
 * Move loading of all settings to cube effect. In preparation of getting rid of cylinder and sphere classes

Known regression: cylinder and sphere caps are partly broken.

BUG: 171235

svn path=/trunk/KDE/kdebase/workspace/; revision=922023
2009-02-06 09:16:30 +00:00

53 lines
1.7 KiB
C++

/********************************************************************
KWin - the KDE window manager
This file is part of the KDE project.
Copyright (C) 2008 Martin Gräßlin <ubuntu@martin-graesslin.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*********************************************************************/
#ifndef KWIN_CYLINDER_H
#define KWIN_CYLINDER_H
#include <kwineffects.h>
#include <kwinglutils.h>
namespace KWin
{
class CylinderEffect
: public CubeEffect
{
public:
CylinderEffect();
~CylinderEffect();
virtual void reconfigure( ReconfigureFlags );
virtual void prePaintWindow( EffectWindow* w, WindowPrePaintData& data, int time );
virtual void paintWindow( EffectWindow* w, int mask, QRegion region, WindowPaintData& data );
static bool supported();
protected:
virtual void paintCube( int mask, QRegion region, ScreenPaintData& data );
virtual void paintCap( float z, float zTexture );
private:
bool loadData();
bool mInited;
bool mValid;
GLShader* mShader;
};
} // namespace
#endif