Commit Graph

42 Commits

Author SHA1 Message Date
Ethan Lin
596418d7bd Bug 1372118 - Part2. Use new interface of CreateWebRenderCommands for non-image display items. r=jrmuizel, r=kats
MozReview-Commit-ID: BcmRjQhDEyf
2017-06-30 17:23:20 -07:00
Ryan Hunt
e11131fe10 Bug 1351783 part 1 - Add includes for unified build issues. r=kats
MozReview-Commit-ID: D57bbW4pmPZ
2017-06-05 18:03:02 -05:00
Kartikaya Gupta
c4fd192cd9 Bug 1376215 - Stop exposing the WrClipRegionToken in WebRenderAPI.h APIs. r=jrmuizel
No functional changes intended in this patch. It merely simplifies the
additional patch that we'll need to update gecko past WR cset 0bf6655,
and saves some potential manual rebasing work.

MozReview-Commit-ID: Km8dBotP3NQ
2017-06-26 07:49:52 -04:00
Jeff Muizelaar
805cb42a55 Bug 1372685 - Make DisplayItemLayer dummy target 1x1. r=lsalzman
This is basically the same as what was done in PaintedLayerBlob
2017-06-23 09:46:40 -04:00
Jeff Muizelaar
d82a2869db Bug 1374900. Replace CopyRecording with direct use of the memory buffer. r=lsalzman 2017-06-22 23:55:47 -04:00
Jeff Muizelaar
b88bb674a1 Bug 1373861. Pass a built display list to PushBuiltDisplayList by reference instead of value. r=Ganrko
Previously we needed to pass by value and that was causing us to clear out our
prebuilt display list when we actually wanted to keep it around.

The rust code ended up doing a bit of a silly dance but that's better than copying the display list around.
2017-06-21 18:40:13 -04:00
Kartikaya Gupta
5bc106584c Bug 1372603 - Remove the duplicated clip from WebRenderDisplayItemLayer. r=jrmuizel
Since part 1 of this patch set pushed the layer's local clip as part of
the code in ScrollingLayersHelper, it is no longer needed in the
WebRenderDisplayItemLayer (it is effectively duplicated).

MozReview-Commit-ID: F2HFsx3XI9M
2017-06-14 15:43:16 -04:00
Kartikaya Gupta
0f55c95b56 Bug 1372603 - Make sure the mask rect is relative to the enclosing stacking context. r=jrmuizel
This ensures that for layers with both transforms and mask layers, the
mask layer is properly positioned outside of the transform and relative
to the proper stacking context.

MozReview-Commit-ID: 79yvhxQCykW
2017-06-14 15:43:16 -04:00
Kartikaya Gupta
9ad40e6fb9 Bug 1372603 - Push the layer's local clip rect outside the stacking context. r=jrmuizel
For various reasons, we want to be pushing the layer's local clip rect
outside of the stacking context rather than inside it. Not only is this
more correct with respect to the semantics of the layer tree, we also
need it in order to properly handle fixed-positioning of layers with
async scrolling.

This patch does the bulk of the work to make this happen. Most of the code
in the individual layer classes to process the layer's local clip rect
is removed, and instead a function in ScrollingLayersHelper is added to
deal with it. There are a couple of places that individual layer classes
still handle this but those will be removed in future patches. Note that
the individual layer classes still need to provide a clip rect of some
sort in order to push their display items, and now they simply use their
visible region bounds for this purpose.

MozReview-Commit-ID: IBmfUdJwYx1
2017-06-14 15:43:16 -04:00
Alexis Beingessner
3117218f13 Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-13 11:00:10 -04:00
Sebastian Hengst
1b1d14e565 Backed out changeset 3d1ce85e6348 (bug 1088760) for bustage, at least on Android at layout/generic/nsPluginFrame.cpp:1612. r=backout 2017-06-13 00:30:03 +02:00
Jeff Muizelaar
53fab784f3 Bug 1362245. Stop running commands during recording for BlobImage. r=lsalzman
This keeps around mFinalDT but mostly doesn't use it (except for when creating
a PathBuilder). All playback is ripped out and we'll no longer hold references
to things to mFinalDT::GraidentStops or SourceSurfaces etc.
2017-06-12 17:53:21 -04:00
Alexis Beingessner
c6fbc5e17e Bug 1088760 - Remove nsRenderingContext, replacing all of its uses with gfxContext. r=jwatt,jrmuizel
MozReview-Commit-ID: K1WUIOnvazF
2017-06-12 17:32:48 -04:00
Kartikaya Gupta
aad288ff8a Bug 1363683 - Update webrender to cset 7f37799d63ed80a07675ad599526290843394c99. r=jrmuizel
In addition to updating gfx/webrender and gfx/webrender_traits, this patch:
- Updates the webrender_bindings Cargo.toml file for version bumps
- Updates the Cargo.lock files and revendors the third-party rust dependecies
- Updates the webrender bindings for a change in the display list construction
  and finalization API in WR csets 425155a and 1eb84eb.
  We now have to pass around a content size parameter to construct a display list,
  and we get back a content size from finalizing the display list. Since we pass
  the finalization results over IPC to WebRenderBridgeParent, we need to update
  the IPDL as well to pass this around.
- Updates the webrender bindings for a change to scroll_node_with_id in WR cset
  48a098f.
- Updates the webrender bindings for a change to push_text in WR cset 3287c15.
2017-05-15 15:13:31 -04:00
Kartikaya Gupta
cc1457011b Bug 1361497 - Push scrolling clips for scrollable layers in the layer tree. r=jrmuizel
This adds an RAII helper and uses it in RenderLayer functions. When APZ
is enabled, the RAII helper pushes a scrolling clip for each scrollable
metrics on the layer. It also pops off the scrolling clips on
destruction. Note that this should happen before any other things are
pushed into the WR display list for the rendering of a layer, since
those things should be subjected to the enclosing scrolling clips.
If APZ is disabled, this skips pushing the scrolling clips.

MozReview-Commit-ID: 1qv9egKbbok
2017-05-12 13:58:15 -04:00
Alexis Beingessner
6ec49a9792 Bug 1361751 - Update gecko bindings to webrender to reflect changes in PR 1181. r=kats
MozReview-Commit-ID: Fxt4sNm4vxa
2017-05-08 13:52:16 -04:00
Ethan Lin
d7211f7193 Bug 1362967 - Push clip region in WebRenderDisplayItemLayer. r=kats 2017-05-10 13:51:24 +08:00
Morris Tseng
b0d763cf65 Bug 1362324 - Use BlobImage for path type of bullet item. r=jrmuizel
MozReview-Commit-ID: 4ld6biSaFce
2017-05-08 14:14:41 +08:00
Kartikaya Gupta
41854dac48 Bug 1361356 - Properly unapply the stacking context transform and origin translation when building mask layers. r=ethlin
MozReview-Commit-ID: B5XzX6Tq4PZ
2017-05-05 11:44:49 -04:00
Kartikaya Gupta
ab133fca05 Bug 1361357 - Try fixing clip on WRDILayer. r=ethlin
This should fix some wrong-looking code that computes the clip for
WebRenderDisplayItemLayer instances. As this code is not exercised very
much it's hard to know if this change is actually correct.

MozReview-Commit-ID: BSsBpBmzWgd
2017-05-03 08:51:23 -04:00
Kartikaya Gupta
fe3e7f8654 Bug 1360246 - Remove the ParentBounds and TransformedVisibleBoundsRelativeToParent functions. r=nical
These functions also have built-in assumptions about the stacking
context structure mapping to the layer tree structure which are not
necessarily valid. So we remove these functions and update code that
uses them.

MozReview-Commit-ID: UkXXAF59qv
2017-05-03 08:48:08 -04:00
Kartikaya Gupta
4fc4a30a0b Bug 1360246 - Update code to use StackingContextHelper::ToRelativeWr* instead of RelativeToParent. r=nical
This updates more code that was using RelativeToParent() to use the
stacking context helper's ToRelativeWr* functions instead. This get us
closer to breaking the assumption that the WR stacking context order maps
1:1 to the layer tree structure.

MozReview-Commit-ID: HQrbvCgPOW4
2017-05-03 08:48:08 -04:00
Kartikaya Gupta
bb8dee32df Bug 1360246 - Propagate the StackingContextHelper to the rest of the displaylist-building code. r=nical
This propagates the StackingContextHelper to the rest of the code that
builds WR display items, because we will need it in future patches to
stop using RelativeToParent.

MozReview-Commit-ID: 3PlQrJRhH36
2017-05-03 08:48:08 -04:00
Kartikaya Gupta
246f113b73 Bug 1360246 - Propagate the StackingContextHelper through CreateWebRenderCommands. r=nical
This is needed for the next patch, because the bullet frame WR rendering
code will need a StackingContextHelper to pass to the PushGlyphs call.
It also helps with some of the later patches in this series, when we get
rid of the RelativeToParent calls.

MozReview-Commit-ID: Is0aciHhy2N
2017-05-03 08:48:07 -04:00
Kartikaya Gupta
b87a58caed Bug 1360246 - Propagate a StackingContextHelper all the way through the RenderLayer traversal. r=nical
This is needed in part 3 to update WebRenderTextLayer::RenderLayer, so
that it no longer assumes the parent container layer has pushed a
stacking context, and instead explicitly uses the StackingContextHelper.

MozReview-Commit-ID: 9twUmDgUipX
2017-05-03 08:48:06 -04:00
Ethan Lin
77f467b84f Bug 1360449 - Remove duplicate WrManager functions. r=kats 2017-05-01 00:59:26 +08:00
Kartikaya Gupta
52f3a8a0d9 Bug 1359842 - Convert RelativeToParent to deal with typed units. r=nical
As we are often converting from LayoutDevicePixel to LayerPixel types
in WebRenderDisplayItem code, I added a convenience overload of
RelativeToParent that takes a LayoutDeviceRect and returns a LayerRect,
even though this is a potential footgun if abused.

MozReview-Commit-ID: DABAWdOBsbV
2017-04-27 12:04:13 -04:00
Kartikaya Gupta
2ad1749b23 Bug 1359842 - Replace use of NSRectToRect in WebRender-related code with proper LayoutDevicePixel types. r=nical
MozReview-Commit-ID: 7MXFubPtLoD
2017-04-27 12:04:12 -04:00
Mason Chang
8e86b7e81b Bug 1337761 - Implement WebRenderLayerManager::EndEmptyTransaction. r=mattwoodrow 2017-04-19 15:39:44 -07:00
sotaro
2f88c289f9 Bug 1357644 - Use wr::ExternalImageId instead of uint64_t for external image id r=nical 2017-04-19 18:59:53 +09:00
sotaro
90e4a10adb Bug 1355702 - Reduce WrImageKey allocation for ExternalImages on sync ImageContainer 2017-04-19 11:08:35 +09:00
sotaro
fdb5a95ff1 Bug 1357338 - Deallocate external image id in WebRenderDisplayItemLayer r=nical 2017-04-19 09:28:43 +09:00
Kartikaya Gupta
6378cf841e Bug 1357065 - Update WebRenderDisplayItemLayer to use PushClip instead of PushScrollLayer because it's pushing a non-scrolling clip. r=jrmuizel
MozReview-Commit-ID: DdmCTsh9Jtq
2017-04-18 11:09:50 -04:00
Ethan Lin
ea8636c2c0 Bug 1349500 - Add webrender support for BulletFrame path type. r=mchang 2017-04-18 14:26:41 +08:00
sotaro
274bd605dc Bug 1356130 - Change SendImageContainer() as to return Maybe<wr::ImageKey> r=jrmuizel 2017-04-14 09:13:12 +09:00
Ethan Lin
637a373447 Bug 1355012 - Add mask layer support for WebRenderDisplayItemLayer. r=kats 2017-04-13 15:13:51 +08:00
Ethan Lin
08c81ccc64 Bug 1348755 - Part1. Handle clipping region for nsDisplayOutline. r=mattwoodrow 2017-03-27 16:17:45 +08:00
Jeff Muizelaar
677ccdea94 Bug 1344396. Build the display lists directly. r=kats
This is a largely uninteresting patch that just uses the DisplayListBuilder
directly. A wonderful cleanup patch will come after this. One of the more
interesting pieces is the use of PushBuiltDisplayList. This is needed for
handling empty transactions. See https://github.com/servo/webrender/pull/934
for more info.
2017-03-06 23:16:30 -05:00
Jeff Muizelaar
250229ef91 Bug 1343770. Separate out Parent commands from Child commands. r=kats
This basically just splits the enum in two and does the necessary plumbing. The
worst part is that now DisplayItemLayers need to have two arrays of commands.
Fortunately, this will be going away in the future.

This makes it so we don't send the child side commands to the parent.
2017-03-02 16:33:25 -05:00
Ryan Hunt
2c877fa601 Bug 1340908 - Include LayersLogging.h not WebRenderLayersLogging.h r=kats 2017-02-19 14:00:41 -05:00
Morris Tseng
b0ec67bd27 Bug 1339683 - Supporting send ImageContainer in the DisplayItemLayer. r=mchang r=nical
Allow to create an ImageClient for ImageContainer and send this
ImageClient to WebRender for rendering.

MozReview-Commit-ID: K14sCeAHJmD
2017-02-20 10:22:57 +08:00
Mason Chang
b0ec19f09d Bug 1337130. Add a WebRenderDisplayItemLayer. r=mattwoodrow 2017-02-14 15:06:50 -08:00