OSDN Git Service

Re-implement Z-ordering based off SurfaceControl hierarchy.
authorRobert Carr <racarr@google.com>
Tue, 5 Sep 2017 21:54:47 +0000 (14:54 -0700)
committerRobert Carr <racarr@google.com>
Mon, 20 Nov 2017 17:14:12 +0000 (09:14 -0800)
commitb1579c8d898811010b60eab4e996f3d071980155
tree1e858c4b0da86a350f2c2ebf873aa22744330146
parent28306600e6769ce708897d2a2c6b852228e2a9de
Re-implement Z-ordering based off SurfaceControl hierarchy.

First steps in using the SurfaceControl hierarchy pervasively through
the WindowManager. For each level of the WindowContainer hierarchy
we instantiate a buffer-less SurfaceControl which is used to apply
constraints to all of it's children. For now we use full-screen surfaces
at every non-leaf level and so the only constraint we apply is Z-ordering.

Calculation of Z-ordering is done through the WindowContainer#assignLayers
pass and begins with DisplayContent. Changes are accumulated in-to a pending
transaction which is applied as part of prepareSurfaces (which now applies
to each level of the WindowContainer hierarchy rather than just windows).

Bug: 64815723
Test: Existing tests pass. go/wm-smoke. ZOrderTests.
Change-Id: Ib31bc3107c7fa398cf2ed72430fcb7596fad6fd5
39 files changed:
core/java/android/view/SurfaceControl.java
core/java/android/view/WindowManagerPolicy.java
core/jni/android_view_SurfaceControl.cpp
services/core/java/com/android/server/policy/PhoneWindowManager.java
services/core/java/com/android/server/wm/AccessibilityController.java
services/core/java/com/android/server/wm/AppWindowAnimator.java
services/core/java/com/android/server/wm/BlackFrame.java
services/core/java/com/android/server/wm/CircularDisplayMask.java
services/core/java/com/android/server/wm/ConfigurationContainer.java
services/core/java/com/android/server/wm/DimLayer.java
services/core/java/com/android/server/wm/DimLayerController.java
services/core/java/com/android/server/wm/DisplayContent.java
services/core/java/com/android/server/wm/DockedStackDividerController.java
services/core/java/com/android/server/wm/EmulatorDisplayOverlay.java
services/core/java/com/android/server/wm/RootWindowContainer.java
services/core/java/com/android/server/wm/ScreenRotationAnimation.java
services/core/java/com/android/server/wm/StrictModeFlash.java
services/core/java/com/android/server/wm/SurfaceBuilderFactory.java [new file with mode: 0644]
services/core/java/com/android/server/wm/Task.java
services/core/java/com/android/server/wm/TaskPositioner.java
services/core/java/com/android/server/wm/TaskStack.java
services/core/java/com/android/server/wm/Watermark.java
services/core/java/com/android/server/wm/WindowAnimator.java
services/core/java/com/android/server/wm/WindowContainer.java
services/core/java/com/android/server/wm/WindowLayersController.java [deleted file]
services/core/java/com/android/server/wm/WindowManagerService.java
services/core/java/com/android/server/wm/WindowState.java
services/core/java/com/android/server/wm/WindowStateAnimator.java
services/core/java/com/android/server/wm/WindowSurfaceController.java
services/core/java/com/android/server/wm/WindowSurfacePlacer.java
services/tests/servicestests/AndroidManifest.xml
services/tests/servicestests/src/com/android/server/wm/AppWindowContainerControllerTests.java
services/tests/servicestests/src/com/android/server/wm/AppWindowTokenTests.java
services/tests/servicestests/src/com/android/server/wm/TaskPositionerTests.java
services/tests/servicestests/src/com/android/server/wm/TestWindowManagerPolicy.java
services/tests/servicestests/src/com/android/server/wm/WindowLayersControllerTests.java [deleted file]
services/tests/servicestests/src/com/android/server/wm/WindowTestsBase.java
services/tests/servicestests/src/com/android/server/wm/WindowTokenTests.java
services/tests/servicestests/src/com/android/server/wm/ZOrderingTests.java [new file with mode: 0644]