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 new ArgumentError('"rstTransforms" and "rects" lengths must match.');
  if (rectCount % 4 != 0)
    throw new ArgumentError('"rstTransforms" and "rects" lengths must be a multiple of four.');
  if (colors != null && colors.length * 4 != rectCount)
    throw new 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?._value
  );
}