diff options
| author | 2023-11-13 14:24:35 -0500 | |
|---|---|---|
| committer | 2023-11-13 14:38:45 -0500 | |
| commit | 8505f344ee40c04b55ed129afc58c657a98b2616 (patch) | |
| tree | d05a0bdc954b0eb480d9ae68c2ad239e76e451c0 | |
| parent | c64add5fbce5a1211b77d0cc7cc2e3969f402f03 (diff) | |
Fix clip calculation for disabled clip bounds
Fixes: 309635621
Test: atest android.uirendering.cts.testclasses.SurfaceViewTests
Change-Id: Ie38c491c5a87f19b5352774164187e713bdf5849
| -rw-r--r-- | libs/hwui/jni/android_graphics_RenderNode.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libs/hwui/jni/android_graphics_RenderNode.cpp b/libs/hwui/jni/android_graphics_RenderNode.cpp index a1b05c186ec0..a7d64231da80 100644 --- a/libs/hwui/jni/android_graphics_RenderNode.cpp +++ b/libs/hwui/jni/android_graphics_RenderNode.cpp @@ -597,7 +597,13 @@ static void android_view_RenderNode_requestPositionUpdates(JNIEnv* env, jobject, SkIRect clipBounds; if (enableClip) { uirenderer::Rect initialClipBounds; - props.getClippingRectForFlags(props.getClippingFlags(), &initialClipBounds); + const auto clipFlags = props.getClippingFlags(); + if (clipFlags) { + props.getClippingRectForFlags(clipFlags, &initialClipBounds); + } else { + // Works for RenderNode::damageSelf() + initialClipBounds.set(DIRTY_MIN, DIRTY_MIN, DIRTY_MAX, DIRTY_MAX); + } clipBounds = info.damageAccumulator ->computeClipAndTransform(initialClipBounds.toSkRect(), &transform) |