Use more WebRender types in gfx/display_list

This uses floating-point (Layout) coordinates in where possible.
Replace NormalBorder struct with WebRender equivalent.
Remove ToPointF and ToRectF traits.
Convert border RepeatKeyword with ToLayout.
Add some definitions to malloc_size_of for WebRender types.
This commit is contained in:
Pyfisch 2018-01-12 21:24:23 +01:00
parent 8612a87ed2
commit 8c7c5f6e79
10 changed files with 181 additions and 240 deletions

View file

@ -7,6 +7,7 @@ use euclid::{Point2D, Rect, SideOffsets2D, Size2D, Vector2D};
use style::computed_values::image_rendering::T as ImageRendering;
use style::computed_values::mix_blend_mode::T as MixBlendMode;
use style::computed_values::transform_style::T as TransformStyle;
use style::properties::longhands::border_image_repeat::RepeatKeyword;
use style::values::RGBA;
use style::values::computed::{BorderStyle, Filter};
use style::values::generics::effects::Filter as GenericFilter;
@ -150,3 +151,15 @@ impl ToLayout for Vector2D<Au> {
wr::LayoutVector2D::new(self.x.to_f32_px(), self.y.to_f32_px())
}
}
impl ToLayout for RepeatKeyword {
type Type = wr::RepeatMode;
fn to_layout(&self) -> Self::Type {
match *self {
RepeatKeyword::Stretch => wr::RepeatMode::Stretch,
RepeatKeyword::Repeat => wr::RepeatMode::Repeat,
RepeatKeyword::Round => wr::RepeatMode::Round,
RepeatKeyword::Space => wr::RepeatMode::Space,
}
}
}