Commit Graph

505 Commits

Author SHA1 Message Date
Robert O'Callahan
29d310bf8a Bug 841192. Part 14: Convert all usage of nsDisplayClip(RoundedRect) to use DisplayListClipState/DisplayItemClip. r=mattwoodrow
This patch does several things. Sorry.

In BuildDisplayList implementations, instead of wrapping display items in nsDisplayClip, we
push clip state onto the nsDisplayListBuilder and give the display items an
explicit clip when they're created.

In FrameLayerBuilder, we use the explicit clips we find on display items instead of
computing our own.

We remove nsDisplayClip and everything that depends on it.

We remove ExplodeAnonymousChildLists. With nsDisplayClip gone, and
nsDisplayOptionEventGrabber removed in a previous patch, there are no
anonymous child lists.

nsDisplayItem::TryMerge implementations need to make sure they have the same
clip before being merged.

I ripped out the part of PruneDisplayListForExtraPage that adjusts clip rects.
As far as I can tell, it isn't actually necessary.
2013-03-04 22:56:02 +13:00
Robert O'Callahan
c3bccb99ff Bug 841192. Part 3: Make DisplayItemClip members private and encapsulate them in a real API. r=mattwoodrow 2013-03-04 22:56:00 +13:00
Robert O'Callahan
25d81298ca Bug 841192. Part 2: Move FrameLayerBuilder::Clip to DisplayItemClip. r=mattwoodrow 2013-03-04 22:55:59 +13:00
Nicholas Cameron
c8a825d8a2 Bug 856272; don't round our mask size too early so we get a proper transform for small surfaces. r=roc 2013-04-05 16:16:38 +13:00
Matt Brubeck
43597324cf Back out 795e9ec338a7 (bug 856272) because of test failures 2013-04-04 17:40:16 -07:00
Nicholas Cameron
957e02007d Bug 856272; don't round our mask size too early so we get a proper transform for small surfaces. r=roc 2013-04-05 12:42:14 +13:00
Matt Woodrow
3e44dd2e18 Bug 855233 - Recreate mask layers if the ContainerParameters offset changes. r=nrc 2013-04-04 15:59:24 +13:00
Robert O'Callahan
cc4bab438d Bug 852489. Part 9: Avoid temporarily setting a layer's visible region to a non-final value. r=mattwoodrow
We currently set the visible region on most container layers twice: once in
BuildContainerLayerFor, where we don't take clipping from ancestors into
account, and then later ProcessDisplayItems calls RestrictVisibleRegionForLayer
which does take ancestor clipping into account. This causes unnecessary
Mutated()s.

In this patch we partially fix this by forcing transform layers to take
account of their ancestor clipping when they set the visible region in
BuildContainerLayerFor. For those layers we don't need to apply
ancestor clipping in ProcessDisplayItems. This is done in a rather
ugly way, by passing the ancestor clip rect as an extra field of
ContainerParameters. To preserve the optimization that prerendered
elements are treated as fully visible regardless of ancestor clipping,
we have to add a flag to turn that clipping off in BuildContainerLayerFor.

In bug 841192 we will be able to fix this in a much nicer way, because we can
get the ancestor clip directly off the nsDisplayItem passed to
BuildContainerLayerFor. But this approach is needed for the B2G18 branch.
2013-03-22 15:17:29 +13:00
Robert O'Callahan
6d813609a0 Bug 852489. Part 6: Don't temporarily reset clip when recycling Thebes/Image/ColorLayers. r=mattwoodrow 2013-03-22 15:17:29 +13:00
Robert O'Callahan
de4268f10b Bug 852489. Part 5: Don't temporarily reset clip rect when reusing an existing layer. r=mattwodrow 2013-03-22 15:17:29 +13:00
Robert O'Callahan
cf1577ce09 Bug 852489. Part 4: Don't call RepositionChild if the layer is already in the right position. r=mattwoodrow 2013-03-22 15:17:29 +13:00
Benoit Girard
f4b3710284 Bug 851611 - Part 3: Rename headers. r=jrmuizel 2013-03-18 15:25:50 +01:00
Benoit Girard
4146042cfd Bug 851611 - Part 2: Update profiler calls. r=jrmuizel 2013-03-16 00:47:02 -04:00
Matt Woodrow
686caae4a2 Bug 822086 - Don't build ContainerLayers that would have a singular matrix. r=roc 2013-03-21 15:33:00 +13:00
Robert O'Callahan
d38fd349ae Bug 846901 - Support prerendering elements with animated transforms that are offscreen but only by a small amount. r=mattwoodrow 2013-03-19 09:08:29 -04:00
Ed Morley
7f3e7b6853 Backed out changeset e8ffcf4b8e22 (bug 846901) 2013-03-19 14:15:07 +00:00
Robert O'Callahan
ef08683fba Bug 846901 - Support prerendering elements with animated transforms that are offscreen but only by a small amount. r=mattwoodrow 2013-03-19 09:08:29 -04:00
Ed Morley
90c9bf415e Backed out changeset c75481a07302 (bug 851611) 2013-03-18 14:10:35 +00:00
Ed Morley
627fcd7895 Backed out changeset d195190adc48 (bug 851611) 2013-03-18 14:10:30 +00:00
Benoit Girard
0b880319f3 Bug 851611 - Part 3: Rename headers. r=jrmuizel 2013-03-18 14:41:02 +01:00
Benoit Girard
6d0dfa5b89 Bug 851611 - Part 2: Update profiler calls. r=jrmuizel 2013-03-16 00:47:02 -04:00
Paul Rouget
9f7c01ee65 Bug 847890 - paint flashing for content only. r=roc 2013-03-12 11:01:00 -07:00
Ed Morley
ab35c1988c Backed out changeset eaf182f23c3a (bug 847890) for failures in test_bug847890_paintFlashing.html on a CLOSED TREE 2013-03-13 10:06:34 +00:00
Paul Rouget
62cdd0c630 Bug 847890 - paint flashing for content only. r=roc 2013-03-12 11:01:00 -07:00
Matt Woodrow
70e350120c Bug 846971 - Don't create layers that are scaled to 0. r=roc 2013-03-06 09:04:40 +13:00
Robert O'Callahan
c9169ed15c Bug 845526 - Limit complexity of invalid region in RemoveFrameFromLayerManager. r=mattwoodrow 2013-03-02 12:21:00 -05:00
Ed Morley
6e683b1c7d Backed out changeset 05c35dc73323 (bug 845526) 2013-02-27 12:49:29 +00:00
Robert O'Callahan
5d287dadc9 Bug 845526. Limit complexity of invalid region in RemoveFrameFromLayerManager. r=mattwoodrow 2013-02-27 16:05:32 +13:00
Mats Palmgren
7532b4e736 Bug 786533 - Replace NS_MIN/NS_MAX with std::min/std::max and #include <algorithm> where needed. r=ehsan 2013-01-15 13:22:03 +01:00
Anthony Jones
5216891197 Bug 825808 - Fix animations by marking transforms as not fixed. r=roc 2013-01-12 15:48:55 -05:00
Nicholas Cameron
9ab8b95c93 Bug 824454; use the resolution scale in OMTA transforms. r=cjones; a=blocking-basecamp 2013-01-08 10:39:12 +01:00
Nicholas Cameron
e3b0879636 Bug 822231; use the maximum scale for animated scaling. r=roc 2012-12-21 16:58:17 -05:00
Justin Lebar
bfa09168a5 Bug 819791 - Part 8: Use explicit TArray copy constructors in FrameLayerBuilder. r=roc 2012-12-18 20:16:06 -05:00
Matt Woodrow
6710065f3e Bug 821995 - Revert an incorrect change to matrix multiplication in ChooseScaleAndSetTransform. r=roc 2012-12-18 18:58:44 +13:00
Jeff Walden
8a6657de57 Bug 820570 - Move mozilla::DebugOnly into DebugOnly.h to pare down the grab-baggish Util.h. r=Ms2ger 2012-12-14 18:58:45 -05:00
Matt Woodrow
c250a846ec Backout changeset 3ba90f85653a (Bug 805343) for regressing android talos tests 2012-12-14 11:51:00 +13:00
Matt Woodrow
451702b100 Backout changeset e8f5182d94c5 (Bug 805343) for regressing android talos tests 2012-12-14 11:50:57 +13:00
Matt Woodrow
f254b2c49c Bug 820541 - Only call ProcessRemovedDisplayItems once per transaction. r=roc 2012-12-13 09:47:05 +13:00
Robert O'Callahan
4d332b44ce Bug 663776. Part 1: When determining whether the scale factors hav changed, we need to use GetBaseTransform for the old scale factors, because that's what stores the old transform that we computed scale factors from. r=mattwoodrow 2012-12-07 12:58:12 +13:00
Nicholas Cameron
5752e07acc Bug 782368; undo patch from 780868. r=mattwoodrow 2012-12-12 10:57:52 +13:00
Matt Woodrow
78524c8d0d Bug 806099 - Use the 'best' active scrolled root when flattening layers, even if it isn't an ancestor of all display items. r=roc 2012-12-12 09:36:22 +13:00
Robert O'Callahan
7bd14d68c0 Bug 805343. Part 2: Update FrameLayerBuilder::HasVisibleRetainedDataFor to account for occluded display items. r=mattwoodrow 2012-12-10 18:49:17 +13:00
Robert O'Callahan
2fa52f377c Bug 805343. Identify DisplayItemDatas that are completely hidden by other opaque content in their ThebesLayer, and ignore them when we check to see whether there's an image we might need to invalidate. r=mattwoodrow 2012-12-10 18:47:33 +13:00
Robert O'Callahan
abc92fc597 Bug 818643. Issue an NotifyRenderingChanged callback on nsDisplayItems when we invalidate anything to do with the display item. Make nsDisplayCanvasBackground override NotifyRenderingChanged to invalidate the cached background image. r=mattwoodrow 2012-12-10 18:34:31 +13:00
Ed Morley
6844d4cd20 Backout 55d5f3cd5c85, d89ae7f40549 & 270391fca858 (bug 663776) for assertions 2012-12-07 12:37:36 +00:00
Robert O'Callahan
dcc1b94f4f Bug 663776. Part 1: When determining whether the scale factors hav changed, we need to use GetBaseTransform for the old scale factors, because that's what stores the old transform that we computed scale factors from. r=mattwoodrow 2012-12-07 12:58:12 +13:00
Karl Tomlinson
7867b81402 b=786100 consider display item snap when hunting uniform background color r=roc 2012-12-05 15:53:17 +13:00
Matt Woodrow
a6fcc470b7 Bug 810302 - When flattening layers together to avoid component alpha, attempt to pick the 'best' active scrolled root to minimize invalidation during scrolling. r=roc 2012-12-04 19:05:22 +13:00
Matt Woodrow
181ad88bc5 Bug 812107 - Don't attempt to do scroll compensation in FrameLayerBuilder for transformed containers. r=roc 2012-12-04 19:04:20 +13:00
Kartikaya Gupta
23edda227f Bug 814418 - Fix some warnings about unused variables. r=ehsan 2012-11-30 11:06:37 -05:00