From 2dc632aee35ff3ae39c23baea8d080583b5bfe1e Mon Sep 17 00:00:00 2001 From: Nader Jawad Date: Mon, 29 Mar 2021 18:51:29 -0700 Subject: 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 --- core/java/android/view/SurfaceView.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'core/java/android/view/SurfaceView.java') 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); } } -- cgit v1.2.3