Upgrade to the latest version of WebRender

This commit is contained in:
Martin Robinson 2017-07-06 19:21:22 +02:00 committed by Glenn Watson
parent 4b6e79337e
commit e58e8ab42e
88 changed files with 554 additions and 521 deletions

162
Cargo.lock generated
View file

@ -108,14 +108,14 @@ dependencies = [
[[package]] [[package]]
name = "azure" name = "azure"
version = "0.19.0" version = "0.20.0"
source = "git+https://github.com/servo/rust-azure#705542c54cda03a7b7f4edf12f60df8b08cc34e4" source = "git+https://github.com/servo/rust-azure#71de5aa53e7c6faf10ceadce6538856649099263"
dependencies = [ dependencies = [
"cmake 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 6.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"freetype 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "freetype 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "servo-egl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
@ -323,17 +323,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
name = "canvas" name = "canvas"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"azure 0.19.0 (git+https://github.com/servo/rust-azure)", "azure 0.20.0 (git+https://github.com/servo/rust-azure)",
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"num-traits 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
"servo_config 0.0.1", "servo_config 0.0.1",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
] ]
[[package]] [[package]]
@ -341,12 +341,12 @@ name = "canvas_traits"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
] ]
[[package]] [[package]]
@ -376,7 +376,7 @@ name = "cgl"
version = "0.2.1" version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"gleam 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -482,9 +482,9 @@ dependencies = [
name = "compositing" name = "compositing"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"gleam 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
"image 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
@ -497,8 +497,8 @@ dependencies = [
"servo_url 0.0.1", "servo_url 0.0.1",
"style_traits 0.0.1", "style_traits 0.0.1",
"time 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender 0.44.0 (git+https://github.com/servo/webrender)", "webrender 0.47.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
] ]
[[package]] [[package]]
@ -513,7 +513,7 @@ dependencies = [
"compositing 0.0.1", "compositing 0.0.1",
"debugger 0.0.1", "debugger 0.0.1",
"devtools_traits 0.0.1", "devtools_traits 0.0.1",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (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",
@ -534,7 +534,7 @@ dependencies = [
"servo_remutex 0.0.1", "servo_remutex 0.0.1",
"servo_url 0.0.1", "servo_url 0.0.1",
"style_traits 0.0.1", "style_traits 0.0.1",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
"webvr_traits 0.0.1", "webvr_traits 0.0.1",
] ]
@ -575,7 +575,7 @@ dependencies = [
[[package]] [[package]]
name = "core-text" name = "core-text"
version = "5.0.0" version = "6.1.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.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -756,8 +756,8 @@ dependencies = [
"cocoa 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", "cocoa 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
"compositing 0.0.1", "compositing 0.0.1",
"devtools 0.0.1", "devtools 0.0.1",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
"glutin_app 0.0.1", "glutin_app 0.0.1",
"libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)",
"libservo 0.0.1", "libservo 0.0.1",
@ -770,7 +770,7 @@ dependencies = [
"servo_geometry 0.0.1", "servo_geometry 0.0.1",
"servo_url 0.0.1", "servo_url 0.0.1",
"style_traits 0.0.1", "style_traits 0.0.1",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
"x11 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -905,7 +905,7 @@ dependencies = [
[[package]] [[package]]
name = "euclid" name = "euclid"
version = "0.15.0" version = "0.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1043,9 +1043,9 @@ dependencies = [
"byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 6.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"dwrote 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "dwrote 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (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.3.2 (git+https://github.com/servo/fontsan)", "fontsan 0.3.2 (git+https://github.com/servo/fontsan)",
"freetype 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "freetype 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1074,7 +1074,7 @@ dependencies = [
"truetype 0.26.0 (registry+https://github.com/rust-lang/crates.io-index)", "truetype 0.26.0 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-bidi 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-bidi 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
"xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"xml5ever 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "xml5ever 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -1120,7 +1120,7 @@ dependencies = [
[[package]] [[package]]
name = "gleam" name = "gleam"
version = "0.4.6" version = "0.4.7"
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.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "gl_generator 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1138,9 +1138,9 @@ version = "0.0.1"
dependencies = [ dependencies = [
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"compositing 0.0.1", "compositing 0.0.1",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (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.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1", "msg 0.0.1",
"net_traits 0.0.1", "net_traits 0.0.1",
@ -1154,7 +1154,7 @@ dependencies = [
"servo_url 0.0.1", "servo_url 0.0.1",
"style_traits 0.0.1", "style_traits 0.0.1",
"user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"x11 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", "x11 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -1338,7 +1338,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cgl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "cgl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.4.7 (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.23 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -1439,7 +1439,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)",
"bitflags 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (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)",
"gfx 0.0.1", "gfx 0.0.1",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
@ -1469,7 +1469,7 @@ dependencies = [
"style_traits 0.0.1", "style_traits 0.0.1",
"unicode-bidi 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-bidi 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-script 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
] ]
[[package]] [[package]]
@ -1485,7 +1485,7 @@ name = "layout_thread"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (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)",
"gfx 0.0.1", "gfx 0.0.1",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
@ -1510,7 +1510,7 @@ dependencies = [
"servo_geometry 0.0.1", "servo_geometry 0.0.1",
"servo_url 0.0.1", "servo_url 0.0.1",
"style 0.0.1", "style 0.0.1",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
] ]
[[package]] [[package]]
@ -1524,7 +1524,7 @@ dependencies = [
"profile_traits 0.0.1", "profile_traits 0.0.1",
"script_traits 0.0.1", "script_traits 0.0.1",
"servo_url 0.0.1", "servo_url 0.0.1",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
] ]
[[package]] [[package]]
@ -1587,10 +1587,10 @@ dependencies = [
"devtools 0.0.1", "devtools 0.0.1",
"devtools_traits 0.0.1", "devtools_traits 0.0.1",
"env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (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.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"layout_thread 0.0.1", "layout_thread 0.0.1",
"log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1608,8 +1608,8 @@ dependencies = [
"style 0.0.1", "style 0.0.1",
"style_traits 0.0.1", "style_traits 0.0.1",
"webdriver_server 0.0.1", "webdriver_server 0.0.1",
"webrender 0.44.0 (git+https://github.com/servo/webrender)", "webrender 0.47.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
"webvr 0.0.1", "webvr 0.0.1",
"webvr_traits 0.0.1", "webvr_traits 0.0.1",
] ]
@ -1771,7 +1771,7 @@ dependencies = [
"heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
] ]
[[package]] [[package]]
@ -1821,7 +1821,7 @@ dependencies = [
"unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
] ]
[[package]] [[package]]
@ -1879,7 +1879,7 @@ dependencies = [
"servo_url 0.0.1", "servo_url 0.0.1",
"url 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
] ]
[[package]] [[package]]
@ -1983,10 +1983,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cgl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "cgl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (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)",
"gl_generator 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "gl_generator 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
"kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"libloading 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libloading 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2162,7 +2162,7 @@ version = "0.6.0"
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.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"num-traits 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -2426,10 +2426,10 @@ dependencies = [
"dom_struct 0.0.1", "dom_struct 0.0.1",
"domobject_derive 0.0.1", "domobject_derive 0.0.1",
"encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (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)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"gleam 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.4.7 (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)",
"heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2480,7 +2480,7 @@ dependencies = [
"url 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"utf-8 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", "utf-8 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
"webvr 0.0.1", "webvr 0.0.1",
"webvr_traits 0.0.1", "webvr_traits 0.0.1",
"xml5ever 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "xml5ever 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2494,7 +2494,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)",
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2511,7 +2511,7 @@ dependencies = [
"servo_atoms 0.0.1", "servo_atoms 0.0.1",
"servo_url 0.0.1", "servo_url 0.0.1",
"style 0.0.1", "style 0.0.1",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
] ]
[[package]] [[package]]
@ -2522,7 +2522,7 @@ version = "0.0.1"
name = "script_tests" name = "script_tests"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"msg 0.0.1", "msg 0.0.1",
"script 0.0.1", "script 0.0.1",
"servo_url 0.0.1", "servo_url 0.0.1",
@ -2537,7 +2537,7 @@ dependencies = [
"canvas_traits 0.0.1", "canvas_traits 0.0.1",
"cookie 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "cookie 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
"devtools_traits 0.0.1", "devtools_traits 0.0.1",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gfx_traits 0.0.1", "gfx_traits 0.0.1",
"heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2556,7 +2556,7 @@ dependencies = [
"style_traits 0.0.1", "style_traits 0.0.1",
"time 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
"webvr_traits 0.0.1", "webvr_traits 0.0.1",
] ]
@ -2721,9 +2721,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cgl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "cgl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cmake 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", "cmake 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"expat-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "expat-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
"glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"io-surface 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "io-surface 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2773,7 +2773,7 @@ version = "0.0.1"
dependencies = [ dependencies = [
"android_injected_glue 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "android_injected_glue 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", "getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
@ -2798,7 +2798,7 @@ name = "servo_geometry"
version = "0.0.1" version = "0.0.1"
dependencies = [ dependencies = [
"app_units 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -2959,7 +2959,7 @@ dependencies = [
"cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)",
"encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (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)",
"heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3011,7 +3011,7 @@ dependencies = [
"app_units 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"html5ever 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "html5ever 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
"parking_lot 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"rayon 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3032,7 +3032,7 @@ dependencies = [
"app_units 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"selectors 0.19.0", "selectors 0.19.0",
@ -3046,7 +3046,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)",
"cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", "cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)",
"env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"geckoservo 0.0.1", "geckoservo 0.0.1",
"libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3391,7 +3391,7 @@ version = "0.0.1"
dependencies = [ dependencies = [
"base64 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
"cookie 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "cookie 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"hyper 0.10.10 (registry+https://github.com/rust-lang/crates.io-index)", "hyper 0.10.10 (registry+https://github.com/rust-lang/crates.io-index)",
"image 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)", "image 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3410,22 +3410,22 @@ dependencies = [
[[package]] [[package]]
name = "webrender" name = "webrender"
version = "0.44.0" version = "0.47.0"
source = "git+https://github.com/servo/webrender#a787f8eea9b0d7e76783e9ad739a9298d903954f" source = "git+https://github.com/servo/webrender#33e6e285553e8f5ab4b17f3ff8f4eeecd76d2264"
dependencies = [ dependencies = [
"app_units 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bincode 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "bit-set 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
"core-text 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-text 6.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"dwrote 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "dwrote 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (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)",
"freetype 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "freetype 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gamma-lut 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "gamma-lut 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
"num-traits 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3434,13 +3434,13 @@ dependencies = [
"rayon 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
"thread_profiler 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "thread_profiler 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
] ]
[[package]] [[package]]
name = "webrender_traits" name = "webrender_api"
version = "0.44.0" version = "0.47.0"
source = "git+https://github.com/servo/webrender#a787f8eea9b0d7e76783e9ad739a9298d903954f" source = "git+https://github.com/servo/webrender#33e6e285553e8f5ab4b17f3ff8f4eeecd76d2264"
dependencies = [ dependencies = [
"app_units 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bincode 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3448,8 +3448,8 @@ dependencies = [
"core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"core-graphics 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "core-graphics 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
"dwrote 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "dwrote 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gleam 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
"heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "heapsize 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "offscreen_gl_context 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3466,7 +3466,7 @@ dependencies = [
"msg 0.0.1", "msg 0.0.1",
"script_traits 0.0.1", "script_traits 0.0.1",
"servo_config 0.0.1", "servo_config 0.0.1",
"webrender_traits 0.44.0 (git+https://github.com/servo/webrender)", "webrender_api 0.47.0 (git+https://github.com/servo/webrender)",
"webvr_traits 0.0.1", "webvr_traits 0.0.1",
] ]
@ -3585,7 +3585,7 @@ dependencies = [
"checksum aster 0.41.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfdf7355d9db158df68f976ed030ab0f6578af811f5a7bb6dcf221ec24e0e0" "checksum aster 0.41.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ccfdf7355d9db158df68f976ed030ab0f6578af811f5a7bb6dcf221ec24e0e0"
"checksum atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fb2dcb6e6d35f20276943cc04bb98e538b348d525a04ac79c10021561d202f21" "checksum atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fb2dcb6e6d35f20276943cc04bb98e538b348d525a04ac79c10021561d202f21"
"checksum audio-video-metadata 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3b6ef29ee98ad95a37f34547fd7fb40724772294110ed6ca0445fc2e964c29d1" "checksum audio-video-metadata 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3b6ef29ee98ad95a37f34547fd7fb40724772294110ed6ca0445fc2e964c29d1"
"checksum azure 0.19.0 (git+https://github.com/servo/rust-azure)" = "<none>" "checksum azure 0.20.0 (git+https://github.com/servo/rust-azure)" = "<none>"
"checksum backtrace 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72f9b4182546f4b04ebc4ab7f84948953a118bd6021a1b6a6c909e3e94f6be76" "checksum backtrace 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72f9b4182546f4b04ebc4ab7f84948953a118bd6021a1b6a6c909e3e94f6be76"
"checksum backtrace-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "3a0d842ea781ce92be2bf78a9b38883948542749640b8378b3b2f03d1fd9f1ff" "checksum backtrace-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "3a0d842ea781ce92be2bf78a9b38883948542749640b8378b3b2f03d1fd9f1ff"
"checksum base64 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "30e93c03064e7590d0466209155251b90c22e37fab1daf2771582598b5827557" "checksum base64 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "30e93c03064e7590d0466209155251b90c22e37fab1daf2771582598b5827557"
@ -3626,7 +3626,7 @@ dependencies = [
"checksum core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f51ce3b8ebe311c56de14231eb57572c15abebd2d32b3bcb99bcdb9c101f5ac3" "checksum core-foundation 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f51ce3b8ebe311c56de14231eb57572c15abebd2d32b3bcb99bcdb9c101f5ac3"
"checksum core-foundation-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "41115a6aa5d3e1e5ef98148373f25971d1fad53818553f216495f9e67e90a624" "checksum core-foundation-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "41115a6aa5d3e1e5ef98148373f25971d1fad53818553f216495f9e67e90a624"
"checksum core-graphics 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a9f841e9637adec70838c537cae52cb4c751cc6514ad05669b51d107c2021c79" "checksum core-graphics 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a9f841e9637adec70838c537cae52cb4c751cc6514ad05669b51d107c2021c79"
"checksum core-text 5.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "74ba2a7abdccb94fb6c00822addef48504182b285aa45a30e78286487888fcb4" "checksum core-text 6.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "16ce16d9ed00181016c11ff48e561314bec92bfbce9fe48f319366618d4e5de6"
"checksum cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e7063452c60432cb306ed54d538178c20792d47fa960c240ce6c083239ee55ec" "checksum cssparser 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e7063452c60432cb306ed54d538178c20792d47fa960c240ce6c083239ee55ec"
"checksum cssparser-macros 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "079adec4af52bb5275eadd004292028c79eb3c5f5b4ee8086a36d4197032f6df" "checksum cssparser-macros 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "079adec4af52bb5275eadd004292028c79eb3c5f5b4ee8086a36d4197032f6df"
"checksum dbghelp-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97590ba53bcb8ac28279161ca943a924d1fd4a8fb3fa63302591647c4fc5b850" "checksum dbghelp-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97590ba53bcb8ac28279161ca943a924d1fd4a8fb3fa63302591647c4fc5b850"
@ -3654,7 +3654,7 @@ dependencies = [
"checksum env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b" "checksum env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b"
"checksum error-chain 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9435d864e017c3c6afeac1654189b06cdb491cf2ff73dbf0d73b0f292f42ff8" "checksum error-chain 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9435d864e017c3c6afeac1654189b06cdb491cf2ff73dbf0d73b0f292f42ff8"
"checksum error-chain 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "318cb3c71ee4cdea69fdc9e15c173b245ed6063e1709029e8fd32525a881120f" "checksum error-chain 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "318cb3c71ee4cdea69fdc9e15c173b245ed6063e1709029e8fd32525a881120f"
"checksum euclid 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5fcf274fa860e18379115ac336e9b41553f61c9ed34ad09e8101ed3defae2" "checksum euclid 0.15.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7be9fcb1ce77782eb620253eb02bc1f000545f3c360841a26cda572f10fad4ff"
"checksum expat-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cef36cd1a8a02d28b91d97347c63247b9e4cb8a8e36df36f8201dc87a1c0859c" "checksum expat-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cef36cd1a8a02d28b91d97347c63247b9e4cb8a8e36df36f8201dc87a1c0859c"
"checksum extra-default 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca1434e1920ba21b45516c16b5edbd82e8f2e4349b12a7a53eb9903ed2928d56" "checksum extra-default 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca1434e1920ba21b45516c16b5edbd82e8f2e4349b12a7a53eb9903ed2928d56"
"checksum flate2 0.2.19 (registry+https://github.com/rust-lang/crates.io-index)" = "36df0166e856739905cd3d7e0b210fe818592211a008862599845e012d8d304c" "checksum flate2 0.2.19 (registry+https://github.com/rust-lang/crates.io-index)" = "36df0166e856739905cd3d7e0b210fe818592211a008862599845e012d8d304c"
@ -3671,7 +3671,7 @@ dependencies = [
"checksum getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9047cfbd08a437050b363d35ef160452c5fe8ea5187ae0a624708c91581d685" "checksum getopts 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9047cfbd08a437050b363d35ef160452c5fe8ea5187ae0a624708c91581d685"
"checksum gif 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8a80d6fe9e52f637df9afd4779449a7be17c39cc9c35b01589bb833f956ba596" "checksum gif 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8a80d6fe9e52f637df9afd4779449a7be17c39cc9c35b01589bb833f956ba596"
"checksum gl_generator 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0940975a4ca12b088d32b5d5134826c47d2e73de4b0b459b05244c01503eccbb" "checksum gl_generator 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0940975a4ca12b088d32b5d5134826c47d2e73de4b0b459b05244c01503eccbb"
"checksum gleam 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d985c68a0481482f9459e2d2aa8fe56c07088322a59c867117bfe41490d90a85" "checksum gleam 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "917ee404f414ed77756c12cb44fdcc7cd02f207bf91e1dc91a3ce7da794ec361"
"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"
"checksum glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b280007fa9c7442cfd1e0b1addb8d1a59240267110e8705f8f7e2c7bfb7e2f72" "checksum glx 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b280007fa9c7442cfd1e0b1addb8d1a59240267110e8705f8f7e2c7bfb7e2f72"
"checksum half 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63d68db75012a85555434ee079e7e6337931f87a087ab2988becbadf64673a7f" "checksum half 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "63d68db75012a85555434ee079e7e6337931f87a087ab2988becbadf64673a7f"
@ -3849,8 +3849,8 @@ dependencies = [
"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
"checksum walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff" "checksum walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff"
"checksum webdriver 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d548aabf87411b1b4ba91fd07eacd8b238135c7131a452b8a9f6386209167e18" "checksum webdriver 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d548aabf87411b1b4ba91fd07eacd8b238135c7131a452b8a9f6386209167e18"
"checksum webrender 0.44.0 (git+https://github.com/servo/webrender)" = "<none>" "checksum webrender 0.47.0 (git+https://github.com/servo/webrender)" = "<none>"
"checksum webrender_traits 0.44.0 (git+https://github.com/servo/webrender)" = "<none>" "checksum webrender_api 0.47.0 (git+https://github.com/servo/webrender)" = "<none>"
"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
"checksum ws 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "04614a58714f3fd4a8b1da4bcae9f031c532d35988c3d39627619248113f8be8" "checksum ws 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "04614a58714f3fd4a8b1da4bcae9f031c532d35988c3d39627619248113f8be8"

View file

@ -20,4 +20,4 @@ log = "0.3.5"
num-traits = "0.1.32" num-traits = "0.1.32"
offscreen_gl_context = { version = "0.11", features = ["serde"] } offscreen_gl_context = { version = "0.11", features = ["serde"] }
servo_config = {path = "../config"} servo_config = {path = "../config"}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}

View file

@ -17,7 +17,7 @@ use std::borrow::ToOwned;
use std::mem; use std::mem;
use std::sync::Arc; use std::sync::Arc;
use std::thread; use std::thread;
use webrender_traits; use webrender_api;
impl<'a> CanvasPaintThread<'a> { impl<'a> CanvasPaintThread<'a> {
/// It reads image data from the canvas /// It reads image data from the canvas
@ -57,8 +57,8 @@ pub struct CanvasPaintThread<'a> {
path_builder: PathBuilder, path_builder: PathBuilder,
state: CanvasPaintState<'a>, state: CanvasPaintState<'a>,
saved_states: Vec<CanvasPaintState<'a>>, saved_states: Vec<CanvasPaintState<'a>>,
webrender_api: webrender_traits::RenderApi, webrender_api: webrender_api::RenderApi,
image_key: Option<webrender_traits::ImageKey>, image_key: Option<webrender_api::ImageKey>,
} }
#[derive(Clone)] #[derive(Clone)]
@ -99,7 +99,7 @@ impl<'a> CanvasPaintState<'a> {
impl<'a> CanvasPaintThread<'a> { impl<'a> CanvasPaintThread<'a> {
fn new(size: Size2D<i32>, fn new(size: Size2D<i32>,
webrender_api_sender: webrender_traits::RenderApiSender, webrender_api_sender: webrender_api::RenderApiSender,
antialias: bool) -> CanvasPaintThread<'a> { antialias: bool) -> CanvasPaintThread<'a> {
let draw_target = CanvasPaintThread::create(size); let draw_target = CanvasPaintThread::create(size);
let path_builder = draw_target.create_path_builder(); let path_builder = draw_target.create_path_builder();
@ -117,7 +117,7 @@ impl<'a> CanvasPaintThread<'a> {
/// Creates a new `CanvasPaintThread` and returns an `IpcSender` to /// Creates a new `CanvasPaintThread` and returns an `IpcSender` to
/// communicate with it. /// communicate with it.
pub fn start(size: Size2D<i32>, pub fn start(size: Size2D<i32>,
webrender_api_sender: webrender_traits::RenderApiSender, webrender_api_sender: webrender_api::RenderApiSender,
antialias: bool) antialias: bool)
-> IpcSender<CanvasMsg> { -> IpcSender<CanvasMsg> {
let (sender, receiver) = ipc::channel::<CanvasMsg>().unwrap(); let (sender, receiver) = ipc::channel::<CanvasMsg>().unwrap();
@ -562,15 +562,15 @@ impl<'a> CanvasPaintThread<'a> {
self.drawtarget.snapshot().get_data_surface().with_data(|element| { self.drawtarget.snapshot().get_data_surface().with_data(|element| {
let size = self.drawtarget.get_size(); let size = self.drawtarget.get_size();
let descriptor = webrender_traits::ImageDescriptor { let descriptor = webrender_api::ImageDescriptor {
width: size.width as u32, width: size.width as u32,
height: size.height as u32, height: size.height as u32,
stride: None, stride: None,
format: webrender_traits::ImageFormat::BGRA8, format: webrender_api::ImageFormat::BGRA8,
offset: 0, offset: 0,
is_opaque: false, is_opaque: false,
}; };
let data = webrender_traits::ImageData::Raw(Arc::new(element.into())); let data = webrender_api::ImageData::Raw(Arc::new(element.into()));
match self.image_key { match self.image_key {
Some(image_key) => { Some(image_key) => {

View file

@ -15,7 +15,7 @@ extern crate log;
extern crate num_traits; extern crate num_traits;
extern crate offscreen_gl_context; extern crate offscreen_gl_context;
extern crate servo_config; extern crate servo_config;
extern crate webrender_traits; extern crate webrender_api;
pub mod canvas_paint_thread; pub mod canvas_paint_thread;
pub mod webgl_paint_thread; pub mod webgl_paint_thread;

View file

@ -14,7 +14,7 @@ use std::borrow::ToOwned;
use std::sync::Arc; use std::sync::Arc;
use std::sync::mpsc::channel; use std::sync::mpsc::channel;
use std::thread; use std::thread;
use webrender_traits; use webrender_api;
enum GLContextWrapper { enum GLContextWrapper {
Native(GLContext<NativeGLContext>), Native(GLContext<NativeGLContext>),
@ -88,7 +88,7 @@ impl GLContextWrapper {
} }
} }
pub fn apply_command(&self, cmd: webrender_traits::WebGLCommand) { pub fn apply_command(&self, cmd: webrender_api::WebGLCommand) {
match *self { match *self {
GLContextWrapper::Native(ref ctx) => { GLContextWrapper::Native(ref ctx) => {
cmd.apply(ctx); cmd.apply(ctx);
@ -101,8 +101,8 @@ impl GLContextWrapper {
} }
enum WebGLPaintTaskData { enum WebGLPaintTaskData {
WebRender(webrender_traits::RenderApi, webrender_traits::WebGLContextId), WebRender(webrender_api::RenderApi, webrender_api::WebGLContextId),
Readback(GLContextWrapper, webrender_traits::RenderApi, Option<webrender_traits::ImageKey>), Readback(GLContextWrapper, webrender_api::RenderApi, Option<webrender_api::ImageKey>),
} }
pub struct WebGLPaintThread { pub struct WebGLPaintThread {
@ -112,7 +112,7 @@ pub struct WebGLPaintThread {
fn create_readback_painter(size: Size2D<i32>, fn create_readback_painter(size: Size2D<i32>,
attrs: GLContextAttributes, attrs: GLContextAttributes,
webrender_api: webrender_traits::RenderApi, webrender_api: webrender_api::RenderApi,
gl_type: gl::GlType) gl_type: gl::GlType)
-> Result<(WebGLPaintThread, GLLimits), String> { -> Result<(WebGLPaintThread, GLLimits), String> {
let context = GLContextWrapper::new(size, attrs, gl_type)?; let context = GLContextWrapper::new(size, attrs, gl_type)?;
@ -128,11 +128,11 @@ fn create_readback_painter(size: Size2D<i32>,
impl WebGLPaintThread { impl WebGLPaintThread {
fn new(size: Size2D<i32>, fn new(size: Size2D<i32>,
attrs: GLContextAttributes, attrs: GLContextAttributes,
webrender_api_sender: webrender_traits::RenderApiSender, webrender_api_sender: webrender_api::RenderApiSender,
gl_type: gl::GlType) gl_type: gl::GlType)
-> Result<(WebGLPaintThread, GLLimits), String> { -> Result<(WebGLPaintThread, GLLimits), String> {
let wr_api = webrender_api_sender.create_api(); let wr_api = webrender_api_sender.create_api();
let device_size = webrender_traits::DeviceIntSize::from_untyped(&size); let device_size = webrender_api::DeviceIntSize::from_untyped(&size);
match wr_api.request_webgl_context(&device_size, attrs) { match wr_api.request_webgl_context(&device_size, attrs) {
Ok((id, limits)) => { Ok((id, limits)) => {
let painter = WebGLPaintThread { let painter = WebGLPaintThread {
@ -148,7 +148,7 @@ impl WebGLPaintThread {
} }
} }
fn handle_webgl_message(&self, message: webrender_traits::WebGLCommand) { fn handle_webgl_message(&self, message: webrender_api::WebGLCommand) {
debug!("WebGL message: {:?}", message); debug!("WebGL message: {:?}", message);
match self.data { match self.data {
WebGLPaintTaskData::WebRender(ref api, id) => { WebGLPaintTaskData::WebRender(ref api, id) => {
@ -160,7 +160,7 @@ impl WebGLPaintThread {
} }
} }
fn handle_webvr_message(&self, message: webrender_traits::VRCompositorCommand) { fn handle_webvr_message(&self, message: webrender_api::VRCompositorCommand) {
match self.data { match self.data {
WebGLPaintTaskData::WebRender(ref api, id) => { WebGLPaintTaskData::WebRender(ref api, id) => {
api.send_vr_compositor_command(id, message); api.send_vr_compositor_command(id, message);
@ -176,7 +176,7 @@ impl WebGLPaintThread {
/// communicate with it. /// communicate with it.
pub fn start(size: Size2D<i32>, pub fn start(size: Size2D<i32>,
attrs: GLContextAttributes, attrs: GLContextAttributes,
webrender_api_sender: webrender_traits::RenderApiSender) webrender_api_sender: webrender_api::RenderApiSender)
-> Result<(IpcSender<CanvasMsg>, GLLimits), String> { -> Result<(IpcSender<CanvasMsg>, GLLimits), String> {
let (sender, receiver) = ipc::channel::<CanvasMsg>().unwrap(); let (sender, receiver) = ipc::channel::<CanvasMsg>().unwrap();
let (result_chan, result_port) = channel(); let (result_chan, result_port) = channel();
@ -250,15 +250,15 @@ impl WebGLPaintThread {
// rgba -> bgra // rgba -> bgra
byte_swap(&mut pixels); byte_swap(&mut pixels);
let descriptor = webrender_traits::ImageDescriptor { let descriptor = webrender_api::ImageDescriptor {
width: width as u32, width: width as u32,
height: height as u32, height: height as u32,
stride: None, stride: None,
format: webrender_traits::ImageFormat::BGRA8, format: webrender_api::ImageFormat::BGRA8,
offset: 0, offset: 0,
is_opaque: false, is_opaque: false,
}; };
let data = webrender_traits::ImageData::Raw(Arc::new(pixels)); let data = webrender_api::ImageData::Raw(Arc::new(pixels));
match *image_key { match *image_key {
Some(image_key) => { Some(image_key) => {
@ -305,7 +305,7 @@ impl WebGLPaintThread {
} }
} }
WebGLPaintTaskData::WebRender(ref api, id) => { WebGLPaintTaskData::WebRender(ref api, id) => {
let device_size = webrender_traits::DeviceIntSize::from_untyped(&size); let device_size = webrender_api::DeviceIntSize::from_untyped(&size);
api.resize_webgl_context(id, &device_size); api.resize_webgl_context(id, &device_size);
} }
} }

View file

@ -16,4 +16,4 @@ heapsize = "0.4"
heapsize_derive = "0.1" heapsize_derive = "0.1"
ipc-channel = "0.8" ipc-channel = "0.8"
serde = "1.0" serde = "1.0"
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}

View file

@ -13,14 +13,14 @@ extern crate heapsize;
#[macro_use] extern crate heapsize_derive; #[macro_use] extern crate heapsize_derive;
extern crate ipc_channel; extern crate ipc_channel;
#[macro_use] extern crate serde; #[macro_use] extern crate serde;
extern crate webrender_traits; extern crate webrender_api;
use cssparser::RGBA; use cssparser::RGBA;
use euclid::{Transform2D, Point2D, Vector2D, Rect, Size2D}; use euclid::{Transform2D, Point2D, Vector2D, Rect, Size2D};
use ipc_channel::ipc::IpcSender; use ipc_channel::ipc::IpcSender;
use std::default::Default; use std::default::Default;
use std::str::FromStr; use std::str::FromStr;
use webrender_traits::{WebGLCommand, WebGLContextId, VRCompositorCommand}; use webrender_api::{WebGLCommand, WebGLContextId, VRCompositorCommand};
#[derive(Clone, Deserialize, Serialize)] #[derive(Clone, Deserialize, Serialize)]
pub enum FillRule { pub enum FillRule {
@ -52,7 +52,7 @@ pub enum CanvasData {
#[derive(Clone, Deserialize, Serialize)] #[derive(Clone, Deserialize, Serialize)]
pub struct CanvasImageData { pub struct CanvasImageData {
pub image_key: webrender_traits::ImageKey, pub image_key: webrender_api::ImageKey,
} }
#[derive(Clone, Deserialize, Serialize)] #[derive(Clone, Deserialize, Serialize)]

View file

@ -26,4 +26,4 @@ servo_url = {path = "../url"}
style_traits = {path = "../style_traits"} style_traits = {path = "../style_traits"}
time = "0.1.17" time = "0.1.17"
webrender = {git = "https://github.com/servo/webrender"} webrender = {git = "https://github.com/servo/webrender"}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}

View file

@ -34,7 +34,7 @@ use style_traits::viewport::ViewportConstraints;
use time::{precise_time_ns, precise_time_s}; use time::{precise_time_ns, precise_time_s};
use touch::{TouchHandler, TouchAction}; use touch::{TouchHandler, TouchAction};
use webrender; use webrender;
use webrender_traits::{self, ClipId, LayoutPoint, LayoutVector2D, ScrollEventPhase, ScrollLocation, ScrollClamping}; use webrender_api::{self, ClipId, LayoutPoint, LayoutVector2D, ScrollEventPhase, ScrollLocation, ScrollClamping};
use windowing::{self, MouseWindowEvent, WindowEvent, WindowMethods, WindowNavigateMsg}; use windowing::{self, MouseWindowEvent, WindowEvent, WindowMethods, WindowNavigateMsg};
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
@ -58,7 +58,7 @@ trait ConvertPipelineIdFromWebRender {
fn from_webrender(&self) -> PipelineId; fn from_webrender(&self) -> PipelineId;
} }
impl ConvertPipelineIdFromWebRender for webrender_traits::PipelineId { impl ConvertPipelineIdFromWebRender for webrender_api::PipelineId {
fn from_webrender(&self) -> PipelineId { fn from_webrender(&self) -> PipelineId {
PipelineId { PipelineId {
namespace_id: PipelineNamespaceId(self.0), namespace_id: PipelineNamespaceId(self.0),
@ -180,7 +180,7 @@ pub struct IOCompositor<Window: WindowMethods> {
webrender: webrender::Renderer, webrender: webrender::Renderer,
/// The webrender interface, if enabled. /// The webrender interface, if enabled.
webrender_api: webrender_traits::RenderApi, webrender_api: webrender_api::RenderApi,
/// GL functions interface (may be GL or GLES) /// GL functions interface (may be GL or GLES)
gl: Rc<gl::Gl>, gl: Rc<gl::Gl>,
@ -315,7 +315,7 @@ impl RenderNotifier {
} }
} }
impl webrender_traits::RenderNotifier for RenderNotifier { impl webrender_api::RenderNotifier for RenderNotifier {
fn new_frame_ready(&mut self) { fn new_frame_ready(&mut self) {
self.compositor_proxy.recomposite(CompositingReason::NewWebRenderFrame); self.compositor_proxy.recomposite(CompositingReason::NewWebRenderFrame);
} }
@ -330,7 +330,7 @@ struct CompositorThreadDispatcher {
compositor_proxy: CompositorProxy compositor_proxy: CompositorProxy
} }
impl webrender_traits::RenderDispatcher for CompositorThreadDispatcher { impl webrender_api::RenderDispatcher for CompositorThreadDispatcher {
fn dispatch(&self, f: Box<Fn() + Send>) { fn dispatch(&self, f: Box<Fn() + Send>) {
self.compositor_proxy.send(Msg::Dispatch(f)); self.compositor_proxy.send(Msg::Dispatch(f));
} }
@ -704,12 +704,12 @@ impl<Window: WindowMethods> IOCompositor<Window> {
let dppx = self.page_zoom * self.hidpi_factor(); let dppx = self.page_zoom * self.hidpi_factor();
let window_rect = { let window_rect = {
let offset = webrender_traits::DeviceUintPoint::new(self.window_rect.origin.x, self.window_rect.origin.y); let offset = webrender_api::DeviceUintPoint::new(self.window_rect.origin.x, self.window_rect.origin.y);
let size = webrender_traits::DeviceUintSize::new(self.window_rect.size.width, self.window_rect.size.height); let size = webrender_api::DeviceUintSize::new(self.window_rect.size.width, self.window_rect.size.height);
webrender_traits::DeviceUintRect::new(offset, size) webrender_api::DeviceUintRect::new(offset, size)
}; };
let frame_size = webrender_traits::DeviceUintSize::new(self.frame_size.width, self.frame_size.height); let frame_size = webrender_api::DeviceUintSize::new(self.frame_size.width, self.frame_size.height);
self.webrender_api.set_window_parameters(frame_size, window_rect); self.webrender_api.set_window_parameters(frame_size, window_rect);
let initial_viewport = self.window_rect.size.to_f32() / dppx; let initial_viewport = self.window_rect.size.to_f32() / dppx;
@ -988,7 +988,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
let cursor = TypedPoint2D::new(-1, -1); // Make sure this hits the base layer. let cursor = TypedPoint2D::new(-1, -1); // Make sure this hits the base layer.
self.pending_scroll_zoom_events.push(ScrollZoomEvent { self.pending_scroll_zoom_events.push(ScrollZoomEvent {
magnification: magnification, magnification: magnification,
scroll_location: ScrollLocation::Delta(webrender_traits::LayoutVector2D::from_untyped( scroll_location: ScrollLocation::Delta(webrender_api::LayoutVector2D::from_untyped(
&scroll_delta.to_untyped())), &scroll_delta.to_untyped())),
cursor: cursor, cursor: cursor,
phase: ScrollEventPhase::Move(true), phase: ScrollEventPhase::Move(true),
@ -1128,8 +1128,8 @@ impl<Window: WindowMethods> IOCompositor<Window> {
let cursor = let cursor =
(combined_event.cursor.to_f32() / self.scale).to_untyped(); (combined_event.cursor.to_f32() / self.scale).to_untyped();
let location = webrender_traits::ScrollLocation::Delta(delta); let location = webrender_api::ScrollLocation::Delta(delta);
let cursor = webrender_traits::WorldPoint::from_untyped(&cursor); let cursor = webrender_api::WorldPoint::from_untyped(&cursor);
self.webrender_api.scroll(location, cursor, combined_event.phase); self.webrender_api.scroll(location, cursor, combined_event.phase);
last_combined_event = None last_combined_event = None
} }
@ -1139,7 +1139,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
(last_combined_event @ &mut None, _) => { (last_combined_event @ &mut None, _) => {
*last_combined_event = Some(ScrollZoomEvent { *last_combined_event = Some(ScrollZoomEvent {
magnification: scroll_event.magnification, magnification: scroll_event.magnification,
scroll_location: ScrollLocation::Delta(webrender_traits::LayoutVector2D::from_untyped( scroll_location: ScrollLocation::Delta(webrender_api::LayoutVector2D::from_untyped(
&this_delta.to_untyped())), &this_delta.to_untyped())),
cursor: this_cursor, cursor: this_cursor,
phase: scroll_event.phase, phase: scroll_event.phase,
@ -1178,14 +1178,14 @@ impl<Window: WindowMethods> IOCompositor<Window> {
ScrollLocation::Delta(delta) => { ScrollLocation::Delta(delta) => {
let scaled_delta = (TypedVector2D::from_untyped(&delta.to_untyped()) / self.scale) let scaled_delta = (TypedVector2D::from_untyped(&delta.to_untyped()) / self.scale)
.to_untyped(); .to_untyped();
let calculated_delta = webrender_traits::LayoutVector2D::from_untyped(&scaled_delta); let calculated_delta = webrender_api::LayoutVector2D::from_untyped(&scaled_delta);
ScrollLocation::Delta(calculated_delta) ScrollLocation::Delta(calculated_delta)
}, },
// Leave ScrollLocation unchanged if it is Start or End location. // Leave ScrollLocation unchanged if it is Start or End location.
sl @ ScrollLocation::Start | sl @ ScrollLocation::End => sl, sl @ ScrollLocation::Start | sl @ ScrollLocation::End => sl,
}; };
let cursor = (combined_event.cursor.to_f32() / self.scale).to_untyped(); let cursor = (combined_event.cursor.to_f32() / self.scale).to_untyped();
let cursor = webrender_traits::WorldPoint::from_untyped(&cursor); let cursor = webrender_api::WorldPoint::from_untyped(&cursor);
self.webrender_api.scroll(scroll_location, cursor, combined_event.phase); self.webrender_api.scroll(scroll_location, cursor, combined_event.phase);
self.waiting_for_results_of_scroll = true self.waiting_for_results_of_scroll = true
} }
@ -1283,7 +1283,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
} }
fn update_page_zoom_for_webrender(&mut self) { fn update_page_zoom_for_webrender(&mut self) {
let page_zoom = webrender_traits::ZoomFactor::new(self.page_zoom.get()); let page_zoom = webrender_api::ZoomFactor::new(self.page_zoom.get());
self.webrender_api.set_page_zoom(page_zoom); self.webrender_api.set_page_zoom(page_zoom);
} }
@ -1381,7 +1381,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
let mut pipeline_epochs = HashMap::new(); let mut pipeline_epochs = HashMap::new();
for (id, _) in &self.pipeline_details { for (id, _) in &self.pipeline_details {
let webrender_pipeline_id = id.to_webrender(); let webrender_pipeline_id = id.to_webrender();
if let Some(webrender_traits::Epoch(epoch)) = self.webrender if let Some(webrender_api::Epoch(epoch)) = self.webrender
.current_epoch(webrender_pipeline_id) { .current_epoch(webrender_pipeline_id) {
let epoch = Epoch(epoch); let epoch = Epoch(epoch);
pipeline_epochs.insert(*id, epoch); pipeline_epochs.insert(*id, epoch);
@ -1475,7 +1475,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
debug!("compositor: compositing"); debug!("compositor: compositing");
// Paint the scene. // Paint the scene.
let size = webrender_traits::DeviceUintSize::from_untyped(&self.frame_size.to_untyped()); let size = webrender_api::DeviceUintSize::from_untyped(&self.frame_size.to_untyped());
self.webrender.render(size); self.webrender.render(size);
}); });

View file

@ -19,7 +19,7 @@ use std::sync::mpsc::{Receiver, Sender};
use style_traits::cursor::Cursor; use style_traits::cursor::Cursor;
use style_traits::viewport::ViewportConstraints; use style_traits::viewport::ViewportConstraints;
use webrender; use webrender;
use webrender_traits; use webrender_api;
/// 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.
@ -85,7 +85,7 @@ pub enum Msg {
ShutdownComplete, ShutdownComplete,
/// Scroll a page in a window /// Scroll a page in a window
ScrollFragmentPoint(webrender_traits::ClipId, Point2D<f32>, bool), ScrollFragmentPoint(webrender_api::ClipId, Point2D<f32>, bool),
/// Alerts the compositor that the current page has changed its title. /// Alerts the compositor that the current page has changed its title.
ChangePageTitle(PipelineId, Option<String>), ChangePageTitle(PipelineId, Option<String>),
/// Alerts the compositor that the given pipeline has changed whether it is running animations. /// Alerts the compositor that the given pipeline has changed whether it is running animations.
@ -194,5 +194,5 @@ pub struct InitialCompositorState {
pub mem_profiler_chan: mem::ProfilerChan, pub mem_profiler_chan: mem::ProfilerChan,
/// Instance of webrender API /// Instance of webrender API
pub webrender: webrender::Renderer, pub webrender: webrender::Renderer,
pub webrender_api_sender: webrender_traits::RenderApiSender, pub webrender_api_sender: webrender_api::RenderApiSender,
} }

View file

@ -22,7 +22,7 @@ extern crate servo_url;
extern crate style_traits; extern crate style_traits;
extern crate time; extern crate time;
extern crate webrender; extern crate webrender;
extern crate webrender_traits; extern crate webrender_api;
pub use compositor_thread::CompositorProxy; pub use compositor_thread::CompositorProxy;
pub use compositor::IOCompositor; pub use compositor::IOCompositor;

View file

@ -16,7 +16,7 @@ use servo_url::ServoUrl;
use std::fmt::{Debug, Error, Formatter}; use std::fmt::{Debug, Error, Formatter};
use std::rc::Rc; use std::rc::Rc;
use style_traits::cursor::Cursor; use style_traits::cursor::Cursor;
use webrender_traits::ScrollLocation; use webrender_api::ScrollLocation;
#[derive(Clone)] #[derive(Clone)]
pub enum MouseWindowEvent { pub enum MouseWindowEvent {

View file

@ -39,7 +39,7 @@ servo_rand = {path = "../rand"}
servo_remutex = {path = "../remutex"} servo_remutex = {path = "../remutex"}
servo_url = {path = "../url"} servo_url = {path = "../url"}
webvr_traits = {path = "../webvr_traits"} webvr_traits = {path = "../webvr_traits"}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
[target.'cfg(not(target_os = "windows"))'.dependencies] [target.'cfg(not(target_os = "windows"))'.dependencies]
gaol = {git = "https://github.com/servo/gaol"} gaol = {git = "https://github.com/servo/gaol"}

View file

@ -128,7 +128,7 @@ use style_traits::CSSPixel;
use style_traits::cursor::Cursor; use style_traits::cursor::Cursor;
use style_traits::viewport::ViewportConstraints; use style_traits::viewport::ViewportConstraints;
use timer_scheduler::TimerScheduler; use timer_scheduler::TimerScheduler;
use webrender_traits; use webrender_api;
use webvr_traits::{WebVREvent, WebVRMsg}; use webvr_traits::{WebVREvent, WebVRMsg};
/// The `Constellation` itself. In the servo browser, there is one /// The `Constellation` itself. In the servo browser, there is one
@ -230,7 +230,7 @@ pub struct Constellation<Message, LTF, STF> {
/// A channel for the constellation to send messages to the /// A channel for the constellation to send messages to the
/// Webrender thread. /// Webrender thread.
webrender_api_sender: webrender_traits::RenderApiSender, webrender_api_sender: webrender_api::RenderApiSender,
/// The set of all event loops in the browser. We generate a new /// The set of all event loops in the browser. We generate a new
/// event loop for each registered domain name (aka eTLD+1) in /// event loop for each registered domain name (aka eTLD+1) in
@ -326,7 +326,7 @@ pub struct InitialConstellationState {
pub mem_profiler_chan: mem::ProfilerChan, pub mem_profiler_chan: mem::ProfilerChan,
/// Webrender API. /// Webrender API.
pub webrender_api_sender: webrender_traits::RenderApiSender, pub webrender_api_sender: webrender_api::RenderApiSender,
/// Whether the constellation supports the clipboard. /// Whether the constellation supports the clipboard.
/// TODO: this field is not used, remove it? /// TODO: this field is not used, remove it?

View file

@ -38,7 +38,7 @@ extern crate servo_rand;
extern crate servo_remutex; extern crate servo_remutex;
extern crate servo_url; extern crate servo_url;
extern crate style_traits; extern crate style_traits;
extern crate webrender_traits; extern crate webrender_api;
extern crate webvr_traits; extern crate webvr_traits;
mod browsingcontext; mod browsingcontext;

View file

@ -37,7 +37,7 @@ use std::rc::Rc;
use std::sync::Arc; use std::sync::Arc;
use std::sync::mpsc::Sender; use std::sync::mpsc::Sender;
use style_traits::CSSPixel; use style_traits::CSSPixel;
use webrender_traits; use webrender_api;
use webvr_traits::WebVRMsg; use webvr_traits::WebVRMsg;
/// A `Pipeline` is the constellation's view of a `Document`. Each pipeline has an /// A `Pipeline` is the constellation's view of a `Document`. Each pipeline has an
@ -164,7 +164,7 @@ pub struct InitialPipelineState {
pub prev_visibility: Option<bool>, pub prev_visibility: Option<bool>,
/// Webrender api. /// Webrender api.
pub webrender_api_sender: webrender_traits::RenderApiSender, pub webrender_api_sender: webrender_api::RenderApiSender,
/// Whether this pipeline is considered private. /// Whether this pipeline is considered private.
pub is_private: bool, pub is_private: bool,
@ -465,7 +465,7 @@ pub struct UnprivilegedPipelineContent {
layout_content_process_shutdown_port: IpcReceiver<()>, layout_content_process_shutdown_port: IpcReceiver<()>,
script_content_process_shutdown_chan: IpcSender<()>, script_content_process_shutdown_chan: IpcSender<()>,
script_content_process_shutdown_port: IpcReceiver<()>, script_content_process_shutdown_port: IpcReceiver<()>,
webrender_api_sender: webrender_traits::RenderApiSender, webrender_api_sender: webrender_api::RenderApiSender,
webvr_thread: Option<IpcSender<WebVRMsg>>, webvr_thread: Option<IpcSender<WebVRMsg>>,
} }

View file

@ -38,14 +38,14 @@ style_traits = {path = "../style_traits"}
time = "0.1.12" time = "0.1.12"
unicode-bidi = {version = "0.3", features = ["with_serde"]} unicode-bidi = {version = "0.3", features = ["with_serde"]}
unicode-script = {version = "0.1", features = ["harfbuzz"]} unicode-script = {version = "0.1", features = ["harfbuzz"]}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
xi-unicode = "0.1.0" xi-unicode = "0.1.0"
[target.'cfg(target_os = "macos")'.dependencies] [target.'cfg(target_os = "macos")'.dependencies]
byteorder = "1.0" byteorder = "1.0"
core-foundation = "0.3" core-foundation = "0.3"
core-graphics = "0.8" core-graphics = "0.8"
core-text = "5.0" core-text = "6.0"
[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies] [target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies]
freetype = "0.2" freetype = "0.2"

View file

@ -33,7 +33,8 @@ use style::values::computed::Filter;
use style_traits::cursor::Cursor; use style_traits::cursor::Cursor;
use text::TextRun; use text::TextRun;
use text::glyph::ByteIndex; use text::glyph::ByteIndex;
use webrender_traits::{self, ClipId, ColorF, GradientStop, MixBlendMode, ScrollPolicy, TransformStyle, WebGLContextId}; use webrender_api::{self, ClipId, ColorF, GradientStop, LocalClip, MixBlendMode, ScrollPolicy};
use webrender_api::{TransformStyle, WebGLContextId};
pub use style::dom::OpaqueNode; pub use style::dom::OpaqueNode;
@ -556,6 +557,12 @@ impl fmt::Debug for StackingContext {
} }
} }
#[derive(Clone, Debug, HeapSizeOf, Deserialize, Serialize)]
pub enum ScrollRootType {
ScrollFrame,
Clip,
}
/// Defines a stacking context. /// Defines a stacking context.
#[derive(Clone, Debug, HeapSizeOf, Deserialize, Serialize)] #[derive(Clone, Debug, HeapSizeOf, Deserialize, Serialize)]
pub struct ScrollRoot { pub struct ScrollRoot {
@ -571,6 +578,9 @@ pub struct ScrollRoot {
/// The rect of the contents that can be scrolled inside of the scroll root. /// The rect of the contents that can be scrolled inside of the scroll root.
pub content_rect: Rect<Au>, pub content_rect: Rect<Au>,
/// The type of this ScrollRoot.
pub root_type: ScrollRootType
} }
impl ScrollRoot { impl ScrollRoot {
@ -610,8 +620,8 @@ pub struct BaseDisplayItem {
/// Metadata attached to this display item. /// Metadata attached to this display item.
pub metadata: DisplayItemMetadata, pub metadata: DisplayItemMetadata,
/// The region to clip to. /// The local clip for this item.
pub clip: ClippingRegion, pub local_clip: LocalClip,
/// The section of the display list that this item belongs to. /// The section of the display list that this item belongs to.
pub section: DisplayListSection, pub section: DisplayListSection,
@ -627,22 +637,15 @@ impl BaseDisplayItem {
#[inline(always)] #[inline(always)]
pub fn new(bounds: &Rect<Au>, pub fn new(bounds: &Rect<Au>,
metadata: DisplayItemMetadata, metadata: DisplayItemMetadata,
clip: &ClippingRegion, local_clip: LocalClip,
section: DisplayListSection, section: DisplayListSection,
stacking_context_id: StackingContextId, stacking_context_id: StackingContextId,
scroll_root_id: ClipId) scroll_root_id: ClipId)
-> BaseDisplayItem { -> BaseDisplayItem {
// Detect useless clipping regions here and optimize them to `ClippingRegion::max()`.
// The painting backend may want to optimize out clipping regions and this makes it easier
// for it to do so.
BaseDisplayItem { BaseDisplayItem {
bounds: *bounds, bounds: *bounds,
metadata: metadata, metadata: metadata,
clip: if clip.does_not_clip_rect(&bounds) { local_clip: local_clip,
ClippingRegion::max()
} else {
(*clip).clone()
},
section: section, section: section,
stacking_context_id: stacking_context_id, stacking_context_id: stacking_context_id,
scroll_root_id: scroll_root_id, scroll_root_id: scroll_root_id,
@ -657,7 +660,7 @@ impl BaseDisplayItem {
node: OpaqueNode(0), node: OpaqueNode(0),
pointing: None, pointing: None,
}, },
clip: ClippingRegion::max(), local_clip: LocalClip::from(max_rect().to_rectf()),
section: DisplayListSection::Content, section: DisplayListSection::Content,
stacking_context_id: StackingContextId::root(), stacking_context_id: StackingContextId::root(),
scroll_root_id: pipeline_id.root_scroll_node(), scroll_root_id: pipeline_id.root_scroll_node(),
@ -1023,10 +1026,10 @@ pub struct ImageBorder {
pub fill: bool, pub fill: bool,
/// How to repeat or stretch horizontal edges (border-image-repeat). /// How to repeat or stretch horizontal edges (border-image-repeat).
pub repeat_horizontal: webrender_traits::RepeatMode, pub repeat_horizontal: webrender_api::RepeatMode,
/// How to repeat or stretch vertical edges (border-image-repeat). /// How to repeat or stretch vertical edges (border-image-repeat).
pub repeat_vertical: webrender_traits::RepeatMode, pub repeat_vertical: webrender_api::RepeatMode,
} }
/// A border that is made of linear gradient /// A border that is made of linear gradient
@ -1273,7 +1276,7 @@ impl DisplayItem {
let point = Point2D::new(point.x - Au::from_f32_px(scroll_offset.x), let point = Point2D::new(point.x - Au::from_f32_px(scroll_offset.x),
point.y - Au::from_f32_px(scroll_offset.y)); point.y - Au::from_f32_px(scroll_offset.y));
if !base_item.clip.might_intersect_point(&point) { if !base_item.local_clip.clip_rect().contains(&point.to_pointf()) {
// Clipped out. // Clipped out.
return None; return None;
} }
@ -1356,7 +1359,7 @@ impl fmt::Debug for DisplayItem {
DisplayItem::DefineClip(_) => "".to_owned(), DisplayItem::DefineClip(_) => "".to_owned(),
}, },
self.bounds(), self.bounds(),
self.base().clip self.base().local_clip
) )
} }
} }
@ -1366,7 +1369,7 @@ pub struct WebRenderImageInfo {
pub width: u32, pub width: u32,
pub height: u32, pub height: u32,
pub format: PixelFormat, pub format: PixelFormat,
pub key: Option<webrender_traits::ImageKey>, pub key: Option<webrender_api::ImageKey>,
} }
impl WebRenderImageInfo { impl WebRenderImageInfo {
@ -1399,3 +1402,29 @@ impl SimpleMatrixDetection for Transform3D<f32> {
self.m44 == _1 self.m44 == _1
} }
} }
trait ToPointF {
fn to_pointf(&self) -> webrender_api::LayoutPoint;
}
impl ToPointF for Point2D<Au> {
fn to_pointf(&self) -> webrender_api::LayoutPoint {
webrender_api::LayoutPoint::new(self.x.to_f32_px(), self.y.to_f32_px())
}
}
trait ToRectF {
fn to_rectf(&self) -> webrender_api::LayoutRect;
}
impl ToRectF for Rect<Au> {
fn to_rectf(&self) -> webrender_api::LayoutRect {
let x = self.origin.x.to_f32_px();
let y = self.origin.y.to_f32_px();
let w = self.size.width.to_f32_px();
let h = self.size.height.to_f32_px();
let point = webrender_api::LayoutPoint::new(x, y);
let size = webrender_api::LayoutSize::new(w, h);
webrender_api::LayoutRect::new(point, size)
}
}

View file

@ -24,7 +24,7 @@ use text::glyph::{ByteIndex, GlyphData, GlyphId, GlyphStore};
use text::shaping::ShaperMethods; use text::shaping::ShaperMethods;
use time; use time;
use unicode_script::Script; use unicode_script::Script;
use webrender_traits; use webrender_api;
macro_rules! ot_tag { macro_rules! ot_tag {
($t1:expr, $t2:expr, $t3:expr, $t4:expr) => ( ($t1:expr, $t2:expr, $t3:expr, $t4:expr) => (
@ -112,7 +112,7 @@ pub struct Font {
shaper: Option<Shaper>, shaper: Option<Shaper>,
shape_cache: RefCell<HashMap<ShapeCacheEntry, Arc<GlyphStore>>>, shape_cache: RefCell<HashMap<ShapeCacheEntry, Arc<GlyphStore>>>,
glyph_advance_cache: RefCell<HashMap<u32, FractionalPixel>>, glyph_advance_cache: RefCell<HashMap<u32, FractionalPixel>>,
pub font_key: webrender_traits::FontKey, pub font_key: webrender_api::FontKey,
} }
impl Font { impl Font {
@ -121,7 +121,7 @@ impl Font {
descriptor: FontTemplateDescriptor, descriptor: FontTemplateDescriptor,
requested_pt_size: Au, requested_pt_size: Au,
actual_pt_size: Au, actual_pt_size: Au,
font_key: webrender_traits::FontKey) -> Font { font_key: webrender_api::FontKey) -> Font {
let metrics = handle.metrics(); let metrics = handle.metrics();
Font { Font {
handle: handle, handle: handle,

View file

@ -26,7 +26,7 @@ use std::thread;
use std::u32; use std::u32;
use style::font_face::{EffectiveSources, Source}; use style::font_face::{EffectiveSources, Source};
use style::properties::longhands::font_family::computed_value::{FontFamily, FamilyName}; use style::properties::longhands::font_family::computed_value::{FontFamily, FamilyName};
use webrender_traits; use webrender_api;
/// A list of font templates that make up a given font family. /// A list of font templates that make up a given font family.
struct FontTemplates { struct FontTemplates {
@ -36,7 +36,7 @@ struct FontTemplates {
#[derive(Serialize, Deserialize, Debug)] #[derive(Serialize, Deserialize, Debug)]
pub struct FontTemplateInfo { pub struct FontTemplateInfo {
pub font_template: Arc<FontTemplateData>, pub font_template: Arc<FontTemplateData>,
pub font_key: Option<webrender_traits::FontKey>, pub font_key: Option<webrender_api::FontKey>,
} }
impl FontTemplates { impl FontTemplates {
@ -127,8 +127,8 @@ struct FontCache {
web_families: HashMap<LowercaseString, FontTemplates>, web_families: HashMap<LowercaseString, FontTemplates>,
font_context: FontContextHandle, font_context: FontContextHandle,
core_resource_thread: CoreResourceThread, core_resource_thread: CoreResourceThread,
webrender_api: Option<webrender_traits::RenderApi>, webrender_api: Option<webrender_api::RenderApi>,
webrender_fonts: HashMap<Atom, webrender_traits::FontKey>, webrender_fonts: HashMap<Atom, webrender_api::FontKey>,
} }
fn populate_generic_fonts() -> HashMap<FontFamily, LowercaseString> { fn populate_generic_fonts() -> HashMap<FontFamily, LowercaseString> {
@ -400,7 +400,7 @@ pub struct FontCacheThread {
impl FontCacheThread { impl FontCacheThread {
pub fn new(core_resource_thread: CoreResourceThread, pub fn new(core_resource_thread: CoreResourceThread,
webrender_api: Option<webrender_traits::RenderApi>) -> FontCacheThread { webrender_api: Option<webrender_api::RenderApi>) -> FontCacheThread {
let (chan, port) = ipc::channel().unwrap(); let (chan, port) = ipc::channel().unwrap();
let channel_to_self = chan.clone(); let channel_to_self = chan.clone();

View file

@ -22,7 +22,7 @@ use std::sync::atomic::{AtomicUsize, Ordering, ATOMIC_USIZE_INIT};
use style::computed_values::{font_style, font_variant_caps}; use style::computed_values::{font_style, font_variant_caps};
use style::properties::style_structs; use style::properties::style_structs;
use style::stylearc::Arc as StyleArc; use style::stylearc::Arc as StyleArc;
use webrender_traits; use webrender_api;
static SMALL_CAPS_SCALE_FACTOR: f32 = 0.8; // Matches FireFox (see gfxFont.h) static SMALL_CAPS_SCALE_FACTOR: f32 = 0.8; // Matches FireFox (see gfxFont.h)
@ -79,7 +79,7 @@ impl FontContext {
descriptor: FontTemplateDescriptor, descriptor: FontTemplateDescriptor,
pt_size: Au, pt_size: Au,
variant: font_variant_caps::T, variant: font_variant_caps::T,
font_key: webrender_traits::FontKey) -> Result<Font, ()> { font_key: webrender_api::FontKey) -> Result<Font, ()> {
// TODO: (Bug #3463): Currently we only support fake small-caps // TODO: (Bug #3463): Currently we only support fake small-caps
// painting. We should also support true small-caps (where the // painting. We should also support true small-caps (where the
// font supports it) in the future. // font supports it) in the future.

View file

@ -66,7 +66,7 @@ extern crate style_traits;
extern crate time; extern crate time;
extern crate unicode_bidi; extern crate unicode_bidi;
extern crate unicode_script; extern crate unicode_script;
extern crate webrender_traits; extern crate webrender_api;
extern crate xi_unicode; extern crate xi_unicode;
#[cfg(target_os = "android")] #[cfg(target_os = "android")]
extern crate xml5ever; extern crate xml5ever;

View file

@ -5,7 +5,7 @@
use servo_atoms::Atom; use servo_atoms::Atom;
use std::fs::File; use std::fs::File;
use std::io::{Read, Error}; use std::io::{Read, Error};
use webrender_traits::NativeFontHandle; use webrender_api::NativeFontHandle;
/// Platform specific font representation for Linux. /// Platform specific font representation for Linux.
/// The identifier is an absolute path, and the bytes /// The identifier is an absolute path, and the bytes

View file

@ -18,7 +18,7 @@ use std::fs::File;
use std::io::{Read, Error as IoError}; use std::io::{Read, Error as IoError};
use std::ops::Deref; use std::ops::Deref;
use std::sync::Mutex; use std::sync::Mutex;
use webrender_traits::NativeFontHandle; use webrender_api::NativeFontHandle;
/// Platform specific font representation for mac. /// Platform specific font representation for mac.
/// The identifier is a PostScript font name. The /// The identifier is a PostScript font name. The

View file

@ -5,7 +5,7 @@
use platform::windows::font_list::{descriptor_from_atom, font_from_atom}; use platform::windows::font_list::{descriptor_from_atom, font_from_atom};
use servo_atoms::Atom; use servo_atoms::Atom;
use std::io; use std::io;
use webrender_traits::NativeFontHandle; use webrender_api::NativeFontHandle;
#[derive(Deserialize, Serialize, Debug)] #[derive(Deserialize, Serialize, Debug)]
pub struct FontTemplateData { pub struct FontTemplateData {

View file

@ -14,7 +14,7 @@ use std::sync::Arc;
use style::str::char_is_whitespace; use style::str::char_is_whitespace;
use text::glyph::{ByteIndex, GlyphStore}; use text::glyph::{ByteIndex, GlyphStore};
use unicode_bidi as bidi; use unicode_bidi as bidi;
use webrender_traits; use webrender_api;
use xi_unicode::LineBreakIterator; use xi_unicode::LineBreakIterator;
thread_local! { thread_local! {
@ -30,7 +30,7 @@ pub struct TextRun {
pub font_template: Arc<FontTemplateData>, pub font_template: Arc<FontTemplateData>,
pub actual_pt_size: Au, pub actual_pt_size: Au,
pub font_metrics: FontMetrics, pub font_metrics: FontMetrics,
pub font_key: webrender_traits::FontKey, pub font_key: webrender_api::FontKey,
/// The glyph runs that make up this text run. /// The glyph runs that make up this text run.
pub glyphs: Arc<Vec<GlyphRun>>, pub glyphs: Arc<Vec<GlyphRun>>,
pub bidi_level: bidi::Level, pub bidi_level: bidi::Level,

View file

@ -44,4 +44,4 @@ style = {path = "../style"}
style_traits = {path = "../style_traits"} style_traits = {path = "../style_traits"}
unicode-bidi = {version = "0.3", features = ["with_serde"]} unicode-bidi = {version = "0.3", features = ["with_serde"]}
unicode-script = {version = "0.1", features = ["harfbuzz"]} unicode-script = {version = "0.1", features = ["harfbuzz"]}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}

View file

@ -21,14 +21,14 @@ use flow_ref::FlowRef;
use fragment::{CoordinateSystem, Fragment, ImageFragmentInfo, ScannedTextFragmentInfo}; use fragment::{CoordinateSystem, Fragment, ImageFragmentInfo, ScannedTextFragmentInfo};
use fragment::{SpecificFragmentInfo, TruncatedFragmentInfo}; use fragment::{SpecificFragmentInfo, TruncatedFragmentInfo};
use gfx::display_list; use gfx::display_list;
use gfx::display_list::{BLUR_INFLATION_FACTOR, BaseDisplayItem, BorderDetails}; use gfx::display_list::{BLUR_INFLATION_FACTOR, BaseDisplayItem, BorderDetails, BorderDisplayItem};
use gfx::display_list::{BorderDisplayItem, ImageBorder, NormalBorder};
use gfx::display_list::{BorderRadii, BoxShadowClipMode, BoxShadowDisplayItem, ClippingRegion}; use gfx::display_list::{BorderRadii, BoxShadowClipMode, BoxShadowDisplayItem, ClippingRegion};
use gfx::display_list::{DisplayItem, DisplayItemMetadata, DisplayList, DisplayListSection}; use gfx::display_list::{DisplayItem, DisplayItemMetadata, DisplayList, DisplayListSection};
use gfx::display_list::{GradientDisplayItem, RadialGradientDisplayItem, IframeDisplayItem, ImageDisplayItem}; use gfx::display_list::{GradientDisplayItem, IframeDisplayItem, ImageBorder, ImageDisplayItem};
use gfx::display_list::{LineDisplayItem, OpaqueNode}; use gfx::display_list::{LineDisplayItem, NormalBorder, OpaqueNode, RadialGradientDisplayItem};
use gfx::display_list::{SolidColorDisplayItem, ScrollRoot, StackingContext, StackingContextType}; use gfx::display_list::{ScrollRoot, ScrollRootType, SolidColorDisplayItem, StackingContext};
use gfx::display_list::{TextDisplayItem, TextOrientation, WebGLDisplayItem, WebRenderImageInfo}; use gfx::display_list::{StackingContextType, TextDisplayItem, TextOrientation, WebGLDisplayItem};
use gfx::display_list::WebRenderImageInfo;
use gfx_traits::{combine_id_with_fragment_type, FragmentType, StackingContextId}; use gfx_traits::{combine_id_with_fragment_type, FragmentType, StackingContextId};
use inline::{FIRST_FRAGMENT_OF_ELEMENT, InlineFlow, LAST_FRAGMENT_OF_ELEMENT}; use inline::{FIRST_FRAGMENT_OF_ELEMENT, InlineFlow, LAST_FRAGMENT_OF_ELEMENT};
use ipc_channel::ipc; use ipc_channel::ipc;
@ -71,8 +71,9 @@ use style::values::specified::position::{X, Y};
use style_traits::CSSPixel; use style_traits::CSSPixel;
use style_traits::cursor::Cursor; use style_traits::cursor::Cursor;
use table_cell::CollapsedBordersForCell; use table_cell::CollapsedBordersForCell;
use webrender_helpers::{ToMixBlendMode, ToTransformStyle}; use webrender_api::{ClipId, ColorF, ComplexClipRegion, GradientStop, LocalClip, RepeatMode};
use webrender_traits::{ColorF, ClipId, GradientStop, RepeatMode, ScrollPolicy, TransformStyle}; use webrender_api::{ScrollPolicy, TransformStyle};
use webrender_helpers::{ToBorderRadius, ToMixBlendMode, ToRectF, ToTransformStyle};
trait ResolvePercentage { trait ResolvePercentage {
fn resolve(&self, length: u32) -> u32; fn resolve(&self, length: u32) -> u32;
@ -250,7 +251,7 @@ impl<'a> DisplayListBuildState<'a> {
fn create_base_display_item(&self, fn create_base_display_item(&self,
bounds: &Rect<Au>, bounds: &Rect<Au>,
clip: &ClippingRegion, clip: LocalClip,
node: OpaqueNode, node: OpaqueNode,
cursor: Option<Cursor>, cursor: Option<Cursor>,
section: DisplayListSection) section: DisplayListSection)
@ -394,7 +395,7 @@ pub trait FragmentDisplayListBuilding {
style: &ServoComputedValues, style: &ServoComputedValues,
display_list_section: DisplayListSection, display_list_section: DisplayListSection,
absolute_bounds: &Rect<Au>, absolute_bounds: &Rect<Au>,
clip: &ClippingRegion, clip: &LocalClip,
image_url: &ServoUrl, image_url: &ServoUrl,
background_index: usize); background_index: usize);
@ -405,7 +406,7 @@ pub trait FragmentDisplayListBuilding {
style: &ServoComputedValues, style: &ServoComputedValues,
display_list_section: DisplayListSection, display_list_section: DisplayListSection,
absolute_bounds: &Rect<Au>, absolute_bounds: &Rect<Au>,
clip: &ClippingRegion, clip: &LocalClip,
webrender_image: WebRenderImageInfo, webrender_image: WebRenderImageInfo,
index: usize); index: usize);
@ -416,7 +417,7 @@ pub trait FragmentDisplayListBuilding {
style: &ServoComputedValues, style: &ServoComputedValues,
display_list_section: DisplayListSection, display_list_section: DisplayListSection,
absolute_bounds: &Rect<Au>, absolute_bounds: &Rect<Au>,
clip: &ClippingRegion, clip: &LocalClip,
paint_worklet: &PaintWorklet, paint_worklet: &PaintWorklet,
index: usize); index: usize);
@ -441,8 +442,7 @@ pub trait FragmentDisplayListBuilding {
state: &mut DisplayListBuildState, state: &mut DisplayListBuildState,
display_list_section: DisplayListSection, display_list_section: DisplayListSection,
absolute_bounds: &Rect<Au>, absolute_bounds: &Rect<Au>,
clip_bounds: &Rect<Au>, clip: &LocalClip,
clip: &ClippingRegion,
gradient: &Gradient, gradient: &Gradient,
style: &ServoComputedValues); style: &ServoComputedValues);
@ -837,18 +837,11 @@ impl FragmentDisplayListBuilding for Fragment {
style: &ServoComputedValues, style: &ServoComputedValues,
display_list_section: DisplayListSection, display_list_section: DisplayListSection,
absolute_bounds: &Rect<Au>) { absolute_bounds: &Rect<Au>) {
// Adjust the clipping region as necessary to account for `border-radius`.
let border_radii = build_border_radius(absolute_bounds, style.get_border());
let mut clip = ClippingRegion::max();
if !border_radii.is_square() {
clip.intersect_with_rounded_rect(absolute_bounds, &border_radii);
};
let background = style.get_background();
// FIXME: This causes a lot of background colors to be displayed when they are clearly not // FIXME: This causes a lot of background colors to be displayed when they are clearly not
// needed. We could use display list optimization to clean this up, but it still seems // needed. We could use display list optimization to clean this up, but it still seems
// inefficient. What we really want is something like "nearest ancestor element that // inefficient. What we really want is something like "nearest ancestor element that
// doesn't have a fragment". // doesn't have a fragment".
let background = style.get_background();
let background_color = style.resolve_color(background.background_color); let background_color = style.resolve_color(background.background_color);
// 'background-clip' determines the area within which the background is painted. // 'background-clip' determines the area within which the background is painted.
@ -877,8 +870,20 @@ impl FragmentDisplayListBuilding for Fragment {
} }
} }
// Adjust the clipping region as necessary to account for `border-radius`.
let border_radii = build_border_radius(absolute_bounds, style.get_border());
let clip = if !border_radii.is_square() {
LocalClip::RoundedRect(bounds.to_rectf(), ComplexClipRegion::new(
bounds.to_rectf(),
border_radii.to_border_radius(),
))
} else {
LocalClip::Rect(bounds.to_rectf())
};
let base = state.create_base_display_item(&bounds, let base = state.create_base_display_item(&bounds,
&clip, clip,
self.node, self.node,
style.get_cursor(Cursor::Default), style.get_cursor(Cursor::Default),
display_list_section); display_list_section);
@ -899,7 +904,6 @@ impl FragmentDisplayListBuilding for Fragment {
self.build_display_list_for_background_gradient(state, self.build_display_list_for_background_gradient(state,
display_list_section, display_list_section,
&absolute_bounds, &absolute_bounds,
&bounds,
&clip, &clip,
gradient, gradient,
style); style);
@ -984,7 +988,7 @@ impl FragmentDisplayListBuilding for Fragment {
style: &ServoComputedValues, style: &ServoComputedValues,
display_list_section: DisplayListSection, display_list_section: DisplayListSection,
absolute_bounds: &Rect<Au>, absolute_bounds: &Rect<Au>,
clip: &ClippingRegion, clip: &LocalClip,
image_url: &ServoUrl, image_url: &ServoUrl,
index: usize) { index: usize) {
let webrender_image = state.layout_context let webrender_image = state.layout_context
@ -1008,7 +1012,7 @@ impl FragmentDisplayListBuilding for Fragment {
style: &ServoComputedValues, style: &ServoComputedValues,
display_list_section: DisplayListSection, display_list_section: DisplayListSection,
absolute_bounds: &Rect<Au>, absolute_bounds: &Rect<Au>,
clip: &ClippingRegion, clip: &LocalClip,
webrender_image: WebRenderImageInfo, webrender_image: WebRenderImageInfo,
index: usize) { index: usize) {
debug!("(building display list) building background image"); debug!("(building display list) building background image");
@ -1019,12 +1023,6 @@ impl FragmentDisplayListBuilding for Fragment {
let image_size = self.compute_background_image_size(style, &bounds, let image_size = self.compute_background_image_size(style, &bounds,
&webrender_image, index); &webrender_image, index);
// Clip.
//
// TODO: Check the bounds to see if a clip item is actually required.
let mut clip = clip.clone();
clip.intersect_rect(&bounds);
// Background image should be positioned on the padding box basis. // Background image should be positioned on the padding box basis.
let border = style.logical_border_width().to_physical(style.writing_mode); let border = style.logical_border_width().to_physical(style.writing_mode);
@ -1129,7 +1127,7 @@ impl FragmentDisplayListBuilding for Fragment {
// Create the image display item. // Create the image display item.
let base = state.create_base_display_item(&bounds, let base = state.create_base_display_item(&bounds,
&clip, *clip,
self.node, self.node,
style.get_cursor(Cursor::Default), style.get_cursor(Cursor::Default),
display_list_section); display_list_section);
@ -1151,7 +1149,7 @@ impl FragmentDisplayListBuilding for Fragment {
style: &ServoComputedValues, style: &ServoComputedValues,
display_list_section: DisplayListSection, display_list_section: DisplayListSection,
absolute_bounds: &Rect<Au>, absolute_bounds: &Rect<Au>,
clip: &ClippingRegion, clip: &LocalClip,
paint_worklet: &PaintWorklet, paint_worklet: &PaintWorklet,
index: usize) index: usize)
{ {
@ -1315,13 +1313,9 @@ impl FragmentDisplayListBuilding for Fragment {
state: &mut DisplayListBuildState, state: &mut DisplayListBuildState,
display_list_section: DisplayListSection, display_list_section: DisplayListSection,
absolute_bounds: &Rect<Au>, absolute_bounds: &Rect<Au>,
clip_bounds: &Rect<Au>, clip: &LocalClip,
clip: &ClippingRegion,
gradient: &Gradient, gradient: &Gradient,
style: &ServoComputedValues) { style: &ServoComputedValues) {
let mut clip = clip.clone();
clip.intersect_rect(clip_bounds);
let border = self.border_width().to_physical(style.writing_mode); let border = self.border_width().to_physical(style.writing_mode);
let mut bounds = *absolute_bounds; let mut bounds = *absolute_bounds;
bounds.origin.x = bounds.origin.x + border.left; bounds.origin.x = bounds.origin.x + border.left;
@ -1330,7 +1324,7 @@ impl FragmentDisplayListBuilding for Fragment {
bounds.size.height = bounds.size.height - border.vertical(); bounds.size.height = bounds.size.height - border.vertical();
let base = state.create_base_display_item(&bounds, let base = state.create_base_display_item(&bounds,
&clip, *clip,
self.node, self.node,
style.get_cursor(Cursor::Default), style.get_cursor(Cursor::Default),
display_list_section); display_list_section);
@ -1380,7 +1374,7 @@ impl FragmentDisplayListBuilding for Fragment {
// TODO(pcwalton): Multiple border radii; elliptical border radii. // TODO(pcwalton): Multiple border radii; elliptical border radii.
let base = state.create_base_display_item(&bounds, let base = state.create_base_display_item(&bounds,
&ClippingRegion::from_rect(&clip), LocalClip::from(clip.to_rectf()),
self.node, self.node,
style.get_cursor(Cursor::Default), style.get_cursor(Cursor::Default),
display_list_section); display_list_section);
@ -1452,7 +1446,7 @@ impl FragmentDisplayListBuilding for Fragment {
// Append the border to the display list. // Append the border to the display list.
let base = state.create_base_display_item(&bounds, let base = state.create_base_display_item(&bounds,
&ClippingRegion::from_rect(&clip), LocalClip::from(clip.to_rectf()),
self.node, self.node,
style.get_cursor(Cursor::Default), style.get_cursor(Cursor::Default),
display_list_section); display_list_section);
@ -1581,7 +1575,7 @@ impl FragmentDisplayListBuilding for Fragment {
// Append the outline to the display list. // Append the outline to the display list.
let color = style.resolve_color(style.get_outline().outline_color).to_gfx_color(); let color = style.resolve_color(style.get_outline().outline_color).to_gfx_color();
let base = state.create_base_display_item(&bounds, let base = state.create_base_display_item(&bounds,
&ClippingRegion::from_rect(&clip), LocalClip::from(clip.to_rectf()),
self.node, self.node,
style.get_cursor(Cursor::Default), style.get_cursor(Cursor::Default),
DisplayListSection::Outlines); DisplayListSection::Outlines);
@ -1608,7 +1602,7 @@ impl FragmentDisplayListBuilding for Fragment {
// Compute the text fragment bounds and draw a border surrounding them. // Compute the text fragment bounds and draw a border surrounding them.
let base = state.create_base_display_item(stacking_relative_border_box, let base = state.create_base_display_item(stacking_relative_border_box,
&ClippingRegion::from_rect(&clip), LocalClip::from(clip.to_rectf()),
self.node, self.node,
style.get_cursor(Cursor::Default), style.get_cursor(Cursor::Default),
DisplayListSection::Content); DisplayListSection::Content);
@ -1631,7 +1625,7 @@ impl FragmentDisplayListBuilding for Fragment {
let baseline = baseline.to_physical(self.style.writing_mode, container_size); let baseline = baseline.to_physical(self.style.writing_mode, container_size);
let base = state.create_base_display_item(&baseline, let base = state.create_base_display_item(&baseline,
&ClippingRegion::from_rect(&clip), LocalClip::from(clip.to_rectf()),
self.node, self.node,
style.get_cursor(Cursor::Default), style.get_cursor(Cursor::Default),
DisplayListSection::Content); DisplayListSection::Content);
@ -1648,7 +1642,7 @@ impl FragmentDisplayListBuilding for Fragment {
clip: &Rect<Au>) { clip: &Rect<Au>) {
// This prints a debug border around the border of this fragment. // This prints a debug border around the border of this fragment.
let base = state.create_base_display_item(stacking_relative_border_box, let base = state.create_base_display_item(stacking_relative_border_box,
&ClippingRegion::from_rect(&clip), LocalClip::from(clip.to_rectf()),
self.node, self.node,
self.style.get_cursor(Cursor::Default), self.style.get_cursor(Cursor::Default),
DisplayListSection::Content); DisplayListSection::Content);
@ -1682,7 +1676,7 @@ impl FragmentDisplayListBuilding for Fragment {
let style = self.selected_style(); let style = self.selected_style();
let background_color = style.resolve_color(style.get_background().background_color); let background_color = style.resolve_color(style.get_background().background_color);
let base = state.create_base_display_item(stacking_relative_border_box, let base = state.create_base_display_item(stacking_relative_border_box,
&ClippingRegion::from_rect(&clip), LocalClip::from(clip.to_rectf()),
self.node, self.node,
self.style.get_cursor(Cursor::Default), self.style.get_cursor(Cursor::Default),
display_list_section); display_list_section);
@ -1721,7 +1715,7 @@ impl FragmentDisplayListBuilding for Fragment {
}; };
let base = state.create_base_display_item(&insertion_point_bounds, let base = state.create_base_display_item(&insertion_point_bounds,
&ClippingRegion::from_rect(&clip), LocalClip::from(clip.to_rectf()),
self.node, self.node,
self.style.get_cursor(cursor), self.style.get_cursor(cursor),
display_list_section); display_list_section);
@ -1913,7 +1907,7 @@ impl FragmentDisplayListBuilding for Fragment {
if !stacking_relative_content_box.is_empty() { if !stacking_relative_content_box.is_empty() {
let base = state.create_base_display_item( let base = state.create_base_display_item(
&stacking_relative_content_box, &stacking_relative_content_box,
&ClippingRegion::from_rect(clip), LocalClip::from(clip.to_rectf()),
self.node, self.node,
self.style.get_cursor(Cursor::Default), self.style.get_cursor(Cursor::Default),
DisplayListSection::Content); DisplayListSection::Content);
@ -1934,7 +1928,7 @@ impl FragmentDisplayListBuilding for Fragment {
if let Some(ref image) = image_fragment.image { if let Some(ref image) = image_fragment.image {
let base = state.create_base_display_item( let base = state.create_base_display_item(
&stacking_relative_content_box, &stacking_relative_content_box,
&ClippingRegion::from_rect(clip), LocalClip::from(clip.to_rectf()),
self.node, self.node,
self.style.get_cursor(Cursor::Default), self.style.get_cursor(Cursor::Default),
DisplayListSection::Content); DisplayListSection::Content);
@ -1965,7 +1959,7 @@ impl FragmentDisplayListBuilding for Fragment {
let base = state.create_base_display_item( let base = state.create_base_display_item(
&stacking_relative_content_box, &stacking_relative_content_box,
&ClippingRegion::from_rect(clip), LocalClip::from(clip.to_rectf()),
self.node, self.node,
self.style.get_cursor(Cursor::Default), self.style.get_cursor(Cursor::Default),
DisplayListSection::Content); DisplayListSection::Content);
@ -2100,7 +2094,7 @@ impl FragmentDisplayListBuilding for Fragment {
// Create the text display item. // Create the text display item.
let base = state.create_base_display_item(&stacking_relative_content_box, let base = state.create_base_display_item(&stacking_relative_content_box,
&ClippingRegion::from_rect(&clip), LocalClip::from(clip.to_rectf()),
self.node, self.node,
self.style().get_cursor(cursor), self.style().get_cursor(cursor),
DisplayListSection::Content); DisplayListSection::Content);
@ -2178,7 +2172,7 @@ impl FragmentDisplayListBuilding for Fragment {
container_size); container_size);
let base = state.create_base_display_item( let base = state.create_base_display_item(
&shadow_bounds(&stacking_relative_box, blur_radius, Au(0)), &shadow_bounds(&stacking_relative_box, blur_radius, Au(0)),
&ClippingRegion::from_rect(&clip), LocalClip::from(clip.to_rectf()),
self.node, self.node,
self.style.get_cursor(Cursor::Default), self.style.get_cursor(Cursor::Default),
DisplayListSection::Content); DisplayListSection::Content);
@ -2496,35 +2490,32 @@ impl BlockFlowDisplayListBuilding for BlockFlow {
return; return;
} }
let clip_rect = Rect::new(Point2D::zero(), content_box.size); let overflow_x = self.fragment.style.get_box().overflow_x;
let mut clip = ClippingRegion::from_rect(&clip_rect); let overflow_y = self.fragment.style.get_box().overflow_y;
let border_radii = build_border_radius_for_inner_rect(&border_box,
&self.fragment.style);
if !border_radii.is_square() {
clip.intersect_with_rounded_rect(&clip_rect, &border_radii)
}
let content_size = self.base.overflow.scroll.origin + self.base.overflow.scroll.size; let content_size = self.base.overflow.scroll.origin + self.base.overflow.scroll.size;
let mut content_size = Size2D::new(content_size.x, content_size.y); let mut content_size = Size2D::new(content_size.x, content_size.y);
if overflow_x::T::hidden == self.fragment.style.get_box().overflow_x { if overflow_x::T::hidden == overflow_x {
content_size.width = content_box.size.width; content_size.width = content_box.size.width;
} }
if overflow_x::T::hidden == self.fragment.style.get_box().overflow_y { if overflow_x::T::hidden == overflow_y {
content_size.height = content_box.size.height; content_size.height = content_box.size.height;
} }
if overflow_x::T::hidden == self.fragment.style.get_box().overflow_y || if overflow_x::T::hidden == overflow_y || overflow_x::T::hidden == overflow_x {
overflow_x::T::hidden == self.fragment.style.get_box().overflow_x {
preserved_state.push_clip(state, &border_box, self.positioning()); preserved_state.push_clip(state, &border_box, self.positioning());
} }
let clip_rect = Rect::new(Point2D::zero(), content_box.size); let mut root_type = ScrollRootType::ScrollFrame;
let mut clip = ClippingRegion::from_rect(&clip_rect); if overflow_x::T::hidden == overflow_y && overflow_x::T::hidden == overflow_x {
root_type = ScrollRootType::Clip;
}
let mut clip = ClippingRegion::from_rect(&content_box);
let radii = build_border_radius_for_inner_rect(&border_box, &self.fragment.style); let radii = build_border_radius_for_inner_rect(&border_box, &self.fragment.style);
if !radii.is_square() { if !radii.is_square() {
clip.intersect_with_rounded_rect(&clip_rect, &radii) clip.intersect_with_rounded_rect(&content_box, &radii)
} }
let parent_id = self.scroll_root_id(state.layout_context.id); let parent_id = self.scroll_root_id(state.layout_context.id);
@ -2534,6 +2525,7 @@ impl BlockFlowDisplayListBuilding for BlockFlow {
parent_id: parent_id, parent_id: parent_id,
clip: clip, clip: clip,
content_rect: Rect::new(content_box.origin, content_size), content_rect: Rect::new(content_box.origin, content_size),
root_type,
}, },
self.base.stacking_context_id self.base.stacking_context_id
); );
@ -2576,16 +2568,17 @@ impl BlockFlowDisplayListBuilding for BlockFlow {
return; return;
} }
let content_rect = Rect::new(clip_origin, clip_size); let clip_rect = Rect::new(clip_origin, clip_size);
preserved_state.push_clip(state, &content_rect, self.positioning()); preserved_state.push_clip(state, &clip_rect, self.positioning());
let parent_id = self.scroll_root_id(state.layout_context.id); let parent_id = self.scroll_root_id(state.layout_context.id);
state.add_scroll_root( state.add_scroll_root(
ScrollRoot { ScrollRoot {
id: new_scroll_root_id, id: new_scroll_root_id,
parent_id: parent_id, parent_id: parent_id,
clip: ClippingRegion::from_rect(&Rect::new(Point2D::zero(), clip_size)), clip: ClippingRegion::from_rect(&clip_rect),
content_rect: content_rect, content_rect: Rect::zero(), // content_rect isn't important for clips.
root_type: ScrollRootType::Clip,
}, },
self.base.stacking_context_id self.base.stacking_context_id
); );
@ -2853,7 +2846,7 @@ impl BaseFlowDisplayListBuilding for BaseFlow {
color.a = 1.0; color.a = 1.0;
let base = state.create_base_display_item( let base = state.create_base_display_item(
&stacking_context_relative_bounds.inflate(Au::from_px(2), Au::from_px(2)), &stacking_context_relative_bounds.inflate(Au::from_px(2), Au::from_px(2)),
&ClippingRegion::from_rect(&self.clip), LocalClip::from(self.clip.to_rectf()),
node, node,
None, None,
DisplayListSection::Content); DisplayListSection::Content);

View file

@ -63,7 +63,7 @@ use table_colgroup::TableColGroupFlow;
use table_row::TableRowFlow; use table_row::TableRowFlow;
use table_rowgroup::TableRowGroupFlow; use table_rowgroup::TableRowGroupFlow;
use table_wrapper::TableWrapperFlow; use table_wrapper::TableWrapperFlow;
use webrender_traits::ClipId; use webrender_api::ClipId;
/// Virtual methods that make up a float context. /// Virtual methods that make up a float context.
/// ///

View file

@ -46,7 +46,7 @@ extern crate style;
extern crate style_traits; extern crate style_traits;
extern crate unicode_bidi; extern crate unicode_bidi;
extern crate unicode_script; extern crate unicode_script;
extern crate webrender_traits; extern crate webrender_api;
#[macro_use] #[macro_use]
pub mod layout_debug; pub mod layout_debug;

View file

@ -36,7 +36,7 @@ use style::properties::longhands::{display, position};
use style::selector_parser::PseudoElement; use style::selector_parser::PseudoElement;
use style_traits::ToCss; use style_traits::ToCss;
use style_traits::cursor::Cursor; use style_traits::cursor::Cursor;
use webrender_traits::ClipId; use webrender_api::ClipId;
use wrapper::LayoutNodeLayoutData; use wrapper::LayoutNodeLayoutData;
/// Mutable data belonging to the LayoutThread. /// Mutable data belonging to the LayoutThread.

View file

@ -10,13 +10,14 @@
use app_units::Au; use app_units::Au;
use euclid::{Point2D, Vector2D, Rect, SideOffsets2D, Size2D}; use euclid::{Point2D, Vector2D, Rect, SideOffsets2D, Size2D};
use gfx::display_list::{BorderDetails, BorderRadii, BoxShadowClipMode, ClippingRegion}; use gfx::display_list::{BorderDetails, BorderRadii, BoxShadowClipMode, ClippingRegion};
use gfx::display_list::{DisplayItem, DisplayList, DisplayListTraversal, StackingContextType}; use gfx::display_list::{DisplayItem, DisplayList, DisplayListTraversal, ScrollRootType};
use gfx::display_list::StackingContextType;
use msg::constellation_msg::PipelineId; use msg::constellation_msg::PipelineId;
use style::computed_values::{image_rendering, mix_blend_mode, transform_style}; use style::computed_values::{image_rendering, mix_blend_mode, transform_style};
use style::values::computed::{BorderStyle, Filter}; use style::values::computed::{BorderStyle, Filter};
use style::values::generics::effects::Filter as GenericFilter; use style::values::generics::effects::Filter as GenericFilter;
use webrender_traits::{self, DisplayListBuilder, ExtendMode}; use webrender_api::{self, ComplexClipRegion, DisplayListBuilder, ExtendMode};
use webrender_traits::{LayoutTransform, ClipId, ClipRegionToken}; use webrender_api::{LayoutTransform, ClipId};
pub trait WebRenderDisplayListConverter { pub trait WebRenderDisplayListConverter {
fn convert_to_webrender(&self, pipeline_id: PipelineId) -> DisplayListBuilder; fn convert_to_webrender(&self, pipeline_id: PipelineId) -> DisplayListBuilder;
@ -29,33 +30,33 @@ trait WebRenderDisplayItemConverter {
} }
trait ToBorderStyle { trait ToBorderStyle {
fn to_border_style(&self) -> webrender_traits::BorderStyle; fn to_border_style(&self) -> webrender_api::BorderStyle;
} }
impl ToBorderStyle for BorderStyle { impl ToBorderStyle for BorderStyle {
fn to_border_style(&self) -> webrender_traits::BorderStyle { fn to_border_style(&self) -> webrender_api::BorderStyle {
match *self { match *self {
BorderStyle::none => webrender_traits::BorderStyle::None, BorderStyle::none => webrender_api::BorderStyle::None,
BorderStyle::solid => webrender_traits::BorderStyle::Solid, BorderStyle::solid => webrender_api::BorderStyle::Solid,
BorderStyle::double => webrender_traits::BorderStyle::Double, BorderStyle::double => webrender_api::BorderStyle::Double,
BorderStyle::dotted => webrender_traits::BorderStyle::Dotted, BorderStyle::dotted => webrender_api::BorderStyle::Dotted,
BorderStyle::dashed => webrender_traits::BorderStyle::Dashed, BorderStyle::dashed => webrender_api::BorderStyle::Dashed,
BorderStyle::hidden => webrender_traits::BorderStyle::Hidden, BorderStyle::hidden => webrender_api::BorderStyle::Hidden,
BorderStyle::groove => webrender_traits::BorderStyle::Groove, BorderStyle::groove => webrender_api::BorderStyle::Groove,
BorderStyle::ridge => webrender_traits::BorderStyle::Ridge, BorderStyle::ridge => webrender_api::BorderStyle::Ridge,
BorderStyle::inset => webrender_traits::BorderStyle::Inset, BorderStyle::inset => webrender_api::BorderStyle::Inset,
BorderStyle::outset => webrender_traits::BorderStyle::Outset, BorderStyle::outset => webrender_api::BorderStyle::Outset,
} }
} }
} }
trait ToBorderWidths { trait ToBorderWidths {
fn to_border_widths(&self) -> webrender_traits::BorderWidths; fn to_border_widths(&self) -> webrender_api::BorderWidths;
} }
impl ToBorderWidths for SideOffsets2D<Au> { impl ToBorderWidths for SideOffsets2D<Au> {
fn to_border_widths(&self) -> webrender_traits::BorderWidths { fn to_border_widths(&self) -> webrender_api::BorderWidths {
webrender_traits::BorderWidths { webrender_api::BorderWidths {
left: self.left.to_f32_px(), left: self.left.to_f32_px(),
top: self.top.to_f32_px(), top: self.top.to_f32_px(),
right: self.right.to_f32_px(), right: self.right.to_f32_px(),
@ -65,89 +66,72 @@ impl ToBorderWidths for SideOffsets2D<Au> {
} }
trait ToBoxShadowClipMode { trait ToBoxShadowClipMode {
fn to_clip_mode(&self) -> webrender_traits::BoxShadowClipMode; fn to_clip_mode(&self) -> webrender_api::BoxShadowClipMode;
} }
impl ToBoxShadowClipMode for BoxShadowClipMode { impl ToBoxShadowClipMode for BoxShadowClipMode {
fn to_clip_mode(&self) -> webrender_traits::BoxShadowClipMode { fn to_clip_mode(&self) -> webrender_api::BoxShadowClipMode {
match *self { match *self {
BoxShadowClipMode::None => webrender_traits::BoxShadowClipMode::None, BoxShadowClipMode::None => webrender_api::BoxShadowClipMode::None,
BoxShadowClipMode::Inset => webrender_traits::BoxShadowClipMode::Inset, BoxShadowClipMode::Inset => webrender_api::BoxShadowClipMode::Inset,
BoxShadowClipMode::Outset => webrender_traits::BoxShadowClipMode::Outset, BoxShadowClipMode::Outset => webrender_api::BoxShadowClipMode::Outset,
} }
} }
} }
trait ToSizeF { trait ToSizeF {
fn to_sizef(&self) -> webrender_traits::LayoutSize; fn to_sizef(&self) -> webrender_api::LayoutSize;
} }
trait ToPointF { trait ToPointF {
fn to_pointf(&self) -> webrender_traits::LayoutPoint; fn to_pointf(&self) -> webrender_api::LayoutPoint;
} }
trait ToVectorF { trait ToVectorF {
fn to_vectorf(&self) -> webrender_traits::LayoutVector2D; fn to_vectorf(&self) -> webrender_api::LayoutVector2D;
} }
impl ToPointF for Point2D<Au> { impl ToPointF for Point2D<Au> {
fn to_pointf(&self) -> webrender_traits::LayoutPoint { fn to_pointf(&self) -> webrender_api::LayoutPoint {
webrender_traits::LayoutPoint::new(self.x.to_f32_px(), self.y.to_f32_px()) webrender_api::LayoutPoint::new(self.x.to_f32_px(), self.y.to_f32_px())
} }
} }
impl ToVectorF for Vector2D<Au> { impl ToVectorF for Vector2D<Au> {
fn to_vectorf(&self) -> webrender_traits::LayoutVector2D { fn to_vectorf(&self) -> webrender_api::LayoutVector2D {
webrender_traits::LayoutVector2D::new(self.x.to_f32_px(), self.y.to_f32_px()) webrender_api::LayoutVector2D::new(self.x.to_f32_px(), self.y.to_f32_px())
} }
} }
impl ToSizeF for Size2D<Au> { impl ToSizeF for Size2D<Au> {
fn to_sizef(&self) -> webrender_traits::LayoutSize { fn to_sizef(&self) -> webrender_api::LayoutSize {
webrender_traits::LayoutSize::new(self.width.to_f32_px(), self.height.to_f32_px()) webrender_api::LayoutSize::new(self.width.to_f32_px(), self.height.to_f32_px())
} }
} }
trait ToRectF { pub trait ToRectF {
fn to_rectf(&self) -> webrender_traits::LayoutRect; fn to_rectf(&self) -> webrender_api::LayoutRect;
} }
impl ToRectF for Rect<Au> { impl ToRectF for Rect<Au> {
fn to_rectf(&self) -> webrender_traits::LayoutRect { fn to_rectf(&self) -> webrender_api::LayoutRect {
let x = self.origin.x.to_f32_px(); let x = self.origin.x.to_f32_px();
let y = self.origin.y.to_f32_px(); let y = self.origin.y.to_f32_px();
let w = self.size.width.to_f32_px(); let w = self.size.width.to_f32_px();
let h = self.size.height.to_f32_px(); let h = self.size.height.to_f32_px();
let point = webrender_traits::LayoutPoint::new(x, y); let point = webrender_api::LayoutPoint::new(x, y);
let size = webrender_traits::LayoutSize::new(w, h); let size = webrender_api::LayoutSize::new(w, h);
webrender_traits::LayoutRect::new(point, size) webrender_api::LayoutRect::new(point, size)
} }
} }
trait ToClipRegion { pub trait ToBorderRadius {
fn push_clip_region(&self, builder: &mut DisplayListBuilder) -> ClipRegionToken; fn to_border_radius(&self) -> webrender_api::BorderRadius;
}
impl ToClipRegion for ClippingRegion {
fn push_clip_region(&self, builder: &mut DisplayListBuilder) -> ClipRegionToken {
builder.push_clip_region(&self.main.to_rectf(),
self.complex.iter().map(|complex_clipping_region| {
webrender_traits::ComplexClipRegion::new(
complex_clipping_region.rect.to_rectf(),
complex_clipping_region.radii.to_border_radius(),
)
}),
None)
}
}
trait ToBorderRadius {
fn to_border_radius(&self) -> webrender_traits::BorderRadius;
} }
impl ToBorderRadius for BorderRadii<Au> { impl ToBorderRadius for BorderRadii<Au> {
fn to_border_radius(&self) -> webrender_traits::BorderRadius { fn to_border_radius(&self) -> webrender_api::BorderRadius {
webrender_traits::BorderRadius { webrender_api::BorderRadius {
top_left: self.top_left.to_sizef(), top_left: self.top_left.to_sizef(),
top_right: self.top_right.to_sizef(), top_right: self.top_right.to_sizef(),
bottom_left: self.bottom_left.to_sizef(), bottom_left: self.bottom_left.to_sizef(),
@ -157,64 +141,64 @@ impl ToBorderRadius for BorderRadii<Au> {
} }
pub trait ToMixBlendMode { pub trait ToMixBlendMode {
fn to_mix_blend_mode(&self) -> webrender_traits::MixBlendMode; fn to_mix_blend_mode(&self) -> webrender_api::MixBlendMode;
} }
impl ToMixBlendMode for mix_blend_mode::T { impl ToMixBlendMode for mix_blend_mode::T {
fn to_mix_blend_mode(&self) -> webrender_traits::MixBlendMode { fn to_mix_blend_mode(&self) -> webrender_api::MixBlendMode {
match *self { match *self {
mix_blend_mode::T::normal => webrender_traits::MixBlendMode::Normal, mix_blend_mode::T::normal => webrender_api::MixBlendMode::Normal,
mix_blend_mode::T::multiply => webrender_traits::MixBlendMode::Multiply, mix_blend_mode::T::multiply => webrender_api::MixBlendMode::Multiply,
mix_blend_mode::T::screen => webrender_traits::MixBlendMode::Screen, mix_blend_mode::T::screen => webrender_api::MixBlendMode::Screen,
mix_blend_mode::T::overlay => webrender_traits::MixBlendMode::Overlay, mix_blend_mode::T::overlay => webrender_api::MixBlendMode::Overlay,
mix_blend_mode::T::darken => webrender_traits::MixBlendMode::Darken, mix_blend_mode::T::darken => webrender_api::MixBlendMode::Darken,
mix_blend_mode::T::lighten => webrender_traits::MixBlendMode::Lighten, mix_blend_mode::T::lighten => webrender_api::MixBlendMode::Lighten,
mix_blend_mode::T::color_dodge => webrender_traits::MixBlendMode::ColorDodge, mix_blend_mode::T::color_dodge => webrender_api::MixBlendMode::ColorDodge,
mix_blend_mode::T::color_burn => webrender_traits::MixBlendMode::ColorBurn, mix_blend_mode::T::color_burn => webrender_api::MixBlendMode::ColorBurn,
mix_blend_mode::T::hard_light => webrender_traits::MixBlendMode::HardLight, mix_blend_mode::T::hard_light => webrender_api::MixBlendMode::HardLight,
mix_blend_mode::T::soft_light => webrender_traits::MixBlendMode::SoftLight, mix_blend_mode::T::soft_light => webrender_api::MixBlendMode::SoftLight,
mix_blend_mode::T::difference => webrender_traits::MixBlendMode::Difference, mix_blend_mode::T::difference => webrender_api::MixBlendMode::Difference,
mix_blend_mode::T::exclusion => webrender_traits::MixBlendMode::Exclusion, mix_blend_mode::T::exclusion => webrender_api::MixBlendMode::Exclusion,
mix_blend_mode::T::hue => webrender_traits::MixBlendMode::Hue, mix_blend_mode::T::hue => webrender_api::MixBlendMode::Hue,
mix_blend_mode::T::saturation => webrender_traits::MixBlendMode::Saturation, mix_blend_mode::T::saturation => webrender_api::MixBlendMode::Saturation,
mix_blend_mode::T::color => webrender_traits::MixBlendMode::Color, mix_blend_mode::T::color => webrender_api::MixBlendMode::Color,
mix_blend_mode::T::luminosity => webrender_traits::MixBlendMode::Luminosity, mix_blend_mode::T::luminosity => webrender_api::MixBlendMode::Luminosity,
} }
} }
} }
trait ToImageRendering { trait ToImageRendering {
fn to_image_rendering(&self) -> webrender_traits::ImageRendering; fn to_image_rendering(&self) -> webrender_api::ImageRendering;
} }
impl ToImageRendering for image_rendering::T { impl ToImageRendering for image_rendering::T {
fn to_image_rendering(&self) -> webrender_traits::ImageRendering { fn to_image_rendering(&self) -> webrender_api::ImageRendering {
match *self { match *self {
image_rendering::T::crisp_edges => webrender_traits::ImageRendering::CrispEdges, image_rendering::T::crisp_edges => webrender_api::ImageRendering::CrispEdges,
image_rendering::T::auto => webrender_traits::ImageRendering::Auto, image_rendering::T::auto => webrender_api::ImageRendering::Auto,
image_rendering::T::pixelated => webrender_traits::ImageRendering::Pixelated, image_rendering::T::pixelated => webrender_api::ImageRendering::Pixelated,
} }
} }
} }
trait ToFilterOps { trait ToFilterOps {
fn to_filter_ops(&self) -> Vec<webrender_traits::FilterOp>; fn to_filter_ops(&self) -> Vec<webrender_api::FilterOp>;
} }
impl ToFilterOps for Vec<Filter> { impl ToFilterOps for Vec<Filter> {
fn to_filter_ops(&self) -> Vec<webrender_traits::FilterOp> { fn to_filter_ops(&self) -> Vec<webrender_api::FilterOp> {
let mut result = Vec::with_capacity(self.len()); let mut result = Vec::with_capacity(self.len());
for filter in self.iter() { for filter in self.iter() {
match *filter { match *filter {
GenericFilter::Blur(radius) => result.push(webrender_traits::FilterOp::Blur(radius)), GenericFilter::Blur(radius) => result.push(webrender_api::FilterOp::Blur(radius)),
GenericFilter::Brightness(amount) => result.push(webrender_traits::FilterOp::Brightness(amount)), GenericFilter::Brightness(amount) => result.push(webrender_api::FilterOp::Brightness(amount)),
GenericFilter::Contrast(amount) => result.push(webrender_traits::FilterOp::Contrast(amount)), GenericFilter::Contrast(amount) => result.push(webrender_api::FilterOp::Contrast(amount)),
GenericFilter::Grayscale(amount) => result.push(webrender_traits::FilterOp::Grayscale(amount)), GenericFilter::Grayscale(amount) => result.push(webrender_api::FilterOp::Grayscale(amount)),
GenericFilter::HueRotate(angle) => result.push(webrender_traits::FilterOp::HueRotate(angle.radians())), GenericFilter::HueRotate(angle) => result.push(webrender_api::FilterOp::HueRotate(angle.radians())),
GenericFilter::Invert(amount) => result.push(webrender_traits::FilterOp::Invert(amount)), GenericFilter::Invert(amount) => result.push(webrender_api::FilterOp::Invert(amount)),
GenericFilter::Opacity(amount) => result.push(webrender_traits::FilterOp::Opacity(amount.into())), GenericFilter::Opacity(amount) => result.push(webrender_api::FilterOp::Opacity(amount.into())),
GenericFilter::Saturate(amount) => result.push(webrender_traits::FilterOp::Saturate(amount)), GenericFilter::Saturate(amount) => result.push(webrender_api::FilterOp::Saturate(amount)),
GenericFilter::Sepia(amount) => result.push(webrender_traits::FilterOp::Sepia(amount)), GenericFilter::Sepia(amount) => result.push(webrender_api::FilterOp::Sepia(amount)),
GenericFilter::DropShadow(ref shadow) => match *shadow {}, GenericFilter::DropShadow(ref shadow) => match *shadow {},
} }
} }
@ -223,14 +207,14 @@ impl ToFilterOps for Vec<Filter> {
} }
pub trait ToTransformStyle { pub trait ToTransformStyle {
fn to_transform_style(&self) -> webrender_traits::TransformStyle; fn to_transform_style(&self) -> webrender_api::TransformStyle;
} }
impl ToTransformStyle for transform_style::T { impl ToTransformStyle for transform_style::T {
fn to_transform_style(&self) -> webrender_traits::TransformStyle { fn to_transform_style(&self) -> webrender_api::TransformStyle {
match *self { match *self {
transform_style::T::auto | transform_style::T::flat => webrender_traits::TransformStyle::Flat, transform_style::T::auto | transform_style::T::flat => webrender_api::TransformStyle::Flat,
transform_style::T::preserve_3d => webrender_traits::TransformStyle::Preserve3D, transform_style::T::preserve_3d => webrender_api::TransformStyle::Preserve3D,
} }
} }
} }
@ -267,8 +251,9 @@ impl WebRenderDisplayItemConverter for DisplayItem {
DisplayItem::SolidColor(ref item) => { DisplayItem::SolidColor(ref item) => {
let color = item.color; let color = item.color;
if color.a > 0.0 { if color.a > 0.0 {
let clip = item.base.clip.push_clip_region(builder); builder.push_rect(item.base.bounds.to_rectf(),
builder.push_rect(item.base.bounds.to_rectf(), clip, color); Some(item.base.local_clip),
color);
} }
} }
DisplayItem::Text(ref item) => { DisplayItem::Text(ref item) => {
@ -286,8 +271,8 @@ impl WebRenderDisplayItemConverter for DisplayItem {
let glyph_offset = glyph.offset().unwrap_or(Point2D::zero()); let glyph_offset = glyph.offset().unwrap_or(Point2D::zero());
let x = (origin.x + glyph_offset.x).to_f32_px(); let x = (origin.x + glyph_offset.x).to_f32_px();
let y = (origin.y + glyph_offset.y).to_f32_px(); let y = (origin.y + glyph_offset.y).to_f32_px();
let point = webrender_traits::LayoutPoint::new(x, y); let point = webrender_api::LayoutPoint::new(x, y);
let glyph = webrender_traits::GlyphInstance { let glyph = webrender_api::GlyphInstance {
index: glyph.id(), index: glyph.id(),
point: point, point: point,
}; };
@ -298,9 +283,8 @@ impl WebRenderDisplayItemConverter for DisplayItem {
} }
if glyphs.len() > 0 { if glyphs.len() > 0 {
let clip = item.base.clip.push_clip_region(builder);
builder.push_text(item.base.bounds.to_rectf(), builder.push_text(item.base.bounds.to_rectf(),
clip, Some(item.base.local_clip),
&glyphs, &glyphs,
item.text_run.font_key, item.text_run.font_key,
item.text_color, item.text_color,
@ -313,9 +297,8 @@ impl WebRenderDisplayItemConverter for DisplayItem {
if let Some(id) = item.webrender_image.key { if let Some(id) = item.webrender_image.key {
if item.stretch_size.width > Au(0) && if item.stretch_size.width > Au(0) &&
item.stretch_size.height > Au(0) { item.stretch_size.height > Au(0) {
let clip = item.base.clip.push_clip_region(builder);
builder.push_image(item.base.bounds.to_rectf(), builder.push_image(item.base.bounds.to_rectf(),
clip, Some(item.base.local_clip),
item.stretch_size.to_sizef(), item.stretch_size.to_sizef(),
item.tile_spacing.to_sizef(), item.tile_spacing.to_sizef(),
item.image_rendering.to_image_rendering(), item.image_rendering.to_image_rendering(),
@ -324,34 +307,34 @@ impl WebRenderDisplayItemConverter for DisplayItem {
} }
} }
DisplayItem::WebGL(ref item) => { DisplayItem::WebGL(ref item) => {
let clip = item.base.clip.push_clip_region(builder); builder.push_webgl_canvas(item.base.bounds.to_rectf(),
builder.push_webgl_canvas(item.base.bounds.to_rectf(), clip, item.context_id); Some(item.base.local_clip),
item.context_id);
} }
DisplayItem::Border(ref item) => { DisplayItem::Border(ref item) => {
let rect = item.base.bounds.to_rectf(); let rect = item.base.bounds.to_rectf();
let widths = item.border_widths.to_border_widths(); let widths = item.border_widths.to_border_widths();
let clip = item.base.clip.push_clip_region(builder);
let details = match item.details { let details = match item.details {
BorderDetails::Normal(ref border) => { BorderDetails::Normal(ref border) => {
let left = webrender_traits::BorderSide { let left = webrender_api::BorderSide {
color: border.color.left, color: border.color.left,
style: border.style.left.to_border_style(), style: border.style.left.to_border_style(),
}; };
let top = webrender_traits::BorderSide { let top = webrender_api::BorderSide {
color: border.color.top, color: border.color.top,
style: border.style.top.to_border_style(), style: border.style.top.to_border_style(),
}; };
let right = webrender_traits::BorderSide { let right = webrender_api::BorderSide {
color: border.color.right, color: border.color.right,
style: border.style.right.to_border_style(), style: border.style.right.to_border_style(),
}; };
let bottom = webrender_traits::BorderSide { let bottom = webrender_api::BorderSide {
color: border.color.bottom, color: border.color.bottom,
style: border.style.bottom.to_border_style(), style: border.style.bottom.to_border_style(),
}; };
let radius = border.radius.to_border_radius(); let radius = border.radius.to_border_radius();
webrender_traits::BorderDetails::Normal(webrender_traits::NormalBorder { webrender_api::BorderDetails::Normal(webrender_api::NormalBorder {
left: left, left: left,
top: top, top: top,
right: right, right: right,
@ -363,9 +346,9 @@ impl WebRenderDisplayItemConverter for DisplayItem {
match image.image.key { match image.image.key {
None => return, None => return,
Some(key) => { Some(key) => {
webrender_traits::BorderDetails::Image(webrender_traits::ImageBorder { webrender_api::BorderDetails::Image(webrender_api::ImageBorder {
image_key: key, image_key: key,
patch: webrender_traits::NinePatchDescriptor { patch: webrender_api::NinePatchDescriptor {
width: image.image.width, width: image.image.width,
height: image.image.height, height: image.image.height,
slice: image.slice, slice: image.slice,
@ -384,7 +367,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
} else { } else {
ExtendMode::Clamp ExtendMode::Clamp
}; };
webrender_traits::BorderDetails::Gradient(webrender_traits::GradientBorder { webrender_api::BorderDetails::Gradient(webrender_api::GradientBorder {
gradient: builder.create_gradient( gradient: builder.create_gradient(
gradient.gradient.start_point.to_pointf(), gradient.gradient.start_point.to_pointf(),
gradient.gradient.end_point.to_pointf(), gradient.gradient.end_point.to_pointf(),
@ -399,7 +382,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
} else { } else {
ExtendMode::Clamp ExtendMode::Clamp
}; };
webrender_traits::BorderDetails::RadialGradient(webrender_traits::RadialGradientBorder { webrender_api::BorderDetails::RadialGradient(webrender_api::RadialGradientBorder {
gradient: builder.create_radial_gradient( gradient: builder.create_radial_gradient(
gradient.gradient.center.to_pointf(), gradient.gradient.center.to_pointf(),
gradient.gradient.radius.to_sizef(), gradient.gradient.radius.to_sizef(),
@ -410,13 +393,12 @@ impl WebRenderDisplayItemConverter for DisplayItem {
} }
}; };
builder.push_border(rect, clip, widths, details); builder.push_border(rect, Some(item.base.local_clip), widths, details);
} }
DisplayItem::Gradient(ref item) => { DisplayItem::Gradient(ref item) => {
let rect = item.base.bounds.to_rectf(); let rect = item.base.bounds.to_rectf();
let start_point = item.gradient.start_point.to_pointf(); let start_point = item.gradient.start_point.to_pointf();
let end_point = item.gradient.end_point.to_pointf(); let end_point = item.gradient.end_point.to_pointf();
let clip = item.base.clip.push_clip_region(builder);
let extend_mode = if item.gradient.repeating { let extend_mode = if item.gradient.repeating {
ExtendMode::Repeat ExtendMode::Repeat
} else { } else {
@ -427,16 +409,15 @@ impl WebRenderDisplayItemConverter for DisplayItem {
item.gradient.stops.clone(), item.gradient.stops.clone(),
extend_mode); extend_mode);
builder.push_gradient(rect, builder.push_gradient(rect,
clip, Some(item.base.local_clip),
gradient, gradient,
rect.size, rect.size,
webrender_traits::LayoutSize::zero()); webrender_api::LayoutSize::zero());
} }
DisplayItem::RadialGradient(ref item) => { DisplayItem::RadialGradient(ref item) => {
let rect = item.base.bounds.to_rectf(); let rect = item.base.bounds.to_rectf();
let center = item.gradient.center.to_pointf(); let center = item.gradient.center.to_pointf();
let radius = item.gradient.radius.to_sizef(); let radius = item.gradient.radius.to_sizef();
let clip = item.base.clip.push_clip_region(builder);
let extend_mode = if item.gradient.repeating { let extend_mode = if item.gradient.repeating {
ExtendMode::Repeat ExtendMode::Repeat
} else { } else {
@ -447,10 +428,10 @@ impl WebRenderDisplayItemConverter for DisplayItem {
item.gradient.stops.clone(), item.gradient.stops.clone(),
extend_mode); extend_mode);
builder.push_radial_gradient(rect, builder.push_radial_gradient(rect,
clip, Some(item.base.local_clip),
gradient, gradient,
rect.size, rect.size,
webrender_traits::LayoutSize::zero()); webrender_api::LayoutSize::zero());
} }
DisplayItem::Line(..) => { DisplayItem::Line(..) => {
println!("TODO DisplayItem::Line"); println!("TODO DisplayItem::Line");
@ -458,9 +439,8 @@ impl WebRenderDisplayItemConverter for DisplayItem {
DisplayItem::BoxShadow(ref item) => { DisplayItem::BoxShadow(ref item) => {
let rect = item.base.bounds.to_rectf(); let rect = item.base.bounds.to_rectf();
let box_bounds = item.box_bounds.to_rectf(); let box_bounds = item.box_bounds.to_rectf();
let clip = item.base.clip.push_clip_region(builder);
builder.push_box_shadow(rect, builder.push_box_shadow(rect,
clip, Some(item.base.local_clip),
box_bounds, box_bounds,
item.offset.to_vectorf(), item.offset.to_vectorf(),
item.color, item.color,
@ -472,8 +452,7 @@ impl WebRenderDisplayItemConverter for DisplayItem {
DisplayItem::Iframe(ref item) => { DisplayItem::Iframe(ref item) => {
let rect = item.base.bounds.to_rectf(); let rect = item.base.bounds.to_rectf();
let pipeline_id = item.iframe.to_webrender(); let pipeline_id = item.iframe.to_webrender();
let clip = item.base.clip.push_clip_region(builder); builder.push_iframe(rect, pipeline_id);
builder.push_iframe(rect, clip, pipeline_id);
} }
DisplayItem::PushStackingContext(ref item) => { DisplayItem::PushStackingContext(ref item) => {
let stacking_context = &item.stacking_context; let stacking_context = &item.stacking_context;
@ -499,9 +478,21 @@ impl WebRenderDisplayItemConverter for DisplayItem {
builder.push_clip_id(item.scroll_root.parent_id); builder.push_clip_id(item.scroll_root.parent_id);
let our_id = item.scroll_root.id; let our_id = item.scroll_root.id;
let clip = item.scroll_root.clip.push_clip_region(builder); let webrender_id = match item.scroll_root.root_type {
let content_rect = item.scroll_root.content_rect.to_rectf(); ScrollRootType::Clip => {
let webrender_id = builder.define_clip(content_rect, clip, Some(our_id)); builder.define_clip(Some(our_id),
item.scroll_root.clip.main.to_rectf(),
item.scroll_root.clip.get_complex_clips(),
None)
}
ScrollRootType::ScrollFrame => {
builder.define_scroll_frame(Some(our_id),
item.scroll_root.content_rect.to_rectf(),
item.scroll_root.clip.main.to_rectf(),
item.scroll_root.clip.get_complex_clips(),
None)
}
};
debug_assert!(our_id == webrender_id); debug_assert!(our_id == webrender_id);
builder.pop_clip_id(); builder.pop_clip_id();
@ -509,3 +500,18 @@ impl WebRenderDisplayItemConverter for DisplayItem {
} }
} }
} }
trait ToWebRenderClip {
fn get_complex_clips(&self) -> Vec<ComplexClipRegion>;
}
impl ToWebRenderClip for ClippingRegion {
fn get_complex_clips(&self) -> Vec<ComplexClipRegion> {
self.complex.iter().map(|complex_clipping_region| {
ComplexClipRegion::new(
complex_clipping_region.rect.to_rectf(),
complex_clipping_region.radii.to_border_radius(),
)
}).collect()
}
}

View file

@ -36,4 +36,4 @@ servo_config = {path = "../config"}
servo_geometry = {path = "../geometry"} servo_geometry = {path = "../geometry"}
servo_url = {path = "../url"} servo_url = {path = "../url"}
style = {path = "../style"} style = {path = "../style"}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}

View file

@ -38,7 +38,7 @@ extern crate servo_config;
extern crate servo_geometry; extern crate servo_geometry;
extern crate servo_url; extern crate servo_url;
extern crate style; extern crate style;
extern crate webrender_traits; extern crate webrender_api;
use app_units::Au; use app_units::Au;
use euclid::{Point2D, Rect, Size2D, ScaleFactor}; use euclid::{Point2D, Rect, Size2D, ScaleFactor};
@ -229,7 +229,7 @@ pub struct LayoutThread {
registered_painters: Arc<RwLock<FnvHashMap<Atom, RegisteredPainter>>>, registered_painters: Arc<RwLock<FnvHashMap<Atom, RegisteredPainter>>>,
/// Webrender interface. /// Webrender interface.
webrender_api: webrender_traits::RenderApi, webrender_api: webrender_api::RenderApi,
/// The timer object to control the timing of the animations. This should /// The timer object to control the timing of the animations. This should
/// only be a test-mode timer during testing for animations. /// only be a test-mode timer during testing for animations.
@ -260,7 +260,7 @@ impl LayoutThreadFactory for LayoutThread {
time_profiler_chan: time::ProfilerChan, time_profiler_chan: time::ProfilerChan,
mem_profiler_chan: mem::ProfilerChan, mem_profiler_chan: mem::ProfilerChan,
content_process_shutdown_chan: Option<IpcSender<()>>, content_process_shutdown_chan: Option<IpcSender<()>>,
webrender_api_sender: webrender_traits::RenderApiSender, webrender_api_sender: webrender_api::RenderApiSender,
layout_threads: usize) { layout_threads: usize) {
thread::Builder::new().name(format!("LayoutThread {:?}", id)).spawn(move || { thread::Builder::new().name(format!("LayoutThread {:?}", id)).spawn(move || {
thread_state::initialize(thread_state::LAYOUT); thread_state::initialize(thread_state::LAYOUT);
@ -443,7 +443,7 @@ impl LayoutThread {
font_cache_thread: FontCacheThread, font_cache_thread: FontCacheThread,
time_profiler_chan: time::ProfilerChan, time_profiler_chan: time::ProfilerChan,
mem_profiler_chan: mem::ProfilerChan, mem_profiler_chan: mem::ProfilerChan,
webrender_api_sender: webrender_traits::RenderApiSender, webrender_api_sender: webrender_api::RenderApiSender,
layout_threads: usize) layout_threads: usize)
-> LayoutThread { -> LayoutThread {
let device = Device::new( let device = Device::new(
@ -1011,10 +1011,10 @@ impl LayoutThread {
epoch.next(); epoch.next();
self.epoch.set(epoch); self.epoch.set(epoch);
let viewport_size = webrender_traits::LayoutSize::from_untyped(&viewport_size); let viewport_size = webrender_api::LayoutSize::from_untyped(&viewport_size);
self.webrender_api.set_display_list( self.webrender_api.set_display_list(
Some(get_root_flow_background_color(layout_root)), Some(get_root_flow_background_color(layout_root)),
webrender_traits::Epoch(epoch.0), webrender_api::Epoch(epoch.0),
viewport_size, viewport_size,
builder.finalize(), builder.finalize(),
true); true);
@ -1657,8 +1657,8 @@ impl LayoutThread {
// clearing the frame buffer to white. This ensures that setting a background // clearing the frame buffer to white. This ensures that setting a background
// color on an iframe element, while the iframe content itself has a default // color on an iframe element, while the iframe content itself has a default
// transparent background color is handled correctly. // transparent background color is handled correctly.
fn get_root_flow_background_color(flow: &mut Flow) -> webrender_traits::ColorF { fn get_root_flow_background_color(flow: &mut Flow) -> webrender_api::ColorF {
let transparent = webrender_traits::ColorF { r: 0.0, g: 0.0, b: 0.0, a: 0.0 }; let transparent = webrender_api::ColorF { r: 0.0, g: 0.0, b: 0.0, a: 0.0 };
if !flow.is_block_like() { if !flow.is_block_like() {
return transparent; return transparent;
} }

View file

@ -17,4 +17,4 @@ net_traits = {path = "../net_traits"}
profile_traits = {path = "../profile_traits"} profile_traits = {path = "../profile_traits"}
script_traits = {path = "../script_traits"} script_traits = {path = "../script_traits"}
servo_url = {path = "../url"} servo_url = {path = "../url"}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}

View file

@ -11,7 +11,7 @@ extern crate net_traits;
extern crate profile_traits; extern crate profile_traits;
extern crate script_traits; extern crate script_traits;
extern crate servo_url; extern crate servo_url;
extern crate webrender_traits; extern crate webrender_api;
// This module contains traits in layout used generically // This module contains traits in layout used generically
// in the rest of Servo. // in the rest of Servo.
@ -47,6 +47,6 @@ pub trait LayoutThreadFactory {
time_profiler_chan: time::ProfilerChan, time_profiler_chan: time::ProfilerChan,
mem_profiler_chan: mem::ProfilerChan, mem_profiler_chan: mem::ProfilerChan,
content_process_shutdown_chan: Option<IpcSender<()>>, content_process_shutdown_chan: Option<IpcSender<()>>,
webrender_api_sender: webrender_traits::RenderApiSender, webrender_api_sender: webrender_api::RenderApiSender,
layout_threads: usize); layout_threads: usize);
} }

View file

@ -14,4 +14,4 @@ bitflags = "0.7"
heapsize = "0.4" heapsize = "0.4"
heapsize_derive = "0.1" heapsize_derive = "0.1"
serde = "1.0" serde = "1.0"
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}

View file

@ -7,7 +7,7 @@
use std::cell::Cell; use std::cell::Cell;
use std::fmt; use std::fmt;
use webrender_traits; use webrender_api;
#[derive(PartialEq, Eq, Copy, Clone, Debug, Deserialize, Serialize)] #[derive(PartialEq, Eq, Copy, Clone, Debug, Deserialize, Serialize)]
pub enum KeyState { pub enum KeyState {
@ -239,14 +239,14 @@ impl PipelineId {
}) })
} }
pub fn to_webrender(&self) -> webrender_traits::PipelineId { pub fn to_webrender(&self) -> webrender_api::PipelineId {
let PipelineNamespaceId(namespace_id) = self.namespace_id; let PipelineNamespaceId(namespace_id) = self.namespace_id;
let PipelineIndex(index) = self.index; let PipelineIndex(index) = self.index;
webrender_traits::PipelineId(namespace_id, index) webrender_api::PipelineId(namespace_id, index)
} }
pub fn root_scroll_node(&self) -> webrender_traits::ClipId { pub fn root_scroll_node(&self) -> webrender_api::ClipId {
webrender_traits::ClipId::root_scroll_node(self.to_webrender()) webrender_api::ClipId::root_scroll_node(self.to_webrender())
} }
} }

View file

@ -9,6 +9,6 @@ extern crate bitflags;
extern crate heapsize; extern crate heapsize;
#[macro_use] extern crate heapsize_derive; #[macro_use] extern crate heapsize_derive;
#[macro_use] extern crate serde; #[macro_use] extern crate serde;
extern crate webrender_traits; extern crate webrender_api;
pub mod constellation_msg; pub mod constellation_msg;

View file

@ -40,7 +40,7 @@ time = "0.1.17"
unicase = "1.4.0" unicase = "1.4.0"
url = {version = "1.2", features = ["heap_size"]} url = {version = "1.2", features = ["heap_size"]}
uuid = {version = "0.5", features = ["v4"]} uuid = {version = "0.5", features = ["v4"]}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
[target.'cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))'.dependencies] [target.'cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))'.dependencies]
tinyfiledialogs = "2.5.9" tinyfiledialogs = "2.5.9"

View file

@ -18,7 +18,7 @@ use std::mem;
use std::path::PathBuf; use std::path::PathBuf;
use std::sync::{Arc, Mutex}; use std::sync::{Arc, Mutex};
use std::thread; use std::thread;
use webrender_traits; use webrender_api;
/// ///
/// TODO(gw): Remaining work on image cache: /// TODO(gw): Remaining work on image cache:
@ -34,13 +34,13 @@ use webrender_traits;
// Helper functions. // Helper functions.
// ====================================================================== // ======================================================================
fn convert_format(format: PixelFormat) -> webrender_traits::ImageFormat { fn convert_format(format: PixelFormat) -> webrender_api::ImageFormat {
match format { match format {
PixelFormat::K8 | PixelFormat::KA8 => { PixelFormat::K8 | PixelFormat::KA8 => {
panic!("Not support by webrender yet"); panic!("Not support by webrender yet");
} }
PixelFormat::RGB8 => webrender_traits::ImageFormat::RGB8, PixelFormat::RGB8 => webrender_api::ImageFormat::RGB8,
PixelFormat::BGRA8 => webrender_traits::ImageFormat::BGRA8, PixelFormat::BGRA8 => webrender_api::ImageFormat::BGRA8,
} }
} }
@ -52,7 +52,7 @@ fn decode_bytes_sync(key: LoadKey, bytes: &[u8]) -> DecoderMsg {
} }
} }
fn get_placeholder_image(webrender_api: &webrender_traits::RenderApi, path: &PathBuf) -> io::Result<Arc<Image>> { fn get_placeholder_image(webrender_api: &webrender_api::RenderApi, path: &PathBuf) -> io::Result<Arc<Image>> {
let mut file = File::open(path)?; let mut file = File::open(path)?;
let mut image_data = vec![]; let mut image_data = vec![];
file.read_to_end(&mut image_data)?; file.read_to_end(&mut image_data)?;
@ -61,15 +61,15 @@ fn get_placeholder_image(webrender_api: &webrender_traits::RenderApi, path: &Pat
Ok(Arc::new(image)) Ok(Arc::new(image))
} }
fn set_webrender_image_key(webrender_api: &webrender_traits::RenderApi, image: &mut Image) { fn set_webrender_image_key(webrender_api: &webrender_api::RenderApi, image: &mut Image) {
if image.id.is_some() { return; } if image.id.is_some() { return; }
let format = convert_format(image.format); let format = convert_format(image.format);
let mut bytes = Vec::new(); let mut bytes = Vec::new();
bytes.extend_from_slice(&*image.bytes); bytes.extend_from_slice(&*image.bytes);
if format == webrender_traits::ImageFormat::BGRA8 { if format == webrender_api::ImageFormat::BGRA8 {
premultiply(bytes.as_mut_slice()); premultiply(bytes.as_mut_slice());
} }
let descriptor = webrender_traits::ImageDescriptor { let descriptor = webrender_api::ImageDescriptor {
width: image.width, width: image.width,
height: image.height, height: image.height,
stride: None, stride: None,
@ -77,7 +77,7 @@ fn set_webrender_image_key(webrender_api: &webrender_traits::RenderApi, image: &
offset: 0, offset: 0,
is_opaque: is_image_opaque(format, &bytes), is_opaque: is_image_opaque(format, &bytes),
}; };
let data = webrender_traits::ImageData::new(bytes); let data = webrender_api::ImageData::new(bytes);
let image_key = webrender_api.generate_image_key(); let image_key = webrender_api.generate_image_key();
webrender_api.add_image(image_key, descriptor, data, None); webrender_api.add_image(image_key, descriptor, data, None);
image.id = Some(image_key); image.id = Some(image_key);
@ -85,9 +85,9 @@ fn set_webrender_image_key(webrender_api: &webrender_traits::RenderApi, image: &
// TODO(gw): This is a port of the old is_image_opaque code from WR. // TODO(gw): This is a port of the old is_image_opaque code from WR.
// Consider using SIMD to speed this up if it shows in profiles. // Consider using SIMD to speed this up if it shows in profiles.
fn is_image_opaque(format: webrender_traits::ImageFormat, bytes: &[u8]) -> bool { fn is_image_opaque(format: webrender_api::ImageFormat, bytes: &[u8]) -> bool {
match format { match format {
webrender_traits::ImageFormat::BGRA8 => { webrender_api::ImageFormat::BGRA8 => {
let mut is_opaque = true; let mut is_opaque = true;
for i in 0..(bytes.len() / 4) { for i in 0..(bytes.len() / 4) {
if bytes[i * 4 + 3] != 255 { if bytes[i * 4 + 3] != 255 {
@ -97,10 +97,10 @@ fn is_image_opaque(format: webrender_traits::ImageFormat, bytes: &[u8]) -> bool
} }
is_opaque is_opaque
} }
webrender_traits::ImageFormat::RGB8 => true, webrender_api::ImageFormat::RGB8 => true,
webrender_traits::ImageFormat::RG8 => true, webrender_api::ImageFormat::RG8 => true,
webrender_traits::ImageFormat::A8 => false, webrender_api::ImageFormat::A8 => false,
webrender_traits::ImageFormat::Invalid | webrender_traits::ImageFormat::RGBAF32 => unreachable!(), webrender_api::ImageFormat::Invalid | webrender_api::ImageFormat::RGBAF32 => unreachable!(),
} }
} }
@ -334,7 +334,7 @@ struct ImageCacheStore {
placeholder_url: ServoUrl, placeholder_url: ServoUrl,
// Webrender API instance. // Webrender API instance.
webrender_api: webrender_traits::RenderApi, webrender_api: webrender_api::RenderApi,
} }
impl ImageCacheStore { impl ImageCacheStore {
@ -403,7 +403,7 @@ pub struct ImageCacheImpl {
} }
impl ImageCache for ImageCacheImpl { impl ImageCache for ImageCacheImpl {
fn new(webrender_api: webrender_traits::RenderApi) -> ImageCacheImpl { fn new(webrender_api: webrender_api::RenderApi) -> ImageCacheImpl {
debug!("New image cache"); debug!("New image cache");
let mut placeholder_path = resources_dir_path().expect("Can't figure out resources path."); let mut placeholder_path = resources_dir_path().expect("Can't figure out resources path.");

View file

@ -38,7 +38,7 @@ extern crate tinyfiledialogs;
extern crate unicase; extern crate unicase;
extern crate url; extern crate url;
extern crate uuid; extern crate uuid;
extern crate webrender_traits; extern crate webrender_api;
extern crate websocket; extern crate websocket;
mod blob_loader; mod blob_loader;

View file

@ -27,4 +27,4 @@ servo_config = {path = "../config"}
servo_url = {path = "../url"} servo_url = {path = "../url"}
url = {version = "1.2", features = ["heap_size"]} url = {version = "1.2", features = ["heap_size"]}
uuid = {version = "0.5", features = ["v4", "serde"]} uuid = {version = "0.5", features = ["v4", "serde"]}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}

View file

@ -5,7 +5,7 @@
use ipc_channel::ipc::IpcSharedMemory; use ipc_channel::ipc::IpcSharedMemory;
use piston_image::{self, DynamicImage, ImageFormat}; use piston_image::{self, DynamicImage, ImageFormat};
use std::fmt; use std::fmt;
use webrender_traits; use webrender_api;
#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize, HeapSizeOf)] #[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize, HeapSizeOf)]
pub enum PixelFormat { pub enum PixelFormat {
@ -26,8 +26,8 @@ pub struct Image {
pub format: PixelFormat, pub format: PixelFormat,
#[ignore_heap_size_of = "Defined in ipc-channel"] #[ignore_heap_size_of = "Defined in ipc-channel"]
pub bytes: IpcSharedMemory, pub bytes: IpcSharedMemory,
#[ignore_heap_size_of = "Defined in webrender_traits"] #[ignore_heap_size_of = "Defined in webrender_api"]
pub id: Option<webrender_traits::ImageKey>, pub id: Option<webrender_api::ImageKey>,
} }
impl fmt::Debug for Image { impl fmt::Debug for Image {

View file

@ -7,7 +7,7 @@ use image::base::{Image, ImageMetadata};
use ipc_channel::ipc::IpcSender; use ipc_channel::ipc::IpcSender;
use servo_url::ServoUrl; use servo_url::ServoUrl;
use std::sync::Arc; use std::sync::Arc;
use webrender_traits; use webrender_api;
// ====================================================================== // ======================================================================
// Aux structs and enums. // Aux structs and enums.
@ -101,7 +101,7 @@ pub enum UsePlaceholder {
// ====================================================================== // ======================================================================
pub trait ImageCache: Sync + Send { pub trait ImageCache: Sync + Send {
fn new(webrender_api: webrender_traits::RenderApi) -> Self where Self: Sized; fn new(webrender_api: webrender_api::RenderApi) -> Self where Self: Sized;
/// Return any available metadata or image for the given URL, /// Return any available metadata or image for the given URL,
/// or an indication that the image is not yet available if it is in progress, /// or an indication that the image is not yet available if it is in progress,

View file

@ -23,7 +23,7 @@ extern crate servo_config;
extern crate servo_url; extern crate servo_url;
extern crate url; extern crate url;
extern crate uuid; extern crate uuid;
extern crate webrender_traits; extern crate webrender_api;
use cookie_rs::Cookie; use cookie_rs::Cookie;
use filemanager_thread::FileManagerThreadMsg; use filemanager_thread::FileManagerThreadMsg;

View file

@ -92,6 +92,6 @@ url = {version = "1.2", features = ["heap_size", "query_encoding"]}
utf-8 = "0.7" utf-8 = "0.7"
uuid = {version = "0.5", features = ["v4"]} uuid = {version = "0.5", features = ["v4"]}
xml5ever = {version = "0.8", features = ["unstable"]} xml5ever = {version = "0.8", features = ["unstable"]}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
webvr = {path = "../webvr"} webvr = {path = "../webvr"}
webvr_traits = {path = "../webvr_traits"} webvr_traits = {path = "../webvr_traits"}

View file

@ -104,8 +104,8 @@ use style::stylesheets::keyframes_rule::Keyframe;
use style::values::specified::Length; use style::values::specified::Length;
use time::Duration; use time::Duration;
use uuid::Uuid; use uuid::Uuid;
use webrender_traits::{WebGLBufferId, WebGLError, WebGLFramebufferId, WebGLProgramId}; use webrender_api::{WebGLBufferId, WebGLError, WebGLFramebufferId, WebGLProgramId};
use webrender_traits::{WebGLRenderbufferId, WebGLShaderId, WebGLTextureId, WebGLVertexArrayId}; use webrender_api::{WebGLRenderbufferId, WebGLShaderId, WebGLTextureId, WebGLVertexArrayId};
use webvr_traits::WebVRGamepadHand; use webvr_traits::WebVRGamepadHand;
/// A trait to allow tracing (only) DOM objects. /// A trait to allow tracing (only) DOM objects.

View file

@ -144,7 +144,7 @@ use time;
use timers::OneshotTimerCallback; use timers::OneshotTimerCallback;
use url::Host; use url::Host;
use url::percent_encoding::percent_decode; use url::percent_encoding::percent_decode;
use webrender_traits::ClipId; use webrender_api::ClipId;
/// The number of times we are allowed to see spurious `requestAnimationFrame()` calls before /// The number of times we are allowed to see spurious `requestAnimationFrame()` calls before
/// falling back to fake ones. /// falling back to fake ones.

View file

@ -43,7 +43,7 @@ use std::mem;
use std::rc::Rc; use std::rc::Rc;
use std::sync::mpsc; use std::sync::mpsc;
use std::thread; use std::thread;
use webrender_traits::VRCompositorCommand; use webrender_api::VRCompositorCommand;
use webvr_traits::{WebVRDisplayData, WebVRDisplayEvent, WebVRFrameData, WebVRLayer, WebVRMsg}; use webvr_traits::{WebVRDisplayData, WebVRDisplayEvent, WebVRFrameData, WebVRLayer, WebVRMsg};
#[dom_struct] #[dom_struct]

View file

@ -15,7 +15,7 @@ use js::jsapi::JSContext;
use js::jsval::{JSVal, NullValue}; use js::jsval::{JSVal, NullValue};
use std::iter; use std::iter;
use super::{WebGLExtension, WebGLExtensions}; use super::{WebGLExtension, WebGLExtensions};
use webrender_traits::{self, WebGLCommand, WebGLError}; use webrender_api::{self, WebGLCommand, WebGLError};
#[dom_struct] #[dom_struct]
pub struct OESVertexArrayObject { pub struct OESVertexArrayObject {
@ -48,7 +48,7 @@ impl OESVertexArrayObject {
impl OESVertexArrayObjectMethods for OESVertexArrayObject { impl OESVertexArrayObjectMethods for OESVertexArrayObject {
// https://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/ // https://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/
fn CreateVertexArrayOES(&self) -> Option<Root<WebGLVertexArrayObjectOES>> { fn CreateVertexArrayOES(&self) -> Option<Root<WebGLVertexArrayObjectOES>> {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.ctx.send_renderer_message(CanvasMsg::WebGL(WebGLCommand::CreateVertexArray(sender))); self.ctx.send_renderer_message(CanvasMsg::WebGL(WebGLCommand::CreateVertexArray(sender)));
let result = receiver.recv().unwrap(); let result = receiver.recv().unwrap();

View file

@ -15,7 +15,7 @@ use dom::webglobject::WebGLObject;
use dom_struct::dom_struct; use dom_struct::dom_struct;
use std::cell::Cell; use std::cell::Cell;
use std::collections::HashMap; use std::collections::HashMap;
use webrender_traits::WebGLVertexArrayId; use webrender_api::WebGLVertexArrayId;
#[dom_struct] #[dom_struct]
pub struct WebGLVertexArrayObjectOES { pub struct WebGLVertexArrayObjectOES {

View file

@ -19,7 +19,7 @@ use std::cell::Ref;
use std::collections::{HashMap, HashSet}; use std::collections::{HashMap, HashSet};
use super::{ext, WebGLExtension}; use super::{ext, WebGLExtension};
use super::wrapper::{WebGLExtensionWrapper, TypedWebGLExtensionWrapper}; use super::wrapper::{WebGLExtensionWrapper, TypedWebGLExtensionWrapper};
use webrender_traits::WebGLError; use webrender_api::WebGLError;
// Data types that are implemented for texImage2D and texSubImage2D in WebGLRenderingContext // Data types that are implemented for texImage2D and texSubImage2D in WebGLRenderingContext
// but must trigger a InvalidValue error until the related WebGL Extensions are enabled. // but must trigger a InvalidValue error until the related WebGL Extensions are enabled.

View file

@ -8,7 +8,7 @@ use dom::webgltexture::WebGLTexture;
use std::{self, fmt}; use std::{self, fmt};
use super::WebGLValidator; use super::WebGLValidator;
use super::types::{TexImageTarget, TexDataType, TexFormat}; use super::types::{TexImageTarget, TexDataType, TexFormat};
use webrender_traits::WebGLError::*; use webrender_api::WebGLError::*;
/// The errors that the texImage* family of functions can generate. /// The errors that the texImage* family of functions can generate.
#[derive(Debug)] #[derive(Debug)]

View file

@ -14,8 +14,8 @@ use dom_struct::dom_struct;
use ipc_channel::ipc::IpcSender; use ipc_channel::ipc::IpcSender;
use std::cell::Cell; use std::cell::Cell;
use std::collections::HashSet; use std::collections::HashSet;
use webrender_traits; use webrender_api;
use webrender_traits::{WebGLBufferId, WebGLCommand, WebGLError, WebGLResult, WebGLVertexArrayId}; use webrender_api::{WebGLBufferId, WebGLCommand, WebGLError, WebGLResult, WebGLVertexArrayId};
#[dom_struct] #[dom_struct]
pub struct WebGLBuffer { pub struct WebGLBuffer {
@ -50,7 +50,7 @@ impl WebGLBuffer {
pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>) pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>)
-> Option<Root<WebGLBuffer>> { -> Option<Root<WebGLBuffer>> {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateBuffer(sender))).unwrap(); renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateBuffer(sender))).unwrap();
let result = receiver.recv().unwrap(); let result = receiver.recv().unwrap();

View file

@ -16,8 +16,8 @@ use dom::window::Window;
use dom_struct::dom_struct; use dom_struct::dom_struct;
use ipc_channel::ipc::IpcSender; use ipc_channel::ipc::IpcSender;
use std::cell::Cell; use std::cell::Cell;
use webrender_traits; use webrender_api;
use webrender_traits::{WebGLCommand, WebGLFramebufferBindingRequest, WebGLFramebufferId, WebGLResult, WebGLError}; use webrender_api::{WebGLCommand, WebGLFramebufferBindingRequest, WebGLFramebufferId, WebGLResult, WebGLError};
#[must_root] #[must_root]
#[derive(JSTraceable, Clone, HeapSizeOf)] #[derive(JSTraceable, Clone, HeapSizeOf)]
@ -67,7 +67,7 @@ impl WebGLFramebuffer {
pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>) pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>)
-> Option<Root<WebGLFramebuffer>> { -> Option<Root<WebGLFramebuffer>> {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateFramebuffer(sender))).unwrap(); renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateFramebuffer(sender))).unwrap();
let result = receiver.recv().unwrap(); let result = receiver.recv().unwrap();

View file

@ -17,9 +17,8 @@ use dom::window::Window;
use dom_struct::dom_struct; use dom_struct::dom_struct;
use ipc_channel::ipc::IpcSender; use ipc_channel::ipc::IpcSender;
use std::cell::Cell; use std::cell::Cell;
use webrender_traits; use webrender_api;
use webrender_traits::{WebGLCommand, WebGLError, WebGLParameter}; use webrender_api::{WebGLCommand, WebGLError, WebGLParameter, WebGLProgramId, WebGLResult};
use webrender_traits::{WebGLProgramId, WebGLResult};
#[dom_struct] #[dom_struct]
pub struct WebGLProgram { pub struct WebGLProgram {
@ -52,7 +51,7 @@ impl WebGLProgram {
pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>) pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>)
-> Option<Root<WebGLProgram>> { -> Option<Root<WebGLProgram>> {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateProgram(sender))).unwrap(); renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateProgram(sender))).unwrap();
let result = receiver.recv().unwrap(); let result = receiver.recv().unwrap();
@ -226,7 +225,7 @@ impl WebGLProgram {
if self.is_deleted() { if self.is_deleted() {
return Err(WebGLError::InvalidValue); return Err(WebGLError::InvalidValue);
} }
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.renderer self.renderer
.send(CanvasMsg::WebGL(WebGLCommand::GetActiveUniform(self.id, index, sender))) .send(CanvasMsg::WebGL(WebGLCommand::GetActiveUniform(self.id, index, sender)))
.unwrap(); .unwrap();
@ -240,7 +239,7 @@ impl WebGLProgram {
if self.is_deleted() { if self.is_deleted() {
return Err(WebGLError::InvalidValue); return Err(WebGLError::InvalidValue);
} }
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.renderer self.renderer
.send(CanvasMsg::WebGL(WebGLCommand::GetActiveAttrib(self.id, index, sender))) .send(CanvasMsg::WebGL(WebGLCommand::GetActiveAttrib(self.id, index, sender)))
.unwrap(); .unwrap();
@ -267,7 +266,7 @@ impl WebGLProgram {
return Ok(None); return Ok(None);
} }
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.renderer self.renderer
.send(CanvasMsg::WebGL(WebGLCommand::GetAttribLocation(self.id, String::from(name), sender))) .send(CanvasMsg::WebGL(WebGLCommand::GetAttribLocation(self.id, String::from(name), sender)))
.unwrap(); .unwrap();
@ -288,7 +287,7 @@ impl WebGLProgram {
return Ok(None); return Ok(None);
} }
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.renderer self.renderer
.send(CanvasMsg::WebGL(WebGLCommand::GetUniformLocation(self.id, String::from(name), sender))) .send(CanvasMsg::WebGL(WebGLCommand::GetUniformLocation(self.id, String::from(name), sender)))
.unwrap(); .unwrap();
@ -309,14 +308,14 @@ impl WebGLProgram {
return Ok("One or more shaders failed to compile".to_string()); return Ok("One or more shaders failed to compile".to_string());
} }
} }
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.renderer.send(CanvasMsg::WebGL(WebGLCommand::GetProgramInfoLog(self.id, sender))).unwrap(); self.renderer.send(CanvasMsg::WebGL(WebGLCommand::GetProgramInfoLog(self.id, sender))).unwrap();
Ok(receiver.recv().unwrap()) Ok(receiver.recv().unwrap())
} }
/// glGetProgramParameter /// glGetProgramParameter
pub fn parameter(&self, param_id: u32) -> WebGLResult<WebGLParameter> { pub fn parameter(&self, param_id: u32) -> WebGLResult<WebGLParameter> {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.renderer.send(CanvasMsg::WebGL(WebGLCommand::GetProgramParameter(self.id, param_id, sender))).unwrap(); self.renderer.send(CanvasMsg::WebGL(WebGLCommand::GetProgramParameter(self.id, param_id, sender))).unwrap();
receiver.recv().unwrap() receiver.recv().unwrap()
} }

View file

@ -13,8 +13,8 @@ use dom::window::Window;
use dom_struct::dom_struct; use dom_struct::dom_struct;
use ipc_channel::ipc::IpcSender; use ipc_channel::ipc::IpcSender;
use std::cell::Cell; use std::cell::Cell;
use webrender_traits; use webrender_api;
use webrender_traits::{WebGLCommand, WebGLRenderbufferId, WebGLResult, WebGLError}; use webrender_api::{WebGLCommand, WebGLRenderbufferId, WebGLResult, WebGLError};
#[dom_struct] #[dom_struct]
pub struct WebGLRenderbuffer { pub struct WebGLRenderbuffer {
@ -45,7 +45,7 @@ impl WebGLRenderbuffer {
pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>) pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>)
-> Option<Root<WebGLRenderbuffer>> { -> Option<Root<WebGLRenderbuffer>> {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateRenderbuffer(sender))).unwrap(); renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateRenderbuffer(sender))).unwrap();
let result = receiver.recv().unwrap(); let result = receiver.recv().unwrap();

View file

@ -54,9 +54,9 @@ use script_traits::ScriptMsg as ConstellationMsg;
use servo_config::prefs::PREFS; use servo_config::prefs::PREFS;
use std::cell::Cell; use std::cell::Cell;
use std::collections::HashMap; use std::collections::HashMap;
use webrender_traits; use webrender_api;
use webrender_traits::{WebGLCommand, WebGLError, WebGLFramebufferBindingRequest, WebGLParameter}; use webrender_api::{WebGLCommand, WebGLError, WebGLFramebufferBindingRequest, WebGLParameter};
use webrender_traits::WebGLError::*; use webrender_api::WebGLError::*;
type ImagePixelResult = Result<(Vec<u8>, Size2D<i32>, bool), ()>; type ImagePixelResult = Result<(Vec<u8>, Size2D<i32>, bool), ()>;
pub const MAX_UNIFORM_AND_ATTRIBUTE_LEN: usize = 256; pub const MAX_UNIFORM_AND_ATTRIBUTE_LEN: usize = 256;
@ -140,7 +140,7 @@ pub struct WebGLRenderingContext {
#[ignore_heap_size_of = "Defined in offscreen_gl_context"] #[ignore_heap_size_of = "Defined in offscreen_gl_context"]
limits: GLLimits, limits: GLLimits,
canvas: JS<HTMLCanvasElement>, canvas: JS<HTMLCanvasElement>,
#[ignore_heap_size_of = "Defined in webrender_traits"] #[ignore_heap_size_of = "Defined in webrender_api"]
last_error: Cell<Option<WebGLError>>, last_error: Cell<Option<WebGLError>>,
texture_unpacking_settings: Cell<TextureUnpacking>, texture_unpacking_settings: Cell<TextureUnpacking>,
texture_unpacking_alignment: Cell<u32>, texture_unpacking_alignment: Cell<u32>,
@ -1035,7 +1035,7 @@ impl WebGLRenderingContext {
} }
fn get_gl_extensions(&self) -> String { fn get_gl_extensions(&self) -> String {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.ipc_renderer self.ipc_renderer
.send(CanvasMsg::WebGL(WebGLCommand::GetExtensions(sender))) .send(CanvasMsg::WebGL(WebGLCommand::GetExtensions(sender)))
.unwrap(); .unwrap();
@ -1108,7 +1108,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.11 // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.11
fn Finish(&self) { fn Finish(&self) {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.ipc_renderer self.ipc_renderer
.send(CanvasMsg::WebGL(WebGLCommand::Finish(sender))) .send(CanvasMsg::WebGL(WebGLCommand::Finish(sender)))
.unwrap(); .unwrap();
@ -1117,7 +1117,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.1 // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.1
fn DrawingBufferWidth(&self) -> i32 { fn DrawingBufferWidth(&self) -> i32 {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.ipc_renderer self.ipc_renderer
.send(CanvasMsg::WebGL(WebGLCommand::DrawingBufferWidth(sender))) .send(CanvasMsg::WebGL(WebGLCommand::DrawingBufferWidth(sender)))
.unwrap(); .unwrap();
@ -1126,7 +1126,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.1 // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.1
fn DrawingBufferHeight(&self) -> i32 { fn DrawingBufferHeight(&self) -> i32 {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.ipc_renderer self.ipc_renderer
.send(CanvasMsg::WebGL(WebGLCommand::DrawingBufferHeight(sender))) .send(CanvasMsg::WebGL(WebGLCommand::DrawingBufferHeight(sender)))
.unwrap(); .unwrap();
@ -1136,7 +1136,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
#[allow(unsafe_code)] #[allow(unsafe_code)]
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.5 // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.5
unsafe fn GetBufferParameter(&self, _cx: *mut JSContext, target: u32, parameter: u32) -> JSVal { unsafe fn GetBufferParameter(&self, _cx: *mut JSContext, target: u32, parameter: u32) -> JSVal {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.ipc_renderer self.ipc_renderer
.send(CanvasMsg::WebGL(WebGLCommand::GetBufferParameter(target, parameter, sender))) .send(CanvasMsg::WebGL(WebGLCommand::GetBufferParameter(target, parameter, sender)))
.unwrap(); .unwrap();
@ -1205,7 +1205,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
} }
} }
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.ipc_renderer self.ipc_renderer
.send(CanvasMsg::WebGL(WebGLCommand::GetParameter(parameter, sender))) .send(CanvasMsg::WebGL(WebGLCommand::GetParameter(parameter, sender)))
.unwrap(); .unwrap();
@ -1243,7 +1243,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.2 // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.2
fn GetContextAttributes(&self) -> Option<WebGLContextAttributes> { fn GetContextAttributes(&self) -> Option<WebGLContextAttributes> {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
// If the send does not succeed, assume context lost // If the send does not succeed, assume context lost
if let Err(_) = self.ipc_renderer if let Err(_) = self.ipc_renderer
@ -2223,7 +2223,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
shader_type: u32, shader_type: u32,
precision_type: u32) precision_type: u32)
-> Option<Root<WebGLShaderPrecisionFormat>> { -> Option<Root<WebGLShaderPrecisionFormat>> {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.ipc_renderer.send(CanvasMsg::WebGL(WebGLCommand::GetShaderPrecisionFormat(shader_type, self.ipc_renderer.send(CanvasMsg::WebGL(WebGLCommand::GetShaderPrecisionFormat(shader_type,
precision_type, precision_type,
sender))) sender)))
@ -2268,7 +2268,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
return jsval.get(); return jsval.get();
} }
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.ipc_renderer.send(CanvasMsg::WebGL(WebGLCommand::GetVertexAttrib(index, pname, sender))).unwrap(); self.ipc_renderer.send(CanvasMsg::WebGL(WebGLCommand::GetVertexAttrib(index, pname, sender))).unwrap();
match handle_potential_webgl_error!(self, receiver.recv().unwrap(), WebGLParameter::Invalid) { match handle_potential_webgl_error!(self, receiver.recv().unwrap(), WebGLParameter::Invalid) {
@ -2287,7 +2287,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10 // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.10
fn GetVertexAttribOffset(&self, index: u32, pname: u32) -> i64 { fn GetVertexAttribOffset(&self, index: u32, pname: u32) -> i64 {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.ipc_renderer.send(CanvasMsg::WebGL(WebGLCommand::GetVertexAttribOffset(index, pname, sender))).unwrap(); self.ipc_renderer.send(CanvasMsg::WebGL(WebGLCommand::GetVertexAttribOffset(index, pname, sender))).unwrap();
handle_potential_webgl_error!(self, receiver.recv().unwrap(), 0) as i64 handle_potential_webgl_error!(self, receiver.recv().unwrap(), 0) as i64
@ -2321,7 +2321,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3 // https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.3
fn IsEnabled(&self, cap: u32) -> bool { fn IsEnabled(&self, cap: u32) -> bool {
if self.validate_feature_enum(cap) { if self.validate_feature_enum(cap) {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.ipc_renderer self.ipc_renderer
.send(CanvasMsg::WebGL(WebGLCommand::IsEnabled(cap, sender))) .send(CanvasMsg::WebGL(WebGLCommand::IsEnabled(cap, sender)))
.unwrap(); .unwrap();
@ -2522,7 +2522,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
_ => return Ok(self.webgl_error(InvalidOperation)), _ => return Ok(self.webgl_error(InvalidOperation)),
}; };
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.ipc_renderer self.ipc_renderer
.send(CanvasMsg::WebGL(WebGLCommand::ReadPixels(x, y, width, height, format, pixel_type, sender))) .send(CanvasMsg::WebGL(WebGLCommand::ReadPixels(x, y, width, height, format, pixel_type, sender)))
.unwrap(); .unwrap();

View file

@ -16,8 +16,8 @@ use dom_struct::dom_struct;
use ipc_channel::ipc::IpcSender; use ipc_channel::ipc::IpcSender;
use std::cell::Cell; use std::cell::Cell;
use std::sync::{ONCE_INIT, Once}; use std::sync::{ONCE_INIT, Once};
use webrender_traits; use webrender_api;
use webrender_traits::{WebGLCommand, WebGLParameter, WebGLResult, WebGLShaderId}; use webrender_api::{WebGLCommand, WebGLParameter, WebGLResult, WebGLShaderId};
#[derive(Clone, Copy, PartialEq, Debug, JSTraceable, HeapSizeOf)] #[derive(Clone, Copy, PartialEq, Debug, JSTraceable, HeapSizeOf)]
pub enum ShaderCompilationStatus { pub enum ShaderCompilationStatus {
@ -71,7 +71,7 @@ impl WebGLShader {
renderer: IpcSender<CanvasMsg>, renderer: IpcSender<CanvasMsg>,
shader_type: u32) shader_type: u32)
-> Option<Root<WebGLShader>> { -> Option<Root<WebGLShader>> {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateShader(shader_type, sender))).unwrap(); renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateShader(shader_type, sender))).unwrap();
let result = receiver.recv().unwrap(); let result = receiver.recv().unwrap();
@ -170,7 +170,7 @@ impl WebGLShader {
/// glGetParameter /// glGetParameter
pub fn parameter(&self, param_id: u32) -> WebGLResult<WebGLParameter> { pub fn parameter(&self, param_id: u32) -> WebGLResult<WebGLParameter> {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
self.renderer.send(CanvasMsg::WebGL(WebGLCommand::GetShaderParameter(self.id, param_id, sender))).unwrap(); self.renderer.send(CanvasMsg::WebGL(WebGLCommand::GetShaderParameter(self.id, param_id, sender))).unwrap();
receiver.recv().unwrap() receiver.recv().unwrap()
} }

View file

@ -16,8 +16,8 @@ use dom_struct::dom_struct;
use ipc_channel::ipc::IpcSender; use ipc_channel::ipc::IpcSender;
use std::cell::Cell; use std::cell::Cell;
use std::cmp; use std::cmp;
use webrender_traits; use webrender_api;
use webrender_traits::{WebGLCommand, WebGLError, WebGLResult, WebGLTextureId}; use webrender_api::{WebGLCommand, WebGLError, WebGLResult, WebGLTextureId};
pub enum TexParameterValue { pub enum TexParameterValue {
Float(f32), Float(f32),
@ -69,7 +69,7 @@ impl WebGLTexture {
pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>) pub fn maybe_new(window: &Window, renderer: IpcSender<CanvasMsg>)
-> Option<Root<WebGLTexture>> { -> Option<Root<WebGLTexture>> {
let (sender, receiver) = webrender_traits::channel::msg_channel().unwrap(); let (sender, receiver) = webrender_api::channel::msg_channel().unwrap();
renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateTexture(sender))).unwrap(); renderer.send(CanvasMsg::WebGL(WebGLCommand::CreateTexture(sender))).unwrap();
let result = receiver.recv().unwrap(); let result = receiver.recv().unwrap();

View file

@ -8,7 +8,7 @@ use dom::bindings::js::Root;
use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::reflector::{Reflector, reflect_dom_object};
use dom::window::Window; use dom::window::Window;
use dom_struct::dom_struct; use dom_struct::dom_struct;
use webrender_traits::WebGLProgramId; use webrender_api::WebGLProgramId;
#[dom_struct] #[dom_struct]
pub struct WebGLUniformLocation { pub struct WebGLUniformLocation {

View file

@ -124,7 +124,7 @@ use timers::{IsInterval, TimerCallback};
use tinyfiledialogs::{self, MessageBoxIcon}; use tinyfiledialogs::{self, MessageBoxIcon};
use url::Position; use url::Position;
use webdriver_handlers::jsval_to_webdriver; use webdriver_handlers::jsval_to_webdriver;
use webrender_traits::ClipId; use webrender_api::ClipId;
use webvr_traits::WebVRMsg; use webvr_traits::WebVRMsg;
/// Current state of the window object /// Current state of the window object

View file

@ -103,7 +103,7 @@ extern crate unicode_segmentation;
extern crate url; extern crate url;
extern crate utf8; extern crate utf8;
extern crate uuid; extern crate uuid;
extern crate webrender_traits; extern crate webrender_api;
extern crate webvr_traits; extern crate webvr_traits;
extern crate xml5ever; extern crate xml5ever;

View file

@ -31,4 +31,4 @@ selectors = { path = "../selectors" }
servo_atoms = {path = "../atoms"} servo_atoms = {path = "../atoms"}
servo_url = {path = "../url"} servo_url = {path = "../url"}
style = {path = "../style"} style = {path = "../style"}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}

View file

@ -33,7 +33,7 @@ extern crate selectors;
extern crate servo_atoms; extern crate servo_atoms;
extern crate servo_url; extern crate servo_url;
extern crate style; extern crate style;
extern crate webrender_traits; extern crate webrender_api;
pub mod message; pub mod message;
pub mod reporter; pub mod reporter;

View file

@ -6,7 +6,7 @@ use app_units::Au;
use euclid::{Point2D, Rect}; use euclid::{Point2D, Rect};
use script_traits::UntrustedNodeAddress; use script_traits::UntrustedNodeAddress;
use style::properties::longhands::{margin_top, margin_right, margin_bottom, margin_left, overflow_x}; use style::properties::longhands::{margin_top, margin_right, margin_bottom, margin_left, overflow_x};
use webrender_traits::ClipId; use webrender_api::ClipId;
/// Synchronous messages that script can send to layout. /// Synchronous messages that script can send to layout.
/// ///

View file

@ -26,7 +26,7 @@ use style::properties::{CascadeFlags, ServoComputedValues};
use style::selector_parser::{PseudoElement, PseudoElementCascadeType, SelectorImpl}; use style::selector_parser::{PseudoElement, PseudoElementCascadeType, SelectorImpl};
use style::stylearc::Arc; use style::stylearc::Arc;
use style::stylist::RuleInclusion; use style::stylist::RuleInclusion;
use webrender_traits::ClipId; use webrender_api::ClipId;
#[derive(Copy, PartialEq, Clone, Debug)] #[derive(Copy, PartialEq, Clone, Debug)]
pub enum PseudoElementType<T> { pub enum PseudoElementType<T> {

View file

@ -34,5 +34,5 @@ servo_url = {path = "../url"}
style_traits = {path = "../style_traits", features = ["servo"]} style_traits = {path = "../style_traits", features = ["servo"]}
time = "0.1.12" time = "0.1.12"
url = {version = "1.2", features = ["heap_size"]} url = {version = "1.2", features = ["heap_size"]}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
webvr_traits = {path = "../webvr_traits"} webvr_traits = {path = "../webvr_traits"}

View file

@ -33,7 +33,7 @@ extern crate servo_atoms;
extern crate servo_url; extern crate servo_url;
extern crate style_traits; extern crate style_traits;
extern crate time; extern crate time;
extern crate webrender_traits; extern crate webrender_api;
extern crate webvr_traits; extern crate webvr_traits;
mod script_msg; mod script_msg;
@ -69,7 +69,7 @@ use std::sync::Arc;
use std::sync::mpsc::{Receiver, Sender, RecvTimeoutError}; use std::sync::mpsc::{Receiver, Sender, RecvTimeoutError};
use style_traits::CSSPixel; use style_traits::CSSPixel;
use webdriver_msg::{LoadStatus, WebDriverScriptCommand}; use webdriver_msg::{LoadStatus, WebDriverScriptCommand};
use webrender_traits::ClipId; use webrender_api::ClipId;
use webvr_traits::{WebVREvent, WebVRMsg}; use webvr_traits::{WebVREvent, WebVRMsg};
pub use script_msg::{LayoutMsg, ScriptMsg, EventResult, LogEntry}; pub use script_msg::{LayoutMsg, ScriptMsg, EventResult, LogEntry};

View file

@ -27,7 +27,7 @@ use servo_url::ServoUrl;
use style_traits::CSSPixel; use style_traits::CSSPixel;
use style_traits::cursor::Cursor; use style_traits::cursor::Cursor;
use style_traits::viewport::ViewportConstraints; use style_traits::viewport::ViewportConstraints;
use webrender_traits::ClipId; use webrender_api::ClipId;
/// Messages from the layout to the constellation. /// Messages from the layout to the constellation.
#[derive(Deserialize, Serialize)] #[derive(Deserialize, Serialize)]

View file

@ -50,7 +50,7 @@ servo_url = {path = "../url"}
style = {path = "../style", features = ["servo"]} style = {path = "../style", features = ["servo"]}
style_traits = {path = "../style_traits", features = ["servo"]} style_traits = {path = "../style_traits", features = ["servo"]}
webrender = {git = "https://github.com/servo/webrender"} webrender = {git = "https://github.com/servo/webrender"}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
webdriver_server = {path = "../webdriver_server", optional = true} webdriver_server = {path = "../webdriver_server", optional = true}
webvr = {path = "../webvr"} webvr = {path = "../webvr"}
webvr_traits = {path = "../webvr_traits"} webvr_traits = {path = "../webvr_traits"}

View file

@ -49,7 +49,7 @@ pub extern crate servo_geometry;
pub extern crate servo_url; pub extern crate servo_url;
pub extern crate style; pub extern crate style;
pub extern crate style_traits; pub extern crate style_traits;
pub extern crate webrender_traits; pub extern crate webrender_api;
pub extern crate webvr; pub extern crate webvr;
pub extern crate webvr_traits; pub extern crate webvr_traits;
@ -175,7 +175,7 @@ impl<Window> Browser<Window> where Window: WindowMethods + 'static {
}; };
let framebuffer_size = window.framebuffer_size(); let framebuffer_size = window.framebuffer_size();
let framebuffer_size = webrender_traits::DeviceUintSize::new(framebuffer_size.width, let framebuffer_size = webrender_api::DeviceUintSize::new(framebuffer_size.width,
framebuffer_size.height); framebuffer_size.height);
webrender::Renderer::new(window.gl(), webrender::RendererOptions { webrender::Renderer::new(window.gl(), webrender::RendererOptions {
@ -287,7 +287,7 @@ fn create_constellation(user_agent: Cow<'static, str>,
devtools_chan: Option<Sender<devtools_traits::DevtoolsControlMsg>>, devtools_chan: Option<Sender<devtools_traits::DevtoolsControlMsg>>,
supports_clipboard: bool, supports_clipboard: bool,
webrender: &webrender::Renderer, webrender: &webrender::Renderer,
webrender_api_sender: webrender_traits::RenderApiSender) webrender_api_sender: webrender_api::RenderApiSender)
-> (Sender<ConstellationMsg>, SWManagerSenders) { -> (Sender<ConstellationMsg>, SWManagerSenders) {
let bluetooth_thread: IpcSender<BluetoothRequest> = BluetoothThreadFactory::new(); let bluetooth_thread: IpcSender<BluetoothRequest> = BluetoothThreadFactory::new();

View file

@ -30,7 +30,7 @@ use selectors::parser::SelectorParseError;
pub type UnsafeNode = (usize, usize); pub type UnsafeNode = (usize, usize);
/// Represents a mobile style pinch zoom factor. /// Represents a mobile style pinch zoom factor.
/// TODO(gw): Once WR supports pinch zoom, use a type directly from webrender_traits. /// TODO(gw): Once WR supports pinch zoom, use a type directly from webrender_api.
#[derive(Clone, Copy, Debug, PartialEq)] #[derive(Clone, Copy, Debug, PartialEq)]
#[cfg_attr(feature = "servo", derive(Deserialize, Serialize, HeapSizeOf))] #[cfg_attr(feature = "servo", derive(Deserialize, Serialize, HeapSizeOf))]
pub struct PinchZoomFactor(f32); pub struct PinchZoomFactor(f32);

View file

@ -16,4 +16,4 @@ msg = {path = "../msg"}
script_traits = {path = "../script_traits"} script_traits = {path = "../script_traits"}
servo_config = {path = "../config"} servo_config = {path = "../config"}
webvr_traits = {path = "../webvr_traits" } webvr_traits = {path = "../webvr_traits" }
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}

View file

@ -10,7 +10,7 @@ extern crate log;
extern crate msg; extern crate msg;
extern crate script_traits; extern crate script_traits;
extern crate servo_config; extern crate servo_config;
extern crate webrender_traits; extern crate webrender_api;
extern crate webvr_traits; extern crate webvr_traits;
mod webvr_thread; mod webvr_thread;

View file

@ -11,8 +11,8 @@ use std::{thread, time};
use std::collections::{HashMap, HashSet}; use std::collections::{HashMap, HashSet};
use std::sync::mpsc; use std::sync::mpsc;
use std::sync::mpsc::{Receiver, Sender}; use std::sync::mpsc::{Receiver, Sender};
use webrender_traits; use webrender_api;
use webrender_traits::DeviceIntSize; use webrender_api::DeviceIntSize;
use webvr_traits::{WebVRMsg, WebVRResult}; use webvr_traits::{WebVRMsg, WebVRResult};
use webvr_traits::webvr::*; use webvr_traits::webvr::*;
@ -305,7 +305,7 @@ impl WebVRThread {
pub struct WebVRCompositor(*mut VRDisplay); pub struct WebVRCompositor(*mut VRDisplay);
pub struct WebVRCompositorHandler { pub struct WebVRCompositorHandler {
compositors: HashMap<webrender_traits::VRCompositorId, WebVRCompositor>, compositors: HashMap<webrender_api::VRCompositorId, WebVRCompositor>,
webvr_thread_receiver: Receiver<Option<WebVRCompositor>>, webvr_thread_receiver: Receiver<Option<WebVRCompositor>>,
webvr_thread_sender: Option<IpcSender<WebVRMsg>> webvr_thread_sender: Option<IpcSender<WebVRMsg>>
} }
@ -328,14 +328,14 @@ impl WebVRCompositorHandler {
} }
} }
impl webrender_traits::VRCompositorHandler for WebVRCompositorHandler { impl webrender_api::VRCompositorHandler for WebVRCompositorHandler {
#[allow(unsafe_code)] #[allow(unsafe_code)]
fn handle(&mut self, cmd: webrender_traits::VRCompositorCommand, texture: Option<(u32, DeviceIntSize)>) { fn handle(&mut self, cmd: webrender_api::VRCompositorCommand, texture: Option<(u32, DeviceIntSize)>) {
match cmd { match cmd {
webrender_traits::VRCompositorCommand::Create(compositor_id) => { webrender_api::VRCompositorCommand::Create(compositor_id) => {
self.create_compositor(compositor_id); self.create_compositor(compositor_id);
} }
webrender_traits::VRCompositorCommand::SyncPoses(compositor_id, near, far, sender) => { webrender_api::VRCompositorCommand::SyncPoses(compositor_id, near, far, sender) => {
if let Some(compositor) = self.compositors.get(&compositor_id) { if let Some(compositor) = self.compositors.get(&compositor_id) {
let pose = unsafe { let pose = unsafe {
(*compositor.0).sync_poses(); (*compositor.0).sync_poses();
@ -346,7 +346,7 @@ impl webrender_traits::VRCompositorHandler for WebVRCompositorHandler {
let _ = sender.send(Err(())); let _ = sender.send(Err(()));
} }
} }
webrender_traits::VRCompositorCommand::SubmitFrame(compositor_id, left_bounds, right_bounds) => { webrender_api::VRCompositorCommand::SubmitFrame(compositor_id, left_bounds, right_bounds) => {
if let Some(compositor) = self.compositors.get(&compositor_id) { if let Some(compositor) = self.compositors.get(&compositor_id) {
if let Some((texture_id, size)) = texture { if let Some((texture_id, size)) = texture {
let layer = VRLayer { let layer = VRLayer {
@ -361,7 +361,7 @@ impl webrender_traits::VRCompositorHandler for WebVRCompositorHandler {
} }
} }
} }
webrender_traits::VRCompositorCommand::Release(compositor_id) => { webrender_api::VRCompositorCommand::Release(compositor_id) => {
self.compositors.remove(&compositor_id); self.compositors.remove(&compositor_id);
} }
} }
@ -370,7 +370,7 @@ impl webrender_traits::VRCompositorHandler for WebVRCompositorHandler {
impl WebVRCompositorHandler { impl WebVRCompositorHandler {
#[allow(unsafe_code)] #[allow(unsafe_code)]
fn create_compositor(&mut self, display_id: webrender_traits::VRCompositorId) { fn create_compositor(&mut self, display_id: webrender_api::VRCompositorId) {
let sender = match self.webvr_thread_sender { let sender = match self.webvr_thread_sender {
Some(ref s) => s, Some(ref s) => s,
None => return, None => return,

View file

@ -112,4 +112,4 @@
* <https://github.com/servo/rust-selectors/>: a CSS selector matching library * <https://github.com/servo/rust-selectors/>: a CSS selector matching library
* <https://github.com/cyderize/rust-websocket/>: a WebSocket protocol implementation * <https://github.com/cyderize/rust-websocket/>: a WebSocket protocol implementation
* <https://github.com/servo/rust-url/>: an implementation of the URL specification * <https://github.com/servo/rust-url/>: an implementation of the URL specification
* <https://github.com/servo/webrender/> and <https://github.com/servo/webrender_traits/>: a GPU renderer * <https://github.com/servo/webrender/>: a GPU renderer

View file

@ -33,7 +33,7 @@ servo_config = {path = "../../components/config"}
servo_geometry = {path = "../../components/geometry"} servo_geometry = {path = "../../components/geometry"}
servo_url = {path = "../../components/url"} servo_url = {path = "../../components/url"}
style_traits = {path = "../../components/style_traits"} style_traits = {path = "../../components/style_traits"}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
[target.'cfg(target_os="macos")'.dependencies] [target.'cfg(target_os="macos")'.dependencies]
objc = "0.2" objc = "0.2"

View file

@ -8,7 +8,7 @@ use interfaces::{CefBrowser, CefBrowserHost, CefClient, cef_browser_t, cef_brows
use types::cef_event_flags_t::{EVENTFLAG_ALT_DOWN, EVENTFLAG_CONTROL_DOWN, EVENTFLAG_SHIFT_DOWN}; use types::cef_event_flags_t::{EVENTFLAG_ALT_DOWN, EVENTFLAG_CONTROL_DOWN, EVENTFLAG_SHIFT_DOWN};
use types::cef_key_event_type_t::{KEYEVENT_CHAR, KEYEVENT_KEYDOWN, KEYEVENT_KEYUP, KEYEVENT_RAWKEYDOWN}; use types::cef_key_event_type_t::{KEYEVENT_CHAR, KEYEVENT_KEYDOWN, KEYEVENT_KEYUP, KEYEVENT_RAWKEYDOWN};
use types::{cef_mouse_button_type_t, cef_mouse_event, cef_rect_t, cef_key_event, cef_window_handle_t}; use types::{cef_mouse_button_type_t, cef_mouse_event, cef_rect_t, cef_key_event, cef_window_handle_t};
use webrender_traits::ScrollLocation; use webrender_api::ScrollLocation;
use wrappers::CefWrap; use wrappers::CefWrap;
use compositing::windowing::{WindowEvent, MouseWindowEvent}; use compositing::windowing::{WindowEvent, MouseWindowEvent};

View file

@ -24,7 +24,7 @@ extern crate style_traits;
extern crate net_traits; extern crate net_traits;
extern crate msg; extern crate msg;
extern crate webrender_traits; extern crate webrender_api;
extern crate libc; extern crate libc;

View file

@ -22,7 +22,7 @@ servo_geometry = {path = "../../components/geometry"}
servo_config = {path = "../../components/config"} servo_config = {path = "../../components/config"}
servo_url = {path = "../../components/url"} servo_url = {path = "../../components/url"}
style_traits = {path = "../../components/style_traits"} style_traits = {path = "../../components/style_traits"}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
[target.'cfg(any(target_os = "linux", target_os = "macos"))'.dependencies] [target.'cfg(any(target_os = "linux", target_os = "macos"))'.dependencies]
osmesa-sys = "0.1.2" osmesa-sys = "0.1.2"

View file

@ -21,7 +21,7 @@ extern crate servo_config;
extern crate servo_geometry; extern crate servo_geometry;
extern crate servo_url; extern crate servo_url;
extern crate style_traits; extern crate style_traits;
extern crate webrender_traits; extern crate webrender_api;
#[cfg(target_os = "windows")] extern crate winapi; #[cfg(target_os = "windows")] extern crate winapi;
#[cfg(target_os = "windows")] extern crate user32; #[cfg(target_os = "windows")] extern crate user32;

View file

@ -41,7 +41,7 @@ use std::rc::Rc;
use style_traits::cursor::Cursor; use style_traits::cursor::Cursor;
#[cfg(target_os = "windows")] #[cfg(target_os = "windows")]
use user32; use user32;
use webrender_traits::ScrollLocation; use webrender_api::ScrollLocation;
#[cfg(target_os = "windows")] #[cfg(target_os = "windows")]
use winapi; use winapi;

View file

@ -64,5 +64,5 @@ licenses_dep_toml = [
'name = "servo-freetype-sys"', 'name = "servo-freetype-sys"',
'name = "simd"', 'name = "simd"',
'name = "webrender"', 'name = "webrender"',
'name = "webrender_traits"', 'name = "webrender_api"',
] ]

View file

@ -17,7 +17,7 @@ pub mod display_list;
mod test::{ mod test::{
}; };
extern crate webrender_traits; extern crate webrender_api;
extern crate style_traits; extern crate style_traits;
#[foo = "bar,baz"] #[foo = "bar,baz"]

View file

@ -0,0 +1,3 @@
[css-transforms-3d-on-anonymous-block-001.htm]
type: reftest
expected: FAIL

View file

@ -0,0 +1,3 @@
[transform-table-006.htm]
type: reftest
expected: FAIL