getCanvasGradient method
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!;
}