@taole/giftstage 0.1.28 → 0.1.30
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/README.md +89 -36
- package/dist/core/audio-manager.d.ts +19 -0
- package/dist/core/gift-stage.d.ts +117 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/post-animator.d.ts +43 -0
- package/dist/core/render-manager.d.ts +99 -0
- package/dist/core/webcodecs-video-atlas.d.ts +30 -0
- package/dist/gift-stage.cjs.js +225 -225
- package/dist/gift-stage.es.js +2537 -2062
- package/dist/gpu/detect.d.ts +2 -0
- package/dist/gpu/gl-utils.d.ts +10 -0
- package/dist/gpu/index.d.ts +3 -0
- package/dist/gpu/webgl1-backend.d.ts +43 -0
- package/dist/gpu/webgl2-backend.d.ts +69 -0
- package/dist/gpu/webgpu-backend.d.ts +155 -0
- package/dist/index.d.ts +27 -0
- package/dist/parsers/atlas-builder.d.ts +37 -0
- package/dist/parsers/atlas-packing.d.ts +31 -0
- package/dist/parsers/index.d.ts +7 -0
- package/dist/parsers/inflate-js.d.ts +37 -0
- package/dist/parsers/svga-image-decode-worker-client.d.ts +14 -0
- package/dist/parsers/svga-parser-worker-client.d.ts +31 -0
- package/dist/parsers/svga-parser.d.ts +49 -0
- package/dist/parsers/svga-proto-js.d.ts +7 -0
- package/dist/parsers/svga-sprite-table-binary.d.ts +36 -0
- package/dist/parsers/svga-sprite-table.d.ts +59 -0
- package/dist/parsers/svga-worker-payload-binary.d.ts +10 -0
- package/dist/parsers/vap-config-parser.d.ts +20 -0
- package/dist/renderers/alpha-video-renderer.d.ts +48 -0
- package/dist/renderers/image-renderer.d.ts +13 -0
- package/dist/renderers/index.d.ts +4 -0
- package/dist/renderers/svga-batch-renderer.d.ts +113 -0
- package/dist/renderers/vap-renderer.d.ts +58 -0
- package/dist/renderers/vertex-builder.d.ts +5 -0
- package/dist/shaders/index.d.ts +49 -0
- package/dist/types/index.d.ts +699 -0
- package/dist/utils/abort.d.ts +3 -0
- package/dist/utils/atlas-constants.d.ts +9 -0
- package/dist/utils/buffer-pool.d.ts +14 -0
- package/dist/utils/canvas-dpr.d.ts +37 -0
- package/dist/utils/clip-mesh.d.ts +6 -0
- package/dist/utils/detect.d.ts +7 -0
- package/dist/utils/easing.d.ts +7 -0
- package/dist/utils/frame-budget.d.ts +36 -0
- package/dist/utils/gift-object-fit.d.ts +14 -0
- package/dist/utils/gift-position.d.ts +5 -0
- package/dist/utils/gift-size.d.ts +11 -0
- package/dist/utils/gift-transform.d.ts +29 -0
- package/dist/utils/html-video-upload-gate.d.ts +35 -0
- package/dist/utils/image-source.d.ts +9 -0
- package/dist/utils/math.d.ts +9 -0
- package/dist/utils/resource-cache.d.ts +20 -0
- package/dist/utils/slot-content.d.ts +17 -0
- package/dist/utils/svg-path-parser.d.ts +11 -0
- package/dist/utils/svga-binary-cache.d.ts +26 -0
- package/dist/utils/svga-work-scheduler.d.ts +7 -0
- package/dist/utils/triangulate.d.ts +11 -0
- package/dist/utils/utf8.d.ts +2 -0
- package/dist/utils/vap-mix-composer.d.ts +26 -0
- package/dist/utils/wc-atlas-upload-size.d.ts +9 -0
- package/dist/video/mp4box-loader.d.ts +2 -0
- package/dist/video/webcodecs-mp4-core.d.ts +49 -0
- package/dist/video/webcodecs-mp4-playback.d.ts +71 -0
- package/dist/video/webcodecs-mp4.worker.d.ts +18 -0
- package/dist/wasm/wasm-bridge.d.ts +36 -0
- package/dist/workers/parser-worker.d.ts +13 -0
- package/dist/workers/svga-atlas-worker-client.d.ts +25 -0
- package/dist/workers/svga-atlas-worker.d.ts +37 -0
- package/dist/workers/svga-clip-worker-client.d.ts +6 -0
- package/dist/workers/svga-clip-worker.d.ts +17 -0
- package/dist/workers/svga-image-decode-worker.d.ts +19 -0
- package/dist/workers/vertex-worker.d.ts +15 -0
- package/dist/workers/worker-scheduler.d.ts +19 -0
- package/package.json +7 -5
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ClipMeshData } from '../utils/clip-mesh';
|
|
2
|
+
export declare function canUseSVGAClipWorker(): boolean;
|
|
3
|
+
export declare function requestSVGAClipMeshesInWorker(paths: string[], options?: {
|
|
4
|
+
workerTimeSliceMs?: number;
|
|
5
|
+
signal?: AbortSignal;
|
|
6
|
+
}): Promise<Map<string, ClipMeshData | null>>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface SVGAClipWorkerRequest {
|
|
2
|
+
type: 'build-svga-clip-meshes';
|
|
3
|
+
id: number;
|
|
4
|
+
paths: string[];
|
|
5
|
+
workerTimeSliceMs?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface SVGAClipWorkerEntry {
|
|
8
|
+
path: string;
|
|
9
|
+
vertices: Float32Array | null;
|
|
10
|
+
indices: Uint32Array | null;
|
|
11
|
+
}
|
|
12
|
+
export interface SVGAClipWorkerResponse {
|
|
13
|
+
type: 'build-svga-clip-meshes-result';
|
|
14
|
+
id: number;
|
|
15
|
+
entries?: SVGAClipWorkerEntry[];
|
|
16
|
+
error?: string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface DecodeBatchRequest {
|
|
2
|
+
type: 'decode-batch';
|
|
3
|
+
id: number;
|
|
4
|
+
items: Array<{
|
|
5
|
+
key: string;
|
|
6
|
+
data: ArrayBuffer;
|
|
7
|
+
}>;
|
|
8
|
+
workerTimeSliceMs?: number;
|
|
9
|
+
maxConcurrency?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface DecodeBatchResult {
|
|
12
|
+
type: 'decode-batch-result';
|
|
13
|
+
id: number;
|
|
14
|
+
results: Array<{
|
|
15
|
+
key: string;
|
|
16
|
+
bitmap?: ImageBitmap;
|
|
17
|
+
error?: string;
|
|
18
|
+
}>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface VertexWorkerRequest {
|
|
2
|
+
type: 'build-vertices';
|
|
3
|
+
id: number;
|
|
4
|
+
frameData: Float32Array;
|
|
5
|
+
vertexBuffer: Float32Array;
|
|
6
|
+
indexBuffer: Uint32Array;
|
|
7
|
+
useShared: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface VertexWorkerResponse {
|
|
10
|
+
type: 'build-vertices-result';
|
|
11
|
+
id: number;
|
|
12
|
+
spriteCount: number;
|
|
13
|
+
vertexBuffer?: Float32Array;
|
|
14
|
+
indexBuffer?: Uint32Array;
|
|
15
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare function normalizeWorkerTimeSliceMs(value: number | undefined): number;
|
|
2
|
+
export declare function normalizeWorkerConcurrency(value: number | undefined, fallback?: number, maximum?: number): number;
|
|
3
|
+
export declare function adaptWorkerConcurrency(current: number, maximum: number, batchMs: number, timeSliceMs: number): number;
|
|
4
|
+
export declare class WorkerTimeSlicer {
|
|
5
|
+
private readonly maxSliceMs;
|
|
6
|
+
private sliceStartedAt;
|
|
7
|
+
constructor(maxSliceMs?: number);
|
|
8
|
+
checkpoint(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Worker message handlers are async. This queue prevents a later request from
|
|
12
|
+
* continuing while an earlier request is suspended at an await boundary.
|
|
13
|
+
*/
|
|
14
|
+
export declare class WorkerTaskQueue {
|
|
15
|
+
private running;
|
|
16
|
+
private readonly tasks;
|
|
17
|
+
push(task: () => Promise<void>): void;
|
|
18
|
+
private drain;
|
|
19
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taole/giftstage",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "High-performance WebGPU/
|
|
3
|
+
"version": "0.1.30",
|
|
4
|
+
"description": "High-performance WebGPU/WebGL gift animation player unifying SVGA, VAP, AlphaVideo, and images",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/gift-stage.cjs.js",
|
|
7
7
|
"module": "dist/gift-stage.es.js",
|
|
@@ -20,12 +20,13 @@
|
|
|
20
20
|
"files": [
|
|
21
21
|
"dist",
|
|
22
22
|
"!dist/**/*.map",
|
|
23
|
-
"!dist/bundle-report.*.html"
|
|
23
|
+
"!dist/bundle-report.*.html",
|
|
24
|
+
"!dist/fixtures/**"
|
|
24
25
|
],
|
|
25
26
|
"scripts": {
|
|
26
27
|
"dev": "vite",
|
|
27
|
-
"build": "tsc --noEmit && vite build",
|
|
28
|
-
"build:analyze": "tsc --noEmit && vite build --mode analyze-es && vite build --mode analyze-cjs",
|
|
28
|
+
"build": "tsc --noEmit && vite build && tsc -p tsconfig.build.json",
|
|
29
|
+
"build:analyze": "tsc --noEmit && vite build --mode analyze-es && vite build --mode analyze-cjs && tsc -p tsconfig.build.json",
|
|
29
30
|
"build:demo": "tsc --noEmit && vite build --config vite.demo.config.ts && node -e \"const fs=require('fs'); fs.mkdirSync('dist-demo/static',{recursive:true}); fs.copyFileSync('static/vap.min.js','dist-demo/static/vap.min.js');\"",
|
|
30
31
|
"build:wasm": "echo \"Requires: cargo install wasm-pack\" && cd wasm && wasm-pack build --target web --out-dir pkg",
|
|
31
32
|
"test": "vitest run",
|
|
@@ -58,6 +59,7 @@
|
|
|
58
59
|
"svga",
|
|
59
60
|
"vap",
|
|
60
61
|
"alpha-video",
|
|
62
|
+
"image",
|
|
61
63
|
"webgl",
|
|
62
64
|
"webgpu",
|
|
63
65
|
"animation",
|