From 7fbbc3c9c3dc25c2bc78bba6fd267bfd99c96b2b Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Tue, 13 Aug 2013 10:37:25 -0700 Subject: [PATCH] Camera.applyToCanvas() now works with hardware canvases Change-Id: I7f06b2a74ccc1941d51e12a0417028e094c1b669 --- graphics/java/android/graphics/Camera.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/graphics/java/android/graphics/Camera.java b/graphics/java/android/graphics/Camera.java index 6f71a2bdb5d61..9e07bd4c133de 100644 --- a/graphics/java/android/graphics/Camera.java +++ b/graphics/java/android/graphics/Camera.java @@ -22,6 +22,8 @@ package android.graphics; * {@link Canvas}. */ public class Camera { + private Matrix mMatrix; + /** * Creates a new camera, with empty transformations. */ @@ -147,7 +149,13 @@ public class Camera { * @param canvas The Canvas to set the transform matrix onto */ public void applyToCanvas(Canvas canvas) { - nativeApplyToCanvas(canvas.mNativeCanvas); + if (canvas.isHardwareAccelerated()) { + if (mMatrix == null) mMatrix = new Matrix(); + getMatrix(mMatrix); + canvas.concat(mMatrix); + } else { + nativeApplyToCanvas(canvas.mNativeCanvas); + } } public native float dotWithNormal(float dx, float dy, float dz);