aboutsummaryrefslogtreecommitdiffstats
path: root/components/canvas/raqote_backend.rs
diff options
context:
space:
mode:
authorBastien Orivel <eijebong@bananium.fr>2019-08-08 18:11:43 +0200
committerBastien Orivel <eijebong@bananium.fr>2019-08-21 19:10:56 +0200
commite90d1a1d8d6a189e883288fdbeda0f45d8861d11 (patch)
tree5bf3176296d2d9dc0ed808d6567c7e9c0b6ed86f /components/canvas/raqote_backend.rs
parent9229dc4d85e6da7566e344e9a00a68f90e094104 (diff)
downloadservo-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.rs28
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,