History log of /frameworks/base/libs/hwui/ClipArea.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
bf27b995ae1bc36ee0b24effcaf41ec477e7fae3 14-Apr-2016 Chris Craik <ccraik@google.com> Avoid reentrance on ClipArea APIs


Calling ClipArea::clipRegion from within ClipArea::clipPathWithTransform
has us handling op-based special casing twice, which caused all clip
paths to appear to be replace ops.

Change-Id: Ib842db53ffed4eee29470f773d59a3a1d07a1a0e
04d46eb69fb4f4c4c332c36c6ae845da3b2ae848 07-Apr-2016 Chris Craik <ccraik@google.com> Support replace op in new pipeline


Change-Id: Ie48d2da30f5e9d9abe88a5cd973dfb26e38abf63
02806288d1c56475413888a934c796e6e4eb11c5 12-Mar-2016 Chris Craik <ccraik@google.com> Fix flickering when layers resize in-place

Change-Id: Ia11c93ebc1097f3735071204b6f14ca079bb9fc4
69aeabe6184bbbe6e731656205ffbef78b7b0f3f 03-Mar-2016 Chris Craik <ccraik@google.com> Fix clip rect snapping at non-integer scale values


Also removes several reinterprets to ClipRect, since Rect member is in
base class.

Change-Id: If46dbdcea05b1257af185ccb38058735ebe81f79
261725fdb2962271c222a049fcdf57bbdc8363c7 29-Feb-2016 Chris Craik <ccraik@google.com> Fix matrix mapping of negative rects


Also rejects ops with empty clip at record time, and short circuits clip
intersection, when one is empty.

Change-Id: I842612da14ad8fd9f1ba5e9e4fd027ba4e08d365
4f4c60820995bad73d87c2fff4b5c5b1c6b5e027 10-Feb-2016 Chris Craik <ccraik@google.com> Fix build

Change-Id: I24d82c44db9d9e04098a0d7cb9289d6b9fc19e41
b4f4f3e16d8fbb2905dfc168383213161e988f83 09-Feb-2016 Chris Craik <ccraik@google.com> Calculate clip bounds correctly when serializing


Change-Id: Ic70769bce6fa2a7b65cb893ba4a45c65fdc0b7e3
7fc1b0349bc2ac8c880120dc5611f703faa7f06f 04-Feb-2016 Chris Craik <ccraik@google.com> Fix ripple clipping + quick rejection


Don't intersect the first clip with the viewport. Instead, the first
clip op should always be a replace op.

Additionally, only quick reject nodes that clip to bounds, since some
nodes (like ripples) draw outside their own bounds.

Change-Id: I96a52029f360328aba19af7349888cc0a026b5b1
e4db79de127cfe961195f52907af8451026eaa20 23-Dec-2015 Chris Craik <ccraik@google.com> Stencil support in new recorder/reorderer


Adds complex (non-rectangular) clipping support, and overdraw
visualization. Doesn't support stencil clipping in layers.

Change-Id: I8d10c7f1d2769ab5756774ca672344cc09901f87
a2a70723b8cbda4354d23f901f995623e819012c 17-Dec-2015 Chris Craik <ccraik@google.com> Simplify ClipArea to prefer Rect args

Change-Id: I8af83d01dc5dd8009a0cd235dd8b59dab61d8560
15c3f19a445b8df575911a16e8a6dba755a084b5 03-Dec-2015 Chris Craik <ccraik@google.com> Merged op dispatch in OpReorderer


Also switches std::functions to function pointers on OpReorderer, and
switches AssetAtlas' entry getter methods to using pixelRef pointers,
so it's clear they're the keys.

Change-Id: I3040ce5ff4e178a8364e0fd7ab0876ada7d4de05
ac02eb9035a13a3d09c2def9ed63d04225eb2509 05-Oct-2015 Chris Craik <ccraik@google.com> Remove confusing behavior of Rect::intersect() and rename


Removes silly 'do nothing if rects do not intersect' behavior, and
changes the name to clarify the difference (contrasting against


Change-Id: Id2ca1cfea1a9d720d4dc70b251f426d9916f8b53
4d3e704b04c6abd7995df640d12662b0271f6c7b 20-Aug-2015 Chris Craik <ccraik@google.com> Remove return values from clipping operations


Also switch mode to enum class

Change-Id: Iabb38634c01f2e3203b1b715967d8828d95da190
8ce8f3f4d68a7750bc02b5254ebbd8658281e675 16-Jul-2015 Chris Craik <ccraik@google.com> Fix clip area behavior for REPLACE op


Work around clippath-clipped-to-view-bounds behavior by
implementing REPLACE op fast path, avoiding the transition to

Change-Id: I63c1cf961db2d6e3759d83914de1036c9ac7497a
e30b53cec5eb6eaa5d24231feb3207b917c1baab 30-Mar-2015 Tom Hudson <tomhudson@google.com> Enter RectangleMode when the clip region is a rectangle

ClipArea's region mode implementation store the region's boundary in
a rectangle, and if the region is that rectangle, set its region to
empty. This is a bug, since as long as the ClipArea is in region
mode it treats its region as determinitive. When the next clipping
operation comes in, it is tested against the empty region instead of
against the valid rect.

Discovered via Skia GM testing.

Change-Id: I3bbc4e81c8d68636061f830156e017e9b5c7e587
487a92caef2eb90a62e8f8d7a6fe6315f1c1d8d8 06-Jan-2015 Rob Tsuk <robtsuk@google.com> Clipping performance improvements

Create a ClipArea class to handle tracking clip regions. This class can
select the most efficient implementation depending on the types of
clipping presented.

ClipArea re-used the rectangle and region-based clipping
implementations as well as adding a "list of rotated rectangles"
approach that is more efficient for rotated views with children.

Change-Id: I2133761a2462ebc0852b394220e265974b3086f0