Merge change 5625 into donut
* changes: fix [1947273] the DimLayer causes the whole screen to update during transactions
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user