skia2/experimental/wasm-skp-debugger/helper.js
Kevin Lubick 957bf97414 [debugger] Use alternate buffer
Bug: skia:9524
Change-Id: I8268d1652f55516e009e3cf68b3322f37aa08933
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/247636
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2019-10-10 15:19:42 +00:00

25 lines
1.0 KiB
JavaScript

// Adds compile-time JS functions to augment the DebuggerView interface.
(function(DebuggerView){
DebuggerView.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(DebuggerView.HEAPU8.buffer, fileMemPtr, size);
// Copy the file into it
fileMem.set(fileContents);
// Hand off pointer to wasm
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 player;
}
}(Module)); // When this file is loaded in, the high level object is "Module";