diff options
author | Jeff Brown <jeffbrown@google.com> | 2011-01-21 14:39:52 -0800 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2011-01-21 14:39:52 -0800 |
commit | 8db9ac4b7d5f97b0d48cbc0dff5c5730641c9844 (patch) | |
tree | c5a99786527ed7404903ff88f22cf759d73b5153 /services | |
parent | 2cb866b948c38923b31331a9b2f031eb9d791e6e (diff) | |
download | frameworks_base-8db9ac4b7d5f97b0d48cbc0dff5c5730641c9844.zip frameworks_base-8db9ac4b7d5f97b0d48cbc0dff5c5730641c9844.tar.gz frameworks_base-8db9ac4b7d5f97b0d48cbc0dff5c5730641c9844.tar.bz2 |
Optimize call to drawBitmap during screen rotation.
Using SRC mode reduces drawBitmap time from 50ms to 15ms.
Change-Id: Ibde82f358d92bd330b8c78c9db1ded6a0b4ba135
Diffstat (limited to 'services')
-rw-r--r-- | services/java/com/android/server/ScreenRotationAnimation.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/services/java/com/android/server/ScreenRotationAnimation.java b/services/java/com/android/server/ScreenRotationAnimation.java index 2ad9cbe..bef64b3 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); |