diff options
| author | 2020-10-14 06:10:46 +0000 | |
|---|---|---|
| committer | 2020-10-14 06:10:46 +0000 | |
| commit | 6958abb97be761427f00124c309a25f16624635e (patch) | |
| tree | 7485e880dac81a55bd9a16686409767ddc9f66e2 | |
| parent | 4ed5b2bbeb643b20513f83dd1e4394badb9a9509 (diff) | |
| parent | b3bb920676d448e70f071d3a683b8cc0db7ebb47 (diff) | |
Merge changes from topic "scaling-mode-cleanup"
* changes:
  SurfaceControl: Remove setOverrideScalingMode
  ScreenRotationAnimation: Use Surface#setScalingMode
  WindowManager: Remove windowsAreScaleable
11 files changed, 9 insertions, 100 deletions
| diff --git a/core/java/android/app/WindowConfiguration.java b/core/java/android/app/WindowConfiguration.java index 79f05a3caa93..eedf95882294 100644 --- a/core/java/android/app/WindowConfiguration.java +++ b/core/java/android/app/WindowConfiguration.java @@ -852,15 +852,6 @@ public class WindowConfiguration implements Parcelable, Comparable<WindowConfigu      }      /** -     * Returns true if this container may be scaled without resizing, and windows within may need -     * to be configured as such. -     * @hide -     */ -    public boolean windowsAreScaleable() { -        return mWindowingMode == WINDOWING_MODE_PINNED; -    } - -    /**       * Returns true if windows in this container should be given move animations by default.       * @hide       */ diff --git a/core/java/android/view/Surface.java b/core/java/android/view/Surface.java index 5b0d950e3bd8..0847a179c553 100644 --- a/core/java/android/view/Surface.java +++ b/core/java/android/view/Surface.java @@ -739,7 +739,7 @@ public class Surface implements Parcelable {       * Set the scaling mode to be used for this surfaces buffers       * @hide       */ -    void setScalingMode(@ScalingMode int scalingMode) { +     public void setScalingMode(@ScalingMode int scalingMode) {          synchronized (mLock) {              checkNotReleasedLocked();              int err = nativeSetScalingMode(mNativeObject, scalingMode); diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java index ed9deecd7e88..566ebf3f1b3b 100644 --- a/core/java/android/view/SurfaceControl.java +++ b/core/java/android/view/SurfaceControl.java @@ -187,8 +187,6 @@ public final class SurfaceControl implements Parcelable {      private static native void nativeReparent(long transactionObj, long nativeObject,              long newParentNativeObject);      private static native void nativeSeverChildren(long transactionObj, long nativeObject); -    private static native void nativeSetOverrideScalingMode(long transactionObj, long nativeObject, -            int scalingMode);      private static native Display.HdrCapabilities nativeGetHdrCapabilities(IBinder displayToken); @@ -1521,16 +1519,6 @@ public final class SurfaceControl implements Parcelable {      /**       * @hide       */ -    public void setOverrideScalingMode(int scalingMode) { -        checkNotReleased(); -        synchronized(SurfaceControl.class) { -            sGlobalTransaction.setOverrideScalingMode(this, scalingMode); -        } -    } - -    /** -     * @hide -     */      @UnsupportedAppUsage      public void setLayer(int zorder) {          checkNotReleased(); @@ -2989,16 +2977,6 @@ public final class SurfaceControl implements Parcelable {          }          /** -         * @hide -         */ -        public Transaction setOverrideScalingMode(SurfaceControl sc, int overrideScalingMode) { -            checkPreconditions(sc); -            nativeSetOverrideScalingMode(mNativeObject, sc.mNativeObject, -                    overrideScalingMode); -            return this; -        } - -        /**           * Fills the surface with the specified color.           * @param color A float array with three values to represent r, g, b in range [0..1]. An           * invalid color will remove the color fill. diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp index 14198559ef9c..a61903dcb7c8 100644 --- a/core/jni/android_view_SurfaceControl.cpp +++ b/core/jni/android_view_SurfaceControl.cpp @@ -1360,15 +1360,6 @@ static void nativeSeverChildren(JNIEnv* env, jclass clazz, jlong transactionObj,      transaction->detachChildren(ctrl);  } -static void nativeSetOverrideScalingMode(JNIEnv* env, jclass clazz, jlong transactionObj, -        jlong nativeObject, -        jint scalingMode) { -    auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj); - -    auto ctrl = reinterpret_cast<SurfaceControl *>(nativeObject); -    transaction->setOverrideScalingMode(ctrl, scalingMode); -} -  static jobject nativeGetHdrCapabilities(JNIEnv* env, jclass clazz, jobject tokenObject) {      sp<IBinder> token(ibinderForJavaObject(env, tokenObject));      if (token == NULL) return NULL; @@ -1694,8 +1685,6 @@ static const JNINativeMethod sSurfaceControlMethods[] = {              (void*)nativeReparent },      {"nativeSeverChildren", "(JJ)V",              (void*)nativeSeverChildren } , -    {"nativeSetOverrideScalingMode", "(JJI)V", -            (void*)nativeSetOverrideScalingMode },      {"nativeCaptureDisplay",              "(Landroid/view/SurfaceControl$DisplayCaptureArgs;Landroid/view/SurfaceControl$ScreenCaptureListener;)I",              (void*)nativeCaptureDisplay }, diff --git a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java index 25732e7f0d99..7ed22a1f7777 100644 --- a/services/core/java/com/android/server/wm/ScreenRotationAnimation.java +++ b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java @@ -203,16 +203,14 @@ class ScreenRotationAnimation {                      .setCallsite("ScreenRotationAnimation")                      .build(); -            // In case display bounds change, screenshot buffer and surface may mismatch so set a -            // scaling mode. -            SurfaceControl.Transaction t2 = mService.mTransactionFactory.get(); -            t2.setOverrideScalingMode(mScreenshotLayer, Surface.SCALING_MODE_SCALE_TO_WINDOW); -            t2.apply(true /* sync */); -              // Capture a screenshot into the surface we just created.              final int displayId = displayContent.getDisplayId();              final Surface surface = mService.mSurfaceFactory.get(); +            // In case display bounds change, screenshot buffer and surface may mismatch so set a +            // scaling mode.              surface.copyFrom(mScreenshotLayer); +            surface.setScalingMode(Surface.SCALING_MODE_SCALE_TO_WINDOW); +              SurfaceControl.ScreenshotHardwareBuffer screenshotBuffer =                      mService.mDisplayManagerInternal.systemScreenshot(displayId);              if (screenshotBuffer != null) { diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 249fe031b757..0077182c46de 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -1474,14 +1474,6 @@ class Task extends WindowContainer<WindowContainer> {          // Update task bounds if needed.          adjustBoundsForDisplayChangeIfNeeded(getDisplayContent()); -        if (getWindowConfiguration().windowsAreScaleable()) { -            // We force windows out of SCALING_MODE_FREEZE so that we can continue to animate them -            // while a resize is pending. -            forceWindowsScaleable(true /* force */); -        } else { -            forceWindowsScaleable(false /* force */); -        } -          mRootWindowContainer.updateUIDsPresentOnDisplay();          // Resume next focusable stack after reparenting to another display if we aren't removing @@ -3780,17 +3772,6 @@ class Task extends WindowContainer<WindowContainer> {          positionChildAt(position, child, false /* includeParents */);      } -    void forceWindowsScaleable(boolean force) { -        mWmService.openSurfaceTransaction(); -        try { -            for (int i = mChildren.size() - 1; i >= 0; i--) { -                mChildren.get(i).forceWindowsScaleableInTransaction(force); -            } -        } finally { -            mWmService.closeSurfaceTransaction("forceWindowsScaleable"); -        } -    } -      void setTaskDescription(TaskDescription taskDescription) {          mTaskDescription = taskDescription;      } diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java index 95d86621c541..0edaa1d821df 100644 --- a/services/core/java/com/android/server/wm/WindowContainer.java +++ b/services/core/java/com/android/server/wm/WindowContainer.java @@ -861,13 +861,6 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<          }      } -    void forceWindowsScaleableInTransaction(boolean force) { -        for (int i = mChildren.size() - 1; i >= 0; --i) { -            final WindowContainer wc = mChildren.get(i); -            wc.forceWindowsScaleableInTransaction(force); -        } -    } -      /**       * @return {@code true} when an application can override an app transition animation on this       * container. diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 0b53bf6ca8f6..3b79241a3c3e 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -2172,16 +2172,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP          }      } -    @Override -    void forceWindowsScaleableInTransaction(boolean force) { -        if (mWinAnimator != null && mWinAnimator.hasSurface()) { -            mWinAnimator.mSurfaceController.forceScaleableInTransaction(force); -        } - -        super.forceWindowsScaleableInTransaction(force); -    } - -    @Override +  @Override      void removeImmediately() {          super.removeImmediately(); diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index f3429769893f..6349e6d36ae1 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -971,10 +971,6 @@ class WindowStateAnimator {       * @return Returns true if the surface was successfully shown.       */      private boolean showSurfaceRobustlyLocked() { -        if (mWin.getWindowConfiguration().windowsAreScaleable()) { -            mSurfaceController.forceScaleableInTransaction(true); -        } -          boolean shown = mSurfaceController.showRobustlyInTransaction();          if (!shown)              return false; diff --git a/services/core/java/com/android/server/wm/WindowSurfaceController.java b/services/core/java/com/android/server/wm/WindowSurfaceController.java index cbe0a4232c97..d2c36e2bf347 100644 --- a/services/core/java/com/android/server/wm/WindowSurfaceController.java +++ b/services/core/java/com/android/server/wm/WindowSurfaceController.java @@ -342,11 +342,9 @@ class WindowSurfaceController {          return false;      } -    void forceScaleableInTransaction(boolean force) { -        // -1 means we don't override the default or client specified -        // scaling mode. -        int scalingMode = force ? SCALING_MODE_SCALE_TO_WINDOW : -1; -        mSurfaceControl.setOverrideScalingMode(scalingMode); +    void deferTransactionUntil(SurfaceControl barrier, long frame) { +        // TODO: Logging +        mSurfaceControl.deferTransactionUntil(barrier, frame);      }      boolean clearWindowContentFrameStats() { diff --git a/services/tests/wmtests/src/com/android/server/wm/StubTransaction.java b/services/tests/wmtests/src/com/android/server/wm/StubTransaction.java index d0a5644f5025..ecbfac8b091b 100644 --- a/services/tests/wmtests/src/com/android/server/wm/StubTransaction.java +++ b/services/tests/wmtests/src/com/android/server/wm/StubTransaction.java @@ -163,12 +163,6 @@ public class StubTransaction extends SurfaceControl.Transaction {      }      @Override -    public SurfaceControl.Transaction setOverrideScalingMode(SurfaceControl sc, -            int overrideScalingMode) { -        return this; -    } - -    @Override      public SurfaceControl.Transaction setColor(SurfaceControl sc, float[] color) {          return this;      } |