mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Partially implement radial gradients.
Missing: repeating radial gradients and keyword sizes.
This commit is contained in:
parent
2c445169ad
commit
f4bad2d920
4 changed files with 194 additions and 83 deletions
|
@ -528,6 +528,7 @@ pub enum DisplayItem {
|
|||
WebGL(Box<WebGLDisplayItem>),
|
||||
Border(Box<BorderDisplayItem>),
|
||||
Gradient(Box<GradientDisplayItem>),
|
||||
RadialGradient(Box<RadialGradientDisplayItem>),
|
||||
Line(Box<LineDisplayItem>),
|
||||
BoxShadow(Box<BoxShadowDisplayItem>),
|
||||
Iframe(Box<IframeDisplayItem>),
|
||||
|
@ -900,6 +901,29 @@ pub struct GradientDisplayItem {
|
|||
pub gradient: Gradient,
|
||||
}
|
||||
|
||||
/// Paints a radial gradient.
|
||||
#[derive(Clone, Deserialize, HeapSizeOf, Serialize)]
|
||||
pub struct RadialGradient {
|
||||
/// The center point of the gradient.
|
||||
pub center: Point2D<Au>,
|
||||
|
||||
/// The radius of the gradient with an x and an y component.
|
||||
pub radius: Size2D<Au>,
|
||||
|
||||
/// A list of color stops.
|
||||
pub stops: Vec<GradientStop>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Deserialize, HeapSizeOf, Serialize)]
|
||||
pub struct RadialGradientDisplayItem {
|
||||
/// Fields common to all display item.
|
||||
pub base: BaseDisplayItem,
|
||||
|
||||
/// Contains all gradient data.
|
||||
pub gradient: RadialGradient,
|
||||
}
|
||||
|
||||
|
||||
/// A normal border, supporting CSS border styles.
|
||||
#[derive(Clone, HeapSizeOf, Deserialize, Serialize)]
|
||||
pub struct NormalBorder {
|
||||
|
@ -1124,6 +1148,7 @@ impl DisplayItem {
|
|||
DisplayItem::WebGL(ref webgl_item) => &webgl_item.base,
|
||||
DisplayItem::Border(ref border) => &border.base,
|
||||
DisplayItem::Gradient(ref gradient) => &gradient.base,
|
||||
DisplayItem::RadialGradient(ref gradient) => &gradient.base,
|
||||
DisplayItem::Line(ref line) => &line.base,
|
||||
DisplayItem::BoxShadow(ref box_shadow) => &box_shadow.base,
|
||||
DisplayItem::Iframe(ref iframe) => &iframe.base,
|
||||
|
@ -1241,6 +1266,7 @@ impl fmt::Debug for DisplayItem {
|
|||
DisplayItem::WebGL(_) => "WebGL".to_owned(),
|
||||
DisplayItem::Border(_) => "Border".to_owned(),
|
||||
DisplayItem::Gradient(_) => "Gradient".to_owned(),
|
||||
DisplayItem::RadialGradient(_) => "RadialGradient".to_owned(),
|
||||
DisplayItem::Line(_) => "Line".to_owned(),
|
||||
DisplayItem::BoxShadow(_) => "BoxShadow".to_owned(),
|
||||
DisplayItem::Iframe(_) => "Iframe".to_owned(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue