xref: /aosp_15_r20/external/skia/modules/canvaskit/skp.js (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard WorkerCanvasKit._extraInitializations = CanvasKit._extraInitializations || [];
2*c8dee2aaSAndroid Build Coastguard WorkerCanvasKit._extraInitializations.push(function() {
3*c8dee2aaSAndroid Build Coastguard Worker  // data is a TypedArray or ArrayBuffer e.g. from fetch().then(resp.arrayBuffer())
4*c8dee2aaSAndroid Build Coastguard Worker  CanvasKit.MakePicture = function(data) {
5*c8dee2aaSAndroid Build Coastguard Worker    data = new Uint8Array(data);
6*c8dee2aaSAndroid Build Coastguard Worker
7*c8dee2aaSAndroid Build Coastguard Worker    var iptr = CanvasKit._malloc(data.byteLength);
8*c8dee2aaSAndroid Build Coastguard Worker    CanvasKit.HEAPU8.set(data, iptr);
9*c8dee2aaSAndroid Build Coastguard Worker    // The skp takes ownership of the malloc'd data.
10*c8dee2aaSAndroid Build Coastguard Worker    var pic = CanvasKit._MakePicture(iptr, data.byteLength);
11*c8dee2aaSAndroid Build Coastguard Worker    if (!pic) {
12*c8dee2aaSAndroid Build Coastguard Worker      Debug('Could not decode picture');
13*c8dee2aaSAndroid Build Coastguard Worker      return null;
14*c8dee2aaSAndroid Build Coastguard Worker    }
15*c8dee2aaSAndroid Build Coastguard Worker    return pic;
16*c8dee2aaSAndroid Build Coastguard Worker  };
17*c8dee2aaSAndroid Build Coastguard Worker});
18