Commit Graph

848 Commits

Author SHA1 Message Date
Botond Ballo
d34148a640 Bug 1205630 - Translate a fixed background display item's clip rect correctly when setting it on the layer. r=mstange 2015-09-25 12:55:00 -04:00
Botond Ballo
fd120310ea Bug 1208661 - Do not assume that PaintRoot()'s contributions to the HTML paint dump will all be inside a <script> tag. r=BenWa 2015-09-25 19:23:13 -04:00
Phil Ringnalda
e7cf241701 Back out 2 changesets (bug 1205630) for failing inactive-fixed-bg-bug1205630.xul on Mac and Windows
Backed out changeset 7ca5a29b914f (bug 1205630)
Backed out changeset 9db06671fc0d (bug 1205630)
2015-09-28 18:30:16 -07:00
Markus Stange
0ba0a3caa1 Bug 1105832 - Also dump inactive layer managers when display list dumping is enabled. r=mattwoodrow 2015-09-25 18:37:30 -04:00
Botond Ballo
cdc75f04b7 Bug 1205630 - Translate a fixed background display item's clip rect correctly when setting it on the layer. r=mstange 2015-09-25 12:55:00 -04:00
Kartikaya Gupta
936c7e57fc Back out the bits of bug 1205087 that cache the AnimatedGeometryRoot on DisplayItem. r=backout
The change breaks some scenarios with APZ scrolling, in particular the code
that layerizes the scroll handoff chain for deeply nested scrollable frames.
2015-09-28 15:17:34 -04:00
James Willcox
71d0f888cf Bug 1201541 - Use SingleTiledContentClient for non-scrollable layers on Android r=mattwoodrow 2015-09-28 09:36:58 -05:00
Nicholas Nethercote
c279a5c60e Bug 1208283 (part 2) - Change ColorLayer::mColor, ColorLayerProperties::mColor, ReadbackLayer::mBackgroundColor from gfxRBGA to gfx::Color. r=jwatt.
This avoids some gfxRGBA-to-Color conversions.
2015-09-24 18:16:45 -07:00
Markus Stange
70a71b657c Bug 1208438 - Don't allow layers with scrolling clips to occlusion-cull layers behind them. r=mattwoodrow 2015-09-25 15:47:41 +02:00
Wes Kocher
762631542f Backed out 2 changesets (bug 1208457, bug 1208438) for bg-fixed-child-mask.html failures
Backed out changeset 0499228f8fd1 (bug 1208438)
Backed out changeset 803a5e5c74ea (bug 1208457)
2015-09-25 13:01:33 -07:00
Matt Woodrow
d9215ce12d Bug 1205087 - Cache the AnimatedGeometryRoot on DisplayItem. r=roc 2015-09-24 18:26:36 -04:00
Matt Woodrow
b3fa553864 Bug 1205087 - Remove LayerManager parameter for ShouldFixToViewport. r=roc 2015-09-24 18:25:08 -04:00
Markus Stange
d142afdcec Bug 1208438 - Don't allow layers with scrolling clips to occlusion-cull layers behind them. r=mattwoodrow 2015-09-25 15:47:41 +02:00
Markus Stange
cd16b0be41 Bug 1203190 - Don't intersect with the visible rect for fixed background images. r=mattwoodrow 2015-09-25 14:40:52 +02:00
Nicholas Nethercote
c1b2461b9d Bug 1207944 (part 5) - Use SetColor(const Color&) when setting from a constructed gfxRGBA. r=jwatt.
In various places SetColor() gets passed a gfxRBGA that is constructed at the
call site. This patch changes these to construct a gfx::Color directly,
avoiding the subsequent conversion.
2015-09-23 23:42:58 -07:00
Markus Stange
cf52ecb3a3 Bug 1144534 - If we have tiling, don't reduce layer resolution for large transforms. r=mattwoodrow 2015-09-21 11:56:52 +02:00
Markus Stange
c8874eb88c Bug 1195400 - Check ancestor geometry roots when determining scrollability of a layer. r=mattwoodrow 2015-09-20 18:28:18 +02:00
Thinker K.F. Li
af80f65bac Bug 1097464 - Part 6: Handle preserves-3d by compositor. r=roc
Remove WrapPreserve3DList() and replaced it by creating a
nsDisplayTransform item for each transformed frame.

 - Add an additional item for each top frame extending 3D context to
   separate consequence contexts.

 - Effective transform of a layer is the accumulation of ancestors in
   the same 3D context.

 - The layers creating new context and extended by children need a
   temporary buffer if it's effective transform is not 2D.

 - Clip rects are accumulated along the context chain.

 - Visible rects of items are computed from dirty regions of the frame
   creating the context and accumulated transforms.

 - Bounds of items are computed from accumulated transforms and
   accumulated bounds of the descent frames.

 - Backface hidden is handled by compositor and BasicLayerManager.
2015-09-17 03:31:00 +02:00
Thinker K.F. Li
9e548da5a7 Bug 1097464 - Part 5: Fix preserve3d wording for nsIFrame. r=roc 2015-09-17 03:31:00 +02:00
Phil Ringnalda
daf0794aae Back out 2 changesets (bug 1205087) for mass bustage
CLOSED TREE

Backed out changeset 0573cd4aed27 (bug 1205087)
Backed out changeset 11a3cb42f729 (bug 1205087)
2015-09-17 19:30:42 -07:00
Matt Woodrow
ffb53af693 Bug 1205087 - Cache AnimatedGeometryRoot on nsDisplayItem. r=roc 2015-09-17 21:05:20 -04:00
Matt Woodrow
791f58c171 Bug 1205087 - Remove LayerManager parameter for ShouldFixToViewport. r=roc 2015-09-17 21:03:42 -04:00
Carsten "Tomcat" Book
a47b1a13c4 Backed out 6 changesets (bug 1097464) for causing OS X 10.10 Reftest Errors
Backed out changeset fbf63ce1ba88 (bug 1097464)
Backed out changeset fdaf4cfa6707 (bug 1097464)
Backed out changeset 727ebd9f744a (bug 1097464)
Backed out changeset 03f03a776042 (bug 1097464)
Backed out changeset 5ec6364b87d7 (bug 1097464)
Backed out changeset 47d056b3af7f (bug 1097464)
2015-09-17 16:24:43 +02:00
Jamie Nicol
45bdc72d64 Bug 1200729 - Recompute FrameLayerBuilder item visibility if dirty region changes. r=mwoodrow
Make the FrameLayerBuilder remember for what region it has calculated
display item visibility, then recompute the visibility whenever the
dirty region it is passed to DrawPaintedLayer changes.

This means that the caller does not have to know the entire dirty region
that will be drawn for the transaction, but we can still optimise cases
where it knows some of the dirty region in advance.

This fixes a regression where MultiTiledContentClient's low-res display
port would not be painted if a smaller region of its high-res buffer had
already been painted that transaction, since the FrameLayerBuilder
had decided that most of the larger low-res region was invisible.
2015-09-15 14:41:42 +01:00
Thinker K.F. Li
4ca462453f Bug 1097464 - Part 6 - Handle preserves-3d by compositor. r=roc
Remove WrapPreserve3DList() and replaced it by creating a
nsDisplayTransform item for each transformed frame.

 - Add an additional item for each top frame extending 3D context to
   separate consequence contexts.

 - Effective transform of a layer is the accumulation of ancestors in
   the same 3D context.

 - The layers creating new context and extended by children need a
   temporary buffer if it's effective transform is not 2D.

 - Clip rects are accumulated along the context chain.

 - Visible rects of items are computed from dirty regions of the frame
   creating the context and accumulated transforms.

 - Bounds of items are computed from accumulated transforms and
   accumulated bounds of the descent frames.

 - Backface hidden is handled by compositor and BasicLayerManager.
2015-09-17 03:31:00 +02:00
Thinker K.F. Li
5772ff62f8 Bug 1097464 - Part 5 - Fix preserve3d wording for nsIFrame. r=roc 2015-09-17 03:31:00 +02:00
Hiroyuki Ikezoe
c13e7b037c Bug 1151694 - Part 3: Manage mIsRunningOnCompositor flags for each properties respectively. r=bbirtles 2015-09-16 16:05:00 +02:00
Botond Ballo
e4d1f66bd9 Bug 1166301 - Store a flag on Layer to tell fixed background layers apart from fixed position layers. r=mattwoodrow 2015-09-04 17:26:33 -04:00
Botond Ballo
2632abca68 Bug 1166301 - If APZ is enabled, clip fixed background images at the layer level rather than the display item level. r=mattwoodrow
This ensures that regions beyond the clip are painted, and async scrolling can reveal them by moving the layer-level clip.

This patch also ensures that we continue creating mask layers for fixed background layers correctly, where appropriate.
2015-09-11 20:00:22 -04:00
Botond Ballo
254f373aa5 Bug 1166301 - Annotate fixed background layers with scroll metadata for the animated geometry root of the frame they're the background of. r=mattwoodrow 2015-08-26 18:16:51 -04:00
Matt Woodrow
349795e2fc Bug 1204597 - Use Move constructor for opaque region in FrameLayerBuilder instead of copying. r=jrmuizel 2015-09-14 14:18:20 -04:00
Wes Kocher
5c560941dd Backed out changeset 5b9886673514 (bug 1201541) for android reftest orange CLOSED TREE 2015-09-11 11:21:22 -07:00
James Willcox
f9ce1ed97b Bug 1201541 - Use SingleTiledContentClient for non-scrollable layers on Android r=mattwoodrow 2015-09-11 09:09:44 -05:00
Markus Stange
236500b79f Bug 1181135 - Copy DisplayItemClips in order to avoid dangling pointers. r=tn 2015-09-09 19:08:03 -04:00
Botond Ballo
bb4f2a8d79 Bug 1201548 - When testing whether the visible rect intersects event regions in FindPaintedLayerFor(), only use the bounds of the event regions. r=mstange
This is done for performance reasons, as the event regions can be complex.
2015-09-04 12:14:28 -04:00
Botond Ballo
745e873115 Bug 1200158 - Avoid expensive computations involving the maybe-hit region in hot code paths. r=mstange 2015-08-31 19:53:34 -04:00
Botond Ballo
c95ef68a5d Bug 1200158 - Define PaintedLayerData::AccumulateEventRegions() out of line. r=mstange 2015-08-31 19:59:22 -04:00
Victor Porof
535b2097d0 Bug 1195838 - Maintain all the TimelineMarker subclasses in a single place, r=tromey 2015-08-31 14:56:37 +02:00
Victor Porof
71e2411058 Bug 1194707 - Remove the docshell param from TimelineMarker constructors, r=tromey 2015-08-31 11:42:35 +02:00
Botond Ballo
85a0f85f3f Bug 1177018 - When finding a painted layer for a display item, include event regions in a layer's visible region. r=tn 2015-06-26 17:26:06 -04:00
Phil Ringnalda
502c5bc50e Back out 7 changesets (bug 1177018) for debug b2g assertion failures in test_bug982141.html
CLOSED TREE

Backed out changeset 40fdd735520d (bug 1177018)
Backed out changeset a82c39bb97ab (bug 1177018)
Backed out changeset dbb14a5cd2cd (bug 1177018)
Backed out changeset 112ec6bdaf4e (bug 1177018)
Backed out changeset 486f9a11fcbd (bug 1177018)
Backed out changeset 8e54cc5e6901 (bug 1177018)
Backed out changeset c2a30b4f3a7c (bug 1177018)
2015-08-26 21:38:05 -07:00
Botond Ballo
accf983f20 Bug 1177018 - When finding a painted layer for a display item, include event regions in a layer's visible region. r=tn 2015-06-26 17:26:06 -04:00
Robert O'Callahan
15b74b7905 Bug 1059519. Relax assertion. r=mstange 2015-08-19 13:23:06 +12:00
Jamie Nicol
6e0e1d166c Bug 1187619 - Only optmimize FrameLayerBuilder visibility calculations if correct. r=mattwoodrow
Bug 1176077 introduced the parameter aDirtyRegion to
DrawPaintedLayerCallback, which allows the callback to recompute the
visibility of all items to be painted in that transaction in a single
go. However, this parameter can not always be determined correctly
when using RotatedBuffer, and using an incorrect value was causing
graphical glitches.

Make the parameter optional, and on null values do not perform the
optimisation. Pass null from ClientPaintedLayer, which uses
RotatedBuffer and was causing problems, but continue to pass the
correct value from other Layer implementations. This optimisation was
most important for tiled layers using progressive paint, so this is
okay.
2015-08-03 04:07:00 -04:00
Matt Woodrow
a20bd93cc8 Bug 1180326 - Part 6: Use SingleTiledContentClient for non-scrollable layers on b2g and OSX. r=jrmuizel 2015-07-29 12:03:01 -04:00
Victor Porof
e89678a96c Bug 1184376 - Remove nsDocShell::AddProfileTimelineMarker, r=smaug 2015-07-18 09:35:59 -04:00
Jamie Nicol
a1feb12475 Bug 1176077 - Only recompute PaintedLayer item visibility when display list has changed. r=mattwoodrow
FrameLayerManager::RecomputeItemsVisibility() was being called on every
call to FrameLayerBuilder::DrawPaintedLayer(), each time for the region
to be painted by that paint call. This is inefficient when progressive
paint is enabled. Change it so that we compute the visibility of all the
layer's items within the total region to be painted, but only on the
first paint after the display list has been modified.
2015-07-21 09:19:25 +01:00
Ting-Yu Lin
cee87e8b73 Bug 1182963 - Use nsTHashTable::Iterator in FrameLayerBuilder. r=roc,njn
Get rid of EnumerateEntries by inlining those enumerate functions. Also
move gPaintedDisplayItemLayerUserData, gColorLayerUserData, etc. to the
front of the file since LayerManagerData::Dump() references to one of
them.
2015-07-15 17:05:06 +08:00
Michael Layzell
57ef4ea53f Bug 1073219 - Use a simple RAII struct instead of nsRefPtr to manage mLayerCount for MaskLayerImageKey. r=dholbert 2015-07-12 21:09:57 -07:00
Markus Stange
a77397e44f Bug 1178745 - Respect scroll clips when flattening. r=roc 2015-07-02 17:04:14 -04:00