commit | 980b38d2f54953c3a18de85db38d6101cf2d3582 | [log] [tgz] |
---|---|---|
author | Erik Gilling <konkers@android.com> | Thu Sep 09 13:01:27 2010 -0700 |
committer | Android (Google) Code Review <android-gerrit@google.com> | Thu Sep 09 13:01:27 2010 -0700 |
tree | c4504ba80c293061bcc669091d0a30e20acc5ff1 | |
parent | 4b95ea0153770c664d5cb3744cd33ba2b238b0c6 [diff] | |
parent | 11042a41c1fe1415df0f45ef5fd3905d34b6e01a [diff] |
Merge "surfaceflinger: give hwcomposer a chance to release buffers"
diff --git a/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp b/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp index 166c528..3e23929 100644 --- a/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp +++ b/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp
@@ -292,6 +292,9 @@ void DisplayHardware::releaseScreen() const { DisplayHardwareBase::releaseScreen(); + if (mHwc->initCheck() == NO_ERROR) { + mHwc->release(); + } } void DisplayHardware::acquireScreen() const
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp index 0291d78..129be4e 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp +++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
@@ -87,6 +87,11 @@ return (status_t)err; } +status_t HWComposer::release() const { + int err = mHwc->set(mHwc, NULL, NULL, NULL); + return (status_t)err; +} + size_t HWComposer::getNumLayers() const { return mList ? mList->numHwLayers : 0; }
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.h b/services/surfaceflinger/DisplayHardware/HWComposer.h index c5d5c2b..22ff10c 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.h +++ b/services/surfaceflinger/DisplayHardware/HWComposer.h
@@ -48,6 +48,8 @@ // commits the list status_t commit() const; + // release hardware resources + status_t release() const; size_t getNumLayers() const; hwc_layer_t* getLayers() const;