Merge "fix a bug that caused the off animation to not show sometimes"
This commit is contained in:
committed by
Android (Google) Code Review
commit
f743338c1e
@@ -108,8 +108,21 @@ status_t HWComposer::commit() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
status_t HWComposer::release() const {
|
status_t HWComposer::release() const {
|
||||||
int err = mHwc->set(mHwc, NULL, NULL, NULL);
|
if (mHwc) {
|
||||||
return (status_t)err;
|
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 {
|
size_t HWComposer::getNumLayers() const {
|
||||||
|
|||||||
@@ -50,6 +50,9 @@ public:
|
|||||||
// Asks the HAL what it can do
|
// Asks the HAL what it can do
|
||||||
status_t prepare() const;
|
status_t prepare() const;
|
||||||
|
|
||||||
|
// disable hwc until next createWorkList
|
||||||
|
status_t disable();
|
||||||
|
|
||||||
// commits the list
|
// commits the list
|
||||||
status_t commit() const;
|
status_t commit() const;
|
||||||
|
|
||||||
|
|||||||
@@ -2113,6 +2113,12 @@ status_t SurfaceFlinger::turnElectronBeamOffImplLocked(int32_t mode)
|
|||||||
// we're already off
|
// we're already off
|
||||||
return NO_ERROR;
|
return NO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// turn off hwc while we're doing the animation
|
||||||
|
hw.getHwComposer().disable();
|
||||||
|
// and make sure to turn it back on (if needed) next time we compose
|
||||||
|
invalidateHwcGeometry();
|
||||||
|
|
||||||
if (mode & ISurfaceComposer::eElectronBeamAnimationOff) {
|
if (mode & ISurfaceComposer::eElectronBeamAnimationOff) {
|
||||||
electronBeamOffAnimationImplLocked();
|
electronBeamOffAnimationImplLocked();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user