Commit Graph

290 Commits

Author SHA1 Message Date
Matt Woodrow
3103b7b27f Bug 704469 - Use style context parent instead of frame parent when looking up perspective for 3d transforms. r=roc 2012-01-04 13:38:57 +13:00
Robert O'Callahan
43a174c5c8 Bug 591718. Part 1: rename some poorly-named methods, rework global-transform methods to avoid computing bounding-boxes more than once when there are are multiple transformed ancestors, make sure nsIFrame::GetTransformMatrix can stop at any desired ancestor. r=mats 2011-12-28 16:24:18 +13:00
Tatiana Meshkova
4bb6f6f620 Bug 701190 - position:fixed items disappear due to wrong translation. r=roc 2011-11-09 14:47:23 -08:00
William Chen
97a3dc759f Bug 497995: Part 1 - Implement border-image revisions in latest css3-background spec. r=dbaron 2011-12-22 18:34:45 -05:00
Robert O'Callahan
9a95c891e1 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
e08921e659 Back out bug 710521, bug 672013, bug 702739 because of Mac reftest failures 2011-12-18 08:15:09 -08:00
Robert O'Callahan
8de4f02429 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
614dd14877 Bug 701656 - Include the preserve-3d parent content in preserve-3d sorting. r=roc 2011-11-17 16:45:44 +13:00
Matt Woodrow
5fcf29f23f Bug 700240 - Print nsSVGEffects types. r=roc 2011-11-17 16:44:16 +13:00
Matt Woodrow
3448ddf074 Bug 695832 - Perpsective origin offset should be relative to the transform origin. r=roc 2011-10-31 13:38:46 +13:00
Robert O'Callahan
fa7267bb72 Bug 678859. Don't create layers for content less than 16x16 pixels. r=tn 2011-10-27 09:10:48 +13:00
Phil Ringnalda
5fca043114 Back out cc6b39f2b512 and f2b1103e5177 (bug 695832) for reftest failures 2011-10-25 23:18:47 -07:00
Matt Woodrow
9550d24666 Bug 695832 - Perpsective origin offset should be relative to the transform origin. r=roc 2011-10-26 16:20:08 +13:00
Oleg Romashin
9b48bda8d7 Bug 693938 - Force mark PuppetWidget root scroll layer as opaque. r=roc 2011-10-23 10:57:47 +02:00
Robert O'Callahan
b01fcc0f65 Bug 681867. Part 2: remove nsDisplayForcePaintOnScroll. r=mats 2011-10-21 14:41:36 +13: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
Matt Woodrow
d6d8f14e3a Bug 693520 - Fix backface visibility calculations, and share can-hit checks. r=derf 2011-10-12 16:16:06 +13:00
Matt Woodrow
631f5542cf Bug 693519 - Don't call GetHitDepthAtPoint if we didn't hit anything. r=roc 2011-10-12 16:16:05 +13:00
Matt Woodrow
46dd026f47 Bug 684759 - Part 3b - Add event handling for sorted preserve-3d layers. r=roc 2011-10-07 10:24:02 +13:00
Matt Woodrow
6ee9edc14b 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
9151540b7b Bug 691106 - Merge sequential nsDisplayTransforms and give them unique frame keys. r=roc 2011-10-03 17:02:25 +13:00
Michael Wu
0fe7772ece Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones 2011-09-28 23:19:26 -07:00
Justin Lebar
b46423f42c Bug 688624 - Use nsAutoTArray in nsDisplayList::HitTest. r=roc 2011-09-22 23:50:57 -04:00
Jonathan Watt
6c0118bb80 Bug 664130 - Clarify some display list comments and code. r=roc. 2011-09-08 12:15:00 +01:00
Felix Fung
fa05b7e0f3 Bug 577266 - Correct misspellings in source code 2011-09-06 17:20:35 -07:00
Matt Woodrow
b2485503b8 Bug 682922 - Disable preserve-3d on scroll frames. r=roc 2011-09-05 10:25:35 +12:00
Matt Woodrow
84d05e7b91 Bug 505115 - Part 15 - Add 4D Vectors, Quaternions and gfx3DMatrix functions. r=derf 2011-08-27 12:06:03 +12:00
Matt Woodrow
465e7e7515 Bug 505115 - Part 14b - Layout support for -moz-transform-style. r=roc 2011-08-27 12:01:46 +12:00
Mats Palmgren
4e2a044a66 Bug 653649 - New way of getting child lists from frames. (part 4/5) r=roc
Remove the nsIAtom* child list names and use child list ID enum instead.
2011-08-24 22:54:30 +02:00
Matt Woodrow
f8421b6e17 Bug 677878 - Round untransformed rects outwards. r=roc 2011-08-16 15:44:22 +12:00
Markus Stange
ee6bebfe4b Bug 676387 - XUL elements with -moz-appearance should ignore clicks in their overflow. r=roc 2011-08-08 20:31:52 +02:00
Matt Woodrow
6786a64276 Bug 505115 - Part 12b - Layout changes to use -moz-perspective-origin. r=roc 2011-08-03 15:04:24 +12:00
Matt Woodrow
db1c6d56f3 Bug 505115 - Part 11b - Layout changes to use a z component for -moz-transform-origin. r=roc 2011-08-03 15:04:23 +12:00
Matt Woodrow
ae00b43101 Bug 505115 - Part 10 - Implement the backface-visibility CSS property. r=dbaron 2011-08-03 15:04:22 +12:00
Matt Woodrow
cd48c09ded Bug 505115 - Part 9 - Implement the perspective() transform function and the perspective CSS property. r=dbaron 2011-08-03 15:04:22 +12:00
Matt Woodrow
efeba44259 Bug 505115 - Part 8c - Use ray tracing to untransform 2d points on a 3d plane. r=roc 2011-08-03 15:04:21 +12:00
Matt Woodrow
b673201b03 Bug 505115 - Part 7 - Layers support for 3d transforms. r=roc 2011-08-03 15:04:20 +12:00
Matt Woodrow
eedad1949e Bug 505115 - Part 5 - Use gfx3DMatrix in layout. r=roc 2011-07-23 10:28:51 +12:00
Matt Woodrow
648e9e83bd Bug 505115 - Part 3 - Convert nsStyleTransformMatrix to be backed by a 4x4 matrix. r=dbaron 2011-07-23 10:28:07 +12:00
Craig Topper
d1acc42088 Bug 654369 - Part 11: Remove OOM checks from layout/base r=bz 2011-04-28 22:02:40 -07:00
Mats Palmgren
c12d6a33ea Bug 312156 - Implement CSS3 text-overflow. r=roc 2011-06-22 20:11:48 +02:00
Robert O'Callahan
5c6c40babf 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
413134d88a 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
816fbcfae7 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
e10d741e46 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
7d73aa6b87 Bug 646757. Don't snap display item bounds during hit-testing. r=tnikkel 2011-05-31 09:44:10 +12:00
Ed Morley
6e443492c7 Bug 614515 - Remove MOZ_SVG conditions. r=roc 2011-05-30 09:34:50 +02:00
Robert O'Callahan
f8afaa00ab 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
a76da0fa82 Bug 656167 - Temporarily disable or back out fixed layers. Visibility part. r=roc 2011-05-13 16:21:59 +03:00
Jim Mathies
d90c2a9b93 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