loadBufferView2 method

Future<ByteBuffer?> loadBufferView2(
  1. int bufferViewIndex
)

Implementation

Future<ByteBuffer?> loadBufferView2(int bufferViewIndex) async {
  final bufferViewDef = json["bufferViews"][bufferViewIndex];
  final buffer = await getDependency('buffer', bufferViewDef["buffer"]);
  final byteLength = bufferViewDef["byteLength"] ?? 0;
  final byteOffset = bufferViewDef["byteOffset"] ?? 0;
  // use sublist(0) clone list, if not when load texture decode image will fail ? and with no error, return null image
  ByteBuffer? otherBuffer;
  if (buffer is TypedData) {
    if(kIsWasm){
      otherBuffer = buffer.buffer.asUint8List().sublist(byteOffset, byteOffset + byteLength).buffer;
    }
    else{
      otherBuffer = Uint8List.view(buffer.buffer, byteOffset, byteLength).sublist(0).buffer;
    }
  }
  else if(buffer != null && buffer is ByteBuffer){
    if(kIsWasm){
      otherBuffer = buffer.asUint8List().sublist(byteOffset, byteOffset + byteLength).buffer;
    }
    else{
      otherBuffer = Uint8List.view(buffer, byteOffset, byteLength).sublist(0).buffer;
    }
  }
  return otherBuffer;
}