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