diff options
author | Mathias Agopian <mathias@google.com> | 2011-09-02 12:22:39 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2011-09-02 12:22:39 -0700 |
commit | 7f97258ab379b3bcf14846c4eb65022d2b39f390 (patch) | |
tree | d96acd1fcde752558dce91615b8148db45ba7f34 /services/surfaceflinger/DisplayHardware | |
parent | a55c369e73a8864cc34290625acd16c68956c58a (diff) | |
download | frameworks_base-7f97258ab379b3bcf14846c4eb65022d2b39f390.zip frameworks_base-7f97258ab379b3bcf14846c4eb65022d2b39f390.tar.gz frameworks_base-7f97258ab379b3bcf14846c4eb65022d2b39f390.tar.bz2 |
fix a bug that caused the off animation to not show sometimes
this happened when the overlays were in use, since the animation
is rendered in the FB and the FB is not used.
we now have a way to turn hwc off temporarily.
Change-Id: I3385f0c25bb9cc91948e7b26e7cd31ed18c36ace
Diffstat (limited to 'services/surfaceflinger/DisplayHardware')
-rw-r--r-- | services/surfaceflinger/DisplayHardware/HWComposer.cpp | 17 | ||||
-rw-r--r-- | services/surfaceflinger/DisplayHardware/HWComposer.h | 3 |
2 files changed, 18 insertions, 2 deletions
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp index 7d1bdf0..0ff1cce 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp +++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp @@ -108,8 +108,21 @@ status_t HWComposer::commit() const { } status_t HWComposer::release() const { - int err = mHwc->set(mHwc, NULL, NULL, NULL); - return (status_t)err; + if (mHwc) { + int err = mHwc->set(mHwc, NULL, NULL, NULL); + return (status_t)err; + } + return NO_ERROR; +} + +status_t HWComposer::disable() { + if (mHwc) { + free(mList); + mList = NULL; + int err = mHwc->prepare(mHwc, NULL); + return (status_t)err; + } + return NO_ERROR; } size_t HWComposer::getNumLayers() const { diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.h b/services/surfaceflinger/DisplayHardware/HWComposer.h index 983898a..77c1a4b 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.h +++ b/services/surfaceflinger/DisplayHardware/HWComposer.h @@ -50,6 +50,9 @@ public: // Asks the HAL what it can do status_t prepare() const; + // disable hwc until next createWorkList + status_t disable(); + // commits the list status_t commit() const; |