summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Peiyong Lin <lpy@google.com> 2019-03-29 17:36:08 +0000
committer Peiyong Lin <lpy@google.com> 2019-03-29 17:36:08 +0000
commit27016a9fdc8c0ef154286bed8ad9c2b205ef1f55 (patch)
tree8464b79e5c0a365aa6125d7c6d344c14a0dcc812
parent7956695e126b4e3b643a3726bbfc65b2cb5fced1 (diff)
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.
-rw-r--r--services/surfaceflinger/Layer.cpp10
-rw-r--r--services/surfaceflinger/Layer.h2
2 files changed, 2 insertions, 10 deletions
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index a1150a78e4..16e69b9b26 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -1768,13 +1768,9 @@ half4 Layer::getColor() const {
}
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 @@ Layer::RoundedCornerState Layer::getRoundedCornerStateInternal(const FloatRect b
}
}
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() {
diff --git a/services/surfaceflinger/Layer.h b/services/surfaceflinger/Layer.h
index 4f7da5d820..aba3ff2ff3 100644
--- a/services/surfaceflinger/Layer.h
+++ b/services/surfaceflinger/Layer.h
@@ -901,8 +901,6 @@ private:
*/
Rect getCroppedBufferSize(const Layer::State& s) const;
- RoundedCornerState getRoundedCornerStateInternal(const FloatRect bounds) const;
-
// Cached properties computed from drawing state
// Effective transform taking into account parent transforms and any parent scaling.
ui::Transform mEffectiveTransform;