@sadhaka/loom-engine 0.22.0 → 0.24.0
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/dist/debug/debug-hud.d.ts +34 -0
- package/dist/debug/debug-hud.d.ts.map +1 -0
- package/dist/debug/debug-hud.js +182 -0
- package/dist/debug/debug-hud.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/renderer/render-batch.d.ts +39 -0
- package/dist/renderer/render-batch.d.ts.map +1 -0
- package/dist/renderer/render-batch.js +134 -0
- package/dist/renderer/render-batch.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface DebugHUDOptions {
|
|
2
|
+
rootClass?: string;
|
|
3
|
+
lineClass?: string;
|
|
4
|
+
nowFn?: () => number;
|
|
5
|
+
}
|
|
6
|
+
export declare class DebugHUD {
|
|
7
|
+
private lines;
|
|
8
|
+
private samples;
|
|
9
|
+
private samplesFilled;
|
|
10
|
+
private samplesIndex;
|
|
11
|
+
private lastFrameMs;
|
|
12
|
+
private frameCountValue;
|
|
13
|
+
private rootEl;
|
|
14
|
+
private readonly nowFn;
|
|
15
|
+
private readonly rootClass;
|
|
16
|
+
private readonly lineClass;
|
|
17
|
+
constructor(opts?: DebugHUDOptions);
|
|
18
|
+
beginFrame(): void;
|
|
19
|
+
fps(): number;
|
|
20
|
+
fpsRange(): {
|
|
21
|
+
min: number;
|
|
22
|
+
max: number;
|
|
23
|
+
};
|
|
24
|
+
frameCount(): number;
|
|
25
|
+
addLine(label: string, value: string | (() => string)): void;
|
|
26
|
+
clearLines(): void;
|
|
27
|
+
lineCount(): number;
|
|
28
|
+
toText(): string;
|
|
29
|
+
attachToDom(parent: HTMLElement): HTMLElement;
|
|
30
|
+
detachFromDom(): void;
|
|
31
|
+
render(): string;
|
|
32
|
+
}
|
|
33
|
+
export declare const RESOURCE_DEBUG_HUD = "loom.debug_hud";
|
|
34
|
+
//# sourceMappingURL=debug-hud.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-hud.d.ts","sourceRoot":"","sources":["../../src/debug/debug-hud.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,eAAe;IAG9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAmB;IAEhC,OAAO,CAAC,OAAO,CAAsD;IACrE,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,YAAY,CAAa;IAIjC,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,eAAe,CAAa;IAGpC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,IAAI,GAAE,eAAoB;IAgBtC,UAAU,IAAI,IAAI;IAkBlB,GAAG,IAAI,MAAM;IAUb,QAAQ,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAaxC,UAAU,IAAI,MAAM;IAOpB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,IAAI;IAM5D,UAAU,IAAI,IAAI;IAKlB,SAAS,IAAI,MAAM;IAOnB,MAAM,IAAI,MAAM;IAuBhB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;IAwB7C,aAAa,IAAI,IAAI;IAUrB,MAAM,IAAI,MAAM;CAOjB;AAGD,eAAO,MAAM,kBAAkB,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
// DebugHUD - opt-in stats overlay for the Loom Engine.
|
|
2
|
+
//
|
|
3
|
+
// 0.24.0 enabling primitive. Consumers want to see fps / entity
|
|
4
|
+
// count / system count / batch stats / signature version / etc.
|
|
5
|
+
// without each app rolling their own. DebugHUD is a tiny self-
|
|
6
|
+
// contained class that:
|
|
7
|
+
//
|
|
8
|
+
// 1. Tracks per-frame timing (rolling 60-sample fps).
|
|
9
|
+
// 2. Lets consumers register custom stat lines via addLine().
|
|
10
|
+
// 3. Renders the line list as a top-left overlay div on
|
|
11
|
+
// attachToDom(parent), or returns formatted text via toText().
|
|
12
|
+
//
|
|
13
|
+
// Backwards-compatible addition. Nothing in the engine forces it on
|
|
14
|
+
// you - construct one yourself when you want it.
|
|
15
|
+
// Rolling sample buffer for fps. 60 samples ~ 1 second at 60fps.
|
|
16
|
+
var FPS_WINDOW_SAMPLES = 60;
|
|
17
|
+
export class DebugHUD {
|
|
18
|
+
lines = [];
|
|
19
|
+
// Rolling fps samples; index wraps at FPS_WINDOW_SAMPLES.
|
|
20
|
+
samples = new Float32Array(FPS_WINDOW_SAMPLES);
|
|
21
|
+
samplesFilled = 0;
|
|
22
|
+
samplesIndex = 0;
|
|
23
|
+
// -1 sentinel means "no prior frame seen". Using -1 (not 0) so a
|
|
24
|
+
// clock that starts at 0 still trips the guard correctly on the
|
|
25
|
+
// second beginFrame.
|
|
26
|
+
lastFrameMs = -1;
|
|
27
|
+
// Cumulative frame counter (never wraps; consumers can read).
|
|
28
|
+
frameCountValue = 0;
|
|
29
|
+
// DOM reference if attached. Engine-internal; null when detached
|
|
30
|
+
// or when running headless.
|
|
31
|
+
rootEl = null;
|
|
32
|
+
nowFn;
|
|
33
|
+
rootClass;
|
|
34
|
+
lineClass;
|
|
35
|
+
constructor(opts = {}) {
|
|
36
|
+
this.rootClass = opts.rootClass ?? 'loom-debug-hud';
|
|
37
|
+
this.lineClass = opts.lineClass ?? 'loom-debug-line';
|
|
38
|
+
if (opts.nowFn) {
|
|
39
|
+
this.nowFn = opts.nowFn;
|
|
40
|
+
}
|
|
41
|
+
else if (typeof performance !== 'undefined'
|
|
42
|
+
&& typeof performance.now === 'function') {
|
|
43
|
+
this.nowFn = function () { return performance.now(); };
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.nowFn = function () { return Date.now(); };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Mark the start of a frame so fps tracking can compute deltas.
|
|
50
|
+
// Call once per render frame from the consumer's tick / render
|
|
51
|
+
// entry point. Safe to call before any addLine.
|
|
52
|
+
beginFrame() {
|
|
53
|
+
var now = this.nowFn();
|
|
54
|
+
if (this.lastFrameMs >= 0) {
|
|
55
|
+
var deltaMs = now - this.lastFrameMs;
|
|
56
|
+
if (deltaMs > 0) {
|
|
57
|
+
this.samples[this.samplesIndex] = 1000 / deltaMs;
|
|
58
|
+
this.samplesIndex = (this.samplesIndex + 1) % FPS_WINDOW_SAMPLES;
|
|
59
|
+
if (this.samplesFilled < FPS_WINDOW_SAMPLES) {
|
|
60
|
+
this.samplesFilled++;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
this.lastFrameMs = now;
|
|
65
|
+
this.frameCountValue++;
|
|
66
|
+
}
|
|
67
|
+
// Average fps over the rolling window. Returns 0 until the first
|
|
68
|
+
// sample lands.
|
|
69
|
+
fps() {
|
|
70
|
+
if (this.samplesFilled === 0)
|
|
71
|
+
return 0;
|
|
72
|
+
var sum = 0;
|
|
73
|
+
for (var i = 0; i < this.samplesFilled; i++) {
|
|
74
|
+
sum += this.samples[i] ?? 0;
|
|
75
|
+
}
|
|
76
|
+
return sum / this.samplesFilled;
|
|
77
|
+
}
|
|
78
|
+
// Min / max fps across the rolling window. Useful to see a stutter.
|
|
79
|
+
fpsRange() {
|
|
80
|
+
if (this.samplesFilled === 0)
|
|
81
|
+
return { min: 0, max: 0 };
|
|
82
|
+
var min = Infinity;
|
|
83
|
+
var max = -Infinity;
|
|
84
|
+
for (var i = 0; i < this.samplesFilled; i++) {
|
|
85
|
+
var v = this.samples[i] ?? 0;
|
|
86
|
+
if (v < min)
|
|
87
|
+
min = v;
|
|
88
|
+
if (v > max)
|
|
89
|
+
max = v;
|
|
90
|
+
}
|
|
91
|
+
return { min: min, max: max };
|
|
92
|
+
}
|
|
93
|
+
// Cumulative frame count since construction.
|
|
94
|
+
frameCount() {
|
|
95
|
+
return this.frameCountValue;
|
|
96
|
+
}
|
|
97
|
+
// Add a custom stat line. Static value if `value` is a string;
|
|
98
|
+
// dynamic if a function. Call once per stat at setup; the line
|
|
99
|
+
// re-renders with the current value on every render() call.
|
|
100
|
+
addLine(label, value) {
|
|
101
|
+
this.lines.push({ label: label, value: value });
|
|
102
|
+
}
|
|
103
|
+
// Drop all custom lines. Built-ins (fps / frame count) come from
|
|
104
|
+
// dedicated getters and are unaffected.
|
|
105
|
+
clearLines() {
|
|
106
|
+
this.lines.length = 0;
|
|
107
|
+
}
|
|
108
|
+
// Number of registered custom lines. Test affordance.
|
|
109
|
+
lineCount() {
|
|
110
|
+
return this.lines.length;
|
|
111
|
+
}
|
|
112
|
+
// Build a text snapshot of the current stats. Consumers that don't
|
|
113
|
+
// want a DOM overlay (server-side render, CLI tools, e2e snapshot
|
|
114
|
+
// assertions) call this. Format: one line per stat, "label: value".
|
|
115
|
+
toText() {
|
|
116
|
+
var rows = [];
|
|
117
|
+
rows.push('fps: ' + this.fps().toFixed(1));
|
|
118
|
+
var range = this.fpsRange();
|
|
119
|
+
rows.push('fps range: ' + range.min.toFixed(1) + '..' + range.max.toFixed(1));
|
|
120
|
+
rows.push('frame: ' + this.frameCountValue);
|
|
121
|
+
for (var i = 0; i < this.lines.length; i++) {
|
|
122
|
+
var line = this.lines[i];
|
|
123
|
+
if (!line)
|
|
124
|
+
continue;
|
|
125
|
+
var v;
|
|
126
|
+
try {
|
|
127
|
+
v = typeof line.value === 'function' ? line.value() : line.value;
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
v = '<error>';
|
|
131
|
+
}
|
|
132
|
+
rows.push(line.label + ': ' + v);
|
|
133
|
+
}
|
|
134
|
+
return rows.join('\n');
|
|
135
|
+
}
|
|
136
|
+
// Mount a DOM overlay div under `parent`. Returns the created
|
|
137
|
+
// root element so consumers can style it further. Idempotent: a
|
|
138
|
+
// second attachToDom is a no-op (returns the same node).
|
|
139
|
+
attachToDom(parent) {
|
|
140
|
+
if (this.rootEl)
|
|
141
|
+
return this.rootEl;
|
|
142
|
+
if (typeof document === 'undefined') {
|
|
143
|
+
throw new Error('DebugHUD.attachToDom requires a DOM');
|
|
144
|
+
}
|
|
145
|
+
var el = document.createElement('div');
|
|
146
|
+
el.className = this.rootClass;
|
|
147
|
+
el.style.position = 'absolute';
|
|
148
|
+
el.style.top = '8px';
|
|
149
|
+
el.style.left = '8px';
|
|
150
|
+
el.style.padding = '6px 8px';
|
|
151
|
+
el.style.background = 'rgba(0, 0, 0, 0.6)';
|
|
152
|
+
el.style.color = '#aef';
|
|
153
|
+
el.style.font = '11px ui-monospace, Consolas, monospace';
|
|
154
|
+
el.style.lineHeight = '14px';
|
|
155
|
+
el.style.pointerEvents = 'none';
|
|
156
|
+
el.style.zIndex = '999';
|
|
157
|
+
el.style.whiteSpace = 'pre';
|
|
158
|
+
parent.appendChild(el);
|
|
159
|
+
this.rootEl = el;
|
|
160
|
+
return el;
|
|
161
|
+
}
|
|
162
|
+
// Tear down the DOM overlay if attached.
|
|
163
|
+
detachFromDom() {
|
|
164
|
+
if (this.rootEl && this.rootEl.parentNode) {
|
|
165
|
+
this.rootEl.parentNode.removeChild(this.rootEl);
|
|
166
|
+
}
|
|
167
|
+
this.rootEl = null;
|
|
168
|
+
}
|
|
169
|
+
// Refresh the DOM overlay text (if attached) AND return the
|
|
170
|
+
// current snapshot. Call once per frame after beginFrame() so
|
|
171
|
+
// fps reflects the just-completed frame.
|
|
172
|
+
render() {
|
|
173
|
+
var text = this.toText();
|
|
174
|
+
if (this.rootEl) {
|
|
175
|
+
this.rootEl.textContent = text;
|
|
176
|
+
}
|
|
177
|
+
return text;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// Resource key for a world-attached HUD instance.
|
|
181
|
+
export const RESOURCE_DEBUG_HUD = 'loom.debug_hud';
|
|
182
|
+
//# sourceMappingURL=debug-hud.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-hud.js","sourceRoot":"","sources":["../../src/debug/debug-hud.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const LOOM_ENGINE_VERSION = "0.
|
|
1
|
+
export declare const LOOM_ENGINE_VERSION = "0.24.0";
|
|
2
2
|
export type { Vec2, Vec3, Rect } from './util/math.js';
|
|
3
3
|
export { vec2, vec3, rect, clamp, lerp, smoothstep, approxEq, rectContains, rectIntersects, visibleInView, } from './util/math.js';
|
|
4
4
|
export type { ColorRGBA } from './util/color.js';
|
|
@@ -13,6 +13,10 @@ export { SYSTEM_PHASE_INPUT, SYSTEM_PHASE_LOGIC, SYSTEM_PHASE_PHYSICS, SYSTEM_PH
|
|
|
13
13
|
export type { TimeResource, VeilBudgetResource, IManagedResource, LifecycleWorld } from './resources.js';
|
|
14
14
|
export { ComponentSignature, componentMask, COMPONENT_SIGNATURE_MAX_BIT, RESOURCE_COMPONENT_SIGNATURE, } from './runtime/component-signature.js';
|
|
15
15
|
export { QueryCache, RESOURCE_QUERY_CACHE, } from './runtime/query-cache.js';
|
|
16
|
+
export { RenderBatch, RENDER_LAYER_BACKGROUND, RENDER_LAYER_TERRAIN, RENDER_LAYER_ENTITIES, RENDER_LAYER_FX, RENDER_LAYER_HUD, RESOURCE_RENDER_BATCH, } from './renderer/render-batch.js';
|
|
17
|
+
export type { BatchFlushCallback } from './renderer/render-batch.js';
|
|
18
|
+
export { DebugHUD, RESOURCE_DEBUG_HUD } from './debug/debug-hud.js';
|
|
19
|
+
export type { DebugHUDOptions } from './debug/debug-hud.js';
|
|
16
20
|
export { ResourceRegistry, createTimeResource, createVeilBudgetResource, RESOURCE_TIME, RESOURCE_CAMERA, RESOURCE_DEVICE, RESOURCE_VEIL_BUDGET, } from './resources.js';
|
|
17
21
|
export { SpriteRenderSystem } from './systems/sprite-render-system.js';
|
|
18
22
|
export { Engine, registerBackend, isBackendRegistered } from './engine.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAG5C,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,IAAI,EACJ,SAAS,EACT,eAAe,EACf,eAAe,EACf,SAAS,EACT,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,eAAe,EACf,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEzG,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,UAAU,EACV,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// the previous suffix `-perf-9-1` lingered after package.json was
|
|
9
9
|
// bumped to 0.10.0, surfacing as a drift bug in
|
|
10
10
|
// engine.LOOM_ENGINE_VERSION-based diagnostics.
|
|
11
|
-
export const LOOM_ENGINE_VERSION = '0.
|
|
11
|
+
export const LOOM_ENGINE_VERSION = '0.24.0';
|
|
12
12
|
export { vec2, vec3, rect, clamp, lerp, smoothstep, approxEq, rectContains, rectIntersects, visibleInView, } from './util/math.js';
|
|
13
13
|
export { rgba, hexToRgba, rgbaToHexString, rgbaToCssString, colorLerp, COLOR_WHITE, COLOR_BLACK, COLOR_TRANSPARENT, COLOR_KNOT_STR, COLOR_KNOT_DEX, COLOR_KNOT_INT, COLOR_KNOT_CENTER, } from './util/color.js';
|
|
14
14
|
export { EntityAllocator, NULL_ENTITY, entityIndex, entityGeneration, makeEntity, } from './entity.js';
|
|
@@ -20,6 +20,10 @@ export { SYSTEM_PHASE_INPUT, SYSTEM_PHASE_LOGIC, SYSTEM_PHASE_PHYSICS, SYSTEM_PH
|
|
|
20
20
|
// 0.22.0 - ECS perf primitives.
|
|
21
21
|
export { ComponentSignature, componentMask, COMPONENT_SIGNATURE_MAX_BIT, RESOURCE_COMPONENT_SIGNATURE, } from './runtime/component-signature.js';
|
|
22
22
|
export { QueryCache, RESOURCE_QUERY_CACHE, } from './runtime/query-cache.js';
|
|
23
|
+
// 0.23.0 - render batching primitive.
|
|
24
|
+
export { RenderBatch, RENDER_LAYER_BACKGROUND, RENDER_LAYER_TERRAIN, RENDER_LAYER_ENTITIES, RENDER_LAYER_FX, RENDER_LAYER_HUD, RESOURCE_RENDER_BATCH, } from './renderer/render-batch.js';
|
|
25
|
+
// 0.24.0 - debug HUD primitive.
|
|
26
|
+
export { DebugHUD, RESOURCE_DEBUG_HUD } from './debug/debug-hud.js';
|
|
23
27
|
export { ResourceRegistry, createTimeResource, createVeilBudgetResource, RESOURCE_TIME, RESOURCE_CAMERA, RESOURCE_DEVICE, RESOURCE_VEIL_BUDGET, } from './resources.js';
|
|
24
28
|
// Default systems
|
|
25
29
|
export { SpriteRenderSystem } from './systems/sprite-render-system.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export type BatchFlushCallback = (layer: number, atlas: unknown, entries: ReadonlyArray<{
|
|
2
|
+
frame: number;
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
z: number;
|
|
6
|
+
hasTint: boolean;
|
|
7
|
+
tintR: number;
|
|
8
|
+
tintG: number;
|
|
9
|
+
tintB: number;
|
|
10
|
+
tintA: number;
|
|
11
|
+
}>) => void;
|
|
12
|
+
export declare class RenderBatch {
|
|
13
|
+
private buckets;
|
|
14
|
+
private layerOrder;
|
|
15
|
+
private submitCount;
|
|
16
|
+
private flushCount;
|
|
17
|
+
submit(layer: number, atlas: unknown, frame: number, x: number, y: number, z: number, tint?: {
|
|
18
|
+
r: number;
|
|
19
|
+
g: number;
|
|
20
|
+
b: number;
|
|
21
|
+
a: number;
|
|
22
|
+
}): void;
|
|
23
|
+
flushTo(_device: unknown, cb: BatchFlushCallback): void;
|
|
24
|
+
clear(): void;
|
|
25
|
+
stats(): {
|
|
26
|
+
submits: number;
|
|
27
|
+
flushes: number;
|
|
28
|
+
layersQueued: number;
|
|
29
|
+
groupsQueued: number;
|
|
30
|
+
entriesQueued: number;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export declare const RENDER_LAYER_BACKGROUND = -100;
|
|
34
|
+
export declare const RENDER_LAYER_TERRAIN = 0;
|
|
35
|
+
export declare const RENDER_LAYER_ENTITIES = 100;
|
|
36
|
+
export declare const RENDER_LAYER_FX = 200;
|
|
37
|
+
export declare const RENDER_LAYER_HUD = 1000;
|
|
38
|
+
export declare const RESOURCE_RENDER_BATCH = "loom.render_batch";
|
|
39
|
+
//# sourceMappingURL=render-batch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-batch.d.ts","sourceRoot":"","sources":["../../src/renderer/render-batch.ts"],"names":[],"mappings":"AAmDA,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,KACC,IAAI,CAAC;AAEV,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,UAAU,CAAgB;IAElC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAa;IAM/B,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,EACb,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GACpD,IAAI;IAyCP,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,kBAAkB,GAAG,IAAI;IAmBvD,KAAK,IAAI,IAAI;IAMb,KAAK,IAAI;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACvB;CAsBF;AAID,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAGrC,eAAO,MAAM,qBAAqB,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
// RenderBatch - groups sprite draw submissions by (layer, atlas)
|
|
2
|
+
// for batched issue at end-of-frame.
|
|
3
|
+
//
|
|
4
|
+
// 0.23.0 enabling primitive. Today's render systems call
|
|
5
|
+
// device.drawSprite per-entity directly; the cost is negligible on
|
|
6
|
+
// Canvas2D (no real state machine) but compounds on a future WebGL2
|
|
7
|
+
// renderer where each drawSprite would otherwise mean a separate
|
|
8
|
+
// uniform/texture binding pair. RenderBatch lets a system accumulate
|
|
9
|
+
// per-frame submissions, sort or group as it sees fit, then issue
|
|
10
|
+
// flushTo() once - the device sees consecutive same-atlas draws.
|
|
11
|
+
//
|
|
12
|
+
// Shape:
|
|
13
|
+
// batch.submit(layer, atlas, frame, x, y, z, tint?)
|
|
14
|
+
// batch.flushTo(device, callback)
|
|
15
|
+
// batch.clear()
|
|
16
|
+
//
|
|
17
|
+
// Layers: a layer is just an integer ordering key. Lower layers
|
|
18
|
+
// flush first; ties broken by submission order. Atlas grouping
|
|
19
|
+
// inside a layer is by reference equality; consumers using a string
|
|
20
|
+
// atlas id can pass the same string instance.
|
|
21
|
+
//
|
|
22
|
+
// Code style: var / class fields, no template literals.
|
|
23
|
+
export class RenderBatch {
|
|
24
|
+
buckets = new Map();
|
|
25
|
+
layerOrder = [];
|
|
26
|
+
// Stats for tests + diagnostics.
|
|
27
|
+
submitCount = 0;
|
|
28
|
+
flushCount = 0;
|
|
29
|
+
// Append a draw to (layer, atlas). If the previous entry in the
|
|
30
|
+
// layer was for the same atlas (reference equality), it merges
|
|
31
|
+
// into the same group; otherwise a new group starts. This keeps
|
|
32
|
+
// painter order while still amortising same-atlas runs.
|
|
33
|
+
submit(layer, atlas, frame, x, y, z, tint) {
|
|
34
|
+
var ly = layer | 0;
|
|
35
|
+
var bucket = this.buckets.get(ly);
|
|
36
|
+
if (!bucket) {
|
|
37
|
+
bucket = { layer: ly, groups: [] };
|
|
38
|
+
this.buckets.set(ly, bucket);
|
|
39
|
+
this.layerOrder.push(ly);
|
|
40
|
+
// Keep layerOrder sorted ascending; insertion is rare per
|
|
41
|
+
// frame relative to per-entity submits.
|
|
42
|
+
this.layerOrder.sort(function (a, b) { return a - b; });
|
|
43
|
+
}
|
|
44
|
+
var lastGroup = bucket.groups.length > 0
|
|
45
|
+
? bucket.groups[bucket.groups.length - 1]
|
|
46
|
+
: undefined;
|
|
47
|
+
var group;
|
|
48
|
+
if (lastGroup && lastGroup.atlas === atlas) {
|
|
49
|
+
group = lastGroup;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
group = { atlas: atlas, entries: [] };
|
|
53
|
+
bucket.groups.push(group);
|
|
54
|
+
}
|
|
55
|
+
var hasTint = !!tint;
|
|
56
|
+
group.entries.push({
|
|
57
|
+
frame: frame | 0,
|
|
58
|
+
x: +x,
|
|
59
|
+
y: +y,
|
|
60
|
+
z: +z,
|
|
61
|
+
hasTint: hasTint,
|
|
62
|
+
tintR: hasTint ? +tint.r : 1,
|
|
63
|
+
tintG: hasTint ? +tint.g : 1,
|
|
64
|
+
tintB: hasTint ? +tint.b : 1,
|
|
65
|
+
tintA: hasTint ? +tint.a : 1,
|
|
66
|
+
});
|
|
67
|
+
this.submitCount++;
|
|
68
|
+
}
|
|
69
|
+
// Drain the batch by calling `cb(layer, atlas, entries)` for each
|
|
70
|
+
// group, in layer-ascending order then submission order. After
|
|
71
|
+
// flush, the batch is empty; submit can begin filling for the next
|
|
72
|
+
// frame.
|
|
73
|
+
flushTo(_device, cb) {
|
|
74
|
+
for (var i = 0; i < this.layerOrder.length; i++) {
|
|
75
|
+
var ly = this.layerOrder[i];
|
|
76
|
+
if (ly === undefined)
|
|
77
|
+
continue;
|
|
78
|
+
var bucket = this.buckets.get(ly);
|
|
79
|
+
if (!bucket)
|
|
80
|
+
continue;
|
|
81
|
+
for (var g = 0; g < bucket.groups.length; g++) {
|
|
82
|
+
var group = bucket.groups[g];
|
|
83
|
+
if (!group)
|
|
84
|
+
continue;
|
|
85
|
+
cb(ly, group.atlas, group.entries);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
this.flushCount++;
|
|
89
|
+
this.clear();
|
|
90
|
+
}
|
|
91
|
+
// Discard everything queued so far without flushing. Used between
|
|
92
|
+
// frames if a render is skipped (paused tab, off-screen) so the
|
|
93
|
+
// queue does not grow unbounded.
|
|
94
|
+
clear() {
|
|
95
|
+
this.buckets.clear();
|
|
96
|
+
this.layerOrder.length = 0;
|
|
97
|
+
}
|
|
98
|
+
// Diagnostic counters.
|
|
99
|
+
stats() {
|
|
100
|
+
var groupsQueued = 0;
|
|
101
|
+
var entriesQueued = 0;
|
|
102
|
+
for (var i = 0; i < this.layerOrder.length; i++) {
|
|
103
|
+
var ly = this.layerOrder[i];
|
|
104
|
+
if (ly === undefined)
|
|
105
|
+
continue;
|
|
106
|
+
var bucket = this.buckets.get(ly);
|
|
107
|
+
if (!bucket)
|
|
108
|
+
continue;
|
|
109
|
+
groupsQueued += bucket.groups.length;
|
|
110
|
+
for (var g = 0; g < bucket.groups.length; g++) {
|
|
111
|
+
var group = bucket.groups[g];
|
|
112
|
+
if (group)
|
|
113
|
+
entriesQueued += group.entries.length;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
submits: this.submitCount,
|
|
118
|
+
flushes: this.flushCount,
|
|
119
|
+
layersQueued: this.layerOrder.length,
|
|
120
|
+
groupsQueued: groupsQueued,
|
|
121
|
+
entriesQueued: entriesQueued,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Standard layer constants. Render systems can use any integer; these
|
|
126
|
+
// are conventions to keep the demo's painter order legible.
|
|
127
|
+
export const RENDER_LAYER_BACKGROUND = -100;
|
|
128
|
+
export const RENDER_LAYER_TERRAIN = 0;
|
|
129
|
+
export const RENDER_LAYER_ENTITIES = 100;
|
|
130
|
+
export const RENDER_LAYER_FX = 200;
|
|
131
|
+
export const RENDER_LAYER_HUD = 1000;
|
|
132
|
+
// Resource key for a world-attached batch instance.
|
|
133
|
+
export const RESOURCE_RENDER_BATCH = 'loom.render_batch';
|
|
134
|
+
//# sourceMappingURL=render-batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-batch.js","sourceRoot":"","sources":["../../src/renderer/render-batch.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sadhaka/loom-engine",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"description": "Browser-first 2D / 2.5D game engine. Canvas2D, ECS, render-graph stages, Director-bridge SSE integration. Built from scratch in TypeScript for TheWorldTable.ai.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"build:all": "npm run build && npm run build:demos",
|
|
48
48
|
"watch": "tsc --watch",
|
|
49
49
|
"clean": "rm -rf dist demo/*.js demo/*.js.map demo/*/main.js demo/*/main.js.map",
|
|
50
|
-
"test": "tsx --test tests/smoke.test.ts tests/world.test.ts tests/asset-loader.test.ts tests/animation.test.ts tests/vfx.test.ts tests/audio-input.test.ts tests/director.test.ts tests/combat.test.ts tests/projectile.test.ts tests/arpg.test.ts tests/snapshot-recovery.test.ts tests/touch-input.test.ts tests/webgl2-device.test.ts tests/multiplayer.test.ts tests/zone-event-envelope.test.ts tests/mock-zone-bridge.test.ts tests/zone-event-system.test.ts tests/zone-state-resource.test.ts tests/ai-plugin-registry.test.ts tests/ai-plugin-error-isolation.test.ts tests/mock-ai-plugin.test.ts tests/plugin-context.test.ts tests/spatial-audio-bus.test.ts tests/audio-listener-resource.test.ts tests/spatial-audio-system.test.ts tests/spatial-falloff-math.test.ts tests/audio-asset-cache.test.ts tests/audio-asset-loader.test.ts tests/cue-catalog.test.ts tests/music-director.test.ts tests/cue-stop-all.test.ts tests/zone-audio-system.test.ts tests/zone-boss-entity-resource.test.ts tests/zone-boss-entity-system.test.ts tests/headless-tick-harness.test.ts tests/trace-replay/replay.test.ts tests/entropy.test.ts tests/fuzzer/fuzzer.test.ts tests/zone-event-system-determinism.test.ts tests/no-nondeterminism.test.ts tests/replay-snapshot.test.ts tests/determinism-smoke.test.ts tests/plugins/client-registry.test.ts tests/plugins/example-hud-plugin.test.ts tests/director/sse-director-bridge-networking.test.ts tests/director/sse-zone-bridge-networking.test.ts tests/resource-lifecycle.test.ts tests/component-signature.test.ts",
|
|
50
|
+
"test": "tsx --test tests/smoke.test.ts tests/world.test.ts tests/asset-loader.test.ts tests/animation.test.ts tests/vfx.test.ts tests/audio-input.test.ts tests/director.test.ts tests/combat.test.ts tests/projectile.test.ts tests/arpg.test.ts tests/snapshot-recovery.test.ts tests/touch-input.test.ts tests/webgl2-device.test.ts tests/multiplayer.test.ts tests/zone-event-envelope.test.ts tests/mock-zone-bridge.test.ts tests/zone-event-system.test.ts tests/zone-state-resource.test.ts tests/ai-plugin-registry.test.ts tests/ai-plugin-error-isolation.test.ts tests/mock-ai-plugin.test.ts tests/plugin-context.test.ts tests/spatial-audio-bus.test.ts tests/audio-listener-resource.test.ts tests/spatial-audio-system.test.ts tests/spatial-falloff-math.test.ts tests/audio-asset-cache.test.ts tests/audio-asset-loader.test.ts tests/cue-catalog.test.ts tests/music-director.test.ts tests/cue-stop-all.test.ts tests/zone-audio-system.test.ts tests/zone-boss-entity-resource.test.ts tests/zone-boss-entity-system.test.ts tests/headless-tick-harness.test.ts tests/trace-replay/replay.test.ts tests/entropy.test.ts tests/fuzzer/fuzzer.test.ts tests/zone-event-system-determinism.test.ts tests/no-nondeterminism.test.ts tests/replay-snapshot.test.ts tests/determinism-smoke.test.ts tests/plugins/client-registry.test.ts tests/plugins/example-hud-plugin.test.ts tests/director/sse-director-bridge-networking.test.ts tests/director/sse-zone-bridge-networking.test.ts tests/resource-lifecycle.test.ts tests/component-signature.test.ts tests/render-batch.test.ts tests/debug-hud.test.ts",
|
|
51
51
|
"bench": "npm run build && node --expose-gc --import=tsx tools/perf-bench.ts",
|
|
52
52
|
"bench:fast": "npm run build && node --expose-gc --import=tsx tools/perf-bench.ts --no-write",
|
|
53
53
|
"bench:browser": "npm run build && tsc -p tools/tsconfig.bench.json",
|