generateImage method

Future<Image> generateImage(
  1. Size size,
  2. List<Object> objects,
  3. Image texture
)

Implementation

Future<Image> generateImage(Size size, List<Object> objects, Image texture) async {
  final recorder = PictureRecorder();
  final canvas = Canvas(
    recorder,
    Rect.fromLTWH(0,0,size.width, size.height)
  );
  // create render mesh from objects
  final renderMesh = _makeRenderMesh(objects, texture);
  final List<Triangle> renderPolys = _renderObject(renderMesh,objects);
  final int indexCount = renderPolys.length;
  final Uint16List indices = Uint16List(indexCount * 3);

  for (int i = 0; i < indexCount; i++) {
    //if(renderPolys[i] != null){
      final int index0 = i * 3;
      final int index1 = index0 + 1;
      final int index2 = index0 + 2;
      final Triangle triangle = renderPolys[i];

      indices[index0] = triangle.vertexes[0];
      indices[index1] = triangle.vertexes[1];
      indices[index2] = triangle.vertexes[2];
    //}
  }
  _drwaVert(
    canvas,
    renderMesh.positions,
    renderMesh.texcoords,
    renderMesh.colors,
    indices,
    renderMesh.texture
  );
  return await recorder.endRecording().toImage(size.width.ceil(), size.height.ceil());
}