Merge change 5625 into donut

* changes:
  fix [1947273] the DimLayer causes the whole screen to update during transactions
This commit is contained in:
Android (Google) Code Review
2009-06-29 13:15:46 -07:00

View File

@@ -771,10 +771,11 @@ void SurfaceFlinger::computeVisibleRegions(
dirty.orSelf(layer->visibleRegionScreen); dirty.orSelf(layer->visibleRegionScreen);
layer->contentDirty = false; layer->contentDirty = false;
} else { } else {
// compute the exposed region /* compute the exposed region:
// dirty = what's visible now - what's wasn't covered before * exposed = what's VISIBLE and NOT COVERED now
// = what's visible now & what's was covered before * but was COVERED before
dirty = visibleRegion.intersect(layer->coveredRegionScreen); */
dirty = (visibleRegion - coveredRegion) & layer->coveredRegionScreen;
} }
dirty.subtractSelf(aboveOpaqueLayers); dirty.subtractSelf(aboveOpaqueLayers);
@@ -783,7 +784,7 @@ void SurfaceFlinger::computeVisibleRegions(
// updade aboveOpaqueLayers/aboveCoveredLayers for next (lower) layer // updade aboveOpaqueLayers/aboveCoveredLayers for next (lower) layer
aboveOpaqueLayers.orSelf(opaqueRegion); aboveOpaqueLayers.orSelf(opaqueRegion);
aboveCoveredLayers.orSelf(bounds); aboveCoveredLayers.orSelf(visibleRegion);
// Store the visible region is screen space // Store the visible region is screen space
layer->setVisibleRegion(visibleRegion); layer->setVisibleRegion(visibleRegion);