shader method

Shader shader(
  1. BackgroundSpec spec,
  2. Size size,
  3. Shader build()
)

The cached shader for spec at size, built by build on a miss.

Implementation

ui.Shader shader(BackgroundSpec spec, Size size, ui.Shader Function() build) {
  final key = (spec, size);
  final hit = _shaders.remove(key);
  if (hit != null) return _shaders[key] = hit;
  builds++;
  final shader = _shaders[key] = build();
  while (_shaders.length > capacity) {
    _shaders.remove(_shaders.keys.first);
  }
  return shader;
}