From 0edf18f34c4dc81e45580bc0a3b3b9b072caa725 Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Tue, 21 Feb 2017 20:01:47 -0800 Subject: [PATCH] Correct SurfaceControl matrix parameter names. DsDx is used for the X scale but DtDy is used for the Y scale, it seems like this is a simple mix up. Correct before documenting SurfaceControl. Test: Animations and such work. Change-Id: Ic52b67596bf576f58346e4db66661b06ea1bdc2f --- core/java/android/view/SurfaceControl.java | 4 +- core/jni/android_view_SurfaceControl.cpp | 4 +- .../server/wm/AccessibilityController.java | 4 +- .../server/wm/WindowStateAnimator.java | 40 +++++++++---------- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java index cf8da179bab52..b718696b22021 100644 --- a/core/java/android/view/SurfaceControl.java +++ b/core/java/android/view/SurfaceControl.java @@ -508,9 +508,9 @@ public class SurfaceControl { nativeSetAlpha(mNativeObject, alpha); } - public void setMatrix(float dsdx, float dtdx, float dsdy, float dtdy) { + public void setMatrix(float dsdx, float dtdx, float dtdy, float dsdy) { checkNotReleased(); - nativeSetMatrix(mNativeObject, dsdx, dtdx, dsdy, dtdy); + nativeSetMatrix(mNativeObject, dsdx, dtdx, dtdy, dsdy); } public void setWindowCrop(Rect crop) { diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp index 0171562184dcb..a81901df9a1b0 100644 --- a/core/jni/android_view_SurfaceControl.cpp +++ b/core/jni/android_view_SurfaceControl.cpp @@ -356,9 +356,9 @@ static void nativeSetAlpha(JNIEnv* env, jclass clazz, jlong nativeObject, jfloat } static void nativeSetMatrix(JNIEnv* env, jclass clazz, jlong nativeObject, - jfloat dsdx, jfloat dtdx, jfloat dsdy, jfloat dtdy) { + jfloat dsdx, jfloat dtdx, jfloat dtdy, jfloat dsdy) { SurfaceControl* const ctrl = reinterpret_cast(nativeObject); - status_t err = ctrl->setMatrix(dsdx, dtdx, dsdy, dtdy); + status_t err = ctrl->setMatrix(dsdx, dtdx, dtdy, dsdy); if (err < 0 && err != NO_INIT) { doThrowIAE(env); } diff --git a/services/core/java/com/android/server/wm/AccessibilityController.java b/services/core/java/com/android/server/wm/AccessibilityController.java index f7a9e41ba7068..b7479da8d6836 100644 --- a/services/core/java/com/android/server/wm/AccessibilityController.java +++ b/services/core/java/com/android/server/wm/AccessibilityController.java @@ -226,8 +226,8 @@ final class AccessibilityController { Matrix outMatrix) { sTempFloats[Matrix.MSCALE_X] = windowState.mWinAnimator.mDsDx; sTempFloats[Matrix.MSKEW_Y] = windowState.mWinAnimator.mDtDx; - sTempFloats[Matrix.MSKEW_X] = windowState.mWinAnimator.mDsDy; - sTempFloats[Matrix.MSCALE_Y] = windowState.mWinAnimator.mDtDy; + sTempFloats[Matrix.MSKEW_X] = windowState.mWinAnimator.mDtDy; + sTempFloats[Matrix.MSCALE_Y] = windowState.mWinAnimator.mDsDy; sTempFloats[Matrix.MTRANS_X] = windowState.mShownPosition.x; sTempFloats[Matrix.MTRANS_Y] = windowState.mShownPosition.y; sTempFloats[Matrix.MPERSP_0] = 0; diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index c0929cb64cb97..98598e1654dc8 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -172,7 +172,7 @@ class WindowStateAnimator { private boolean mAnimateMove = false; float mDsDx=1, mDtDx=0, mDsDy=0, mDtDy=1; - float mLastDsDx=1, mLastDtDx=0, mLastDsDy=0, mLastDtDy=1; + private float mLastDsDx=1, mLastDtDx=0, mLastDsDy=0, mLastDtDy=1; boolean mHaveMatrix; @@ -945,8 +945,8 @@ class WindowStateAnimator { tmpMatrix.getValues(tmpFloats); mDsDx = tmpFloats[Matrix.MSCALE_X]; mDtDx = tmpFloats[Matrix.MSKEW_Y]; - mDsDy = tmpFloats[Matrix.MSKEW_X]; - mDtDy = tmpFloats[Matrix.MSCALE_Y]; + mDtDy = tmpFloats[Matrix.MSKEW_X]; + mDsDy = tmpFloats[Matrix.MSCALE_Y]; float x = tmpFloats[Matrix.MTRANS_X]; float y = tmpFloats[Matrix.MTRANS_Y]; mWin.mShownPosition.set(Math.round(x), Math.round(y)); @@ -959,7 +959,7 @@ class WindowStateAnimator { mShownAlpha = mAlpha; if (!mService.mLimitedAlphaCompositing || (!PixelFormat.formatHasAlpha(mWin.mAttrs.format) - || (mWin.isIdentityMatrix(mDsDx, mDtDx, mDsDy, mDtDy) + || (mWin.isIdentityMatrix(mDsDx, mDtDx, mDtDy, mDsDy) && x == frame.left && y == frame.top))) { //Slog.i(TAG_WM, "Applying alpha transform"); if (selfTransformation) { @@ -1038,8 +1038,8 @@ class WindowStateAnimator { mHaveMatrix = true; mDsDx = tmpFloats[Matrix.MSCALE_X]; mDtDx = tmpFloats[Matrix.MSKEW_Y]; - mDsDy = tmpFloats[Matrix.MSKEW_X]; - mDtDy = tmpFloats[Matrix.MSCALE_Y]; + mDtDy = tmpFloats[Matrix.MSKEW_X]; + mDsDy = tmpFloats[Matrix.MSCALE_Y]; float x = tmpFloats[Matrix.MTRANS_X]; float y = tmpFloats[Matrix.MTRANS_Y]; mWin.mShownPosition.set(Math.round(x), Math.round(y)); @@ -1054,8 +1054,8 @@ class WindowStateAnimator { mHaveMatrix = false; mDsDx = mWin.mGlobalScale; mDtDx = 0; - mDsDy = 0; - mDtDy = mWin.mGlobalScale; + mDtDy = 0; + mDsDy = mWin.mGlobalScale; } } @@ -1384,8 +1384,8 @@ class WindowStateAnimator { applyCrop(clipRect, finalClipRect, recoveringMemory); mSurfaceController.setMatrixInTransaction(mDsDx * w.mHScale * mExtraHScale, mDtDx * w.mVScale * mExtraVScale, - mDsDy * w.mHScale * mExtraHScale, - mDtDy * w.mVScale * mExtraVScale, recoveringMemory); + mDtDy * w.mHScale * mExtraHScale, + mDsDy * w.mVScale * mExtraVScale, recoveringMemory); } if (mSurfaceResized) { @@ -1467,15 +1467,15 @@ class WindowStateAnimator { "alpha=" + mShownAlpha + " layer=" + mAnimLayer + " matrix=[" + mDsDx + "*" + w.mHScale + "," + mDtDx + "*" + w.mVScale - + "][" + mDsDy + "*" + w.mHScale - + "," + mDtDy + "*" + w.mVScale + "]", false); + + "][" + mDtDy + "*" + w.mHScale + + "," + mDsDy + "*" + w.mVScale + "]", false); boolean prepared = mSurfaceController.prepareToShowInTransaction(mShownAlpha, mAnimLayer, mDsDx * w.mHScale * mExtraHScale, mDtDx * w.mVScale * mExtraVScale, - mDsDy * w.mHScale * mExtraHScale, - mDtDy * w.mVScale * mExtraVScale, + mDtDy * w.mHScale * mExtraHScale, + mDsDy * w.mVScale * mExtraVScale, recoveringMemory); if (prepared && mLastHidden && mDrawState == HAS_DRAWN) { @@ -1777,8 +1777,8 @@ class WindowStateAnimator { pw.print(prefix); pw.print("mGlobalScale="); pw.print(mWin.mGlobalScale); pw.print(" mDsDx="); pw.print(mDsDx); pw.print(" mDtDx="); pw.print(mDtDx); - pw.print(" mDsDy="); pw.print(mDsDy); - pw.print(" mDtDy="); pw.println(mDtDy); + pw.print(" mDtDy="); pw.print(mDtDy); + pw.print(" mDsDy="); pw.println(mDsDy); } if (mAnimationStartDelayed) { pw.print(prefix); pw.print("mAnimationStartDelayed="); pw.print(mAnimationStartDelayed); @@ -1926,15 +1926,15 @@ class WindowStateAnimator { float DsDx = mService.mTmpFloats[Matrix.MSCALE_X]; float DtDx = mService.mTmpFloats[Matrix.MSKEW_Y]; - float DsDy = mService.mTmpFloats[Matrix.MSKEW_X]; - float DtDy = mService.mTmpFloats[Matrix.MSCALE_Y]; + float DtDy = mService.mTmpFloats[Matrix.MSKEW_X]; + float DsDy = mService.mTmpFloats[Matrix.MSCALE_Y]; float nx = mService.mTmpFloats[Matrix.MTRANS_X]; float ny = mService.mTmpFloats[Matrix.MTRANS_Y]; mSurfaceController.setPositionInTransaction(nx, ny, false); mSurfaceController.setMatrixInTransaction(DsDx * w.mHScale, DtDx * w.mVScale, - DsDy * w.mHScale, - DtDy * w.mVScale, false); + DtDy * w.mHScale, + DsDy * w.mVScale, false); } }