Revert "[RoundedCorner] Use the correct source bounds and crop."
This reverts commit 7956695e126b4e3b643a3726bbfc65b2cb5fced1.
Reason for revert: Results in weird crop issues.
Below is the original commit message:
Previously we call getBounds to calculate the rounded corner, but that's wrong.
For an app layer, what we really need is the source bounds of the layer, and
the actual crop with transformation but without any parent bounds and display
bounds. However, only the root view has the correct crop information. And thus
this patch passes the correct bounds up to the root, and use the crop from the
root to calculate the rounded corner bounds.
Change-Id: I5319614ba74ee2877fe382575f2e7f9da418d585
BUG: 125916918
Test: Build, flash and boot. Verify with window transition.
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index a1150a7..16e69b9 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -1768,13 +1768,9 @@
}
Layer::RoundedCornerState Layer::getRoundedCornerState() const {
- return getRoundedCornerStateInternal(mSourceBounds);
-}
-
-Layer::RoundedCornerState Layer::getRoundedCornerStateInternal(const FloatRect bounds) const {
const auto& p = mDrawingParent.promote();
if (p != nullptr) {
- RoundedCornerState parentState = p->getRoundedCornerStateInternal(bounds);
+ RoundedCornerState parentState = p->getRoundedCornerState();
if (parentState.radius > 0) {
ui::Transform t = getActiveTransform(getDrawingState());
t = t.inverse();
@@ -1788,9 +1784,7 @@
}
}
const float radius = getDrawingState().cornerRadius;
- return radius > 0
- ? RoundedCornerState(bounds.intersect(getCrop(getDrawingState()).toFloatRect()), radius)
- : RoundedCornerState();
+ return radius > 0 ? RoundedCornerState(getBounds(), radius) : RoundedCornerState();
}
void Layer::commitChildList() {