From 8b6a0545adb968f15ba8bb8c7587ff9ba356db13 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Thu, 14 Oct 2010 12:46:24 -0700 Subject: 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 --- services/surfaceflinger/SurfaceFlinger.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'services/surfaceflinger/SurfaceFlinger.cpp') diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 073ce01ac094..a975480ce208 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; -- cgit v1.2.3-59-g8ed1b