Commit Graph

573 Commits

Author SHA1 Message Date
Carsten "Tomcat" Book
8824c3a425 Backed out changeset cc140abf7b17 (bug 1022612) 2014-07-15 10:30:35 +02:00
Carsten "Tomcat" Book
d758f9c681 Backed out changeset 121bf69509b1 (bug 1022612) 2014-07-15 10:30:33 +02:00
Carsten "Tomcat" Book
029b32a486 Backed out changeset e95971991caa (bug 1022612) 2014-07-15 10:30:32 +02:00
Carsten "Tomcat" Book
5ab48e7077 Backed out changeset 2f6cb0f412f7 (bug 1022612) 2014-07-15 10:30:23 +02:00
Carsten "Tomcat" Book
795c1dd368 Backed out changeset 032ba47c6684 (bug 1022612) 2014-07-15 10:30:21 +02:00
Carsten "Tomcat" Book
4681a11b43 Backed out changeset f9564f9f4648 (bug 1022612) 2014-07-15 10:30:11 +02:00
Carsten "Tomcat" Book
495422fb07 Backed out changeset c413b946dbc4 (bug 1022612) 2014-07-15 10:30:09 +02:00
Carsten "Tomcat" Book
79941c685b Backed out changeset f8b488c389e9 (bug 1022612) 2014-07-15 10:30:04 +02:00
Carsten "Tomcat" Book
7f4f90969e Backed out changeset 6e190d419511 (bug 1022612) 2014-07-15 10:29:59 +02:00
Carsten "Tomcat" Book
26f47cdbf0 Backed out changeset e6be65e455a2 (bug 1022612) 2014-07-15 10:29:51 +02:00
Carsten "Tomcat" Book
48feebee09 Backed out changeset 5c1f3340c45f (bug 1022612) 2014-07-15 10:29:50 +02:00
Carsten "Tomcat" Book
abd220850c Backed out changeset f12d7d68b685 (bug 1022612) 2014-07-15 10:29:48 +02:00
Carsten "Tomcat" Book
75f0b66945 Backed out changeset cc1776b2606d (bug 1022612) 2014-07-15 10:29:46 +02:00
Robert O'Callahan
216105530b Bug 1022612. Part 43: Fix up SuppressComponentAlpha to allow component alpha in inactive layers over opaque parts of the chrome window. r=mattwoodrow
--HG--
extra : rebase_source : a15fb640c4fe7917321bcea5cdf2dc5e6087a140
2014-07-15 16:23:37 +12:00
Robert O'Callahan
d3e59dec22 Bug 1022612. Part 42: Add opaque regions of ThebesLayer content to the "exclude glass" region. r=mattwoodrow
--HG--
extra : rebase_source : 2b429e274ec49b5310e69bad65ae9a399dba514a
2014-07-14 12:46:13 +12:00
Robert O'Callahan
16bcaaf5bb Bug 1022612. Part 41: Use itemType instead of calling GetType() again. r=mattwoodrow
--HG--
extra : rebase_source : 9531cbc73f01c49d22b81420c7cb3b206b6c26d4
2014-07-11 13:18:10 +12:00
Robert O'Callahan
dbc191385e Bug 1022612. Part 40: Restrict visible rect of 3D-transformed layers before converting to nsIntRect. r=mattwoodrow
--HG--
extra : rebase_source : 9d147c1adb92c17b19d259eef64557495c790b13
2014-07-11 13:17:47 +12:00
Robert O'Callahan
9de5b60bcb Bug 1022612. Part 34: Skip RecomputeVisibilityForItems in inactive layers. r=mattwoodrow
RecomputeVisibilityForItems for the retained ThebesLayer already recomputes
visibility for all items in that layer, including items nested in other items.

--HG--
extra : rebase_source : df909f3a9d6eabdb3d83a7770d090068ecca2686
2014-06-23 16:24:14 +12:00
Robert O'Callahan
797ba98165 Bug 1022612. Part 31: Perform layer-level occlusion culling in FrameLayerBuilder. r=mattwoodrow
We need this to avoid constructing and painting unncecessarily large
ThebesLayers.

--HG--
extra : rebase_source : 38cbd0b0dd7724cfdb98f3e215bd0f220a687f3c
2014-06-23 16:24:00 +12:00
Robert O'Callahan
2f179c372a Bug 1022612. Part 28: Make nsLayoutUtils::GetScrollableFrameFor return null for non-scrolled-frames. r=mattwoodrow
--HG--
extra : rebase_source : b93ce3cc94029fb6b8de51d5fc945d552a75a937
2014-07-09 10:12:41 +12:00
Robert O'Callahan
a8a94867f0 Bug 1022612. Part 27: Make FrameLayerBuilder responsible for setting all layer visible regions. r=mattwoodrow
Calling Layer::SetVisibleRegion multiple times in a transaction can result in
unnecessary IPC traffic.

This patch removes Intersect(childGfxBounds). This is only needed to
restrict the visible region to something sane for 3D transforms, and this will
be fixed up in a later patch.

--HG--
extra : rebase_source : dc1eaa8079f61648c24ac9502e837ac9f2630730
2014-06-18 15:12:55 +12:00
Robert O'Callahan
f59ff43d93 Bug 1022612. Part 21: Remove DidComputeVisibility checking. r=mattwoodrow
--HG--
extra : rebase_source : dc32021b0ba919d68a93f555cc8430e1d0a741a4
2014-06-09 16:48:01 +12:00
Robert O'Callahan
b2dedc1ddb Bug 1022612. Part 20: Do the business. r=mattwoodrow
--HG--
extra : rebase_source : a87960893a3cdf6661f25091ae9fd28b247a464b
2014-06-09 16:48:01 +12:00
Robert O'Callahan
e4542f2a87 Bug 1022612. Part 14: Don't compute a final transparent region anymore. r=mattwoodrow
Computing this via FrameLayerBuilder is some work and we don't really have to.

SuppressComponentAlpha will be true in more cases. This will be OK as long as
text in the chrome window is over opaque content in the same ThebesLayer. We
will miss some edge cases such as text in 'opacity' with no opaque background.
This should be OK.

--HG--
extra : rebase_source : dc8bbdd564cc99df1286921e59642648779b9c4a
2014-06-09 16:48:00 +12:00
Robert O'Callahan
958eac2c9b Bug 1022612. Part 13: Set mDidComputeVisibility in ProcessDisplayItems. r=mattwoodrow
--HG--
extra : rebase_source : c1a929e549c437388aa308b3dfda68b923eb0236
2014-07-07 17:46:28 +12:00
Robert O'Callahan
53a92cc8dd Bug 1022612. Part 12: Propagate NeedsTransparentSurface in ProcessDisplayItems. r=mattwoodrow
--HG--
extra : rebase_source : ed15b100438912f12e3c556d2a6a43e8387b2981
2014-06-09 16:48:00 +12:00
Robert O'Callahan
394c554597 Bug 1022612. Part 11: Set opaque flag on nsDisplayList if we find an opaque item that covers the whole list. r=mattwoodrow
This is less general than what nsDisplayItem::ComputeVisibility does. This means
if multiple opaque items together cover the list bounds, but not individually,
we won't mark the list as opaque. I think that should be OK.

--HG--
extra : rebase_source : 43dced732123617f85f360d13861b01d70fddef5
2014-06-09 16:48:00 +12:00
Robert O'Callahan
7ec8598426 Bug 1022612. Part 10: Implement merging and flattening in ProcessDisplayItems. r=mattwoodrow
BuildContainerLayerFor now has to be able to mutate the passed-in display item
list.

--HG--
extra : rebase_source : 6a9727998a5ffb01896a4a2bbdd8d30a24c89dcd
2014-06-09 16:48:00 +12:00
Matt Woodrow
6d89446227 Bug 1034247 - Avoid propogating scale factors down to ThebesLayers if it would result in them being larger than the max texture size. r=roc 2014-07-09 14:01:54 +12:00
Benoit Girard
439262aad7 Bug 1027380 - Paint flashing from an inactive layer manager saturates the transparent layers. r=mattwoodrow
--HG--
extra : rebase_source : 7444cf86fc14bd811d836d4c788958bf3790f572
2014-06-19 14:22:17 -04:00
Ed Morley
6269abc315 Merge mozilla-central and inbound 2014-07-10 16:29:53 +01:00
Kartikaya Gupta
2001531145 Bug 1036518 - Back out cset cc20208a6eb4 (bug 1034247) for causing blurry painting and janky scrolling on B2G/Fennec on some devices. r=me a=backout 2014-07-10 10:08:44 -04:00
Jonathan Watt
51f820ee47 Bug 933019, part 7 - Remove code for handling Thebes backed gfxContext from various files under layout/. r=Bas 2014-07-10 10:58:07 +01:00
Benoit Girard
3a53982907 Bug 1035998 - Annotate painting with display item information. r=mattwoodrow
--HG--
extra : rebase_source : ca750d2ca943d2596053b9ecf52074c5f5f53e70
2014-07-09 15:11:51 -04:00
Matt Woodrow
d3a7611535 Bug 1034247 - Avoid propogating scale factors down to ThebesLayers if it would result in them being larger than the max texture size. r=roc 2014-07-09 14:01:54 +12:00
Matt Woodrow
361e3e8a66 Bug 1031948 - Cull points that have w <= 0 when untransforming layer coordinates. r=bjacob 2014-07-08 16:55:42 +12:00
Timothy Nikkel
6dd3b29c71 Bug 1029718. Skip transform calculation if region to transform is empty for layer event regions. r=mstange
This means that we keep empty regions empty instead of rounding out causing empty regions to become non-empty. It can be significant for perf. Bug 1016525 fixed this. Bug 977831 regressed this.
2014-07-03 13:40:13 -05:00
Carsten "Tomcat" Book
4731eadb9c Backed out changeset 8179a07a4181 (bug 1009306) for m6 and m7 android test failures on a CLOSED TREE 2014-06-30 12:31:07 +02:00
Chris Lord
f589756c0f Bug 1009306 - Allow invalidation when a layer's sub-pixel scroll changes. r=roc
We #ifdef'd this out before the implementation of flexible scroll ranges,
but now there's no need for this and it ends up causing visible rendering
glitches.
2014-06-25 17:48:53 +01:00
Jonathan Watt
488b914f94 Bug 1031055 - Get rid of the Thebes backed gfxContexts in FrameLayerBuilder.cpp, and get rid of gfxASurface::DumpAsDataURL. r=mattwoodrow 2014-06-27 12:19:40 +01:00
Markus Stange
19b1984d2c Bug 1026450 - Don't let clipped animated transforms trigger layerization of elements outside the clip. r=roc
--HG--
extra : rebase_source : 2e260272a4d6aa4271d4e3231d7da3dd224b838c
2014-06-25 10:36:13 +02:00
Timothy Nikkel
695be79a62 Bug 1030370. We should be looking at the layer data for the frame we are looping over in the loop, not the starting frame each time in FrameLayerBuilder::GetThebesLayerScaleForFrame. r=mattwoodrow 2014-06-25 22:55:20 -05:00
Ed Morley
892c226532 Backed out changeset 5f35e9f7ad4a (bug 1026450) for B2G reftest failures; CLOSED TREE
--HG--
extra : amend_source : f9a3650794b0844becd8ff0ab6b284d727e463b3
2014-06-25 17:13:20 +01:00
Markus Stange
c01a620b38 Bug 1026450 - Don't let clipped animated transforms trigger layerization of elements outside the clip. r=roc 2014-06-25 10:36:13 +02:00
Mats Palmgren
7e0995dfa2 Bug 1025212 - Initialize 'last' to silence a static analyzer warning. r=dholbert 2014-06-24 17:52:18 +00:00
Jonathan Watt
f1d16eb1ff Bug 1027645 - Eliminate all nsRenderingContext::AppUnitsPerDevPixel() callers and all non-propagating nsRenderingContext::DeviceContext() callers. r=roc 2014-06-20 07:42:30 +01:00
Timothy Nikkel
cad2a6f66e Bug 977831. Store layer event regions on thebes layer data in appunits relative to the reference frame until we finalize the thebes layer and then convert to layer coordinates. r=roc
Event regions weren't in a workable state prior to this. They were already stored relative to the reference frame, but in layer pixels.

Inside inactive layer managers the scale is always 1 regardless of the scale on the containing thebes layer (which is the scale it will actually be drawn at), and so the event regions did not take into account scale in this situation.

Storing the regions in appunits relative to the reference frame means we can just transform to the new reference frame (if it is different) when passing event regions up and out of inactive layer managers. The proper scale will be applied when we apply the event regions to the layer.
2014-06-19 22:56:36 -05:00
Benoit Girard
c1e4a09735 Bug 1027496 - Stream display list and layers dump. r=mattwoodrow 2014-06-19 18:36:25 -04:00
Jonathan Watt
f0cc7f7531 Bug 1027763, part 2 - Make non-Moz2D callers of DrawTarget::GetType() call DrawTarget::GetBackendType() instead. r=Bas 2014-06-19 21:35:33 +01:00
Chris Lord
43310b9b82 Bug 1006084 - Allow ThebesLayers to be recreated when the creation hint changes. r=mattwoodrow 2014-06-13 17:11:08 +01:00