From 8db9ac4b7d5f97b0d48cbc0dff5c5730641c9844 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Fri, 21 Jan 2011 14:39:52 -0800 Subject: [PATCH] Optimize call to drawBitmap during screen rotation. Using SRC mode reduces drawBitmap time from 50ms to 15ms. Change-Id: Ibde82f358d92bd330b8c78c9db1ded6a0b4ba135 --- .../java/com/android/server/ScreenRotationAnimation.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/ScreenRotationAnimation.java b/services/java/com/android/server/ScreenRotationAnimation.java index 2ad9cbe97d41e..bef64b3bf0ff3 100644 --- a/services/java/com/android/server/ScreenRotationAnimation.java +++ b/services/java/com/android/server/ScreenRotationAnimation.java @@ -23,6 +23,8 @@ import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PixelFormat; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.util.DisplayMetrics; import android.util.Slog; @@ -132,9 +134,11 @@ class ScreenRotationAnimation { } if (screenshot != null) { - c.drawBitmap(screenshot, 0, 0, new Paint(0)); + Paint paint = new Paint(0); + paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC)); + c.drawBitmap(screenshot, 0, 0, paint); } else { - c.drawColor(Color.GREEN); + c.drawColor(Color.GREEN, PorterDuff.Mode.SRC); } mSurface.unlockCanvasAndPost(c);