Fix shadow corner radius during PIP size change

Bug: 187441996
Test: manual
Test: go/wm-smoke
Test: libcompositionengine_test
Test: TODO

The now-deleted code was intended to remove rounding when part of the
content is offscreen, but it removes rounding on corners that are
entirely on screen. Remove the code, which fixes a bug seen when
expanding a PIP. If the content is partially offscreen, our drawing code
will handle this correctly.

In addition, if the bounds is an SkRect and there is a roundRectClip,
draw the rounded version.

Change-Id: I6ee07321c04474f96a572015f301e01441ca5afc
diff --git a/libs/renderengine/skia/SkiaGLRenderEngine.cpp b/libs/renderengine/skia/SkiaGLRenderEngine.cpp
index 6d2af4a..95b503f 100644
--- a/libs/renderengine/skia/SkiaGLRenderEngine.cpp
+++ b/libs/renderengine/skia/SkiaGLRenderEngine.cpp
@@ -898,7 +898,16 @@
         if (layer->shadow.length > 0) {
             // This would require a new parameter/flag to SkShadowUtils::DrawShadow
             LOG_ALWAYS_FATAL_IF(layer->disableBlending, "Cannot disableBlending with a shadow");
-            drawShadow(canvas, bounds, layer->shadow);
+
+            // Technically, if bounds is a rect and roundRectClip is not empty,
+            // it means that the bounds and roundedCornersCrop were different
+            // enough that we should intersect them to find the proper shadow.
+            // In practice, this often happens when the two rectangles appear to
+            // not match due to rounding errors. Draw the rounded version, which
+            // looks more like the intent.
+            const auto& rrect =
+                    bounds.isRect() && !roundRectClip.isEmpty() ? roundRectClip : bounds;
+            drawShadow(canvas, rrect, layer->shadow);
             continue;
         }