am 3f5d7b83: am b876bdb5: Merge "Speed up layers rendering when using animations Cherry-pick from master" into froyo

Merge commit '3f5d7b83ee194db39c5f784146e4abc4f6568854' into kraken

* commit '3f5d7b83ee194db39c5f784146e4abc4f6568854':
  Speed up layers rendering when using animations
This commit is contained in:
Nicolas Roard
2010-04-20 13:29:11 -07:00
committed by Android Git Automerger

View File

@@ -3219,18 +3219,14 @@ public class WebView extends AbsoluteLayout
} }
} }
private void drawExtras(Canvas canvas, int extras) { private void drawExtras(Canvas canvas, int extras, boolean animationsRunning) {
// If mNativeClass is 0, we should not reach here, so we do not // If mNativeClass is 0, we should not reach here, so we do not
// need to check it again. // need to check it again.
// Currently for each draw we compute the animation values; if (animationsRunning) {
// We may in the future decide to do that independently. canvas.setDrawFilter(mWebViewCore.mZoomFilter);
if (nativeEvaluateLayersAnimations()) {
// If we have unfinished (or unstarted) animations,
// we ask for a repaint.
invalidate();
} }
nativeDrawExtras(canvas, extras); nativeDrawExtras(canvas, extras);
canvas.setDrawFilter(null);
} }
private void drawCoreAndCursorRing(Canvas canvas, int color, private void drawCoreAndCursorRing(Canvas canvas, int color,
@@ -3315,8 +3311,18 @@ public class WebView extends AbsoluteLayout
canvas.scale(mActualScale, mActualScale); canvas.scale(mActualScale, mActualScale);
} }
boolean UIAnimationsRunning = false;
// Currently for each draw we compute the animation values;
// We may in the future decide to do that independently.
if (mNativeClass != 0 && nativeEvaluateLayersAnimations()) {
UIAnimationsRunning = true;
// If we have unfinished (or unstarted) animations,
// we ask for a repaint.
invalidate();
}
mWebViewCore.drawContentPicture(canvas, color, mWebViewCore.drawContentPicture(canvas, color,
(animateZoom || mPreviewZoomOnly), animateScroll); (animateZoom || mPreviewZoomOnly || UIAnimationsRunning),
animateScroll);
if (mNativeClass == 0) return; if (mNativeClass == 0) return;
// decide which adornments to draw // decide which adornments to draw
int extras = DRAW_EXTRAS_NONE; int extras = DRAW_EXTRAS_NONE;
@@ -3337,7 +3343,7 @@ public class WebView extends AbsoluteLayout
} else if (drawCursorRing) { } else if (drawCursorRing) {
extras = DRAW_EXTRAS_CURSOR_RING; extras = DRAW_EXTRAS_CURSOR_RING;
} }
drawExtras(canvas, extras); drawExtras(canvas, extras, UIAnimationsRunning);
if (extras == DRAW_EXTRAS_CURSOR_RING) { if (extras == DRAW_EXTRAS_CURSOR_RING) {
if (mTouchMode == TOUCH_SHORTPRESS_START_MODE) { if (mTouchMode == TOUCH_SHORTPRESS_START_MODE) {