Commit Graph

147 Commits

Author SHA1 Message Date
David Zbarsky
b3df96766a Bug 784004 - Don't include Layers.h everywhere Part 3 r=nical 2012-08-21 00:06:46 -04:00
Chris Lord
5b2af91a59 Bug 777260 - Fix invalidations on transform items in container layers. r=roc
Since Bug 758620, it's possible for an nsDisplayTransform to appear as the
child of a container layer. This caused problems when it was inactive, as the
invalidation would not be transformed in this case.

Fix this in FrameLayerBuilder by mandating that InvalidateThebesLayerContents
takes the untransformed invalidation and apply the transform in
BuildContainerLayer.
2012-08-13 22:54:38 -04:00
Chris Lord
80d1acdf14 Bug 775431 - Make MOZ_DUMP_PAINT_LIST output terminal-friendly. r=mattwoodrow
Only output in HTML if we're dumping to a file, otherwise output as it did
before the HTML output change was made.
2012-08-07 18:57:26 +01:00
Robert O'Callahan
3492a27839 Bug 776836. When invalidating ThebesLayers due to an appunits-per-dev-pixel change, we can't trust the frame geometry. r=mattwoodrow 2012-08-07 23:07:07 +12:00
Robert O'Callahan
5f62cf1e37 Bug 772679. RestrictToLayerPixels needs to accurately convert between appunits scroll offsets and ThebesLayer pixel coordinates. r=tnikkel
Change GetThebesLayerResolutionForFrame to GetThebesLayerScaleForFrame,
which just returns a scale. Ensure that the scale is as accurate as possible
even if dedicated layers for scrolled content (or any layers at all) have not
been created yet, by taking into account transforms that have not yet
generated layers. This makes the decisions made by
nsGfxScrollFrameInner::ScrollToImpl independent of whether there is
currently an active layer for the scrolled content (or much more nearly so).
In nsGfxScrollFrameInner::ScrollToImpl, do not use the current internal
fractional offset of the ThebesLayer, which is in a mostly unrelated
coordinate space to our scroll positions. Instead, just try to make sure
that the previous and next scroll position differ by a whole number of
layer pixels.
2012-08-05 00:26:38 +12:00
Ed Morley
baaf9d5138 Backout 6ea008b301da, 14d17919e235, b15fb3603bfe & f89ae41eed63 (bug 772679) for turning test_offsets.html perma-orange on native Android mochitest-7 2012-08-05 14:35:08 +01:00
Robert O'Callahan
4987fd45b3 Bug 772679. RestrictToLayerPixels needs to accurately convert between appunits scroll offsets and ThebesLayer pixel coordinates. r=tnikkel
Change GetThebesLayerResolutionForFrame to GetThebesLayerScaleForFrame,
which just returns a scale. Ensure that the scale is as accurate as possible
even if dedicated layers for scrolled content (or any layers at all) have not
been created yet, by taking into account transforms that have not yet
generated layers. This makes the decisions made by
nsGfxScrollFrameInner::ScrollToImpl independent of whether there is
currently an active layer for the scrolled content (or much more nearly so).
In nsGfxScrollFrameInner::ScrollToImpl, do not use the current internal
fractional offset of the ThebesLayer, which is in a mostly unrelated
coordinate space to our scroll positions. Instead, just try to make sure
that the previous and next scroll position differ by a whole number of
layer pixels.
2012-08-05 00:26:38 +12:00
Ms2ger
19bfb03e2d Back out bug 772679 for crashes. 2012-08-04 15:10:45 +02:00
Robert O'Callahan
0af221476e Bug 772679. RestrictToLayerPixels needs to accurately convert between appunits scroll offsets and ThebesLayer pixel coordinates. r=tnikkel
Change GetThebesLayerResolutionForFrame to GetThebesLayerScaleForFrame,
which just returns a scale. Ensure that the scale is as accurate as possible
even if dedicated layers for scrolled content (or any layers at all) have not
been created yet, by taking into account transforms that have not yet
generated layers. This makes the decisions made by
nsGfxScrollFrameInner::ScrollToImpl independent of whether there is
currently an active layer for the scrolled content (or much more nearly so).
In nsGfxScrollFrameInner::ScrollToImpl, do not use the current internal
fractional offset of the ThebesLayer, which is in a mostly unrelated
coordinate space to our scroll positions. Instead, just try to make sure
that the previous and next scroll position differ by a whole number of
layer pixels.
2012-08-05 00:26:38 +12:00
Aryeh Gregor
8b4a23fc4c Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
Matt Woodrow
811b170f71 Bug 741682 - Flatten component alpha layers into their parent layer with BasicLayers. r=roc 2012-07-23 15:00:36 +12:00
David Zbarsky
7f0b27a36b [Bug 774505] Don't include Layers.h everywhere r=cjones 2012-07-18 12:31:40 -04:00
Matt Woodrow
090f54cfff Bug 539356 - Part 7 - Store FrameLayerBuilder objects on the LayerManager instead of nsDisplayListBuilder. r=roc 2012-07-17 13:03:51 -04:00
Matt Woodrow
3b5ab2f5fe Bug 539356 - Part 5 - Change SVG effects painting to use a LayerManager transaction. r=roc 2012-07-17 13:03:51 -04:00
Chris Lord
8f239cbc46 Bug 772079 - Fix ThebesLayerInvalidRegion being destroyed too soon. r=roc
A comment in ApplyThebesLayerInvalidation says that it preserves the content
of ThebesLayerInvalidRegion, in case there are multiple container layers for
the same frame. SetHasContainerLayer, however, immediately clears said property.

This was causing invalidations to be lost since Bug 758620 on fixed-position
elements, as they were being separated out onto their own layers but were still
merged in the root scroll layer. This is tracked in Bug 769541.

This fixes the problem by storing the new invalid region in DisplayItemDataEntry
and clearing/setting the ThebesLayerInvalidRegion property in the
UpdateDisplayItemData callback from FrameLayerBuilder::WillEndTransaction.
2012-07-14 08:49:05 +01:00
Benoit Girard
6f336b7fec Bug 771219 - Restore display items when drawing a thebes layer. r=roc 2012-07-06 13:57:47 -04:00
Ehsan Akhgari
36aa55c67d Backout changeset eea5704272d0 (bug 539356) because of performance and correctness regressions 2012-07-03 20:28:32 -04:00
Ehsan Akhgari
80fdbb635f Backout changeset 60affaedccc3 (bug 539356) because of performance and correctness regressions 2012-07-03 20:26:55 -04:00
Ehsan Akhgari
01f084473a Backout changeset f83491fc735a (bug 539356) because of performance and correctness regressions 2012-07-03 20:25:37 -04:00
Ehsan Akhgari
d07e155f48 Backout changeset f568fc280fb0 (bug 539356) because of performance and correctness regressions 2012-07-03 20:24:55 -04:00
Ehsan Akhgari
fb58dfd227 Backout changeset 65410094add4 (bug 539356) because of performance and correctness regressions 2012-07-03 20:19:18 -04:00
Ehsan Akhgari
da1943e44c Backout changeset ce5e9fefee19 (bug 539356) because of performance and correctness regressions 2012-07-03 20:18:34 -04:00
Ehsan Akhgari
b21e6e9ac5 Backout changeset 0c75abcb72ff (bug 539356) because of performance and correctness regressions 2012-07-03 20:17:01 -04:00
Ehsan Akhgari
c2fac4bdb9 Backout changeset f7599b247eef (bug 539356) because of performance and correctness regressions 2012-07-03 20:10:16 -04:00
Ehsan Akhgari
e6a6a66eb3 Backout changeset 2cf9546ee691 (bug 770001) because DLBI is being backed out 2012-07-03 19:40:24 -04:00
Robert O'Callahan
e32583243d Bug 770001. When comparing clips, adjust for any change in the ThebesLayer coordinate system. When clips are different, try to accumulate differences intelligently, taking into account that changes in clips outside the bounds of the clipped display item don't matter. r=mattwoodrow 2012-07-02 11:46:21 +12:00
Matt Woodrow
611bfb3dfe Bug 539356 - Part 25 - Invalidate display items that have a changed clip. r=roc 2012-06-30 15:06:13 +12:00
Matt Woodrow
73026ccc83 Bug 539356 - Part 14 - Handle multiple widget layer managers retaining data for the same frame. r=roc 2012-06-30 15:06:12 +12:00
Matt Woodrow
28c2550c09 Bug 539356 - Part 12 - Remove unnecessary LayerManagerLayerBuilder indirection. r=roc 2012-06-30 15:06:12 +12:00
Matt Woodrow
6c57ad4190 Bug 741682 - Disable component alpha layers with BasicLayers. r=roc 2012-06-30 15:06:12 +12:00
Matt Woodrow
145d424c02 Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt 2012-06-30 15:06:11 +12:00
Matt Woodrow
cec10e815e Bug 539356 - Revert changes made by bug 728983 2012-06-30 15:06:10 +12:00
Matt Woodrow
90311bee4c Bug 539356 - Part 7 - Store FrameLayerBuilder objects on the LayerManager instead of nsDisplayListBuilder. r=roc 2012-06-30 15:06:10 +12:00
Matt Woodrow
c1ace87d42 Bug 539356 - Part 5 - Change SVG effects painting to use a LayerManager transaction. r=roc 2012-06-30 15:06:10 +12:00
Nicholas Cameron
ba77a1e5cd Bug 757347; Add a shutdown hook and remove MaskImageFormat(). r=roc 2012-06-26 14:43:30 +12:00
Nicholas Cameron
0e5954bf83 Back out bug 757346 2012-06-26 10:54:05 +12:00
Nicholas Cameron
99ee3870dd Bug 757347; Add a shutdown hook and remove MaskImageFormat(). r=roc 2012-06-26 09:44:41 +12:00
Nicholas Cameron
d2dcecd676 Bug 757346 - Change from clipping the mask to drawing it. r=roc 2012-05-27 16:55:22 -04:00
Gervase Markham
cb6a072c2a Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Nicholas Cameron
df0979f7d6 Bug 754488 - Fix warning in FrameLayerBuilder.cpp. r=dholbert 2012-05-14 19:01:05 -04:00
Robert O'Callahan
da2518d489 Bug 681192. Part 0.3: Add FrameLayerBuilder::GetThebesLayerResolutionForFrame. r=mattwoodrow 2012-05-10 17:24:18 +12:00
Nicholas Cameron
f18b89857b Bug 716439; creating mask layers. r=roc 2012-02-08 11:27:44 +13:00
Robert O'Callahan
a400c14c96 Bug 728983. Part 2: When display items for multiple frames are merged, track the merged frames and mark them all as having an associated container layer. This ensures that invalidations are processed correctly. r=mattwoodrow 2012-04-17 17:45:04 +12:00
Robert O'Callahan
3ab71e7f00 Bug 744607. Intersect a display item's layer-pixels draw-rect with the snapped clip rect. r=tnikkel 2012-04-13 23:44:05 +12:00
Robert O'Callahan
fb6a78d67b 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
8479f565f2 Bug 700240 - Print display lists to a file. r=roc,bjacob 2012-03-01 21:26:09 +13:00
Robert O'Callahan
8b0130f1f6 Bug 713532. Part 1: Suppress subpixel antialising in retained layers with an ancestor which has a non-integer-translation transform. r=tn 2012-01-12 00:26:33 +13:00
Matt Woodrow
a894703f8b Bug 700240 - Make display list debugging independent of DEBUG. r=khuey,roc 2011-11-17 16:44:16 +13:00
Bas Schouten
9e27051a07 Bug 334411: Introduce flashing invalidates areas when paint flashing is enabled. r=roc 2011-11-15 04:59:03 +00:00
Ehsan Akhgari
478ad1a412 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