aboutsummaryrefslogtreecommitdiffstats
path: root/components/canvas
diff options
context:
space:
mode:
Diffstat (limited to 'components/canvas')
-rw-r--r--components/canvas/canvas_data.rs4
-rw-r--r--components/canvas/raqote_backend.rs16
2 files changed, 16 insertions, 4 deletions
diff --git a/components/canvas/canvas_data.rs b/components/canvas/canvas_data.rs
index f2df5bf179d..78c32b4d813 100644
--- a/components/canvas/canvas_data.rs
+++ b/components/canvas/canvas_data.rs
@@ -302,14 +302,14 @@ pub enum GradientStop {
#[cfg(feature = "canvas2d-azure")]
Azure(azure::AzGradientStop),
#[cfg(feature = "canvas2d-raqote")]
- Raqote(()),
+ Raqote(raqote::GradientStop),
}
pub enum GradientStops {
#[cfg(feature = "canvas2d-azure")]
Azure(azure::azure_hl::GradientStops),
#[cfg(feature = "canvas2d-raqote")]
- Raqote(()),
+ Raqote(Vec<raqote::GradientStop>),
}
#[derive(Clone)]
diff --git a/components/canvas/raqote_backend.rs b/components/canvas/raqote_backend.rs
index 7dc84610809..1bbc23a983f 100644
--- a/components/canvas/raqote_backend.rs
+++ b/components/canvas/raqote_backend.rs
@@ -246,10 +246,14 @@ impl GenericDrawTarget for raqote::DrawTarget {
}
fn create_gradient_stops(
&self,
- _gradient_stops: Vec<GradientStop>,
+ gradient_stops: Vec<GradientStop>,
_extend_mode: ExtendMode,
) -> GradientStops {
- unimplemented!();
+ let stops = gradient_stops
+ .into_iter()
+ .map(|item| item.as_raqote().clone())
+ .collect();
+ GradientStops::Raqote(stops)
}
fn create_path_builder(&self) -> Box<dyn GenericPathBuilder> {
Box::new(PathBuilder::new())
@@ -679,3 +683,11 @@ impl SourceSurface {
}
}
}
+
+impl GradientStop {
+ fn as_raqote(&self) -> &raqote::GradientStop {
+ match self {
+ GradientStop::Raqote(s) => s,
+ }
+ }
+}