diff --git a/content/src/outline.rs b/content/src/outline.rs index 659e5f6c..74a20df2 100644 --- a/content/src/outline.rs +++ b/content/src/outline.rs @@ -226,6 +226,11 @@ impl Outline { self.push_contour(ContourRectClipper::new(clip_rect, contour).clip()); } } + + #[inline] + pub fn close_all_contours(&mut self) { + self.contours.iter_mut().for_each(|contour| contour.close()); + } } impl Debug for Outline { diff --git a/renderer/src/scene.rs b/renderer/src/scene.rs index d33451cf..16949855 100644 --- a/renderer/src/scene.rs +++ b/renderer/src/scene.rs @@ -138,6 +138,7 @@ impl Scene { outline = Outline::new(); } else { outline = (*original_outline).clone(); + outline.close_all_contours(); outline.clip_against_polygon(clip_polygon); outline.apply_perspective(perspective); @@ -147,6 +148,7 @@ impl Scene { _ => { // TODO(pcwalton): Short circuit. outline = (*original_outline).clone(); + outline.close_all_contours(); if options.transform.is_2d() || options.subpixel_aa_enabled { let mut transform = match options.transform { PreparedRenderTransform::Transform2D(transform) => transform,