diff options
| author | Alexandre Elias <aelias@google.com> | 2011-08-19 16:03:16 -0700 |
|---|---|---|
| committer | Alexandre Elias <aelias@google.com> | 2011-08-19 16:53:42 -0700 |
| commit | c01391fb4eb0eef33d142e89e060eac7e75de39d (patch) | |
| tree | 83783c3be4e2c560c8d3374d7908c3cc430190ac /core/java/android/view/TextureView.java | |
| parent | 30867d8bdf9c6a719f3ae129d7e271b55592e163 (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.java | 16 |
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, |
