message: Fix integer overflow with nested clip primitives
diff: @@ -254,12 +254,21 @@ impl Renderer {
  offset,
  content,
  } => {
  + let x = bounds.x - layer.offset.x as f32;
  + let y = bounds.y - layer.offset.y as f32;
  + let width = (bounds.width + x).min(bounds.width);
  + let height = (bounds.height + y).min(bounds.height);
  +
  + // Only draw visible content on-screen
  + // TODO: Also, check for parent layer bounds to avoid further
  + // drawing in some circumstances.
  + if width > 0.0 && height > 0.0 {
  let clip_layer = Layer::new(
  Rectangle {
  - x: bounds.x as u32 - layer.offset.x,
  - y: bounds.y as u32 - layer.offset.y,
  - width: bounds.width as u32,
  - height: bounds.height as u32,
  + x: x.max(0.0).ceil() as u32,
  + y: y.max(0.0).ceil() as u32,
  + width: width.ceil() as u32,
  + height: height.ceil() as u32,
  },
  layer.offset + *offset,
  );
  @@ -267,14 +276,12 @@ impl Renderer {
  let new_layer = Layer::new(layer.bounds, layer.offset);
  layers.push(clip_layer);
  -
  - // TODO: Primitive culling
  self.draw_primitive(content, layers);
  -
  layers.push(new_layer);
  }
  }
  }
  + }
  fn draw_overlay<'a, T: AsRef<str>>(
  &mut self,
  