mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 17:25:36 +00:00
239a528013
When a transform thinks it's animated we should abandon screen rasterization and instead favour local rasterization. This produces a more visually pleasant rendering, as pixel-snapping "wobbles" the text between frames. The float scale of GlyphRasterSpace::Local is currently unused, but this PR tries its best to set it to a reasonable value, based on discussion with glennw about the intended semantics. We agreed it should specify the scale *relative* to the parent stacking context, which means it's just whatever scaling the stacking context's transform applies. It's possible we'll need to clamp this value or make it properly 2-dimensional later on. Some book-keeping is added to StackingContextHelper to ensure that GlyphRasterSpace::Screen is never requested by a descendent of a stacking context using GlyphRasterSpace::Local. nsDisplayMask is changed to use a StackingContextHelper to ensure rasterSpace is properly propagated. In addition, this is the first commit making use of cbindgen's new support for bridging Rust enums natively into C++! This bumps our minimum cbindgen to 6.0.0 (just released). MozReview-Commit-ID: 9AlsB6nUheB --HG-- extra : rebase_source : 247e5b197e998682cb4bb74f6f9319a9a4dd3264
39 lines
1.1 KiB
TOML
39 lines
1.1 KiB
TOML
header = """/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */"""
|
|
autogen_warning = """/* DO NOT MODIFY THIS MANUALLY! This file was generated using cbindgen.
|
|
* To generate this file:
|
|
* 1. Get the latest cbindgen using `cargo install --force cbindgen`
|
|
* a. Alternatively, you can clone `https://github.com/eqrion/cbindgen` and use a tagged release
|
|
* 2. Run `rustup run nightly cbindgen toolkit/library/rust/ --lockfile Cargo.lock --crate webrender_bindings -o gfx/webrender_bindings/webrender_ffi_generated.h`
|
|
*/"""
|
|
include_version = true
|
|
braces = "SameLine"
|
|
line_length = 100
|
|
tab_width = 2
|
|
language = "C++"
|
|
namespaces = ["mozilla", "wr"]
|
|
|
|
[parse]
|
|
parse_deps = true
|
|
include = ["log", "webrender", "webrender_api"]
|
|
expand = ["euclid"]
|
|
|
|
[fn]
|
|
prefix = "WR_INLINE"
|
|
postfix = "WR_FUNC"
|
|
args = "Vertical"
|
|
rename_args = "GeckoCase"
|
|
|
|
[struct]
|
|
derive_eq = true
|
|
|
|
[enum]
|
|
add_sentinel = true
|
|
derive_helper_methods = true
|
|
|
|
[defines]
|
|
"target_os = windows" = "XP_WIN"
|
|
"target_os = macos" = "XP_MACOSX"
|
|
|