Auto merge of #16360 - glennw:update-wr-borders, r=jdm

Update WR (gradients, batching, text run, border changes).

- Tidy and optimize the batching code.
- Support tiling / repeat for linear and radial gradients.
- Fix some edge cases of subpixel text AA.
- Add clip mask support to border shaders.
- Optimization to text run creation on CPU.
- Handle more box-shadow clipping cases.
- Fix a panic that could occur when window size is 0.
- Clip / scroll API improvements.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/16360)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-04-12 12:03:10 -05:00 committed by GitHub
commit 43bd0cae0d
4 changed files with 42 additions and 38 deletions

50
Cargo.lock generated
View file

@ -297,7 +297,7 @@ dependencies = [
"num-traits 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)",
"offscreen_gl_context 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)",
"servo_config 0.0.1",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -311,7 +311,7 @@ dependencies = [
"ipc-channel 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -432,8 +432,8 @@ dependencies = [
"servo_url 0.0.1",
"style_traits 0.0.1",
"time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender 0.30.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -468,7 +468,7 @@ dependencies = [
"servo_remutex 0.0.1",
"servo_url 0.0.1",
"style_traits 0.0.1",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
"webvr_traits 0.0.1",
]
@ -715,7 +715,7 @@ dependencies = [
"servo_geometry 0.0.1",
"servo_url 0.0.1",
"style_traits 0.0.1",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
"x11 2.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@ -1001,7 +1001,7 @@ dependencies = [
"time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)",
"truetype 0.26.0 (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.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
"xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
@ -1080,7 +1080,7 @@ dependencies = [
"servo_url 0.0.1",
"style_traits 0.0.1",
"user32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"x11 2.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@ -1398,7 +1398,7 @@ dependencies = [
"style_traits 0.0.1",
"unicode-bidi 0.2.5 (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.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -1438,7 +1438,7 @@ dependencies = [
"servo_geometry 0.0.1",
"servo_url 0.0.1",
"style 0.0.1",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -1452,7 +1452,7 @@ dependencies = [
"profile_traits 0.0.1",
"script_traits 0.0.1",
"servo_url 0.0.1",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -1529,8 +1529,8 @@ dependencies = [
"style 0.0.1",
"style_traits 0.0.1",
"webdriver_server 0.0.1",
"webrender 0.30.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
"webvr 0.0.1",
"webvr_traits 0.0.1",
]
@ -1679,7 +1679,7 @@ dependencies = [
"heapsize_derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -1723,7 +1723,7 @@ dependencies = [
"unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -1782,7 +1782,7 @@ dependencies = [
"servo_url 0.0.1",
"url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -2308,7 +2308,7 @@ dependencies = [
"unicode-segmentation 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
"webvr 0.0.1",
"webvr_traits 0.0.1",
"xml5ever 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3170,8 +3170,8 @@ dependencies = [
[[package]]
name = "webrender"
version = "0.30.0"
source = "git+https://github.com/servo/webrender#a260d8e378b1e67b87679125d00b477c70afbd74"
version = "0.31.0"
source = "git+https://github.com/servo/webrender#2625654b435ebba0815379dc6fba42415e3abc2b"
dependencies = [
"app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bincode 1.0.0-alpha6 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3193,13 +3193,13 @@ dependencies = [
"thread_profiler 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"threadpool 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
]
[[package]]
name = "webrender_traits"
version = "0.31.0"
source = "git+https://github.com/servo/webrender#a260d8e378b1e67b87679125d00b477c70afbd74"
version = "0.32.0"
source = "git+https://github.com/servo/webrender#2625654b435ebba0815379dc6fba42415e3abc2b"
dependencies = [
"app_units 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3223,7 +3223,7 @@ dependencies = [
"msg 0.0.1",
"script_traits 0.0.1",
"servo_config 0.0.1",
"webrender_traits 0.31.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.32.0 (git+https://github.com/servo/webrender)",
"webvr_traits 0.0.1",
]
@ -3565,8 +3565,8 @@ dependencies = [
"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 webdriver 0.22.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d548aabf87411b1b4ba91fd07eacd8b238135c7131a452b8a9f6386209167e18"
"checksum webrender 0.30.0 (git+https://github.com/servo/webrender)" = "<none>"
"checksum webrender_traits 0.31.0 (git+https://github.com/servo/webrender)" = "<none>"
"checksum webrender 0.31.0 (git+https://github.com/servo/webrender)" = "<none>"
"checksum webrender_traits 0.32.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-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"