drawRawAtlas method

void drawRawAtlas (Image atlas, Float32List rstTransforms, Float32List rects, Int32List colors, BlendMode blendMode, Rect cullRect, Paint paint)

Implementation

void drawRawAtlas(Image atlas,
                  Float32List rstTransforms,
                  Float32List rects,
                  Int32List colors,
                  BlendMode blendMode,
                  Rect cullRect,
                  Paint paint) {
  assert(atlas != null); // atlas is checked on the engine side
  assert(rstTransforms != null);
  assert(rects != null);
  assert(colors != null);
  assert(blendMode != null);
  assert(paint != null);

  final int rectCount = rects.length;
  if (rstTransforms.length != rectCount)
    throw ArgumentError('"rstTransforms" and "rects" lengths must match.');
  if (rectCount % 4 != 0)
    throw ArgumentError('"rstTransforms" and "rects" lengths must be a multiple of four.');
  if (colors != null && colors.length * 4 != rectCount)
    throw ArgumentError('If non-null, "colors" length must be one fourth the length of "rstTransforms" and "rects".');

  _drawAtlas(
    paint._objects, paint._data, atlas, rstTransforms, rects,
    colors, blendMode.index, cullRect?._value32
  );
}