gecko-dev/gfx
Jeff Muizelaar 00f87f386d Bug 1564655. blob: Make the recording use absolute coordinates. r=nical
Currently items are painted with a context that has a transform of
-mLayerBounds.TopLeft().  This means that if TopLeft() changes the commands
will be in the wrong place because the -TopLeft() offset is baked into the
recording.

I don't think we've ever needed to support painting without this transformed
baked in so there were some infrastructure changes that needed to be made to
make this possible. Most of the problems come from the use of
gfxContext::GetClipExtents which expose the bounds of the underlying surface.
The biggest of these was fixed by the CreateClippedDrawTarget rewrite. The rest
should be handled by ensuring that the DrawTarget has bounds that are at least
as big as the union of the individual item bounds. i.e. GetClipExtents should
never intersect with bounds of the item.

This change has a couple of parts:

1. Store mLayerBounds.TopLeft() in the recording so that it will be subtracted
during replay

2. Use mLayerBounds as the Rect of the RecordingDrawTarget

3. Don't include mLayerBounds.TopLeft() in the transform during recording.

4. Adjust the dirty rect by recordingOrigin before we use it as a clip so that
it stays in the right place.

5. In PaintContainerItem the bounds parameter of PushLayer is in device space
so we need to account for the shift in the location of device space in the
DrawTargetRecording.

Differential Revision: https://phabricator.services.mozilla.com/D37513

--HG--
extra : moz-landing-system : lando
2019-07-14 00:02:03 +00:00
..
2d Bug 1563775. Include the recording origin in the stream. r=nical 2019-07-12 18:20:29 +00:00
angle Bug 1559975: Fix python2/3 compat in gfx/ r=ahal 2019-07-05 14:28:55 +00:00
cairo Bug 1512504 - Remove support for MSVC. r=froydnj 2019-02-14 21:45:27 +00:00
config Bug 1289211 - Rename InfallibleTArray to nsTArray in gfx/ r=mstange 2019-07-10 05:25:54 +00:00
docs Bug 1560149 - Add some documentation for document splitting. r=dthayer 2019-07-02 00:53:07 +00:00
gl Bug 1289211 - Rename InfallibleTArray to nsTArray in gfx/ r=mstange 2019-07-10 05:25:54 +00:00
graphite2 Bug 1515629 - Update Graphite2 to version 1.3.13. r=jfkthame 2018-12-31 15:56:58 +00:00
harfbuzz Bug 1559975: Fix python2/3 compat in gfx/ r=ahal 2019-07-05 14:28:55 +00:00
ipc Bug 1562722 - Don't apply the background color to anything except the root document when using CrossProcessPaint. r=rhunt 2019-07-11 14:01:15 +00:00
layers Bug 1564655. blob: Make the recording use absolute coordinates. r=nical 2019-07-14 00:02:03 +00:00
ots Bug 1531912 - Update OTS to 7.1.9. r=jfkthame 2019-03-02 15:32:15 +00:00
qcms Bug 1558883 - Add QCMS transform correctness and performance tests. r=miko 2019-06-25 09:45:56 -04:00
sfntly Bug 1523969 part 8 - Move method definition inline comments to new line in 'gfx/'. r=kats 2019-02-25 16:07:19 -06:00
skia Bug 1559975: Fix python2/3 compat in gfx/ r=ahal 2019-07-05 14:28:55 +00:00
src Bug 1563859 - Enable WebRender on Linux with Nvidia hardware and Mesa drivers. r=jrmuizel 2019-07-12 20:46:03 +00:00
tests Bug 1557371 - Part 2 - Load all XUL crashtests with chrome privilege. r=dbaron 2019-07-09 19:40:42 +00:00
thebes Bug 1563859 - Enable WebRender on Linux with Nvidia hardware and Mesa drivers. r=jrmuizel 2019-07-12 20:46:03 +00:00
vr Backed out changeset 1740dc9a710c (bug 1563233) for mochitest failures on VRManager.cpp . CLOSED TREE 2019-07-14 00:22:31 +03:00
webrender_bindings Bug 1564655. blob: Make the recording use absolute coordinates. r=nical 2019-07-14 00:02:03 +00:00
wr Bug 1563770. Always include a visible rect with blob images. r=nical 2019-07-13 19:07:05 +00:00
ycbcr Bug 1561491 - Make gl.* static prefs follow the naming convention. r=KrisWright 2019-06-26 13:05:06 +10:00
moz.build Bug 1536162 - Update bugzilla component for gfx/wr. r=jrmuizel 2019-03-21 20:40:57 +00:00