@codexo/exojs 2.1.0 → 2.1.1
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/CHANGELOG.md +20 -0
- package/README.md +1 -3
- package/dist/esm/particles/emitters/ParticleOptions.d.ts +11 -0
- package/dist/esm/particles/emitters/ParticleOptions.js +11 -0
- package/dist/esm/particles/emitters/ParticleOptions.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +1 -1
- package/dist/esm/rendering/Container.js +5 -2
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.js +7 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +66 -43
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.d.ts +2 -6
- package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js +160 -93
- package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuRenderManager.js +50 -39
- package/dist/esm/rendering/webgpu/WebGpuRenderManager.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +75 -32
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/exo.d.ts +14 -7
- package/dist/exo.esm.js +374 -209
- package/dist/exo.esm.js.map +1 -1
- package/dist/exo.esm.min.js +1 -1
- package/dist/exo.esm.min.js.map +1 -1
- package/dist/exo.global.js +374 -209
- package/dist/exo.global.js.map +1 -1
- package/dist/exo.global.min.js +1 -1
- package/dist/exo.global.min.js.map +1 -1
- package/package.json +3 -4
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,26 @@ All notable changes to ExoJS are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [2.1.1] - 2026-04-19
|
|
8
|
+
|
|
9
|
+
Patch release fixing a cluster of WebGPU and scene-graph bugs discovered after 2.1.0 shipped. No public API removals or renames; one backward-compatible addition on `Container.addChild`.
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- **WebGPU adapter ordering.** `WebGpuRenderManager` now requests the GPU adapter before acquiring the canvas WebGPU context. A null adapter previously locked the canvas into WebGPU mode, preventing `Application`'s automatic WebGL2 fallback from obtaining a context on the same element.
|
|
14
|
+
- **WebGL2 shader program binding.** `WebGl2ShaderRuntime.sync()` now binds the program before writing uniforms. The previous draw pipeline never called `bindShader(shader)` with a non-null shader, so every `uniform*` write targeted the wrong or null program and `drawElements` reported "no valid shader program in use". Exposed by the WebGPU adapter fallback above.
|
|
15
|
+
- **WGSL multi-texture sprite shader** uses `textureSampleGrad` with explicit screen-space derivatives. `textureSample`'s uniformity requirement prevented the 8-slot dispatch from compiling on any sprite batch spanning more than one texture slot.
|
|
16
|
+
- **Sprite index buffer** allocation and lifecycle. Buffer size was 4× larger than intended (`indexData.byteLength * BYTES_PER_ELEMENT` instead of `indexData.byteLength`), and `_ensureBatchCapacity` ran inside the draw loop and could destroy a buffer the render pass had already bound. Capacity is now grown once up front.
|
|
17
|
+
- **Sprite multi-batch rendering.** When a flush contained multiple batches (blend-mode change, texture-slot overflow, or pipeline switch), each batch's `queue.writeBuffer(vertexBuffer, offset: 0, ...)` serialised before the single submit, leaving only the last batch's vertex data in the buffer. All batch vertex data is now packed into one CPU buffer at distinct sprite offsets and uploaded once; `drawIndexed` uses `firstIndex` to target each range.
|
|
18
|
+
- **Particle and primitive multi-drawcall rendering.** Same multi-write-to-offset-0 pattern, plus mid-loop `_ensureCapacity` destroying buffers still referenced by the pass. Particle renderer now submits one command buffer per system. Primitive renderer was rewritten: CPU bakes `view * globalTransform` into `vec4` clip-space positions per vertex, pipeline has no bind-group, one render pass per flush with packed vertex/index buffers.
|
|
19
|
+
- **Primitive combine order.** `_combinedTransform.copy(view).combine(global)` produced `global * view` (`Matrix.combine` applies the argument on the left, confirmed by `SceneNode.getGlobalTransform` which chains `local.combine(parent.global)` to yield `parent.global * local`). Swapped to `copy(global).combine(view)` = `view * global`.
|
|
20
|
+
- **WebGPU mipmap generation.** The full-screen downsample triangle's UVs are no longer Y-flipped relative to framebuffer orientation. Every odd mip level was being rendered upside-down, producing a visible sprite flip whenever the view zoomed far enough for the LOD selector to cross an odd/even boundary.
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
|
|
24
|
+
- `Container.addChild` accepts multiple children via rest args (`addChild(...children)`). The previous single-argument signature silently dropped the tail of `addChild(a, b, c, d)`; callers only saw `a` in the scene graph. Single-child usage stays backward compatible.
|
|
25
|
+
- Doc comment on `ParticleOptions.position` clarifying it is in the owning `ParticleSystem`'s local coordinate space. The shader applies the system's global transform on top, so passing world coordinates double-translates the emitter.
|
|
26
|
+
|
|
7
27
|
## [2.1.0] - 2026-04-18
|
|
8
28
|
|
|
9
29
|
Product-readiness release. Additive across assets, game-feel, visuals, performance, optional physics, and WebGPU parity. No public contracts were removed or renamed since v2.0.0.
|
package/README.md
CHANGED
|
@@ -115,8 +115,7 @@ If Rapier is unavailable, creation fails with a clear setup error.
|
|
|
115
115
|
|
|
116
116
|
## Examples
|
|
117
117
|
|
|
118
|
-
|
|
119
|
-
- The runnable live site (Astro + Lit + Monaco preview) lives in [`examples-site/`](examples-site/README.md) and is deployed as the repository's GitHub Pages site at <https://exoridus.github.io/ExoJS/>.
|
|
118
|
+
The runnable live site (Astro + Lit + Monaco preview) lives in [`examples/`](examples/README.md) and is deployed as the repository's GitHub Pages site at <https://exoridus.github.io/ExoJS/>.
|
|
120
119
|
|
|
121
120
|
## Development
|
|
122
121
|
|
|
@@ -125,7 +124,6 @@ npm run typecheck
|
|
|
125
124
|
npm run lint
|
|
126
125
|
npm test
|
|
127
126
|
npm run build
|
|
128
|
-
npm run typecheck:examples
|
|
129
127
|
npm run verify:package
|
|
130
128
|
npm run perf:benchmark
|
|
131
129
|
```
|
|
@@ -17,6 +17,17 @@ export declare class ParticleOptions implements ParticleProperties {
|
|
|
17
17
|
set totalLifetime(totalLifetime: Time);
|
|
18
18
|
get elapsedLifetime(): Time;
|
|
19
19
|
set elapsedLifetime(elapsedLifetime: Time);
|
|
20
|
+
/**
|
|
21
|
+
* Spawn position for particles emitted with these options, expressed in
|
|
22
|
+
* the owning ParticleSystem's LOCAL coordinate space — the system's own
|
|
23
|
+
* `getGlobalTransform()` is applied on top during rendering (both the
|
|
24
|
+
* WebGL2 and WebGPU shaders do `projection * translation * rotated`).
|
|
25
|
+
*
|
|
26
|
+
* Setting a world-space value here (e.g. `system.x + offset`) will
|
|
27
|
+
* double-translate the emitter because the shader will translate again.
|
|
28
|
+
* For an emitter anchored at the system origin, use small offsets around
|
|
29
|
+
* `(0, 0)` and position the system itself via `system.setPosition(...)`.
|
|
30
|
+
*/
|
|
20
31
|
get position(): Vector;
|
|
21
32
|
set position(position: Vector);
|
|
22
33
|
get velocity(): Vector;
|
|
@@ -28,6 +28,17 @@ class ParticleOptions {
|
|
|
28
28
|
set elapsedLifetime(elapsedLifetime) {
|
|
29
29
|
this._elapsedLifetime.copy(elapsedLifetime);
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Spawn position for particles emitted with these options, expressed in
|
|
33
|
+
* the owning ParticleSystem's LOCAL coordinate space — the system's own
|
|
34
|
+
* `getGlobalTransform()` is applied on top during rendering (both the
|
|
35
|
+
* WebGL2 and WebGPU shaders do `projection * translation * rotated`).
|
|
36
|
+
*
|
|
37
|
+
* Setting a world-space value here (e.g. `system.x + offset`) will
|
|
38
|
+
* double-translate the emitter because the shader will translate again.
|
|
39
|
+
* For an emitter anchored at the system origin, use small offsets around
|
|
40
|
+
* `(0, 0)` and position the system itself via `system.setPosition(...)`.
|
|
41
|
+
*/
|
|
31
42
|
get position() {
|
|
32
43
|
return this._position;
|
|
33
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParticleOptions.js","sources":["../../../../../src/particles/emitters/ParticleOptions.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ParticleOptions.js","sources":["../../../../../src/particles/emitters/ParticleOptions.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export declare class Container extends RenderNode {
|
|
|
17
17
|
get top(): number;
|
|
18
18
|
get right(): number;
|
|
19
19
|
get bottom(): number;
|
|
20
|
-
addChild(
|
|
20
|
+
addChild(...children: Array<SceneNode>): this;
|
|
21
21
|
addChildAt(child: SceneNode, index: number): this;
|
|
22
22
|
swapChildren(firstChild: SceneNode, secondChild: SceneNode): this;
|
|
23
23
|
getChildIndex(child: SceneNode): number;
|
|
@@ -45,8 +45,11 @@ class Container extends RenderNode {
|
|
|
45
45
|
get bottom() {
|
|
46
46
|
return (this.y + this.height - this.origin.y);
|
|
47
47
|
}
|
|
48
|
-
addChild(
|
|
49
|
-
|
|
48
|
+
addChild(...children) {
|
|
49
|
+
for (const child of children) {
|
|
50
|
+
this.addChildAt(child, this._children.length);
|
|
51
|
+
}
|
|
52
|
+
return this;
|
|
50
53
|
}
|
|
51
54
|
addChildAt(child, index) {
|
|
52
55
|
if (index < 0 || index > this._children.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sources":["../../../../src/rendering/Container.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAKM,MAAO,SAAU,SAAQ,UAAU,CAAA;AAAzC,IAAA,WAAA,GAAA;;QAEqB,IAAA,CAAA,SAAS,GAAqB,EAAE;QACzC,IAAA,CAAA,iBAAiB,GAAG,KAAK;QACzB,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,eAAe,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"Container.js","sources":["../../../../src/rendering/Container.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -61,6 +61,13 @@ function createWebGl2ShaderRuntime(gl) {
|
|
|
61
61
|
gl.useProgram(null);
|
|
62
62
|
},
|
|
63
63
|
sync: () => {
|
|
64
|
+
// Bind the program before syncing uniforms. WebGl2RenderManager
|
|
65
|
+
// does not call bindShader() on the active renderer's shader
|
|
66
|
+
// during normal draw flow, so sync() is the first entry point
|
|
67
|
+
// that must establish program binding — otherwise uniform*
|
|
68
|
+
// targets the wrong (or no) program and the subsequent draw
|
|
69
|
+
// call fails with "no valid shader program in use".
|
|
70
|
+
gl.useProgram(program);
|
|
64
71
|
syncUniforms();
|
|
65
72
|
},
|
|
66
73
|
destroy: (shader) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGl2ShaderRuntime.js","sources":["../../../../../src/rendering/webgl2/WebGl2ShaderRuntime.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WebGl2ShaderRuntime.js","sources":["../../../../../src/rendering/webgl2/WebGl2ShaderRuntime.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -144,54 +144,77 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
|
|
|
144
144
|
if (this._drawCallCount === 0 && !runtime.clearRequested) {
|
|
145
145
|
return;
|
|
146
146
|
}
|
|
147
|
-
const encoder = device.createCommandEncoder();
|
|
148
|
-
const pass = encoder.beginRenderPass({
|
|
149
|
-
colorAttachments: [runtime.createColorAttachment()],
|
|
150
|
-
});
|
|
151
|
-
runtime.stats.renderPasses++;
|
|
152
147
|
const scissor = runtime.getScissorRect();
|
|
153
148
|
const maskClipsAll = scissor !== null && (scissor.width <= 0 || scissor.height <= 0);
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
if (
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
const particleCount = system.particles.length;
|
|
163
|
-
if (particleCount === 0) {
|
|
164
|
-
continue;
|
|
165
|
-
}
|
|
166
|
-
const pipeline = this._getPipeline(drawCall.blendMode, runtime.renderTargetFormat);
|
|
167
|
-
const textureBinding = runtime.getTextureBinding(drawCall.texture);
|
|
168
|
-
const textureBindGroup = device.createBindGroup({
|
|
169
|
-
layout: this._textureBindGroupLayout,
|
|
170
|
-
entries: [{
|
|
171
|
-
binding: 0,
|
|
172
|
-
resource: textureBinding.view,
|
|
173
|
-
}, {
|
|
174
|
-
binding: 1,
|
|
175
|
-
resource: textureBinding.sampler,
|
|
176
|
-
}],
|
|
149
|
+
// If no drawcalls will actually render (none queued, or the scissor
|
|
150
|
+
// clips everything), but a clear is pending, open a single empty
|
|
151
|
+
// pass so createColorAttachment consumes the clear state.
|
|
152
|
+
if (this._drawCallCount === 0 || maskClipsAll) {
|
|
153
|
+
if (runtime.clearRequested) {
|
|
154
|
+
const encoder = device.createCommandEncoder();
|
|
155
|
+
const pass = encoder.beginRenderPass({
|
|
156
|
+
colorAttachments: [runtime.createColorAttachment()],
|
|
177
157
|
});
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
158
|
+
runtime.stats.renderPasses++;
|
|
159
|
+
pass.end();
|
|
160
|
+
runtime.submit(encoder.finish());
|
|
161
|
+
}
|
|
162
|
+
this._drawCallCount = 0;
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
// One command encoder / pass per drawcall. Each particle system's
|
|
166
|
+
// queue.writeBuffer calls target offset 0 of the instance and uniform
|
|
167
|
+
// buffers — a single pass with multiple systems would see all
|
|
168
|
+
// writeBuffers serialize before submit, leaving only the last
|
|
169
|
+
// system's data in those buffers and making every earlier draw read
|
|
170
|
+
// the wrong data. Also: _ensureCapacity may destroy and recreate the
|
|
171
|
+
// instance buffer on growth; keeping one drawcall per pass means
|
|
172
|
+
// that destroy happens strictly between submits, so no pass holds a
|
|
173
|
+
// reference to a buffer that has since been destroyed.
|
|
174
|
+
for (let drawCallIndex = 0; drawCallIndex < this._drawCallCount; drawCallIndex++) {
|
|
175
|
+
const drawCall = this._drawCalls[drawCallIndex];
|
|
176
|
+
const system = drawCall.system;
|
|
177
|
+
const particleCount = system.particles.length;
|
|
178
|
+
if (particleCount === 0) {
|
|
179
|
+
continue;
|
|
191
180
|
}
|
|
181
|
+
const pipeline = this._getPipeline(drawCall.blendMode, runtime.renderTargetFormat);
|
|
182
|
+
const textureBinding = runtime.getTextureBinding(drawCall.texture);
|
|
183
|
+
const textureBindGroup = device.createBindGroup({
|
|
184
|
+
layout: this._textureBindGroupLayout,
|
|
185
|
+
entries: [{
|
|
186
|
+
binding: 0,
|
|
187
|
+
resource: textureBinding.view,
|
|
188
|
+
}, {
|
|
189
|
+
binding: 1,
|
|
190
|
+
resource: textureBinding.sampler,
|
|
191
|
+
}],
|
|
192
|
+
});
|
|
193
|
+
this._ensureCapacity(particleCount);
|
|
194
|
+
this._writeInstanceData(system.vertices, system.texCoords, system.particles);
|
|
195
|
+
this._writeUniformData(runtime, system, drawCall.texture);
|
|
196
|
+
device.queue.writeBuffer(this._instanceBuffer, 0, this._instanceData, 0, particleCount * instanceStrideBytes);
|
|
197
|
+
device.queue.writeBuffer(uniformBuffer, 0, this._uniformData.buffer, this._uniformData.byteOffset, this._uniformData.byteLength);
|
|
198
|
+
const encoder = device.createCommandEncoder();
|
|
199
|
+
const pass = encoder.beginRenderPass({
|
|
200
|
+
colorAttachments: [runtime.createColorAttachment()],
|
|
201
|
+
});
|
|
202
|
+
runtime.stats.renderPasses++;
|
|
203
|
+
if (scissor !== null) {
|
|
204
|
+
pass.setScissorRect(scissor.x, scissor.y, scissor.width, scissor.height);
|
|
205
|
+
}
|
|
206
|
+
pass.setBindGroup(0, uniformBindGroup);
|
|
207
|
+
pass.setPipeline(pipeline);
|
|
208
|
+
pass.setBindGroup(1, textureBindGroup);
|
|
209
|
+
pass.setVertexBuffer(0, staticVertexBuffer);
|
|
210
|
+
pass.setVertexBuffer(1, this._instanceBuffer);
|
|
211
|
+
pass.setIndexBuffer(indexBuffer, 'uint16');
|
|
212
|
+
pass.drawIndexed(indicesPerParticle, particleCount, 0, 0, 0);
|
|
213
|
+
runtime.stats.batches++;
|
|
214
|
+
runtime.stats.drawCalls++;
|
|
215
|
+
pass.end();
|
|
216
|
+
runtime.submit(encoder.finish());
|
|
192
217
|
}
|
|
193
|
-
pass.end();
|
|
194
|
-
runtime.submit(encoder.finish());
|
|
195
218
|
this._drawCallCount = 0;
|
|
196
219
|
}
|
|
197
220
|
destroy() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGpuParticleRenderer.js","sources":["../../../../../src/rendering/webgpu/WebGpuParticleRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebGpuParticleRenderer.js","sources":["../../../../../src/rendering/webgpu/WebGpuParticleRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -5,15 +5,11 @@ export declare class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer<Draw
|
|
|
5
5
|
private readonly _combinedTransform;
|
|
6
6
|
private readonly _drawCalls;
|
|
7
7
|
private _drawCallCount;
|
|
8
|
-
private readonly _transformData;
|
|
9
8
|
private readonly _pipelines;
|
|
10
9
|
private _renderManager;
|
|
11
10
|
private _device;
|
|
12
11
|
private _shaderModule;
|
|
13
|
-
private _bindGroupLayout;
|
|
14
12
|
private _pipelineLayout;
|
|
15
|
-
private _uniformBuffer;
|
|
16
|
-
private _bindGroup;
|
|
17
13
|
private _vertexBuffer;
|
|
18
14
|
private _indexBuffer;
|
|
19
15
|
private _vertexBufferCapacity;
|
|
@@ -21,6 +17,7 @@ export declare class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer<Draw
|
|
|
21
17
|
private _vertexData;
|
|
22
18
|
private _float32View;
|
|
23
19
|
private _uint32View;
|
|
20
|
+
private _packedIndexData;
|
|
24
21
|
private _generatedIndexData;
|
|
25
22
|
private _sequentialIndexData;
|
|
26
23
|
render(shape: DrawableShape): void;
|
|
@@ -28,8 +25,7 @@ export declare class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer<Draw
|
|
|
28
25
|
destroy(): void;
|
|
29
26
|
protected onConnect(runtime: WebGpuRendererRuntime): void;
|
|
30
27
|
protected onDisconnect(): void;
|
|
31
|
-
private
|
|
32
|
-
private _writeVertexData;
|
|
28
|
+
private _writeShapeVertices;
|
|
33
29
|
private _ensureVertexCapacity;
|
|
34
30
|
private _ensureIndexCapacity;
|
|
35
31
|
private _getPipeline;
|