We cannot use glLists for painting the cube. It's causing black windows.

BUG: 183905

svn path=/trunk/KDE/kdebase/workspace/; revision=927767
icc-effect-5.14.5
Martin Gräßlin 2009-02-18 11:58:36 +00:00
parent cb28513163
commit 5e94274eb6
3 changed files with 14 additions and 22 deletions

View File

@ -309,13 +309,6 @@ void CubeEffect::paintScreen( int mask, QRegion region, ScreenPaintData& data )
glPopMatrix();
}
// compile List for cube
glNewList( glList + 1, GL_COMPILE );
glPushMatrix();
paintCube( mask, region, data );
glPopMatrix();
glEndList();
QRect rect = effects->clientArea( FullScreenArea, activeScreen, effects->currentDesktop());
if( effects->numScreens() > 1 && bigCube )
rect = effects->clientArea( FullArea, activeScreen, effects->currentDesktop() );
@ -444,7 +437,9 @@ void CubeEffect::paintScreen( int mask, QRegion region, ScreenPaintData& data )
}
glPushMatrix();
glCallList( glList );
glCallList( glList + 1 );
glPushMatrix();
paintCube( mask, region, data );
glPopMatrix();
glPopMatrix();
glCullFace( GL_BACK );
if( mode == Cylinder )
@ -455,7 +450,9 @@ void CubeEffect::paintScreen( int mask, QRegion region, ScreenPaintData& data )
}
glPushMatrix();
glCallList( glList );
glCallList( glList + 1 );
glPushMatrix();
paintCube( mask, region, data );
glPopMatrix();
glPopMatrix();
// cap
@ -549,7 +546,9 @@ void CubeEffect::paintScreen( int mask, QRegion region, ScreenPaintData& data )
}
glPushMatrix();
glCallList( glList );
glCallList( glList + 1 );
glPushMatrix();
paintCube( mask, region, data );
glPopMatrix();
glPopMatrix();
glCullFace( GL_FRONT );
if( mode == Cylinder )
@ -566,7 +565,9 @@ void CubeEffect::paintScreen( int mask, QRegion region, ScreenPaintData& data )
}
glPushMatrix();
glCallList( glList );
glCallList( glList + 1 );
glPushMatrix();
paintCube( mask, region, data );
glPopMatrix();
glPopMatrix();
// cap

View File

@ -75,21 +75,15 @@ void CubeSlideEffect::paintScreen( int mask, QRegion region, ScreenPaintData& da
{
if( !slideRotations.empty() )
{
glPushMatrix();
glNewList( glList, GL_COMPILE );
paintSlideCube( mask, region, data );
glEndList();
glPopMatrix();
glPushAttrib( GL_CURRENT_BIT | GL_ENABLE_BIT );
glEnable( GL_CULL_FACE );
glCullFace( GL_BACK );
glPushMatrix();
glCallList( glList );
paintSlideCube( mask, region, data );
glPopMatrix();
glCullFace( GL_FRONT );
glPushMatrix();
glCallList( glList );
paintSlideCube( mask, region, data );
glPopMatrix();
glDisable( GL_CULL_FACE );
glPopAttrib();
@ -243,7 +237,6 @@ void CubeSlideEffect::postPaintScreen()
if( slideRotations.empty() )
{
effects->setActiveFullScreenEffect( 0 );
glDeleteLists( glList, 1 );
}
}
effects->addRepaintFull();
@ -323,7 +316,6 @@ void CubeSlideEffect::desktopChanged( int old )
if( activate )
{
effects->setActiveFullScreenEffect( this );
glList = glGenLists( 1 );
timeLine.setProgress( 0.0 );
front_desktop = old;
effects->addRepaintFull();

View File

@ -61,7 +61,6 @@ class CubeSlideEffect
QSet<EffectWindow*> stickyWindows;
bool dontSlidePanels;
bool dontSlideStickyWindows;
GLuint glList;
};
}