summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/LayerBuffer.cpp
diff options
context:
space:
mode:
author Mathias Agopian <mathias@google.com> 2010-10-24 19:03:58 -0700
committer Mathias Agopian <mathias@google.com> 2010-10-24 19:03:58 -0700
commitc57b15c9c8dfb31e3c1ffcadd0e1522bf76dedd2 (patch)
tree71110f1876f58a9da6c3f52cb5b2107101434527 /services/surfaceflinger/LayerBuffer.cpp
parent860c2df4132a2a0be9bcb0e91bfb7e79588c000f (diff)
fix [3123221] Video sticks playing back upside down following orientation switch
the overlay wasn't reconfigured when the screen-orientation changed. It was only done when a parameter of the surface itself changed. Change-Id: I0ca0925bf58ded4c91ab89d12cb1fe4d1477c96c
Diffstat (limited to 'services/surfaceflinger/LayerBuffer.cpp')
-rw-r--r--services/surfaceflinger/LayerBuffer.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/services/surfaceflinger/LayerBuffer.cpp b/services/surfaceflinger/LayerBuffer.cpp
index 87cabedc042e..ccaad519cd23 100644
--- a/services/surfaceflinger/LayerBuffer.cpp
+++ b/services/surfaceflinger/LayerBuffer.cpp
@@ -132,6 +132,14 @@ void LayerBuffer::unlockPageFlip(const Transform& planeTransform,
LayerBase::unlockPageFlip(planeTransform, outDirtyRegion);
}
+void LayerBuffer::validateVisibility(const Transform& globalTransform)
+{
+ sp<Source> source(getSource());
+ if (source != 0)
+ source->onvalidateVisibility(globalTransform);
+ LayerBase::validateVisibility(globalTransform);
+}
+
void LayerBuffer::drawForSreenShot() const
{
const DisplayHardware& hw(graphicPlane(0).displayHardware());
@@ -641,6 +649,11 @@ void LayerBuffer::OverlaySource::onTransaction(uint32_t flags)
}
}
+void LayerBuffer::OverlaySource::onvalidateVisibility(const Transform&)
+{
+ mVisibilityChanged = true;
+}
+
void LayerBuffer::OverlaySource::onVisibilityResolved(
const Transform& planeTransform)
{