fromWire static method

TextLayer? fromWire(
  1. Object? raw
)

Implementation

static TextLayer? fromWire(Object? raw) {
  if (raw is! Map) return null;
  var paint = ScenePaint.fromWire(raw['paint']);
  var blur = _wireDouble(raw['blur'], 0);
  var dx = _wireDouble(raw['dx'], 0);
  var dy = _wireDouble(raw['dy'], 0);
  var opacity = _wireDouble(raw['o'], 1);
  var box =
      SceneLayerBox.values.asNameMap()[raw['box']] ?? SceneLayerBox.text;
  var blend =
      SceneBlendMode.values.asNameMap()[raw['blend']] ??
      SceneBlendMode.normal;
  return switch (raw['k']) {
    'stroke' => StrokeLayer(
      width: _wireDouble(raw['w'], 1),
      join: switch (raw['j']) {
        num i when i >= 0 && i < SceneStrokeJoin.values.length =>
          SceneStrokeJoin.values[i.toInt()],
        _ => SceneStrokeJoin.round,
      },
      paint: paint,
      blur: blur,
      dx: dx,
      dy: dy,
      opacity: opacity,
      box: box,
      blend: blend,
    ),
    _ => FillLayer(
      paint: paint,
      blur: blur,
      dx: dx,
      dy: dy,
      opacity: opacity,
      box: box,
      blend: blend,
    ),
  };
}