diff options
| author | Nader Jawad <njawad@google.com> | 2021-03-29 18:51:29 -0700 |
|---|---|---|
| committer | Nader Jawad <njawad@google.com> | 2021-04-06 22:03:00 -0700 |
| commit | 2dc632aee35ff3ae39c23baea8d080583b5bfe1e (patch) | |
| tree | 2f6d91f0603f1186ab879e07752ff1acda03a796 /core/java/android | |
| parent | 4563f9dfb59c74315fce5862850f971924b03ab0 (diff) | |
Holepunch layers for SurfaceView
Update RenderNodeDrawable to hole punch areas into
layers created for SurfaceView
Bug: 184297961
Test: Added CTS test to SurfaceViewTests
Change-Id: I1f03a4fe34c5a8b7411ebe728ea3d4195fcd1fac
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/view/SurfaceView.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index 82106b09ca5c..2b96a14b04d4 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -33,7 +33,6 @@ import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PixelFormat; -import android.graphics.PorterDuff; import android.graphics.Rect; import android.graphics.Region; import android.graphics.RenderNode; @@ -670,10 +669,16 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall if (mClipSurfaceToBounds && mClipBounds != null) { mTmpRect.intersect(mClipBounds); } - canvas.drawRoundRect(mTmpRect.left, mTmpRect.top, mTmpRect.right, mTmpRect.bottom, - mCornerRadius, mCornerRadius, mRoundedViewportPaint); + canvas.punchHole( + mTmpRect.left, + mTmpRect.top, + mTmpRect.right, + mTmpRect.bottom, + mCornerRadius, + mCornerRadius + ); } else { - canvas.drawColor(0, PorterDuff.Mode.CLEAR); + canvas.punchHole(0f, 0f, getWidth(), getHeight(), 0f, 0f); } } |
