diff options
author | Bastien Orivel <eijebong@bananium.fr> | 2019-08-08 18:11:43 +0200 |
---|---|---|
committer | Bastien Orivel <eijebong@bananium.fr> | 2019-08-21 19:10:56 +0200 |
commit | e90d1a1d8d6a189e883288fdbeda0f45d8861d11 (patch) | |
tree | 5bf3176296d2d9dc0ed808d6567c7e9c0b6ed86f /components/canvas/raqote_backend.rs | |
parent | 9229dc4d85e6da7566e344e9a00a68f90e094104 (diff) | |
download | servo-e90d1a1d8d6a189e883288fdbeda0f45d8861d11.tar.gz servo-e90d1a1d8d6a189e883288fdbeda0f45d8861d11.zip |
Implement stroke_line and set_stroke_style
Diffstat (limited to 'components/canvas/raqote_backend.rs')
-rw-r--r-- | components/canvas/raqote_backend.rs | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/components/canvas/raqote_backend.rs b/components/canvas/raqote_backend.rs index d33a6597ba5..89db6ca62ae 100644 --- a/components/canvas/raqote_backend.rs +++ b/components/canvas/raqote_backend.rs @@ -51,11 +51,13 @@ impl Backend for RaqoteBackend { fn set_stroke_style<'a>( &mut self, - _style: FillOrStrokeStyle, - _state: &mut CanvasPaintState<'a>, + style: FillOrStrokeStyle, + state: &mut CanvasPaintState<'a>, _drawtarget: &dyn GenericDrawTarget, ) { - unimplemented!() + if let Some(pattern) = style.to_raqote_source() { + state.stroke_style = Pattern::Raqote(pattern) + } } fn set_global_composition<'a>( @@ -330,13 +332,21 @@ impl GenericDrawTarget for raqote::DrawTarget { } fn stroke_line( &mut self, - _start: Point2D<f32>, - _end: Point2D<f32>, - _pattern: Pattern, - _stroke_options: &StrokeOptions, - _draw_options: &DrawOptions, + start: Point2D<f32>, + end: Point2D<f32>, + pattern: Pattern, + stroke_options: &StrokeOptions, + draw_options: &DrawOptions, ) { - unimplemented!(); + let mut pb = raqote::PathBuilder::new(); + pb.move_to(start.x, start.y); + pb.line_to(end.x, end.y); + + self.stroke( + &pb.finish(), + pattern.as_raqote(), + stroke_options.as_raqote(), + draw_options.as_raqote()); } fn stroke_rect( &mut self, |