getCanvasGradient method

CanvasGradient getCanvasGradient(
  1. CanvasRenderingContext2D context
)

Implementation

CanvasGradient getCanvasGradient(CanvasRenderingContext2D context) {
  if (_canvasGradient == null) {
    _canvasCacheKey = _createCanvasCacheKey();
    _canvasGradient = _canvasGradientCache.getObject(_canvasCacheKey!);
  }

  if (_canvasGradient == null && _type == GraphicsGradientType.Linear) {
    _canvasGradient =
        context.createLinearGradient(_startX, _startY, _endX, _endY);
    _colorStops.forEach((cs) =>
        _canvasGradient!.addColorStop(cs.offset, color2rgba(cs.color)));
    _canvasGradientCache.addObject(_canvasCacheKey!, _canvasGradient!);
  }

  if (_canvasGradient == null && _type == GraphicsGradientType.Radial) {
    _canvasGradient = context.createRadialGradient(
        _startX, _startY, _startRadius, _endX, _endY, _endRadius);
    _colorStops.forEach((cs) =>
        _canvasGradient!.addColorStop(cs.offset, color2rgba(cs.color)));
    _canvasGradientCache.addObject(_canvasCacheKey!, _canvasGradient!);
  }

  return _canvasGradient!;
}