apply method

  1. @override
void apply(
  1. Buffer source,
  2. Buffer target,
  3. double dt
)
override

Implementation

@override
void apply(Buffer source, Buffer target, double dt) {
  if (filters.isEmpty) {
    _copyBuffer(source, target);
    return;
  }

  _ensureScratch(source.width(), source.height());
  var read = source;
  var useFront = true;

  for (var i = 0; i < filters.length; i++) {
    final filter = filters[i];
    final isLast = i == filters.length - 1;
    final write = isLast ? target : (useFront ? _front! : _back!);
    write.clear();
    filter.apply(read, write, dt);
    if (!isLast) {
      read = write;
      useFront = !useFront;
    }
  }
}