Auto merge of #22237 - Manishearth:wrup, r=pcwalton

Update webrender

Fixes https://github.com/servo/servo/issues/22232 , once https://github.com/servo/webrender/pull/3327 lands and I update this PR to include it

All the integer casts are due to https://github.com/servo/webrender/pull/3291

<!-- 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/22237)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-11-27 21:01:58 -05:00 committed by GitHub
commit f180b840d5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 138 additions and 122 deletions

91
Cargo.lock generated
View file

@ -137,7 +137,7 @@ version = "0.35.0"
source = "git+https://github.com/servo/rust-azure#a85619e40463ed6139ccc8186ef306e8c62a496d" source = "git+https://github.com/servo/rust-azure#a85619e40463ed6139ccc8186ef306e8c62a496d"
dependencies = [ dependencies = [
"cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.42 (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.30000020.1 (registry+https://github.com/rust-lang/crates.io-index)", "servo-skia 0.30000020.1 (registry+https://github.com/rust-lang/crates.io-index)",
@ -378,9 +378,9 @@ dependencies = [
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"compositing 0.0.1", "compositing 0.0.1",
"cssparser 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.6.8 (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)",
"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.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -398,8 +398,8 @@ name = "canvas_traits"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"cssparser 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.6.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)",
"lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"malloc_size_of 0.0.1", "malloc_size_of 0.0.1",
@ -449,7 +449,7 @@ name = "cgl"
version = "0.2.3" version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"gleam 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -560,9 +560,9 @@ version = "0.0.1"
dependencies = [ dependencies = [
"crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"embedder_traits 0.0.1", "embedder_traits 0.0.1",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"gleam 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
"image 0.20.1 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.20.1 (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)",
"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)",
@ -598,7 +598,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.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gaol 0.0.1 (git+https://github.com/servo/gaol)", "gaol 0.0.1 (git+https://github.com/servo/gaol)",
"gfx 0.0.1", "gfx 0.0.1",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
@ -1087,7 +1087,7 @@ dependencies = [
[[package]] [[package]]
name = "euclid" name = "euclid"
version = "0.19.0" version = "0.19.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ 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)",
@ -1256,7 +1256,7 @@ dependencies = [
"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.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"dwrote 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "dwrote 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.5 (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.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1320,7 +1320,7 @@ dependencies = [
[[package]] [[package]]
name = "gleam" name = "gleam"
version = "0.6.7" version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"gl_generator 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "gl_generator 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1842,7 +1842,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)",
"gleam 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
"leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "leaky-cow 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -1964,7 +1964,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)",
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.5 (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",
@ -2010,7 +2010,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.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"embedder_traits 0.0.1", "embedder_traits 0.0.1",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.5 (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",
@ -2136,10 +2136,10 @@ dependencies = [
"devtools_traits 0.0.1", "devtools_traits 0.0.1",
"embedder_traits 0.0.1", "embedder_traits 0.0.1",
"env_logger 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gaol 0.0.1 (git+https://github.com/servo/gaol)", "gaol 0.0.1 (git+https://github.com/servo/gaol)",
"gfx 0.0.1", "gfx 0.0.1",
"gleam 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.6.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)",
"layout_thread 0.0.1", "layout_thread 0.0.1",
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2269,7 +2269,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.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (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)",
@ -2751,9 +2751,9 @@ 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.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gl_generator 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "gl_generator 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2914,7 +2914,7 @@ dependencies = [
name = "pixels" name = "pixels"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (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.0.1", "malloc_size_of_derive 0.0.1",
"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)",
@ -2931,7 +2931,7 @@ version = "0.13.3"
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.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (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)",
] ]
@ -3258,9 +3258,9 @@ 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.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.6.8 (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)",
"headers-ext 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "headers-ext 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"html5ever 0.22.3 (registry+https://github.com/rust-lang/crates.io-index)", "html5ever 0.22.3 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3335,7 +3335,7 @@ dependencies = [
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"html5ever 0.22.3 (registry+https://github.com/rust-lang/crates.io-index)", "html5ever 0.22.3 (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)",
@ -3373,7 +3373,7 @@ dependencies = [
name = "script_tests" name = "script_tests"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (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",
@ -3389,7 +3389,7 @@ dependencies = [
"crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.0 (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.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"http 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", "http 0.1.13 (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)",
@ -3475,9 +3475,9 @@ 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.18 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)",
"crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "gdi32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
"glutin 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "glutin 0.19.0 (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)",
"lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3547,7 +3547,7 @@ source = "git+https://github.com/servo/media#3b347d7b0431c58611e2bd7b22d34062b64
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.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (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)",
@ -3592,9 +3592,9 @@ 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.29 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (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.7 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
"glutin 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "glutin 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", "glx 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", "io-surface 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3637,7 +3637,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.5.10 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (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.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3655,7 +3655,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.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (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.0.1", "malloc_size_of_derive 0.0.1",
"style_traits 0.0.1", "style_traits 0.0.1",
@ -3856,7 +3856,7 @@ dependencies = [
"crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.25.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.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (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",
@ -3917,7 +3917,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.1 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)",
"html5ever 0.22.3 (registry+https://github.com/rust-lang/crates.io-index)", "html5ever 0.22.3 (registry+https://github.com/rust-lang/crates.io-index)",
"parking_lot 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.6.3 (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)",
@ -3940,7 +3940,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.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.25.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (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.0.1", "malloc_size_of_derive 0.0.1",
"selectors 0.20.0", "selectors 0.20.0",
@ -4538,7 +4538,7 @@ dependencies = [
"base64 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.9.2 (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.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (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.20.1 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.20.1 (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)",
@ -4561,7 +4561,7 @@ dependencies = [
[[package]] [[package]]
name = "webrender" name = "webrender"
version = "0.57.2" version = "0.57.2"
source = "git+https://github.com/servo/webrender#9ec08a4cf0ce6762a98ddd4df34611dbf0694703" source = "git+https://github.com/servo/webrender#323b7ea140ba956af342e4f2660e67e04913e9fb"
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)",
"base64 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
@ -4573,10 +4573,9 @@ dependencies = [
"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.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"dwrote 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "dwrote 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.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.0 (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.7 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
"image 0.20.1 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.20.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -4596,7 +4595,7 @@ dependencies = [
[[package]] [[package]]
name = "webrender_api" name = "webrender_api"
version = "0.57.2" version = "0.57.2"
source = "git+https://github.com/servo/webrender#9ec08a4cf0ce6762a98ddd4df34611dbf0694703" source = "git+https://github.com/servo/webrender#323b7ea140ba956af342e4f2660e67e04913e9fb"
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)",
"bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -4605,7 +4604,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)",
"dwrote 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "dwrote 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (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)",
"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)",
"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)",
@ -4619,7 +4618,7 @@ version = "0.0.1"
dependencies = [ dependencies = [
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam-channel 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.19.3 (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.5 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1", "msg 0.0.1",
@ -4923,7 +4922,7 @@ dependencies = [
"checksum enum-iterator-derive 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "719423964c7a03e4ce4c67115d6e44a5b2dd9b51789a575dfbad68b490b0f0a0" "checksum enum-iterator-derive 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "719423964c7a03e4ce4c67115d6e44a5b2dd9b51789a575dfbad68b490b0f0a0"
"checksum env_logger 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0e6e40ebb0e66918a37b38c7acab4e10d299e0463fe2af5d29b9cc86710cfd2a" "checksum env_logger 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "0e6e40ebb0e66918a37b38c7acab4e10d299e0463fe2af5d29b9cc86710cfd2a"
"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.0 (registry+https://github.com/rust-lang/crates.io-index)" = "70a2ebdf55fb9d6329046e026329a55ef8fbaae5ea833f56e170beb3125a8a5f" "checksum euclid 0.19.3 (registry+https://github.com/rust-lang/crates.io-index)" = "600657e7e5c03bfbccdc68721bc3b5abcb761553973387124eae9c9e4f02c210"
"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 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"
@ -4945,7 +4944,7 @@ dependencies = [
"checksum getopts 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)" = "b900c08c1939860ce8b54dc6a89e26e00c04c380fd0e09796799bd7f12861e05" "checksum getopts 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)" = "b900c08c1939860ce8b54dc6a89e26e00c04c380fd0e09796799bd7f12861e05"
"checksum gif 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff3414b424657317e708489d2857d9575f4403698428b040b609b9d1c1a84a2c" "checksum gif 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff3414b424657317e708489d2857d9575f4403698428b040b609b9d1c1a84a2c"
"checksum gl_generator 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a0ffaf173cf76c73a73e080366bf556b4776ece104b06961766ff11449f38604" "checksum gl_generator 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a0ffaf173cf76c73a73e080366bf556b4776ece104b06961766ff11449f38604"
"checksum gleam 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "bef810e31d619f5b77a7daea76a26ee50e63036637048a9f2128a33d5474141a" "checksum gleam 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4b47f5b15742aee359c7895ab98cf2cceecc89bb4feb6f4e42f802d7899877da"
"checksum glib 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "740f7fda8dde5f5e3944dabdb4a73ac6094a8a7fdf0af377468e98ca93733e61" "checksum glib 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "740f7fda8dde5f5e3944dabdb4a73ac6094a8a7fdf0af377468e98ca93733e61"
"checksum glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3573351e846caed9f11207b275cd67bc07f0c2c94fb628e5d7c92ca056c7882d" "checksum glib-sys 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3573351e846caed9f11207b275cd67bc07f0c2c94fb628e5d7c92ca056c7882d"
"checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"

View file

@ -17,6 +17,7 @@ use ipc_channel::ipc::{IpcSender, IpcSharedMemory};
use num_traits::ToPrimitive; use num_traits::ToPrimitive;
use std::mem; use std::mem;
use std::sync::Arc; use std::sync::Arc;
use webrender::api::DirtyRect;
pub struct CanvasData<'a> { pub struct CanvasData<'a> {
drawtarget: DrawTarget, drawtarget: DrawTarget,
@ -462,7 +463,7 @@ impl<'a> CanvasData<'a> {
let size = self.drawtarget.get_size(); let size = self.drawtarget.get_size();
let descriptor = webrender_api::ImageDescriptor { let descriptor = webrender_api::ImageDescriptor {
size: webrender_api::DeviceUintSize::new(size.width as u32, size.height as u32), size: webrender_api::DeviceIntSize::new(size.width, size.height),
stride: None, stride: None,
format: webrender_api::ImageFormat::BGRA8, format: webrender_api::ImageFormat::BGRA8,
offset: 0, offset: 0,
@ -478,7 +479,7 @@ impl<'a> CanvasData<'a> {
match self.image_key { match self.image_key {
Some(image_key) => { Some(image_key) => {
debug!("Updating image {:?}.", image_key); debug!("Updating image {:?}.", image_key);
txn.update_image(image_key, descriptor, data, None); txn.update_image(image_key, descriptor, data, &DirtyRect::All);
}, },
None => { None => {
self.image_key = Some(self.webrender_api.generate_image_key()); self.image_key = Some(self.webrender_api.generate_image_key());

View file

@ -566,7 +566,7 @@ impl<VR: WebVRRenderHandler + 'static> WebGLThread<VR> {
let data = Self::external_image_data(context_id); let data = Self::external_image_data(context_id);
let mut txn = webrender_api::Transaction::new(); let mut txn = webrender_api::Transaction::new();
txn.update_image(image_key, descriptor, data, None); txn.update_image(image_key, descriptor, data, &webrender_api::DirtyRect::All);
webrender_api.update_resources(txn.resource_updates); webrender_api.update_resources(txn.resource_updates);
} }
@ -600,14 +600,14 @@ impl<VR: WebVRRenderHandler + 'static> WebGLThread<VR> {
let data = webrender_api::ImageData::new(data); let data = webrender_api::ImageData::new(data);
let mut txn = webrender_api::Transaction::new(); let mut txn = webrender_api::Transaction::new();
txn.update_image(image_key, descriptor, data, None); txn.update_image(image_key, descriptor, data, &webrender_api::DirtyRect::All);
webrender_api.update_resources(txn.resource_updates); webrender_api.update_resources(txn.resource_updates);
} }
/// Helper function to create a `webrender_api::ImageDescriptor`. /// Helper function to create a `webrender_api::ImageDescriptor`.
fn image_descriptor(size: Size2D<i32>, alpha: bool) -> webrender_api::ImageDescriptor { fn image_descriptor(size: Size2D<i32>, alpha: bool) -> webrender_api::ImageDescriptor {
webrender_api::ImageDescriptor { webrender_api::ImageDescriptor {
size: webrender_api::DeviceUintSize::new(size.width as u32, size.height as u32), size: webrender_api::DeviceIntSize::new(size.width, size.height),
stride: None, stride: None,
format: webrender_api::ImageFormat::BGRA8, format: webrender_api::ImageFormat::BGRA8,
offset: 0, offset: 0,

View file

@ -1182,8 +1182,12 @@ impl<Window: WindowMethods> IOCompositor<Window> {
&mut self, &mut self,
target: CompositeTarget, target: CompositeTarget,
) -> Result<Option<Image>, UnableToComposite> { ) -> Result<Option<Image>, UnableToComposite> {
let width = self.embedder_coordinates.framebuffer.width_typed(); let width = self.embedder_coordinates.framebuffer.to_u32().width_typed();
let height = self.embedder_coordinates.framebuffer.height_typed(); let height = self
.embedder_coordinates
.framebuffer
.to_u32()
.height_typed();
if !self.window.prepare_for_composite() { if !self.window.prepare_for_composite() {
return Err(UnableToComposite::WindowUnprepared); return Err(UnableToComposite::WindowUnprepared);
} }

View file

@ -17,7 +17,7 @@ use profile_traits::time;
use script_traits::{AnimationState, ConstellationMsg, EventResult}; use script_traits::{AnimationState, ConstellationMsg, EventResult};
use std::fmt::{Debug, Error, Formatter}; use std::fmt::{Debug, Error, Formatter};
use style_traits::viewport::ViewportConstraints; use style_traits::viewport::ViewportConstraints;
use webrender_api::{self, DeviceIntPoint, DeviceUintSize}; use webrender_api::{self, DeviceIntPoint, DeviceIntSize};
/// Sends messages to the compositor. /// Sends messages to the compositor.
pub struct CompositorProxy { pub struct CompositorProxy {
@ -106,11 +106,11 @@ pub enum Msg {
LoadComplete(TopLevelBrowsingContextId), LoadComplete(TopLevelBrowsingContextId),
/// Get Window Informations size and position. /// Get Window Informations size and position.
GetClientWindow(IpcSender<(DeviceUintSize, DeviceIntPoint)>), GetClientWindow(IpcSender<(DeviceIntSize, DeviceIntPoint)>),
/// Get screen size. /// Get screen size.
GetScreenSize(IpcSender<DeviceUintSize>), GetScreenSize(IpcSender<DeviceIntSize>),
/// Get screen available size. /// Get screen available size.
GetScreenAvailSize(IpcSender<DeviceUintSize>), GetScreenAvailSize(IpcSender<DeviceIntSize>),
} }
impl Debug for Msg { impl Debug for Msg {

View file

@ -17,7 +17,7 @@ use std::fmt::{Debug, Error, Formatter};
#[cfg(feature = "gl")] #[cfg(feature = "gl")]
use std::rc::Rc; use std::rc::Rc;
use style_traits::DevicePixel; use style_traits::DevicePixel;
use webrender_api::{DeviceIntPoint, DevicePoint, DeviceUintRect, DeviceUintSize, ScrollLocation}; use webrender_api::{DeviceIntPoint, DeviceIntRect, DeviceIntSize, DevicePoint, ScrollLocation};
#[derive(Clone)] #[derive(Clone)]
pub enum MouseWindowEvent { pub enum MouseWindowEvent {
@ -149,13 +149,13 @@ pub struct EmbedderCoordinates {
/// The pixel density of the display. /// The pixel density of the display.
pub hidpi_factor: TypedScale<f32, DeviceIndependentPixel, DevicePixel>, pub hidpi_factor: TypedScale<f32, DeviceIndependentPixel, DevicePixel>,
/// Size of the screen. /// Size of the screen.
pub screen: DeviceUintSize, pub screen: DeviceIntSize,
/// Size of the available screen space (screen without toolbars and docks). /// Size of the available screen space (screen without toolbars and docks).
pub screen_avail: DeviceUintSize, pub screen_avail: DeviceIntSize,
/// Size of the native window. /// Size of the native window.
pub window: (DeviceUintSize, DeviceIntPoint), pub window: (DeviceIntSize, DeviceIntPoint),
/// Size of the GL buffer in the window. /// Size of the GL buffer in the window.
pub framebuffer: DeviceUintSize, pub framebuffer: DeviceIntSize,
/// Coordinates of the document within the framebuffer. /// Coordinates of the document within the framebuffer.
pub viewport: DeviceUintRect, pub viewport: DeviceIntRect,
} }

View file

@ -18,7 +18,7 @@ use msg::constellation_msg::{InputMethodType, TopLevelBrowsingContextId};
use servo_url::ServoUrl; use servo_url::ServoUrl;
use std::fmt::{Debug, Error, Formatter}; use std::fmt::{Debug, Error, Formatter};
use style_traits::cursor::CursorKind; use style_traits::cursor::CursorKind;
use webrender_api::{DeviceIntPoint, DeviceUintSize}; use webrender_api::{DeviceIntPoint, DeviceIntSize};
/// Used to wake up the event loop, provided by the servo port/embedder. /// Used to wake up the event loop, provided by the servo port/embedder.
pub trait EventLoopWaker: 'static + Send { pub trait EventLoopWaker: 'static + Send {
@ -76,7 +76,7 @@ pub enum EmbedderMsg {
/// Move the window to a point /// Move the window to a point
MoveTo(DeviceIntPoint), MoveTo(DeviceIntPoint),
/// Resize the window to size /// Resize the window to size
ResizeTo(DeviceUintSize), ResizeTo(DeviceIntSize),
// Show an alert message. // Show an alert message.
Alert(String, IpcSender<()>), Alert(String, IpcSender<()>),
/// Wether or not to follow a link /// Wether or not to follow a link

View file

@ -181,18 +181,18 @@ pub fn image_width(
) )
} }
fn resolve_percentage(value: NumberOrPercentage, length: u32) -> u32 { fn resolve_percentage(value: NumberOrPercentage, length: i32) -> i32 {
match value { match value {
NumberOrPercentage::Percentage(p) => (p.0 * length as f32).round() as u32, NumberOrPercentage::Percentage(p) => (p.0 * length as f32).round() as i32,
NumberOrPercentage::Number(n) => n.round() as u32, NumberOrPercentage::Number(n) => n.round() as i32,
} }
} }
pub fn image_slice( pub fn image_slice(
border_image_slice: &StyleRect<NumberOrPercentage>, border_image_slice: &StyleRect<NumberOrPercentage>,
width: u32, width: i32,
height: u32, height: i32,
) -> SideOffsets2D<u32> { ) -> SideOffsets2D<i32> {
SideOffsets2D::new( SideOffsets2D::new(
resolve_percentage(border_image_slice.0, height), resolve_percentage(border_image_slice.0, height),
resolve_percentage(border_image_slice.1, width), resolve_percentage(border_image_slice.1, width),

View file

@ -1459,9 +1459,9 @@ impl FragmentDisplayListBuilding for Fragment {
let details = BorderDetails::NinePatch(NinePatchBorder { let details = BorderDetails::NinePatch(NinePatchBorder {
source, source,
width, width: width as i32,
height, height: height as i32,
slice: border::image_slice(border_image_slice, width, height), slice: border::image_slice(border_image_slice, width as i32, height as i32),
fill: border_image_fill, fill: border_image_fill,
repeat_horizontal: border_image_repeat.0.to_layout(), repeat_horizontal: border_image_repeat.0.to_layout(),
repeat_vertical: border_image_repeat.1.to_layout(), repeat_vertical: border_image_repeat.1.to_layout(),

View file

@ -104,37 +104,43 @@ impl WebRenderDisplayItemConverter for DisplayItem {
match *self { match *self {
DisplayItem::Rectangle(ref item) => { DisplayItem::Rectangle(ref item) => {
builder.push_item(SpecificDisplayItem::Rectangle(item.item), &self.prim_info()); builder.push_item(
&SpecificDisplayItem::Rectangle(item.item),
&self.prim_info(),
);
}, },
DisplayItem::Text(ref item) => { DisplayItem::Text(ref item) => {
builder.push_item(SpecificDisplayItem::Text(item.item), &self.prim_info()); builder.push_item(&SpecificDisplayItem::Text(item.item), &self.prim_info());
builder.push_iter(item.data.iter()); builder.push_iter(item.data.iter());
}, },
DisplayItem::Image(ref item) => { DisplayItem::Image(ref item) => {
builder.push_item(SpecificDisplayItem::Image(item.item), &self.prim_info()); builder.push_item(&SpecificDisplayItem::Image(item.item), &self.prim_info());
}, },
DisplayItem::Border(ref item) => { DisplayItem::Border(ref item) => {
if !item.data.is_empty() { if !item.data.is_empty() {
builder.push_stops(item.data.as_ref()); builder.push_stops(item.data.as_ref());
} }
builder.push_item(SpecificDisplayItem::Border(item.item), &self.prim_info()); builder.push_item(&SpecificDisplayItem::Border(item.item), &self.prim_info());
}, },
DisplayItem::Gradient(ref item) => { DisplayItem::Gradient(ref item) => {
builder.push_stops(item.data.as_ref()); builder.push_stops(item.data.as_ref());
builder.push_item(SpecificDisplayItem::Gradient(item.item), &self.prim_info()); builder.push_item(&SpecificDisplayItem::Gradient(item.item), &self.prim_info());
}, },
DisplayItem::RadialGradient(ref item) => { DisplayItem::RadialGradient(ref item) => {
builder.push_stops(item.data.as_ref()); builder.push_stops(item.data.as_ref());
builder.push_item( builder.push_item(
SpecificDisplayItem::RadialGradient(item.item), &SpecificDisplayItem::RadialGradient(item.item),
&self.prim_info(), &self.prim_info(),
); );
}, },
DisplayItem::Line(ref item) => { DisplayItem::Line(ref item) => {
builder.push_item(SpecificDisplayItem::Line(item.item), &self.prim_info()); builder.push_item(&SpecificDisplayItem::Line(item.item), &self.prim_info());
}, },
DisplayItem::BoxShadow(ref item) => { DisplayItem::BoxShadow(ref item) => {
builder.push_item(SpecificDisplayItem::BoxShadow(item.item), &self.prim_info()); builder.push_item(
&SpecificDisplayItem::BoxShadow(item.item),
&self.prim_info(),
);
}, },
DisplayItem::PushTextShadow(ref item) => { DisplayItem::PushTextShadow(ref item) => {
builder.push_shadow(&self.prim_info(), item.shadow); builder.push_shadow(&self.prim_info(), item.shadow);

View file

@ -72,7 +72,7 @@ fn set_webrender_image_key(webrender_api: &webrender_api::RenderApi, image: &mut
}, },
}; };
let descriptor = webrender_api::ImageDescriptor { let descriptor = webrender_api::ImageDescriptor {
size: webrender_api::DeviceUintSize::new(image.width, image.height), size: webrender_api::DeviceIntSize::new(image.width as i32, image.height as i32),
stride: None, stride: None,
format: webrender_api::ImageFormat::BGRA8, format: webrender_api::ImageFormat::BGRA8,
offset: 0, offset: 0,

View file

@ -88,8 +88,8 @@ impl MediaFrameRenderer {
impl FrameRenderer for MediaFrameRenderer { impl FrameRenderer for MediaFrameRenderer {
fn render(&mut self, frame: Frame) { fn render(&mut self, frame: Frame) {
let descriptor = ImageDescriptor::new( let descriptor = ImageDescriptor::new(
frame.get_width() as u32, frame.get_width(),
frame.get_height() as u32, frame.get_height(),
ImageFormat::BGRA8, ImageFormat::BGRA8,
false, false,
false, false,
@ -107,7 +107,12 @@ impl FrameRenderer for MediaFrameRenderer {
Some((ref image_key, ref mut width, ref mut height)) Some((ref image_key, ref mut width, ref mut height))
if *width == frame.get_width() && *height == frame.get_height() => if *width == frame.get_width() && *height == frame.get_height() =>
{ {
txn.update_image(*image_key, descriptor, image_data, None); txn.update_image(
*image_key,
descriptor,
image_data,
&webrender_api::DirtyRect::All,
);
if let Some(old_image_key) = self.old_frame.take() { if let Some(old_image_key) = self.old_frame.take() {
txn.delete_image(old_image_key); txn.delete_image(old_image_key);

View file

@ -16,7 +16,7 @@ use euclid::TypedSize2D;
use profile_traits::ipc; use profile_traits::ipc;
use script_traits::ScriptMsg; use script_traits::ScriptMsg;
use style_traits::CSSPixel; use style_traits::CSSPixel;
use webrender_api::DeviceUintSize; use webrender_api::DeviceIntSize;
#[dom_struct] #[dom_struct]
pub struct Screen { pub struct Screen {
@ -42,7 +42,7 @@ impl Screen {
fn screen_size(&self) -> TypedSize2D<u32, CSSPixel> { fn screen_size(&self) -> TypedSize2D<u32, CSSPixel> {
let (send, recv) = let (send, recv) =
ipc::channel::<DeviceUintSize>(self.global().time_profiler_chan().clone()).unwrap(); ipc::channel::<DeviceIntSize>(self.global().time_profiler_chan().clone()).unwrap();
self.window self.window
.upcast::<GlobalScope>() .upcast::<GlobalScope>()
.script_to_constellation_chan() .script_to_constellation_chan()
@ -55,7 +55,7 @@ impl Screen {
fn screen_avail_size(&self) -> TypedSize2D<u32, CSSPixel> { fn screen_avail_size(&self) -> TypedSize2D<u32, CSSPixel> {
let (send, recv) = let (send, recv) =
ipc::channel::<DeviceUintSize>(self.global().time_profiler_chan().clone()).unwrap(); ipc::channel::<DeviceIntSize>(self.global().time_profiler_chan().clone()).unwrap();
self.window self.window
.upcast::<GlobalScope>() .upcast::<GlobalScope>()
.script_to_constellation_chan() .script_to_constellation_chan()

View file

@ -129,9 +129,7 @@ use style::str::HTML_SPACE_CHARACTERS;
use style::stylesheets::CssRuleType; use style::stylesheets::CssRuleType;
use style_traits::{CSSPixel, DevicePixel, ParsingMode}; use style_traits::{CSSPixel, DevicePixel, ParsingMode};
use url::Position; use url::Position;
use webrender_api::{ use webrender_api::{DeviceIntPoint, DeviceIntSize, DocumentId, ExternalScrollId, RenderApiSender};
DeviceIntPoint, DeviceUintSize, DocumentId, ExternalScrollId, RenderApiSender,
};
use webvr_traits::WebVRMsg; use webvr_traits::WebVRMsg;
/// Current state of the window object /// Current state of the window object
@ -1042,7 +1040,7 @@ impl WindowMethods for Window {
//TODO determine if this operation is allowed //TODO determine if this operation is allowed
let dpr = self.device_pixel_ratio(); let dpr = self.device_pixel_ratio();
let size = TypedSize2D::new(width, height).to_f32() * dpr; let size = TypedSize2D::new(width, height).to_f32() * dpr;
self.send_to_embedder(EmbedderMsg::ResizeTo(size.to_u32())); self.send_to_embedder(EmbedderMsg::ResizeTo(size.to_i32()));
} }
// https://drafts.csswg.org/cssom-view/#dom-window-resizeby // https://drafts.csswg.org/cssom-view/#dom-window-resizeby
@ -1326,7 +1324,7 @@ impl Window {
fn client_window(&self) -> (TypedSize2D<u32, CSSPixel>, TypedPoint2D<i32, CSSPixel>) { fn client_window(&self) -> (TypedSize2D<u32, CSSPixel>, TypedPoint2D<i32, CSSPixel>) {
let timer_profile_chan = self.global().time_profiler_chan().clone(); let timer_profile_chan = self.global().time_profiler_chan().clone();
let (send, recv) = let (send, recv) =
ProfiledIpc::channel::<(DeviceUintSize, DeviceIntPoint)>(timer_profile_chan).unwrap(); ProfiledIpc::channel::<(DeviceIntSize, DeviceIntPoint)>(timer_profile_chan).unwrap();
self.send_to_constellation(ScriptMsg::GetClientWindow(send)); self.send_to_constellation(ScriptMsg::GetClientWindow(send));
let (size, point) = recv let (size, point) = recv
.recv() .recv()

View file

@ -54,7 +54,7 @@ use style_traits::cursor::CursorKind;
use style_traits::CSSPixel; use style_traits::CSSPixel;
use style_traits::SpeculativePainter; use style_traits::SpeculativePainter;
use webrender_api::{ use webrender_api::{
DevicePixel, DeviceUintSize, DocumentId, ExternalScrollId, ImageKey, RenderApiSender, DeviceIntSize, DevicePixel, DocumentId, ExternalScrollId, ImageKey, RenderApiSender,
}; };
use webvr_traits::{WebVREvent, WebVRMsg}; use webvr_traits::{WebVREvent, WebVRMsg};
@ -701,7 +701,7 @@ pub enum WebDriverCommandMsg {
/// Set the window size. /// Set the window size.
SetWindowSize( SetWindowSize(
TopLevelBrowsingContextId, TopLevelBrowsingContextId,
DeviceUintSize, DeviceIntSize,
IpcSender<WindowSizeData>, IpcSender<WindowSizeData>,
), ),
/// Take a screenshot of the window. /// Take a screenshot of the window.

View file

@ -28,7 +28,7 @@ use std::fmt;
use style_traits::cursor::CursorKind; use style_traits::cursor::CursorKind;
use style_traits::viewport::ViewportConstraints; use style_traits::viewport::ViewportConstraints;
use style_traits::CSSPixel; use style_traits::CSSPixel;
use webrender_api::{DeviceIntPoint, DeviceUintSize}; use webrender_api::{DeviceIntPoint, DeviceIntSize};
/// Messages from the layout to the constellation. /// Messages from the layout to the constellation.
#[derive(Deserialize, Serialize)] #[derive(Deserialize, Serialize)]
@ -185,11 +185,11 @@ pub enum ScriptMsg {
/// Store the data required to activate a service worker for the given scope /// Store the data required to activate a service worker for the given scope
RegisterServiceWorker(ScopeThings, ServoUrl), RegisterServiceWorker(ScopeThings, ServoUrl),
/// Get Window Informations size and position /// Get Window Informations size and position
GetClientWindow(IpcSender<(DeviceUintSize, DeviceIntPoint)>), GetClientWindow(IpcSender<(DeviceIntSize, DeviceIntPoint)>),
/// Get the screen size (pixel) /// Get the screen size (pixel)
GetScreenSize(IpcSender<(DeviceUintSize)>), GetScreenSize(IpcSender<(DeviceIntSize)>),
/// Get the available screen size (pixel) /// Get the available screen size (pixel)
GetScreenAvailSize(IpcSender<(DeviceUintSize)>), GetScreenAvailSize(IpcSender<(DeviceIntSize)>),
} }
impl fmt::Debug for ScriptMsg { impl fmt::Debug for ScriptMsg {

View file

@ -527,8 +527,11 @@ impl Handler {
}; };
let size = TypedSize2D::new(width as u32, height as u32); let size = TypedSize2D::new(width as u32, height as u32);
let top_level_browsing_context_id = self.session()?.top_level_browsing_context_id; let top_level_browsing_context_id = self.session()?.top_level_browsing_context_id;
let cmd_msg = let cmd_msg = WebDriverCommandMsg::SetWindowSize(
WebDriverCommandMsg::SetWindowSize(top_level_browsing_context_id, size, sender.clone()); top_level_browsing_context_id,
size.to_i32(),
sender.clone(),
);
self.constellation_chan self.constellation_chan
.send(ConstellationMsg::WebDriverCommand(cmd_msg)) .send(ConstellationMsg::WebDriverCommand(cmd_msg))

View file

@ -392,16 +392,16 @@ impl WindowMethods for WindowInstance {
fn get_coordinates(&self) -> EmbedderCoordinates { fn get_coordinates(&self) -> EmbedderCoordinates {
EmbedderCoordinates { EmbedderCoordinates {
hidpi_factor: TypedScale::new(self.hidpi), hidpi_factor: TypedScale::new(self.hidpi),
screen: TypedSize2D::new(self.width, self.height), screen: TypedSize2D::new(self.width as i32, self.height as i32),
screen_avail: TypedSize2D::new(self.width, self.height), screen_avail: TypedSize2D::new(self.width as i32, self.height as i32),
window: ( window: (
TypedSize2D::new(self.width, self.height), TypedSize2D::new(self.width as i32, self.height as i32),
TypedPoint2D::new(0, 0), TypedPoint2D::new(0, 0),
), ),
framebuffer: TypedSize2D::new(self.width, self.height), framebuffer: TypedSize2D::new(self.width as i32, self.height as i32),
viewport: TypedRect::new( viewport: TypedRect::new(
TypedPoint2D::new(0, 0), TypedPoint2D::new(0, 0),
TypedSize2D::new(self.width, self.height), TypedSize2D::new(self.width as i32, self.height as i32),
), ),
} }
} }

View file

@ -520,9 +520,9 @@ impl WindowMethods for ServoCallbacks {
} }
fn get_coordinates(&self) -> EmbedderCoordinates { fn get_coordinates(&self) -> EmbedderCoordinates {
let size = TypedSize2D::new(self.width.get(), self.height.get()); let size = TypedSize2D::new(self.width.get() as i32, self.height.get() as i32);
EmbedderCoordinates { EmbedderCoordinates {
viewport: webrender_api::DeviceUintRect::new(TypedPoint2D::zero(), size), viewport: webrender_api::DeviceIntRect::new(TypedPoint2D::zero(), size),
framebuffer: size, framebuffer: size,
window: (size, TypedPoint2D::new(0, 0)), window: (size, TypedPoint2D::new(0, 0)),
screen: size, screen: size,

View file

@ -18,7 +18,7 @@ use servo::servo_config::opts;
use servo::servo_geometry::DeviceIndependentPixel; use servo::servo_geometry::DeviceIndependentPixel;
use servo::style_traits::DevicePixel; use servo::style_traits::DevicePixel;
use servo::style_traits::cursor::CursorKind; use servo::style_traits::cursor::CursorKind;
use servo::webrender_api::{DeviceIntPoint, DeviceUintRect, DeviceUintSize, ScrollLocation}; use servo::webrender_api::{DeviceIntPoint, DeviceIntRect, DeviceIntSize, ScrollLocation};
use std::cell::{Cell, RefCell}; use std::cell::{Cell, RefCell};
#[cfg(any(target_os = "linux", target_os = "macos"))] #[cfg(any(target_os = "linux", target_os = "macos"))]
use std::ffi::CString; use std::ffi::CString;
@ -169,8 +169,8 @@ impl Window {
is_foreground: bool, is_foreground: bool,
window_size: TypedSize2D<u32, DeviceIndependentPixel>, window_size: TypedSize2D<u32, DeviceIndependentPixel>,
) -> Rc<Window> { ) -> Rc<Window> {
let win_size: DeviceUintSize = let win_size: DeviceIntSize =
(window_size.to_f32() * window_creation_scale_factor()).to_u32(); (window_size.to_f32() * window_creation_scale_factor()).to_i32();
let width = win_size.to_untyped().width; let width = win_size.to_untyped().width;
let height = win_size.to_untyped().height; let height = win_size.to_untyped().height;
@ -183,9 +183,9 @@ impl Window {
let screen_size; let screen_size;
let inner_size; let inner_size;
let window_kind = if opts::get().headless { let window_kind = if opts::get().headless {
screen_size = TypedSize2D::new(width, height); screen_size = TypedSize2D::new(width as u32, height as u32);
inner_size = TypedSize2D::new(width, height); inner_size = TypedSize2D::new(width as u32, height as u32);
WindowKind::Headless(HeadlessContext::new(width, height)) WindowKind::Headless(HeadlessContext::new(width as u32, height as u32))
} else { } else {
let events_loop = winit::EventsLoop::new(); let events_loop = winit::EventsLoop::new();
let mut window_builder = winit::WindowBuilder::new() let mut window_builder = winit::WindowBuilder::new()
@ -308,7 +308,7 @@ impl Window {
} }
} }
pub fn set_inner_size(&self, size: DeviceUintSize) { pub fn set_inner_size(&self, size: DeviceIntSize) {
if let WindowKind::Window(ref window, _) = self.kind { if let WindowKind::Window(ref window, _) = self.kind {
let size = size.to_f32() / self.device_hidpi_factor(); let size = size.to_f32() / self.device_hidpi_factor();
window.set_inner_size(LogicalSize::new(size.width.into(), size.height.into())) window.set_inner_size(LogicalSize::new(size.width.into(), size.height.into()))
@ -685,16 +685,16 @@ impl WindowMethods for Window {
let LogicalPosition { x, y } = window let LogicalPosition { x, y } = window
.get_position() .get_position()
.unwrap_or(LogicalPosition::new(0., 0.)); .unwrap_or(LogicalPosition::new(0., 0.));
let win_size = (TypedSize2D::new(width as f32, height as f32) * dpr).to_u32(); let win_size = (TypedSize2D::new(width as f32, height as f32) * dpr).to_i32();
let win_origin = (TypedPoint2D::new(x as f32, y as f32) * dpr).to_i32(); let win_origin = (TypedPoint2D::new(x as f32, y as f32) * dpr).to_i32();
let screen = (self.screen_size.to_f32() * dpr).to_u32(); let screen = (self.screen_size.to_f32() * dpr).to_i32();
let LogicalSize { width, height } = window let LogicalSize { width, height } = window
.get_inner_size() .get_inner_size()
.expect("Failed to get window inner size."); .expect("Failed to get window inner size.");
let inner_size = (TypedSize2D::new(width as f32, height as f32) * dpr).to_u32(); let inner_size = (TypedSize2D::new(width as f32, height as f32) * dpr).to_i32();
let viewport = DeviceUintRect::new(TypedPoint2D::zero(), inner_size); let viewport = DeviceIntRect::new(TypedPoint2D::zero(), inner_size);
EmbedderCoordinates { EmbedderCoordinates {
viewport: viewport, viewport: viewport,
@ -709,9 +709,9 @@ impl WindowMethods for Window {
WindowKind::Headless(ref context) => { WindowKind::Headless(ref context) => {
let dpr = self.servo_hidpi_factor(); let dpr = self.servo_hidpi_factor();
let size = let size =
(TypedSize2D::new(context.width, context.height).to_f32() * dpr).to_u32(); (TypedSize2D::new(context.width, context.height).to_f32() * dpr).to_i32();
EmbedderCoordinates { EmbedderCoordinates {
viewport: DeviceUintRect::new(TypedPoint2D::zero(), size), viewport: DeviceIntRect::new(TypedPoint2D::zero(), size),
framebuffer: size, framebuffer: size,
window: (size, TypedPoint2D::zero()), window: (size, TypedPoint2D::zero()),
screen: size, screen: size,