summaryrefslogtreecommitdiff
path: root/core/java/android/view/TextureView.java
diff options
context:
space:
mode:
authorAlexandre Elias <aelias@google.com>2011-08-19 16:03:16 -0700
committerAlexandre Elias <aelias@google.com>2011-08-19 16:53:42 -0700
commitc01391fb4eb0eef33d142e89e060eac7e75de39d (patch)
tree83783c3be4e2c560c8d3374d7908c3cc430190ac /core/java/android/view/TextureView.java
parent30867d8bdf9c6a719f3ae129d7e271b55592e163 (diff)
Minor fixes to SurfaceTexture transform matrix.
- Sometimes, the applyUpdate was applied through draw() and the underlying matrix was not updated in time, causing "jitter". Add a matrix update call in draw(). - Switch to invalidateParentIfNeeded() in setTransform(). Change-Id: I1cf9cdfe78f9d989821cdc9600984fc826430211
Diffstat (limited to 'core/java/android/view/TextureView.java')
-rw-r--r--core/java/android/view/TextureView.java16
1 files changed, 10 insertions, 6 deletions
diff --git a/core/java/android/view/TextureView.java b/core/java/android/view/TextureView.java
index b72222ee9f99..9d959fbf5981 100644
--- a/core/java/android/view/TextureView.java
+++ b/core/java/android/view/TextureView.java
@@ -261,6 +261,7 @@ public class TextureView extends View {
@Override
public final void draw(Canvas canvas) {
applyUpdate();
+ applyTransformMatrix();
}
/**
@@ -315,11 +316,7 @@ public class TextureView extends View {
}
applyUpdate();
-
- if (mMatrixChanged) {
- mLayer.setTransform(mMatrix);
- mMatrixChanged = false;
- }
+ applyTransformMatrix();
return mLayer;
}
@@ -386,7 +383,7 @@ public class TextureView extends View {
public void setTransform(Matrix transform) {
mMatrix.set(transform);
mMatrixChanged = true;
- invalidate();
+ invalidateParentIfNeeded();
}
/**
@@ -410,6 +407,13 @@ public class TextureView extends View {
return transform;
}
+ private void applyTransformMatrix() {
+ if (mMatrixChanged) {
+ mLayer.setTransform(mMatrix);
+ mMatrixChanged = false;
+ }
+ }
+
/**
* <p>Returns a {@link android.graphics.Bitmap} representation of the content
* of the associated surface texture. If the surface texture is not available,