damage: Remove "post-rendering" hooks
This is a revert of 974db58f5b.  There are
no consumers of this API, we must not need it.
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
			
			
This commit is contained in:
		
							parent
							
								
									0f3f8e4295
								
							
						
					
					
						commit
						c90add0f1c
					
				| 
						 | 
					@ -119,51 +119,6 @@ getDrawableDamageRef(DrawablePtr pDrawable)
 | 
				
			||||||
    DamagePtr	*pPrev = (DamagePtr *) \
 | 
					    DamagePtr	*pPrev = (DamagePtr *) \
 | 
				
			||||||
	dixLookupPrivateAddr(&(pWindow)->devPrivates, damageWinPrivateKey)
 | 
						dixLookupPrivateAddr(&(pWindow)->devPrivates, damageWinPrivateKey)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					 | 
				
			||||||
damageReportDamagePostRendering(DamagePtr pDamage, RegionPtr pOldDamage,
 | 
					 | 
				
			||||||
                                RegionPtr pDamageRegion)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    BoxRec tmpBox;
 | 
					 | 
				
			||||||
    RegionRec tmpRegion, newDamage;
 | 
					 | 
				
			||||||
    Bool was_empty;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    RegionUnion(&newDamage, pOldDamage, pDamageRegion);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    switch (pDamage->damageLevel) {
 | 
					 | 
				
			||||||
    case DamageReportRawRegion:
 | 
					 | 
				
			||||||
        (*pDamage->damageReportPostRendering) (pDamage, pDamageRegion,
 | 
					 | 
				
			||||||
                                               pDamage->closure);
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
    case DamageReportDeltaRegion:
 | 
					 | 
				
			||||||
        RegionNull(&tmpRegion);
 | 
					 | 
				
			||||||
        RegionSubtract(&tmpRegion, pDamageRegion, pOldDamage);
 | 
					 | 
				
			||||||
        if (RegionNotEmpty(&tmpRegion)) {
 | 
					 | 
				
			||||||
            (*pDamage->damageReportPostRendering) (pDamage, &tmpRegion,
 | 
					 | 
				
			||||||
                                                   pDamage->closure);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        RegionUninit(&tmpRegion);
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
    case DamageReportBoundingBox:
 | 
					 | 
				
			||||||
        tmpBox = *RegionExtents(pOldDamage);
 | 
					 | 
				
			||||||
        if (!BOX_SAME(&tmpBox, RegionExtents(&newDamage))) {
 | 
					 | 
				
			||||||
            (*pDamage->damageReportPostRendering) (pDamage, &newDamage,
 | 
					 | 
				
			||||||
                                                   pDamage->closure);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
    case DamageReportNonEmpty:
 | 
					 | 
				
			||||||
        was_empty = !RegionNotEmpty(pOldDamage);
 | 
					 | 
				
			||||||
        if (was_empty && RegionNotEmpty(&newDamage)) {
 | 
					 | 
				
			||||||
            (*pDamage->damageReportPostRendering) (pDamage, &newDamage,
 | 
					 | 
				
			||||||
                                                   pDamage->closure);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
    case DamageReportNone:
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    RegionUninit(&newDamage);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#if DAMAGE_DEBUG_ENABLE
 | 
					#if DAMAGE_DEBUG_ENABLE
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
_damageRegionAppend(DrawablePtr pDrawable, RegionPtr pRegion, Bool clip,
 | 
					_damageRegionAppend(DrawablePtr pDrawable, RegionPtr pRegion, Bool clip,
 | 
				
			||||||
| 
						 | 
					@ -299,14 +254,10 @@ damageRegionAppend(DrawablePtr pDrawable, RegionPtr pRegion, Bool clip,
 | 
				
			||||||
            RegionTranslate(pDamageRegion, -draw_x, -draw_y);
 | 
					            RegionTranslate(pDamageRegion, -draw_x, -draw_y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* Store damage region if needed after submission. */
 | 
					        /* Store damage region if needed after submission. */
 | 
				
			||||||
        if (pDamage->reportAfter || pDamage->damageMarker)
 | 
					        if (pDamage->reportAfter)
 | 
				
			||||||
            RegionUnion(&pDamage->pendingDamage,
 | 
					            RegionUnion(&pDamage->pendingDamage,
 | 
				
			||||||
                        &pDamage->pendingDamage, pDamageRegion);
 | 
					                        &pDamage->pendingDamage, pDamageRegion);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* Duplicate current damage if needed. */
 | 
					 | 
				
			||||||
        if (pDamage->damageMarker)
 | 
					 | 
				
			||||||
            RegionCopy(&pDamage->backupDamage, &pDamage->damage);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* Report damage now, if desired. */
 | 
					        /* Report damage now, if desired. */
 | 
				
			||||||
        if (!pDamage->reportAfter) {
 | 
					        if (!pDamage->reportAfter) {
 | 
				
			||||||
            if (pDamage->damageReport)
 | 
					            if (pDamage->damageReport)
 | 
				
			||||||
| 
						 | 
					@ -335,12 +286,6 @@ damageRegionProcessPending(DrawablePtr pDrawable)
 | 
				
			||||||
    drawableDamage(pDrawable);
 | 
					    drawableDamage(pDrawable);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (; pDamage != NULL; pDamage = pDamage->pNext) {
 | 
					    for (; pDamage != NULL; pDamage = pDamage->pNext) {
 | 
				
			||||||
        /* submit damage marker whenever possible. */
 | 
					 | 
				
			||||||
        if (pDamage->damageMarker)
 | 
					 | 
				
			||||||
            (*pDamage->damageMarker) (pDrawable, pDamage,
 | 
					 | 
				
			||||||
                                      &pDamage->backupDamage,
 | 
					 | 
				
			||||||
                                      &pDamage->pendingDamage,
 | 
					 | 
				
			||||||
                                      pDamage->closure);
 | 
					 | 
				
			||||||
        if (pDamage->reportAfter) {
 | 
					        if (pDamage->reportAfter) {
 | 
				
			||||||
            /* It's possible that there is only interest in postRendering reporting. */
 | 
					            /* It's possible that there is only interest in postRendering reporting. */
 | 
				
			||||||
            if (pDamage->damageReport)
 | 
					            if (pDamage->damageReport)
 | 
				
			||||||
| 
						 | 
					@ -350,10 +295,8 @@ damageRegionProcessPending(DrawablePtr pDrawable)
 | 
				
			||||||
                            &pDamage->pendingDamage);
 | 
					                            &pDamage->pendingDamage);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (pDamage->reportAfter || pDamage->damageMarker)
 | 
					        if (pDamage->reportAfter)
 | 
				
			||||||
            RegionEmpty(&pDamage->pendingDamage);
 | 
					            RegionEmpty(&pDamage->pendingDamage);
 | 
				
			||||||
        if (pDamage->damageMarker)
 | 
					 | 
				
			||||||
            RegionEmpty(&pDamage->backupDamage);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1762,9 +1705,7 @@ DamageCreate(DamageReportFunc damageReport,
 | 
				
			||||||
    pDamage->reportAfter = FALSE;
 | 
					    pDamage->reportAfter = FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pDamage->damageReport = damageReport;
 | 
					    pDamage->damageReport = damageReport;
 | 
				
			||||||
    pDamage->damageReportPostRendering = NULL;
 | 
					 | 
				
			||||||
    pDamage->damageDestroy = damageDestroy;
 | 
					    pDamage->damageDestroy = damageDestroy;
 | 
				
			||||||
    pDamage->damageMarker = NULL;
 | 
					 | 
				
			||||||
    pDamage->pScreen = pScreen;
 | 
					    pDamage->pScreen = pScreen;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    (*pScrPriv->funcs.Create) (pDamage);
 | 
					    (*pScrPriv->funcs.Create) (pDamage);
 | 
				
			||||||
| 
						 | 
					@ -1936,17 +1877,6 @@ DamageRegionProcessPending(DrawablePtr pDrawable)
 | 
				
			||||||
    damageRegionProcessPending(pDrawable);
 | 
					    damageRegionProcessPending(pDrawable);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* If a damage marker is provided, then this function must be called after rendering is done. */
 | 
					 | 
				
			||||||
/* Please do call back so any future enhancements can assume this function is called. */
 | 
					 | 
				
			||||||
/* There are no strict timing requirements for calling this function, just as soon as (is cheaply) possible. */
 | 
					 | 
				
			||||||
void
 | 
					 | 
				
			||||||
DamageRegionRendered(DrawablePtr pDrawable, DamagePtr pDamage,
 | 
					 | 
				
			||||||
                     RegionPtr pOldDamage, RegionPtr pRegion)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    if (pDamage->damageReportPostRendering)
 | 
					 | 
				
			||||||
        damageReportDamagePostRendering(pDamage, pOldDamage, pRegion);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* This call is very odd, i'm leaving it intact for API sake, but please don't use it. */
 | 
					/* This call is very odd, i'm leaving it intact for API sake, but please don't use it. */
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
DamageDamageRegion(DrawablePtr pDrawable, RegionPtr pRegion)
 | 
					DamageDamageRegion(DrawablePtr pDrawable, RegionPtr pRegion)
 | 
				
			||||||
| 
						 | 
					@ -1966,15 +1896,6 @@ DamageSetReportAfterOp(DamagePtr pDamage, Bool reportAfter)
 | 
				
			||||||
    pDamage->reportAfter = reportAfter;
 | 
					    pDamage->reportAfter = reportAfter;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					 | 
				
			||||||
DamageSetPostRenderingFunctions(DamagePtr pDamage,
 | 
					 | 
				
			||||||
                                DamageReportFunc damageReportPostRendering,
 | 
					 | 
				
			||||||
                                DamageMarkerFunc damageMarker)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    pDamage->damageReportPostRendering = damageReportPostRendering;
 | 
					 | 
				
			||||||
    pDamage->damageMarker = damageMarker;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DamageScreenFuncsPtr
 | 
					DamageScreenFuncsPtr
 | 
				
			||||||
DamageGetScreenFuncs(ScreenPtr pScreen)
 | 
					DamageGetScreenFuncs(ScreenPtr pScreen)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,12 +41,6 @@ typedef void (*DamageReportFunc) (DamagePtr pDamage, RegionPtr pRegion,
 | 
				
			||||||
                                  void *closure);
 | 
					                                  void *closure);
 | 
				
			||||||
typedef void (*DamageDestroyFunc) (DamagePtr pDamage, void *closure);
 | 
					typedef void (*DamageDestroyFunc) (DamagePtr pDamage, void *closure);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* It's the responsibility of the driver to duplicate both regions. */
 | 
					 | 
				
			||||||
/* At some point DamageRegionRendered() must be called. */
 | 
					 | 
				
			||||||
typedef void (*DamageMarkerFunc) (DrawablePtr pDrawable, DamagePtr pDamage,
 | 
					 | 
				
			||||||
                                  RegionPtr pOldDamage, RegionPtr pRegion,
 | 
					 | 
				
			||||||
                                  void *closure);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
typedef void (*DamageScreenCreateFunc) (DamagePtr);
 | 
					typedef void (*DamageScreenCreateFunc) (DamagePtr);
 | 
				
			||||||
typedef void (*DamageScreenRegisterFunc) (DrawablePtr, DamagePtr);
 | 
					typedef void (*DamageScreenRegisterFunc) (DrawablePtr, DamagePtr);
 | 
				
			||||||
typedef void (*DamageScreenUnregisterFunc) (DrawablePtr, DamagePtr);
 | 
					typedef void (*DamageScreenUnregisterFunc) (DrawablePtr, DamagePtr);
 | 
				
			||||||
| 
						 | 
					@ -105,12 +99,6 @@ extern _X_EXPORT void
 | 
				
			||||||
extern _X_EXPORT void
 | 
					extern _X_EXPORT void
 | 
				
			||||||
 DamageRegionProcessPending(DrawablePtr pDrawable);
 | 
					 DamageRegionProcessPending(DrawablePtr pDrawable);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Call this some time after rendering is done, only relevant when a damageMarker is provided. */
 | 
					 | 
				
			||||||
extern _X_EXPORT void
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DamageRegionRendered(DrawablePtr pDrawable, DamagePtr pDamage,
 | 
					 | 
				
			||||||
                     RegionPtr pOldDamage, RegionPtr pRegion);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Call this when you create a new Damage and you wish to send an initial damage message (to it). */
 | 
					/* Call this when you create a new Damage and you wish to send an initial damage message (to it). */
 | 
				
			||||||
extern _X_EXPORT void
 | 
					extern _X_EXPORT void
 | 
				
			||||||
 DamageReportDamage(DamagePtr pDamage, RegionPtr pDamageRegion);
 | 
					 DamageReportDamage(DamagePtr pDamage, RegionPtr pDamageRegion);
 | 
				
			||||||
| 
						 | 
					@ -122,12 +110,6 @@ extern _X_EXPORT void
 | 
				
			||||||
extern _X_EXPORT void
 | 
					extern _X_EXPORT void
 | 
				
			||||||
 DamageSetReportAfterOp(DamagePtr pDamage, Bool reportAfter);
 | 
					 DamageSetReportAfterOp(DamagePtr pDamage, Bool reportAfter);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern _X_EXPORT void
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DamageSetPostRenderingFunctions(DamagePtr pDamage,
 | 
					 | 
				
			||||||
                                DamageReportFunc damageReportPostRendering,
 | 
					 | 
				
			||||||
                                DamageMarkerFunc damageMarker);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
extern _X_EXPORT DamageScreenFuncsPtr DamageGetScreenFuncs(ScreenPtr);
 | 
					extern _X_EXPORT DamageScreenFuncsPtr DamageGetScreenFuncs(ScreenPtr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif                          /* _DAMAGE_H_ */
 | 
					#endif                          /* _DAMAGE_H_ */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,13 +44,10 @@ typedef struct _damage {
 | 
				
			||||||
    DrawablePtr pDrawable;
 | 
					    DrawablePtr pDrawable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    DamageReportFunc damageReport;
 | 
					    DamageReportFunc damageReport;
 | 
				
			||||||
    DamageReportFunc damageReportPostRendering;
 | 
					 | 
				
			||||||
    DamageDestroyFunc damageDestroy;
 | 
					    DamageDestroyFunc damageDestroy;
 | 
				
			||||||
    DamageMarkerFunc damageMarker;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Bool reportAfter;
 | 
					    Bool reportAfter;
 | 
				
			||||||
    RegionRec pendingDamage;    /* will be flushed post submission at the latest */
 | 
					    RegionRec pendingDamage;    /* will be flushed post submission at the latest */
 | 
				
			||||||
    RegionRec backupDamage;     /* for use with damageMarker */
 | 
					 | 
				
			||||||
    ScreenPtr pScreen;
 | 
					    ScreenPtr pScreen;
 | 
				
			||||||
    PrivateRec *devPrivates;
 | 
					    PrivateRec *devPrivates;
 | 
				
			||||||
} DamageRec;
 | 
					} DamageRec;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue