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