@nodecraft/rendermite 1.0.5 → 1.0.6
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 +5 -0
- package/dist/atlas/registry.d.ts +3 -3
- package/dist/atlas/sources.d.ts +1 -1
- package/dist/{blend-Qvrn6YgK.d.ts → blend-CyDIxCne.d.ts} +1 -1
- package/dist/cache-Cr2ON3RQ.js +66 -0
- package/dist/cli.js +12 -6
- package/dist/compose-CQCb2LVv.js +104 -0
- package/dist/descriptor-DWebtkI1.js +26 -0
- package/dist/{discovery-D89pVVJA.d.ts → discovery-wiJBGryo.d.ts} +1 -1
- package/dist/dynamic/generators.d.ts +1 -1
- package/dist/dynamic/generators.js +1 -1
- package/dist/{encode-3u49i-eD.js → encode-D6dQu2dJ.js} +16 -4
- package/dist/{encode-C5kdAm45.d.ts → encode-DaNQF28M.d.ts} +1 -1
- package/dist/{entity-fallback-DfL0_eyf.js → entity-fallback-BRCeGKBT.js} +1 -1
- package/dist/{face-CpVdnf-w.d.ts → face-BIYg14TE.d.ts} +10 -4
- package/dist/{face-D-N1amV4.js → face-DmCiHUd5.js} +23 -10
- package/dist/{generators-CcVRG30y.js → generators-BlG4KmtP.js} +1 -1
- package/dist/{generators-CCB8h0mP.d.ts → generators-DhRov4RB.d.ts} +1 -1
- package/dist/{geo-Dq2zve09.js → geo-Diky41Tw.js} +6 -3
- package/dist/index.d.ts +14 -14
- package/dist/index.js +11 -11
- package/dist/{item-styles-DJ3LWZS2.js → item-styles-upgEO1yP.js} +1 -1
- package/dist/items/discovery.d.ts +1 -1
- package/dist/{jar-6T3xdgaL.d.ts → jar-CFkA-VgT.d.ts} +2 -1
- package/dist/{jar-Bt3i0ls4.js → jar-D9z-X7tA.js} +12 -12
- package/dist/{legacy-reshape-CewShfF3.js → legacy-reshape-C05SfAPR.js} +1 -1
- package/dist/{loader-A-BZa8J4.js → loader-B8NJO7pR.js} +12 -3
- package/dist/{loader-CBzn3Koc.js → loader-CfXMxcEV.js} +37 -7
- package/dist/{loader-C-6QN3xv.d.ts → loader-D22zZME7.d.ts} +2 -2
- package/dist/{loader-TFFNV4Jl.d.ts → loader-Myy22TDL.d.ts} +8 -2
- package/dist/{manager-dfI7b9N4.js → manager-CkletR5K.js} +29 -2
- package/dist/{manager-CoZaeQTu.d.ts → manager-Cv1NeFyF.d.ts} +28 -1
- package/dist/models/loader.d.ts +1 -1
- package/dist/models/loader.js +1 -1
- package/dist/mods/prepare.d.ts +1 -1
- package/dist/mods/prepare.js +1 -1
- package/dist/mods/synthesize.d.ts +2 -2
- package/dist/mods/synthesize.js +1 -1
- package/dist/mods/tints.d.ts +2 -2
- package/dist/mods/tints.js +1 -1
- package/dist/output/encode.d.ts +1 -1
- package/dist/output/encode.js +1 -1
- package/dist/output/item-styles.js +1 -1
- package/dist/pipeline-BIk1RRIp.js +221 -0
- package/dist/pipeline-zq-yU3Te.d.ts +58 -0
- package/dist/pool-CKGp1qup.js +131 -0
- package/dist/{prepare-BeUpXwaP.js → prepare-BESRrh6K.js} +4 -4
- package/dist/{prepare-gfR1aIjt.d.ts → prepare-CPxO0kKz.d.ts} +1 -1
- package/dist/{prepare-C8wRjAXP.js → prepare-Cc8QZ3j0.js} +4 -4
- package/dist/{prepare-wfWtaz_X.d.ts → prepare-Cs6QDqie.d.ts} +1 -1
- package/dist/{rasterizer-BHWDrmGz.js → rasterizer-76qO8TDh.js} +42 -4
- package/dist/{rasterizer-Dh35qXbn.d.ts → rasterizer-yqJkicm1.d.ts} +21 -2
- package/dist/render/blend.d.ts +1 -1
- package/dist/render/compose.d.ts +2 -2
- package/dist/render/compose.js +1 -1
- package/dist/render/entity-fallback.d.ts +6 -6
- package/dist/render/entity-fallback.js +1 -1
- package/dist/render/face.d.ts +2 -2
- package/dist/render/face.js +1 -1
- package/dist/render/fluid-bucket.d.ts +2 -2
- package/dist/render/geo.d.ts +4 -4
- package/dist/render/geo.js +1 -1
- package/dist/render/legacy-tints.d.ts +2 -2
- package/dist/render/obj.d.ts +5 -5
- package/dist/render/obj.js +1 -1
- package/dist/render/pipeline.d.ts +2 -0
- package/dist/render/pipeline.js +2 -0
- package/dist/render/rasterizer.d.ts +2 -2
- package/dist/render/rasterizer.js +2 -2
- package/dist/render/renderer.d.ts +2 -2
- package/dist/render/renderer.js +1 -1
- package/dist/render/tints.d.ts +1 -1
- package/dist/{renderer-LDhBNHcl.js → renderer-CjT19tHd.js} +130 -53
- package/dist/{renderer-nbMCw1Pl.d.ts → renderer-DVsZHAvf.d.ts} +23 -6
- package/dist/resources/cache.d.ts +30 -0
- package/dist/resources/cache.js +2 -0
- package/dist/resources/descriptor.d.ts +2 -0
- package/dist/resources/descriptor.js +2 -0
- package/dist/resources/jar.d.ts +1 -1
- package/dist/resources/jar.js +1 -1
- package/dist/resources/manager.d.ts +1 -1
- package/dist/resources/manager.js +1 -1
- package/dist/resources/synthetic.d.ts +1 -1
- package/dist/resources/synthetic.js +1 -1
- package/dist/resources/zip-reader.d.ts +5 -0
- package/dist/resources/zip-reader.js +2 -0
- package/dist/run-BnICOF4I.js +209 -0
- package/dist/{run-BlSZw9Qk.d.ts → run-CKUtynTy.d.ts} +12 -2
- package/dist/run.d.ts +1 -1
- package/dist/run.js +1 -1
- package/dist/{sources-DH9dk3KF.d.ts → sources-B9X9w3qP.d.ts} +1 -1
- package/dist/{synthesize-CRgSEmEp.js → synthesize-3Q0aaOnK.js} +1 -1
- package/dist/{synthetic-CDsj--li.d.ts → synthetic-Qk-BSUXO.d.ts} +5 -1
- package/dist/{synthetic-DC2bSnGe.js → synthetic-ZAUjXT7E.js} +0 -0
- package/dist/textures/loader.d.ts +1 -1
- package/dist/textures/loader.js +1 -1
- package/dist/{tints-CuG6GwQJ.js → tints-B8UJmZMu.js} +2 -2
- package/dist/{tints-txt-8xI5.d.ts → tints-DLBExVWN.d.ts} +2 -2
- package/dist/versions/legacy-reshape.d.ts +1 -1
- package/dist/versions/legacy-reshape.js +1 -1
- package/dist/versions/prepare.d.ts +1 -1
- package/dist/versions/prepare.js +1 -1
- package/dist/workers/pool.d.ts +36 -5
- package/dist/workers/pool.js +2 -67
- package/dist/workers/render-worker.d.ts +15 -0
- package/dist/workers/render-worker.js +40 -0
- package/dist/zip-reader-BSbJKUT1.js +156 -0
- package/package.json +4 -2
- package/dist/compose-qjhyBvnS.js +0 -41
- package/dist/run-CfnWIRY4.js +0 -316
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { Worker } from "node:worker_threads";
|
|
2
|
+
//#region src/workers/pool.ts
|
|
3
|
+
/**
|
|
4
|
+
* Worker-thread pool for parallel item rendering. Design goals born from the
|
|
5
|
+
* PHP tool's failure modes (docs/research/mod-failure-taxonomy.md): errors
|
|
6
|
+
* cross the worker boundary as structured data, a dead worker's in-flight items
|
|
7
|
+
* are reported rather than orphaned, and results stream back so output lands
|
|
8
|
+
* incrementally.
|
|
9
|
+
*
|
|
10
|
+
* Workers spawn as soon as the pool is constructed, so their asset indexing
|
|
11
|
+
* overlaps the caller's own discovery pass; each holds several tasks at once so
|
|
12
|
+
* native encoding overlaps the next item's rasterization; and the queue drains
|
|
13
|
+
* through a cursor, because shift() on a 400k-item array is quadratic.
|
|
14
|
+
*/
|
|
15
|
+
var WorkerRenderPool = class {
|
|
16
|
+
options;
|
|
17
|
+
inFlightLimit;
|
|
18
|
+
workers = /* @__PURE__ */ new Set();
|
|
19
|
+
tasks = [];
|
|
20
|
+
cursor = 0;
|
|
21
|
+
started = false;
|
|
22
|
+
onResult = null;
|
|
23
|
+
settle = null;
|
|
24
|
+
settled = false;
|
|
25
|
+
/** Workers dying before completing anything mean a bad config, not bad luck. */
|
|
26
|
+
startupFailures = 0;
|
|
27
|
+
constructor(options) {
|
|
28
|
+
this.options = options;
|
|
29
|
+
this.inFlightLimit = Math.max(1, options.inFlight ?? 2);
|
|
30
|
+
for (let i = 0; i < Math.max(1, options.workers); i++) this.spawn();
|
|
31
|
+
}
|
|
32
|
+
spawn() {
|
|
33
|
+
const entry = {
|
|
34
|
+
worker: new Worker(this.options.workerUrl, { workerData: this.options.workerData }),
|
|
35
|
+
inFlight: /* @__PURE__ */ new Set(),
|
|
36
|
+
ready: false,
|
|
37
|
+
stopped: false
|
|
38
|
+
};
|
|
39
|
+
this.workers.add(entry);
|
|
40
|
+
entry.worker.on("message", (message) => {
|
|
41
|
+
if ("ready" in message) entry.ready = true;
|
|
42
|
+
else {
|
|
43
|
+
entry.inFlight.delete(message.id);
|
|
44
|
+
this.startupFailures = 0;
|
|
45
|
+
this.onResult?.(message);
|
|
46
|
+
}
|
|
47
|
+
this.pump(entry);
|
|
48
|
+
});
|
|
49
|
+
entry.worker.on("error", (err) => {
|
|
50
|
+
if (entry.inFlight.size === 0) {
|
|
51
|
+
this.startupFailures++;
|
|
52
|
+
if (this.startupFailures > 3) {
|
|
53
|
+
this.abort(err);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
this.fail(entry, `Worker crashed: ${err.message}`);
|
|
58
|
+
});
|
|
59
|
+
entry.worker.on("exit", (code) => {
|
|
60
|
+
if (code !== 0) this.fail(entry, `Worker exited with code ${code}`);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
pump(entry) {
|
|
64
|
+
if (!this.started || entry.stopped || !entry.ready) return;
|
|
65
|
+
while (entry.inFlight.size < this.inFlightLimit && this.cursor < this.tasks.length) {
|
|
66
|
+
const task = this.tasks[this.cursor++];
|
|
67
|
+
entry.inFlight.add(task.id);
|
|
68
|
+
entry.worker.postMessage(task);
|
|
69
|
+
}
|
|
70
|
+
if (entry.inFlight.size === 0 && this.cursor >= this.tasks.length) this.retire(entry);
|
|
71
|
+
}
|
|
72
|
+
retire(entry) {
|
|
73
|
+
if (entry.stopped) return;
|
|
74
|
+
entry.stopped = true;
|
|
75
|
+
this.workers.delete(entry);
|
|
76
|
+
entry.worker.terminate().catch(() => {});
|
|
77
|
+
this.finish();
|
|
78
|
+
}
|
|
79
|
+
fail(entry, reason) {
|
|
80
|
+
if (entry.stopped) return;
|
|
81
|
+
for (const id of entry.inFlight) this.onResult?.({
|
|
82
|
+
id,
|
|
83
|
+
error: reason
|
|
84
|
+
});
|
|
85
|
+
entry.inFlight.clear();
|
|
86
|
+
entry.stopped = true;
|
|
87
|
+
this.workers.delete(entry);
|
|
88
|
+
if (this.started && this.cursor < this.tasks.length) this.spawn();
|
|
89
|
+
else this.finish();
|
|
90
|
+
}
|
|
91
|
+
finish() {
|
|
92
|
+
if (!this.settled && this.started && this.workers.size === 0) {
|
|
93
|
+
this.settled = true;
|
|
94
|
+
this.settle?.resolve();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
abort(err) {
|
|
98
|
+
if (this.settled) return;
|
|
99
|
+
this.settled = true;
|
|
100
|
+
for (const entry of this.workers) {
|
|
101
|
+
entry.stopped = true;
|
|
102
|
+
entry.worker.terminate().catch(() => {});
|
|
103
|
+
}
|
|
104
|
+
this.workers.clear();
|
|
105
|
+
this.settle?.reject(err);
|
|
106
|
+
}
|
|
107
|
+
/** Run every task, calling back as results arrive. Terminates the pool after. */
|
|
108
|
+
async run(tasks, onResult) {
|
|
109
|
+
this.tasks = tasks;
|
|
110
|
+
this.onResult = onResult;
|
|
111
|
+
this.started = true;
|
|
112
|
+
try {
|
|
113
|
+
if (tasks.length > 0) await new Promise((resolve, reject) => {
|
|
114
|
+
this.settle = {
|
|
115
|
+
resolve,
|
|
116
|
+
reject
|
|
117
|
+
};
|
|
118
|
+
for (const entry of this.workers) this.pump(entry);
|
|
119
|
+
});
|
|
120
|
+
} finally {
|
|
121
|
+
await this.close();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async close() {
|
|
125
|
+
const workers = [...this.workers];
|
|
126
|
+
this.workers.clear();
|
|
127
|
+
await Promise.all(workers.map((entry) => entry.worker.terminate().catch(() => {})));
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
//#endregion
|
|
131
|
+
export { WorkerRenderPool as t };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { n as LayeredResourceManager } from "./manager-
|
|
2
|
-
import { n as harvestTintOverrides, t as curatedTintOverrides } from "./tints-
|
|
3
|
-
import { n as UnsafeJarError, t as JarResourceManager } from "./jar-
|
|
4
|
-
import { t as synthesizeItemModels } from "./synthesize-
|
|
1
|
+
import { n as LayeredResourceManager } from "./manager-CkletR5K.js";
|
|
2
|
+
import { n as harvestTintOverrides, t as curatedTintOverrides } from "./tints-B8UJmZMu.js";
|
|
3
|
+
import { n as UnsafeJarError, t as JarResourceManager } from "./jar-D9z-X7tA.js";
|
|
4
|
+
import { t as synthesizeItemModels } from "./synthesize-3Q0aaOnK.js";
|
|
5
5
|
//#region src/mods/prepare.ts
|
|
6
6
|
/**
|
|
7
7
|
* Mod asset composition: mod jars layered under the vanilla base (vanilla wins
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as ResourceManager } from "./manager-
|
|
1
|
+
import { a as ResourceManager } from "./manager-Cv1NeFyF.js";
|
|
2
2
|
//#region src/mods/prepare.d.ts
|
|
3
3
|
/** Loader-owned namespaces that never contain renderable mod items. */
|
|
4
4
|
declare const LOADER_NAMESPACES: Set<string>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { n as ResourceLocator } from "./locator-ycZzh_6z.js";
|
|
2
|
-
import { n as LayeredResourceManager, t as FolderResourceManager } from "./manager-
|
|
3
|
-
import { n as MapResourceManager, t as KindFilteredResourceManager } from "./synthetic-
|
|
4
|
-
import { t as JarResourceManager } from "./jar-
|
|
5
|
-
import { t as reshapeLegacyAssets } from "./legacy-reshape-
|
|
2
|
+
import { n as LayeredResourceManager, t as FolderResourceManager } from "./manager-CkletR5K.js";
|
|
3
|
+
import { n as MapResourceManager, t as KindFilteredResourceManager } from "./synthetic-ZAUjXT7E.js";
|
|
4
|
+
import { t as JarResourceManager } from "./jar-D9z-X7tA.js";
|
|
5
|
+
import { t as reshapeLegacyAssets } from "./legacy-reshape-C05SfAPR.js";
|
|
6
6
|
//#region src/versions/prepare.ts
|
|
7
7
|
/**
|
|
8
8
|
* Version-era detection and asset preparation, replacing the file-tree surgery
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as ResourceManager } from "./manager-
|
|
1
|
+
import { a as ResourceManager } from "./manager-Cv1NeFyF.js";
|
|
2
2
|
//#region src/versions/prepare.d.ts
|
|
3
3
|
/** Dotted-numeric compare handling both `1.21.8` and the `26.2` scheme. */
|
|
4
4
|
declare function compareVersions(left: string, right: string): number;
|
|
@@ -6,10 +6,33 @@ function createFaceBuffer(width, height) {
|
|
|
6
6
|
width,
|
|
7
7
|
height,
|
|
8
8
|
colors: new Float64Array(width * height * 4),
|
|
9
|
-
depths: new Float64Array(width * height)
|
|
9
|
+
depths: new Float64Array(width * height),
|
|
10
|
+
dirty: {
|
|
11
|
+
minX: 0,
|
|
12
|
+
minY: 0,
|
|
13
|
+
maxX: width - 1,
|
|
14
|
+
maxY: height - 1
|
|
15
|
+
}
|
|
10
16
|
};
|
|
11
17
|
}
|
|
12
18
|
/**
|
|
19
|
+
* Zero the written region and mark the buffer empty, so one scratch buffer can
|
|
20
|
+
* serve every face of a model. Allocating an image-sized color+depth pair per
|
|
21
|
+
* face is what made complex models allocate hundreds of megabytes transiently.
|
|
22
|
+
*/
|
|
23
|
+
function clearFaceBuffer(buffer) {
|
|
24
|
+
const { dirty } = buffer;
|
|
25
|
+
for (let y = dirty.minY; y <= dirty.maxY; y++) {
|
|
26
|
+
const row = y * buffer.width;
|
|
27
|
+
buffer.colors.fill(0, (row + dirty.minX) * 4, (row + dirty.maxX + 1) * 4);
|
|
28
|
+
buffer.depths.fill(0, row + dirty.minX, row + dirty.maxX + 1);
|
|
29
|
+
}
|
|
30
|
+
dirty.minX = buffer.width;
|
|
31
|
+
dirty.minY = buffer.height;
|
|
32
|
+
dirty.maxX = -1;
|
|
33
|
+
dirty.maxY = -1;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
13
36
|
* Retain only the rectangle containing visible pixels. Complex block models can
|
|
14
37
|
* contain thousands of tiny faces; keeping a full icon-sized color/depth buffer
|
|
15
38
|
* for each one turns a 64px render into gigabytes of transient memory.
|
|
@@ -19,7 +42,7 @@ function compactFaceBuffer(buffer) {
|
|
|
19
42
|
let minY = buffer.height;
|
|
20
43
|
let maxX = -1;
|
|
21
44
|
let maxY = -1;
|
|
22
|
-
for (let y = 0; y
|
|
45
|
+
for (let y = Math.max(buffer.dirty.minY, 0); y <= Math.min(buffer.dirty.maxY, buffer.height - 1); y++) for (let x = Math.max(buffer.dirty.minX, 0); x <= Math.min(buffer.dirty.maxX, buffer.width - 1); x++) {
|
|
23
46
|
if (buffer.colors[(y * buffer.width + x) * 4 + 3] <= 0) continue;
|
|
24
47
|
minX = Math.min(minX, x);
|
|
25
48
|
minY = Math.min(minY, y);
|
|
@@ -43,7 +66,13 @@ function compactFaceBuffer(buffer) {
|
|
|
43
66
|
width,
|
|
44
67
|
height,
|
|
45
68
|
colors,
|
|
46
|
-
depths
|
|
69
|
+
depths,
|
|
70
|
+
dirty: {
|
|
71
|
+
minX: 0,
|
|
72
|
+
minY: 0,
|
|
73
|
+
maxX: width - 1,
|
|
74
|
+
maxY: height - 1
|
|
75
|
+
}
|
|
47
76
|
};
|
|
48
77
|
}
|
|
49
78
|
/**
|
|
@@ -136,6 +165,15 @@ function drawTexturedTriangle(p1in, p2in, p3in, buffer, texture, cursor = new Ro
|
|
|
136
165
|
const textureStep = lineLength ? 1 / lineLength : 0;
|
|
137
166
|
let textureX = textureStep * .3;
|
|
138
167
|
const rowOffset = row * width;
|
|
168
|
+
const spanMinX = Math.max(startX - 1, 0);
|
|
169
|
+
const spanMaxX = Math.min(endX + 1, width - 1);
|
|
170
|
+
if (spanMinX <= spanMaxX) {
|
|
171
|
+
const { dirty } = buffer;
|
|
172
|
+
dirty.minX = Math.min(dirty.minX, spanMinX);
|
|
173
|
+
dirty.maxX = Math.max(dirty.maxX, spanMaxX);
|
|
174
|
+
dirty.minY = Math.min(dirty.minY, row);
|
|
175
|
+
dirty.maxY = Math.max(dirty.maxY, row);
|
|
176
|
+
}
|
|
139
177
|
for (let x = startX - 1; x <= endX + 1; x++) {
|
|
140
178
|
const currentU = (1 - textureX) * startU + textureX * endU;
|
|
141
179
|
const currentV = (1 - textureX) * startV + textureX * endV;
|
|
@@ -175,4 +213,4 @@ function drawTexturedTriangle(p1in, p2in, p3in, buffer, texture, cursor = new Ro
|
|
|
175
213
|
}
|
|
176
214
|
}
|
|
177
215
|
//#endregion
|
|
178
|
-
export {
|
|
216
|
+
export { drawTexturedTriangle as a, createFaceBuffer as i, clearFaceBuffer as n, phpRound as o, compactFaceBuffer as r, RowCursor as t };
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import { t as FloatTexture } from "./blend-
|
|
1
|
+
import { t as FloatTexture } from "./blend-CyDIxCne.js";
|
|
2
2
|
//#region src/render/rasterizer.d.ts
|
|
3
|
+
/** The rectangle of a buffer written since it was last cleared. */
|
|
4
|
+
interface DirtyRect {
|
|
5
|
+
minX: number;
|
|
6
|
+
minY: number;
|
|
7
|
+
maxX: number;
|
|
8
|
+
maxY: number;
|
|
9
|
+
}
|
|
3
10
|
/** Per-face private color + depth buffers, image sized. */
|
|
4
11
|
interface FaceBuffer {
|
|
5
12
|
/** Position within the final image (full-size scratch buffers start at 0,0). */
|
|
@@ -11,8 +18,20 @@ interface FaceBuffer {
|
|
|
11
18
|
colors: Float64Array;
|
|
12
19
|
/** Depth per pixel; 0 where never written — the overdraw band relies on that. */
|
|
13
20
|
depths: Float64Array;
|
|
21
|
+
/**
|
|
22
|
+
* Where the rasterizer has written. A fresh buffer claims its whole extent
|
|
23
|
+
* so callers that fill it by hand still compact correctly; clearFaceBuffer
|
|
24
|
+
* resets it to empty, which is what makes buffer reuse cheap.
|
|
25
|
+
*/
|
|
26
|
+
dirty: DirtyRect;
|
|
14
27
|
}
|
|
15
28
|
declare function createFaceBuffer(width: number, height: number): FaceBuffer;
|
|
29
|
+
/**
|
|
30
|
+
* Zero the written region and mark the buffer empty, so one scratch buffer can
|
|
31
|
+
* serve every face of a model. Allocating an image-sized color+depth pair per
|
|
32
|
+
* face is what made complex models allocate hundreds of megabytes transiently.
|
|
33
|
+
*/
|
|
34
|
+
declare function clearFaceBuffer(buffer: FaceBuffer): void;
|
|
16
35
|
/**
|
|
17
36
|
* Retain only the rectangle containing visible pixels. Complex block models can
|
|
18
37
|
* contain thousands of tiny faces; keeping a full icon-sized color/depth buffer
|
|
@@ -47,4 +66,4 @@ declare class RowCursor {
|
|
|
47
66
|
declare function phpRound(value: number): number;
|
|
48
67
|
declare function drawTexturedTriangle(p1in: RasterPoint, p2in: RasterPoint, p3in: RasterPoint, buffer: FaceBuffer, texture: FloatTexture, cursor?: RowCursor): void;
|
|
49
68
|
//#endregion
|
|
50
|
-
export {
|
|
69
|
+
export { clearFaceBuffer as a, drawTexturedTriangle as c, RowCursor as i, phpRound as l, FaceBuffer as n, compactFaceBuffer as o, RasterPoint as r, createFaceBuffer as s, DirtyRect as t };
|
package/dist/render/blend.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as q16, c as toFloatTexture, i as darkenTexture, n as blendPixel, o as tintTexture, r as cloneFloatTexture, s as toByteTexture, t as FloatTexture } from "../blend-
|
|
1
|
+
import { a as q16, c as toFloatTexture, i as darkenTexture, n as blendPixel, o as tintTexture, r as cloneFloatTexture, s as toByteTexture, t as FloatTexture } from "../blend-CyDIxCne.js";
|
|
2
2
|
export { FloatTexture, blendPixel, cloneFloatTexture, darkenTexture, q16, tintTexture, toByteTexture, toFloatTexture };
|
package/dist/render/compose.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as FloatTexture } from "../blend-
|
|
2
|
-
import {
|
|
1
|
+
import { t as FloatTexture } from "../blend-CyDIxCne.js";
|
|
2
|
+
import { n as FaceBuffer } from "../rasterizer-yqJkicm1.js";
|
|
3
3
|
//#region src/render/compose.d.ts
|
|
4
4
|
declare function combineFaceBuffers(width: number, height: number, faces: FaceBuffer[]): FloatTexture;
|
|
5
5
|
//#endregion
|
package/dist/render/compose.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as combineFaceBuffers } from "../compose-
|
|
1
|
+
import { t as combineFaceBuffers } from "../compose-CQCb2LVv.js";
|
|
2
2
|
export { combineFaceBuffers };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a as ResourceManager } from "../manager-
|
|
2
|
-
import { i as TextureLoader } from "../loader-
|
|
3
|
-
import { t as ModelLoader } from "../loader-
|
|
4
|
-
import { t as FloatTexture } from "../blend-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { a as ResourceManager } from "../manager-Cv1NeFyF.js";
|
|
2
|
+
import { i as TextureLoader } from "../loader-Myy22TDL.js";
|
|
3
|
+
import { t as ModelLoader } from "../loader-D22zZME7.js";
|
|
4
|
+
import { t as FloatTexture } from "../blend-CyDIxCne.js";
|
|
5
|
+
import { r as TintColor } from "../face-BIYg14TE.js";
|
|
6
|
+
import { i as RenderOptions } from "../renderer-DVsZHAvf.js";
|
|
7
7
|
//#region src/render/entity-fallback.d.ts
|
|
8
8
|
/**
|
|
9
9
|
* Dyed variants of vanilla items whose models mods generate at runtime (quark's
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as renderEntityFallback, r as spawnEggTints, t as renderDyedVariantFallback } from "../entity-fallback-
|
|
1
|
+
import { n as renderEntityFallback, r as spawnEggTints, t as renderDyedVariantFallback } from "../entity-fallback-BRCeGKBT.js";
|
|
2
2
|
export { renderDyedVariantFallback, renderEntityFallback, spawnEggTints };
|
package/dist/render/face.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { RenderableFace, TintColor, faceMaxZ, renderFace };
|
|
1
|
+
import { a as renderFace, i as faceMaxZ, n as RenderableFace, r as TintColor, t as FaceShadeCache } from "../face-BIYg14TE.js";
|
|
2
|
+
export { FaceShadeCache, RenderableFace, TintColor, faceMaxZ, renderFace };
|
package/dist/render/face.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as renderFace, t as faceMaxZ } from "../face-
|
|
1
|
+
import { n as renderFace, t as faceMaxZ } from "../face-DmCiHUd5.js";
|
|
2
2
|
export { faceMaxZ, renderFace };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as ResourceManager } from "../manager-
|
|
2
|
-
import { i as TextureLoader, r as Texture } from "../loader-
|
|
1
|
+
import { a as ResourceManager } from "../manager-Cv1NeFyF.js";
|
|
2
|
+
import { i as TextureLoader, r as Texture } from "../loader-Myy22TDL.js";
|
|
3
3
|
//#region src/render/fluid-bucket.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Paint the fluid into a bucket sprite IN PLACE (pass a copy, never a cached
|
package/dist/render/geo.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as ResourceLocator } from "../locator-jDbdUeTd.js";
|
|
2
|
-
import { a as ResourceManager } from "../manager-
|
|
3
|
-
import { i as TextureLoader } from "../loader-
|
|
4
|
-
import { t as FloatTexture } from "../blend-
|
|
2
|
+
import { a as ResourceManager } from "../manager-Cv1NeFyF.js";
|
|
3
|
+
import { i as TextureLoader } from "../loader-Myy22TDL.js";
|
|
4
|
+
import { t as FloatTexture } from "../blend-CyDIxCne.js";
|
|
5
5
|
import { n as FaceGeometry } from "../geometry-BSVmKx5b.js";
|
|
6
|
-
import {
|
|
6
|
+
import { i as RenderOptions } from "../renderer-DVsZHAvf.js";
|
|
7
7
|
//#region src/render/geo.d.ts
|
|
8
8
|
interface GeoCube {
|
|
9
9
|
origin?: number[];
|
package/dist/render/geo.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as renderGeo, n as geoToFaces, r as parseGeo, t as findGeoForItem } from "../geo-
|
|
1
|
+
import { i as renderGeo, n as geoToFaces, r as parseGeo, t as findGeoForItem } from "../geo-Diky41Tw.js";
|
|
2
2
|
export { findGeoForItem, geoToFaces, parseGeo, renderGeo };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as TextureLoader } from "../loader-
|
|
2
|
-
import {
|
|
1
|
+
import { i as TextureLoader } from "../loader-Myy22TDL.js";
|
|
2
|
+
import { r as TintColor } from "../face-BIYg14TE.js";
|
|
3
3
|
//#region src/render/legacy-tints.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Tints for a model rendered without an item definition (pre-1.21.4 eras and
|
package/dist/render/obj.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a as ResourceManager } from "../manager-
|
|
2
|
-
import { i as TextureLoader } from "../loader-
|
|
3
|
-
import { r as ResolvedModel } from "../loader-
|
|
4
|
-
import { t as FloatTexture } from "../blend-
|
|
1
|
+
import { a as ResourceManager } from "../manager-Cv1NeFyF.js";
|
|
2
|
+
import { i as TextureLoader } from "../loader-Myy22TDL.js";
|
|
3
|
+
import { r as ResolvedModel } from "../loader-D22zZME7.js";
|
|
4
|
+
import { t as FloatTexture } from "../blend-CyDIxCne.js";
|
|
5
5
|
import { n as Vec3 } from "../vector-DRKRi4--.js";
|
|
6
|
-
import {
|
|
6
|
+
import { i as RenderOptions } from "../renderer-DVsZHAvf.js";
|
|
7
7
|
//#region src/render/obj.d.ts
|
|
8
8
|
interface ObjTriangle {
|
|
9
9
|
positions: [Vec3, Vec3, Vec3];
|
package/dist/render/obj.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { c as renderObjModel, o as parseMtl, s as parseObj } from "../renderer-
|
|
1
|
+
import { c as renderObjModel, o as parseMtl, s as parseObj } from "../renderer-CjT19tHd.js";
|
|
2
2
|
export { parseMtl, parseObj, renderObjModel };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
export { FaceBuffer, RasterPoint, RowCursor, compactFaceBuffer, createFaceBuffer, drawTexturedTriangle, phpRound };
|
|
1
|
+
import { a as clearFaceBuffer, c as drawTexturedTriangle, i as RowCursor, l as phpRound, n as FaceBuffer, o as compactFaceBuffer, r as RasterPoint, s as createFaceBuffer, t as DirtyRect } from "../rasterizer-yqJkicm1.js";
|
|
2
|
+
export { DirtyRect, FaceBuffer, RasterPoint, RowCursor, clearFaceBuffer, compactFaceBuffer, createFaceBuffer, drawTexturedTriangle, phpRound };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
export { RowCursor, compactFaceBuffer, createFaceBuffer, drawTexturedTriangle, phpRound };
|
|
1
|
+
import { a as drawTexturedTriangle, i as createFaceBuffer, n as clearFaceBuffer, o as phpRound, r as compactFaceBuffer, t as RowCursor } from "../rasterizer-76qO8TDh.js";
|
|
2
|
+
export { RowCursor, clearFaceBuffer, compactFaceBuffer, createFaceBuffer, drawTexturedTriangle, phpRound };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
export { ItemRenderError, RenderOptions, RenderedFrames, boxDownscale, pointResize, renderModel, renderModelFrames };
|
|
1
|
+
import { a as RenderedFrames, c as renderModel, i as RenderOptions, l as renderModelFrames, n as AnimationLimits, o as boxDownscale, r as ItemRenderError, s as pointResize, t as AnimationDiagnostics } from "../renderer-DVsZHAvf.js";
|
|
2
|
+
export { AnimationDiagnostics, AnimationLimits, ItemRenderError, RenderOptions, RenderedFrames, boxDownscale, pointResize, renderModel, renderModelFrames };
|
package/dist/render/renderer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as renderModelFrames, i as renderModel, n as boxDownscale, r as pointResize, t as ItemRenderError } from "../renderer-
|
|
1
|
+
import { a as renderModelFrames, i as renderModel, n as boxDownscale, r as pointResize, t as ItemRenderError } from "../renderer-CjT19tHd.js";
|
|
2
2
|
export { ItemRenderError, boxDownscale, pointResize, renderModel, renderModelFrames };
|
package/dist/render/tints.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as resolveTint, i as parseTintValue, n as InvalidTinterDefinitionError, o as resolveTints, r as TintContext, t as DYE_COLORS } from "../tints-
|
|
1
|
+
import { a as resolveTint, i as parseTintValue, n as InvalidTinterDefinitionError, o as resolveTints, r as TintContext, t as DYE_COLORS } from "../tints-DLBExVWN.js";
|
|
2
2
|
export { DYE_COLORS, InvalidTinterDefinitionError, TintContext, parseTintValue, resolveTint, resolveTints };
|