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