History log of /frameworks/native/include/ui/Rect.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
80d611613ef1a9c05a31cd3f47badfd4de9b1418 21-Dec-2017 Dan Stoza <stoza@google.com> SF: Switch computeBounds to return FloatRect

Switches Layer::computeBounds to return a FloatRect instead of a Rect.

During the computation of the bounds, we apply the layer transformation
to its nominal dimensions, clip it against its bounds (which are either
its parents bounds or the screen bounds), and apply the inverse of the
layer transformation.

Previously, the intermediate position (after transformation/clip, but
before inverse transformation) was stored as Rect, which is to say that
it was truncated to integer coordinates. After applying the inverse
transformation, this loss of precision can cause glitches where a layer
that should be clipped against, e.g., the side of the screen no longer
creates a watertight seal against that side.

In order to fix this, we now store the intermediate value as a FloatRect
and propagate float precision back through computeBounds. The callers of
computeBounds tend to then immediately apply the transform again, at
which point it is safe to round back to integer.

Bug: 64070729
Bug: 66431327
Bug: 69935057
Test: Modified android.view.cts.SurfaceViewSyncTest#
testSurfaceViewBigScale no longer produces bogus display frames
Change-Id: If5987ca4ad76657f9670a5f59258f896180352e2
/frameworks/native/libs/ui/include/ui/Rect.h
abf347cca84ffda2452fb86acd58d07051b328a6 13-Dec-2017 Ivan Lozano <ivanlozano@google.com> Fix libui Region::validate() overflow aborts.

This disables the signed integer overflow sanitizer in getWidth,
getHeight, and getBounds. The overflows in these are expected and
benign. Disabling this should fix the aborts we were seeing in
Region::validate(). These functions are inline, so they don't show
up in the stack trace.

Bug: 69963030
Test: Compiles.
Change-Id: I85b43c166339e6c210f7d8f18d1661746efeada7
/frameworks/native/libs/ui/include/ui/Rect.h
e7ec834312579b009c02e5e42012dd465a5779be 22-May-2017 Jiyong Park <jiyong@google.com> Headers of libui is moved to the local directory

This makes clients of libui to be compiled without depending on global
headers.

Bug: 37731063
Test: sailfish build and boots
Test: 'BOARD_VNDK_VERSION=current m libui' successful
Change-Id: I6546f57964f2103bf3534fb8266fee4fb7d4678a
/frameworks/native/libs/ui/include/ui/Rect.h