mirror of
https://github.com/servo/servo.git
synced 2025-06-29 19:43:39 +01:00
Auto merge of #23451 - pylbrecht:canvas.rendering, r=Manishearth
Use raqote for 2D canvas rendering <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix (part of) #23431 and #23466 <!-- Either: --> <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23451) <!-- Reviewable:end -->
This commit is contained in:
commit
657ed9f1ca
18 changed files with 1599 additions and 475 deletions
189
Cargo.lock
generated
189
Cargo.lock
generated
|
@ -146,7 +146,7 @@ version = "0.36.0"
|
||||||
source = "git+https://github.com/servo/rust-azure#ca9cc643808f6f63576c5c2cd098e973406cc7f3"
|
source = "git+https://github.com/servo/rust-azure#ca9cc643808f6f63576c5c2cd098e973406cc7f3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cmake 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cmake 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"servo-freetype-sys 4.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"servo-freetype-sys 4.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"servo-skia 0.30000021.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"servo-skia 0.30000021.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -424,7 +424,7 @@ dependencies = [
|
||||||
"canvas_traits 0.0.1",
|
"canvas_traits 0.0.1",
|
||||||
"compositing 0.0.1",
|
"compositing 0.0.1",
|
||||||
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"half 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"half 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -433,6 +433,7 @@ dependencies = [
|
||||||
"num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"offscreen_gl_context 0.22.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"offscreen_gl_context 0.22.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"pixels 0.0.1",
|
"pixels 0.0.1",
|
||||||
|
"raqote 0.4.1-alpha.0 (git+https://github.com/jrmuizel/raqote)",
|
||||||
"serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"servo_config 0.0.1",
|
"servo_config 0.0.1",
|
||||||
"webrender 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender 0.60.0 (git+https://github.com/servo/webrender)",
|
||||||
|
@ -444,7 +445,7 @@ name = "canvas_traits"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -621,7 +622,7 @@ version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"embedder_traits 0.0.1",
|
"embedder_traits 0.0.1",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gfx_traits 0.0.1",
|
"gfx_traits 0.0.1",
|
||||||
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -661,7 +662,7 @@ dependencies = [
|
||||||
"debugger 0.0.1",
|
"debugger 0.0.1",
|
||||||
"devtools_traits 0.0.1",
|
"devtools_traits 0.0.1",
|
||||||
"embedder_traits 0.0.1",
|
"embedder_traits 0.0.1",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gaol 0.2.0 (git+https://github.com/servo/gaol)",
|
"gaol 0.2.0 (git+https://github.com/servo/gaol)",
|
||||||
"gfx 0.0.1",
|
"gfx 0.0.1",
|
||||||
"gfx_traits 0.0.1",
|
"gfx_traits 0.0.1",
|
||||||
|
@ -721,7 +722,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "core-text"
|
name = "core-text"
|
||||||
version = "13.1.0"
|
version = "13.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -1102,6 +1103,16 @@ dependencies = [
|
||||||
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "dwrote"
|
||||||
|
version = "0.9.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "either"
|
name = "either"
|
||||||
version = "1.1.0"
|
version = "1.1.0"
|
||||||
|
@ -1215,7 +1226,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "euclid"
|
name = "euclid"
|
||||||
version = "0.19.7"
|
version = "0.19.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"euclid_macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid_macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -1244,7 +1255,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "failure"
|
name = "failure"
|
||||||
version = "0.1.3"
|
version = "0.1.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
"backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -1278,11 +1289,40 @@ dependencies = [
|
||||||
"miniz_oxide_c_api 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"miniz_oxide_c_api 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "float-ord"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fnv"
|
name = "fnv"
|
||||||
version = "1.0.6"
|
version = "1.0.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "font-kit"
|
||||||
|
version = "0.2.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"core-text 13.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"dirs 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"dwrote 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"float-ord 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"freetype 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"lyon_path 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"servo-fontconfig 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"walkdir 2.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fontsan"
|
name = "fontsan"
|
||||||
version = "0.4.0"
|
version = "0.4.0"
|
||||||
|
@ -1308,7 +1348,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "freetype"
|
name = "freetype"
|
||||||
version = "0.4.0"
|
version = "0.4.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -1405,12 +1445,12 @@ dependencies = [
|
||||||
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-text 13.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-text 13.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"dwrote 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"dwrote 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"fontsan 0.4.0 (git+https://github.com/servo/fontsan)",
|
"fontsan 0.4.0 (git+https://github.com/servo/fontsan)",
|
||||||
"freetype 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"freetype 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gfx_traits 0.0.1",
|
"gfx_traits 0.0.1",
|
||||||
"harfbuzz-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"harfbuzz-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -1893,9 +1933,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cmake 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cmake 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-text 13.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-text 13.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"freetype 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"freetype 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
"pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -2265,7 +2305,7 @@ dependencies = [
|
||||||
"canvas_traits 0.0.1",
|
"canvas_traits 0.0.1",
|
||||||
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"embedder_traits 0.0.1",
|
"embedder_traits 0.0.1",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gfx 0.0.1",
|
"gfx 0.0.1",
|
||||||
|
@ -2311,7 +2351,7 @@ dependencies = [
|
||||||
"atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"embedder_traits 0.0.1",
|
"embedder_traits 0.0.1",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gfx 0.0.1",
|
"gfx 0.0.1",
|
||||||
|
@ -2449,7 +2489,7 @@ dependencies = [
|
||||||
"devtools_traits 0.0.1",
|
"devtools_traits 0.0.1",
|
||||||
"embedder_traits 0.0.1",
|
"embedder_traits 0.0.1",
|
||||||
"env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gaol 0.2.0 (git+https://github.com/servo/gaol)",
|
"gaol 0.2.0 (git+https://github.com/servo/gaol)",
|
||||||
"gfx 0.0.1",
|
"gfx 0.0.1",
|
||||||
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -2537,6 +2577,24 @@ dependencies = [
|
||||||
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lyon_geom"
|
||||||
|
version = "0.12.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"arrayvec 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lyon_path"
|
||||||
|
version = "0.12.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"lyon_geom 0.12.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lzw"
|
name = "lzw"
|
||||||
version = "0.10.0"
|
version = "0.10.0"
|
||||||
|
@ -2570,7 +2628,7 @@ dependencies = [
|
||||||
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"hashglobe 0.1.0",
|
"hashglobe 0.1.0",
|
||||||
"hyper 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hyper 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"hyper_serde 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hyper_serde 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -2634,6 +2692,15 @@ name = "memchr"
|
||||||
version = "2.2.0"
|
version = "2.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "memmap"
|
||||||
|
version = "0.6.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "memmap"
|
name = "memmap"
|
||||||
version = "0.7.0"
|
version = "0.7.0"
|
||||||
|
@ -3061,7 +3128,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gl_generator 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gl_generator 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -3255,7 +3322,7 @@ dependencies = [
|
||||||
name = "pixels"
|
name = "pixels"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"malloc_size_of 0.0.1",
|
"malloc_size_of 0.0.1",
|
||||||
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -3272,7 +3339,7 @@ version = "0.13.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"binary-space-partition 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"binary-space-partition 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
@ -3500,6 +3567,19 @@ dependencies = [
|
||||||
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "raqote"
|
||||||
|
version = "0.4.1-alpha.0"
|
||||||
|
source = "git+https://github.com/jrmuizel/raqote#15748d146466bc1db09699fe149cc760b81cdf60"
|
||||||
|
dependencies = [
|
||||||
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"font-kit 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"lyon_geom 0.12.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"png 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"sw-composite 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"typed-arena 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rayon"
|
name = "rayon"
|
||||||
version = "1.0.0"
|
version = "1.0.0"
|
||||||
|
@ -3593,7 +3673,7 @@ version = "0.11.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bindgen 0.49.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bindgen 0.49.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gl_generator 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gl_generator 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"glutin 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"glutin 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -3699,7 +3779,7 @@ dependencies = [
|
||||||
"embedder_traits 0.0.1",
|
"embedder_traits 0.0.1",
|
||||||
"encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
"encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"enum-iterator 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"enum-iterator 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"headers-core 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"headers-core 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -3777,7 +3857,7 @@ dependencies = [
|
||||||
"canvas_traits 0.0.1",
|
"canvas_traits 0.0.1",
|
||||||
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gfx_traits 0.0.1",
|
"gfx_traits 0.0.1",
|
||||||
"html5ever 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"html5ever 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -3817,7 +3897,7 @@ dependencies = [
|
||||||
name = "script_tests"
|
name = "script_tests"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"keyboard-types 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"keyboard-types 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"script 0.0.1",
|
"script 0.0.1",
|
||||||
"servo_url 0.0.1",
|
"servo_url 0.0.1",
|
||||||
|
@ -3833,7 +3913,7 @@ dependencies = [
|
||||||
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"devtools_traits 0.0.1",
|
"devtools_traits 0.0.1",
|
||||||
"embedder_traits 0.0.1",
|
"embedder_traits 0.0.1",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gfx_traits 0.0.1",
|
"gfx_traits 0.0.1",
|
||||||
"http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
"http 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"hyper 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hyper 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -3935,7 +4015,7 @@ dependencies = [
|
||||||
"bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"cc 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cc 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"glutin 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"glutin 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -4009,7 +4089,7 @@ source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"boxfnonce 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"boxfnonce 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"byte-slice-cast 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"byte-slice-cast 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num-traits 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
"petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -4126,7 +4206,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cgl 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"cmake 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cmake 0.1.38 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"expat-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"expat-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"glutin 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"glutin 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -4171,7 +4251,7 @@ dependencies = [
|
||||||
"dirs 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"dirs 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"embedder_traits 0.0.1",
|
"embedder_traits 0.0.1",
|
||||||
"env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"getopts 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
"getopts 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -4201,7 +4281,7 @@ name = "servo_geometry"
|
||||||
version = "0.0.1"
|
version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"malloc_size_of 0.0.1",
|
"malloc_size_of 0.0.1",
|
||||||
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"style_traits 0.0.1",
|
"style_traits 0.0.1",
|
||||||
|
@ -4471,7 +4551,7 @@ dependencies = [
|
||||||
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"derive_more 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"derive_more 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
"encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"fallible 0.0.1",
|
"fallible 0.0.1",
|
||||||
"fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"hashglobe 0.1.0",
|
"hashglobe 0.1.0",
|
||||||
|
@ -4537,7 +4617,7 @@ dependencies = [
|
||||||
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"html5ever 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"html5ever 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rayon 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rayon 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -4560,7 +4640,7 @@ dependencies = [
|
||||||
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cssparser 0.25.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"malloc_size_of 0.0.1",
|
"malloc_size_of 0.0.1",
|
||||||
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -4574,6 +4654,11 @@ dependencies = [
|
||||||
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
"webrender_api 0.60.0 (git+https://github.com/servo/webrender)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "sw-composite"
|
||||||
|
version = "0.5.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "swapper"
|
name = "swapper"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
@ -4910,6 +4995,11 @@ name = "try-lock"
|
||||||
version = "0.2.2"
|
version = "0.2.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "typed-arena"
|
||||||
|
version = "1.4.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "typenum"
|
name = "typenum"
|
||||||
version = "1.10.0"
|
version = "1.10.0"
|
||||||
|
@ -5165,7 +5255,7 @@ dependencies = [
|
||||||
"base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"cookie 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cookie 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"hyper 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
"hyper 0.12.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -5198,10 +5288,10 @@ dependencies = [
|
||||||
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-text 13.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-text 13.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"cstr 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cstr 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"dwrote 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"dwrote 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"freetype 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"freetype 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"fxhash 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"image 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -5237,7 +5327,7 @@ dependencies = [
|
||||||
"core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"derive_more 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"derive_more 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -5261,7 +5351,7 @@ version = "0.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"canvas_traits 0.0.1",
|
"canvas_traits 0.0.1",
|
||||||
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
"gleam 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -5295,7 +5385,7 @@ name = "which"
|
||||||
version = "2.0.1"
|
version = "2.0.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -5372,7 +5462,7 @@ version = "0.0.1"
|
||||||
source = "git+https://github.com/servo/webrender#e53aae02728e155e555b8baa9d180d90dac3b86f"
|
source = "git+https://github.com/servo/webrender#e53aae02728e155e555b8baa9d180d90dac3b86f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"app_units 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -5537,7 +5627,7 @@ dependencies = [
|
||||||
"checksum core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "58667b9a618a37ea8c4c4cb5298703e5dfadcd3698c79f54fc43e6a2e94733ea"
|
"checksum core-foundation 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "58667b9a618a37ea8c4c4cb5298703e5dfadcd3698c79f54fc43e6a2e94733ea"
|
||||||
"checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
|
"checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
|
||||||
"checksum core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)" = "56790968ab1c8a1202a102e6de05fc6e1ec87da99e4e93e9a7d13efbfc1e95a9"
|
"checksum core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)" = "56790968ab1c8a1202a102e6de05fc6e1ec87da99e4e93e9a7d13efbfc1e95a9"
|
||||||
"checksum core-text 13.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a6705907bc253cee90b8551017836ce50904be305c99fec5ea74a8d72d799e58"
|
"checksum core-text 13.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d95a72b5e50e549969dd88eff3047495fe5b8c6f028635442c2b708be707e669"
|
||||||
"checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb"
|
"checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb"
|
||||||
"checksum crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e91d5240c6975ef33aeb5f148f35275c25eda8e8a5f95abe421978b05b8bf192"
|
"checksum crc32fast 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e91d5240c6975ef33aeb5f148f35275c25eda8e8a5f95abe421978b05b8bf192"
|
||||||
"checksum crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f0ed1a4de2235cabda8558ff5840bffb97fcb64c97827f354a451307df5f72b"
|
"checksum crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f0ed1a4de2235cabda8558ff5840bffb97fcb64c97827f354a451307df5f72b"
|
||||||
|
@ -5568,6 +5658,7 @@ dependencies = [
|
||||||
"checksum dtoa 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "80c8b71fd71146990a9742fc06dcbbde19161a267e0ad4e572c35162f4578c90"
|
"checksum dtoa 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "80c8b71fd71146990a9742fc06dcbbde19161a267e0ad4e572c35162f4578c90"
|
||||||
"checksum dtoa-short 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe6f727b406462fd57c95fed84d1b0dbfb5f0136fcac005adba9ea0367c05cc8"
|
"checksum dtoa-short 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe6f727b406462fd57c95fed84d1b0dbfb5f0136fcac005adba9ea0367c05cc8"
|
||||||
"checksum dwrote 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c31c624339dab99c223a4b26c2e803b7c248adaca91549ce654c76f39a03f5c8"
|
"checksum dwrote 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c31c624339dab99c223a4b26c2e803b7c248adaca91549ce654c76f39a03f5c8"
|
||||||
|
"checksum dwrote 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0bd1369e02db5e9b842a9b67bce8a2fcc043beafb2ae8a799dd482d46ea1ff0d"
|
||||||
"checksum either 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "18785c1ba806c258137c937e44ada9ee7e69a37e3c72077542cd2f069d78562a"
|
"checksum either 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "18785c1ba806c258137c937e44ada9ee7e69a37e3c72077542cd2f069d78562a"
|
||||||
"checksum encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ca20350a7cb5aab5b9034731123d6d412caf3e92d4985e739e411ba0955fd0eb"
|
"checksum encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ca20350a7cb5aab5b9034731123d6d412caf3e92d4985e739e411ba0955fd0eb"
|
||||||
"checksum energy-monitor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe872d0664f1cc60db36349af245d892ee67d3c8f78055df0ebc43271fd4e05c"
|
"checksum energy-monitor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fe872d0664f1cc60db36349af245d892ee67d3c8f78055df0ebc43271fd4e05c"
|
||||||
|
@ -5579,18 +5670,20 @@ dependencies = [
|
||||||
"checksum enum-iterator-derive 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "293ee6af5f9349c2594a7c867b7c89347fb939415508e6367a19bd246ffc08d8"
|
"checksum enum-iterator-derive 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "293ee6af5f9349c2594a7c867b7c89347fb939415508e6367a19bd246ffc08d8"
|
||||||
"checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e"
|
"checksum env_logger 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e"
|
||||||
"checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02"
|
"checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02"
|
||||||
"checksum euclid 0.19.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a8acd6a7f2740b7b936008acd58b1def492854254dc4af9d2b850ca01f4960e"
|
"checksum euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7a4719a544a67ed3fc33784c2bd2c6581663dfe83b719a6ae05c6dabc3b51c73"
|
||||||
"checksum euclid_macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fdcb84c18ea5037a1c5a23039b4ff29403abce2e0d6b1daa11cf0bde2b30be15"
|
"checksum euclid_macros 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fdcb84c18ea5037a1c5a23039b4ff29403abce2e0d6b1daa11cf0bde2b30be15"
|
||||||
"checksum expat-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa"
|
"checksum expat-sys 2.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa"
|
||||||
"checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7"
|
"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2"
|
||||||
"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
|
"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
|
||||||
"checksum fixedbitset 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33"
|
"checksum fixedbitset 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33"
|
||||||
"checksum flate2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9fac2277e84e5e858483756647a9d0aa8d9a2b7cba517fd84325a0aaa69a0909"
|
"checksum flate2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9fac2277e84e5e858483756647a9d0aa8d9a2b7cba517fd84325a0aaa69a0909"
|
||||||
|
"checksum float-ord 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e"
|
||||||
"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
|
"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
|
||||||
|
"checksum font-kit 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c5b784f7a48d718df8d9ee28f81f8afa0a7ffdd61038957cba1ec6837a836d46"
|
||||||
"checksum fontsan 0.4.0 (git+https://github.com/servo/fontsan)" = "<none>"
|
"checksum fontsan 0.4.0 (git+https://github.com/servo/fontsan)" = "<none>"
|
||||||
"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
|
"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
|
||||||
"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
||||||
"checksum freetype 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b659e75b7a7338fe75afd7f909fc2b71937845cffb6ebe54ba2e50f13d8e903d"
|
"checksum freetype 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "11926b2b410b469d0e9399eca4cbbe237a9ef02176c485803b29216307e8e028"
|
||||||
"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
|
"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
|
||||||
"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
|
"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
|
||||||
"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
|
"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
|
||||||
|
@ -5687,6 +5780,8 @@ dependencies = [
|
||||||
"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
|
"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
|
||||||
"checksum lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ed946d4529956a20f2d63ebe1b69996d5a2137c91913fe3ebbeff957f5bca7ff"
|
"checksum lock_api 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ed946d4529956a20f2d63ebe1b69996d5a2137c91913fe3ebbeff957f5bca7ff"
|
||||||
"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
|
"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
|
||||||
|
"checksum lyon_geom 0.12.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0638070e85f0e8b5da3909d8c5c0a66785b18da96a1e8dc30acb0aea9770529a"
|
||||||
|
"checksum lyon_path 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e9dc8e0746b7cca11960b602f7fe037bb067746a01eab4aa502fed1494544843"
|
||||||
"checksum lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
|
"checksum lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
|
||||||
"checksum mac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
|
"checksum mac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
|
||||||
"checksum mach 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "86dd2487cdfea56def77b88438a2c915fb45113c5319bfe7e14306ca4cd0b0e1"
|
"checksum mach 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "86dd2487cdfea56def77b88438a2c915fb45113c5319bfe7e14306ca4cd0b0e1"
|
||||||
|
@ -5695,6 +5790,7 @@ dependencies = [
|
||||||
"checksum markup5ever 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f1af46a727284117e09780d05038b1ce6fc9c76cc6df183c3dae5a8955a25e21"
|
"checksum markup5ever 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f1af46a727284117e09780d05038b1ce6fc9c76cc6df183c3dae5a8955a25e21"
|
||||||
"checksum matches 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "efd7622e3022e1a6eaa602c4cea8912254e5582c9c692e9167714182244801b1"
|
"checksum matches 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "efd7622e3022e1a6eaa602c4cea8912254e5582c9c692e9167714182244801b1"
|
||||||
"checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39"
|
"checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39"
|
||||||
|
"checksum memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2ffa2c986de11a9df78620c01eeaaf27d94d3ff02bf81bfcca953102dd0c6ff"
|
||||||
"checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
|
"checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
|
||||||
"checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
|
"checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
|
||||||
"checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425"
|
"checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425"
|
||||||
|
@ -5770,6 +5866,7 @@ dependencies = [
|
||||||
"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
|
"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
|
||||||
"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
|
"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
|
||||||
"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
|
"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
|
||||||
|
"checksum raqote 0.4.1-alpha.0 (git+https://github.com/jrmuizel/raqote)" = "<none>"
|
||||||
"checksum rayon 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "485541959c8ecc49865526fe6c4de9653dd6e60d829d6edf0be228167b60372d"
|
"checksum rayon 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "485541959c8ecc49865526fe6c4de9653dd6e60d829d6edf0be228167b60372d"
|
||||||
"checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356"
|
"checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356"
|
||||||
"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
|
"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
|
||||||
|
@ -5833,6 +5930,7 @@ dependencies = [
|
||||||
"checksum string_cache_codegen 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1eea1eee654ef80933142157fdad9dd8bc43cf7c74e999e369263496f04ff4da"
|
"checksum string_cache_codegen 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1eea1eee654ef80933142157fdad9dd8bc43cf7c74e999e369263496f04ff4da"
|
||||||
"checksum string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc"
|
"checksum string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc"
|
||||||
"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
|
"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
|
||||||
|
"checksum sw-composite 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1638f200d9594cad22e9e58baf046382d8f5a38d40878db1705dcaeae239093"
|
||||||
"checksum swapper 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e454d048db5527d000bfddb77bd072bbf3a1e2ae785f16d9bd116e07c2ab45eb"
|
"checksum swapper 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e454d048db5527d000bfddb77bd072bbf3a1e2ae785f16d9bd116e07c2ab45eb"
|
||||||
"checksum syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)" = "a1393e4a97a19c01e900df2aec855a29f71cf02c402e2f443b8d2747c25c5dbe"
|
"checksum syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)" = "a1393e4a97a19c01e900df2aec855a29f71cf02c402e2f443b8d2747c25c5dbe"
|
||||||
"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015"
|
"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015"
|
||||||
|
@ -5864,6 +5962,7 @@ dependencies = [
|
||||||
"checksum toml 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a7540f4ffc193e0d3c94121edb19b055670d369f77d5804db11ae053a45b6e7e"
|
"checksum toml 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a7540f4ffc193e0d3c94121edb19b055670d369f77d5804db11ae053a45b6e7e"
|
||||||
"checksum truetype 0.26.0 (registry+https://github.com/rust-lang/crates.io-index)" = "acec30350633d6dac9dc1a625786b6cbe9150664be941aac2c35ad7199eab877"
|
"checksum truetype 0.26.0 (registry+https://github.com/rust-lang/crates.io-index)" = "acec30350633d6dac9dc1a625786b6cbe9150664be941aac2c35ad7199eab877"
|
||||||
"checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382"
|
"checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382"
|
||||||
|
"checksum typed-arena 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c6c06a92aef38bb4dc5b0df00d68496fc31307c5344c867bb61678c6e1671ec5"
|
||||||
"checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169"
|
"checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169"
|
||||||
"checksum ucd 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fe4fa6e588762366f1eb4991ce59ad1b93651d0b769dfb4e4d1c5c4b943d1159"
|
"checksum ucd 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fe4fa6e588762366f1eb4991ce59ad1b93651d0b769dfb4e4d1c5c4b943d1159"
|
||||||
"checksum ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd2be2d6639d0f8fe6cdda291ad456e23629558d466e2789d2c3e9892bda285d"
|
"checksum ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd2be2d6639d0f8fe6cdda291ad456e23629558d466e2789d2c3e9892bda285d"
|
||||||
|
|
|
@ -11,10 +11,13 @@ name = "canvas"
|
||||||
path = "lib.rs"
|
path = "lib.rs"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
azure_backend = ["azure"]
|
||||||
|
default = ["azure_backend"]
|
||||||
webgl_backtrace = ["canvas_traits/webgl_backtrace"]
|
webgl_backtrace = ["canvas_traits/webgl_backtrace"]
|
||||||
|
raqote_backend = ["raqote"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
azure = {git = "https://github.com/servo/rust-azure"}
|
azure = {git = "https://github.com/servo/rust-azure", optional = true}
|
||||||
byteorder = "1"
|
byteorder = "1"
|
||||||
canvas_traits = {path = "../canvas_traits"}
|
canvas_traits = {path = "../canvas_traits"}
|
||||||
compositing = {path = "../compositing"}
|
compositing = {path = "../compositing"}
|
||||||
|
@ -27,6 +30,7 @@ ipc-channel = "0.11"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
num-traits = "0.2"
|
num-traits = "0.2"
|
||||||
offscreen_gl_context = {version = "0.22", features = ["serde", "osmesa"]}
|
offscreen_gl_context = {version = "0.22", features = ["serde", "osmesa"]}
|
||||||
|
raqote = {git = "https://github.com/jrmuizel/raqote", optional = true}
|
||||||
pixels = {path = "../pixels"}
|
pixels = {path = "../pixels"}
|
||||||
serde_bytes = "0.10"
|
serde_bytes = "0.10"
|
||||||
servo_config = {path = "../config"}
|
servo_config = {path = "../config"}
|
||||||
|
|
761
components/canvas/azure_backend.rs
Normal file
761
components/canvas/azure_backend.rs
Normal file
|
@ -0,0 +1,761 @@
|
||||||
|
/* 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 https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
use crate::canvas_data::{
|
||||||
|
Backend, CanvasPaintState, Color, CompositionOp, DrawOptions, ExtendMode, Filter,
|
||||||
|
GenericDrawTarget, GenericPathBuilder, GradientStop, GradientStops, Path, Pattern,
|
||||||
|
SourceSurface, StrokeOptions, SurfaceFormat,
|
||||||
|
};
|
||||||
|
use crate::canvas_paint_thread::AntialiasMode;
|
||||||
|
use azure::azure::{AzFloat, AzGradientStop, AzPoint};
|
||||||
|
use azure::azure_hl;
|
||||||
|
use azure::azure_hl::SurfacePattern;
|
||||||
|
use azure::azure_hl::{BackendType, ColorPattern, DrawTarget};
|
||||||
|
use azure::azure_hl::{CapStyle, JoinStyle};
|
||||||
|
use azure::azure_hl::{LinearGradientPattern, RadialGradientPattern};
|
||||||
|
use canvas_traits::canvas::*;
|
||||||
|
use cssparser::RGBA;
|
||||||
|
use euclid::{Point2D, Rect, Size2D, Transform2D, Vector2D};
|
||||||
|
|
||||||
|
pub struct AzureBackend;
|
||||||
|
|
||||||
|
impl Backend for AzureBackend {
|
||||||
|
fn get_composition_op(&self, opts: &DrawOptions) -> CompositionOp {
|
||||||
|
CompositionOp::Azure(opts.as_azure().composition)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn need_to_draw_shadow(&self, color: &Color) -> bool {
|
||||||
|
color.as_azure().a != 0.0f32
|
||||||
|
}
|
||||||
|
|
||||||
|
fn size_from_pattern(&self, rect: &Rect<f32>, pattern: &Pattern) -> Option<Size2D<f32>> {
|
||||||
|
match pattern {
|
||||||
|
Pattern::Azure(azure_hl::Pattern::Surface(ref surface)) => {
|
||||||
|
let surface_size = surface.size();
|
||||||
|
let size = match (surface.repeat_x, surface.repeat_y) {
|
||||||
|
(true, true) => rect.size,
|
||||||
|
(true, false) => Size2D::new(rect.size.width, surface_size.height as f32),
|
||||||
|
(false, true) => Size2D::new(surface_size.width as f32, rect.size.height),
|
||||||
|
(false, false) => {
|
||||||
|
Size2D::new(surface_size.width as f32, surface_size.height as f32)
|
||||||
|
},
|
||||||
|
};
|
||||||
|
Some(size)
|
||||||
|
},
|
||||||
|
Pattern::Azure(_) => None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn set_shadow_color<'a>(&mut self, color: RGBA, state: &mut CanvasPaintState<'a>) {
|
||||||
|
state.shadow_color = Color::Azure(color.to_azure_style());
|
||||||
|
}
|
||||||
|
|
||||||
|
fn set_fill_style<'a>(
|
||||||
|
&mut self,
|
||||||
|
style: FillOrStrokeStyle,
|
||||||
|
state: &mut CanvasPaintState<'a>,
|
||||||
|
drawtarget: &GenericDrawTarget,
|
||||||
|
) {
|
||||||
|
if let Some(pattern) = style.to_azure_pattern(drawtarget) {
|
||||||
|
state.fill_style = Pattern::Azure(pattern)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn set_stroke_style<'a>(
|
||||||
|
&mut self,
|
||||||
|
style: FillOrStrokeStyle,
|
||||||
|
state: &mut CanvasPaintState<'a>,
|
||||||
|
drawtarget: &GenericDrawTarget,
|
||||||
|
) {
|
||||||
|
if let Some(pattern) = style.to_azure_pattern(drawtarget) {
|
||||||
|
state.stroke_style = Pattern::Azure(pattern)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn set_global_composition<'a>(
|
||||||
|
&mut self,
|
||||||
|
op: CompositionOrBlending,
|
||||||
|
state: &mut CanvasPaintState<'a>,
|
||||||
|
) {
|
||||||
|
state
|
||||||
|
.draw_options
|
||||||
|
.as_azure_mut()
|
||||||
|
.set_composition_op(op.to_azure_style());
|
||||||
|
}
|
||||||
|
|
||||||
|
fn create_drawtarget(&self, size: Size2D<u64>) -> Box<GenericDrawTarget> {
|
||||||
|
// FIXME(nox): Why is the size made of i32 values?
|
||||||
|
Box::new(DrawTarget::new(
|
||||||
|
BackendType::Skia,
|
||||||
|
size.to_i32(),
|
||||||
|
azure_hl::SurfaceFormat::B8G8R8A8,
|
||||||
|
))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn recreate_paint_state<'a>(&self, state: &CanvasPaintState<'a>) -> CanvasPaintState<'a> {
|
||||||
|
CanvasPaintState::new(AntialiasMode::from_azure(
|
||||||
|
state.draw_options.as_azure().antialias,
|
||||||
|
))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> CanvasPaintState<'a> {
|
||||||
|
pub fn new(antialias: AntialiasMode) -> CanvasPaintState<'a> {
|
||||||
|
CanvasPaintState {
|
||||||
|
draw_options: DrawOptions::Azure(azure_hl::DrawOptions::new(
|
||||||
|
1.0,
|
||||||
|
azure_hl::CompositionOp::Over,
|
||||||
|
antialias.into_azure(),
|
||||||
|
)),
|
||||||
|
fill_style: Pattern::Azure(azure_hl::Pattern::Color(ColorPattern::new(
|
||||||
|
azure_hl::Color::black(),
|
||||||
|
))),
|
||||||
|
stroke_style: Pattern::Azure(azure_hl::Pattern::Color(ColorPattern::new(
|
||||||
|
azure_hl::Color::black(),
|
||||||
|
))),
|
||||||
|
stroke_opts: StrokeOptions::Azure(azure_hl::StrokeOptions::new(
|
||||||
|
1.0,
|
||||||
|
JoinStyle::MiterOrBevel,
|
||||||
|
CapStyle::Butt,
|
||||||
|
10.0,
|
||||||
|
&[],
|
||||||
|
)),
|
||||||
|
transform: Transform2D::identity(),
|
||||||
|
shadow_offset_x: 0.0,
|
||||||
|
shadow_offset_y: 0.0,
|
||||||
|
shadow_blur: 0.0,
|
||||||
|
shadow_color: Color::Azure(azure_hl::Color::transparent()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl GenericPathBuilder for azure_hl::PathBuilder {
|
||||||
|
fn arc(
|
||||||
|
&self,
|
||||||
|
origin: Point2D<f32>,
|
||||||
|
radius: f32,
|
||||||
|
start_angle: f32,
|
||||||
|
end_angle: f32,
|
||||||
|
anticlockwise: bool,
|
||||||
|
) {
|
||||||
|
self.arc(
|
||||||
|
origin as Point2D<AzFloat>,
|
||||||
|
radius as AzFloat,
|
||||||
|
start_angle as AzFloat,
|
||||||
|
end_angle as AzFloat,
|
||||||
|
anticlockwise,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
fn bezier_curve_to(
|
||||||
|
&self,
|
||||||
|
control_point1: &Point2D<f32>,
|
||||||
|
control_point2: &Point2D<f32>,
|
||||||
|
control_point3: &Point2D<f32>,
|
||||||
|
) {
|
||||||
|
self.bezier_curve_to(
|
||||||
|
control_point1 as &Point2D<AzFloat>,
|
||||||
|
control_point2 as &Point2D<AzFloat>,
|
||||||
|
control_point3 as &Point2D<AzFloat>,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
fn close(&self) {
|
||||||
|
self.close();
|
||||||
|
}
|
||||||
|
fn ellipse(
|
||||||
|
&self,
|
||||||
|
origin: Point2D<f32>,
|
||||||
|
radius_x: f32,
|
||||||
|
radius_y: f32,
|
||||||
|
rotation_angle: f32,
|
||||||
|
start_angle: f32,
|
||||||
|
end_angle: f32,
|
||||||
|
anticlockwise: bool,
|
||||||
|
) {
|
||||||
|
self.ellipse(
|
||||||
|
origin as Point2D<AzFloat>,
|
||||||
|
radius_x as AzFloat,
|
||||||
|
radius_y as AzFloat,
|
||||||
|
rotation_angle as AzFloat,
|
||||||
|
start_angle as AzFloat,
|
||||||
|
end_angle as AzFloat,
|
||||||
|
anticlockwise,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
fn get_current_point(&self) -> Point2D<f32> {
|
||||||
|
let AzPoint { x, y } = self.get_current_point();
|
||||||
|
Point2D::new(x as f32, y as f32)
|
||||||
|
}
|
||||||
|
fn line_to(&self, point: Point2D<f32>) {
|
||||||
|
self.line_to(point as Point2D<AzFloat>);
|
||||||
|
}
|
||||||
|
fn move_to(&self, point: Point2D<f32>) {
|
||||||
|
self.move_to(point as Point2D<AzFloat>);
|
||||||
|
}
|
||||||
|
fn quadratic_curve_to(&self, control_point: &Point2D<f32>, end_point: &Point2D<f32>) {
|
||||||
|
self.quadratic_curve_to(
|
||||||
|
control_point as &Point2D<AzFloat>,
|
||||||
|
end_point as &Point2D<AzFloat>,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
fn finish(&self) -> Path {
|
||||||
|
Path::Azure(self.finish())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl GenericDrawTarget for azure_hl::DrawTarget {
|
||||||
|
fn clear_rect(&self, rect: &Rect<f32>) {
|
||||||
|
self.clear_rect(rect as &Rect<AzFloat>);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn copy_surface(&self, surface: SourceSurface, source: Rect<i32>, destination: Point2D<i32>) {
|
||||||
|
self.copy_surface(surface.into_azure(), source, destination);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn create_gradient_stops(
|
||||||
|
&self,
|
||||||
|
gradient_stops: Vec<GradientStop>,
|
||||||
|
extend_mode: ExtendMode,
|
||||||
|
) -> GradientStops {
|
||||||
|
let gradient_stops: Vec<AzGradientStop> =
|
||||||
|
gradient_stops.into_iter().map(|x| x.into_azure()).collect();
|
||||||
|
GradientStops::Azure(self.create_gradient_stops(&gradient_stops, extend_mode.into_azure()))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn create_path_builder(&self) -> Box<GenericPathBuilder> {
|
||||||
|
Box::new(self.create_path_builder())
|
||||||
|
}
|
||||||
|
|
||||||
|
fn create_similar_draw_target(
|
||||||
|
&self,
|
||||||
|
size: &Size2D<i32>,
|
||||||
|
format: SurfaceFormat,
|
||||||
|
) -> Box<GenericDrawTarget> {
|
||||||
|
Box::new(self.create_similar_draw_target(size, format.into_azure()))
|
||||||
|
}
|
||||||
|
fn create_source_surface_from_data(
|
||||||
|
&self,
|
||||||
|
data: &[u8],
|
||||||
|
size: Size2D<i32>,
|
||||||
|
stride: i32,
|
||||||
|
) -> Option<SourceSurface> {
|
||||||
|
self.create_source_surface_from_data(data, size, stride, azure_hl::SurfaceFormat::B8G8R8A8)
|
||||||
|
.map(|s| SourceSurface::Azure(s))
|
||||||
|
}
|
||||||
|
fn draw_surface(
|
||||||
|
&self,
|
||||||
|
surface: SourceSurface,
|
||||||
|
dest: Rect<f64>,
|
||||||
|
source: Rect<f64>,
|
||||||
|
filter: Filter,
|
||||||
|
draw_options: &DrawOptions,
|
||||||
|
) {
|
||||||
|
let surf_options = azure_hl::DrawSurfaceOptions::new(filter.as_azure(), true);
|
||||||
|
let draw_options = azure_hl::DrawOptions::new(
|
||||||
|
draw_options.as_azure().alpha,
|
||||||
|
draw_options.as_azure().composition,
|
||||||
|
azure_hl::AntialiasMode::None,
|
||||||
|
);
|
||||||
|
self.draw_surface(
|
||||||
|
surface.into_azure(),
|
||||||
|
dest.to_azure_style(),
|
||||||
|
source.to_azure_style(),
|
||||||
|
surf_options,
|
||||||
|
draw_options,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
fn draw_surface_with_shadow(
|
||||||
|
&self,
|
||||||
|
surface: SourceSurface,
|
||||||
|
dest: &Point2D<f32>,
|
||||||
|
color: &Color,
|
||||||
|
offset: &Vector2D<f32>,
|
||||||
|
sigma: f32,
|
||||||
|
operator: CompositionOp,
|
||||||
|
) {
|
||||||
|
self.draw_surface_with_shadow(
|
||||||
|
surface.into_azure(),
|
||||||
|
dest as &Point2D<AzFloat>,
|
||||||
|
color.as_azure(),
|
||||||
|
offset as &Vector2D<AzFloat>,
|
||||||
|
sigma as AzFloat,
|
||||||
|
operator.into_azure(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
fn fill(&self, path: &Path, pattern: Pattern, draw_options: &DrawOptions) {
|
||||||
|
self.fill(
|
||||||
|
path.as_azure(),
|
||||||
|
pattern.as_azure().to_pattern_ref(),
|
||||||
|
draw_options.as_azure(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
fn fill_rect(&self, rect: &Rect<f32>, pattern: Pattern, draw_options: Option<&DrawOptions>) {
|
||||||
|
self.fill_rect(
|
||||||
|
rect as &Rect<AzFloat>,
|
||||||
|
pattern.as_azure().to_pattern_ref(),
|
||||||
|
draw_options.map(|x| x.as_azure()),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
fn get_format(&self) -> SurfaceFormat {
|
||||||
|
SurfaceFormat::Azure(self.get_format())
|
||||||
|
}
|
||||||
|
fn get_size(&self) -> Size2D<i32> {
|
||||||
|
let size = self.get_size();
|
||||||
|
Size2D::new(size.width, size.height)
|
||||||
|
}
|
||||||
|
fn get_transform(&self) -> Transform2D<f32> {
|
||||||
|
self.get_transform() as Transform2D<f32>
|
||||||
|
}
|
||||||
|
fn pop_clip(&self) {
|
||||||
|
self.pop_clip();
|
||||||
|
}
|
||||||
|
fn push_clip(&self, path: &Path) {
|
||||||
|
self.push_clip(path.as_azure());
|
||||||
|
}
|
||||||
|
fn set_transform(&self, matrix: &Transform2D<f32>) {
|
||||||
|
self.set_transform(matrix as &Transform2D<AzFloat>);
|
||||||
|
}
|
||||||
|
fn snapshot(&self) -> SourceSurface {
|
||||||
|
SourceSurface::Azure(self.snapshot())
|
||||||
|
}
|
||||||
|
fn stroke(
|
||||||
|
&self,
|
||||||
|
path: &Path,
|
||||||
|
pattern: Pattern,
|
||||||
|
stroke_options: &StrokeOptions,
|
||||||
|
draw_options: &DrawOptions,
|
||||||
|
) {
|
||||||
|
self.stroke(
|
||||||
|
path.as_azure(),
|
||||||
|
pattern.as_azure().to_pattern_ref(),
|
||||||
|
stroke_options.as_azure(),
|
||||||
|
draw_options.as_azure(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
fn stroke_line(
|
||||||
|
&self,
|
||||||
|
start: Point2D<f32>,
|
||||||
|
end: Point2D<f32>,
|
||||||
|
pattern: Pattern,
|
||||||
|
stroke_options: &StrokeOptions,
|
||||||
|
draw_options: &DrawOptions,
|
||||||
|
) {
|
||||||
|
let stroke_options = stroke_options.as_azure();
|
||||||
|
let cap = match stroke_options.line_join {
|
||||||
|
JoinStyle::Round => CapStyle::Round,
|
||||||
|
_ => CapStyle::Butt,
|
||||||
|
};
|
||||||
|
|
||||||
|
let stroke_opts = azure_hl::StrokeOptions::new(
|
||||||
|
stroke_options.line_width,
|
||||||
|
stroke_options.line_join,
|
||||||
|
cap,
|
||||||
|
stroke_options.miter_limit,
|
||||||
|
stroke_options.mDashPattern,
|
||||||
|
);
|
||||||
|
|
||||||
|
self.stroke_line(
|
||||||
|
start,
|
||||||
|
end,
|
||||||
|
pattern.as_azure().to_pattern_ref(),
|
||||||
|
&stroke_opts,
|
||||||
|
draw_options.as_azure(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
fn stroke_rect(
|
||||||
|
&self,
|
||||||
|
rect: &Rect<f32>,
|
||||||
|
pattern: Pattern,
|
||||||
|
stroke_options: &StrokeOptions,
|
||||||
|
draw_options: &DrawOptions,
|
||||||
|
) {
|
||||||
|
self.stroke_rect(
|
||||||
|
rect as &Rect<AzFloat>,
|
||||||
|
pattern.as_azure().to_pattern_ref(),
|
||||||
|
stroke_options.as_azure(),
|
||||||
|
draw_options.as_azure(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(unsafe_code)]
|
||||||
|
fn snapshot_data(&self, f: &Fn(&[u8]) -> Vec<u8>) -> Vec<u8> {
|
||||||
|
unsafe { f(self.snapshot().get_data_surface().data()) }
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(unsafe_code)]
|
||||||
|
fn snapshot_data_owned(&self) -> Vec<u8> {
|
||||||
|
unsafe { self.snapshot().get_data_surface().data().into() }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl AntialiasMode {
|
||||||
|
fn into_azure(self) -> azure_hl::AntialiasMode {
|
||||||
|
match self {
|
||||||
|
AntialiasMode::Default => azure_hl::AntialiasMode::Default,
|
||||||
|
AntialiasMode::None => azure_hl::AntialiasMode::None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn from_azure(val: azure_hl::AntialiasMode) -> AntialiasMode {
|
||||||
|
match val {
|
||||||
|
azure_hl::AntialiasMode::Default => AntialiasMode::Default,
|
||||||
|
azure_hl::AntialiasMode::None => AntialiasMode::None,
|
||||||
|
v => unimplemented!("{:?} is unsupported", v),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ExtendMode {
|
||||||
|
fn into_azure(self) -> azure_hl::ExtendMode {
|
||||||
|
match self {
|
||||||
|
ExtendMode::Azure(m) => m,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl GradientStop {
|
||||||
|
fn into_azure(self) -> AzGradientStop {
|
||||||
|
match self {
|
||||||
|
GradientStop::Azure(s) => s,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl GradientStops {
|
||||||
|
fn into_azure(self) -> azure_hl::GradientStops {
|
||||||
|
match self {
|
||||||
|
GradientStops::Azure(s) => s,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Color {
|
||||||
|
fn as_azure(&self) -> &azure_hl::Color {
|
||||||
|
match self {
|
||||||
|
Color::Azure(s) => s,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl CompositionOp {
|
||||||
|
fn into_azure(self) -> azure_hl::CompositionOp {
|
||||||
|
match self {
|
||||||
|
CompositionOp::Azure(s) => s,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl SurfaceFormat {
|
||||||
|
fn into_azure(self) -> azure_hl::SurfaceFormat {
|
||||||
|
match self {
|
||||||
|
SurfaceFormat::Azure(s) => s,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl SourceSurface {
|
||||||
|
fn into_azure(self) -> azure_hl::SourceSurface {
|
||||||
|
match self {
|
||||||
|
SourceSurface::Azure(s) => s,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Path {
|
||||||
|
fn as_azure(&self) -> &azure_hl::Path {
|
||||||
|
match self {
|
||||||
|
Path::Azure(p) => p,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Pattern {
|
||||||
|
fn as_azure(&self) -> &azure_hl::Pattern {
|
||||||
|
match self {
|
||||||
|
Pattern::Azure(p) => p,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl DrawOptions {
|
||||||
|
fn as_azure(&self) -> &azure_hl::DrawOptions {
|
||||||
|
match self {
|
||||||
|
DrawOptions::Azure(options) => options,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn as_azure_mut(&mut self) -> &mut azure_hl::DrawOptions {
|
||||||
|
match self {
|
||||||
|
DrawOptions::Azure(options) => options,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pub fn set_alpha(&mut self, val: f32) {
|
||||||
|
match self {
|
||||||
|
DrawOptions::Azure(options) => options.alpha = val as AzFloat,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> StrokeOptions<'a> {
|
||||||
|
pub fn as_azure(&self) -> &azure_hl::StrokeOptions<'a> {
|
||||||
|
match self {
|
||||||
|
StrokeOptions::Azure(options) => options,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pub fn set_line_width(&mut self, val: f32) {
|
||||||
|
match self {
|
||||||
|
StrokeOptions::Azure(options) => options.line_width = val as AzFloat,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pub fn set_miter_limit(&mut self, val: f32) {
|
||||||
|
match self {
|
||||||
|
StrokeOptions::Azure(options) => options.miter_limit = val as AzFloat,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pub fn set_line_join(&mut self, val: LineJoinStyle) {
|
||||||
|
match self {
|
||||||
|
StrokeOptions::Azure(options) => options.line_join = val.to_azure_style(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pub fn set_line_cap(&mut self, val: LineCapStyle) {
|
||||||
|
match self {
|
||||||
|
StrokeOptions::Azure(options) => options.line_cap = val.to_azure_style(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub trait ToAzureStyle {
|
||||||
|
type Target;
|
||||||
|
fn to_azure_style(self) -> Self::Target;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ToAzureStyle for Rect<f64> {
|
||||||
|
type Target = Rect<f32>;
|
||||||
|
|
||||||
|
fn to_azure_style(self) -> Rect<f32> {
|
||||||
|
Rect::new(
|
||||||
|
Point2D::new(self.origin.x as f32, self.origin.y as f32),
|
||||||
|
Size2D::new(self.size.width as f32, self.size.height as f32),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ToAzureStyle for LineCapStyle {
|
||||||
|
type Target = CapStyle;
|
||||||
|
|
||||||
|
fn to_azure_style(self) -> CapStyle {
|
||||||
|
match self {
|
||||||
|
LineCapStyle::Butt => CapStyle::Butt,
|
||||||
|
LineCapStyle::Round => CapStyle::Round,
|
||||||
|
LineCapStyle::Square => CapStyle::Square,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ToAzureStyle for LineJoinStyle {
|
||||||
|
type Target = JoinStyle;
|
||||||
|
|
||||||
|
fn to_azure_style(self) -> JoinStyle {
|
||||||
|
match self {
|
||||||
|
LineJoinStyle::Round => JoinStyle::Round,
|
||||||
|
LineJoinStyle::Bevel => JoinStyle::Bevel,
|
||||||
|
LineJoinStyle::Miter => JoinStyle::Miter,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ToAzureStyle for CompositionStyle {
|
||||||
|
type Target = azure_hl::CompositionOp;
|
||||||
|
|
||||||
|
fn to_azure_style(self) -> azure_hl::CompositionOp {
|
||||||
|
match self {
|
||||||
|
CompositionStyle::SrcIn => azure_hl::CompositionOp::In,
|
||||||
|
CompositionStyle::SrcOut => azure_hl::CompositionOp::Out,
|
||||||
|
CompositionStyle::SrcOver => azure_hl::CompositionOp::Over,
|
||||||
|
CompositionStyle::SrcAtop => azure_hl::CompositionOp::Atop,
|
||||||
|
CompositionStyle::DestIn => azure_hl::CompositionOp::DestIn,
|
||||||
|
CompositionStyle::DestOut => azure_hl::CompositionOp::DestOut,
|
||||||
|
CompositionStyle::DestOver => azure_hl::CompositionOp::DestOver,
|
||||||
|
CompositionStyle::DestAtop => azure_hl::CompositionOp::DestAtop,
|
||||||
|
CompositionStyle::Copy => azure_hl::CompositionOp::Source,
|
||||||
|
CompositionStyle::Lighter => azure_hl::CompositionOp::Add,
|
||||||
|
CompositionStyle::Xor => azure_hl::CompositionOp::Xor,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ToAzureStyle for BlendingStyle {
|
||||||
|
type Target = azure_hl::CompositionOp;
|
||||||
|
|
||||||
|
fn to_azure_style(self) -> azure_hl::CompositionOp {
|
||||||
|
match self {
|
||||||
|
BlendingStyle::Multiply => azure_hl::CompositionOp::Multiply,
|
||||||
|
BlendingStyle::Screen => azure_hl::CompositionOp::Screen,
|
||||||
|
BlendingStyle::Overlay => azure_hl::CompositionOp::Overlay,
|
||||||
|
BlendingStyle::Darken => azure_hl::CompositionOp::Darken,
|
||||||
|
BlendingStyle::Lighten => azure_hl::CompositionOp::Lighten,
|
||||||
|
BlendingStyle::ColorDodge => azure_hl::CompositionOp::ColorDodge,
|
||||||
|
BlendingStyle::ColorBurn => azure_hl::CompositionOp::ColorBurn,
|
||||||
|
BlendingStyle::HardLight => azure_hl::CompositionOp::HardLight,
|
||||||
|
BlendingStyle::SoftLight => azure_hl::CompositionOp::SoftLight,
|
||||||
|
BlendingStyle::Difference => azure_hl::CompositionOp::Difference,
|
||||||
|
BlendingStyle::Exclusion => azure_hl::CompositionOp::Exclusion,
|
||||||
|
BlendingStyle::Hue => azure_hl::CompositionOp::Hue,
|
||||||
|
BlendingStyle::Saturation => azure_hl::CompositionOp::Saturation,
|
||||||
|
BlendingStyle::Color => azure_hl::CompositionOp::Color,
|
||||||
|
BlendingStyle::Luminosity => azure_hl::CompositionOp::Luminosity,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ToAzureStyle for CompositionOrBlending {
|
||||||
|
type Target = azure_hl::CompositionOp;
|
||||||
|
|
||||||
|
fn to_azure_style(self) -> azure_hl::CompositionOp {
|
||||||
|
match self {
|
||||||
|
CompositionOrBlending::Composition(op) => op.to_azure_style(),
|
||||||
|
CompositionOrBlending::Blending(op) => op.to_azure_style(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub trait ToAzurePattern {
|
||||||
|
fn to_azure_pattern(&self, drawtarget: &GenericDrawTarget) -> Option<azure_hl::Pattern>;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ToAzurePattern for FillOrStrokeStyle {
|
||||||
|
fn to_azure_pattern(&self, drawtarget: &GenericDrawTarget) -> Option<azure_hl::Pattern> {
|
||||||
|
Some(match *self {
|
||||||
|
FillOrStrokeStyle::Color(ref color) => {
|
||||||
|
azure_hl::Pattern::Color(ColorPattern::new(color.to_azure_style()))
|
||||||
|
},
|
||||||
|
FillOrStrokeStyle::LinearGradient(ref linear_gradient_style) => {
|
||||||
|
let gradient_stops: Vec<GradientStop> = linear_gradient_style
|
||||||
|
.stops
|
||||||
|
.iter()
|
||||||
|
.map(|s| {
|
||||||
|
GradientStop::Azure(azure_hl::GradientStop {
|
||||||
|
offset: s.offset as f32,
|
||||||
|
color: s.color.to_azure_style(),
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
azure_hl::Pattern::LinearGradient(LinearGradientPattern::new(
|
||||||
|
&Point2D::new(
|
||||||
|
linear_gradient_style.x0 as f32,
|
||||||
|
linear_gradient_style.y0 as f32,
|
||||||
|
),
|
||||||
|
&Point2D::new(
|
||||||
|
linear_gradient_style.x1 as f32,
|
||||||
|
linear_gradient_style.y1 as f32,
|
||||||
|
),
|
||||||
|
drawtarget
|
||||||
|
.create_gradient_stops(
|
||||||
|
gradient_stops,
|
||||||
|
ExtendMode::Azure(azure_hl::ExtendMode::Clamp),
|
||||||
|
)
|
||||||
|
.into_azure(),
|
||||||
|
&Transform2D::identity(),
|
||||||
|
))
|
||||||
|
},
|
||||||
|
FillOrStrokeStyle::RadialGradient(ref radial_gradient_style) => {
|
||||||
|
let gradient_stops: Vec<GradientStop> = radial_gradient_style
|
||||||
|
.stops
|
||||||
|
.iter()
|
||||||
|
.map(|s| {
|
||||||
|
GradientStop::Azure(azure_hl::GradientStop {
|
||||||
|
offset: s.offset as f32,
|
||||||
|
color: s.color.to_azure_style(),
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
azure_hl::Pattern::RadialGradient(RadialGradientPattern::new(
|
||||||
|
&Point2D::new(
|
||||||
|
radial_gradient_style.x0 as f32,
|
||||||
|
radial_gradient_style.y0 as f32,
|
||||||
|
),
|
||||||
|
&Point2D::new(
|
||||||
|
radial_gradient_style.x1 as f32,
|
||||||
|
radial_gradient_style.y1 as f32,
|
||||||
|
),
|
||||||
|
radial_gradient_style.r0 as f32,
|
||||||
|
radial_gradient_style.r1 as f32,
|
||||||
|
drawtarget
|
||||||
|
.create_gradient_stops(
|
||||||
|
gradient_stops,
|
||||||
|
ExtendMode::Azure(azure_hl::ExtendMode::Clamp),
|
||||||
|
)
|
||||||
|
.into_azure(),
|
||||||
|
&Transform2D::identity(),
|
||||||
|
))
|
||||||
|
},
|
||||||
|
FillOrStrokeStyle::Surface(ref surface_style) => {
|
||||||
|
let source_surface = drawtarget
|
||||||
|
.create_source_surface_from_data(
|
||||||
|
&surface_style.surface_data,
|
||||||
|
// FIXME(nox): Why are those i32 values?
|
||||||
|
surface_style.surface_size.to_i32(),
|
||||||
|
surface_style.surface_size.width as i32 * 4,
|
||||||
|
)?
|
||||||
|
.into_azure();
|
||||||
|
azure_hl::Pattern::Surface(SurfacePattern::new(
|
||||||
|
source_surface.azure_source_surface,
|
||||||
|
surface_style.repeat_x,
|
||||||
|
surface_style.repeat_y,
|
||||||
|
&Transform2D::identity(),
|
||||||
|
))
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ToAzureStyle for RGBA {
|
||||||
|
type Target = azure_hl::Color;
|
||||||
|
|
||||||
|
fn to_azure_style(self) -> azure_hl::Color {
|
||||||
|
azure_hl::Color::rgba(
|
||||||
|
self.red_f32() as f32,
|
||||||
|
self.green_f32() as f32,
|
||||||
|
self.blue_f32() as f32,
|
||||||
|
self.alpha_f32() as f32,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Pattern {
|
||||||
|
pub fn is_zero_size_gradient(&self) -> bool {
|
||||||
|
match *self {
|
||||||
|
Pattern::Azure(azure_hl::Pattern::LinearGradient(ref gradient)) => {
|
||||||
|
gradient.is_zero_size()
|
||||||
|
},
|
||||||
|
_ => false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Filter {
|
||||||
|
fn as_azure(&self) -> azure_hl::Filter {
|
||||||
|
match *self {
|
||||||
|
Filter::Linear => azure_hl::Filter::Linear,
|
||||||
|
Filter::Point => azure_hl::Filter::Point,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Path {
|
||||||
|
pub fn transformed_copy_to_builder(
|
||||||
|
&self,
|
||||||
|
transform: &Transform2D<f32>,
|
||||||
|
) -> Box<GenericPathBuilder> {
|
||||||
|
Box::new(self.as_azure().transformed_copy_to_builder(transform))
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn contains_point(&self, x: f64, y: f64, path_transform: &Transform2D<f32>) -> bool {
|
||||||
|
self.as_azure().contains_point(x, y, path_transform)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn copy_to_builder(&self) -> Box<GenericPathBuilder> {
|
||||||
|
Box::new(self.as_azure().copy_to_builder())
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load diff
|
@ -3,7 +3,6 @@
|
||||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
use crate::canvas_data::*;
|
use crate::canvas_data::*;
|
||||||
use azure::azure_hl::AntialiasMode;
|
|
||||||
use canvas_traits::canvas::*;
|
use canvas_traits::canvas::*;
|
||||||
use euclid::Size2D;
|
use euclid::Size2D;
|
||||||
use ipc_channel::ipc::{self, IpcSender};
|
use ipc_channel::ipc::{self, IpcSender};
|
||||||
|
@ -11,6 +10,11 @@ use std::borrow::ToOwned;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::thread;
|
use std::thread;
|
||||||
|
|
||||||
|
pub enum AntialiasMode {
|
||||||
|
Default,
|
||||||
|
None,
|
||||||
|
}
|
||||||
|
|
||||||
pub struct CanvasPaintThread<'a> {
|
pub struct CanvasPaintThread<'a> {
|
||||||
canvases: HashMap<CanvasId, CanvasData<'a>>,
|
canvases: HashMap<CanvasId, CanvasData<'a>>,
|
||||||
next_canvas_id: CanvasId,
|
next_canvas_id: CanvasId,
|
||||||
|
@ -195,9 +199,7 @@ impl<'a> CanvasPaintThread<'a> {
|
||||||
self.canvas(canvas_id).set_shadow_offset_y(value)
|
self.canvas(canvas_id).set_shadow_offset_y(value)
|
||||||
},
|
},
|
||||||
Canvas2dMsg::SetShadowBlur(value) => self.canvas(canvas_id).set_shadow_blur(value),
|
Canvas2dMsg::SetShadowBlur(value) => self.canvas(canvas_id).set_shadow_blur(value),
|
||||||
Canvas2dMsg::SetShadowColor(ref color) => self
|
Canvas2dMsg::SetShadowColor(color) => self.canvas(canvas_id).set_shadow_color(color),
|
||||||
.canvas(canvas_id)
|
|
||||||
.set_shadow_color(color.to_azure_style()),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,12 @@
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate log;
|
extern crate log;
|
||||||
|
|
||||||
|
#[cfg(feature = "azure_backend")]
|
||||||
|
mod azure_backend;
|
||||||
|
|
||||||
|
#[cfg(feature = "raqote_backend")]
|
||||||
|
mod raqote_backend;
|
||||||
|
|
||||||
pub mod canvas_data;
|
pub mod canvas_data;
|
||||||
pub mod canvas_paint_thread;
|
pub mod canvas_paint_thread;
|
||||||
pub mod gl_context;
|
pub mod gl_context;
|
||||||
|
|
262
components/canvas/raqote_backend.rs
Normal file
262
components/canvas/raqote_backend.rs
Normal file
|
@ -0,0 +1,262 @@
|
||||||
|
/* 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 https://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
use crate::canvas_data::{
|
||||||
|
Backend, CanvasPaintState, Color, CompositionOp, DrawOptions, ExtendMode, Filter,
|
||||||
|
GenericDrawTarget, GenericPathBuilder, GradientStop, GradientStops, Path, Pattern,
|
||||||
|
SourceSurface, StrokeOptions, SurfaceFormat,
|
||||||
|
};
|
||||||
|
use crate::canvas_paint_thread::AntialiasMode;
|
||||||
|
use canvas_traits::canvas::*;
|
||||||
|
use cssparser::RGBA;
|
||||||
|
use euclid::{Point2D, Rect, Size2D, Transform2D, Vector2D};
|
||||||
|
use std::marker::PhantomData;
|
||||||
|
|
||||||
|
pub struct RaqoteBackend;
|
||||||
|
|
||||||
|
impl Backend for RaqoteBackend {
|
||||||
|
fn get_composition_op(&self, _opts: &DrawOptions) -> CompositionOp {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn need_to_draw_shadow(&self, _color: &Color) -> bool {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn size_from_pattern(&self, _rect: &Rect<f32>, _pattern: &Pattern) -> Option<Size2D<f32>> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn set_shadow_color<'a>(&mut self, _color: RGBA, _state: &mut CanvasPaintState<'a>) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn set_fill_style<'a>(
|
||||||
|
&mut self,
|
||||||
|
_style: FillOrStrokeStyle,
|
||||||
|
_state: &mut CanvasPaintState<'a>,
|
||||||
|
_drawtarget: &GenericDrawTarget,
|
||||||
|
) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn set_stroke_style<'a>(
|
||||||
|
&mut self,
|
||||||
|
_style: FillOrStrokeStyle,
|
||||||
|
_state: &mut CanvasPaintState<'a>,
|
||||||
|
_drawtarget: &GenericDrawTarget,
|
||||||
|
) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn set_global_composition<'a>(
|
||||||
|
&mut self,
|
||||||
|
_op: CompositionOrBlending,
|
||||||
|
_state: &mut CanvasPaintState<'a>,
|
||||||
|
) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn create_drawtarget(&self, size: Size2D<u64>) -> Box<GenericDrawTarget> {
|
||||||
|
Box::new(raqote::DrawTarget::new(
|
||||||
|
size.width as i32,
|
||||||
|
size.height as i32,
|
||||||
|
))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn recreate_paint_state<'a>(&self, _state: &CanvasPaintState<'a>) -> CanvasPaintState<'a> {
|
||||||
|
CanvasPaintState::new(AntialiasMode::Default)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> CanvasPaintState<'a> {
|
||||||
|
pub fn new(_antialias: AntialiasMode) -> CanvasPaintState<'a> {
|
||||||
|
CanvasPaintState {
|
||||||
|
draw_options: DrawOptions::Raqote(()),
|
||||||
|
fill_style: Pattern::Raqote(()),
|
||||||
|
stroke_style: Pattern::Raqote(()),
|
||||||
|
stroke_opts: StrokeOptions::Raqote(PhantomData),
|
||||||
|
transform: Transform2D::identity(),
|
||||||
|
shadow_offset_x: 0.0,
|
||||||
|
shadow_offset_y: 0.0,
|
||||||
|
shadow_blur: 0.0,
|
||||||
|
shadow_color: Color::Raqote(()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Pattern {
|
||||||
|
pub fn is_zero_size_gradient(&self) -> bool {
|
||||||
|
match *self {
|
||||||
|
Pattern::Raqote(()) => unimplemented!(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> StrokeOptions<'a> {
|
||||||
|
pub fn set_line_width(&mut self, _val: f32) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
pub fn set_miter_limit(&mut self, _val: f32) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
pub fn set_line_join(&mut self, _val: LineJoinStyle) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
pub fn set_line_cap(&mut self, _val: LineCapStyle) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl DrawOptions {
|
||||||
|
pub fn set_alpha(&mut self, _val: f32) {
|
||||||
|
match self {
|
||||||
|
DrawOptions::Raqote(()) => unimplemented!(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Path {
|
||||||
|
pub fn transformed_copy_to_builder(
|
||||||
|
&self,
|
||||||
|
_transform: &Transform2D<f32>,
|
||||||
|
) -> Box<GenericPathBuilder> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn contains_point(&self, _x: f64, _y: f64, _path_transform: &Transform2D<f32>) -> bool {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn copy_to_builder(&self) -> Box<GenericPathBuilder> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl GenericDrawTarget for raqote::DrawTarget {
|
||||||
|
fn clear_rect(&self, _rect: &Rect<f32>) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn copy_surface(
|
||||||
|
&self,
|
||||||
|
_surface: SourceSurface,
|
||||||
|
_source: Rect<i32>,
|
||||||
|
_destination: Point2D<i32>,
|
||||||
|
) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn create_gradient_stops(
|
||||||
|
&self,
|
||||||
|
_gradient_stops: Vec<GradientStop>,
|
||||||
|
_extend_mode: ExtendMode,
|
||||||
|
) -> GradientStops {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn create_path_builder(&self) -> Box<GenericPathBuilder> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn create_similar_draw_target(
|
||||||
|
&self,
|
||||||
|
_size: &Size2D<i32>,
|
||||||
|
_format: SurfaceFormat,
|
||||||
|
) -> Box<GenericDrawTarget> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn create_source_surface_from_data(
|
||||||
|
&self,
|
||||||
|
_data: &[u8],
|
||||||
|
_size: Size2D<i32>,
|
||||||
|
_stride: i32,
|
||||||
|
) -> Option<SourceSurface> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn draw_surface(
|
||||||
|
&self,
|
||||||
|
_surface: SourceSurface,
|
||||||
|
_dest: Rect<f64>,
|
||||||
|
_source: Rect<f64>,
|
||||||
|
_filter: Filter,
|
||||||
|
_draw_options: &DrawOptions,
|
||||||
|
) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn draw_surface_with_shadow(
|
||||||
|
&self,
|
||||||
|
_surface: SourceSurface,
|
||||||
|
_dest: &Point2D<f32>,
|
||||||
|
_color: &Color,
|
||||||
|
_offset: &Vector2D<f32>,
|
||||||
|
_sigma: f32,
|
||||||
|
_operator: CompositionOp,
|
||||||
|
) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn fill(&self, _path: &Path, _pattern: Pattern, _draw_options: &DrawOptions) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn fill_rect(&self, _rect: &Rect<f32>, _pattern: Pattern, _draw_options: Option<&DrawOptions>) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn get_format(&self) -> SurfaceFormat {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn get_size(&self) -> Size2D<i32> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn get_transform(&self) -> Transform2D<f32> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn pop_clip(&self) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn push_clip(&self, _path: &Path) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn set_transform(&self, _matrix: &Transform2D<f32>) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn snapshot(&self) -> SourceSurface {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn stroke(
|
||||||
|
&self,
|
||||||
|
_path: &Path,
|
||||||
|
_pattern: Pattern,
|
||||||
|
_stroke_options: &StrokeOptions,
|
||||||
|
_draw_options: &DrawOptions,
|
||||||
|
) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn stroke_line(
|
||||||
|
&self,
|
||||||
|
_start: Point2D<f32>,
|
||||||
|
_end: Point2D<f32>,
|
||||||
|
_pattern: Pattern,
|
||||||
|
_stroke_options: &StrokeOptions,
|
||||||
|
_draw_options: &DrawOptions,
|
||||||
|
) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
fn stroke_rect(
|
||||||
|
&self,
|
||||||
|
_rect: &Rect<f32>,
|
||||||
|
_pattern: Pattern,
|
||||||
|
_stroke_options: &StrokeOptions,
|
||||||
|
_draw_options: &DrawOptions,
|
||||||
|
) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn snapshot_data(&self, _f: &Fn(&[u8]) -> Vec<u8>) -> Vec<u8> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn snapshot_data_owned(&self) -> Vec<u8> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,11 +10,15 @@ publish = false
|
||||||
name = "constellation"
|
name = "constellation"
|
||||||
path = "lib.rs"
|
path = "lib.rs"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
azure_backend = ["canvas/azure_backend"]
|
||||||
|
raqote_backend = ["canvas/raqote_backend"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
background_hang_monitor = { path = "../background_hang_monitor"}
|
background_hang_monitor = { path = "../background_hang_monitor"}
|
||||||
backtrace = "0.3"
|
backtrace = "0.3"
|
||||||
bluetooth_traits = { path = "../bluetooth_traits" }
|
bluetooth_traits = { path = "../bluetooth_traits" }
|
||||||
canvas = {path = "../canvas"}
|
canvas = {path = "../canvas", default-features = false}
|
||||||
clipboard = "0.5"
|
clipboard = "0.5"
|
||||||
canvas_traits = {path = "../canvas_traits"}
|
canvas_traits = {path = "../canvas_traits"}
|
||||||
compositing = {path = "../compositing"}
|
compositing = {path = "../compositing"}
|
||||||
|
|
|
@ -12,14 +12,15 @@ path = "lib.rs"
|
||||||
crate-type = ["rlib"]
|
crate-type = ["rlib"]
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
max_log_level = ["log/release_max_level_info"]
|
azure_backend = ["canvas/azure_backend"]
|
||||||
webdriver = ["webdriver_server"]
|
|
||||||
energy-profiling = ["profile_traits/energy-profiling"]
|
|
||||||
debugmozjs = ["script/debugmozjs"]
|
debugmozjs = ["script/debugmozjs"]
|
||||||
|
energy-profiling = ["profile_traits/energy-profiling"]
|
||||||
profilemozjs = ["script/profilemozjs"]
|
profilemozjs = ["script/profilemozjs"]
|
||||||
googlevr = ["webvr/googlevr"]
|
googlevr = ["webvr/googlevr"]
|
||||||
js_backtrace = ["script/js_backtrace"]
|
js_backtrace = ["script/js_backtrace"]
|
||||||
|
max_log_level = ["log/release_max_level_info"]
|
||||||
native-bluetooth = ["bluetooth/native-bluetooth"]
|
native-bluetooth = ["bluetooth/native-bluetooth"]
|
||||||
|
raqote_backend = ["canvas/raqote_backend"]
|
||||||
webrender_debugger = ["webrender/debugger"]
|
webrender_debugger = ["webrender/debugger"]
|
||||||
no_static_freetype = ["webrender/no_static_freetype"]
|
no_static_freetype = ["webrender/no_static_freetype"]
|
||||||
oculusvr = ["webvr/oculusvr"]
|
oculusvr = ["webvr/oculusvr"]
|
||||||
|
@ -28,6 +29,7 @@ unstable = [
|
||||||
"profile/unstable",
|
"profile/unstable",
|
||||||
"script/unstable",
|
"script/unstable",
|
||||||
]
|
]
|
||||||
|
webdriver = ["webdriver_server"]
|
||||||
webgl_backtrace = [
|
webgl_backtrace = [
|
||||||
"script/webgl_backtrace",
|
"script/webgl_backtrace",
|
||||||
"canvas/webgl_backtrace",
|
"canvas/webgl_backtrace",
|
||||||
|
@ -38,7 +40,7 @@ webgl_backtrace = [
|
||||||
background_hang_monitor = {path = "../background_hang_monitor"}
|
background_hang_monitor = {path = "../background_hang_monitor"}
|
||||||
bluetooth_traits = {path = "../bluetooth_traits"}
|
bluetooth_traits = {path = "../bluetooth_traits"}
|
||||||
bluetooth = {path = "../bluetooth"}
|
bluetooth = {path = "../bluetooth"}
|
||||||
canvas = {path = "../canvas"}
|
canvas = {path = "../canvas", default-features = false}
|
||||||
canvas_traits = {path = "../canvas_traits"}
|
canvas_traits = {path = "../canvas_traits"}
|
||||||
compositing = {path = "../compositing", features = ["gl"]}
|
compositing = {path = "../compositing", features = ["gl"]}
|
||||||
constellation = {path = "../constellation"}
|
constellation = {path = "../constellation"}
|
||||||
|
|
|
@ -175,6 +175,7 @@ def linux_tidy_unit_docs():
|
||||||
./mach build --dev
|
./mach build --dev
|
||||||
./mach test-unit
|
./mach test-unit
|
||||||
./mach package --dev
|
./mach package --dev
|
||||||
|
./mach build --dev --features raqote_backend
|
||||||
./mach build --dev --libsimpleservo
|
./mach build --dev --libsimpleservo
|
||||||
./mach build --dev --no-default-features --features default-except-unstable
|
./mach build --dev --no-default-features --features default-except-unstable
|
||||||
./mach test-tidy --no-progress --self-test
|
./mach test-tidy --no-progress --self-test
|
||||||
|
|
|
@ -27,18 +27,20 @@ OriginalFilename = "servo.exe"
|
||||||
ProductName = "Servo"
|
ProductName = "Servo"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
azure_backend = ["libservo/azure_backend"]
|
||||||
default = ["unstable", "default-except-unstable"]
|
default = ["unstable", "default-except-unstable"]
|
||||||
default-except-unstable = ["webdriver", "max_log_level"]
|
default-except-unstable = ["webdriver", "max_log_level"]
|
||||||
native-bluetooth = ["libservo/native-bluetooth"]
|
|
||||||
max_log_level = ["log/release_max_level_info"]
|
|
||||||
webdriver = ["libservo/webdriver"]
|
|
||||||
energy-profiling = ["libservo/energy-profiling"]
|
energy-profiling = ["libservo/energy-profiling"]
|
||||||
debugmozjs = ["libservo/debugmozjs"]
|
debugmozjs = ["libservo/debugmozjs"]
|
||||||
|
js_backtrace = ["libservo/js_backtrace"]
|
||||||
|
max_log_level = ["log/release_max_level_info"]
|
||||||
|
native-bluetooth = ["libservo/native-bluetooth"]
|
||||||
profilemozjs = ["libservo/profilemozjs"]
|
profilemozjs = ["libservo/profilemozjs"]
|
||||||
|
raqote_backend = ["libservo/raqote_backend"]
|
||||||
unstable = ["libservo/unstable"]
|
unstable = ["libservo/unstable"]
|
||||||
|
webdriver = ["libservo/webdriver"]
|
||||||
webgl_backtrace = ["libservo/webgl_backtrace"]
|
webgl_backtrace = ["libservo/webgl_backtrace"]
|
||||||
webrender_debugger = ["libservo/webrender_debugger"]
|
webrender_debugger = ["libservo/webrender_debugger"]
|
||||||
js_backtrace = ["libservo/js_backtrace"]
|
|
||||||
|
|
||||||
[target.'cfg(not(target_os = "android"))'.dependencies]
|
[target.'cfg(not(target_os = "android"))'.dependencies]
|
||||||
backtrace = "0.3"
|
backtrace = "0.3"
|
||||||
|
|
|
@ -12,6 +12,10 @@ crate-type = ["staticlib"]
|
||||||
test = false
|
test = false
|
||||||
bench = false
|
bench = false
|
||||||
|
|
||||||
|
[features]
|
||||||
|
azure_backend = ["simpleservo/azure_backend"]
|
||||||
|
raqote_backend = ["simpleservo/raqote_backend"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libservo = { path = "../../components/servo", features = ["no_static_freetype"] }
|
libservo = { path = "../../components/servo", features = ["no_static_freetype"] }
|
||||||
simpleservo = { path = "../libsimpleservo/api", features = ["no_static_freetype"] }
|
simpleservo = { path = "../libsimpleservo/api", features = ["no_static_freetype"] }
|
||||||
|
|
|
@ -26,16 +26,18 @@ libloading = "0.5"
|
||||||
gl_generator = "0.11"
|
gl_generator = "0.11"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
azure_backend = ["libservo/azure_backend"]
|
||||||
default = ["unstable", "default-except-unstable"]
|
default = ["unstable", "default-except-unstable"]
|
||||||
default-except-unstable = ["webdriver", "max_log_level"]
|
default-except-unstable = ["webdriver", "max_log_level"]
|
||||||
max_log_level = ["log/release_max_level_info"]
|
|
||||||
webdriver = ["libservo/webdriver"]
|
|
||||||
energy-profiling = ["libservo/energy-profiling"]
|
|
||||||
debugmozjs = ["libservo/debugmozjs"]
|
debugmozjs = ["libservo/debugmozjs"]
|
||||||
unstable = ["libservo/unstable"]
|
energy-profiling = ["libservo/energy-profiling"]
|
||||||
googlevr = ["libservo/googlevr"]
|
googlevr = ["libservo/googlevr"]
|
||||||
oculusvr = ["libservo/oculusvr"]
|
|
||||||
native-bluetooth = ["libservo/native-bluetooth"]
|
|
||||||
webgl_backtrace = ["libservo/webgl_backtrace"]
|
|
||||||
js_backtrace = ["libservo/js_backtrace"]
|
js_backtrace = ["libservo/js_backtrace"]
|
||||||
|
max_log_level = ["log/release_max_level_info"]
|
||||||
|
native-bluetooth = ["libservo/native-bluetooth"]
|
||||||
no_static_freetype = ["libservo/no_static_freetype"]
|
no_static_freetype = ["libservo/no_static_freetype"]
|
||||||
|
oculusvr = ["libservo/oculusvr"]
|
||||||
|
raqote_backend = ["libservo/raqote_backend"]
|
||||||
|
webdriver = ["libservo/webdriver"]
|
||||||
|
unstable = ["libservo/unstable"]
|
||||||
|
webgl_backtrace = ["libservo/webgl_backtrace"]
|
||||||
|
|
|
@ -21,15 +21,17 @@ env_logger = "0.6"
|
||||||
cbindgen = "0.8"
|
cbindgen = "0.8"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
azure_backend = ["simpleservo/azure_backend"]
|
||||||
|
debugmozjs = ["simpleservo/debugmozjs"]
|
||||||
default = ["unstable", "default-except-unstable"]
|
default = ["unstable", "default-except-unstable"]
|
||||||
default-except-unstable = ["webdriver", "max_log_level"]
|
default-except-unstable = ["webdriver", "max_log_level"]
|
||||||
max_log_level = ["simpleservo/max_log_level"]
|
|
||||||
webdriver = ["simpleservo/webdriver"]
|
|
||||||
energy-profiling = ["simpleservo/energy-profiling"]
|
energy-profiling = ["simpleservo/energy-profiling"]
|
||||||
debugmozjs = ["simpleservo/debugmozjs"]
|
|
||||||
unstable = ["simpleservo/unstable"]
|
|
||||||
googlevr = ["simpleservo/googlevr"]
|
googlevr = ["simpleservo/googlevr"]
|
||||||
oculusvr = ["simpleservo/oculusvr"]
|
|
||||||
native-bluetooth = ["simpleservo/native-bluetooth"]
|
|
||||||
webgl_backtrace = ["simpleservo/webgl_backtrace"]
|
|
||||||
js_backtrace = ["simpleservo/js_backtrace"]
|
js_backtrace = ["simpleservo/js_backtrace"]
|
||||||
|
max_log_level = ["simpleservo/max_log_level"]
|
||||||
|
native-bluetooth = ["simpleservo/native-bluetooth"]
|
||||||
|
oculusvr = ["simpleservo/oculusvr"]
|
||||||
|
raqote_backend = ["simpleservo/raqote_backend"]
|
||||||
|
unstable = ["simpleservo/unstable"]
|
||||||
|
webdriver = ["simpleservo/webdriver"]
|
||||||
|
webgl_backtrace = ["simpleservo/webgl_backtrace"]
|
||||||
|
|
|
@ -26,15 +26,17 @@ simpleservo = { path = "../api" }
|
||||||
cc = "1.0"
|
cc = "1.0"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
azure_backend = ["simpleservo/azure_backend"]
|
||||||
|
debugmozjs = ["simpleservo/debugmozjs"]
|
||||||
default = ["unstable", "default-except-unstable"]
|
default = ["unstable", "default-except-unstable"]
|
||||||
default-except-unstable = ["webdriver", "max_log_level"]
|
default-except-unstable = ["webdriver", "max_log_level"]
|
||||||
max_log_level = ["simpleservo/max_log_level"]
|
|
||||||
webdriver = ["simpleservo/webdriver"]
|
|
||||||
energy-profiling = ["simpleservo/energy-profiling"]
|
energy-profiling = ["simpleservo/energy-profiling"]
|
||||||
debugmozjs = ["simpleservo/debugmozjs"]
|
|
||||||
unstable = ["simpleservo/unstable"]
|
|
||||||
googlevr = ["simpleservo/googlevr"]
|
googlevr = ["simpleservo/googlevr"]
|
||||||
oculusvr = ["simpleservo/oculusvr"]
|
|
||||||
native-bluetooth = ["simpleservo/native-bluetooth"]
|
|
||||||
webgl_backtrace = ["simpleservo/webgl_backtrace"]
|
|
||||||
js_backtrace = ["simpleservo/js_backtrace"]
|
js_backtrace = ["simpleservo/js_backtrace"]
|
||||||
|
max_log_level = ["simpleservo/max_log_level"]
|
||||||
|
native-bluetooth = ["simpleservo/native-bluetooth"]
|
||||||
|
oculusvr = ["simpleservo/oculusvr"]
|
||||||
|
raqote_backend = ["simpleservo/raqote_backend"]
|
||||||
|
unstable = ["simpleservo/unstable"]
|
||||||
|
webdriver = ["simpleservo/webdriver"]
|
||||||
|
webgl_backtrace = ["simpleservo/webgl_backtrace"]
|
||||||
|
|
|
@ -296,6 +296,9 @@ class MachCommands(CommandBase):
|
||||||
if self.config["build"]["dom-backtrace"]:
|
if self.config["build"]["dom-backtrace"]:
|
||||||
features += ["dom-backtrace"]
|
features += ["dom-backtrace"]
|
||||||
|
|
||||||
|
if "raqote_backend" not in features:
|
||||||
|
features += ["azure_backend"]
|
||||||
|
|
||||||
if features:
|
if features:
|
||||||
opts += ["--features", "%s" % ' '.join(features)]
|
opts += ["--features", "%s" % ' '.join(features)]
|
||||||
|
|
||||||
|
|
|
@ -264,6 +264,8 @@ class PostBuildCommands(CommandBase):
|
||||||
else:
|
else:
|
||||||
copy2(full_name, destination)
|
copy2(full_name, destination)
|
||||||
|
|
||||||
|
params += ["--features", "azure_backend"]
|
||||||
|
|
||||||
returncode = self.call_rustup_run(
|
returncode = self.call_rustup_run(
|
||||||
["cargo", "doc", "--manifest-path", self.ports_glutin_manifest()] + params,
|
["cargo", "doc", "--manifest-path", self.ports_glutin_manifest()] + params,
|
||||||
env=self.build_env())
|
env=self.build_env())
|
||||||
|
|
|
@ -39,9 +39,11 @@ packages = [
|
||||||
"crossbeam-epoch",
|
"crossbeam-epoch",
|
||||||
"crossbeam-utils",
|
"crossbeam-utils",
|
||||||
"digest",
|
"digest",
|
||||||
|
"dwrote",
|
||||||
"generic-array",
|
"generic-array",
|
||||||
"gl_generator", # https://github.com/servo/servo/pull/23288#issuecomment-494687746
|
"gl_generator", # https://github.com/servo/servo/pull/23288#issuecomment-494687746
|
||||||
"lock_api",
|
"lock_api",
|
||||||
|
"memmap",
|
||||||
"nix", # https://github.com/servo/servo/issues/23189#issuecomment-487512605
|
"nix", # https://github.com/servo/servo/issues/23189#issuecomment-487512605
|
||||||
"parking_lot",
|
"parking_lot",
|
||||||
"parking_lot_core",
|
"parking_lot_core",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue