diff options
author | Mathias Agopian <mathias@google.com> | 2010-10-25 13:53:33 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-10-25 13:53:33 -0700 |
commit | a24a51988385d530803dd415f263f961b143c0f3 (patch) | |
tree | 400b835895c7a51e4ac4270ac3d29f918f62ac4b /services | |
parent | affca7e48180a79f85cd91754a47a263d8701cbc (diff) | |
parent | e1ca532d72cbfacdce794f8bb4d439e609ec9871 (diff) | |
download | frameworks_base-a24a51988385d530803dd415f263f961b143c0f3.zip frameworks_base-a24a51988385d530803dd415f263f961b143c0f3.tar.gz frameworks_base-a24a51988385d530803dd415f263f961b143c0f3.tar.bz2 |
am e1ca532d: am 457bed2b: Merge "fix [3123221] Video sticks playing back upside down following orientation switch" into gingerbread
Merge commit 'e1ca532d72cbfacdce794f8bb4d439e609ec9871'
* commit 'e1ca532d72cbfacdce794f8bb4d439e609ec9871':
fix [3123221] Video sticks playing back upside down following orientation switch
Diffstat (limited to 'services')
-rw-r--r-- | services/surfaceflinger/LayerBuffer.cpp | 13 | ||||
-rw-r--r-- | services/surfaceflinger/LayerBuffer.h | 3 |
2 files changed, 16 insertions, 0 deletions
diff --git a/services/surfaceflinger/LayerBuffer.cpp b/services/surfaceflinger/LayerBuffer.cpp index c060895..b7f9481 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) { diff --git a/services/surfaceflinger/LayerBuffer.h b/services/surfaceflinger/LayerBuffer.h index fece858..a89d8fe 100644 --- a/services/surfaceflinger/LayerBuffer.h +++ b/services/surfaceflinger/LayerBuffer.h @@ -44,6 +44,7 @@ class LayerBuffer : public LayerBaseClient virtual void onDraw(const Region& clip) const; virtual void onTransaction(uint32_t flags); virtual void onVisibilityResolved(const Transform& planeTransform); + virtual void onvalidateVisibility(const Transform& globalTransform) { } virtual void postBuffer(ssize_t offset); virtual void unregisterBuffers(); virtual void destroy() { } @@ -67,6 +68,7 @@ public: virtual void drawForSreenShot() const; virtual uint32_t doTransaction(uint32_t flags); virtual void unlockPageFlip(const Transform& planeTransform, Region& outDirtyRegion); + virtual void validateVisibility(const Transform& globalTransform); status_t registerBuffers(const ISurface::BufferHeap& buffers); void postBuffer(ssize_t offset); @@ -153,6 +155,7 @@ private: virtual void onDraw(const Region& clip) const; virtual void onTransaction(uint32_t flags); virtual void onVisibilityResolved(const Transform& planeTransform); + virtual void onvalidateVisibility(const Transform& globalTransform); virtual void destroy(); private: |