From ee7f3dbc468841e196da402bc6d3d607e4dddc35 Mon Sep 17 00:00:00 2001 From: pylbrecht Date: Sun, 25 Aug 2019 16:19:33 +0200 Subject: [PATCH] Implement PathBuilder::get_current_point() --- components/canvas/raqote_backend.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/components/canvas/raqote_backend.rs b/components/canvas/raqote_backend.rs index b5bcf100b60b..137b00e4bf07 100644 --- a/components/canvas/raqote_backend.rs +++ b/components/canvas/raqote_backend.rs @@ -509,7 +509,19 @@ impl GenericPathBuilder for PathBuilder { unimplemented!(); } fn get_current_point(&mut self) -> Point2D { - unimplemented!(); + let path = self.finish(); + + for op in path.as_raqote().ops.iter().rev() { + match op { + PathOp::MoveTo(point) | PathOp::LineTo(point) => { + return Point2D::new(point.x, point.y) + }, + PathOp::CubicTo(_, _, point) => return Point2D::new(point.x, point.y), + PathOp::QuadTo(_, point) => return Point2D::new(point.x, point.y), + _ => {}, + }; + } + panic!("dead end"); } fn line_to(&mut self, point: Point2D) { self.0.as_mut().unwrap().line_to(point.x, point.y);