code: func (dc *Context) ClipPreserve() {
  	clip := image.NewAlpha(image.Rect(0, 0, dc.width, dc.height))
  	painter := raster.NewAlphaOverPainter(clip)
  	dc.fill(painter)
  	if dc.mask == nil {
  		dc.mask = clip
  	} else {
  		mask := image.NewAlpha(image.Rect(0, 0, dc.width, dc.height))
  		draw.DrawMask(mask, mask.Bounds(), clip, image.ZP, dc.mask, image.ZP, draw.Over)
  		dc.mask = mask
  	}
  }
docs: // ClipPreserve updates the clipping region by intersecting the current
  // clipping region with the current path as it would be filled by dc.Fill().
  // The path is preserved after this operation.