loadImageSource method

dynamic loadImageSource(
  1. dynamic sourceIndex,
  2. dynamic loader
)

Implementation

loadImageSource(sourceIndex, loader) async {
  var parser = this;
  var json = this.json;
  var options = this.options;
  var texture;

  if (this.sourceCache[sourceIndex] != null) {
    texture = this.sourceCache[sourceIndex];
    return texture.clone();
  }

  Map sourceDef = json["images"][sourceIndex];

  // var URL = self.URL || self.webkitURL;

  var sourceURI = sourceDef["uri"] ?? '';
  var isObjectURL = false;

  //print("loader loadimagesource: ${loader} ");

  if (sourceDef["bufferView"] != null) {
    // Load binary image data from bufferView, if provided.

    var bufferView =
        await parser.getDependency('bufferView', sourceDef["bufferView"]);

    isObjectURL = true;
    var blob =
        Blob(bufferView.asUint8List(), {"type": sourceDef["mimeType"]});
    // sourceURI = URL.createObjectURL( blob );

    texture = await loader.loadAsync(blob, null);
  } else if (sourceDef["uri"] != null) {
    texture = await loader.loadAsync(
        LoaderUtils.resolveURL(sourceURI, options["path"]), null);
    //print("oooo"+texture.toString()+"nnn"+LoaderUtils.resolveURL(sourceURI, options["path"]).toString());  //assets/models/gltf/shofar.jpg
  } else if (sourceDef["uri"] == null) {
    throw ('THREE.GLTFLoader: Image ' +
        sourceIndex +
        ' is missing URI and bufferView');
  }

  this.sourceCache[sourceIndex] = texture;
  return texture;
}