summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorNader Jawad <njawad@google.com>2021-03-29 18:51:29 -0700
committerNader Jawad <njawad@google.com>2021-04-06 22:03:00 -0700
commit2dc632aee35ff3ae39c23baea8d080583b5bfe1e (patch)
tree2f6d91f0603f1186ab879e07752ff1acda03a796 /core/java/android
parent4563f9dfb59c74315fce5862850f971924b03ab0 (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.java13
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);
}
}