| (function(CanvasKit){ | |
| CanvasKit.SkpFilePlayer = function(file_arraybuf) { | |
| // Create the instance of SkpDebugPlayer | |
| var player = new this.SkpDebugPlayer(); | |
| // Convert file (an ArrayBuffer) into a typedarray, | |
| // otherwise fileMem.set() below seems to have no effect. | |
| var fileContents = new Uint8Array(file_arraybuf); | |
| var size = fileContents.byteLength; | |
| // Allocate memory in wasm to hold the skp file selected by the user. | |
| var fileMemPtr = this._malloc(size); | |
| // Make a typed array view of that memory | |
| var fileMem = new Uint8Array(CanvasKit.HEAPU8.buffer, fileMemPtr, size); | |
| // Copy the file into it | |
| fileMem.set(fileContents); | |
| // Hand off pointer to wasm | |
| var error = player.loadSkp(fileMemPtr, size); | |
| // Free the memory that was used to hold the file, since it is now represented as an SkPicture | |
| this._free(fileMemPtr) | |
| return { | |
| 'error': error, | |
| 'player': player | |
| }; | |
| } | |
| }(Module)); // When this file is loaded in, the high level object is "Module"; |