summaryrefslogtreecommitdiffstats
path: root/graphics
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2011-01-04 15:02:59 -0800
committerRomain Guy <romainguy@google.com>2011-01-04 15:02:59 -0800
commita9ebfa6bcce62d7fee69693fe3dee6027afd3f0e (patch)
tree08937fdff6c33566fe39295e5bf91c22c7f926a5 /graphics
parent068a73555a3ed79710fb511c7684f4d0048fc7d6 (diff)
downloadframeworks_base-a9ebfa6bcce62d7fee69693fe3dee6027afd3f0e.zip
frameworks_base-a9ebfa6bcce62d7fee69693fe3dee6027afd3f0e.tar.gz
frameworks_base-a9ebfa6bcce62d7fee69693fe3dee6027afd3f0e.tar.bz2
Keep a reference to the local matrix.
Bug #3299324 This is needed for ADT, which does not rely on Skia's reference counting to correctly keep track of the native objects. Change-Id: Ia2fc5c1ec2b80bad226bc549fefc6bb064784609
Diffstat (limited to 'graphics')
-rw-r--r--graphics/java/android/graphics/Shader.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/graphics/java/android/graphics/Shader.java b/graphics/java/android/graphics/Shader.java
index 0400b5c..3acf1ea 100644
--- a/graphics/java/android/graphics/Shader.java
+++ b/graphics/java/android/graphics/Shader.java
@@ -34,6 +34,8 @@ public class Shader {
*/
public int native_shader;
+ private Matrix mLocalMatrix;
+
public enum TileMode {
/**
* replicate the edge color if the shader draws outside of its
@@ -62,7 +64,11 @@ public class Shader {
* @return true if the shader has a non-identity local matrix
*/
public boolean getLocalMatrix(Matrix localM) {
- return nativeGetLocalMatrix(native_instance, localM.native_instance);
+ if (mLocalMatrix != null) {
+ localM.set(mLocalMatrix);
+ return true;
+ }
+ return false;
}
/**
@@ -71,6 +77,7 @@ public class Shader {
* @param localM The shader's new local matrix, or null to specify identity
*/
public void setLocalMatrix(Matrix localM) {
+ mLocalMatrix = localM;
nativeSetLocalMatrix(native_instance, native_shader,
localM == null ? 0 : localM.native_instance);
}
@@ -84,8 +91,6 @@ public class Shader {
}
private static native void nativeDestructor(int native_shader, int native_skiaShader);
- private static native boolean nativeGetLocalMatrix(int native_shader,
- int matrix_instance);
private static native void nativeSetLocalMatrix(int native_shader,
int native_skiaShader, int matrix_instance);
}