summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy McFadden <fadden@android.com>2012-09-26 16:19:12 -0700
committerAndy McFadden <fadden@android.com>2012-09-26 16:19:12 -0700
commitab10c5804c250e7f392c8262f687766edec2e9f4 (patch)
treec6791a7fb242f9e23d318b3bb3ea97a762aa6ccb
parentc4a8daaa998ea524c9aaa9817021ff7c4467c3dd (diff)
downloadframeworks_native-ab10c5804c250e7f392c8262f687766edec2e9f4.zip
frameworks_native-ab10c5804c250e7f392c8262f687766edec2e9f4.tar.gz
frameworks_native-ab10c5804c250e7f392c8262f687766edec2e9f4.tar.bz2
Recompute visible regions more vigorously
Some of the code in latchBuffer was calling invalidateHwcGeometry, but that didn't cause the SurfaceFlinger visible region code to re-evaluate the layer's visibility. Set the recomputeVisibleRegions "out" parameter instead. Bug 7235797 Change-Id: If6ba33fbd1a594cd64cc5253aebf752d6ceda1c9
-rw-r--r--services/surfaceflinger/Layer.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index 41c4963..c2da238 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -655,7 +655,7 @@ Region Layer::latchBuffer(bool& recomputeVisibleRegions)
if (oldActiveBuffer == NULL) {
// the first time we receive a buffer, we need to trigger a
// geometry invalidation.
- mFlinger->invalidateHwcGeometry();
+ recomputeVisibleRegions = true;
}
Rect crop(mSurfaceTexture->getCurrentCrop());
@@ -668,7 +668,7 @@ Region Layer::latchBuffer(bool& recomputeVisibleRegions)
mCurrentCrop = crop;
mCurrentTransform = transform;
mCurrentScalingMode = scalingMode;
- mFlinger->invalidateHwcGeometry();
+ recomputeVisibleRegions = true;
}
if (oldActiveBuffer != NULL) {
@@ -676,7 +676,7 @@ Region Layer::latchBuffer(bool& recomputeVisibleRegions)
uint32_t bufHeight = mActiveBuffer->getHeight();
if (bufWidth != uint32_t(oldActiveBuffer->width) ||
bufHeight != uint32_t(oldActiveBuffer->height)) {
- mFlinger->invalidateHwcGeometry();
+ recomputeVisibleRegions = true;
}
}