Optimize call to drawBitmap during screen rotation.
Using SRC mode reduces drawBitmap time from 50ms to 15ms.
Change-Id: Ibde82f358d92bd330b8c78c9db1ded6a0b4ba135
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.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 @@
}
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);