distark-render 1.1.10 → 1.1.11
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 +16 -16
- 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 +2 -12
- package/dist/cli/scene.d.ts.map +1 -1
- package/dist/cli/scene.js +4 -235
- package/dist/cli/scene.js.map +1 -1
- 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 +40 -17
- package/dist/modules/adapters/p5Renderer.js.map +1 -1
- package/dist/modules/adapters/skiaRenderer.d.ts +2 -0
- package/dist/modules/adapters/skiaRenderer.d.ts.map +1 -1
- package/dist/modules/adapters/skiaRenderer.js +47 -16
- 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/eyeSystem.d.ts +0 -0
- package/dist/modules/eyeSystem.d.ts.map +0 -0
- package/dist/modules/eyeSystem.js +0 -0
- package/dist/modules/eyeSystem.js.map +0 -0
- package/dist/modules/imageLoad.d.ts +22 -8
- package/dist/modules/imageLoad.d.ts.map +1 -1
- package/dist/modules/imageLoad.js +203 -78
- 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 +1 -1
- package/dist/modules/renderRig.js +52 -4
- package/dist/modules/renderRig.js.map +1 -1
- package/dist/modules/sceneRenderer.d.ts +2 -1
- package/dist/modules/sceneRenderer.d.ts.map +1 -1
- package/dist/modules/sceneRenderer.js +9 -6
- package/dist/modules/sceneRenderer.js.map +1 -1
- 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-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-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-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-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 +2 -0
- package/dist/tests/test-scene-object-svg-rerasterization.d.ts.map +1 -0
- package/dist/tests/test-scene-object-svg-rerasterization.js +86 -0
- package/dist/tests/test-scene-object-svg-rerasterization.js.map +1 -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-rerasterization.d.ts +2 -0
- package/dist/tests/test-svg-rerasterization.d.ts.map +1 -0
- package/dist/tests/test-svg-rerasterization.js +97 -0
- package/dist/tests/test-svg-rerasterization.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 +1 -1
- package/assets/presets/jumping-jack.json +0 -194
package/README.md
CHANGED
|
File without changes
|
package/assets/tank.json
CHANGED
|
File without changes
|
package/dist/cli/animate.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/cli/animate.js
CHANGED
|
File without changes
|
package/dist/cli/animate.js.map
CHANGED
|
File without changes
|
package/dist/cli/diff.d.ts
CHANGED
|
File without changes
|
package/dist/cli/diff.d.ts.map
CHANGED
|
File without changes
|
package/dist/cli/diff.js
CHANGED
|
File without changes
|
package/dist/cli/diff.js.map
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -17,22 +17,22 @@ import { runQuery } from './query.js';
|
|
|
17
17
|
import { runRecord } from './record.js';
|
|
18
18
|
import { runTest } from './test.js';
|
|
19
19
|
import { runScene } from './scene.js';
|
|
20
|
-
const USAGE = `distark-check - CLI tool for LLM-driven rig testing
|
|
21
|
-
|
|
22
|
-
Commands:
|
|
23
|
-
render <rig.json> [-o out.png] [--width N] [--height N] [--report]
|
|
24
|
-
verify <rig.json> [--checks all|bounds,visibility,proportions,zorder]
|
|
25
|
-
animate <rig.json> <animation.json> [-o frames/] [--width N] [--height N]
|
|
26
|
-
scene <world.json> [--time 0] [--chars a.json,b.json] [-o out.png] [--report]
|
|
27
|
-
scene <world.json> --keyframes [--frames 5] [--chars ...] [-o frames/]
|
|
28
|
-
diff <before.png> <after.png> [-o diff.png] [--threshold N]
|
|
29
|
-
query <image.png|rig.json> --prompt "..." [-o report.json]
|
|
30
|
-
test <rig.json|image|video> --prompt "..." [--tries N] [-o report.json]
|
|
31
|
-
record <world.json> [--orc URL] [-o out.mp4] [--timeout 300]
|
|
32
|
-
|
|
33
|
-
Environment:
|
|
34
|
-
GEMINI_API_KEY Required for 'query' and 'test' commands
|
|
35
|
-
ORC_URL Orchestrator URL for 'record' command (default: https://orchestrator.distark.com)
|
|
20
|
+
const USAGE = `distark-check - CLI tool for LLM-driven rig testing
|
|
21
|
+
|
|
22
|
+
Commands:
|
|
23
|
+
render <rig.json> [-o out.png] [--width N] [--height N] [--report]
|
|
24
|
+
verify <rig.json> [--checks all|bounds,visibility,proportions,zorder]
|
|
25
|
+
animate <rig.json> <animation.json> [-o frames/] [--width N] [--height N]
|
|
26
|
+
scene <world.json> [--time 0] [--chars a.json,b.json] [-o out.png] [--report]
|
|
27
|
+
scene <world.json> --keyframes [--frames 5] [--chars ...] [-o frames/]
|
|
28
|
+
diff <before.png> <after.png> [-o diff.png] [--threshold N]
|
|
29
|
+
query <image.png|rig.json> --prompt "..." [-o report.json]
|
|
30
|
+
test <rig.json|image|video> --prompt "..." [--tries N] [-o report.json]
|
|
31
|
+
record <world.json> [--orc URL] [-o out.mp4] [--timeout 300]
|
|
32
|
+
|
|
33
|
+
Environment:
|
|
34
|
+
GEMINI_API_KEY Required for 'query' and 'test' commands
|
|
35
|
+
ORC_URL Orchestrator URL for 'record' command (default: https://orchestrator.distark.com)
|
|
36
36
|
`;
|
|
37
37
|
async function main() {
|
|
38
38
|
const args = process.argv.slice(2);
|
|
File without changes
|
package/dist/cli/query.d.ts
CHANGED
|
File without changes
|
package/dist/cli/query.d.ts.map
CHANGED
|
File without changes
|
package/dist/cli/query.js
CHANGED
|
File without changes
|
package/dist/cli/query.js.map
CHANGED
|
File without changes
|
package/dist/cli/record.d.ts
CHANGED
|
File without changes
|
package/dist/cli/record.d.ts.map
CHANGED
|
File without changes
|
package/dist/cli/record.js
CHANGED
|
File without changes
|
package/dist/cli/record.js.map
CHANGED
|
File without changes
|
package/dist/cli/render.d.ts
CHANGED
|
File without changes
|
package/dist/cli/render.d.ts.map
CHANGED
|
File without changes
|
package/dist/cli/render.js
CHANGED
|
File without changes
|
package/dist/cli/render.js.map
CHANGED
|
File without changes
|
package/dist/cli/scene.d.ts
CHANGED
|
@@ -1,15 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* scene command -
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* distark-check scene <world.json> [--time 0] [-o output.png]
|
|
6
|
-
* distark-check scene <world.json> --keyframes [--frames 5] [-o frames/]
|
|
7
|
-
* distark-check scene <world.json> --video [-o output.mp4] [--fps 30]
|
|
8
|
-
*
|
|
9
|
-
* Characters: If world.characters[].imagePaths exists, rig data is used directly.
|
|
10
|
-
* Otherwise pass --chars char1.json,char2.json (id=path or just path).
|
|
11
|
-
*
|
|
12
|
-
* No audio/mouth — visual-only preview.
|
|
2
|
+
* scene command - stub placeholder (not yet implemented)
|
|
13
3
|
*/
|
|
14
|
-
export declare function runScene(
|
|
4
|
+
export declare function runScene(_args: string[]): Promise<void>;
|
|
15
5
|
//# sourceMappingURL=scene.d.ts.map
|
package/dist/cli/scene.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../cli/scene.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../cli/scene.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7D"}
|
package/dist/cli/scene.js
CHANGED
|
@@ -1,239 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* scene command -
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* distark-check scene <world.json> [--time 0] [-o output.png]
|
|
6
|
-
* distark-check scene <world.json> --keyframes [--frames 5] [-o frames/]
|
|
7
|
-
* distark-check scene <world.json> --video [-o output.mp4] [--fps 30]
|
|
8
|
-
*
|
|
9
|
-
* Characters: If world.characters[].imagePaths exists, rig data is used directly.
|
|
10
|
-
* Otherwise pass --chars char1.json,char2.json (id=path or just path).
|
|
11
|
-
*
|
|
12
|
-
* No audio/mouth — visual-only preview.
|
|
2
|
+
* scene command - stub placeholder (not yet implemented)
|
|
13
3
|
*/
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
function getMaxTime(world) {
|
|
18
|
-
let maxTime = 0;
|
|
19
|
-
for (const track of world.timeline || []) {
|
|
20
|
-
for (const lane of track.lanes || []) {
|
|
21
|
-
for (const kf of lane.keyframes || []) {
|
|
22
|
-
if (kf.time > maxTime)
|
|
23
|
-
maxTime = kf.time;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return maxTime || 5;
|
|
28
|
-
}
|
|
29
|
-
async function loadRigDataMap(world, charsArg) {
|
|
30
|
-
const rigDataMap = {};
|
|
31
|
-
// 1. Check if characters in world JSON already have embedded rig data
|
|
32
|
-
for (const char of world.characters || []) {
|
|
33
|
-
if (char.imagePaths) {
|
|
34
|
-
rigDataMap[char.id] = char;
|
|
35
|
-
console.error(` Using embedded rig: ${char.id}`);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
// 2. Load from --chars argument (overrides embedded data)
|
|
39
|
-
if (charsArg) {
|
|
40
|
-
const entries = charsArg.split(',').map(s => s.trim()).filter(Boolean);
|
|
41
|
-
for (const entry of entries) {
|
|
42
|
-
let id, path;
|
|
43
|
-
if (entry.includes('=')) {
|
|
44
|
-
[id, path] = entry.split('=', 2);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
path = entry;
|
|
48
|
-
id = path.replace(/\.json$/, '').split('/').pop() || path;
|
|
49
|
-
}
|
|
50
|
-
if (!existsSync(path)) {
|
|
51
|
-
console.error(` Warning: not found: ${path}`);
|
|
52
|
-
continue;
|
|
53
|
-
}
|
|
54
|
-
try {
|
|
55
|
-
rigDataMap[id] = JSON.parse(await readFile(path, 'utf-8'));
|
|
56
|
-
console.error(` Loaded rig file: ${id} ← ${path}`);
|
|
57
|
-
}
|
|
58
|
-
catch (e) {
|
|
59
|
-
console.error(` Warning: parse failed ${path}: ${e.message}`);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
const embedded = Object.keys(rigDataMap).length;
|
|
64
|
-
const charTotal = (world.characters || []).length;
|
|
65
|
-
if (embedded === 0 && charTotal > 0) {
|
|
66
|
-
console.error(` No rig data found — ${charTotal} character(s) will render as placeholders`);
|
|
67
|
-
}
|
|
68
|
-
return rigDataMap;
|
|
69
|
-
}
|
|
70
|
-
export async function runScene(args) {
|
|
71
|
-
const inputFile = args.find(a => !a.startsWith('-')) || '';
|
|
72
|
-
if (!inputFile) {
|
|
73
|
-
console.error(`Usage:
|
|
74
|
-
distark-check scene <world.json> [--time 0] [-o output.png] [--report]
|
|
75
|
-
distark-check scene <world.json> --keyframes [--frames 5] [-o frames/]
|
|
76
|
-
distark-check scene <world.json> --video [-o output.mp4] [--fps 30]
|
|
77
|
-
|
|
78
|
-
Options:
|
|
79
|
-
--time <seconds> Time to evaluate (default: 0)
|
|
80
|
-
--chars <files> Comma-separated rig files: id=path or path (optional if embedded)
|
|
81
|
-
--keyframes Render key frames across scene duration
|
|
82
|
-
--video Render all frames and assemble into MP4 via ffmpeg
|
|
83
|
-
--frames <count> Key frame count (default: 5, used with --keyframes)
|
|
84
|
-
--fps <number> Frames per second for --video (default: 30)
|
|
85
|
-
--width <pixels> Output width (default: 2560)
|
|
86
|
-
--height <pixels> Output height (default: 1440)
|
|
87
|
-
-o <path> Output file or directory
|
|
88
|
-
--state Print scene state as JSON (no rendering)
|
|
89
|
-
--report Save report JSON alongside output`);
|
|
90
|
-
process.exit(1);
|
|
91
|
-
}
|
|
92
|
-
// Parse args
|
|
93
|
-
const getArg = (flag) => { const i = args.indexOf(flag); return i !== -1 ? args[i + 1] : undefined; };
|
|
94
|
-
const time = parseFloat(getArg('--time') || '0');
|
|
95
|
-
const charsArg = getArg('--chars') || '';
|
|
96
|
-
const outIdx = args.indexOf('-o');
|
|
97
|
-
const keyframeMode = args.includes('--keyframes');
|
|
98
|
-
const videoMode = args.includes('--video');
|
|
99
|
-
const frameCount = parseInt(getArg('--frames') || '5');
|
|
100
|
-
const fps = parseInt(getArg('--fps') || '30');
|
|
101
|
-
const width = parseInt(getArg('--width') || '2560');
|
|
102
|
-
const height = parseInt(getArg('--height') || '1440');
|
|
103
|
-
const stateOnly = args.includes('--state');
|
|
104
|
-
const wantReport = args.includes('--report');
|
|
105
|
-
const world = JSON.parse(await readFile(inputFile, 'utf-8'));
|
|
106
|
-
if (stateOnly) {
|
|
107
|
-
const state = evaluateScene(world, time);
|
|
108
|
-
console.log(JSON.stringify(state, null, 2));
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
console.error(`Loading character rigs...`);
|
|
112
|
-
const rigDataMap = await loadRigDataMap(world, charsArg);
|
|
113
|
-
if (videoMode) {
|
|
114
|
-
await renderVideo(world, rigDataMap, { width, height, fps, inputFile, outputArg: outIdx !== -1 ? args[outIdx + 1] : undefined });
|
|
115
|
-
}
|
|
116
|
-
else if (keyframeMode) {
|
|
117
|
-
await renderKeyframes(world, rigDataMap, { width, height, frameCount, inputFile, outputArg: outIdx !== -1 ? args[outIdx + 1] : undefined });
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
await renderSingleFrame(world, rigDataMap, { width, height, time, wantReport, inputFile, outputArg: outIdx !== -1 ? args[outIdx + 1] : undefined });
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
// ── Single frame ──────────────────────────────────────────────────
|
|
124
|
-
async function renderSingleFrame(world, rigDataMap, opts) {
|
|
125
|
-
const outputFile = opts.outputArg || opts.inputFile.replace(/\.json$/, '.png');
|
|
126
|
-
console.error(`Rendering scene at t=${opts.time}s → ${outputFile}`);
|
|
127
|
-
const origLog = console.log;
|
|
128
|
-
console.log = (...a) => console.error(...a);
|
|
129
|
-
const report = await renderScene(world, opts.time, outputFile, rigDataMap, { width: opts.width, height: opts.height });
|
|
130
|
-
console.log = origLog;
|
|
131
|
-
console.error(`Rendered: ${outputFile} (${opts.width}x${opts.height})`);
|
|
132
|
-
console.error(` Characters: ${report.quality.visible_characters}/${report.quality.total_characters} visible`);
|
|
133
|
-
if (opts.wantReport) {
|
|
134
|
-
const reportFile = outputFile.replace(/\.png$/, '.report.json');
|
|
135
|
-
await writeFile(reportFile, JSON.stringify(report, null, 2));
|
|
136
|
-
console.error(`Report: ${reportFile}`);
|
|
137
|
-
}
|
|
138
|
-
console.log(JSON.stringify(report, null, 2));
|
|
139
|
-
}
|
|
140
|
-
// ── Keyframes ─────────────────────────────────────────────────────
|
|
141
|
-
async function renderKeyframes(world, rigDataMap, opts) {
|
|
142
|
-
const outputDir = opts.outputArg || 'scene-frames';
|
|
143
|
-
console.error(`Rendering ${opts.frameCount} key frames to ${outputDir}/`);
|
|
144
|
-
const reports = await renderSceneKeyFrames(world, outputDir, rigDataMap, {
|
|
145
|
-
width: opts.width, height: opts.height, frameCount: opts.frameCount
|
|
146
|
-
});
|
|
147
|
-
const manifest = {
|
|
148
|
-
input: opts.inputFile, output_dir: outputDir, frame_count: reports.length,
|
|
149
|
-
frames: reports.map((r, i) => ({
|
|
150
|
-
index: i, time: r.time, file: `${String(i).padStart(3, '0')}.png`,
|
|
151
|
-
visible_characters: r.characters.filter(c => !c.hidden).map(c => c.id), camera: r.camera,
|
|
152
|
-
})),
|
|
153
|
-
quality: reports[0]?.quality || {},
|
|
154
|
-
};
|
|
155
|
-
await writeFile(`${outputDir}/manifest.json`, JSON.stringify(manifest, null, 2));
|
|
156
|
-
console.error(`Manifest: ${outputDir}/manifest.json`);
|
|
157
|
-
console.log(JSON.stringify(manifest, null, 2));
|
|
158
|
-
}
|
|
159
|
-
// ── Video ─────────────────────────────────────────────────────────
|
|
160
|
-
async function renderVideo(world, rigDataMap, opts) {
|
|
161
|
-
const { spawn } = await import('child_process');
|
|
162
|
-
const outputFile = opts.outputArg || opts.inputFile.replace(/\.json$/, '.mp4');
|
|
163
|
-
const maxTime = getMaxTime(world);
|
|
164
|
-
const totalFrames = Math.max(1, Math.ceil(maxTime * opts.fps));
|
|
165
|
-
console.error(`Rendering video: ${totalFrames} frames at ${opts.fps}fps (${maxTime.toFixed(1)}s) → ${outputFile}`);
|
|
166
|
-
console.error(` Resolution: ${opts.width}x${opts.height}`);
|
|
167
|
-
const engine = new SceneEngine(world, rigDataMap);
|
|
168
|
-
console.error(` Initializing engine...`);
|
|
169
|
-
const origLog = console.log;
|
|
170
|
-
console.log = (...a) => console.error(...a);
|
|
171
|
-
await engine.init();
|
|
172
|
-
console.log = origLog;
|
|
173
|
-
console.error(` Engine ready. Piping raw frames to ffmpeg...`);
|
|
174
|
-
// Spawn ffmpeg, pipe raw RGBA frames via stdin — no PNG encoding, no temp files
|
|
175
|
-
const ffmpeg = spawn('ffmpeg', [
|
|
176
|
-
'-y',
|
|
177
|
-
'-f', 'rawvideo',
|
|
178
|
-
'-pix_fmt', 'rgba',
|
|
179
|
-
'-s', `${opts.width}x${opts.height}`,
|
|
180
|
-
'-r', String(opts.fps),
|
|
181
|
-
'-i', 'pipe:0',
|
|
182
|
-
'-c:v', 'libx264',
|
|
183
|
-
'-pix_fmt', 'yuv420p',
|
|
184
|
-
'-crf', '23',
|
|
185
|
-
'-preset', 'fast',
|
|
186
|
-
outputFile
|
|
187
|
-
], { stdio: ['pipe', 'pipe', 'pipe'] });
|
|
188
|
-
const ffmpegPromise = new Promise((resolve, reject) => {
|
|
189
|
-
ffmpeg.on('close', (code) => {
|
|
190
|
-
if (code === 0)
|
|
191
|
-
resolve();
|
|
192
|
-
else
|
|
193
|
-
reject(new Error(`ffmpeg exited with code ${code}`));
|
|
194
|
-
});
|
|
195
|
-
ffmpeg.on('error', reject);
|
|
196
|
-
});
|
|
197
|
-
const startTime = Date.now();
|
|
198
|
-
for (let i = 0; i < totalFrames; i++) {
|
|
199
|
-
const t = i / opts.fps;
|
|
200
|
-
const canvas = await engine.renderFrameToCanvas(t, opts.width, opts.height);
|
|
201
|
-
// Get raw RGBA pixel data from canvas
|
|
202
|
-
const ctx = canvas.getContext('2d');
|
|
203
|
-
const imageData = ctx.getImageData(0, 0, opts.width, opts.height);
|
|
204
|
-
const rgbaBuffer = Buffer.from(imageData.data.buffer);
|
|
205
|
-
// Write to ffmpeg stdin (backpressure handling)
|
|
206
|
-
const canWrite = ffmpeg.stdin.write(rgbaBuffer);
|
|
207
|
-
if (!canWrite) {
|
|
208
|
-
await new Promise(resolve => ffmpeg.stdin.once('drain', resolve));
|
|
209
|
-
}
|
|
210
|
-
if (i % 30 === 0 || i === totalFrames - 1) {
|
|
211
|
-
const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
212
|
-
const pct = Math.round((i / totalFrames) * 100);
|
|
213
|
-
const msPerFrame = i > 0 ? ((Date.now() - startTime) / i).toFixed(0) : '?';
|
|
214
|
-
console.error(` Frame ${i}/${totalFrames - 1} (${pct}%) t=${t.toFixed(2)}s [${elapsed}s, ${msPerFrame}ms/frame]`);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
// Close stdin to signal EOF, wait for ffmpeg to finish
|
|
218
|
-
ffmpeg.stdin.end();
|
|
219
|
-
await ffmpegPromise;
|
|
220
|
-
const renderTime = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
221
|
-
const { statSync } = await import('fs');
|
|
222
|
-
const stats = statSync(outputFile);
|
|
223
|
-
const sizeMB = (stats.size / 1024 / 1024).toFixed(1);
|
|
224
|
-
const totalTime = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
225
|
-
console.error(` Video: ${outputFile} (${sizeMB}MB, ${totalTime}s total)`);
|
|
226
|
-
const report = {
|
|
227
|
-
input: opts.inputFile,
|
|
228
|
-
output: outputFile,
|
|
229
|
-
duration_seconds: maxTime,
|
|
230
|
-
fps: opts.fps,
|
|
231
|
-
total_frames: totalFrames,
|
|
232
|
-
resolution: { width: opts.width, height: opts.height },
|
|
233
|
-
file_size_mb: parseFloat(sizeMB),
|
|
234
|
-
render_time_seconds: parseFloat(renderTime),
|
|
235
|
-
total_time_seconds: parseFloat(totalTime),
|
|
236
|
-
};
|
|
237
|
-
console.log(JSON.stringify(report, null, 2));
|
|
4
|
+
export async function runScene(_args) {
|
|
5
|
+
console.error('scene command is not yet implemented');
|
|
6
|
+
process.exit(1);
|
|
238
7
|
}
|
|
239
8
|
//# sourceMappingURL=scene.js.map
|
package/dist/cli/scene.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene.js","sourceRoot":"","sources":["../../cli/scene.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scene.js","sourceRoot":"","sources":["../../cli/scene.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAe;IAC1C,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
package/dist/cli/shared.d.ts
CHANGED
|
File without changes
|
package/dist/cli/shared.d.ts.map
CHANGED
|
File without changes
|
package/dist/cli/shared.js
CHANGED
|
File without changes
|
package/dist/cli/shared.js.map
CHANGED
|
File without changes
|
package/dist/cli/test.d.ts
CHANGED
|
File without changes
|
package/dist/cli/test.d.ts.map
CHANGED
|
File without changes
|
package/dist/cli/test.js
CHANGED
|
File without changes
|
package/dist/cli/test.js.map
CHANGED
|
File without changes
|
package/dist/cli/verify.d.ts
CHANGED
|
File without changes
|
package/dist/cli/verify.d.ts.map
CHANGED
|
File without changes
|
package/dist/cli/verify.js
CHANGED
|
File without changes
|
package/dist/cli/verify.js.map
CHANGED
|
File without changes
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p5Renderer.d.ts","sourceRoot":"","sources":["../../../modules/adapters/p5Renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,KAAK,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAEhF;;;GAGG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAC1C,OAAO,CAAC,EAAE,CAAM;gBAEJ,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK9C;;;OAGG;IACH,SAAS,CACL,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,EACxC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,GACvD,IAAI;
|
|
1
|
+
{"version":3,"file":"p5Renderer.d.ts","sourceRoot":"","sources":["../../../modules/adapters/p5Renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,KAAK,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAEhF;;;GAGG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAC1C,OAAO,CAAC,EAAE,CAAM;gBAEJ,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK9C;;;OAGG;IACH,SAAS,CACL,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,EACxC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,GACvD,IAAI;IA8DP;;;;OAIG;IACG,gBAAgB,CAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,OAAc,EACxB,UAAU,CAAC,EAAE,gBAAgB,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAwClC;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,UAAW,SAAQ,oBAAoB;IAChD,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,OAAO,CAAkB;gBAErB,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM;IAM9C;;;OAGG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa;IAe1E;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,GAAE,OAAe,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IA6BrF;;;;;;OAMG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,UAAU,GAAE,OAAe,GAAG,IAAI;IAKhG;;OAEG;IACH,KAAK,IAAI,OAAO;IAIhB;;OAEG;IACH,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAGzC"}
|
|
@@ -18,30 +18,53 @@ export class P5ImageLoader extends ImageLoader {
|
|
|
18
18
|
* Inherits all caching, URL resolution, and batch loading from base class
|
|
19
19
|
*/
|
|
20
20
|
loadImage(key, imageData, onLoad, onError) {
|
|
21
|
-
const imageUrl = this.resolveImageSource(imageData);
|
|
22
|
-
if (!imageUrl) {
|
|
23
|
-
console.warn(`Could not resolve image source for ${key}: ${imageData}`);
|
|
24
|
-
if (onError)
|
|
25
|
-
onError(key, 'Invalid image source');
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
// Check cache first (from base class)
|
|
29
21
|
const cached = this.getCachedImage(key);
|
|
30
22
|
if (cached) {
|
|
31
23
|
if (onLoad)
|
|
32
24
|
onLoad(key, cached);
|
|
33
25
|
return;
|
|
34
26
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (onLoad)
|
|
39
|
-
onLoad(key, img);
|
|
40
|
-
}, (err) => {
|
|
41
|
-
console.error(`Failed to load ${key}:`, err);
|
|
27
|
+
const imageUrl = this.resolveImageSource(imageData);
|
|
28
|
+
if (!imageUrl) {
|
|
29
|
+
console.warn(`Could not resolve image source for ${key}: ${imageData}`);
|
|
42
30
|
if (onError)
|
|
43
|
-
onError(key,
|
|
44
|
-
|
|
31
|
+
onError(key, 'Invalid image source');
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
void (async () => {
|
|
35
|
+
try {
|
|
36
|
+
const prepared = await this.prepareResolvedAsset(imageUrl);
|
|
37
|
+
if (prepared?.kind === 'svg') {
|
|
38
|
+
const canvas = await this.createSvgCanvas(prepared.svgSource, prepared.intrinsicWidth, prepared.intrinsicHeight);
|
|
39
|
+
this.attachSvgMetadata(canvas, prepared.svgSource, prepared.intrinsicWidth, prepared.intrinsicHeight, prepared.intrinsicWidth, prepared.intrinsicHeight);
|
|
40
|
+
this.cacheImage(key, canvas);
|
|
41
|
+
if (onLoad)
|
|
42
|
+
onLoad(key, canvas);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const loadUrl = prepared?.kind === 'blob' ? prepared.objectUrl : imageUrl;
|
|
46
|
+
this.p5.loadImage(loadUrl, (img) => {
|
|
47
|
+
this.cacheImage(key, img);
|
|
48
|
+
if (prepared?.kind === 'blob') {
|
|
49
|
+
URL.revokeObjectURL(prepared.objectUrl);
|
|
50
|
+
}
|
|
51
|
+
if (onLoad)
|
|
52
|
+
onLoad(key, img);
|
|
53
|
+
}, (err) => {
|
|
54
|
+
if (prepared?.kind === 'blob') {
|
|
55
|
+
URL.revokeObjectURL(prepared.objectUrl);
|
|
56
|
+
}
|
|
57
|
+
console.error(`Failed to load ${key}:`, err);
|
|
58
|
+
if (onError)
|
|
59
|
+
onError(key, err);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
console.error(`Failed to load ${key}:`, err);
|
|
64
|
+
if (onError)
|
|
65
|
+
onError(key, err instanceof Error ? err.message : err);
|
|
66
|
+
}
|
|
67
|
+
})();
|
|
45
68
|
}
|
|
46
69
|
/**
|
|
47
70
|
* Override to use p5.loadImage instead of createImageBitmap.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p5Renderer.js","sourceRoot":"","sources":["../../../modules/adapters/p5Renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIvD;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,WAAW;IAG1C,YAAY,UAAe,EAAE,QAAiB;QAC1C,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,SAAS,CACL,GAAW,EACX,SAAiB,EACjB,MAAwC,EACxC,OAAsD;QAEtD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"p5Renderer.js","sourceRoot":"","sources":["../../../modules/adapters/p5Renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIvD;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,WAAW;IAG1C,YAAY,UAAe,EAAE,QAAiB;QAC1C,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,SAAS,CACL,GAAW,EACX,SAAiB,EACjB,MAAwC,EACxC,OAAsD;QAEtD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,MAAM;gBAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAChC,OAAO;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,sCAAsC,GAAG,KAAK,SAAS,EAAE,CAAC,CAAC;YACxE,IAAI,OAAO;gBAAE,OAAO,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;YAClD,OAAO;QACX,CAAC;QAED,KAAK,CAAC,KAAK,IAAI,EAAE;YACb,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBAE3D,IAAI,QAAQ,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CACrC,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,cAAc,EACvB,QAAQ,CAAC,eAAe,CAC3B,CAAC;oBACF,IAAI,CAAC,iBAAiB,CAClB,MAAM,EACN,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,cAAc,EACvB,QAAQ,CAAC,eAAe,EACxB,QAAQ,CAAC,cAAc,EACvB,QAAQ,CAAC,eAAe,CAC3B,CAAC;oBACF,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAC7B,IAAI,MAAM;wBAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBAChC,OAAO;gBACX,CAAC;gBAED,MAAM,OAAO,GAAG,QAAQ,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC1E,IAAI,CAAC,EAAE,CAAC,SAAS,CACb,OAAO,EACP,CAAC,GAAQ,EAAE,EAAE;oBACT,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC1B,IAAI,QAAQ,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC5B,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC5C,CAAC;oBACD,IAAI,MAAM;wBAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACjC,CAAC,EACD,CAAC,GAAQ,EAAE,EAAE;oBACT,IAAI,QAAQ,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC5B,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC5C,CAAC;oBACD,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC7C,IAAI,OAAO;wBAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACnC,CAAC,CACJ,CAAC;YACN,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,kBAAkB,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC7C,IAAI,OAAO;oBAAE,OAAO,CAAC,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC;YAClF,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAClB,OAAgB,EAChB,WAAoB,IAAI,EACxB,UAA6B;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE1D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,GAAwB,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAE5B,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAChC,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gBAC/B,IAAI,CAAC,SAAS,CACV,IAAI,EACJ,IAAI,EACJ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;oBACX,MAAM,EAAE,CAAC;oBACT,IAAI,UAAU;wBAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;oBAClD,OAAO,EAAE,CAAC;gBACd,CAAC,EACD,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;oBACX,MAAM,EAAE,CAAC;oBACT,IAAI,UAAU;wBAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;oBAClD,OAAO,EAAE,CAAC;gBACd,CAAC,CACJ,CAAC;YACN,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,CAAC;QAEJ,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,kBAAkB,MAAM,IAAI,KAAK,eAAe,MAAM,SAAS,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,UAAW,SAAQ,oBAAoB;IAKhD,YAAY,UAAe,EAAE,QAAiB;QAC1C,MAAM,WAAW,GAAG,IAAI,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5D,KAAK,CAAC,WAAW,CAAC,CAAC;QALf,iBAAY,GAAwB,EAAE,CAAC;QACvC,YAAO,GAAY,KAAK,CAAC;QAK7B,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,OAAgB;QAC7B,IAAI,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,OAAgB,EAAE,OAAgC;QACtD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,aAAa,GAAkB;YACjC,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK;YAClD,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM;YACrD,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;YACrD,YAAY,EAAE,IAAI,CAAC,YAAY;SAClC,CAAC;QAEF,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAChE,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,OAAc,EAAE,aAAsB,KAAK,EAAE,WAAmB;QAC1E,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC,SAAS;gBAAE,OAAO;YAE3B,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAEtC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC;YACvC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YAElE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,iCAAiC;QACjC,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;YAC5B,WAAW,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;gBAC/B,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC/B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,OAAgB,EAAE,OAAgC,EAAE,aAAsB,KAAK;QACrF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACH,KAAK;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,eAAe;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;CACJ"}
|
|
@@ -17,6 +17,8 @@ export declare class SkiaImageLoader extends ImageLoader {
|
|
|
17
17
|
*/
|
|
18
18
|
loadImageAsync(key: string, imageData: string): Promise<any>;
|
|
19
19
|
loadAllRigImagesAsync(rigData: RigData): Promise<Record<string, any>>;
|
|
20
|
+
protected createSvgCanvas(svgSource: string, targetWidth: number, targetHeight: number): Promise<any>;
|
|
21
|
+
private getCanvasModule;
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
22
24
|
* Skia Canvas Renderer - Complete rendering solution for Node.js
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skiaRenderer.d.ts","sourceRoot":"","sources":["../../../modules/adapters/skiaRenderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE5E;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,WAAW;gBAChC,QAAQ,CAAC,EAAE,MAAM;IAI7B;;;OAGG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"skiaRenderer.d.ts","sourceRoot":"","sources":["../../../modules/adapters/skiaRenderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE5E;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,WAAW;gBAChC,QAAQ,CAAC,EAAE,MAAM;IAI7B;;;OAGG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA0C5D,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;cAiElD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;YAiBtG,eAAe;CAiBhC;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAa,SAAQ,oBAAoB;IAClD,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,OAAO,CAAkB;gBAErB,QAAQ,CAAC,EAAE,MAAM;IAK7B;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjD;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAa/D;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,GAAG,aAAa;IAe9E;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,GAAE,OAAe,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IAgC/F;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,UAAU,GAAE,OAAe,GAAG,IAAI;IAgBlH;;;;;;OAMG;IACG,YAAY,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/E,OAAO,CAAC,IAAI,CAAC;IA+BhB;;OAEG;IACG,cAAc,CAChB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAChC,MAAM,GAAE,KAAK,GAAG,MAAc,GAC/B,OAAO,CAAC,MAAM,CAAC;IAclB;;OAEG;IACH,KAAK,IAAI,OAAO;IAIhB;;OAEG;IACH,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAGzC"}
|