xref: /aosp_15_r20/external/skia/experimental/tskit/interface/extension.ts (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker/// <reference path="load.ts" />
2*c8dee2aaSAndroid Build Coastguard Worker/// <reference path="memory.ts" />
3*c8dee2aaSAndroid Build Coastguard Worker/// <reference path="../bindings/extension.d.ts" />
4*c8dee2aaSAndroid Build Coastguard Worker/// <reference path="public_api.d.ts" />
5*c8dee2aaSAndroid Build Coastguard Worker// eslint-disable-next-line @typescript-eslint/no-unused-vars
6*c8dee2aaSAndroid Build Coastguard Workernamespace Extension {
7*c8dee2aaSAndroid Build Coastguard Worker  // Module is the C++ module with the private (and some public) bindings on it.
8*c8dee2aaSAndroid Build Coastguard Worker  declare const Module: extension.Bindings;
9*c8dee2aaSAndroid Build Coastguard Worker  declare const CanvasKit: public_api.CanvasKit;
10*c8dee2aaSAndroid Build Coastguard Worker  load.afterLoad(() => {
11*c8dee2aaSAndroid Build Coastguard Worker    /**
12*c8dee2aaSAndroid Build Coastguard Worker     * publicExtension takes the number of rects and returns how
13*c8dee2aaSAndroid Build Coastguard Worker     * many of them have the point (5, 5) in them.
14*c8dee2aaSAndroid Build Coastguard Worker     * @param myRects
15*c8dee2aaSAndroid Build Coastguard Worker     * @ts publicExtension(myRects: InputFlattenedRectArray): void;
16*c8dee2aaSAndroid Build Coastguard Worker     */
17*c8dee2aaSAndroid Build Coastguard Worker    CanvasKit.publicExtension = (myRects: public_api.InputFlattenedRectArray) => {
18*c8dee2aaSAndroid Build Coastguard Worker      const rPtr = memory.copy1dArray(myRects, 'HEAPF32');
19*c8dee2aaSAndroid Build Coastguard Worker      const num = Module._privateExtension(rPtr, myRects.length / 4);
20*c8dee2aaSAndroid Build Coastguard Worker      memory.freeIfNecessary(rPtr, myRects);
21*c8dee2aaSAndroid Build Coastguard Worker      return num;
22*c8dee2aaSAndroid Build Coastguard Worker    };
23*c8dee2aaSAndroid Build Coastguard Worker
24*c8dee2aaSAndroid Build Coastguard Worker    CanvasKit.withObject = (obj: public_api.CompoundObj) => {
25*c8dee2aaSAndroid Build Coastguard Worker      obj.gamma ||= 1.0;
26*c8dee2aaSAndroid Build Coastguard Worker      Module._withObject(obj);
27*c8dee2aaSAndroid Build Coastguard Worker    };
28*c8dee2aaSAndroid Build Coastguard Worker  });
29*c8dee2aaSAndroid Build Coastguard Worker}
30