Update WR.

- Subpixel positioning improvements.
- Clipping fixes and optimizations.
- Fix panic when transform can't be inverted.
- Support multiple filters on single stacking context.
- Optimize gradients, support unlimited stops.
- Add external image + texture cache support.
- Support error path on shader compile error.
- Optimize border handling in texture atlas.
- Preliminary work towards clip/scroll root changes.
This commit is contained in:
Glenn Watson 2017-02-07 14:37:21 +10:00
parent db3e5be878
commit f1558b1c7b
9 changed files with 36 additions and 46 deletions

50
Cargo.lock generated
View file

@ -294,7 +294,7 @@ dependencies = [
"offscreen_gl_context 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
"plugins 0.0.1",
"servo_config 0.0.1",
"webrender_traits 0.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -309,7 +309,7 @@ dependencies = [
"plugins 0.0.1",
"serde 0.8.20 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -444,8 +444,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.14.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.13.0 (git+https://github.com/servo/webrender)",
"webrender 0.15.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -479,7 +479,7 @@ dependencies = [
"servo_remutex 0.0.1",
"servo_url 0.0.1",
"style_traits 0.0.1",
"webrender_traits 0.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
"webvr_traits 0.0.1",
]
@ -700,7 +700,7 @@ dependencies = [
"servo_geometry 0.0.1",
"servo_url 0.0.1",
"style_traits 0.0.1",
"webrender_traits 0.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
"x11 2.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
@ -982,7 +982,7 @@ dependencies = [
"time 0.1.36 (registry+https://github.com/rust-lang/crates.io-index)",
"truetype 0.24.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.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
"xi-unicode 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@ -1062,7 +1062,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.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
"x11 2.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
@ -1362,7 +1362,7 @@ dependencies = [
"style_traits 0.0.1",
"unicode-bidi 0.2.4 (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.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -1403,7 +1403,7 @@ dependencies = [
"servo_geometry 0.0.1",
"servo_url 0.0.1",
"style 0.0.1",
"webrender_traits 0.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -1417,7 +1417,7 @@ dependencies = [
"profile_traits 0.0.1",
"script_traits 0.0.1",
"servo_url 0.0.1",
"webrender_traits 0.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -1502,8 +1502,8 @@ dependencies = [
"style 0.0.1",
"url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"webdriver_server 0.0.1",
"webrender 0.14.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.13.0 (git+https://github.com/servo/webrender)",
"webrender 0.15.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
"webvr 0.0.1",
"webvr_traits 0.0.1",
]
@ -1643,7 +1643,7 @@ dependencies = [
"plugins 0.0.1",
"serde 0.8.20 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
]
[[package]]
@ -1679,7 +1679,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.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
"websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@ -1739,7 +1739,7 @@ dependencies = [
"servo_url 0.0.1",
"url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
"websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
@ -2292,7 +2292,7 @@ dependencies = [
"tinyfiledialogs 2.5.9 (registry+https://github.com/rust-lang/crates.io-index)",
"url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"webrender_traits 0.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
"websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)",
"webvr 0.0.1",
"webvr_traits 0.0.1",
@ -3161,8 +3161,8 @@ dependencies = [
[[package]]
name = "webrender"
version = "0.14.0"
source = "git+https://github.com/servo/webrender#2f17a525d6b3ff8737b2ffb9e7ff5c1ad11e333a"
version = "0.15.0"
source = "git+https://github.com/servo/webrender#512b4a1433a7827ef7cfd121d2f99fdd91ecf80e"
dependencies = [
"app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bincode 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3183,13 +3183,13 @@ dependencies = [
"offscreen_gl_context 0.5.4 (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.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.0 (git+https://github.com/servo/webrender)",
]
[[package]]
name = "webrender_traits"
version = "0.13.0"
source = "git+https://github.com/servo/webrender#2f17a525d6b3ff8737b2ffb9e7ff5c1ad11e333a"
version = "0.14.0"
source = "git+https://github.com/servo/webrender#512b4a1433a7827ef7cfd121d2f99fdd91ecf80e"
dependencies = [
"app_units 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"byteorder 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3229,7 +3229,7 @@ dependencies = [
"msg 0.0.1",
"script_traits 0.0.1",
"servo_config 0.0.1",
"webrender_traits 0.13.0 (git+https://github.com/servo/webrender)",
"webrender_traits 0.14.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.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cdc28802daddee94267a657ffeac2593a33881fb7a3a44fedd320b1319efcaf6"
"checksum webrender 0.14.0 (git+https://github.com/servo/webrender)" = "<none>"
"checksum webrender_traits 0.13.0 (git+https://github.com/servo/webrender)" = "<none>"
"checksum webrender 0.15.0 (git+https://github.com/servo/webrender)" = "<none>"
"checksum webrender_traits 0.14.0 (git+https://github.com/servo/webrender)" = "<none>"
"checksum websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a1a6ea5ed0367f32eb3d94dcc58859ef4294b5f75ba983dbf56ac314af45d"
"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"

View file

@ -361,11 +361,6 @@ impl webrender_traits::RenderNotifier for RenderNotifier {
fn new_scroll_frame_ready(&mut self, composite_needed: bool) {
self.compositor_proxy.send(Msg::NewScrollFrameReady(composite_needed));
}
fn pipeline_size_changed(&mut self,
_: webrender_traits::PipelineId,
_: Option<webrender_traits::LayoutSize>) {
}
}
// Used to dispatch functions from webrender to the main thread's event loop.

View file

@ -229,8 +229,8 @@ impl WebRenderDisplayItemConverter for DisplayItem {
let glyph_offset = glyph.offset().unwrap_or(Point2D::zero());
let glyph = webrender_traits::GlyphInstance {
index: glyph.id(),
x: (origin.x + glyph_offset.x).to_f32_px(),
y: (origin.y + glyph_offset.y).to_f32_px(),
point: Point2D::new((origin.x + glyph_offset.x).to_f32_px(),
(origin.y + glyph_offset.y).to_f32_px()),
};
glyphs.push(glyph);
}
@ -354,7 +354,11 @@ impl WebRenderDisplayItemConverter for DisplayItem {
}
DisplayItem::PopStackingContext(_) => builder.pop_stacking_context(),
DisplayItem::PushScrollRoot(ref item) => {
builder.push_scroll_layer(item.scroll_root.clip.to_rectf(),
let clip = builder.new_clip_region(&item.scroll_root.clip.to_rectf(),
vec![],
None);
builder.push_scroll_layer(clip,
item.scroll_root.size.to_sizef(),
item.scroll_root.id.convert_to_webrender());
}

View file

@ -184,7 +184,7 @@ impl<Window> Browser<Window> where Window: WindowMethods + 'static {
clear_framebuffer: true,
clear_color: webrender_traits::ColorF::new(1.0, 1.0, 1.0, 1.0),
render_target_debug: false,
}).unwrap()
}).expect("Unable to initialize webrender!")
};
// Important that this call is done in a single-threaded fashion, we

View file

@ -1,3 +0,0 @@
[css-scale-nested-001.htm]
type: reftest
expected: CRASH

View file

@ -1,3 +0,0 @@
[scale-zero-001.htm]
type: reftest
expected: CRASH

View file

@ -1,3 +0,0 @@
[transform-singular-001.htm]
type: reftest
expected: CRASH

View file

@ -1,3 +0,0 @@
[transform3d-scale-004.htm]
type: reftest
expected: CRASH

View file

@ -0,0 +1,3 @@
[css-filters-animation-combined-001.htm]
type: reftest
expected: FAIL