update method

  1. @override
FutureOr<void> update(
  1. covariant CIFilterConfiguration configuration
)

Implementation

@override
FutureOr<void> update(covariant CIFilterConfiguration configuration) async {
  if (!configuration.ready) {
    debugPrint('Invoke `prepare()` before updating parameter $name');
    return;
  }
  if (!_needsUpdate) {
    return;
  }
  _needsUpdate = false;
  if (_image) {
    if (asset != null) {
      await configuration._api.setCIImageCubeSourceParameter(
        configuration._filterId,
        name,
        true,
        asset!,
        _size,
        _columns,
        _rows,
      );
    } else if (file != null) {
      await configuration._api.setCIImageCubeSourceParameter(
        configuration._filterId,
        name,
        false,
        file!.absolute.path,
        _size,
        _columns,
        _rows,
      );
    } else if (data != null) {
      await configuration._api.setCIImageCubeDataParameter(
        configuration._filterId,
        name,
        data!,
        _size,
        _columns,
        _rows,
      );
    }
  } else {
    if (asset != null) {
      await configuration._api.setNSDataSourceParameter(
        configuration._filterId,
        name,
        true,
        asset!,
      );
    } else if (file != null) {
      await configuration._api.setNSDataSourceParameter(
        configuration._filterId,
        name,
        false,
        file!.absolute.path,
      );
    } else if (data != null) {
      await configuration._api
          .setNSDataParameter(configuration._filterId, name, data!);
    }
  }
}