diff options
author | Jesse Hall <jessehall@google.com> | 2014-09-30 10:35:11 -0700 |
---|---|---|
committer | Jesse Hall <jessehall@google.com> | 2014-10-01 09:00:34 -0700 |
commit | 5bf786d8f00ff8eee64ebf330dac55e33a0f97b1 (patch) | |
tree | 665dab472019def8a3b9d249503fb89e964dbe3b | |
parent | 5ee2c9d20c0fbecf6b4a482eb8d8bfdf85d0d424 (diff) | |
download | native-5bf786d8f00ff8eee64ebf330dac55e33a0f97b1.tar.gz |
surfaceflinger: recompute visibility after sideband stream change
We normally recompute layer visibility when a layer gets its first
buffer; before then it's treated as invisible. Sideband layers never
get a buffer (as far as SurfaceFlinger knows), so never became
visible. Now we also recompute visibility when a layer gets a new
sideband stream.
Bug: 17752511
Change-Id: I84e150f196eb2eb7bcd2616248e5e3fa73624809
-rw-r--r-- | services/surfaceflinger/Layer.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp index a36ddd9581..fa07656e23 100644 --- a/services/surfaceflinger/Layer.cpp +++ b/services/surfaceflinger/Layer.cpp @@ -1042,6 +1042,10 @@ Region Layer::latchBuffer(bool& recomputeVisibleRegions) if (android_atomic_acquire_cas(true, false, &mSidebandStreamChanged) == 0) { // mSidebandStreamChanged was true mSidebandStream = mSurfaceFlingerConsumer->getSidebandStream(); + recomputeVisibleRegions = true; + + const State& s(getDrawingState()); + return s.transform.transform(Region(Rect(s.active.w, s.active.h))); } Region outDirtyRegion; |