Revert "Suppress software cursor removal during rotated shadow buffer drawing."
This reverts commit 999b681cf3.
Replacing this with simpler code that just disables SourceValidate
during rotation redisplay.
			
			
This commit is contained in:
		
							parent
							
								
									0a9239ec25
								
							
						
					
					
						commit
						806a537e64
					
				|  | @ -39,7 +39,6 @@ | |||
| #include "xf86Crtc.h" | ||||
| #include "xf86Modes.h" | ||||
| #include "xf86RandR12.h" | ||||
| #include "misprite.h" | ||||
| #include "X11/extensions/render.h" | ||||
| #define DPMS_SERVER | ||||
| #include "X11/extensions/dpms.h" | ||||
|  | @ -280,11 +279,7 @@ xf86RotateRedisplay(ScreenPtr pScreen) | |||
|     if (REGION_NOTEMPTY(pScreen, region))  | ||||
|     { | ||||
| 	int		    c; | ||||
| 
 | ||||
| #if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(7,2,0,0,dummy) | ||||
| 	/* Disable software cursor removal for this drawing */ | ||||
| 	miSpriteDrawInternal(pScreen, TRUE); | ||||
| #endif | ||||
| 	 | ||||
| 	for (c = 0; c < xf86_config->num_crtc; c++) | ||||
| 	{ | ||||
| 	    xf86CrtcPtr	    crtc = xf86_config->crtc[c]; | ||||
|  | @ -309,9 +304,6 @@ xf86RotateRedisplay(ScreenPtr pScreen) | |||
| 		REGION_UNINIT (pScreen, &crtc_damage); | ||||
| 	    } | ||||
| 	} | ||||
| #if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(7,2,0,0,dummy) | ||||
| 	miSpriteDrawInternal(pScreen, FALSE); | ||||
| #endif | ||||
| 	DamageEmpty(damage); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -288,8 +288,7 @@ miSpriteGetImage (pDrawable, sx, sy, w, h, format, planemask, pdstLine) | |||
| 
 | ||||
|     pScreenPriv = (miSpriteScreenPtr) pScreen->devPrivates[miSpriteScreenIndex].ptr; | ||||
| 
 | ||||
|     if (pScreenPriv->internalDraw == 0 && | ||||
| 	pDrawable->type == DRAWABLE_WINDOW && | ||||
|     if (pDrawable->type == DRAWABLE_WINDOW && | ||||
|         pScreenPriv->isUp && | ||||
| 	ORG_OVERLAP(&pScreenPriv->saved,pDrawable->x,pDrawable->y, sx, sy, w, h)) | ||||
|     { | ||||
|  | @ -319,8 +318,7 @@ miSpriteGetSpans (pDrawable, wMax, ppt, pwidth, nspans, pdstStart) | |||
| 
 | ||||
|     pScreenPriv = (miSpriteScreenPtr) pScreen->devPrivates[miSpriteScreenIndex].ptr; | ||||
| 
 | ||||
|     if (pScreenPriv->internalDraw == 0 && | ||||
| 	pDrawable->type == DRAWABLE_WINDOW && pScreenPriv->isUp) | ||||
|     if (pDrawable->type == DRAWABLE_WINDOW && pScreenPriv->isUp) | ||||
|     { | ||||
| 	DDXPointPtr    	pts; | ||||
| 	int    		*widths; | ||||
|  | @ -362,8 +360,7 @@ miSpriteSourceValidate (pDrawable, x, y, width, height) | |||
| 
 | ||||
|     pScreenPriv = (miSpriteScreenPtr) pScreen->devPrivates[miSpriteScreenIndex].ptr; | ||||
| 
 | ||||
|     if (pScreenPriv->internalDraw == 0 && | ||||
| 	pDrawable->type == DRAWABLE_WINDOW && pScreenPriv->isUp && | ||||
|     if (pDrawable->type == DRAWABLE_WINDOW && pScreenPriv->isUp && | ||||
| 	ORG_OVERLAP(&pScreenPriv->saved, pDrawable->x, pDrawable->y, | ||||
| 		    x, y, width, height)) | ||||
|     { | ||||
|  | @ -389,8 +386,7 @@ miSpriteCopyWindow (WindowPtr pWindow, DDXPointRec ptOldOrg, RegionPtr prgnSrc) | |||
|     /*
 | ||||
|      * Damage will take care of destination check | ||||
|      */ | ||||
|     if (pScreenPriv->internalDraw == 0 && | ||||
| 	pScreenPriv->isUp && | ||||
|     if (pScreenPriv->isUp && | ||||
| 	RECT_IN_REGION (pScreen, prgnSrc, &pScreenPriv->saved) != rgnOUT) | ||||
|     { | ||||
| 	SPRITE_DEBUG (("CopyWindow remove\n")); | ||||
|  | @ -831,28 +827,3 @@ miSpriteComputeSaved (pScreen) | |||
|     pScreenPriv->saved.x2 = pScreenPriv->saved.x1 + w + wpad * 2; | ||||
|     pScreenPriv->saved.y2 = pScreenPriv->saved.y1 + h + hpad * 2; | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * Enables internal drawing support, which disables removal of the | ||||
|  * cursor when the screen pixmap is sourced from. | ||||
|  * | ||||
|  * This can be used to allow software cursors to be read by RandR rotation | ||||
|  * shadow code. | ||||
|  */ | ||||
| void | ||||
| miSpriteDrawInternal(ScreenPtr pScreen, Bool enable) | ||||
| { | ||||
|     miSpriteScreenPtr   pScreenPriv; | ||||
| 
 | ||||
|     /* Check that miSprite has been set up this generation */ | ||||
|     if (miSpriteGeneration != serverGeneration) | ||||
| 	return; | ||||
| 
 | ||||
|     pScreenPriv = (miSpriteScreenPtr) | ||||
| 	pScreen->devPrivates[miSpriteScreenIndex].ptr; | ||||
| 
 | ||||
|     if (enable) | ||||
| 	pScreenPriv->internalDraw++; | ||||
|     else | ||||
| 	pScreenPriv->internalDraw--; | ||||
| } | ||||
|  |  | |||
|  | @ -92,5 +92,3 @@ extern Bool miSpriteInitialize( | |||
|     miSpriteCursorFuncPtr /*cursorFuncs*/, | ||||
|     miPointerScreenFuncPtr /*screenFuncs*/ | ||||
| ); | ||||
| 
 | ||||
| void miSpriteDrawInternal(ScreenPtr pScreen, Bool enable); | ||||
|  |  | |||
|  | @ -76,7 +76,6 @@ typedef struct { | |||
|     WindowPtr	    pCacheWin;		/* window the cursor last seen in */ | ||||
|     Bool	    isInCacheWin; | ||||
|     Bool	    checkPixels;	/* check colormap collision */ | ||||
|     int		    internalDraw; | ||||
|     xColorItem	    colors[2]; | ||||
|     ColormapPtr	    pInstalledMap; | ||||
|     ColormapPtr	    pColormap; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue