diff options
author | Keith Packard <keithp@neko.keithp.com> | 2007-04-19 17:49:34 -0700 |
---|---|---|
committer | Keith Packard <keithp@neko.keithp.com> | 2007-04-19 17:49:34 -0700 |
commit | 806a537e644d8cc9e53f3ac52efb49453e5aa1fb (patch) | |
tree | 5e5bb57a6226931d77d551a9558bdb27a737a960 | |
parent | 0a9239ec258828ec1da6c208634a55fc4053d7da (diff) |
Revert "Suppress software cursor removal during rotated shadow buffer drawing."
This reverts commit 999b681cf3973af4191506e49cde06963b11a774.
Replacing this with simpler code that just disables SourceValidate
during rotation redisplay.
-rw-r--r-- | hw/xfree86/modes/xf86Rotate.c | 10 | ||||
-rw-r--r-- | mi/misprite.c | 37 | ||||
-rw-r--r-- | mi/misprite.h | 2 | ||||
-rw-r--r-- | mi/mispritest.h | 1 |
4 files changed, 5 insertions, 45 deletions
diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c index 5127c153b..e8fafd073 100644 --- a/hw/xfree86/modes/xf86Rotate.c +++ b/hw/xfree86/modes/xf86Rotate.c @@ -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); } } diff --git a/mi/misprite.c b/mi/misprite.c index 71e6ab011..c0560a4bb 100644 --- a/mi/misprite.c +++ b/mi/misprite.c @@ -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--; -} diff --git a/mi/misprite.h b/mi/misprite.h index 0a1bcc1b8..5173b7736 100644 --- a/mi/misprite.h +++ b/mi/misprite.h @@ -92,5 +92,3 @@ extern Bool miSpriteInitialize( miSpriteCursorFuncPtr /*cursorFuncs*/, miPointerScreenFuncPtr /*screenFuncs*/ ); - -void miSpriteDrawInternal(ScreenPtr pScreen, Bool enable); diff --git a/mi/mispritest.h b/mi/mispritest.h index 2deaa45f2..5075f0580 100644 --- a/mi/mispritest.h +++ b/mi/mispritest.h @@ -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; |