This commit contains the Gecko-side changes from WebRender PR#3277:
- Dedicated DirtyRect type.
- Separate the blob image APIs from regular image ones.
Differential Revision: https://phabricator.services.mozilla.com/D12463
--HG--
extra : moz-landing-system : lando
Patch originally developed on bug 1458921 but needs to land with the WR update.
MozReview-Commit-ID: 82BYyNWBAfn
--HG--
extra : rebase_source : e6bca2f446c019fd41a37c2c28db73bbe1cfc216
Instead of passing a WrPipelineInfo* to C++ code, we can now pass the
WrPipelineInfo directly. C++ code can access the info members without
having to call back into rust code, so the wr_pipeline_info* iterator
methods can be removed. Deleting the structure still requires passing it
back to rust.
MozReview-Commit-ID: HYcPX3mCGKW
--HG--
extra : rebase_source : f4b781cfc463c8e196f67a6e178ce4ce44a9464a
This is all the (bidirectional) glue that connects the SceneBuilderHooks
to the APZUpdater.
MozReview-Commit-ID: JIqUaClVa57
--HG--
extra : rebase_source : c6da81e63793570f79cdfa153f6d33d2ac05bdf6
If ANGLE is used, we favour Immediate texture upload. Otherwise we
favour Dynamic. Previously, we were using the default of Stream.
MozReview-Commit-ID: LXDKxnmjp6O
This patch was originally developed on bug 1418564.
MozReview-Commit-ID: 53oydIqjhvF
--HG--
extra : rebase_source : 8980cc947b3b8c46a75d032e7e557f39bae08b97
This allows easier testing of shader changes. If you point this environment
variable at your gfx/webrender/res/ directory, the shaders will be read from
that directory when Firefox is launched, so you can test shader changes just by
restarting Firefox and don't need to recompile.
MozReview-Commit-ID: 9Dt6MhErnGS
--HG--
extra : rebase_source : 3c8cb83f28a6b6b00fb4437a7fd7f04dd5511633
This commit adds some directives to help cbindgen generate correct
structs and functions, removes some old FFI code that isn't needed
anymore, and regenerates webrender_ffi_generated.h
MozReview-Commit-ID: KZSEZEN671A
--HG--
extra : rebase_source : 23a07dd11037943156983d9facc039bb7af51c95
This is only temporary as ExternalImageId has been made repr(C) upstream.
MozReview-Commit-ID: 1On7fRbNI4o
--HG--
extra : rebase_source : 91cb93829de5ccf0a6f0a05ed0d2169268b6c18c
This removes the call to push_scroll_layer in wr_push_stacking_context, so that
it's now possible to push a stacking context without necessarily pushing a
scroll layer. There is already a separate function to push a scroll layer so the
call sites can do that. This patch just changes all the call sites that were
pushing a stacking context to also push a scroll layer, so there should be no
functional change. Future patches can remove the spurious scroll layers.
MozReview-Commit-ID: FtCkc9JQd8l
Right now we just cast from a float* on the C++ side to a LayoutTransform on
the Rust side, except the LayoutTransform isn't a repr(C) storage type, so
there's no guarantee that it will actually have the same layout. Adding an
explicit type and conversion code ensure that we are able to pass the matrix
across the boundary safely.
MozReview-Commit-ID: H3gK3g0K3xz
The WrExternalImageId is currently a struct wrapping a uint64_t on the C++ side,
which is unnecessary as we can just typedef it directly to a uint64_t. On the
Rust side it's a tuple of (u64).
Also the WrExternalImageIdType enum should be WrExternalImageType for consistency.
MozReview-Commit-ID: DgOf4xfY9h3
The binding generator just takes the Rust field names and uses that in the
generated C++ structs. So installing the autogenerated bindings is easier if
we make sure the names are the same ahead of time.
MozReview-Commit-ID: 6cuzmtI5Qqw