Try to use XComposite overlay also with XRender.
svn path=/branches/work/kwin_composite/; revision=610137
This commit is contained in:
parent
a03b796335
commit
a643ff2b00
2 changed files with 17 additions and 5 deletions
|
@ -261,8 +261,11 @@ void Workspace::setupOverlay( Window w )
|
|||
{
|
||||
assert( overlay != None );
|
||||
XShapeCombineRectangles( display(), overlay, ShapeInput, 0, 0, NULL, 0, ShapeSet, Unsorted );
|
||||
XShapeCombineRectangles( display(), w, ShapeInput, 0, 0, NULL, 0, ShapeSet, Unsorted );
|
||||
XMapWindow( display(), w );
|
||||
if( w != None )
|
||||
{
|
||||
XShapeCombineRectangles( display(), w, ShapeInput, 0, 0, NULL, 0, ShapeSet, Unsorted );
|
||||
XMapWindow( display(), w );
|
||||
}
|
||||
XMapRaised( display(), overlay );
|
||||
}
|
||||
|
||||
|
|
|
@ -77,9 +77,17 @@ SceneXrender::SceneXrender( Workspace* ws )
|
|||
{
|
||||
// create XRender picture for the root window
|
||||
format = XRenderFindVisualFormat( display(), DefaultVisual( display(), DefaultScreen( display())));
|
||||
XRenderPictureAttributes pa;
|
||||
pa.subwindow_mode = IncludeInferiors;
|
||||
front = XRenderCreatePicture( display(), rootWindow(), format, CPSubwindowMode, &pa );
|
||||
if( wspace->createOverlay())
|
||||
{
|
||||
wspace->setupOverlay( None );
|
||||
front = XRenderCreatePicture( display(), wspace->overlayWindow(), format, 0, NULL );
|
||||
}
|
||||
else
|
||||
{
|
||||
XRenderPictureAttributes pa;
|
||||
pa.subwindow_mode = IncludeInferiors;
|
||||
front = XRenderCreatePicture( display(), rootWindow(), format, CPSubwindowMode, &pa );
|
||||
}
|
||||
createBuffer();
|
||||
}
|
||||
|
||||
|
@ -87,6 +95,7 @@ SceneXrender::~SceneXrender()
|
|||
{
|
||||
XRenderFreePicture( display(), front );
|
||||
XRenderFreePicture( display(), buffer );
|
||||
wspace->destroyOverlay();
|
||||
for( QMap< Toplevel*, Window >::Iterator it = windows.begin();
|
||||
it != windows.end();
|
||||
++it )
|
||||
|
|
Loading…
Reference in a new issue