From 7c81d20869bf9cbb475553bcfca386277fc1c58c Mon Sep 17 00:00:00 2001 From: pylbrecht Date: Thu, 29 Aug 2019 14:17:03 +0200 Subject: [PATCH] Implement create_gradient_stops() --- components/canvas/canvas_data.rs | 4 ++-- components/canvas/raqote_backend.rs | 16 ++++++++++++++-- 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), } #[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, + gradient_stops: Vec, _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 { Box::new(PathBuilder::new()) @@ -679,3 +683,11 @@ impl SourceSurface { } } } + +impl GradientStop { + fn as_raqote(&self) -> &raqote::GradientStop { + match self { + GradientStop::Raqote(s) => s, + } + } +}