--- programs/Xserver/Imakefile.old 2004-09-01 09:59:17 +0900 +++ programs/Xserver/Imakefile 2005-01-03 14:05:29 +0900 @@ -233,8 +233,12 @@ cfb24/ModuleLibraryTargetName(cfb24) CFB32 = cfb/ModuleLibraryTargetName(cfb) \ cfb32/ModuleLibraryTargetName(cfb32) +#if BuildComposite CW = miext/cw/ModuleLibraryTargetName(cw) +#endif +#if BuildDamage DAMAGE = miext/damage/ModuleLibraryTargetName(damage) +#endif SHADOW = miext/shadow/ModuleLibraryTargetName(shadow) LAYER = miext/layer/ModuleLibraryTargetName(layer) #else @@ -253,8 +257,12 @@ cfb/LibraryTargetName(cfb) CFB32 = cfb32/LibraryTargetName(cfb32) \ cfb/LibraryTargetName(cfb) +#if BuildComposite CW = miext/cw/LibraryTargetName(cw) +#endif +#if BuildDamage DAMAGE = miext/damage/LibraryTargetName(damage) +#endif SHADOW = miext/shadow/LibraryTargetName(shadow) LAYER = miext/layer/LibraryTargetName(layer) #endif --- programs/Xserver/mi/misprite.c.old 2004-08-07 10:23:06 +0900 +++ programs/Xserver/mi/misprite.c 2005-01-03 15:46:32 +0900 @@ -51,7 +51,9 @@ #ifdef RENDER # include "mipict.h" #endif +#ifdef DAMAGE # include "damage.h" +#endif #define SPRITE_DEBUG_ENABLE 0 #if SPRITE_DEBUG_ENABLE @@ -122,6 +124,7 @@ static void miSpriteRemoveCursor(ScreenPtr pScreen); static void miSpriteRestoreCursor(ScreenPtr pScreen); +#ifdef DAMAGE static void miSpriteReportDamage (DamagePtr pDamage, RegionPtr pRegion, void *closure) { @@ -137,6 +140,7 @@ miSpriteRemoveCursor (pScreen); } } +#endif /* * miSpriteInitialize -- called from device-dependent screen @@ -152,9 +156,11 @@ { miSpriteScreenPtr pScreenPriv; VisualPtr pVisual; - + +#ifdef DAMAGE if (!DamageSetup (pScreen)) return FALSE; +#endif if (miSpriteGeneration != serverGeneration) { @@ -168,12 +174,14 @@ if (!pScreenPriv) return FALSE; +#ifdef DAMAGE pScreenPriv->pDamage = DamageCreate (miSpriteReportDamage, (DamageDestroyFunc) 0, DamageReportRawRegion, TRUE, pScreen, (void *) pScreen); +#endif if (!miPointerInitialize (pScreen, &miSpritePointerFuncs, screenFuncs,TRUE)) { @@ -263,7 +271,9 @@ pScreen->SaveDoomedAreas = pScreenPriv->SaveDoomedAreas; miSpriteIsUpFALSE (pScreen, pScreenPriv); +#ifdef DAMAGE DamageDestroy (pScreenPriv->pDamage); +#endif xfree ((pointer) pScreenPriv); @@ -676,7 +686,9 @@ pScreenPriv->saved.y2 - pScreenPriv->saved.y1 ) { +#ifdef DAMAGE DamageDrawInternal (pScreen, TRUE); +#endif miSpriteIsUpFALSE (pScreen, pScreenPriv); if (!(sx >= pScreenPriv->saved.x1 && sx + (int)pCursor->bits->width < pScreenPriv->saved.x2 && @@ -710,7 +722,9 @@ pScreenPriv->colors[SOURCE_COLOR].pixel, pScreenPriv->colors[MASK_COLOR].pixel); miSpriteIsUpTRUE (pScreen, pScreenPriv); +#ifdef DAMAGE DamageDrawInternal (pScreen, FALSE); +#endif } else { @@ -746,7 +760,9 @@ { miSpriteScreenPtr pScreenPriv; +#ifdef DAMAGE DamageDrawInternal (pScreen, TRUE); +#endif pScreenPriv = (miSpriteScreenPtr) pScreen->devPrivates[miSpriteScreenIndex].ptr; miSpriteIsUpFALSE (pScreen, pScreenPriv); pScreenPriv->pCacheWin = NullWindow; @@ -758,7 +774,9 @@ { miSpriteIsUpTRUE (pScreen, pScreenPriv); } +#ifdef DAMAGE DamageDrawInternal (pScreen, FALSE); +#endif } /* @@ -774,7 +792,9 @@ int x, y; CursorPtr pCursor; +#ifdef DAMAGE DamageDrawInternal (pScreen, TRUE); +#endif miSpriteComputeSaved (pScreen); pScreenPriv = (miSpriteScreenPtr) pScreen->devPrivates[miSpriteScreenIndex].ptr; pCursor = pScreenPriv->pCursor; @@ -795,7 +815,9 @@ miSpriteIsUpTRUE (pScreen, pScreenPriv); } } +#ifdef DAMAGE DamageDrawInternal (pScreen, FALSE); +#endif } /* --- programs/Xserver/mi/mispritest.h.old 2004-08-07 10:23:06 +0900 +++ programs/Xserver/mi/mispritest.h 2005-01-03 15:46:17 +0900 @@ -39,7 +39,9 @@ #ifdef RENDER # include "picturestr.h" #endif +#ifdef DAMAGE # include "damage.h" +#endif /* * per screen information @@ -79,12 +81,16 @@ ColormapPtr pColormap; VisualPtr pVisual; miSpriteCursorFuncPtr funcs; +#ifdef DAMAGE DamagePtr pDamage; /* damage tracking structure */ +#endif } miSpriteScreenRec, *miSpriteScreenPtr; #define SOURCE_COLOR 0 #define MASK_COLOR 1 +#ifdef DAMAGE + #define miSpriteIsUpTRUE(pScreen, pScreenPriv) if (!pScreenPriv->isUp) { \ pScreenPriv->isUp = TRUE; \ DamageRegister (&(*pScreen->GetScreenPixmap) (pScreen)->drawable, pScreenPriv->pDamage); \ @@ -95,6 +101,18 @@ pScreenPriv->isUp = FALSE; \ } +#else /* !DAMAGE */ + +#define miSpriteIsUpTRUE(pScreen, pScreenPriv) if (!pScreenPriv->isUp) { \ + pScreenPriv->isUp = TRUE; \ +} + +#define miSpriteIsUpFALSE(pScreen, pScreenPriv) if (pScreenPriv->isUp) { \ + pScreenPriv->isUp = FALSE; \ +} + +#endif + /* * Overlap BoxPtr and Box elements */