зеркало из https://github.com/mozilla/gecko-dev.git
fc4b1372bc
In layers-free mode the gecko display list and coordinate system is very similar to what WR is expecting. Instead of having each StackingContextHelper shift the origin of the coordinate system, we can leave it in one spot and just pass everything relative to that. The semantics of the Gecko display list already matches this; the exception is that nsDisplayTransform items are also considered reference frames, and anything inside them is relative to the nsDisplayTransform. On the WR side this is also the case, because stacking contexts with a transform are implicitly turned into reference frames. Additionally, the size of the bounds passed to the WR stacking context is never actually used, except on the root stacking context (which is not created by StackingContextHelper). Since we want a zero origin (as explained above) and the size is never used, we can just pass a zero rect to the WR stacking context from StackingContextHelper. In terms of the actual transform matrix, this patch now passes the full unmodified transform from nsDisplayTransform into WR. This transform gets applied onto the contents of the nsDisplayTransform. The contents' coordinate system is relative to the frame that generated the nsDisplayTransform. Again this maps directly to WR, where the transform on the stacking context gets applied to the contents of the stacking context; the contents' coordinates are relative to the stacking context. MozReview-Commit-ID: 9hdDxdKXPPi --HG-- extra : rebase_source : b201cea867c6c6e26c2b0bcd0e38c8722f09fe77 |
||
---|---|---|
.. | ||
2d | ||
angle | ||
cairo | ||
config | ||
doc | ||
docs | ||
gl | ||
graphite2 | ||
harfbuzz | ||
ipc | ||
layers | ||
ots | ||
qcms | ||
sfntly | ||
skia | ||
src | ||
tests | ||
thebes | ||
vr | ||
webrender | ||
webrender_api | ||
webrender_bindings | ||
ycbcr | ||
moz.build |