@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.
Files changed (74) hide show
  1. package/README.md +89 -36
  2. package/dist/core/audio-manager.d.ts +19 -0
  3. package/dist/core/gift-stage.d.ts +117 -0
  4. package/dist/core/index.d.ts +4 -0
  5. package/dist/core/post-animator.d.ts +43 -0
  6. package/dist/core/render-manager.d.ts +99 -0
  7. package/dist/core/webcodecs-video-atlas.d.ts +30 -0
  8. package/dist/gift-stage.cjs.js +225 -225
  9. package/dist/gift-stage.es.js +2537 -2062
  10. package/dist/gpu/detect.d.ts +2 -0
  11. package/dist/gpu/gl-utils.d.ts +10 -0
  12. package/dist/gpu/index.d.ts +3 -0
  13. package/dist/gpu/webgl1-backend.d.ts +43 -0
  14. package/dist/gpu/webgl2-backend.d.ts +69 -0
  15. package/dist/gpu/webgpu-backend.d.ts +155 -0
  16. package/dist/index.d.ts +27 -0
  17. package/dist/parsers/atlas-builder.d.ts +37 -0
  18. package/dist/parsers/atlas-packing.d.ts +31 -0
  19. package/dist/parsers/index.d.ts +7 -0
  20. package/dist/parsers/inflate-js.d.ts +37 -0
  21. package/dist/parsers/svga-image-decode-worker-client.d.ts +14 -0
  22. package/dist/parsers/svga-parser-worker-client.d.ts +31 -0
  23. package/dist/parsers/svga-parser.d.ts +49 -0
  24. package/dist/parsers/svga-proto-js.d.ts +7 -0
  25. package/dist/parsers/svga-sprite-table-binary.d.ts +36 -0
  26. package/dist/parsers/svga-sprite-table.d.ts +59 -0
  27. package/dist/parsers/svga-worker-payload-binary.d.ts +10 -0
  28. package/dist/parsers/vap-config-parser.d.ts +20 -0
  29. package/dist/renderers/alpha-video-renderer.d.ts +48 -0
  30. package/dist/renderers/image-renderer.d.ts +13 -0
  31. package/dist/renderers/index.d.ts +4 -0
  32. package/dist/renderers/svga-batch-renderer.d.ts +113 -0
  33. package/dist/renderers/vap-renderer.d.ts +58 -0
  34. package/dist/renderers/vertex-builder.d.ts +5 -0
  35. package/dist/shaders/index.d.ts +49 -0
  36. package/dist/types/index.d.ts +699 -0
  37. package/dist/utils/abort.d.ts +3 -0
  38. package/dist/utils/atlas-constants.d.ts +9 -0
  39. package/dist/utils/buffer-pool.d.ts +14 -0
  40. package/dist/utils/canvas-dpr.d.ts +37 -0
  41. package/dist/utils/clip-mesh.d.ts +6 -0
  42. package/dist/utils/detect.d.ts +7 -0
  43. package/dist/utils/easing.d.ts +7 -0
  44. package/dist/utils/frame-budget.d.ts +36 -0
  45. package/dist/utils/gift-object-fit.d.ts +14 -0
  46. package/dist/utils/gift-position.d.ts +5 -0
  47. package/dist/utils/gift-size.d.ts +11 -0
  48. package/dist/utils/gift-transform.d.ts +29 -0
  49. package/dist/utils/html-video-upload-gate.d.ts +35 -0
  50. package/dist/utils/image-source.d.ts +9 -0
  51. package/dist/utils/math.d.ts +9 -0
  52. package/dist/utils/resource-cache.d.ts +20 -0
  53. package/dist/utils/slot-content.d.ts +17 -0
  54. package/dist/utils/svg-path-parser.d.ts +11 -0
  55. package/dist/utils/svga-binary-cache.d.ts +26 -0
  56. package/dist/utils/svga-work-scheduler.d.ts +7 -0
  57. package/dist/utils/triangulate.d.ts +11 -0
  58. package/dist/utils/utf8.d.ts +2 -0
  59. package/dist/utils/vap-mix-composer.d.ts +26 -0
  60. package/dist/utils/wc-atlas-upload-size.d.ts +9 -0
  61. package/dist/video/mp4box-loader.d.ts +2 -0
  62. package/dist/video/webcodecs-mp4-core.d.ts +49 -0
  63. package/dist/video/webcodecs-mp4-playback.d.ts +71 -0
  64. package/dist/video/webcodecs-mp4.worker.d.ts +18 -0
  65. package/dist/wasm/wasm-bridge.d.ts +36 -0
  66. package/dist/workers/parser-worker.d.ts +13 -0
  67. package/dist/workers/svga-atlas-worker-client.d.ts +25 -0
  68. package/dist/workers/svga-atlas-worker.d.ts +37 -0
  69. package/dist/workers/svga-clip-worker-client.d.ts +6 -0
  70. package/dist/workers/svga-clip-worker.d.ts +17 -0
  71. package/dist/workers/svga-image-decode-worker.d.ts +19 -0
  72. package/dist/workers/vertex-worker.d.ts +15 -0
  73. package/dist/workers/worker-scheduler.d.ts +19 -0
  74. 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.28",
4
- "description": "High-performance WebGPU/WebGL2 gift animation player unifying SVGA, VAP, and AlphaVideo",
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",