code: func (dc *Context) CubicTo(x1, y1, x2, y2, x3, y3 float64) {
  	if !dc.hasCurrent {
  		dc.MoveTo(x1, y1)
  	}
  	x0, y0 := dc.current.X, dc.current.Y
  	x1, y1 = dc.TransformPoint(x1, y1)
  	x2, y2 = dc.TransformPoint(x2, y2)
  	x3, y3 = dc.TransformPoint(x3, y3)
  	points := CubicBezier(x0, y0, x1, y1, x2, y2, x3, y3)
  	previous := dc.current.Fixed()
  	for _, p := range points[1:] {
  		f := p.Fixed()
  		if f == previous {
  			// TODO: this fixes some rendering issues but not all
  			continue
  		}
  		previous = f
  		dc.strokePath.Add1(f)
  		dc.fillPath.Add1(f)
  		dc.current = p
  	}
  }
docs: // CubicTo adds a cubic bezier curve to the current path starting at the
  // current point. If there is no current point, it first performs
  // MoveTo(x1, y1). Because freetype/raster does not support cubic beziers,
  // this is emulated with many small line segments.