skia2/modules/canvaskit/skp.js

30 lines
1.0 KiB
JavaScript
Raw Normal View History

CanvasKit._extraInitializations = CanvasKit._extraInitializations || [];
CanvasKit._extraInitializations.push(function() {
// data is a TypedArray or ArrayBuffer e.g. from fetch().then(resp.arrayBuffer())
CanvasKit.MakeSkPicture = function(data) {
data = new Uint8Array(data);
var iptr = CanvasKit._malloc(data.byteLength);
CanvasKit.HEAPU8.set(data, iptr);
var pic = CanvasKit._MakeSkPicture(iptr, data.byteLength);
if (!pic) {
SkDebug('Could not decode picture');
return null;
}
return pic;
}
// The serialized format of an SkPicture (informally called an "skp"), is not something
// that clients should ever rely on. The format may change at anytime and no promises
// are made for backwards or forward compatibility.
CanvasKit.SkPicture.prototype.saveAsFile = function(skpName) {
var data = this.serialize();
if (!data) {
SkDebug('Could not serialize to skpicture.');
return;
}
var bytes = CanvasKit.getSkDataBytes(data);
saveBytesToFile(bytes, skpName);
data.delete();
}
});