@workglow/util 0.2.16 → 0.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +54 -23
- package/dist/browser.js.map +7 -6
- package/dist/bun.js +54 -23
- package/dist/bun.js.map +7 -6
- package/dist/di/Container.d.ts +0 -3
- package/dist/di/Container.d.ts.map +1 -1
- package/dist/di/PortCodecRegistry.d.ts +14 -0
- package/dist/di/PortCodecRegistry.d.ts.map +1 -0
- package/dist/di/index.d.ts +1 -0
- package/dist/di/index.d.ts.map +1 -1
- package/dist/media/color.d.ts +3 -3
- package/dist/media/color.d.ts.map +1 -1
- package/dist/media/cpuImage.d.ts +29 -0
- package/dist/media/cpuImage.d.ts.map +1 -0
- package/dist/media/encode.d.ts +11 -0
- package/dist/media/encode.d.ts.map +1 -0
- package/dist/media/filterRegistry.d.ts +13 -0
- package/dist/media/filterRegistry.d.ts.map +1 -0
- package/dist/media/gpuDevice.browser.d.ts +8 -0
- package/dist/media/gpuDevice.browser.d.ts.map +1 -0
- package/dist/media/gpuImage.d.ts +50 -0
- package/dist/media/gpuImage.d.ts.map +1 -0
- package/dist/media/gpuImageSchema.d.ts +8 -0
- package/dist/media/gpuImageSchema.d.ts.map +1 -0
- package/dist/media/imageCacheCodec.d.ts +9 -0
- package/dist/media/imageCacheCodec.d.ts.map +1 -0
- package/dist/media/imageHydrationResolver.d.ts +2 -0
- package/dist/media/imageHydrationResolver.d.ts.map +1 -0
- package/dist/media/imageRasterCodecRegistry.d.ts.map +1 -1
- package/dist/media/previewBudget.d.ts +23 -0
- package/dist/media/previewBudget.d.ts.map +1 -0
- package/dist/media/shaderRegistry.browser.d.ts +13 -0
- package/dist/media/shaderRegistry.browser.d.ts.map +1 -0
- package/dist/media/sharpImage.bun.d.ts +7 -0
- package/dist/media/sharpImage.bun.d.ts.map +1 -0
- package/dist/media/sharpImage.node.d.ts +93 -0
- package/dist/media/sharpImage.node.d.ts.map +1 -0
- package/dist/media/texturePool.browser.d.ts +17 -0
- package/dist/media/texturePool.browser.d.ts.map +1 -0
- package/dist/media/webGpuImage.browser.d.ts +40 -0
- package/dist/media/webGpuImage.browser.d.ts.map +1 -0
- package/dist/media-browser.d.ts +18 -3
- package/dist/media-browser.d.ts.map +1 -1
- package/dist/media-browser.js +850 -404
- package/dist/media-browser.js.map +21 -7
- package/dist/media-node.d.ts +21 -2
- package/dist/media-node.d.ts.map +1 -1
- package/dist/media-node.js +695 -312
- package/dist/media-node.js.map +20 -6
- package/dist/node.js +54 -23
- package/dist/node.js.map +7 -6
- package/dist/worker/WorkerManager.d.ts +6 -6
- package/dist/worker/WorkerManager.d.ts.map +1 -1
- package/dist/worker/WorkerServerBase.d.ts +8 -8
- package/dist/worker/WorkerServerBase.d.ts.map +1 -1
- package/dist/worker-browser.js +54 -23
- package/dist/worker-browser.js.map +7 -6
- package/dist/worker-bun.js +54 -23
- package/dist/worker-bun.js.map +7 -6
- package/dist/worker-node.js +54 -23
- package/dist/worker-node.js.map +7 -6
- package/package.json +4 -1
- package/dist/media/Image.browser.d.ts +0 -24
- package/dist/media/Image.browser.d.ts.map +0 -1
- package/dist/media/Image.d.ts +0 -100
- package/dist/media/Image.d.ts.map +0 -1
package/dist/di/Container.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../src/di/Container.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,SAAS,CAAgB;IAEjC;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,UAAO,GAAG,IAAI,CAKnE;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,UAAO,GAAG,IAAI,CAK3E;IAED;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAGpD;IAED;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CA2BvB;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE1B;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI1B;IAED;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAyB7B;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3C;IAED;;;OAGG;IACH,oBAAoB,IAAI,SAAS,CAoBhC;CACF;
|
|
1
|
+
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../src/di/Container.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,SAAS,CAAgB;IAEjC;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,UAAO,GAAG,IAAI,CAKnE;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,UAAO,GAAG,IAAI,CAK3E;IAED;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAGpD;IAED;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CA2BvB;IAED;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE1B;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI1B;IAED;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAyB7B;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3C;IAED;;;OAGG;IACH,oBAAoB,IAAI,SAAS,CAoBhC;CACF;AAYD,eAAO,MAAM,eAAe,EAA+B,SAAS,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright
|
|
3
|
+
* Copyright 2026 Steven Roussey
|
|
4
|
+
* All Rights Reserved
|
|
5
|
+
*/
|
|
6
|
+
export interface PortCodec<Live = unknown, Wire = unknown> {
|
|
7
|
+
serialize(value: Live): Promise<Wire>;
|
|
8
|
+
deserialize(value: Wire): Promise<Live>;
|
|
9
|
+
}
|
|
10
|
+
export declare function registerPortCodec<Live = unknown, Wire = unknown>(formatPrefix: string, codec: PortCodec<Live, Wire>): void;
|
|
11
|
+
export declare function getPortCodec(format: string): PortCodec | undefined;
|
|
12
|
+
/** @internal — test affordance only. */
|
|
13
|
+
export declare function _resetPortCodecsForTests(): void;
|
|
14
|
+
//# sourceMappingURL=PortCodecRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortCodecRegistry.d.ts","sourceRoot":"","sources":["../../src/di/PortCodecRegistry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,SAAS,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO;IACvD,SAAS,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAeD,wBAAgB,iBAAiB,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EAC9D,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,GAC3B,IAAI,CAEN;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAQlE;AAED,wCAAwC;AACxC,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
|
package/dist/di/index.d.ts
CHANGED
package/dist/di/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/di/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/di/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
|
package/dist/media/color.d.ts
CHANGED
|
@@ -28,9 +28,9 @@ export declare function isColorObject(value: unknown): value is ColorObject;
|
|
|
28
28
|
/** Type guard for a hex color string (same regex as `parseHexColor`). */
|
|
29
29
|
export declare function isHexColor(value: unknown): value is string;
|
|
30
30
|
/**
|
|
31
|
-
* Normalize
|
|
32
|
-
* `a` to 255
|
|
33
|
-
* color
|
|
31
|
+
* Normalize any accepted wire form to a full {@link ColorObject}. Object inputs
|
|
32
|
+
* default `a` to 255; CSS `rgb(...)` / `rgba(...)` strings use 0-1 alpha.
|
|
33
|
+
* Throws on anything that's not an accepted color value.
|
|
34
34
|
*/
|
|
35
35
|
export declare function resolveColor(value: string | {
|
|
36
36
|
r: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/media/color.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/media/color.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AASD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CA+BtD;AAeD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAOjD;AAMD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAQlE;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE1D;AAqBD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9D,WAAW,CAcb"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright
|
|
3
|
+
* Copyright 2026 Steven Roussey
|
|
4
|
+
* All Rights Reserved
|
|
5
|
+
*/
|
|
6
|
+
import type { ImageBinary } from "./imageTypes";
|
|
7
|
+
import { type GpuImage as IGpuImage, type GpuImageEncodeFormat } from "./gpuImage";
|
|
8
|
+
export declare class CpuImage implements IGpuImage {
|
|
9
|
+
private readonly bin;
|
|
10
|
+
readonly backend: "cpu";
|
|
11
|
+
private _previewScale;
|
|
12
|
+
private constructor();
|
|
13
|
+
get width(): number;
|
|
14
|
+
get height(): number;
|
|
15
|
+
get channels(): ImageBinary["channels"];
|
|
16
|
+
get previewScale(): number;
|
|
17
|
+
/** @internal — only previewSource and ImageTextTask.executePreview (without-
|
|
18
|
+
* background source case) may call this. */
|
|
19
|
+
_setPreviewScale(scale: number): this;
|
|
20
|
+
materialize(): Promise<ImageBinary>;
|
|
21
|
+
/** @internal — synchronous accessor used by per-filter cpu ops to avoid awaiting materialize(). */
|
|
22
|
+
getBinary(): ImageBinary;
|
|
23
|
+
toCanvas(canvas: HTMLCanvasElement | OffscreenCanvas): Promise<void>;
|
|
24
|
+
encode(format: GpuImageEncodeFormat, _quality?: number): Promise<Uint8Array>;
|
|
25
|
+
retain(_n?: number): this;
|
|
26
|
+
release(): void;
|
|
27
|
+
static fromImageBinary(bin: ImageBinary, previewScale?: number): CpuImage;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=cpuImage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cpuImage.d.ts","sourceRoot":"","sources":["../../src/media/cpuImage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAEL,KAAK,QAAQ,IAAI,SAAS,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,YAAY,CAAC;AAyCpB,qBAAa,QAAS,YAAW,SAAS;IAKpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAJxC,QAAQ,CAAC,OAAO,EAAG,KAAK,CAAU;IAElC,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,eAEN;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,QAAQ,IAAI,WAAW,CAAC,UAAU,CAAC,CAEtC;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;iDAC6C;IAC7C,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGpC;IAEK,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAExC;IAED,mGAAmG;IACnG,SAAS,IAAI,WAAW,CAEvB;IAEK,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAczE;IAEK,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAIjF;IAED,MAAM,CAAC,EAAE,GAAE,MAAU,GAAG,IAAI,CAG3B;IAED,OAAO,IAAI,IAAI,CAEd;IAED,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,YAAY,GAAE,MAAY,GAAG,QAAQ,CAE7E;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright
|
|
3
|
+
* Copyright 2026 Steven Roussey
|
|
4
|
+
* All Rights Reserved
|
|
5
|
+
*/
|
|
6
|
+
import type { ImageBinary } from "./imageTypes";
|
|
7
|
+
export declare function encodeImageBinaryToPng(bin: ImageBinary): Promise<Uint8Array>;
|
|
8
|
+
export declare function imageBinaryToBase64Png(bin: ImageBinary): Promise<string>;
|
|
9
|
+
export declare function imageBinaryToDataUri(bin: ImageBinary, mimeType?: string): Promise<string>;
|
|
10
|
+
export declare function imageBinaryToBlob(bin: ImageBinary, mimeType?: string): Promise<Blob>;
|
|
11
|
+
//# sourceMappingURL=encode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../../src/media/encode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAYhD,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAElF;AAED,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAG9E;AAED,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,SAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAEpG;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,SAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/F"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type { GpuImage, GpuImageBackend } from "./gpuImage";
|
|
7
|
+
export type FilterOpFn<P = unknown> = (image: GpuImage, params: P) => GpuImage;
|
|
8
|
+
export declare function registerFilterOp<P>(backend: GpuImageBackend, filter: string, fn: FilterOpFn<P>): void;
|
|
9
|
+
export declare function applyFilter<P>(image: GpuImage, filter: string, params: P): GpuImage;
|
|
10
|
+
export declare function hasFilterOp(backend: GpuImageBackend, filter: string): boolean;
|
|
11
|
+
/** @internal — test affordance only. */
|
|
12
|
+
export declare function _resetFilterRegistryForTests(): void;
|
|
13
|
+
//# sourceMappingURL=filterRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterRegistry.d.ts","sourceRoot":"","sources":["../../src/media/filterRegistry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,KAAK,QAAQ,CAAC;AAqB/E,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAChB,IAAI,CAEN;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAUnF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7E;AAED,wCAAwC;AACxC,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpuDevice.browser.d.ts","sourceRoot":"","sources":["../../src/media/gpuDevice.browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,wBAAsB,YAAY,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAa9D;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright
|
|
3
|
+
* Copyright 2026 Steven Roussey
|
|
4
|
+
* All Rights Reserved
|
|
5
|
+
*/
|
|
6
|
+
import type { ImageBinary, ImageChannels } from "./imageTypes";
|
|
7
|
+
export type GpuImageBackend = "webgpu" | "sharp" | "cpu";
|
|
8
|
+
export type GpuImageEncodeFormat = "png" | "jpeg" | "webp";
|
|
9
|
+
export interface GpuImage {
|
|
10
|
+
readonly width: number;
|
|
11
|
+
readonly height: number;
|
|
12
|
+
readonly channels: ImageChannels;
|
|
13
|
+
readonly backend: GpuImageBackend;
|
|
14
|
+
/** Ratio of current dims to user's intended (pre-preview-downscale) dims.
|
|
15
|
+
* 1.0 in run mode and any image not derived from a previewSource downscale.
|
|
16
|
+
* < 1.0 after previewSource has fired. Pixel-space task params are
|
|
17
|
+
* multiplied by this before dispatch in preview mode (no-op at 1.0). */
|
|
18
|
+
readonly previewScale: number;
|
|
19
|
+
materialize(): Promise<ImageBinary>;
|
|
20
|
+
toCanvas(canvas: HTMLCanvasElement | OffscreenCanvas): Promise<void>;
|
|
21
|
+
encode(format: GpuImageEncodeFormat, quality?: number): Promise<Uint8Array>;
|
|
22
|
+
/**
|
|
23
|
+
* Increment the refcount by `n` (default 1). Returns `this` for chaining.
|
|
24
|
+
* No-op for backends without external resource lifetime (CpuImage, SharpImage).
|
|
25
|
+
* Throws if the resource has already been reclaimed (count was already 0).
|
|
26
|
+
*/
|
|
27
|
+
retain(n?: number): this;
|
|
28
|
+
/**
|
|
29
|
+
* Decrement the refcount by 1. When it hits 0, reclaim the underlying resource
|
|
30
|
+
* (e.g., return the GPU texture to the pool). Throws on release-after-reclaim.
|
|
31
|
+
* No-op for backends without external resource lifetime.
|
|
32
|
+
*/
|
|
33
|
+
release(): void;
|
|
34
|
+
}
|
|
35
|
+
export interface GpuImageStatic {
|
|
36
|
+
fromImageBinary(bin: ImageBinary): GpuImage;
|
|
37
|
+
fromImageBinaryAsync?(bin: ImageBinary): Promise<GpuImage>;
|
|
38
|
+
fromDataUri(dataUri: string): Promise<GpuImage>;
|
|
39
|
+
fromBlob(blob: Blob): Promise<GpuImage>;
|
|
40
|
+
fromImageBitmap?(bitmap: ImageBitmap): Promise<GpuImage>;
|
|
41
|
+
}
|
|
42
|
+
export declare function registerGpuImageFactory<K extends keyof GpuImageStatic>(key: K, fn: GpuImageStatic[K]): void;
|
|
43
|
+
/**
|
|
44
|
+
* Returns the registered factory function for `key`, or `undefined` if it
|
|
45
|
+
* has not been registered. Prefer this over accessing `GpuImage[key]` directly
|
|
46
|
+
* when the factory is optional — the Proxy throws on missing registrations.
|
|
47
|
+
*/
|
|
48
|
+
export declare function getGpuImageFactory<K extends keyof GpuImageStatic>(key: K): GpuImageStatic[K] | undefined;
|
|
49
|
+
export declare const GpuImage: GpuImageStatic;
|
|
50
|
+
//# sourceMappingURL=gpuImage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpuImage.d.ts","sourceRoot":"","sources":["../../src/media/gpuImage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AACzD,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC;;;6EAGyE;IACzE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5E;;;;OAIG;IACH,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;OAIG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC5C,oBAAoB,CAAC,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChD,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,eAAe,CAAC,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC1D;AAaD,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,cAAc,EACpE,GAAG,EAAE,CAAC,EACN,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,GACpB,IAAI,CAEN;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,cAAc,EAC/D,GAAG,EAAE,CAAC,GACL,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAG/B;AAED,eAAO,MAAM,QAAQ,EAAE,cASrB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright
|
|
3
|
+
* Copyright 2026 Steven Roussey
|
|
4
|
+
* All Rights Reserved
|
|
5
|
+
*/
|
|
6
|
+
import type { DataPortSchema } from "../json-schema/DataPortSchema";
|
|
7
|
+
export declare function GpuImageSchema(annotations?: Record<string, unknown>): DataPortSchema;
|
|
8
|
+
//# sourceMappingURL=gpuImageSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpuImageSchema.d.ts","sourceRoot":"","sources":["../../src/media/gpuImageSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,wBAAgB,cAAc,CAAC,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,cAAc,CAyBxF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imageCacheCodec.d.ts","sourceRoot":"","sources":["../../src/media/imageCacheCodec.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,cAAc,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,iBAAiB,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imageHydrationResolver.d.ts","sourceRoot":"","sources":["../../src/media/imageHydrationResolver.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageRasterCodecRegistry.d.ts","sourceRoot":"","sources":["../../src/media/imageRasterCodecRegistry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACrD,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACtE;
|
|
1
|
+
{"version":3,"file":"imageRasterCodecRegistry.d.ts","sourceRoot":"","sources":["../../src/media/imageRasterCodecRegistry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACrD,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACtE;AAeD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAErE;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAOtD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright
|
|
3
|
+
* Copyright 2026 Steven Roussey
|
|
4
|
+
* All Rights Reserved
|
|
5
|
+
*/
|
|
6
|
+
import type { GpuImage } from "./gpuImage";
|
|
7
|
+
export type PreviewResizeFn = (image: GpuImage, w: number, h: number) => GpuImage;
|
|
8
|
+
export declare function registerPreviewResizeFn(fn: PreviewResizeFn): void;
|
|
9
|
+
export declare function getPreviewBudget(): number;
|
|
10
|
+
export declare function setPreviewBudget(px: number): void;
|
|
11
|
+
/**
|
|
12
|
+
* Scale-then-effect entry for `executePreview`. Returns a downscaled image
|
|
13
|
+
* when the input's longer edge exceeds the budget AND the backend benefits
|
|
14
|
+
* (webgpu only). Otherwise returns the input unchanged — referential
|
|
15
|
+
* equality is the signal to callers that no transient was created.
|
|
16
|
+
*
|
|
17
|
+
* Calling code that wants downscale must call `registerPreviewResizeFn` at
|
|
18
|
+
* startup with a callback that performs the resize (typically routed through
|
|
19
|
+
* @workglow/tasks's applyFilter). Without registration, previewSource is
|
|
20
|
+
* a no-op even on webgpu inputs.
|
|
21
|
+
*/
|
|
22
|
+
export declare function previewSource(image: GpuImage): GpuImage;
|
|
23
|
+
//# sourceMappingURL=previewBudget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"previewBudget.d.ts","sourceRoot":"","sources":["../../src/media/previewBudget.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiB3C,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,QAAQ,CAAC;AAQlF,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAEjE;AAMD,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAKjD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAcvD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright
|
|
3
|
+
* Copyright 2026 Steven Roussey
|
|
4
|
+
* All Rights Reserved
|
|
5
|
+
*/
|
|
6
|
+
export declare const VERTEX_PRELUDE = "\n@group(0) @binding(0) var src: texture_2d<f32>;\n@group(0) @binding(1) var src_sampler: sampler;\n\nstruct VsOut {\n @builtin(position) pos: vec4f,\n @location(0) uv: vec2f,\n};\n\n@vertex\nfn vs(@builtin(vertex_index) vid: u32) -> VsOut {\n let xy = vec2f(f32((vid << 1u) & 2u), f32(vid & 2u));\n var out: VsOut;\n out.pos = vec4f(xy * 2.0 - 1.0, 0.0, 1.0);\n out.uv = vec2f(xy.x, 1.0 - xy.y);\n return out;\n}";
|
|
7
|
+
export declare const PASSTHROUGH_SHADER_SRC = "\n@group(0) @binding(0) var src: texture_2d<f32>;\n@group(0) @binding(1) var src_sampler: sampler;\n\nstruct VsOut {\n @builtin(position) pos: vec4f,\n @location(0) uv: vec2f,\n};\n\n@vertex\nfn vs(@builtin(vertex_index) vid: u32) -> VsOut {\n let xy = vec2f(f32((vid << 1u) & 2u), f32(vid & 2u));\n var out: VsOut;\n out.pos = vec4f(xy * 2.0 - 1.0, 0.0, 1.0);\n out.uv = vec2f(xy.x, 1.0 - xy.y);\n return out;\n}\n@fragment\nfn fs(in: VsOut) -> @location(0) vec4f {\n return textureSample(src, src_sampler, in.uv);\n}\n";
|
|
8
|
+
export interface ShaderCache {
|
|
9
|
+
get(source: string): GPUShaderModule;
|
|
10
|
+
}
|
|
11
|
+
export declare function createShaderCache(device: GPUDevice): ShaderCache;
|
|
12
|
+
export declare function getShaderCache(device: GPUDevice): ShaderCache;
|
|
13
|
+
//# sourceMappingURL=shaderRegistry.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shaderRegistry.browser.d.ts","sourceRoot":"","sources":["../../src/media/shaderRegistry.browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,cAAc,0aAgBzB,CAAC;AAGH,eAAO,MAAM,sBAAsB,shBAKlC,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC;CACtC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,CAYhE;AAID,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,CAK7D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharpImage.bun.d.ts","sourceRoot":"","sources":["../../src/media/sharpImage.bun.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright
|
|
3
|
+
* Copyright 2026 Steven Roussey
|
|
4
|
+
* All Rights Reserved
|
|
5
|
+
*/
|
|
6
|
+
import type { ImageBinary, ImageChannels } from "./imageTypes";
|
|
7
|
+
import type { GpuImage as IGpuImage, GpuImageEncodeFormat } from "./gpuImage";
|
|
8
|
+
type Sharp = {
|
|
9
|
+
clone(): Sharp;
|
|
10
|
+
flip(): Sharp;
|
|
11
|
+
flop(): Sharp;
|
|
12
|
+
blur(sigma: number): Sharp;
|
|
13
|
+
grayscale(grayscale?: boolean): Sharp;
|
|
14
|
+
negate(options?: {
|
|
15
|
+
alpha?: boolean;
|
|
16
|
+
}): Sharp;
|
|
17
|
+
recomb(matrix: number[][]): Sharp;
|
|
18
|
+
linear(a: number, b: number): Sharp;
|
|
19
|
+
threshold(threshold: number, options?: {
|
|
20
|
+
grayscale?: boolean;
|
|
21
|
+
}): Sharp;
|
|
22
|
+
tint(rgb: {
|
|
23
|
+
r: number;
|
|
24
|
+
g: number;
|
|
25
|
+
b: number;
|
|
26
|
+
}): Sharp;
|
|
27
|
+
ensureAlpha(alpha?: number): Sharp;
|
|
28
|
+
extend(options: {
|
|
29
|
+
top?: number;
|
|
30
|
+
bottom?: number;
|
|
31
|
+
left?: number;
|
|
32
|
+
right?: number;
|
|
33
|
+
background?: unknown;
|
|
34
|
+
}): Sharp;
|
|
35
|
+
extract(region: {
|
|
36
|
+
left: number;
|
|
37
|
+
top: number;
|
|
38
|
+
width: number;
|
|
39
|
+
height: number;
|
|
40
|
+
}): Sharp;
|
|
41
|
+
rotate(angle?: number, options?: {
|
|
42
|
+
background?: unknown;
|
|
43
|
+
}): Sharp;
|
|
44
|
+
resize(width?: number | null, height?: number | null, options?: {
|
|
45
|
+
kernel?: string;
|
|
46
|
+
fit?: string;
|
|
47
|
+
background?: unknown;
|
|
48
|
+
}): Sharp;
|
|
49
|
+
raw(): Sharp;
|
|
50
|
+
png(opts?: unknown): Sharp;
|
|
51
|
+
jpeg(opts?: unknown): Sharp;
|
|
52
|
+
webp(opts?: unknown): Sharp;
|
|
53
|
+
metadata(): Promise<{
|
|
54
|
+
width?: number;
|
|
55
|
+
height?: number;
|
|
56
|
+
channels?: number;
|
|
57
|
+
}>;
|
|
58
|
+
toBuffer(opts?: unknown): Promise<Buffer | {
|
|
59
|
+
data: Buffer;
|
|
60
|
+
info: {
|
|
61
|
+
width: number;
|
|
62
|
+
height: number;
|
|
63
|
+
channels: number;
|
|
64
|
+
};
|
|
65
|
+
}>;
|
|
66
|
+
};
|
|
67
|
+
export declare class SharpImage implements IGpuImage {
|
|
68
|
+
private pipeline;
|
|
69
|
+
readonly width: number;
|
|
70
|
+
readonly height: number;
|
|
71
|
+
readonly channels: ImageChannels;
|
|
72
|
+
readonly backend: "sharp";
|
|
73
|
+
private _previewScale;
|
|
74
|
+
private constructor();
|
|
75
|
+
get previewScale(): number;
|
|
76
|
+
/** @internal — only previewSource and ImageTextTask.executePreview (without-
|
|
77
|
+
* background source case) may call this. */
|
|
78
|
+
_setPreviewScale(scale: number): this;
|
|
79
|
+
static fromImageBinary(bin: ImageBinary, previewScale?: number): Promise<SharpImage>;
|
|
80
|
+
static fromBuffer(buf: Buffer): Promise<SharpImage>;
|
|
81
|
+
apply(op: (p: Sharp) => Sharp, outSize?: {
|
|
82
|
+
width: number;
|
|
83
|
+
height: number;
|
|
84
|
+
channels?: ImageChannels;
|
|
85
|
+
}): SharpImage;
|
|
86
|
+
materialize(): Promise<ImageBinary>;
|
|
87
|
+
toCanvas(_canvas: HTMLCanvasElement | OffscreenCanvas): Promise<void>;
|
|
88
|
+
encode(format: GpuImageEncodeFormat, quality?: number): Promise<Uint8Array>;
|
|
89
|
+
retain(_n?: number): this;
|
|
90
|
+
release(): void;
|
|
91
|
+
}
|
|
92
|
+
export {};
|
|
93
|
+
//# sourceMappingURL=sharpImage.node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharpImage.node.d.ts","sourceRoot":"","sources":["../../src/media/sharpImage.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright
|
|
3
|
+
* Copyright 2026 Steven Roussey
|
|
4
|
+
* All Rights Reserved
|
|
5
|
+
*/
|
|
6
|
+
export interface TexturePoolOptions {
|
|
7
|
+
capacityPerSize?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface TexturePool {
|
|
10
|
+
acquire(width: number, height: number, format: GPUTextureFormat): GPUTexture;
|
|
11
|
+
release(texture: GPUTexture): void;
|
|
12
|
+
drain(): void;
|
|
13
|
+
}
|
|
14
|
+
export declare function createTexturePool(device: GPUDevice, opts?: TexturePoolOptions): TexturePool;
|
|
15
|
+
export declare function getTexturePool(device: GPUDevice): TexturePool;
|
|
16
|
+
export declare function resetTexturePoolForTests(): void;
|
|
17
|
+
//# sourceMappingURL=texturePool.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texturePool.browser.d.ts","sourceRoot":"","sources":["../../src/media/texturePool.browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAAC;IAC7E,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,KAAK,IAAI,IAAI,CAAC;CACf;AAaD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,GAAE,kBAAuB,GAAG,WAAW,CAuD/F;AAID,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,CAM7D;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright
|
|
3
|
+
* Copyright 2026 Steven Roussey
|
|
4
|
+
* All Rights Reserved
|
|
5
|
+
*/
|
|
6
|
+
import type { ImageBinary, ImageChannels } from "./imageTypes";
|
|
7
|
+
import type { GpuImage as IGpuImage, GpuImageEncodeFormat } from "./gpuImage";
|
|
8
|
+
export interface ApplyParams {
|
|
9
|
+
shader: string;
|
|
10
|
+
uniforms: ArrayBuffer | undefined;
|
|
11
|
+
outSize?: {
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export declare class WebGpuImage implements IGpuImage {
|
|
17
|
+
private device;
|
|
18
|
+
private texture;
|
|
19
|
+
readonly width: number;
|
|
20
|
+
readonly height: number;
|
|
21
|
+
readonly backend: "webgpu";
|
|
22
|
+
readonly channels: ImageChannels;
|
|
23
|
+
/** Internal refcount. Initialized to 1 in fromImageBinary/apply. Reclaim at 0. */
|
|
24
|
+
private refcount;
|
|
25
|
+
private _previewScale;
|
|
26
|
+
private constructor();
|
|
27
|
+
get previewScale(): number;
|
|
28
|
+
/** @internal — only previewSource and ImageTextTask.executePreview (without-
|
|
29
|
+
* background source case) may call this. Mutates previewScale on this
|
|
30
|
+
* instance and returns this for chaining. */
|
|
31
|
+
_setPreviewScale(scale: number): this;
|
|
32
|
+
static fromImageBinary(bin: ImageBinary): Promise<WebGpuImage>;
|
|
33
|
+
apply(params: ApplyParams): WebGpuImage;
|
|
34
|
+
materialize(): Promise<ImageBinary>;
|
|
35
|
+
toCanvas(canvas: HTMLCanvasElement | OffscreenCanvas): Promise<void>;
|
|
36
|
+
encode(format: GpuImageEncodeFormat, quality?: number): Promise<Uint8Array>;
|
|
37
|
+
retain(n?: number): this;
|
|
38
|
+
release(): void;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=webGpuImage.browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webGpuImage.browser.d.ts","sourceRoot":"","sources":["../../src/media/webGpuImage.browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,IAAI,SAAS,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAa9E,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AA6BD,qBAAa,WAAY,YAAW,SAAS;IAUzC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAZzB,QAAQ,CAAC,OAAO,EAAG,QAAQ,CAAU;IACrC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAK;IAErC,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAK;IAErB,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,eAeN;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;kDAE8C;IAC9C,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGpC;IAED,OAAa,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAYnE;IAED,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAkDtC;IAEK,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CA4BxC;IAEK,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCzE;IAEK,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAWhF;IAED,MAAM,CAAC,CAAC,GAAE,MAAU,GAAG,IAAI,CAM1B;IAED,OAAO,IAAI,IAAI,CAYd;CACF"}
|
package/dist/media-browser.d.ts
CHANGED
|
@@ -3,10 +3,25 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
import "./media/imageCacheCodec";
|
|
7
|
+
import "./media/imageHydrationResolver";
|
|
7
8
|
export * from "./media/color";
|
|
9
|
+
export { CpuImage } from "./media/cpuImage";
|
|
10
|
+
export { encodeImageBinaryToPng, imageBinaryToBase64Png, imageBinaryToBlob, imageBinaryToDataUri, } from "./media/encode";
|
|
11
|
+
export { _resetFilterRegistryForTests, applyFilter, hasFilterOp, registerFilterOp, } from "./media/filterRegistry";
|
|
12
|
+
export type { FilterOpFn } from "./media/filterRegistry";
|
|
13
|
+
export { getGpuDevice, resetGpuDeviceForTests } from "./media/gpuDevice.browser";
|
|
14
|
+
export { getGpuImageFactory, GpuImage as GpuImageFactory, registerGpuImageFactory, } from "./media/gpuImage";
|
|
15
|
+
export type { GpuImage, GpuImageBackend, GpuImageEncodeFormat, GpuImageStatic, } from "./media/gpuImage";
|
|
16
|
+
export { GpuImageSchema } from "./media/gpuImageSchema";
|
|
8
17
|
export * from "./media/imageRasterCodecRegistry";
|
|
18
|
+
export * from "./media/imageTypes";
|
|
9
19
|
export * from "./media/MediaRawImage";
|
|
10
|
-
export
|
|
11
|
-
export
|
|
20
|
+
export { getPreviewBudget, previewSource, registerPreviewResizeFn, setPreviewBudget, } from "./media/previewBudget";
|
|
21
|
+
export { createShaderCache, getShaderCache, PASSTHROUGH_SHADER_SRC, VERTEX_PRELUDE, } from "./media/shaderRegistry.browser";
|
|
22
|
+
export type { ShaderCache } from "./media/shaderRegistry.browser";
|
|
23
|
+
export { createTexturePool, getTexturePool, resetTexturePoolForTests, } from "./media/texturePool.browser";
|
|
24
|
+
export type { TexturePool, TexturePoolOptions } from "./media/texturePool.browser";
|
|
25
|
+
export { WebGpuImage } from "./media/webGpuImage.browser";
|
|
26
|
+
export type { ApplyParams } from "./media/webGpuImage.browser";
|
|
12
27
|
//# sourceMappingURL=media-browser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-browser.d.ts","sourceRoot":"","sources":["../src/media-browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,
|
|
1
|
+
{"version":3,"file":"media-browser.d.ts","sourceRoot":"","sources":["../src/media-browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,yBAAyB,CAAC;AACjC,OAAO,gCAAgC,CAAC;AAExC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,4BAA4B,EAC5B,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EACL,kBAAkB,EAClB,QAAQ,IAAI,eAAe,EAC3B,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,QAAQ,EACR,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC"}
|