From 034a10bf216cdef251928edf72d93668d81515f8 Mon Sep 17 00:00:00 2001 From: Chris Craik Date: Wed, 9 Mar 2016 16:03:21 -0800 Subject: Partial revert of 261725fdb2962271c222a049fcdf57bbdc8363c7 Bug:27534946 Mapping empty rects still must be done to get correct positions for line/point rects describing strokable bounds. Change-Id: I2f9efe543e58eb438b755276585491c1256d6719 --- libs/hwui/Matrix.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'libs/hwui/Matrix.cpp') diff --git a/libs/hwui/Matrix.cpp b/libs/hwui/Matrix.cpp index deab95690d0e..709156c4098b 100644 --- a/libs/hwui/Matrix.cpp +++ b/libs/hwui/Matrix.cpp @@ -437,8 +437,16 @@ void Matrix4::mapPoint(float& x, float& y) const { y = dy * dz; } +/** + * Set the contents of the rect to be the bounding rect around each of the corners, mapped by the + * matrix. + * + * NOTE: an empty rect to an arbitrary matrix isn't guaranteed to have an empty output, since that's + * important for conservative bounds estimation (e.g. rotate45Matrix.mapRect of Rect(0, 10) should + * result in non-empty. + */ void Matrix4::mapRect(Rect& r) const { - if (isIdentity() || r.isEmpty()) return; + if (isIdentity()) return; if (isSimple()) { MUL_ADD_STORE(r.left, data[kScaleX], data[kTranslateX]); -- cgit v1.2.3-59-g8ed1b