Update webrender

This commit is contained in:
Manish Goregaokar 2018-11-20 17:02:17 -08:00
parent 482923cec2
commit 5413328be2
20 changed files with 138 additions and 122 deletions

View file

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

View file

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

View file

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