diff options
| author | Robert Carr <racarr@google.com> | 2021-02-08 13:18:30 -0800 |
|---|---|---|
| committer | Robert Carr <racarr@google.com> | 2021-02-08 13:18:30 -0800 |
| commit | 4fa6a5f413bbfa5d948d69d70c11f4a376d9ce63 (patch) | |
| tree | 91fbe7557539c8c7212d10222a7c19a53d2af6fb /core/java/android/view/ViewRootImpl.java | |
| parent | b610667bfd88681a2c089150315f8e4eedd3691e (diff) | |
WindowManagerService: Handle transparent region on client
Since the client owns its own SurfaceControl now, there is no
need to call through to the WM just to set transparent regions.
Bug: 161937501
Test: Existing tests pass
Change-Id: I1767090bc60be72b86879ae806876d49bfa0e06c
Diffstat (limited to 'core/java/android/view/ViewRootImpl.java')
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 036a703f178c..8fd897c1c7ee 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -3063,11 +3063,14 @@ public final class ViewRootImpl implements ViewParent, if (!mTransparentRegion.equals(mPreviousTransparentRegion)) { mPreviousTransparentRegion.set(mTransparentRegion); mFullRedrawNeeded = true; - // reconfigure window manager - try { - mWindowSession.setTransparentRegion(mWindow, mTransparentRegion); - } catch (RemoteException e) { - } + // TODO: Ideally we would do this in prepareSurfaces, + // but prepareSurfaces is currently working under + // the assumption that we paused the render thread + // via the WM relayout code path. We probably eventually + // want to synchronize transparent region hint changes + // with draws. + mTransaction.setTransparentRegionHint(getSurfaceControl(), + mTransparentRegion).apply(); } } |
