initializeGraphics method

  1. @override
void initializeGraphics()
override

Implementation

@override
void initializeGraphics() {
  super.initializeGraphics();
  if (triangles == null) {
    // Set the paint as it's late initialized.
    _paint = ui.Paint();
    return;
  }
  _vertexBuffer = makeVertexPositionBuffer();
  _uvBuffer = makeVertexUVBuffer();
  _indices = triangles!;
  updateVertexUVBuffer(_uvBuffer);
  int count = vertexCount;
  int idx = 0;
  List<ui.Image> images = (artboard.actor as FlutterActor).images;
  ui.Image image = images[textureIndex];

  // SKIA requires texture coordinates in full image space, not traditional
  // normalized uv coordinates.
  for (int i = 0; i < count; i++) {
    _uvBuffer[idx] = _uvBuffer[idx] * image.width;
    _uvBuffer[idx + 1] = _uvBuffer[idx + 1] * image.height;
    idx += 2;
  }

  if (sequenceUVs != null) {
    var suvs = sequenceUVs!;
    for (int i = 0; i < suvs.length; i++) {
      suvs[i++] *= image.width;
      suvs[i] *= image.height;
    }
  }

  _paint = ui.Paint()
    ..blendMode = blendMode
    ..shader = ui.ImageShader(
        image, ui.TileMode.clamp, ui.TileMode.clamp, _identityMatrix)
    ..filterQuality = ui.FilterQuality.low;
  onPaintUpdated(_paint);
}