Skip to content

Commit f743338

Browse files
pixelflingerAndroid (Google) Code Review
authored andcommitted
Merge "fix a bug that caused the off animation to not show sometimes"
2 parents d6ede10 + 7f97258 commit f743338

File tree

3 files changed

+24
-2
lines changed

3 files changed

+24
-2
lines changed

services/surfaceflinger/DisplayHardware/HWComposer.cpp

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,21 @@ status_t HWComposer::commit() const {
108108
}
109109

110110
status_t HWComposer::release() const {
111-
int err = mHwc->set(mHwc, NULL, NULL, NULL);
112-
return (status_t)err;
111+
if (mHwc) {
112+
int err = mHwc->set(mHwc, NULL, NULL, NULL);
113+
return (status_t)err;
114+
}
115+
return NO_ERROR;
116+
}
117+
118+
status_t HWComposer::disable() {
119+
if (mHwc) {
120+
free(mList);
121+
mList = NULL;
122+
int err = mHwc->prepare(mHwc, NULL);
123+
return (status_t)err;
124+
}
125+
return NO_ERROR;
113126
}
114127

115128
size_t HWComposer::getNumLayers() const {

services/surfaceflinger/DisplayHardware/HWComposer.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ class HWComposer
5050
// Asks the HAL what it can do
5151
status_t prepare() const;
5252

53+
// disable hwc until next createWorkList
54+
status_t disable();
55+
5356
// commits the list
5457
status_t commit() const;
5558

services/surfaceflinger/SurfaceFlinger.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2113,6 +2113,12 @@ status_t SurfaceFlinger::turnElectronBeamOffImplLocked(int32_t mode)
21132113
// we're already off
21142114
return NO_ERROR;
21152115
}
2116+
2117+
// turn off hwc while we're doing the animation
2118+
hw.getHwComposer().disable();
2119+
// and make sure to turn it back on (if needed) next time we compose
2120+
invalidateHwcGeometry();
2121+
21162122
if (mode & ISurfaceComposer::eElectronBeamAnimationOff) {
21172123
electronBeamOffAnimationImplLocked();
21182124
}

0 commit comments

Comments
 (0)