distark-render 1.1.15 → 1.1.16
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 +0 -0
- package/assets/tank.json +0 -0
- package/dist/cli/animate.d.ts +0 -0
- package/dist/cli/animate.d.ts.map +0 -0
- package/dist/cli/animate.js +0 -0
- package/dist/cli/animate.js.map +0 -0
- package/dist/cli/diff.d.ts +0 -0
- package/dist/cli/diff.d.ts.map +0 -0
- package/dist/cli/diff.js +0 -0
- package/dist/cli/diff.js.map +0 -0
- package/dist/cli/distark-check.d.ts +0 -0
- package/dist/cli/distark-check.d.ts.map +0 -0
- package/dist/cli/distark-check.js +0 -0
- package/dist/cli/distark-check.js.map +0 -0
- package/dist/cli/query.d.ts +0 -0
- package/dist/cli/query.d.ts.map +0 -0
- package/dist/cli/query.js +0 -0
- package/dist/cli/query.js.map +0 -0
- package/dist/cli/record.d.ts +0 -0
- package/dist/cli/record.d.ts.map +0 -0
- package/dist/cli/record.js +0 -0
- package/dist/cli/record.js.map +0 -0
- package/dist/cli/render.d.ts +0 -0
- package/dist/cli/render.d.ts.map +0 -0
- package/dist/cli/render.js +0 -0
- package/dist/cli/render.js.map +0 -0
- package/dist/cli/scene.d.ts +0 -0
- package/dist/cli/scene.d.ts.map +0 -0
- package/dist/cli/scene.js +16 -16
- package/dist/cli/scene.js.map +0 -0
- package/dist/cli/shared.d.ts +0 -0
- package/dist/cli/shared.d.ts.map +0 -0
- package/dist/cli/shared.js +0 -0
- package/dist/cli/shared.js.map +0 -0
- package/dist/cli/test.d.ts +0 -0
- package/dist/cli/test.d.ts.map +0 -0
- package/dist/cli/test.js +0 -0
- package/dist/cli/test.js.map +0 -0
- package/dist/cli/verify.d.ts +0 -0
- package/dist/cli/verify.d.ts.map +0 -0
- package/dist/cli/verify.js +0 -0
- package/dist/cli/verify.js.map +0 -0
- package/dist/modules/adapters/p5Renderer.d.ts +0 -0
- package/dist/modules/adapters/p5Renderer.d.ts.map +1 -1
- package/dist/modules/adapters/p5Renderer.js +54 -12
- package/dist/modules/adapters/p5Renderer.js.map +1 -1
- package/dist/modules/adapters/skiaRenderer.d.ts +0 -0
- package/dist/modules/adapters/skiaRenderer.d.ts.map +1 -1
- package/dist/modules/adapters/skiaRenderer.js +2 -1
- package/dist/modules/adapters/skiaRenderer.js.map +1 -1
- package/dist/modules/animationDiff.d.ts +0 -0
- package/dist/modules/animationDiff.d.ts.map +0 -0
- package/dist/modules/animationDiff.js +0 -0
- package/dist/modules/animationDiff.js.map +0 -0
- package/dist/modules/browserSceneRenderer.d.ts +0 -0
- package/dist/modules/browserSceneRenderer.d.ts.map +0 -0
- package/dist/modules/browserSceneRenderer.js +0 -0
- package/dist/modules/browserSceneRenderer.js.map +0 -0
- package/dist/modules/characterValidator.d.ts +2 -1
- package/dist/modules/characterValidator.d.ts.map +1 -1
- package/dist/modules/characterValidator.js +2 -41
- package/dist/modules/characterValidator.js.map +1 -1
- package/dist/modules/eyeSystem.d.ts +0 -0
- package/dist/modules/eyeSystem.d.ts.map +1 -1
- package/dist/modules/eyeSystem.js +104 -69
- package/dist/modules/eyeSystem.js.map +1 -1
- package/dist/modules/imageLoad.d.ts +50 -0
- package/dist/modules/imageLoad.d.ts.map +1 -1
- package/dist/modules/imageLoad.js +262 -18
- package/dist/modules/imageLoad.js.map +1 -1
- package/dist/modules/mouthSystem.d.ts +0 -0
- package/dist/modules/mouthSystem.d.ts.map +0 -0
- package/dist/modules/mouthSystem.js +0 -0
- package/dist/modules/mouthSystem.js.map +0 -0
- package/dist/modules/renderRig.d.ts +0 -0
- package/dist/modules/renderRig.d.ts.map +0 -0
- package/dist/modules/renderRig.js +0 -0
- package/dist/modules/renderRig.js.map +0 -0
- package/dist/modules/sceneRenderer.d.ts +0 -0
- package/dist/modules/sceneRenderer.d.ts.map +0 -0
- package/dist/modules/sceneRenderer.js +0 -0
- package/dist/modules/sceneRenderer.js.map +0 -0
- package/dist/tests/helpers.d.ts +0 -0
- package/dist/tests/helpers.d.ts.map +0 -0
- package/dist/tests/helpers.js +0 -0
- package/dist/tests/helpers.js.map +0 -0
- package/dist/tests/test-angle-swap.d.ts +0 -0
- package/dist/tests/test-angle-swap.d.ts.map +0 -0
- package/dist/tests/test-angle-swap.js +0 -0
- package/dist/tests/test-angle-swap.js.map +0 -0
- package/dist/tests/test-animation-diff-rendering.d.ts +0 -0
- package/dist/tests/test-animation-diff-rendering.d.ts.map +0 -0
- package/dist/tests/test-animation-diff-rendering.js +0 -0
- package/dist/tests/test-animation-diff-rendering.js.map +0 -0
- package/dist/tests/test-animation-diff.d.ts +0 -0
- package/dist/tests/test-animation-diff.d.ts.map +0 -0
- package/dist/tests/test-animation-diff.js +0 -0
- package/dist/tests/test-animation-diff.js.map +0 -0
- package/dist/tests/test-auto-eye-movement-e2e.d.ts +24 -0
- package/dist/tests/test-auto-eye-movement-e2e.d.ts.map +1 -0
- package/dist/tests/test-auto-eye-movement-e2e.js +514 -0
- package/dist/tests/test-auto-eye-movement-e2e.js.map +1 -0
- package/dist/tests/test-autofit.d.ts +0 -0
- package/dist/tests/test-autofit.d.ts.map +0 -0
- package/dist/tests/test-autofit.js +0 -0
- package/dist/tests/test-autofit.js.map +0 -0
- package/dist/tests/test-base-autofit.d.ts +0 -0
- package/dist/tests/test-base-autofit.d.ts.map +0 -0
- package/dist/tests/test-base-autofit.js +0 -0
- package/dist/tests/test-base-autofit.js.map +0 -0
- package/dist/tests/test-browser-scene.d.ts +0 -0
- package/dist/tests/test-browser-scene.d.ts.map +0 -0
- package/dist/tests/test-browser-scene.js +0 -0
- package/dist/tests/test-browser-scene.js.map +0 -0
- package/dist/tests/test-character-validator.d.ts +0 -0
- package/dist/tests/test-character-validator.d.ts.map +0 -0
- package/dist/tests/test-character-validator.js +0 -32
- package/dist/tests/test-character-validator.js.map +1 -1
- package/dist/tests/test-cli.d.ts +0 -0
- package/dist/tests/test-cli.d.ts.map +0 -0
- package/dist/tests/test-cli.js +0 -0
- package/dist/tests/test-cli.js.map +0 -0
- package/dist/tests/test-eye-system-reset.d.ts +15 -0
- package/dist/tests/test-eye-system-reset.d.ts.map +1 -0
- package/dist/tests/test-eye-system-reset.js +148 -0
- package/dist/tests/test-eye-system-reset.js.map +1 -0
- package/dist/tests/test-image-loading.d.ts +0 -0
- package/dist/tests/test-image-loading.d.ts.map +0 -0
- package/dist/tests/test-image-loading.js +0 -0
- package/dist/tests/test-image-loading.js.map +0 -0
- package/dist/tests/test-joint-movement.d.ts +0 -0
- package/dist/tests/test-joint-movement.d.ts.map +0 -0
- package/dist/tests/test-joint-movement.js +0 -0
- package/dist/tests/test-joint-movement.js.map +0 -0
- package/dist/tests/test-p5-image-types.d.ts +0 -0
- package/dist/tests/test-p5-image-types.d.ts.map +0 -0
- package/dist/tests/test-p5-image-types.js +0 -0
- package/dist/tests/test-p5-image-types.js.map +0 -0
- package/dist/tests/test-render-cache-visual.d.ts +0 -0
- package/dist/tests/test-render-cache-visual.d.ts.map +0 -0
- package/dist/tests/test-render-cache-visual.js +0 -0
- package/dist/tests/test-render-cache-visual.js.map +0 -0
- package/dist/tests/test-render-cache.d.ts +0 -0
- package/dist/tests/test-render-cache.d.ts.map +0 -0
- package/dist/tests/test-render-cache.js +0 -0
- package/dist/tests/test-render-cache.js.map +0 -0
- package/dist/tests/test-scene-object-svg-rerasterization.d.ts +0 -0
- package/dist/tests/test-scene-object-svg-rerasterization.d.ts.map +0 -0
- package/dist/tests/test-scene-object-svg-rerasterization.js +0 -0
- package/dist/tests/test-scene-object-svg-rerasterization.js.map +0 -0
- package/dist/tests/test-scene.d.ts +0 -0
- package/dist/tests/test-scene.d.ts.map +0 -0
- package/dist/tests/test-scene.js +0 -0
- package/dist/tests/test-scene.js.map +0 -0
- package/dist/tests/test-skia.d.ts +0 -0
- package/dist/tests/test-skia.d.ts.map +0 -0
- package/dist/tests/test-skia.js +0 -0
- package/dist/tests/test-skia.js.map +0 -0
- package/dist/tests/test-svg-parallax.d.ts +0 -0
- package/dist/tests/test-svg-parallax.d.ts.map +0 -0
- package/dist/tests/test-svg-parallax.js +0 -0
- package/dist/tests/test-svg-parallax.js.map +0 -0
- package/dist/tests/test-svg-rerasterization.d.ts +0 -0
- package/dist/tests/test-svg-rerasterization.d.ts.map +0 -0
- package/dist/tests/test-svg-rerasterization.js +194 -4
- package/dist/tests/test-svg-rerasterization.js.map +1 -1
- package/dist/tests/test-teen-tank-rig.d.ts +12 -0
- package/dist/tests/test-teen-tank-rig.d.ts.map +1 -0
- package/dist/tests/test-teen-tank-rig.js +122 -0
- package/dist/tests/test-teen-tank-rig.js.map +1 -0
- package/dist/tests/test-torso-pivot.d.ts +0 -0
- package/dist/tests/test-torso-pivot.d.ts.map +0 -0
- package/dist/tests/test-torso-pivot.js +0 -0
- package/dist/tests/test-torso-pivot.js.map +0 -0
- package/dist/tests/test-visual-verification.d.ts +0 -0
- package/dist/tests/test-visual-verification.d.ts.map +0 -0
- package/dist/tests/test-visual-verification.js +0 -0
- package/dist/tests/test-visual-verification.js.map +0 -0
- package/dist/types.d.ts +0 -0
- package/dist/types.d.ts.map +0 -0
- package/dist/types.js +0 -0
- package/dist/types.js.map +0 -0
- package/package.json +106 -106
- package/assets/presets/jumping-jack.json +0 -194
|
@@ -38,6 +38,10 @@ function applySvgParallaxToSource(svgSource, config, angleDegrees) {
|
|
|
38
38
|
return pathTag.replace(/\s*\/?>$/i, (ending) => ` transform="${transformValue}"${ending}`);
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
+
function isSvgRuntimeUpgradeLocked() {
|
|
42
|
+
return typeof globalThis !== 'undefined'
|
|
43
|
+
&& globalThis.__distarkSvgRuntimeUpgradeLocked === true;
|
|
44
|
+
}
|
|
41
45
|
/**
|
|
42
46
|
* ImageLoader class - Handles loading and caching images for character rigs
|
|
43
47
|
*/
|
|
@@ -215,12 +219,37 @@ export class ImageLoader {
|
|
|
215
219
|
const currentHeight = current.__distarkRasterHeight || current.height || 0;
|
|
216
220
|
const requestedWidth = current.__distarkRequestedRasterWidth || currentWidth;
|
|
217
221
|
const requestedHeight = current.__distarkRequestedRasterHeight || currentHeight;
|
|
222
|
+
// Once playback has precomputed the fixed-size SVG raster manifest, no
|
|
223
|
+
// runtime request is allowed to create or swap canvases. The previous
|
|
224
|
+
// behaviour replaced loadedImages[key] asynchronously here, which is the
|
|
225
|
+
// visible twitch/resizing path.
|
|
226
|
+
if (isSvgRuntimeUpgradeLocked()) {
|
|
227
|
+
return current;
|
|
228
|
+
}
|
|
229
|
+
// Guard 1: current raster is already large enough — serve it directly.
|
|
230
|
+
// Using <= (not ===) is the key invariant: the raster size is monotonically
|
|
231
|
+
// non-decreasing. Switching to === in commit 20182eb introduced a downgrade
|
|
232
|
+
// path: whenever desiredSize temporarily dipped below the cached raster size,
|
|
233
|
+
// a smaller canvas was requested; the next frame needing the larger size would
|
|
234
|
+
// then trigger another upgrade, creating perpetual oscillation ("shaking").
|
|
218
235
|
if (targetWidth <= currentWidth && targetHeight <= currentHeight) {
|
|
219
236
|
return current;
|
|
220
237
|
}
|
|
238
|
+
// Guard 2: an upgrade to at least the required size is already in flight.
|
|
221
239
|
if (targetWidth <= requestedWidth && targetHeight <= requestedHeight) {
|
|
222
240
|
return current;
|
|
223
241
|
}
|
|
242
|
+
// Guard 3 (hysteresis): absorb sub-pixel noise from floating-point scale
|
|
243
|
+
// values whose Math.round results may oscillate by ±1 px across frames.
|
|
244
|
+
// Only upgrade when the difference is substantial (> 2 px or > 2%).
|
|
245
|
+
const xTol = Math.max(2, Math.round(currentWidth * 0.02));
|
|
246
|
+
const yTol = Math.max(2, Math.round(currentHeight * 0.02));
|
|
247
|
+
if (Math.abs(targetWidth - currentWidth) <= xTol && Math.abs(targetHeight - currentHeight) <= yTol) {
|
|
248
|
+
return current;
|
|
249
|
+
}
|
|
250
|
+
// Always take the MAX of the current requested size and the new target.
|
|
251
|
+
// This ensures __distarkRequestedRasterWidth is monotonically non-decreasing,
|
|
252
|
+
// so Guard 2 on future frames correctly suppresses redundant re-rasterizations.
|
|
224
253
|
current.__distarkRequestedRasterWidth = Math.max(requestedWidth, targetWidth);
|
|
225
254
|
current.__distarkRequestedRasterHeight = Math.max(requestedHeight, targetHeight);
|
|
226
255
|
const pendingTargetWidth = current.__distarkRequestedRasterWidth;
|
|
@@ -229,7 +258,11 @@ export class ImageLoader {
|
|
|
229
258
|
if (!this.pendingRasterUpgrades.has(pendingKey)) {
|
|
230
259
|
const upgradePromise = this.createSvgCanvas(current.__distarkSvgSource, pendingTargetWidth, pendingTargetHeight)
|
|
231
260
|
.then((canvas) => {
|
|
232
|
-
this.attachSvgMetadata(canvas, current.__distarkSvgSource,
|
|
261
|
+
this.attachSvgMetadata(canvas, current.__distarkSvgSource,
|
|
262
|
+
// Preserve the SVG's true intrinsic dimensions so that
|
|
263
|
+
// future requestImageForSize calls with desiredWidth=0 can
|
|
264
|
+
// fall back to the original natural size, not the raster size.
|
|
265
|
+
current.__distarkIntrinsicWidth || pendingTargetWidth, current.__distarkIntrinsicHeight || pendingTargetHeight, pendingTargetWidth, pendingTargetHeight);
|
|
233
266
|
this.imageCache.set(key, canvas);
|
|
234
267
|
if (loadedImages) {
|
|
235
268
|
loadedImages[key] = canvas;
|
|
@@ -258,10 +291,19 @@ export class ImageLoader {
|
|
|
258
291
|
const existing = this.imageCache.get(variantKey);
|
|
259
292
|
const targetWidth = Math.max(1, Math.round(desiredWidth || baseImage.__distarkIntrinsicWidth || baseImage.width || 1));
|
|
260
293
|
const targetHeight = Math.max(1, Math.round(desiredHeight || baseImage.__distarkIntrinsicHeight || baseImage.height || 1));
|
|
294
|
+
if (isSvgRuntimeUpgradeLocked()) {
|
|
295
|
+
return existing || baseImage;
|
|
296
|
+
}
|
|
261
297
|
if (existing?.__distarkSvgSource === variantSource) {
|
|
262
298
|
const currentWidth = existing.__distarkRasterWidth || existing.width || 0;
|
|
263
299
|
const currentHeight = existing.__distarkRasterHeight || existing.height || 0;
|
|
264
|
-
if (targetWidth
|
|
300
|
+
if (targetWidth === currentWidth && targetHeight === currentHeight) {
|
|
301
|
+
return existing;
|
|
302
|
+
}
|
|
303
|
+
// Same hysteresis as requestImageForSize: skip re-rasterize for tiny size diffs.
|
|
304
|
+
const xTol = Math.max(2, Math.round(currentWidth * 0.02));
|
|
305
|
+
const yTol = Math.max(2, Math.round(currentHeight * 0.02));
|
|
306
|
+
if (Math.abs(targetWidth - currentWidth) <= xTol && Math.abs(targetHeight - currentHeight) <= yTol) {
|
|
265
307
|
return existing;
|
|
266
308
|
}
|
|
267
309
|
}
|
|
@@ -269,7 +311,7 @@ export class ImageLoader {
|
|
|
269
311
|
if (!this.pendingRasterUpgrades.has(pendingKey)) {
|
|
270
312
|
const upgradePromise = this.createSvgCanvas(variantSource, targetWidth, targetHeight)
|
|
271
313
|
.then((canvas) => {
|
|
272
|
-
this.attachSvgMetadata(canvas, variantSource,
|
|
314
|
+
this.attachSvgMetadata(canvas, variantSource, targetWidth, targetHeight, targetWidth, targetHeight);
|
|
273
315
|
this.imageCache.set(variantKey, canvas);
|
|
274
316
|
return canvas;
|
|
275
317
|
})
|
|
@@ -283,6 +325,99 @@ export class ImageLoader {
|
|
|
283
325
|
async waitForPendingImageUpgrades() {
|
|
284
326
|
await Promise.all(this.pendingRasterUpgrades.values());
|
|
285
327
|
}
|
|
328
|
+
/**
|
|
329
|
+
* Pre-rasterize all SVG parts at their rig dimensionValues sizes, scaled by
|
|
330
|
+
* pixelDensity so the first rendered frame is already sharp on retina displays.
|
|
331
|
+
*
|
|
332
|
+
* Pass `options.pixelDensity = p5.pixelDensity()` (typically 1 on standard
|
|
333
|
+
* screens, 2 on retina / HiDPI) so the target canvas matches exactly what
|
|
334
|
+
* _applyImageLoop will request:
|
|
335
|
+
* desiredWidth = dimensionValues[part].width × |scaleX| × pixelDensity
|
|
336
|
+
* Without this, every new loadImages call produces a canvas at 1× that is
|
|
337
|
+
* immediately eligible for an upgrade to 2×, causing 1–N frames of fuzziness
|
|
338
|
+
* while the async re-raster is in flight.
|
|
339
|
+
*
|
|
340
|
+
* This must be called AFTER the caller has already normalized __distarkSvgSource
|
|
341
|
+
* on each canvas (tight viewBox + preserveAspectRatio="none"). In the React
|
|
342
|
+
* app, Body.loadImages() does this via fitSvgViewBoxToContent +
|
|
343
|
+
* normalizeSvgPreserveAspectRatio before invoking prepareSvgCanvases.
|
|
344
|
+
*
|
|
345
|
+
* prepareSvgCanvases does NOT recompute content bounds. The caller owns that
|
|
346
|
+
* responsibility because it has access to browser DOM APIs (getBBox / DOMParser
|
|
347
|
+
* + accurate geometry). Any attempt to recompute here risks overriding the
|
|
348
|
+
* accurate tight viewBox with an inaccurate one (e.g. Bezier control-point
|
|
349
|
+
* bounds that exceed visible content), which is the root cause of distortion.
|
|
350
|
+
*
|
|
351
|
+
* Skips parts whose canvas is already at the target size (±2 px or 2% tolerance).
|
|
352
|
+
* Marks each produced canvas with __distarkSvgNormalized = true so Body.js
|
|
353
|
+
* rememberOriginalSvgImage does not re-run normalization on the next draw.
|
|
354
|
+
*/
|
|
355
|
+
async prepareSvgCanvases(rigData, loadedImages, options) {
|
|
356
|
+
const dimensionValues = rigData.dimensionValues;
|
|
357
|
+
const imagePaths = rigData.imagePaths;
|
|
358
|
+
if (!dimensionValues || !imagePaths)
|
|
359
|
+
return;
|
|
360
|
+
// Clamp the requested raster scale to a sane range, but preserve
|
|
361
|
+
// fractional camera/capture scales. Rounding 1.2 down to 1 would leave
|
|
362
|
+
// the first playback frame undersized and force an async upgrade.
|
|
363
|
+
const pd = Math.max(1, Math.min(8, Number(options?.pixelDensity) || 1));
|
|
364
|
+
await Promise.all(Object.entries(imagePaths).map(async ([partName, imageUrl]) => {
|
|
365
|
+
if (!imageUrl || typeof imageUrl !== 'string')
|
|
366
|
+
return;
|
|
367
|
+
const image = loadedImages?.[imageUrl];
|
|
368
|
+
if (!image?.__distarkSvgSource)
|
|
369
|
+
return;
|
|
370
|
+
const targetDims = dimensionValues[partName];
|
|
371
|
+
if (!targetDims?.width || !targetDims?.height)
|
|
372
|
+
return;
|
|
373
|
+
const targetWidth = Math.round(targetDims.width * pd);
|
|
374
|
+
const targetHeight = Math.round(targetDims.height * pd);
|
|
375
|
+
// Never downgrade a cached SVG canvas. Playback precompute may
|
|
376
|
+
// warm a high-resolution camera-scaled raster; later loadImages
|
|
377
|
+
// calls at plain pixelDensity must not replace it with a smaller
|
|
378
|
+
// canvas and reintroduce fuzzy frames.
|
|
379
|
+
const currentWidth = image.__distarkRasterWidth || image.width || 0;
|
|
380
|
+
const currentHeight = image.__distarkRasterHeight || image.height || 0;
|
|
381
|
+
if (image.__distarkSvgNormalized && targetWidth <= currentWidth && targetHeight <= currentHeight) {
|
|
382
|
+
return;
|
|
383
|
+
}
|
|
384
|
+
// Skip if already near the target size (hysteresis: 2 px or 2%)
|
|
385
|
+
const xTol = Math.max(2, Math.round(currentWidth * 0.02));
|
|
386
|
+
const yTol = Math.max(2, Math.round(currentHeight * 0.02));
|
|
387
|
+
if (Math.abs(targetWidth - currentWidth) <= xTol &&
|
|
388
|
+
Math.abs(targetHeight - currentHeight) <= yTol)
|
|
389
|
+
return;
|
|
390
|
+
// Use the source exactly as the caller provided it — the caller is
|
|
391
|
+
// responsible for tight viewBox + preserveAspectRatio="none".
|
|
392
|
+
// Safety net: inject preserveAspectRatio="none" if somehow absent,
|
|
393
|
+
// so normalizeSvgToVisibleBounds uses fill mode not letterbox mode.
|
|
394
|
+
let normalizedSource = image.__distarkSvgSource;
|
|
395
|
+
if (!/preserveAspectRatio\s*=\s*["']none["']/i.test(normalizedSource)) {
|
|
396
|
+
normalizedSource = ImageLoader.injectPreserveAspectRatioNone(normalizedSource);
|
|
397
|
+
}
|
|
398
|
+
const canvas = await this.createSvgCanvas(normalizedSource, targetWidth, targetHeight);
|
|
399
|
+
this.attachSvgMetadata(canvas, normalizedSource, image.__distarkIntrinsicWidth || targetWidth, image.__distarkIntrinsicHeight || targetHeight, targetWidth, targetHeight);
|
|
400
|
+
// Mark normalized so Body.js rememberOriginalSvgImage does not redo the work.
|
|
401
|
+
canvas.__distarkSvgNormalized = true;
|
|
402
|
+
// Propagate the (possibly updated) source back to the old image object
|
|
403
|
+
// in case anything still holds a reference to it.
|
|
404
|
+
image.__distarkSvgSource = normalizedSource;
|
|
405
|
+
this.imageCache.set(imageUrl, canvas);
|
|
406
|
+
loadedImages[imageUrl] = canvas;
|
|
407
|
+
}));
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Adds preserveAspectRatio="none" to the SVG root element.
|
|
411
|
+
* Replaces any existing preserveAspectRatio attribute value.
|
|
412
|
+
*/
|
|
413
|
+
static injectPreserveAspectRatioNone(svgSource) {
|
|
414
|
+
if (/preserveAspectRatio\s*=\s*["']none["']/i.test(svgSource))
|
|
415
|
+
return svgSource;
|
|
416
|
+
if (/preserveAspectRatio/i.test(svgSource)) {
|
|
417
|
+
return svgSource.replace(/preserveAspectRatio\s*=\s*["'][^"']*["']/i, 'preserveAspectRatio="none"');
|
|
418
|
+
}
|
|
419
|
+
return svgSource.replace(/(<svg\b[^>]*?)(\s*\/?>)/i, '$1 preserveAspectRatio="none"$2');
|
|
420
|
+
}
|
|
286
421
|
/**
|
|
287
422
|
* Load image with caching support
|
|
288
423
|
* Checks cache first, only loads if not cached
|
|
@@ -434,39 +569,147 @@ export class ImageLoader {
|
|
|
434
569
|
if (!value) {
|
|
435
570
|
return null;
|
|
436
571
|
}
|
|
437
|
-
const match = value.trim().match(/^([0-9]
|
|
572
|
+
const match = value.trim().match(/^([+-]?(?:[0-9]*\.)?[0-9]+)([a-z%]*)$/i);
|
|
438
573
|
if (!match) {
|
|
439
574
|
return null;
|
|
440
575
|
}
|
|
441
576
|
const parsed = Number(match[1]);
|
|
442
|
-
|
|
577
|
+
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
578
|
+
return null;
|
|
579
|
+
}
|
|
580
|
+
const unit = (match[2] || 'px').toLowerCase();
|
|
581
|
+
const pxPerUnit = {
|
|
582
|
+
px: 1,
|
|
583
|
+
in: 96,
|
|
584
|
+
cm: 96 / 2.54,
|
|
585
|
+
mm: 96 / 25.4,
|
|
586
|
+
pt: 96 / 72,
|
|
587
|
+
pc: 16,
|
|
588
|
+
};
|
|
589
|
+
return pxPerUnit[unit] ? parsed * pxPerUnit[unit] : parsed;
|
|
590
|
+
}
|
|
591
|
+
static parseViewBox(svgSource) {
|
|
592
|
+
const viewBoxMatch = svgSource.match(/\bviewBox=["']([^"']+)["']/i);
|
|
593
|
+
if (!viewBoxMatch?.[1]) {
|
|
594
|
+
return null;
|
|
595
|
+
}
|
|
596
|
+
const parts = viewBoxMatch[1].trim().split(/[\s,]+/).map(Number);
|
|
597
|
+
if (parts.length !== 4) {
|
|
598
|
+
return null;
|
|
599
|
+
}
|
|
600
|
+
const [minX, minY, width, height] = parts;
|
|
601
|
+
if (![minX, minY, width, height].every(Number.isFinite) || width <= 0 || height <= 0) {
|
|
602
|
+
return null;
|
|
603
|
+
}
|
|
604
|
+
return { minX, minY, width, height };
|
|
443
605
|
}
|
|
444
606
|
static parseSvgDimensions(svgSource) {
|
|
445
607
|
const widthMatch = svgSource.match(/\bwidth=["']([^"']+)["']/i);
|
|
446
608
|
const heightMatch = svgSource.match(/\bheight=["']([^"']+)["']/i);
|
|
447
|
-
const
|
|
609
|
+
const viewBox = ImageLoader.parseViewBox(svgSource);
|
|
448
610
|
const width = ImageLoader.parseDimension(widthMatch?.[1]);
|
|
449
611
|
const height = ImageLoader.parseDimension(heightMatch?.[1]);
|
|
450
612
|
if (width && height) {
|
|
451
613
|
return { width, height };
|
|
452
614
|
}
|
|
453
|
-
if (
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
return {
|
|
459
|
-
width: width || vbWidth,
|
|
460
|
-
height: height || vbHeight,
|
|
461
|
-
};
|
|
462
|
-
}
|
|
463
|
-
}
|
|
615
|
+
if (viewBox) {
|
|
616
|
+
return {
|
|
617
|
+
width: width || viewBox.width,
|
|
618
|
+
height: height || viewBox.height,
|
|
619
|
+
};
|
|
464
620
|
}
|
|
465
621
|
return {
|
|
466
622
|
width: width || 100,
|
|
467
623
|
height: height || 100,
|
|
468
624
|
};
|
|
469
625
|
}
|
|
626
|
+
static formatNumber(value) {
|
|
627
|
+
return Number(value.toFixed(4)).toString();
|
|
628
|
+
}
|
|
629
|
+
static setSvgRootAttribute(rootTag, name, value) {
|
|
630
|
+
const attrRegex = new RegExp(`\\s${name}=["'][^"']*["']`, 'i');
|
|
631
|
+
if (attrRegex.test(rootTag)) {
|
|
632
|
+
return rootTag.replace(attrRegex, ` ${name}="${value}"`);
|
|
633
|
+
}
|
|
634
|
+
return rootTag.replace(/\s*>$/, ` ${name}="${value}">`);
|
|
635
|
+
}
|
|
636
|
+
/**
|
|
637
|
+
* Rewrites the SVG so it renders at exactly targetWidth × targetHeight with no clipping.
|
|
638
|
+
*
|
|
639
|
+
* Strategy: scale-to-fit using the SVG's own declared dimensions (after unit conversion),
|
|
640
|
+
* then center the result within the target box. The viewBox is set to
|
|
641
|
+
* "0 0 targetWidth targetHeight" so 1 SVG user unit = 1 CSS pixel.
|
|
642
|
+
*
|
|
643
|
+
* This guarantees no cropping because we use min(scaleX, scaleY) (uniform fit), and the
|
|
644
|
+
* reference dimensions come from the SVG's declared width/height — not from a content-bounds
|
|
645
|
+
* measurement that could under-report and cause clipping.
|
|
646
|
+
*/
|
|
647
|
+
static normalizeSvgToVisibleBounds(svgSource, targetWidth, targetHeight) {
|
|
648
|
+
if (!targetWidth || !targetHeight || targetWidth <= 0 || targetHeight <= 0) {
|
|
649
|
+
return svgSource;
|
|
650
|
+
}
|
|
651
|
+
const rootMatch = svgSource.match(/<svg\b[^>]*>/i);
|
|
652
|
+
if (!rootMatch) {
|
|
653
|
+
return svgSource;
|
|
654
|
+
}
|
|
655
|
+
const dimensions = ImageLoader.parseSvgDimensions(svgSource);
|
|
656
|
+
const viewBox = ImageLoader.parseViewBox(svgSource) ?? { minX: 0, minY: 0, width: dimensions.width, height: dimensions.height };
|
|
657
|
+
// When the caller has marked the SVG with preserveAspectRatio="none" (e.g. Body.js
|
|
658
|
+
// patches Inkscape exports before the first requestImageForSize upgrade) we use
|
|
659
|
+
// non-uniform fill: each axis is scaled independently so the content fills the
|
|
660
|
+
// target box exactly with no padding. This matches the intent expressed by the
|
|
661
|
+
// attribute and prevents the visual dimension jump that occurs when the initial
|
|
662
|
+
// raster (rendered at intrinsic size without padding) is replaced by an upgrade
|
|
663
|
+
// raster rendered with uniform-fit letterboxing.
|
|
664
|
+
//
|
|
665
|
+
// Without the hint we keep the original uniform min-scale fit that centres the
|
|
666
|
+
// content inside the target box, which is the safe default for general SVG use.
|
|
667
|
+
const preserveNone = /preserveAspectRatio\s*=\s*["']none["']/i.test(rootMatch[0]);
|
|
668
|
+
let scaleUU_X;
|
|
669
|
+
let scaleUU_Y;
|
|
670
|
+
let translateX;
|
|
671
|
+
let translateY;
|
|
672
|
+
if (preserveNone) {
|
|
673
|
+
// Non-uniform fill: map viewBox directly to target dimensions, no padding.
|
|
674
|
+
scaleUU_X = targetWidth / viewBox.width;
|
|
675
|
+
scaleUU_Y = targetHeight / viewBox.height;
|
|
676
|
+
translateX = -viewBox.minX * scaleUU_X;
|
|
677
|
+
translateY = -viewBox.minY * scaleUU_Y;
|
|
678
|
+
}
|
|
679
|
+
else {
|
|
680
|
+
// Uniform fit: scale the SVG's intrinsic CSS-pixel size to fill the target box,
|
|
681
|
+
// then centre the result. Reference dimensions come from the SVG's declared
|
|
682
|
+
// width/height (after unit conversion) — not content bounds — to avoid clipping.
|
|
683
|
+
const fitScale = Math.min(targetWidth / dimensions.width, targetHeight / dimensions.height);
|
|
684
|
+
const scaledW = dimensions.width * fitScale;
|
|
685
|
+
const scaledH = dimensions.height * fitScale;
|
|
686
|
+
const offsetX = (targetWidth - scaledW) / 2;
|
|
687
|
+
const offsetY = (targetHeight - scaledH) / 2;
|
|
688
|
+
// The SVG content lives in viewBox user-unit space. Convert to CSS pixels then to
|
|
689
|
+
// target pixel space in one matrix: scaleUU = (CSS pixels per user unit) × fitScale.
|
|
690
|
+
scaleUU_X = (dimensions.width / viewBox.width) * fitScale;
|
|
691
|
+
scaleUU_Y = (dimensions.height / viewBox.height) * fitScale;
|
|
692
|
+
translateX = -viewBox.minX * scaleUU_X + offsetX;
|
|
693
|
+
translateY = -viewBox.minY * scaleUU_Y + offsetY;
|
|
694
|
+
}
|
|
695
|
+
let rootTag = rootMatch[0];
|
|
696
|
+
rootTag = ImageLoader.setSvgRootAttribute(rootTag, 'width', `${ImageLoader.formatNumber(targetWidth)}px`);
|
|
697
|
+
rootTag = ImageLoader.setSvgRootAttribute(rootTag, 'height', `${ImageLoader.formatNumber(targetHeight)}px`);
|
|
698
|
+
rootTag = ImageLoader.setSvgRootAttribute(rootTag, 'viewBox', `0 0 ${ImageLoader.formatNumber(targetWidth)} ${ImageLoader.formatNumber(targetHeight)}`);
|
|
699
|
+
const contentStart = (rootMatch.index || 0) + rootMatch[0].length;
|
|
700
|
+
const closeMatch = svgSource.match(/<\/svg\s*>/i);
|
|
701
|
+
if (!closeMatch || closeMatch.index === undefined) {
|
|
702
|
+
return `${svgSource.slice(0, rootMatch.index)}${rootTag}${svgSource.slice(contentStart)}`;
|
|
703
|
+
}
|
|
704
|
+
const inner = svgSource.slice(contentStart, closeMatch.index);
|
|
705
|
+
const identityScale = Math.abs(scaleUU_X - 1) < 0.001 && Math.abs(scaleUU_Y - 1) < 0.001;
|
|
706
|
+
const identityTranslate = Math.abs(translateX) < 0.001 && Math.abs(translateY) < 0.001;
|
|
707
|
+
if (identityScale && identityTranslate) {
|
|
708
|
+
return `${svgSource.slice(0, rootMatch.index)}${rootTag}${inner}${svgSource.slice(closeMatch.index)}`;
|
|
709
|
+
}
|
|
710
|
+
const fitTransform = `matrix(${ImageLoader.formatNumber(scaleUU_X)} 0 0 ${ImageLoader.formatNumber(scaleUU_Y)} ${ImageLoader.formatNumber(translateX)} ${ImageLoader.formatNumber(translateY)})`;
|
|
711
|
+
return `${svgSource.slice(0, rootMatch.index)}${rootTag}<g transform="${fitTransform}">${inner}</g>${svgSource.slice(closeMatch.index)}`;
|
|
712
|
+
}
|
|
470
713
|
async prepareResolvedAsset(imageUrl) {
|
|
471
714
|
if (imageUrl.startsWith('data:image/svg+xml')) {
|
|
472
715
|
const svgSource = ImageLoader.decodeSvgDataUrl(imageUrl);
|
|
@@ -496,7 +739,8 @@ export class ImageLoader {
|
|
|
496
739
|
async createSvgCanvas(svgSource, targetWidth, targetHeight) {
|
|
497
740
|
const width = Math.max(1, Math.round(targetWidth || 1));
|
|
498
741
|
const height = Math.max(1, Math.round(targetHeight || 1));
|
|
499
|
-
const
|
|
742
|
+
const normalizedSource = ImageLoader.normalizeSvgToVisibleBounds(svgSource, width, height);
|
|
743
|
+
const svgUrl = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(normalizedSource)}`;
|
|
500
744
|
const image = await this.loadDomImage(svgUrl);
|
|
501
745
|
if (typeof document === 'undefined' || typeof document.createElement !== 'function') {
|
|
502
746
|
throw new Error('Canvas creation is unavailable in this environment');
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/tests/helpers.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/tests/helpers.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TRUE End-to-End test: Auto eye movement with the real EyeSystem
|
|
3
|
+
*
|
|
4
|
+
* NO mocking of any kind — not Math.random, not Date.now, not EyeSystem.
|
|
5
|
+
* Tests use the real compiled module and real randomness.
|
|
6
|
+
*
|
|
7
|
+
* This is the ground-truth test that proves the eye system physically moves
|
|
8
|
+
* the iris when update(t, isPlaying=true) is called over time.
|
|
9
|
+
*
|
|
10
|
+
* Context:
|
|
11
|
+
* In the app, Body.update() now calls:
|
|
12
|
+
* const wallTime = Date.now() / 1000;
|
|
13
|
+
* eyeSystem.update(wallTime, /*isPlaying=*/true, ...);
|
|
14
|
+
* regardless of whether the timeline is playing or paused.
|
|
15
|
+
* These tests verify that this produces genuine, visible iris movement.
|
|
16
|
+
*
|
|
17
|
+
* The "teen tank" character (character_rig (7).json) is used for targeted tests
|
|
18
|
+
* because the user observed zero iris movement with that specific character.
|
|
19
|
+
* Root cause: socket-derived rangeX/rangeY both clamped to 0 when iris base
|
|
20
|
+
* dimensions exceeded the available socket space. Fixed by removing the iris-
|
|
21
|
+
* size subtraction and falling back to DEFAULT_MOVEMENT_RANGES instead.
|
|
22
|
+
*/
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=test-auto-eye-movement-e2e.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-auto-eye-movement-e2e.d.ts","sourceRoot":"","sources":["../../tests/test-auto-eye-movement-e2e.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
|