distark-render 1.1.11 → 1.1.12

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 (164) hide show
  1. package/README.md +0 -0
  2. package/assets/presets/jumping-jack.json +194 -0
  3. package/assets/tank.json +0 -0
  4. package/dist/cli/animate.d.ts +0 -0
  5. package/dist/cli/animate.d.ts.map +0 -0
  6. package/dist/cli/animate.js +0 -0
  7. package/dist/cli/animate.js.map +0 -0
  8. package/dist/cli/diff.d.ts +0 -0
  9. package/dist/cli/diff.d.ts.map +0 -0
  10. package/dist/cli/diff.js +0 -0
  11. package/dist/cli/diff.js.map +0 -0
  12. package/dist/cli/distark-check.d.ts +0 -0
  13. package/dist/cli/distark-check.d.ts.map +0 -0
  14. package/dist/cli/distark-check.js +16 -16
  15. package/dist/cli/distark-check.js.map +0 -0
  16. package/dist/cli/query.d.ts +0 -0
  17. package/dist/cli/query.d.ts.map +0 -0
  18. package/dist/cli/query.js +0 -0
  19. package/dist/cli/query.js.map +0 -0
  20. package/dist/cli/record.d.ts +0 -0
  21. package/dist/cli/record.d.ts.map +0 -0
  22. package/dist/cli/record.js +0 -0
  23. package/dist/cli/record.js.map +0 -0
  24. package/dist/cli/render.d.ts +0 -0
  25. package/dist/cli/render.d.ts.map +0 -0
  26. package/dist/cli/render.js +0 -0
  27. package/dist/cli/render.js.map +0 -0
  28. package/dist/cli/scene.d.ts +12 -2
  29. package/dist/cli/scene.d.ts.map +1 -1
  30. package/dist/cli/scene.js +235 -4
  31. package/dist/cli/scene.js.map +1 -1
  32. package/dist/cli/shared.d.ts +0 -0
  33. package/dist/cli/shared.d.ts.map +0 -0
  34. package/dist/cli/shared.js +0 -0
  35. package/dist/cli/shared.js.map +0 -0
  36. package/dist/cli/test.d.ts +0 -0
  37. package/dist/cli/test.d.ts.map +0 -0
  38. package/dist/cli/test.js +0 -0
  39. package/dist/cli/test.js.map +0 -0
  40. package/dist/cli/verify.d.ts +0 -0
  41. package/dist/cli/verify.d.ts.map +0 -0
  42. package/dist/cli/verify.js +0 -0
  43. package/dist/cli/verify.js.map +0 -0
  44. package/dist/modules/adapters/p5Renderer.d.ts +0 -0
  45. package/dist/modules/adapters/p5Renderer.d.ts.map +1 -1
  46. package/dist/modules/adapters/p5Renderer.js +17 -40
  47. package/dist/modules/adapters/p5Renderer.js.map +1 -1
  48. package/dist/modules/adapters/skiaRenderer.d.ts +0 -2
  49. package/dist/modules/adapters/skiaRenderer.d.ts.map +1 -1
  50. package/dist/modules/adapters/skiaRenderer.js +16 -47
  51. package/dist/modules/adapters/skiaRenderer.js.map +1 -1
  52. package/dist/modules/animationDiff.d.ts +0 -0
  53. package/dist/modules/animationDiff.d.ts.map +0 -0
  54. package/dist/modules/animationDiff.js +0 -0
  55. package/dist/modules/animationDiff.js.map +0 -0
  56. package/dist/modules/browserSceneRenderer.d.ts +0 -0
  57. package/dist/modules/browserSceneRenderer.d.ts.map +0 -0
  58. package/dist/modules/browserSceneRenderer.js +0 -0
  59. package/dist/modules/browserSceneRenderer.js.map +0 -0
  60. package/dist/modules/characterValidator.d.ts +41 -0
  61. package/dist/modules/characterValidator.d.ts.map +1 -0
  62. package/dist/modules/characterValidator.js +233 -0
  63. package/dist/modules/characterValidator.js.map +1 -0
  64. package/dist/modules/eyeSystem.d.ts +0 -0
  65. package/dist/modules/eyeSystem.d.ts.map +0 -0
  66. package/dist/modules/eyeSystem.js +0 -0
  67. package/dist/modules/eyeSystem.js.map +0 -0
  68. package/dist/modules/imageLoad.d.ts +8 -22
  69. package/dist/modules/imageLoad.d.ts.map +1 -1
  70. package/dist/modules/imageLoad.js +78 -203
  71. package/dist/modules/imageLoad.js.map +1 -1
  72. package/dist/modules/mouthSystem.d.ts +0 -0
  73. package/dist/modules/mouthSystem.d.ts.map +0 -0
  74. package/dist/modules/mouthSystem.js +0 -0
  75. package/dist/modules/mouthSystem.js.map +0 -0
  76. package/dist/modules/renderRig.d.ts +0 -0
  77. package/dist/modules/renderRig.d.ts.map +1 -1
  78. package/dist/modules/renderRig.js +4 -52
  79. package/dist/modules/renderRig.js.map +1 -1
  80. package/dist/modules/sceneRenderer.d.ts +1 -2
  81. package/dist/modules/sceneRenderer.d.ts.map +1 -1
  82. package/dist/modules/sceneRenderer.js +6 -9
  83. package/dist/modules/sceneRenderer.js.map +1 -1
  84. package/dist/tests/helpers.d.ts +0 -0
  85. package/dist/tests/helpers.d.ts.map +0 -0
  86. package/dist/tests/helpers.js +0 -0
  87. package/dist/tests/helpers.js.map +0 -0
  88. package/dist/tests/test-animation-diff-rendering.d.ts +0 -0
  89. package/dist/tests/test-animation-diff-rendering.d.ts.map +0 -0
  90. package/dist/tests/test-animation-diff-rendering.js +0 -0
  91. package/dist/tests/test-animation-diff-rendering.js.map +0 -0
  92. package/dist/tests/test-animation-diff.d.ts +0 -0
  93. package/dist/tests/test-animation-diff.d.ts.map +0 -0
  94. package/dist/tests/test-animation-diff.js +0 -0
  95. package/dist/tests/test-animation-diff.js.map +0 -0
  96. package/dist/tests/test-autofit.d.ts +0 -0
  97. package/dist/tests/test-autofit.d.ts.map +0 -0
  98. package/dist/tests/test-autofit.js +0 -0
  99. package/dist/tests/test-autofit.js.map +0 -0
  100. package/dist/tests/test-base-autofit.d.ts +0 -0
  101. package/dist/tests/test-base-autofit.d.ts.map +0 -0
  102. package/dist/tests/test-base-autofit.js +0 -0
  103. package/dist/tests/test-base-autofit.js.map +0 -0
  104. package/dist/tests/test-browser-scene.d.ts +0 -0
  105. package/dist/tests/test-browser-scene.d.ts.map +0 -0
  106. package/dist/tests/test-browser-scene.js +0 -0
  107. package/dist/tests/test-browser-scene.js.map +0 -0
  108. package/dist/tests/test-character-validator.d.ts +8 -0
  109. package/dist/tests/test-character-validator.d.ts.map +1 -0
  110. package/dist/tests/test-character-validator.js +445 -0
  111. package/dist/tests/test-character-validator.js.map +1 -0
  112. package/dist/tests/test-cli.d.ts +0 -0
  113. package/dist/tests/test-cli.d.ts.map +0 -0
  114. package/dist/tests/test-cli.js +0 -0
  115. package/dist/tests/test-cli.js.map +0 -0
  116. package/dist/tests/test-image-loading.d.ts +0 -0
  117. package/dist/tests/test-image-loading.d.ts.map +0 -0
  118. package/dist/tests/test-image-loading.js +0 -0
  119. package/dist/tests/test-image-loading.js.map +0 -0
  120. package/dist/tests/test-joint-movement.d.ts +0 -0
  121. package/dist/tests/test-joint-movement.d.ts.map +0 -0
  122. package/dist/tests/test-joint-movement.js +0 -0
  123. package/dist/tests/test-joint-movement.js.map +0 -0
  124. package/dist/tests/test-p5-image-types.d.ts +0 -0
  125. package/dist/tests/test-p5-image-types.d.ts.map +0 -0
  126. package/dist/tests/test-p5-image-types.js +0 -0
  127. package/dist/tests/test-p5-image-types.js.map +0 -0
  128. package/dist/tests/test-render-cache-visual.d.ts +0 -0
  129. package/dist/tests/test-render-cache-visual.d.ts.map +0 -0
  130. package/dist/tests/test-render-cache-visual.js +0 -0
  131. package/dist/tests/test-render-cache-visual.js.map +0 -0
  132. package/dist/tests/test-render-cache.d.ts +0 -0
  133. package/dist/tests/test-render-cache.d.ts.map +0 -0
  134. package/dist/tests/test-render-cache.js +0 -0
  135. package/dist/tests/test-render-cache.js.map +0 -0
  136. package/dist/tests/test-scene.d.ts +0 -0
  137. package/dist/tests/test-scene.d.ts.map +0 -0
  138. package/dist/tests/test-scene.js +0 -0
  139. package/dist/tests/test-scene.js.map +0 -0
  140. package/dist/tests/test-skia.d.ts +0 -0
  141. package/dist/tests/test-skia.d.ts.map +0 -0
  142. package/dist/tests/test-skia.js +0 -0
  143. package/dist/tests/test-skia.js.map +0 -0
  144. package/dist/tests/test-torso-pivot.d.ts +0 -0
  145. package/dist/tests/test-torso-pivot.d.ts.map +0 -0
  146. package/dist/tests/test-torso-pivot.js +0 -0
  147. package/dist/tests/test-torso-pivot.js.map +0 -0
  148. package/dist/tests/test-visual-verification.d.ts +0 -0
  149. package/dist/tests/test-visual-verification.d.ts.map +0 -0
  150. package/dist/tests/test-visual-verification.js +0 -0
  151. package/dist/tests/test-visual-verification.js.map +0 -0
  152. package/dist/types.d.ts +0 -0
  153. package/dist/types.d.ts.map +0 -0
  154. package/dist/types.js +0 -0
  155. package/dist/types.js.map +0 -0
  156. package/package.json +7 -1
  157. package/dist/tests/test-scene-object-svg-rerasterization.d.ts +0 -2
  158. package/dist/tests/test-scene-object-svg-rerasterization.d.ts.map +0 -1
  159. package/dist/tests/test-scene-object-svg-rerasterization.js +0 -86
  160. package/dist/tests/test-scene-object-svg-rerasterization.js.map +0 -1
  161. package/dist/tests/test-svg-rerasterization.d.ts +0 -2
  162. package/dist/tests/test-svg-rerasterization.d.ts.map +0 -1
  163. package/dist/tests/test-svg-rerasterization.js +0 -97
  164. package/dist/tests/test-svg-rerasterization.js.map +0 -1
@@ -8,8 +8,7 @@ import type { ImageLoadCallback, ImageErrorCallback, RigData } from '../types.js
8
8
  */
9
9
  export declare class ImageLoader {
10
10
  private baseHost;
11
- protected imageCache: Map<string, any>;
12
- protected pendingRasterUpgrades: Map<string, Promise<any>>;
11
+ protected imageCache: Map<string, HTMLImageElement>;
13
12
  /**
14
13
  * Creates a new ImageLoader instance
15
14
  * @param baseHost - The base URL for the API (default: https://orchestrator.distark.com)
@@ -53,7 +52,7 @@ export declare class ImageLoader {
53
52
  * Get the image cache
54
53
  * @returns The image cache Map
55
54
  */
56
- getImageCache(): Map<string, any>;
55
+ getImageCache(): Map<string, HTMLImageElement>;
57
56
  /**
58
57
  * Clear the image cache
59
58
  */
@@ -62,15 +61,13 @@ export declare class ImageLoader {
62
61
  * Get image from cache or return undefined
63
62
  * @param key - Image key
64
63
  */
65
- getCachedImage(key: string): any;
64
+ getCachedImage(key: string): HTMLImageElement | undefined;
66
65
  /**
67
66
  * Manually add image to cache
68
67
  * @param key - Image key
69
68
  * @param image - Image element
70
69
  */
71
- cacheImage(key: string, image: any): void;
72
- requestImageForSize(key: string, desiredWidth: number, desiredHeight: number, loadedImages?: Record<string, any>): any;
73
- waitForPendingImageUpgrades(): Promise<void>;
70
+ cacheImage(key: string, image: HTMLImageElement): void;
74
71
  /**
75
72
  * Load image with caching support
76
73
  * Checks cache first, only loads if not cached
@@ -80,6 +77,10 @@ export declare class ImageLoader {
80
77
  * Collect all unique image hashes from rig data (imagePaths, eyes, mouth).
81
78
  */
82
79
  protected collectImageHashes(rigData: RigData, useCache: boolean): string[];
80
+ /**
81
+ * Convert a data URI to a Blob (fast, synchronous base64 decode).
82
+ */
83
+ private static dataURItoBlob;
83
84
  /**
84
85
  * Load all images for a character rig and populate the cache.
85
86
  * Uses createImageBitmap for off-main-thread parallel decoding when available.
@@ -89,21 +90,6 @@ export declare class ImageLoader {
89
90
  * then fire all async createImageBitmap calls at once for maximum parallelism.
90
91
  */
91
92
  loadAllRigImages(rigData: RigData, useCache?: boolean, onProgress?: (loaded: number, total: number, failed: number) => void): Promise<Record<string, any>>;
92
- private static decodeSvgDataUrl;
93
- private static parseDimension;
94
- private static parseSvgDimensions;
95
- protected prepareResolvedAsset(imageUrl: string): Promise<{
96
- kind: 'svg';
97
- svgSource: string;
98
- intrinsicWidth: number;
99
- intrinsicHeight: number;
100
- } | {
101
- kind: 'blob';
102
- objectUrl: string;
103
- } | null>;
104
- protected createSvgCanvas(svgSource: string, targetWidth: number, targetHeight: number): Promise<any>;
105
- protected attachSvgMetadata(image: any, svgSource: string, intrinsicWidth: number, intrinsicHeight: number, rasterWidth: number, rasterHeight: number): void;
106
- protected loadDomImage(url: string): Promise<HTMLImageElement>;
107
93
  }
108
94
  export declare const defaultImageLoader: ImageLoader;
109
95
  //# sourceMappingURL=imageLoad.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"imageLoad.d.ts","sourceRoot":"","sources":["../../modules/imageLoad.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imageLoad.d.ts","sourceRoot":"","sources":["../../modules/imageLoad.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAElF;;GAEG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAEpD;;;OAGG;gBACS,QAAQ,GAAE,MAAuG;IAK7H;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/B;;;OAGG;IACH,WAAW,IAAI,MAAM;IAIrB;;;;OAIG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;IA6BvE;;;;;;OAMG;IACH,SAAS,CACL,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,MAAM,CAAC,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IA8BP;;;;;OAKG;IACG,UAAU,CACZ,YAAY,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,EAClD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACrE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAkC5C;;;OAGG;IACH,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAI9C;;OAEG;IACH,eAAe,IAAI,IAAI;IAIvB;;;OAGG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIzD;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAItD;;;OAGG;IACH,kBAAkB,CACd,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,MAAM,CAAC,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,kBAAkB,GAC7B,IAAI;IAuBP;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE;IA8B3E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAY5B;;;;;;;OAOG;IACG,gBAAgB,CAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,OAAc,EACxB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACrE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAsElC;AAGD,eAAO,MAAM,kBAAkB,aAAoB,CAAC"}
@@ -13,7 +13,6 @@ export class ImageLoader {
13
13
  constructor(baseHost = (typeof process !== 'undefined' && process.env?.ORC_URL) || 'https://orchestrator.distark.com') {
14
14
  this.baseHost = baseHost;
15
15
  this.imageCache = new Map();
16
- this.pendingRasterUpgrades = new Map();
17
16
  }
18
17
  /**
19
18
  * Set the base host for image loading
@@ -66,12 +65,6 @@ export class ImageLoader {
66
65
  * @param onError - Callback when image fails to load (optional)
67
66
  */
68
67
  loadImage(key, imageData, onLoad, onError) {
69
- const cached = this.imageCache.get(key);
70
- if (cached) {
71
- if (onLoad)
72
- onLoad(key, cached);
73
- return;
74
- }
75
68
  const imageUrl = this.resolveImageSource(imageData);
76
69
  if (!imageUrl) {
77
70
  console.warn(`Could not resolve image source for ${key}: ${imageData}`);
@@ -80,33 +73,20 @@ export class ImageLoader {
80
73
  }
81
74
  return;
82
75
  }
83
- void (async () => {
84
- try {
85
- const prepared = await this.prepareResolvedAsset(imageUrl);
86
- if (prepared?.kind === 'svg') {
87
- const canvas = await this.createSvgCanvas(prepared.svgSource, prepared.intrinsicWidth, prepared.intrinsicHeight);
88
- this.attachSvgMetadata(canvas, prepared.svgSource, prepared.intrinsicWidth, prepared.intrinsicHeight, prepared.intrinsicWidth, prepared.intrinsicHeight);
89
- this.imageCache.set(key, canvas);
90
- if (onLoad)
91
- onLoad(key, canvas);
92
- return;
93
- }
94
- const loadUrl = prepared?.kind === 'blob' ? prepared.objectUrl : imageUrl;
95
- const img = await this.loadDomImage(loadUrl);
96
- this.imageCache.set(key, img);
97
- if (prepared?.kind === 'blob') {
98
- URL.revokeObjectURL(prepared.objectUrl);
99
- }
100
- if (onLoad)
101
- onLoad(key, img);
76
+ const img = new Image();
77
+ img.crossOrigin = 'anonymous';
78
+ img.onload = () => {
79
+ if (onLoad) {
80
+ onLoad(key, img);
102
81
  }
103
- catch (err) {
104
- console.warn(`Failed to load image for ${key}`);
105
- if (onError) {
106
- onError(key, err instanceof Error ? err.message : err);
107
- }
82
+ };
83
+ img.onerror = (err) => {
84
+ console.warn(`Failed to load image for ${key}`);
85
+ if (onError) {
86
+ onError(key, err);
108
87
  }
109
- })();
88
+ };
89
+ img.src = imageUrl;
110
90
  }
111
91
  /**
112
92
  * Load multiple images in parallel
@@ -168,48 +148,6 @@ export class ImageLoader {
168
148
  cacheImage(key, image) {
169
149
  this.imageCache.set(key, image);
170
150
  }
171
- requestImageForSize(key, desiredWidth, desiredHeight, loadedImages) {
172
- const current = loadedImages?.[key] ?? this.imageCache.get(key);
173
- if (!current || !current.__distarkSvgSource) {
174
- return current;
175
- }
176
- const targetWidth = Math.max(1, Math.round(desiredWidth || current.__distarkIntrinsicWidth || current.width || 1));
177
- const targetHeight = Math.max(1, Math.round(desiredHeight || current.__distarkIntrinsicHeight || current.height || 1));
178
- const currentWidth = current.__distarkRasterWidth || current.width || 0;
179
- const currentHeight = current.__distarkRasterHeight || current.height || 0;
180
- const requestedWidth = current.__distarkRequestedRasterWidth || currentWidth;
181
- const requestedHeight = current.__distarkRequestedRasterHeight || currentHeight;
182
- if (targetWidth <= currentWidth && targetHeight <= currentHeight) {
183
- return current;
184
- }
185
- if (targetWidth <= requestedWidth && targetHeight <= requestedHeight) {
186
- return current;
187
- }
188
- current.__distarkRequestedRasterWidth = Math.max(requestedWidth, targetWidth);
189
- current.__distarkRequestedRasterHeight = Math.max(requestedHeight, targetHeight);
190
- const pendingTargetWidth = current.__distarkRequestedRasterWidth;
191
- const pendingTargetHeight = current.__distarkRequestedRasterHeight;
192
- const pendingKey = `${key}:${pendingTargetWidth}x${pendingTargetHeight}`;
193
- if (!this.pendingRasterUpgrades.has(pendingKey)) {
194
- const upgradePromise = this.createSvgCanvas(current.__distarkSvgSource, pendingTargetWidth, pendingTargetHeight)
195
- .then((canvas) => {
196
- this.attachSvgMetadata(canvas, current.__distarkSvgSource, current.__distarkIntrinsicWidth || targetWidth, current.__distarkIntrinsicHeight || targetHeight, pendingTargetWidth, pendingTargetHeight);
197
- this.imageCache.set(key, canvas);
198
- if (loadedImages) {
199
- loadedImages[key] = canvas;
200
- }
201
- return canvas;
202
- })
203
- .finally(() => {
204
- this.pendingRasterUpgrades.delete(pendingKey);
205
- });
206
- this.pendingRasterUpgrades.set(pendingKey, upgradePromise);
207
- }
208
- return current;
209
- }
210
- async waitForPendingImageUpgrades() {
211
- await Promise.all(this.pendingRasterUpgrades.values());
212
- }
213
151
  /**
214
152
  * Load image with caching support
215
153
  * Checks cache first, only loads if not cached
@@ -265,6 +203,21 @@ export class ImageLoader {
265
203
  }
266
204
  return hashes;
267
205
  }
206
+ /**
207
+ * Convert a data URI to a Blob (fast, synchronous base64 decode).
208
+ */
209
+ static dataURItoBlob(dataURI) {
210
+ const commaIdx = dataURI.indexOf(',');
211
+ const header = dataURI.substring(0, commaIdx);
212
+ const mimeMatch = header.match(/:(.*?);/);
213
+ const mime = mimeMatch ? mimeMatch[1] : 'image/png';
214
+ const b64 = dataURI.substring(commaIdx + 1);
215
+ const binary = atob(b64);
216
+ const bytes = new Uint8Array(binary.length);
217
+ for (let i = 0; i < binary.length; i++)
218
+ bytes[i] = binary.charCodeAt(i);
219
+ return new Blob([bytes], { type: mime });
220
+ }
268
221
  /**
269
222
  * Load all images for a character rig and populate the cache.
270
223
  * Uses createImageBitmap for off-main-thread parallel decoding when available.
@@ -280,23 +233,62 @@ export class ImageLoader {
280
233
  this.imageCache.forEach((img, key) => { result[key] = img; });
281
234
  return result;
282
235
  }
236
+ const canUseBitmap = typeof createImageBitmap === 'function';
283
237
  let loaded = 0;
284
238
  let failed = 0;
285
239
  const total = hashes.length;
286
- await Promise.all(hashes.map((hash) => {
287
- return new Promise((resolve) => {
288
- this.loadImage(hash, hash, () => {
240
+ // Phase 1 (sync): resolve URLs and convert data URIs to Blobs up front
241
+ const prepared = [];
242
+ for (const hash of hashes) {
243
+ const url = this.resolveImageSource(hash);
244
+ if (!url) {
245
+ failed++;
246
+ continue;
247
+ }
248
+ if (canUseBitmap && url.startsWith('data:')) {
249
+ prepared.push({ hash, blob: ImageLoader.dataURItoBlob(url) });
250
+ }
251
+ else {
252
+ prepared.push({ hash, url });
253
+ }
254
+ }
255
+ // Phase 2 (async): fire all decodes in parallel
256
+ await Promise.all(prepared.map(async ({ hash, blob, url }) => {
257
+ try {
258
+ let img;
259
+ if (blob) {
260
+ img = await createImageBitmap(blob);
261
+ }
262
+ else if (canUseBitmap && url && (url.startsWith('http://') || url.startsWith('https://'))) {
263
+ const resp = await fetch(url);
264
+ const fetchedBlob = await resp.blob();
265
+ img = await createImageBitmap(fetchedBlob);
266
+ }
267
+ else if (url) {
268
+ // Fallback: new Image()
269
+ img = await new Promise((resolve) => {
270
+ const image = new Image();
271
+ image.crossOrigin = 'anonymous';
272
+ image.onload = () => resolve(image);
273
+ image.onerror = () => resolve(null);
274
+ image.src = url;
275
+ });
276
+ }
277
+ if (img) {
278
+ this.imageCache.set(hash, img);
289
279
  loaded++;
290
- if (onProgress)
291
- onProgress(loaded, total, failed);
292
- resolve();
293
- }, () => {
280
+ }
281
+ else {
294
282
  failed++;
295
- if (onProgress)
296
- onProgress(loaded, total, failed);
297
- resolve();
298
- });
299
- });
283
+ }
284
+ if (onProgress)
285
+ onProgress(loaded, total, failed);
286
+ }
287
+ catch {
288
+ failed++;
289
+ if (onProgress)
290
+ onProgress(loaded, total, failed);
291
+ }
300
292
  }));
301
293
  if (failed > 0) {
302
294
  console.warn(`Image loading: ${loaded}/${total} succeeded, ${failed} failed`);
@@ -305,123 +297,6 @@ export class ImageLoader {
305
297
  this.imageCache.forEach((img, key) => { result[key] = img; });
306
298
  return result;
307
299
  }
308
- static decodeSvgDataUrl(dataUrl) {
309
- const commaIndex = dataUrl.indexOf(',');
310
- if (commaIndex < 0) {
311
- return '';
312
- }
313
- const header = dataUrl.slice(0, commaIndex);
314
- const payload = dataUrl.slice(commaIndex + 1);
315
- if (/;base64/i.test(header)) {
316
- return atob(payload);
317
- }
318
- try {
319
- return decodeURIComponent(payload);
320
- }
321
- catch {
322
- return payload;
323
- }
324
- }
325
- static parseDimension(value) {
326
- if (!value) {
327
- return null;
328
- }
329
- const match = value.trim().match(/^([0-9]*\.?[0-9]+)/);
330
- if (!match) {
331
- return null;
332
- }
333
- const parsed = Number(match[1]);
334
- return Number.isFinite(parsed) && parsed > 0 ? parsed : null;
335
- }
336
- static parseSvgDimensions(svgSource) {
337
- const widthMatch = svgSource.match(/\bwidth=["']([^"']+)["']/i);
338
- const heightMatch = svgSource.match(/\bheight=["']([^"']+)["']/i);
339
- const viewBoxMatch = svgSource.match(/\bviewBox=["']([^"']+)["']/i);
340
- const width = ImageLoader.parseDimension(widthMatch?.[1]);
341
- const height = ImageLoader.parseDimension(heightMatch?.[1]);
342
- if (width && height) {
343
- return { width, height };
344
- }
345
- if (viewBoxMatch?.[1]) {
346
- const parts = viewBoxMatch[1].trim().split(/[\s,]+/).map(Number);
347
- if (parts.length === 4) {
348
- const [, , vbWidth, vbHeight] = parts;
349
- if (Number.isFinite(vbWidth) && vbWidth > 0 && Number.isFinite(vbHeight) && vbHeight > 0) {
350
- return {
351
- width: width || vbWidth,
352
- height: height || vbHeight,
353
- };
354
- }
355
- }
356
- }
357
- return {
358
- width: width || 100,
359
- height: height || 100,
360
- };
361
- }
362
- async prepareResolvedAsset(imageUrl) {
363
- if (imageUrl.startsWith('data:image/svg+xml')) {
364
- const svgSource = ImageLoader.decodeSvgDataUrl(imageUrl);
365
- const dimensions = ImageLoader.parseSvgDimensions(svgSource);
366
- return { kind: 'svg', svgSource, intrinsicWidth: dimensions.width, intrinsicHeight: dimensions.height };
367
- }
368
- if (imageUrl.trim().startsWith('<svg')) {
369
- const dimensions = ImageLoader.parseSvgDimensions(imageUrl);
370
- return { kind: 'svg', svgSource: imageUrl, intrinsicWidth: dimensions.width, intrinsicHeight: dimensions.height };
371
- }
372
- if (!imageUrl.startsWith('http://') && !imageUrl.startsWith('https://')) {
373
- return null;
374
- }
375
- const response = await fetch(imageUrl);
376
- if (!response.ok) {
377
- throw new Error(`Failed to fetch asset: ${response.status}`);
378
- }
379
- const blob = await response.blob();
380
- const looksLikeSvg = blob.type.includes('svg') || imageUrl.toLowerCase().endsWith('.svg');
381
- if (looksLikeSvg) {
382
- const svgSource = await blob.text();
383
- const dimensions = ImageLoader.parseSvgDimensions(svgSource);
384
- return { kind: 'svg', svgSource, intrinsicWidth: dimensions.width, intrinsicHeight: dimensions.height };
385
- }
386
- return { kind: 'blob', objectUrl: URL.createObjectURL(blob) };
387
- }
388
- async createSvgCanvas(svgSource, targetWidth, targetHeight) {
389
- const width = Math.max(1, Math.round(targetWidth || 1));
390
- const height = Math.max(1, Math.round(targetHeight || 1));
391
- const svgUrl = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgSource)}`;
392
- const image = await this.loadDomImage(svgUrl);
393
- if (typeof document === 'undefined' || typeof document.createElement !== 'function') {
394
- throw new Error('Canvas creation is unavailable in this environment');
395
- }
396
- const canvas = document.createElement('canvas');
397
- canvas.width = width;
398
- canvas.height = height;
399
- const ctx = canvas.getContext('2d');
400
- if (!ctx) {
401
- throw new Error('Failed to create 2D context for SVG rasterization');
402
- }
403
- ctx.clearRect(0, 0, width, height);
404
- ctx.drawImage(image, 0, 0, width, height);
405
- return canvas;
406
- }
407
- attachSvgMetadata(image, svgSource, intrinsicWidth, intrinsicHeight, rasterWidth, rasterHeight) {
408
- image.__distarkSvgSource = svgSource;
409
- image.__distarkIntrinsicWidth = intrinsicWidth;
410
- image.__distarkIntrinsicHeight = intrinsicHeight;
411
- image.__distarkRasterWidth = rasterWidth;
412
- image.__distarkRasterHeight = rasterHeight;
413
- image.__distarkRequestedRasterWidth = rasterWidth;
414
- image.__distarkRequestedRasterHeight = rasterHeight;
415
- }
416
- loadDomImage(url) {
417
- return new Promise((resolve, reject) => {
418
- const img = new Image();
419
- img.crossOrigin = 'anonymous';
420
- img.onload = () => resolve(img);
421
- img.onerror = () => reject(new Error(`Failed to load image: ${url}`));
422
- img.src = url;
423
- });
424
- }
425
300
  }
426
301
  // Export a default instance for backwards compatibility
427
302
  export const defaultImageLoader = new ImageLoader();
@@ -1 +1 @@
1
- {"version":3,"file":"imageLoad.js","sourceRoot":"","sources":["../../modules/imageLoad.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imageLoad.js","sourceRoot":"","sources":["../../modules/imageLoad.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"renderRig.d.ts","sourceRoot":"","sources":["../../modules/renderRig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,KAAK,EACR,OAAO,EACP,aAAa,EACb,aAAa,EAGb,QAAQ,EACR,aAAa,EAChB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,oBAAoB;IAC7B,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IAEnC;;;OAGG;gBACS,WAAW,CAAC,EAAE,WAAW;IAIrC;;;OAGG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACH,uBAAuB,CACnB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,aAAkB,GAC5B,aAAa;IA00ChB;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,EAAE,OAAO,SAAK,GAAG,aAAa;IA6DnG;;;;;;;;;;;;;;;;;OAiBG;IACG,MAAM,CACR,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,EACnE,YAAY,GAAE,QAAyB,EACvC,eAAe,GAAE,OAAc,EAC/B,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAChC,OAAO,CAAC,IAAI,CAAC;CA8FnB;AAGD,eAAO,MAAM,eAAe,sBAA6B,CAAC;AAG1D,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,EACnE,YAAY,GAAE,QAAyB,EACvC,eAAe,GAAE,OAAe,EAChC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,OAAO,CAAC,IAAI,CAAC,CAEf;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,aAAa,CAEpG"}
1
+ {"version":3,"file":"renderRig.d.ts","sourceRoot":"","sources":["../../modules/renderRig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,OAAO,KAAK,EACR,OAAO,EACP,aAAa,EACb,aAAa,EAGb,QAAQ,EACR,aAAa,EAChB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,oBAAoB;IAC7B,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IAEnC;;;OAGG;gBACS,WAAW,CAAC,EAAE,WAAW;IAIrC;;;OAGG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACH,uBAAuB,CACnB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,aAAkB,GAC5B,aAAa;IA+xChB;;;;OAIG;IACH,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,EAAE,OAAO,SAAK,GAAG,aAAa;IA6DnG;;;;;;;;;;;;;;;;;OAiBG;IACG,MAAM,CACR,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,EACnE,YAAY,GAAE,QAAyB,EACvC,eAAe,GAAE,OAAc,EAC/B,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAChC,OAAO,CAAC,IAAI,CAAC;CAsFnB;AAGD,eAAO,MAAM,eAAe,sBAA6B,CAAC;AAG1D,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,CAAC,EACnE,YAAY,GAAE,QAAyB,EACvC,eAAe,GAAE,OAAe,EAChC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,OAAO,CAAC,IAAI,CAAC,CAEf;AAGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,aAAa,CAEpG"}
@@ -48,40 +48,6 @@ export class CharacterRigRenderer {
48
48
  return undefined;
49
49
  return loadedImages[path];
50
50
  };
51
- const resolveRenderObjectImagePath = (objectName) => {
52
- if (objectName === 'mouth') {
53
- const currentMouthShape = rigData.currentMouthShape;
54
- if (currentMouthShape && rigData.mouth?.[currentMouthShape]) {
55
- return rigData.mouth[currentMouthShape];
56
- }
57
- return rigData.imagePaths?.mouth;
58
- }
59
- if (objectName === 'leftEye')
60
- return eyes?.leftEyeImage;
61
- if (objectName === 'rightEye')
62
- return eyes?.rightEyeImage;
63
- if (objectName === 'leftIris')
64
- return eyes?.leftIris;
65
- if (objectName === 'rightIris')
66
- return eyes?.rightIris;
67
- if (objectName === 'leftEyeLid') {
68
- const eyelidState = eyes?.eyelidState || 'open';
69
- if (eyelidState === 'closed')
70
- return eyes?.leftEyeLidClosed || eyes?.leftEyeLidOpen;
71
- if (eyelidState === 'half-closed')
72
- return eyes?.leftEyeLidHalfClosed || eyes?.leftEyeLidOpen;
73
- return eyes?.leftEyeLidOpen || eyes?.leftEyeLidHalfClosed || eyes?.leftEyeLidClosed;
74
- }
75
- if (objectName === 'rightEyeLid') {
76
- const eyelidState = eyes?.eyelidState || 'open';
77
- if (eyelidState === 'closed')
78
- return eyes?.rightEyeLidClosed || eyes?.rightEyeLidOpen;
79
- if (eyelidState === 'half-closed')
80
- return eyes?.rightEyeLidHalfClosed || eyes?.rightEyeLidOpen;
81
- return eyes?.rightEyeLidOpen || eyes?.rightEyeLidHalfClosed || eyes?.rightEyeLidClosed;
82
- }
83
- return rigData.imagePaths?.[objectName];
84
- };
85
51
  // Get rendering parameters from rigData
86
52
  const centerX = canvasWidth / 2 + cameraOffset.x;
87
53
  const centerY = canvasHeight / 2 + 100 + cameraOffset.y;
@@ -1091,12 +1057,6 @@ export class CharacterRigRenderer {
1091
1057
  selfRotation: selfRot
1092
1058
  });
1093
1059
  }
1094
- for (const obj of allObjects) {
1095
- const imagePath = resolveRenderObjectImagePath(obj.name);
1096
- if (imagePath) {
1097
- obj.imageData = this.imageLoader.requestImageForSize(imagePath, obj.width, obj.height, loadedImages);
1098
- }
1099
- }
1100
1060
  // Sort all objects by zIndex
1101
1061
  allObjects.sort((a, b) => a.zIndex - b.zIndex);
1102
1062
  // Compute pivot points in world space.
@@ -1326,19 +1286,11 @@ export class CharacterRigRenderer {
1326
1286
  * await renderer.render(canvas, rigData);
1327
1287
  */
1328
1288
  async render(canvas, rigData, loadedImages, cameraOffset = { x: 0, y: 0 }, showPivotPoints = true, options) {
1329
- // If no images provided, check cache or load
1289
+ // If no images provided, ensure this rig's required images are loaded.
1290
+ // A non-empty cache is not sufficient because a later variation may need
1291
+ // additional hashes (for example a different head image).
1330
1292
  if (!loadedImages) {
1331
- const cache = this.imageLoader.getImageCache();
1332
- // If cache is empty, load images from network
1333
- if (cache.size === 0) {
1334
- loadedImages = await this.imageLoader.loadAllRigImages(rigData, true);
1335
- }
1336
- else {
1337
- loadedImages = {};
1338
- cache.forEach((img, key) => {
1339
- loadedImages[key] = img;
1340
- });
1341
- }
1293
+ loadedImages = await this.imageLoader.loadAllRigImages(rigData, true);
1342
1294
  }
1343
1295
  const ctx = canvas.getContext('2d');
1344
1296
  if (!ctx) {