summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2010-10-14 12:46:24 -0700
committerMathias Agopian <mathias@google.com>2010-10-14 12:46:24 -0700
commit8b6a0545adb968f15ba8bb8c7587ff9ba356db13 (patch)
tree8505e8b6d12f03af157e46010c98b09925bb5812
parentb0e020ab409b725a556f2c5043b08c9bac2c29bf (diff)
downloadframeworks_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.cpp11
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;