diff options
| author | Chavi Weingarten <chaviw@google.com> | 2019-01-30 01:12:39 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-01-30 01:12:39 +0000 |
| commit | e82defc28e98fd092aa49d04e512824d9e39d94a (patch) | |
| tree | 00a626fa8593a9b1e6655bff5fce609f4f847920 /core/java/android | |
| parent | 664d97958770254b6277db768c92efd297da3b8e (diff) | |
| parent | 139c77763bbba26d30993589a43aa987a0ba4ef0 (diff) | |
Merge "Make WindowContainer surfaces container layers by default."
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/app/ActivityView.java | 2 | ||||
| -rw-r--r-- | core/java/android/view/SurfaceControl.java | 40 | ||||
| -rw-r--r-- | core/java/android/view/SurfaceView.java | 3 |
3 files changed, 24 insertions, 21 deletions
diff --git a/core/java/android/app/ActivityView.java b/core/java/android/app/ActivityView.java index 47398674d74c..ce5d8a5cfeb2 100644 --- a/core/java/android/app/ActivityView.java +++ b/core/java/android/app/ActivityView.java @@ -400,7 +400,7 @@ public class ActivityView extends ViewGroup { final IWindowManager wm = WindowManagerGlobal.getWindowManagerService(); mRootSurfaceControl = new SurfaceControl.Builder(surfaceSession) - .setContainerLayer(true) + .setContainerLayer() .setParent(mSurfaceView.getSurfaceControl()) .setName(DISPLAY_NAME) .build(); diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java index 4032a6b84801..2956606a26dd 100644 --- a/core/java/android/view/SurfaceControl.java +++ b/core/java/android/view/SurfaceControl.java @@ -501,7 +501,16 @@ public final class SurfaceControl implements Parcelable { } mWidth = width; mHeight = height; - return this; + // set this as a buffer layer since we are specifying a buffer size. + return setFlags(FX_SURFACE_NORMAL, FX_SURFACE_MASK); + } + + /** + * Set the initial size of the controlled surface's buffers in pixels. + */ + private void unsetBufferSize() { + mWidth = 0; + mHeight = 0; } /** @@ -619,16 +628,11 @@ public final class SurfaceControl implements Parcelable { * Color layers will not have an associated BufferQueue and will instead always render a * solid color (that is, solid before plane alpha). Currently that color is black. * - * @param isColorLayer Whether to create a color layer. * @hide */ - public Builder setColorLayer(boolean isColorLayer) { - if (isColorLayer) { - mFlags |= FX_SURFACE_DIM; - } else { - mFlags &= ~FX_SURFACE_DIM; - } - return this; + public Builder setColorLayer() { + unsetBufferSize(); + return setFlags(FX_SURFACE_DIM, FX_SURFACE_MASK); } private boolean isColorLayerSet() { @@ -641,16 +645,11 @@ public final class SurfaceControl implements Parcelable { * Container layers will not be rendered in any fashion and instead are used * as a parent of renderable layers. * - * @param isContainerLayer Whether to create a container layer. * @hide */ - public Builder setContainerLayer(boolean isContainerLayer) { - if (isContainerLayer) { - mFlags |= FX_SURFACE_CONTAINER; - } else { - mFlags &= ~FX_SURFACE_CONTAINER; - } - return this; + public Builder setContainerLayer() { + unsetBufferSize(); + return setFlags(FX_SURFACE_CONTAINER, FX_SURFACE_MASK); } private boolean isContainerLayerSet() { @@ -658,7 +657,7 @@ public final class SurfaceControl implements Parcelable { } /** - * Set 'Surface creation flags' such as {@link HIDDEN}, {@link SECURE}. + * Set 'Surface creation flags' such as {@link #HIDDEN}, {@link #SECURE}. * * TODO: Finish conversion to individual builder methods? * @param flags The combined flags @@ -668,6 +667,11 @@ public final class SurfaceControl implements Parcelable { mFlags = flags; return this; } + + private Builder setFlags(int flags, int mask) { + mFlags = (mFlags & ~mask) | flags; + return this; + } } /** diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index ecbec652fcf0..ecb2ac4ba241 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -33,7 +33,6 @@ import android.graphics.Region; import android.graphics.RenderNode; import android.os.Build; import android.os.Handler; -import android.os.IBinder; import android.os.Looper; import android.os.SystemClock; import android.util.AttributeSet; @@ -588,7 +587,7 @@ public class SurfaceView extends View implements ViewRootImpl.WindowStoppedCallb mBackgroundControl = new SurfaceControl.Builder(mSurfaceSession) .setName("Background for -" + name) .setOpaque(true) - .setColorLayer(true) + .setColorLayer() .setParent(mSurfaceControl) .build(); |
