From a02daef7b29a796a736e97d39f9c389b2d4bd70a Mon Sep 17 00:00:00 2001 From: pylbrecht Date: Mon, 2 Dec 2019 14:33:37 +0100 Subject: [PATCH] Make arc() wrap angles mod 2pi --- components/canvas/raqote_backend.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/components/canvas/raqote_backend.rs b/components/canvas/raqote_backend.rs index ba1b5f99700..b940277a0f3 100644 --- a/components/canvas/raqote_backend.rs +++ b/components/canvas/raqote_backend.rs @@ -488,10 +488,17 @@ impl GenericPathBuilder for PathBuilder { &mut self, origin: Point2D, radius: f32, - start_angle: f32, + mut start_angle: f32, mut end_angle: f32, anticlockwise: bool, ) { + if (!anticlockwise && start_angle > end_angle + 2. * PI) || + (anticlockwise && end_angle > start_angle + 2. * PI) + { + start_angle = start_angle % (2. * PI); + end_angle = end_angle % (2. * PI); + } + if (anticlockwise && end_angle > 0.) || (!anticlockwise && end_angle < 0.) { end_angle = -end_angle; }