Updates for WR gradient API change.

This commit is contained in:
Glenn Watson 2018-07-16 09:12:18 +10:00
parent 6354cd9a5e
commit 1881a06c40
2 changed files with 43 additions and 22 deletions

4
Cargo.lock generated
View file

@ -3521,7 +3521,7 @@ dependencies = [
[[package]] [[package]]
name = "webrender" name = "webrender"
version = "0.57.2" version = "0.57.2"
source = "git+https://github.com/servo/webrender#a30fd2286f424e528e3bde502d1a11ed5ef7ec31" source = "git+https://github.com/servo/webrender#c540acf0990f8a0cbf9429e7085c7cc3b6901add"
dependencies = [ dependencies = [
"app_units 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"base64 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3556,7 +3556,7 @@ dependencies = [
[[package]] [[package]]
name = "webrender_api" name = "webrender_api"
version = "0.57.2" version = "0.57.2"
source = "git+https://github.com/servo/webrender#a30fd2286f424e528e3bde502d1a11ed5ef7ec31" source = "git+https://github.com/servo/webrender#c540acf0990f8a0cbf9429e7085c7cc3b6901add"
dependencies = [ dependencies = [
"app_units 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "app_units 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
"bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",

View file

@ -9,6 +9,7 @@
use display_list::items::{BorderDetails, ClipScrollNode, ClipScrollNodeIndex, ClipScrollNodeType}; use display_list::items::{BorderDetails, ClipScrollNode, ClipScrollNodeIndex, ClipScrollNodeType};
use display_list::items::{DisplayItem, DisplayList, StackingContextType}; use display_list::items::{DisplayItem, DisplayList, StackingContextType};
use euclid::SideOffsets2D;
use msg::constellation_msg::PipelineId; use msg::constellation_msg::PipelineId;
use webrender_api::{self, ClipAndScrollInfo, ClipId, DisplayListBuilder, GlyphRasterSpace}; use webrender_api::{self, ClipAndScrollInfo, ClipId, DisplayListBuilder, GlyphRasterSpace};
use webrender_api::LayoutPoint; use webrender_api::LayoutPoint;
@ -132,30 +133,50 @@ impl WebRenderDisplayItemConverter for DisplayItem {
BorderDetails::Normal(ref border) => { BorderDetails::Normal(ref border) => {
webrender_api::BorderDetails::Normal(*border) webrender_api::BorderDetails::Normal(*border)
}, },
BorderDetails::Image(ref image) => webrender_api::BorderDetails::NinePatch(*image), BorderDetails::Image(ref image) => {
webrender_api::BorderDetails::NinePatch(*image)
}
BorderDetails::Gradient(ref gradient) => { BorderDetails::Gradient(ref gradient) => {
webrender_api::BorderDetails::Gradient(webrender_api::GradientBorder { let wr_gradient = builder.create_gradient(
gradient: builder.create_gradient( gradient.gradient.start_point,
gradient.gradient.start_point, gradient.gradient.end_point,
gradient.gradient.end_point, gradient.gradient.stops.clone(),
gradient.gradient.stops.clone(), gradient.gradient.extend_mode,
gradient.gradient.extend_mode, );
),
let details = webrender_api::NinePatchBorder {
source: webrender_api::NinePatchBorderSource::Gradient(wr_gradient),
width: 0,
height: 0,
slice: SideOffsets2D::zero(),
fill: false,
repeat_horizontal: webrender_api::RepeatMode::Stretch,
repeat_vertical: webrender_api::RepeatMode::Stretch,
outset: gradient.outset, outset: gradient.outset,
}) };
webrender_api::BorderDetails::NinePatch(details)
}, },
BorderDetails::RadialGradient(ref gradient) => { BorderDetails::RadialGradient(ref gradient) => {
webrender_api::BorderDetails::RadialGradient( let wr_gradient = builder.create_radial_gradient(
webrender_api::RadialGradientBorder { gradient.gradient.center,
gradient: builder.create_radial_gradient( gradient.gradient.radius,
gradient.gradient.center, gradient.gradient.stops.clone(),
gradient.gradient.radius, gradient.gradient.extend_mode,
gradient.gradient.stops.clone(), );
gradient.gradient.extend_mode,
), let details = webrender_api::NinePatchBorder {
outset: gradient.outset, source: webrender_api::NinePatchBorderSource::RadialGradient(wr_gradient),
}, width: 0,
) height: 0,
slice: SideOffsets2D::zero(),
fill: false,
repeat_horizontal: webrender_api::RepeatMode::Stretch,
repeat_vertical: webrender_api::RepeatMode::Stretch,
outset: gradient.outset,
};
webrender_api::BorderDetails::NinePatch(details)
}, },
}; };