diff options
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/java/android/graphics/Camera.java | 10 | ||||
-rw-r--r-- | graphics/java/android/graphics/Matrix.java | 3 |
2 files changed, 9 insertions, 4 deletions
diff --git a/graphics/java/android/graphics/Camera.java b/graphics/java/android/graphics/Camera.java index 6f71a2b..9e07bd4 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); diff --git a/graphics/java/android/graphics/Matrix.java b/graphics/java/android/graphics/Matrix.java index 4e06448..32e0c01 100644 --- a/graphics/java/android/graphics/Matrix.java +++ b/graphics/java/android/graphics/Matrix.java @@ -21,9 +21,6 @@ import java.io.PrintWriter; /** * The Matrix class holds a 3x3 matrix for transforming coordinates. - * Matrix does not have a constructor, so it must be explicitly initialized - * using either reset() - to construct an identity matrix, or one of the set..() - * functions (e.g. setTranslate, setRotate, etc.). */ public class Matrix { |