From c01391fb4eb0eef33d142e89e060eac7e75de39d Mon Sep 17 00:00:00 2001 From: Alexandre Elias Date: Fri, 19 Aug 2011 16:03:16 -0700 Subject: 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 --- core/java/android/view/TextureView.java | 16 ++++++++++------ 1 file 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; + } + } + /** *

Returns a {@link android.graphics.Bitmap} representation of the content * of the associated surface texture. If the surface texture is not available, -- cgit v1.2.3-59-g8ed1b