Commit Graph

224 Commits

Author SHA1 Message Date
Robert O'Callahan
ae6647d4d2 Bug 637852. Part 26: Ensure that FrameMetrics coordinates are correctly stored as layer coordinates. r=tnikkel 2011-06-23 00:11:28 +12:00
Robert O'Callahan
59cfc47b23 Bug 637852. Part 17: Tighten up AreLayersMarkedActive so we track exactly what properties are changing. Also, clamp resolution to power-of-2 only if the frame's transform has a scale. r=tnikkel
This lets us avoid clamping the scale in more situations. We should only clamp the scale when we think
the scale is changing due to a changing transform --- the goal of clamping is to not have to redraw the content
too often when the content is zooming in or out.
2011-06-23 00:11:28 +12:00
Robert O'Callahan
fcf2510a5d Bug 637852. Part 6: Implement resolution scaling in FrameLayerBuilder. r=tnikkel
FrameLayerBuilder::BuildContainerLayerFor takes responsibility for resolution scaling. The ContainerParameters
passed in are added to any transform requested. Then we extract the scale part of the transform, round the scale
up to the nearest power of two if the transform may be actively animated (so we don't have to redraw layer contents
constantly), pass that scale down to be applied by each child and set the residual transform on the ContainerLayer.

For child layers built via BuildLayer, we just pass the requested scale factor in via the ContainerParameters.
If the returned layer is a ContainerLayer then BuildLayer is guaranteed to have already done necessary scaling.
If the returned layer is not a ContainerLayer then we apply the scale ourselves by adding the scale to the
child layer's transform.

For child ThebesLayers containing non-layer display items, we scale the drawing of those display items so that
the child ThebesLayers are simply larger or smaller (larger or smaller visible regions).

We have to scale all visible rects, clip rects etc that are in the coordinates of ThebesLayers or the parent
ContainerLayer. To keep things simple we do this whenever we convert from appunits to integer layer coordinates.

When a ThebesLayer's resolution changes we need to rerender the whole thing.

nsDisplayList::PaintForFrame needs to respect the presshell's resolution setting. We do that by building a layer tree
with a ContainerParameters requesting a scale up by the presshell resolution; once that layer tree is built, we
adjust the root layer transform to scale back down by the resolution.
2011-06-23 00:11:27 +12:00
Robert O'Callahan
93793566d0 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
Robert O'Callahan
177089e111 Bug 646757. Don't snap display item bounds during hit-testing. r=tnikkel 2011-05-31 09:44:10 +12:00
Ed Morley
9e71e5b9ac Bug 614515 - Remove MOZ_SVG conditions. r=roc 2011-05-30 09:34:50 +02:00
Robert O'Callahan
e9b914654e Bug 656749. Only optimize away zero-opacity elements when we're painting, not for any other kind of display list construction such as plugin geometry. r=tnikkel 2011-05-23 12:28:47 +12:00
Tatiana Meshkova
7542ad5654 Bug 656167 - Temporarily disable or back out fixed layers. Visibility part. r=roc 2011-05-13 16:21:59 +03:00
Jim Mathies
9b7daaeb53 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
a497a31e83 Merging cedar with mozilla-central. 2011-05-13 10:59:05 +02:00
Robert O'Callahan
d70f70f234 Bug 654641. Make nsDisplaySolidColor::GetBounds reflect any snapping that's going on. r=tnikkel 2011-05-13 02:59:09 +12:00
Tatiana Meshkova
52765d2b7e 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
5eedd38c01 Bug 640048 Fix edge case for z-ordering for async scrollable elements r=roc 2011-05-01 18:53:01 -07:00
Mark Finkle
03e5a556ee Backed out changeset c7f62d818af2. Causes content crashes Bug 653889 2011-04-30 00:01:29 -04:00
Benjamin Stover
95028ef26c Bug 640048 Fix edge case for z-ordering for async scrollable elements r=roc 2011-04-29 10:15:44 -07:00
Robert O'Callahan
72627bced2 Bug 641426. Part 6: Rename Empty to SetEmpty. r=cjones 2011-04-19 15:07:23 +12:00
Robert O'Callahan
c957ae039e Bug 641426. Part 5: Avoid operator== where possible to distinguish between 'equal edges' and 'equal areas' for rectangles. r=dbaron,sr=cjones 2011-04-19 15:07:23 +12:00
Zack Weinberg
f5a0843ac7 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
Zack Weinberg
c3400ef3c4 Bug 266236 part 7: Simplify calling convention of SetClipRect and SetClipRegion.
--HG--
rename : gfx/src/nsThebesRenderingContext.cpp => gfx/src/nsRenderingContext.cpp
rename : gfx/src/nsThebesRenderingContext.h => gfx/src/nsRenderingContext.h
extra : rebase_source : b1c68e23a4fa67cdc09b151ad39d7560cdd8baf7
2011-04-07 18:04:40 -07:00
Jan Küchler
5ef6bf26cf 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
Benjamin Stover
3dc5b1f7a2 Bug 642246 Don't build ThebesLayers for elements with no displayports r=roc 2011-04-11 13:53:01 -07:00
L. David Baron
ad4318958b Back out 1edfae12015b (Bug 642246) due to mobile unittest orange. 2011-04-09 18:21:27 -07:00
Benjamin Stover
3270dd31cd Bug 642246 Don't build ThebesLayers for elements with no displayports r=roc 2011-04-09 12:38:28 -07:00
Tatiana Meshkova
29ab414108 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
631800dfd2 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
93480c6366 Bug 639754 - Remove MOZ_IPC checks since IPC is always built now; r=bsmedberg 2011-04-02 19:14:00 -07:00
Benjamin Stover
6fc39e3260 Bug 618975 Follow-up: Fix for non-IPC builds and remove warning r=blassey a=fix-comm-builds 2011-03-15 18:58:28 -07:00
Benjamin Stover
a646bb5913 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
e9b77710b0 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
eff01baa10 Backing out 99f6b3acc464 (bug 618975). Bug This caused a reftest crash. a=bustage 2011-03-08 22:02:50 -08:00
Benjamin Stover
6fd6388bc0 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
5a9d39c5e9 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
7344c3c89b 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
Kevin Gadd
90c20af040 bug 625248 - During each paint, build a list (stored as a FrameProperty of the root nsIFrame) of all the PresShells that are visible during this paint, so that we can increment their paint count correctly during an empty transaction; r=roc a=blocking-final+
--HG--
extra : rebase_source : 2524d2e258a6a6cc13a7d8df2c874752e415c1ba
2011-01-27 13:53:10 -08:00
Timothy Nikkel
0123cc0fff 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
Benjamin Stover
fcfc7df843 Bug 626855 Crash: trying to scroll HTML page with frameset r=cjones a=blocking-fennec 2011-01-19 08:56:22 -08:00
Robert O'Callahan
409b6ce451 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
52c00afd16 Bug 625288. Part 2: Report that -moz-win-glass and -moz-win-borderless-glass are uniform with opacity 0, i.e. they don't paint anything. Skip such display items when accumulating the visible region of a layer. r=tnikkel,a=blocking 2011-01-16 23:38:45 +13:00
Robert O'Callahan
9bee134ce1 Bug 625247. Don't use nsAutoTArray inside an nsAutoTArray. r=tnikkel,a=blocking 2011-01-15 22:40:33 +13:00
Benjamin Stover
5115d83eac Bug 605618 Follow-up: Fix refcnt issue r=cjones a=blocking-fennec 2011-01-13 14:17:40 -08:00
Mark Banner
c089e851d9 Bustage fix for non-IPC and for shared builds following bug 605618. a=bustage fix 2011-01-13 20:01:45 +00:00
Benjamin Stover
8fc0069a6b Bug 605618 Part 8: Content process map from view IDs to content elements r=cjones sr=roc 2011-01-13 09:45:14 -08:00
Benjamin Stover
bd474a4f0f Bug 605618 Part 7: Include viewport and content size in API r=cjones sr=roc 2011-01-13 09:45:14 -08:00
Benjamin Stover
822ae4d1f4 Bug 605618 Part 5: Support displayport for iframes r=tn sr=roc 2011-01-13 09:45:14 -08:00
Benjamin Stover
dd38a31a1f Bug 605618 Part 1: Tag layers with scrollable information r=cjones sr=roc a=blocking-fennec 2011-01-13 09:45:14 -08:00
Markus Stange
e20afb330c 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
0ae88fdc21 Bug 579808. Fix bounds for nsDisplayTransform and nsDisplayPlugin. r=tnikkel a=blocking-betaN+ 2011-01-06 19:38:22 -06:00
Robert O'Callahan
d10491f64a Bug 615794. Part 5: Don't abort in RoundedRectIntersectsRect, just check whether we intersect the frame border-box. r=dbaron a=blocking 2011-01-04 23:40:02 +13:00
Robert O'Callahan
319edd4ba7 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
b9895f1feb Bug 585258. Part 1: Don't make visible region arbitrarily complex in RecomputeVisibility. r=dbaron,a=blocking 2011-01-04 21:45:24 +13:00