Line data Source code
1 : import 'package:flutter/cupertino.dart'; 2 : 3 : class ReusedGradient { 4 : Gradient _gradient; 5 : 6 : Shader _shader; 7 : Rect _size; 8 : 9 1 : ReusedGradient(); 10 : 11 1 : set gradient(Gradient gradient) { 12 1 : _gradient = gradient; 13 1 : _size = null; 14 : } 15 : 16 1 : updateWith(Paint paint, {Rect size}) { 17 2 : if (size == _size) { 18 : return; 19 : } 20 1 : if (_gradient == null) { 21 : return; 22 : } 23 0 : _shader ??= _gradient.createShader(size); 24 0 : paint.shader = _shader; 25 0 : _size = size; 26 : } 27 : }