Commit Graph

268 Commits

Author SHA1 Message Date
Matt Woodrow
831f8a3e50 Bug 539356 - Part 5 - Change SVG effects painting to use a LayerManager transaction. r=roc 2012-06-30 15:06:10 +12:00
Chris Lord
737f39fdfa Bug 758620 - Force fixed-position frames to have their own layers. r=roc
Introduce a new display-list item 'nsDisplayFixedPosition' that represents
fixed-position elements. This item cannot be merged, which forces fixed
position elements to have their own layer, and has a BuildLayer implementation
that sets the necessary metadata on a Layer to be able to maintain its
position correctly during composition when asynchronously panning and zooming.
2012-06-27 16:43:57 +01:00
Ed Morley
46f74afdf1 Backout de70e79ced32, ddd519d0767e, 9b952d924953 & 03efce585669 (bug 758620) for reftest failures 2012-06-26 16:13:33 +01:00
Chris Lord
d68b636b06 Bug 758620 - Force fixed-position frames to have their own layers. r=roc
Introduce a new display-list item 'nsDisplayFixedPosition' that represents
fixed-position elements. This item cannot be merged, which forces fixed
position elements to have their own layer, and has a BuildLayer implementation
that sets the necessary metadata on a Layer to be able to maintain its
position correctly during composition when asynchronously panning and zooming.
2012-06-26 14:43:11 +01:00
Kartikaya Gupta
3bd1fbeb89 Bug 763570 - Part 1 - Back out 18b206c111cd from bug 747493 as we have a better solution that also fixes other broken frameset behaviours. r=tnikkel 2012-06-15 17:49:46 -04:00
Ed Morley
865fc92be0 Backout 61fd66629c4f, 7c8121f8d3af & 2a2e9cf8fd41 (bug 539356), e31a5e6545d3 (bug 761884), 85fa80bd9792, a284ccb25b83, 2865904db9fc, 34e07b09c426, e9b3d41e0360, cef00ebcd6c8, f943b729ac14 & 783f298401b6 (bug 539356), 330a086f1570 (bug 741682), d80219c8842c (bug 739671), e8c96b4fd4da, 313af486e68d, 0adc41ff56dc, 0cd288a38085, f1d43208825c, 4859876972f3, eec8ef3ebe48, f7f29fcd1845, 6079b229d306, f23c3a7e7ce0, 9824458a41e2 & 6748b5496059 (bug 539356) for mochitest-4 orange & talos regressions on multiple platforms 2012-06-11 10:08:32 +01:00
Matt Woodrow
3d5108eb76 Bug 741682 - Disable component alpha layers with BasicLayers. r=roc 2012-06-11 16:45:38 +12:00
Matt Woodrow
cee7c9d24b Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt
* * *
Bug 539356 - Part 9a - Add new display list invalidation API to nsDisplayItem and implement it. r=roc
* * *
Bug 539356 - Part 9b - Add new frame invalidation API. r=roc
* * *
Bug 539356 - Part 9c - Remove old invalidation code. r=bz
* * *
Bug 539356 - Part 9d - Make SVG support the new invalidation model. r=jwatt
* * *
Bug 539356 - Part 9e - FrameLayerBuilder changes for display list invalidation. r=roc
* * *
Bug 539356 - Part 9f - Compute the invalid area of the layer tree and pass this to the widget. r=roc
* * *
Bug 539356 - Part 9g - Modify MozAfterPaint code to work with the new invalidation model. r=roc
2012-06-11 16:45:30 +12:00
Matt Woodrow
554b2e7419 Bug 539356 - Part 8b - Move painting of retained layers to the view manager flush, and only composite on the paint event. r=roc 2012-06-11 16:44:09 +12:00
Matt Woodrow
1ff0a4086c Bug 539356 - Part 7 - Store FrameLayerBuilder objects on the LayerManager instead of nsDisplayListBuilder. r=roc 2012-06-11 16:44:08 +12:00
Matt Woodrow
6f54e66111 Bug 539356 - Part 5 - Change SVG effects painting to use a LayerManager transaction. r=roc 2012-06-11 16:44:08 +12:00
Timothy Nikkel
dff7715e01 Bug 747493. Give frameset documents a basic scroll layer so we can communicate the document's metrics to the compositor and frontend. r=roc,mats 2012-06-09 19:26:57 -05:00
Gervase Markham
82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Jonathan Watt
f418b57d69 Bug 734082 - Compute and store bounds and visual overflow bounds for both SVG leaf and container frames. r=roc. 2012-05-17 05:05:09 +01:00
Matt Woodrow
15509fccd0 Bug 722603 - Improve dirty rect calculation with 3d transforms and preserve-3d. r=roc 2012-05-11 19:49:14 +12:00
Andreas Gal
a3df077a1a Do background image scaling on the GPU. Part 2: Support turning simple background images into image layers (bug 750172, r=roc). 2012-05-03 13:13:12 -07:00
Andreas Gal
7db0b87ef1 Do image scaling on the GPU (bug 650988, r=roc,cjones). 2012-05-03 07:05:55 -07:00
Robert O'Callahan
1c1601b380 Bug 749075. Part 1: Refactor the nsDisplayItem API for testing whether the item needs to be rendered to a transparent surface. r=mattwoodrow
Currently we return an extra out parameter on GetOpaqueRegion. This is ugly and it's also going to be inefficient
because in a followup patch I'm going to avoid calls to GetOpaqueRegion, but we still need to know whether the item
needs a transparent surface. So this patch removes that out parameter. Instead, we rely on the fact that only
Windows' glass-window-background display item needs to force a transparent surface, and there can only be one
of those per window. So we store a reference to it in the nsDisplayListBuilder if there is one, and then we can
efficiently tell if any leaf display item is the one that forces a transparent surface. For display items that
wrap a list, we continue to store whether they need to force a transparent surface in a boolean in the list.
2012-05-03 16:29:05 +12:00
Robert O'Callahan
23f723d5cc Bug 745934. Update bounds of nsDisplayOpacity after we've mutated its list. r=mattwoodrow,a=blocking-fennec 2012-04-19 14:40:43 +12:00
Ehsan Akhgari
483c294149 Backout changeset 0b25ccd32a49 (bug 745934) for reftest failures; a=bustage 2012-04-18 23:52:59 -04:00
Robert O'Callahan
ddeb57aca1 Bug 745934. Update bounds of nsDisplayOpacity after we've mutated its list. r=mattwoodrow,a=blocking-fennec 2012-04-19 14:40:43 +12:00
Robert O'Callahan
df01b1f9dc Bug 735898. Part 6: Avoid nsIFrame::GetOffsetTo calls by caching a frame/offset pair in nsDisplayListBuilder, using the cache from nsDisplayListBuilder::ToReferenceFrame, and having BuildDisplayListForChild efficiently update the cached frame from parent to child when possible. Also, use display items' precalculated ToReferenceFrame() instead of calling nsDisplayListBuilder::ToReferenceFrame where possible. r=mattwoodrow,a=blocking-fennec 2012-04-18 17:14:14 +12:00
Robert O'Callahan
d4b553e307 Bug 735898. Part 5.9: Remove nsDisplaySVGEffects::mEffectsFrame since it's always the same as mFrame. r=mattwoodrow,a=blocking-fennec 2012-04-18 17:12:53 +12:00
Robert O'Callahan
8de539221c Bug 728983. Part 1: Add nsDisplayItem::GetMergedFrames. r=mattwoodrow 2012-04-17 17:44:32 +12:00
Robert O'Callahan
bf5a330929 Bug 735898. Part 3: In DisplayBorderBackgroundOutline, when we have created an nsDisplayBackground item and it's themed, don't bother checking to create an nsDisplayBorder item. r=mattwoodrow
It turns out that calling HasBorder() is especially expensive for themed frames since we call into the theme engine to compute the border, so avoiding it is a nice win.
2012-04-13 23:44:06 +12:00
Robert O'Callahan
6e2327252f Bug 735898. Part 1: Cache bounds (union of all child item bounds) in nsDisplayWrapList. r=mattwoodrow 2012-04-13 23:44:06 +12:00
Mark Capella
bb0cb90d39 Bug 740688 - Use uintptr_t instead of PRUword, and intptr_t instead of PRWord. r=jwalden
--HG--
extra : rebase_source : 648a581323d2c2893df780f71fe34dadcc4bbaab
2012-04-11 17:17:44 -07:00
Robert O'Callahan
4e3da44c46 Backing out changesets ef599d7f3f11, 70ef464f50e3 and 1a204c38918e (bug 735898) due to test failures. 2012-04-12 00:34:23 +12:00
Robert O'Callahan
5e8bcd0f82 Bug 735898. Part 3: In DisplayBorderBackgroundOutline, when we have created an nsDisplayBackground item and it's themed, don't bother checking to create an nsDisplayBorder item. r=mattwoodrow
It turns out that calling HasBorder() is especially expensive for themed frames since we call into the theme engine to compute the border, so avoiding it is a nice win.
2012-04-11 16:49:34 +12:00
Robert O'Callahan
6a6630c551 Bug 735898. Part 1: Cache bounds (union of all child item bounds) in nsDisplayWrapList. r=mattwoodrow 2012-04-11 16:48:47 +12:00
Robert O'Callahan
1595646b6a Bug 735898. Part 0: Fix comment. 2012-04-11 16:48:37 +12:00
Robert O'Callahan
7c34e38876 Bug 733607. Restructure logic to compute snapped bounds of display items in layer coordinates. Moves responsibility for computing snapped bounds from within the display items to callers of GetBounds/GetOpaqueRegion. r=tnikkel
Previously we snapped the results of nsDisplayItem::GetBounds and
nsDisplayItem::GetOpaqueRegion internally. By tracking which display items were
inside transforms, we disabled snapping quite conservatively whenever an ancestor
had a transform, which is undesirable.

With this patch, we don't snap inside GetBounds or GetOpaqueRegion, but just return
a boolean flag indicating whether the item will draw with snapping or not. This flag
is conservative so that "true" means we will snap (if the graphics context has a transform
that allows snapping), but "false" means we might or might not snap (so it's always safe
to return false).

FrameLayerBuilder takes over responsibility for snapping item bounds. When it converts
display item bounds to layer pixel coordinates, it checks the snap flag returned from
the display item and checks whether the transform when we draw into the layer will be
a known scale (the ContainerParameters scale factors) plus integer translation. If both
are true, we snap the item bounds when converting to layer pixel coordinates. With
this approach, we can snap item bounds even when the items have ancestors with active
transforms.
2012-04-10 23:24:18 +12:00
Matt Woodrow
72f481f48f Bug 700240 - Print display lists to a file. r=roc,bjacob 2012-03-01 21:26:09 +13:00
Jonathan Watt
571cebe9d0 Bug 727805 - Give aFactor in nsDisplayList.cpp a more meaningful name. r=mattwoodrow. 2012-02-17 06:08:33 +00:00
Matt Woodrow
bf96c795a0 Bug 722603 - Part 2: Use cached transform as much as possible (r=roc). 2012-02-14 01:12:49 -08:00
Mats Palmgren
498185f3f0 Bug 619273 - Move the selection state bit from frames to content nodes. r=smaug 2011-12-20 10:15:41 +01:00
Robert O'Callahan
763cffbfd2 Bug 702739. When a element has an active transform and the element's content (before being transformed) is no larger than the window, prerender its entire contents into layers when any of it is visible, so we don't have to rerender it and/or resize its layers as it moves into or out of view. r=mats 2011-12-19 10:57:35 +13:00
Matt Brubeck
f51deee1fa Back out bug 710521, bug 672013, bug 702739 because of Mac reftest failures 2011-12-18 08:15:09 -08:00
Robert O'Callahan
7a9dc0adaf Bug 702739. When a element has an active transform and the element's content (before being transformed) is no larger than the window, prerender its entire contents into layers when any of it is visible, so we don't have to rerender it and/or resize its layers as it moves into or out of view. r=mats 2011-12-18 21:46:44 +13:00
Matt Woodrow
7b48d2cb2b Bug 700240 - Print nsSVGEffects types. r=roc 2011-11-17 16:44:16 +13:00
Matt Woodrow
76656ee23d Bug 700240 - Make display list debugging independent of DEBUG. r=khuey,roc 2011-11-17 16:44:16 +13:00
Robert O'Callahan
a2c2c53e5c Bug 681867. Part 2: remove nsDisplayForcePaintOnScroll. r=mats 2011-10-21 14:41:36 +13:00
Ehsan Akhgari
92064e6d3f Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron
Landing on a CLOSED TREE
2011-10-17 10:59:28 -04:00
Matt Woodrow
bc0aec246e Bug 684759 - Part 3b - Add event handling for sorted preserve-3d layers. r=roc 2011-10-07 10:24:02 +13:00
Matt Woodrow
6e3aac5fe5 Bug 684759 - Part 3a - Sort preserve-3d layers using their z depth at points where they intersect in 2d space. r=roc 2011-10-07 10:23:18 +13:00
Matt Woodrow
ae2391fce2 Bug 691106 - Merge sequential nsDisplayTransforms and give them unique frame keys. r=roc 2011-10-03 17:02:25 +13:00
Michael Wu
d2b70213ac Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones
--HG--
rename : tools/trace-malloc/bloatblame.c => tools/trace-malloc/bloatblame.cpp
2011-09-28 23:19:26 -07:00
Jonathan Watt
3c8937dad1 Bug 664130 - Clarify some display list comments and code. r=roc. 2011-09-08 12:15:00 +01:00
Jonathan Watt
fedee44618 Bug 677198 - Remove some Windows line endings introduces by bug 505115. r=mattwoodrow. 2011-09-08 12:15:00 +01:00
Matt Woodrow
e9aa70c516 Bug 682922 - Disable preserve-3d on scroll frames. r=roc 2011-09-05 10:25:35 +12:00
Matt Woodrow
5a40560039 Bug 505115 - Part 14b - Layout support for -moz-transform-style. r=roc 2011-08-27 12:01:46 +12:00
Matt Woodrow
d71d3420c7 Bug 505115 - Part 5 - Use gfx3DMatrix in layout. r=roc 2011-07-23 10:28:51 +12:00
Matt Woodrow
5afc317166 Bug 505115 - Part 3 - Convert nsStyleTransformMatrix to be backed by a 4x4 matrix. r=dbaron 2011-07-23 10:28:07 +12:00
Mats Palmgren
e757474795 Bug 312156 - Implement CSS3 text-overflow. r=roc 2011-06-22 20:11:48 +02:00
Robert O'Callahan
723e5c86ee Bug 637852: Part 5: Create ContainerParameters structure to carry resolution scale factors through layer creation. r=tnikkel
This patch shouldn't change any behavior. It just passes the ContainerParameters around, which will contain scale factors that should have been
applied when BuildLayer returns a ContainerLayer.

This patch also adds an aTransform parameter to BuildContainerLayerFor, which nsDisplayTransform uses to set the
transform for the ContainerLayer. This way BuildContainerLayerFor knows what the container's transform is going to be
before constructing the children, which in the next patch will let us construct the children with the right resolution.
2011-06-23 00:11:27 +12:00
Jonathan Watt
27ad18c773 Bug 664130 - Document what GetFrameBoundsForTransform is about. r=roc.
--HG--
extra : rebase_source : dd1843b385b0976bd318dff6cc7c59ef15970f32
2011-06-16 12:06:05 +01:00
Jonathan Watt
00a35b6a3c Bug 664130 - Document what GetOpaqueRegion is useful for. r=roc.
--HG--
extra : rebase_source : abde1fd28975506a58068725e5cbb660620760f8
2011-06-16 12:06:05 +01:00
Tatiana Meshkova
2712ab6a70 Bug 653133 - Recover PRPackedBools order [r=roc] 2011-05-13 15:23:19 +03:00
Ed Morley
f13392fb42 Bug 614515 - Remove MOZ_SVG conditions. r=roc 2011-05-30 09:34:50 +02:00
Jonathan Watt
06594c58c1 Bug 614732 part 2 - Doc changes (clarify why nsDisplayTransform requires a bounds rect, and correctly associate nsStyleTransformMatrix's doxygen comment with it). r=roc. 2011-05-25 09:01:11 +01:00
Tatiana Meshkova
8148576e7f Bug 656167 - Temporarily disable or back out fixed layers. Visibility part. r=roc 2011-05-13 16:21:59 +03:00
Jim Mathies
ada37f0740 Bug 633282 - Accumulate exclude glass regions during painting and update the widget opaque region info. r=roc. 2011-05-13 11:40:46 -05:00
Jim Mathies
d839661fc9 Bug 633282 - manual backout of 'fixup UpdatePossiblyTransparentRegion v.3' in bug 622328 due to merge conflicts. r=tn 2011-05-13 11:40:46 -05:00
Mounir Lamouri
137f2b751b Merging cedar with mozilla-central. 2011-05-13 10:59:05 +02:00
Robert O'Callahan
e8bdea28a0 Bug 654641. Make nsDisplaySolidColor::GetBounds reflect any snapping that's going on. r=tnikkel 2011-05-13 02:59:09 +12:00
Tatiana Meshkova
3dd472d1eb Bug 653133 - Fennec crashes when loading a page with huge background-attachment:fixed background r=roc 2011-05-09 11:40:09 +03:00
Benjamin Stover
1b6808fa69 Bug 640048 Fix edge case for z-ordering for async scrollable elements r=roc 2011-05-01 18:53:01 -07:00
Mark Finkle
cabb1dfab7 Backed out changeset c7f62d818af2. Causes content crashes Bug 653889 2011-04-30 00:01:29 -04:00
Benjamin Stover
c95d8badae Bug 640048 Fix edge case for z-ordering for async scrollable elements r=roc 2011-04-29 10:15:44 -07:00
Zack Weinberg
3929b6bfdd Bug 651017, part 5: mechanical changes.
--HG--
extra : rebase_source : 8bbdf48488736b51d05e734e2e9316c1460cfed5
2011-04-16 18:22:44 -07:00
Zack Weinberg
1628ea1551 Bug 266236 part 9: Move nsBoundingMetrics to its own header and prune inclusions of nsRenderingContext.h.
--HG--
rename : gfx/src/nsThebesRenderingContext.cpp => gfx/src/nsRenderingContext.cpp
rename : gfx/src/nsThebesRenderingContext.h => gfx/src/nsRenderingContext.h
extra : rebase_source : 92660748436f03475e011184e2828f1db0ad63e0
2011-04-07 18:04:40 -07:00
Jan Küchler
c510bc3046 Bug 266236 part 3: Mechanical rename of nsIRenderingContext and nsThebesRenderingContext to nsRenderingContext. Mechanical substitution of nsRefPtr<nsRenderingContext> for nsCOMPtr<nsRenderingContext>.
--HG--
rename : gfx/src/nsThebesRenderingContext.cpp => gfx/src/nsRenderingContext.cpp
extra : rebase_source : 34884bfcafd885feaf73300bc7246cd192062a48
2011-04-07 18:04:40 -07:00
Jan Küchler
ebb2f0c7ec Bug 266236 part 1: Preliminary API cleanup on nsIRenderingContext.
--HG--
extra : rebase_source : a21ffad484f47103e403b8316eae5fdfd815c2cb
2011-04-07 18:04:39 -07:00
Benjamin Stover
bd3081c90a Bug 642246 Don't build ThebesLayers for elements with no displayports r=roc 2011-04-11 13:53:01 -07:00
L. David Baron
522a8d323e Back out 1edfae12015b (Bug 642246) due to mobile unittest orange. 2011-04-09 18:21:27 -07:00
Benjamin Stover
3c025ebe4d Bug 642246 Don't build ThebesLayers for elements with no displayports r=roc 2011-04-09 12:38:28 -07:00
Tatiana Meshkova
d918fac3c5 Bug 607417 - Part 3: Visibility tricks for fixed items r=roc
--HG--
extra : rebase_source : 7545070d6af5ef10dd4d1504f0d456ece4fd8edb
2011-04-08 09:35:16 -07:00
Oleg Romashin
863e12aca2 Bug 607417 - Part1: position:fixed frames mark layers r=roc
--HG--
extra : rebase_source : dbbff8810bafd165a48c34924d98f5c87702ef3f
2011-04-05 23:00:25 -06:00
Matheus Kerschbaum
4eb6429f47 Bug 639754 - Remove MOZ_IPC checks since IPC is always built now; r=bsmedberg 2011-04-02 19:14:00 -07:00
Robert O'Callahan
ae731149d4 Bug 644832. Windowless plugins inside CSS transforms should be rendered. r=tnikkel 2011-04-01 10:33:46 +13:00
Benjamin Stover
465035580f Bug 618975 Followup: bitrot and remove mDisplayport from nsDisplayScrollLayer r=cjones r=tn a=blocking-fennec 2011-03-09 13:35:27 -08:00
Benjamin Stover
9bb1728211 Bug 618975 Pan overflow elements in parent process r=cjones r=tn sr=roc a=blocking-fennec 2011-03-15 16:20:19 -07:00
Doug Turner
2d4ad5ac6e Backing out 99f6b3acc464 (bug 618975). Bug This caused a reftest crash. a=bustage 2011-03-08 22:02:50 -08:00
Benjamin Stover
975ed8713b Bug 618975 Pan overflow elements in parent process r=cjones r=tn sr=roc a=blocking-fennec 2011-03-08 21:28:18 -08:00
Matt Woodrow
0ce267f38b Bug 629857 - When invalidating transformed items, round the original area out to the nearest pixel. r=roc a=roc 2011-02-25 11:55:23 +13:00
Robert O'Callahan
8c5d3ac129 Bug 626602. Part 4: Make the display items behind a plugin that needs readback be as visible as we can. r=tnikkel 2011-02-16 16:43:30 -06:00
Timothy Nikkel
8fbd9a0bf9 Bug 622328 - Always make sure the area of the root content document is considered opaque. r=roc, a=blocking. 2011-01-27 16:58:50 -06:00
Robert O'Callahan
63cc1f7d1a Bug 621601. Part 1: Change empty transaction API to EndEmptyTransaction. r=bas,tnikkel,a=joe 2011-01-19 21:27:54 +13:00
Robert O'Callahan
eae993dd63 Bug 625288. Part 1: Don't create nsDisplaySolidColors with zero alpha. They just confuse our display list analysis. r=tnikkel,a=blocking 2011-01-16 23:38:45 +13:00
Robert O'Callahan
fceda9686a Bug 625247. Don't use nsAutoTArray inside an nsAutoTArray. r=tnikkel,a=blocking 2011-01-15 22:40:33 +13:00
Benjamin Stover
391da32464 Bug 605618 Part 5: Support displayport for iframes r=tn sr=roc 2011-01-13 09:45:14 -08:00
Benjamin Stover
c5f2f76798 Bug 605618 Part 2: Infrastructure for building shadow display list r=tn sr=roc 2011-01-13 09:45:14 -08:00
Markus Stange
80c932200b Bug 621762 - Change the way native windows are notified about toolbars. r=roc, a=betaN 2011-01-11 14:03:16 +01:00
Robert O'Callahan
63abe0192f Bug 615794. Part 3: Snap bounds of border and background display items to pixels if we're sure they will be snapped. r=tnikkel a=blocking 2011-01-04 23:39:47 +13:00
Robert O'Callahan
f38f22f331 Bug 602757. Part 5: Change HasText to GetComponentAlphaBounds. r=tnikkel,sr=dbaron,a=blocking 2011-01-03 14:48:09 +13:00
Robert O'Callahan
a6cb62365a Bug 602757. Part 4: Let nsDisplayBackground::GetOpaqueRegion return opaque regions for arbitrary repeat modes, background-clip, border-radius, etc. r=tnikkel,sr=dbaron,a=blocking 2011-01-03 14:48:09 +13:00
Robert O'Callahan
a352316479 Bug 602757. Part 3: Change IsOpaque to GetOpaqueRegion so we can get useful opaque regions for content that uses border-radius. r=tnikkel,sr=dbaron,a=blocking 2011-01-03 14:48:09 +13:00
Robert O'Callahan
b81ded8225 Bug 602757. Part 2: Detect display items over the transparent part of a window, and disable usage of component alpha (i.e., subpixel antialiasing) for those items. r=tnikkel,a=blocking 2011-01-03 14:48:09 +13:00
Robert O'Callahan
9856f18fdd Bug 620512. Part 1: Only fire MozPaintWait and change window visibility in BuildDisplayList if we're painting. r=bsmedberg, a=b:b9 2010-12-21 12:12:00 -08:00
Timothy Nikkel
3dc86d45a3 Fix a comment. no bug. r=a a=r 2010-12-31 16:48:47 -06:00