summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2011-01-21 14:39:52 -0800
committerJeff Brown <jeffbrown@google.com>2011-01-21 14:39:52 -0800
commit8db9ac4b7d5f97b0d48cbc0dff5c5730641c9844 (patch)
treec5a99786527ed7404903ff88f22cf759d73b5153 /services
parent2cb866b948c38923b31331a9b2f031eb9d791e6e (diff)
downloadframeworks_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.java8
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);