summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Romain Guy <romainguy@google.com> 2013-08-13 10:37:25 -0700
committer Romain Guy <romainguy@google.com> 2013-08-13 10:37:25 -0700
commit7fbbc3c9c3dc25c2bc78bba6fd267bfd99c96b2b (patch)
treed31b7e4d182ea124aabfe4d78715b4d932a31dea
parentb15b446f420b3ec69424dabcbcbc8cf019d6c8d6 (diff)
Camera.applyToCanvas() now works with hardware canvases
Change-Id: I7f06b2a74ccc1941d51e12a0417028e094c1b669
-rw-r--r--graphics/java/android/graphics/Camera.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/graphics/java/android/graphics/Camera.java b/graphics/java/android/graphics/Camera.java
index 6f71a2bdb5d6..9e07bd4c133d 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);