1*c8dee2aaSAndroid Build Coastguard Worker 2*c8dee2aaSAndroid Build Coastguard Worker(function(CanvasKit){ 3*c8dee2aaSAndroid Build Coastguard Worker CanvasKit.SkpFilePlayer = function(file_arraybuf) { 4*c8dee2aaSAndroid Build Coastguard Worker // Create the instance of SkpDebugPlayer 5*c8dee2aaSAndroid Build Coastguard Worker var player = new this.SkpDebugPlayer(); 6*c8dee2aaSAndroid Build Coastguard Worker // Convert file (an ArrayBuffer) into a typedarray, 7*c8dee2aaSAndroid Build Coastguard Worker // otherwise fileMem.set() below seems to have no effect. 8*c8dee2aaSAndroid Build Coastguard Worker var fileContents = new Uint8Array(file_arraybuf); 9*c8dee2aaSAndroid Build Coastguard Worker var size = fileContents.byteLength; 10*c8dee2aaSAndroid Build Coastguard Worker // Allocate memory in wasm to hold the skp file selected by the user. 11*c8dee2aaSAndroid Build Coastguard Worker var fileMemPtr = this._malloc(size); 12*c8dee2aaSAndroid Build Coastguard Worker // Make a typed array view of that memory 13*c8dee2aaSAndroid Build Coastguard Worker var fileMem = new Uint8Array(CanvasKit.HEAPU8.buffer, fileMemPtr, size); 14*c8dee2aaSAndroid Build Coastguard Worker // Copy the file into it 15*c8dee2aaSAndroid Build Coastguard Worker fileMem.set(fileContents); 16*c8dee2aaSAndroid Build Coastguard Worker // Hand off pointer to wasm 17*c8dee2aaSAndroid Build Coastguard Worker var error = player.loadSkp(fileMemPtr, size); 18*c8dee2aaSAndroid Build Coastguard Worker // Free the memory that was used to hold the file, since it is now represented as an SkPicture 19*c8dee2aaSAndroid Build Coastguard Worker this._free(fileMemPtr) 20*c8dee2aaSAndroid Build Coastguard Worker return { 21*c8dee2aaSAndroid Build Coastguard Worker 'error': error, 22*c8dee2aaSAndroid Build Coastguard Worker 'player': player 23*c8dee2aaSAndroid Build Coastguard Worker }; 24*c8dee2aaSAndroid Build Coastguard Worker } 25*c8dee2aaSAndroid Build Coastguard Worker 26*c8dee2aaSAndroid Build Coastguard Worker}(Module)); // When this file is loaded in, the high level object is "Module"; 27