diff options
author | Mathias Agopian <mathias@google.com> | 2010-10-14 12:46:24 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2010-10-14 12:46:24 -0700 |
commit | 8b6a0545adb968f15ba8bb8c7587ff9ba356db13 (patch) | |
tree | 8505e8b6d12f03af157e46010c98b09925bb5812 | |
parent | b0e020ab409b725a556f2c5043b08c9bac2c29bf (diff) | |
download | frameworks_base-8b6a0545adb968f15ba8bb8c7587ff9ba356db13.zip frameworks_base-8b6a0545adb968f15ba8bb8c7587ff9ba356db13.tar.gz frameworks_base-8b6a0545adb968f15ba8bb8c7587ff9ba356db13.tar.bz2 |
fix [3095607] Gingerbread screen turn-on animation does not show the last frame
always redraw the screen entirely after the power-on animation, because:
- the animation may not run (ie: on the emu)
- the animation may not contain the video planes
- the interpolation may not be perfect and not land exactly on the last frame
Change-Id: I9ba40f537b1e94464f8a3ed6f81e7c2f552df51d
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 073ce01..a975480 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -1915,9 +1915,6 @@ status_t SurfaceFlinger::turnElectronBeamOffImplLocked() status_t SurfaceFlinger::turnElectronBeamOff(int32_t mode) { - if (!GLExtensions::getInstance().haveFramebufferObject()) - return INVALID_OPERATION; - class MessageTurnElectronBeamOff : public MessageBase { SurfaceFlinger* flinger; status_t result; @@ -1959,14 +1956,16 @@ status_t SurfaceFlinger::turnElectronBeamOnImplLocked() } electronBeamOnAnimationImplLocked(); hw.setCanDraw(true); + + // make sure to redraw the whole screen when the animation is done + mDirtyRegion.set(hw.bounds()); + signalEvent(); + return NO_ERROR; } status_t SurfaceFlinger::turnElectronBeamOn(int32_t mode) { - if (!GLExtensions::getInstance().haveFramebufferObject()) - return INVALID_OPERATION; - class MessageTurnElectronBeamOn : public MessageBase { SurfaceFlinger* flinger; status_t result; |