Clear shadow pixmaps before using them.
This eliminates some ugly flashing, as well as clearing the borders when the shadow will not be completely painted.
This commit is contained in:
		
							parent
							
								
									97ab0c6eff
								
							
						
					
					
						commit
						e86c34663e
					
				| 
						 | 
				
			
			@ -153,6 +153,35 @@ xf86CrtcDamageShadow (xf86CrtcPtr crtc)
 | 
			
		|||
    REGION_UNINIT (pScreen, &damage_region);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
xf86CrtcShadowClear (xf86CrtcPtr crtc)
 | 
			
		||||
{
 | 
			
		||||
    PixmapPtr		dst_pixmap = crtc->rotatedPixmap;
 | 
			
		||||
    ScrnInfoPtr		scrn = crtc->scrn;
 | 
			
		||||
    ScreenPtr		screen = scrn->pScreen;
 | 
			
		||||
    PicturePtr		dst;
 | 
			
		||||
    PictFormatPtr	format = compWindowFormat (WindowTable[screen->myNum]);
 | 
			
		||||
    static xRenderColor black = { 0, 0, 0, 0 };
 | 
			
		||||
    xRectangle		rect;
 | 
			
		||||
    int			error;
 | 
			
		||||
 | 
			
		||||
    dst = CreatePicture (None,
 | 
			
		||||
			 &dst_pixmap->drawable,
 | 
			
		||||
			 format,
 | 
			
		||||
			 0L,
 | 
			
		||||
			 NULL,
 | 
			
		||||
			 serverClient,
 | 
			
		||||
			 &error);
 | 
			
		||||
    if (!dst)
 | 
			
		||||
	return;
 | 
			
		||||
    rect.x = 0;
 | 
			
		||||
    rect.y = 0;
 | 
			
		||||
    rect.width = dst_pixmap->drawable.width;
 | 
			
		||||
    rect.height = dst_pixmap->drawable.height;
 | 
			
		||||
    CompositeRects (PictOpSrc, dst, &black, 1, &rect);
 | 
			
		||||
    FreePicture (dst, None);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
xf86RotatePrepare (ScreenPtr pScreen)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -170,6 +199,7 @@ xf86RotatePrepare (ScreenPtr pScreen)
 | 
			
		|||
							     crtc->rotatedData,
 | 
			
		||||
							     crtc->mode.HDisplay,
 | 
			
		||||
							     crtc->mode.VDisplay);
 | 
			
		||||
	    xf86CrtcShadowClear (crtc);
 | 
			
		||||
	    if (!xf86_config->rotation_damage_registered)
 | 
			
		||||
	    {
 | 
			
		||||
		/* Hook damage to screen pixmap */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue