@codexo/exojs 0.4.0 → 0.6.2
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 +499 -163
- package/README.md +156 -141
- package/dist/esm/audio/AudioAnalyser.d.ts +0 -1
- package/dist/esm/audio/AudioAnalyser.js +0 -2
- package/dist/esm/audio/AudioAnalyser.js.map +1 -1
- package/dist/esm/core/Application.d.ts +4 -4
- package/dist/esm/core/Application.js +19 -19
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Scene.d.ts +59 -24
- package/dist/esm/core/Scene.js +60 -18
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.js +15 -9
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +45 -5
- package/dist/esm/core/SceneNode.js +136 -7
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/index.js +6 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/math/index.d.ts +0 -1
- package/dist/esm/rendering/CallbackRenderPass.d.ts +3 -3
- package/dist/esm/rendering/CallbackRenderPass.js +2 -2
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +10 -11
- package/dist/esm/rendering/Container.js +5 -5
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.d.ts +2 -2
- package/dist/esm/rendering/Drawable.js +5 -5
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/{SceneRenderRuntime.d.ts → RenderBackend.d.ts} +21 -3
- package/dist/esm/rendering/RenderNode.d.ts +41 -5
- package/dist/esm/rendering/RenderNode.js +89 -24
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderPass.d.ts +2 -2
- package/dist/esm/rendering/RenderTargetPass.d.ts +3 -3
- package/dist/esm/rendering/RenderTargetPass.js +9 -9
- package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
- package/dist/esm/rendering/Renderer.d.ts +3 -3
- package/dist/esm/rendering/RendererRegistry.d.ts +13 -7
- package/dist/esm/rendering/RendererRegistry.js +18 -10
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/filters/BlurFilter.d.ts +2 -2
- package/dist/esm/rendering/filters/BlurFilter.js +5 -5
- package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
- package/dist/esm/rendering/filters/ColorFilter.d.ts +2 -2
- package/dist/esm/rendering/filters/ColorFilter.js +3 -3
- package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
- package/dist/esm/rendering/filters/Filter.d.ts +2 -2
- package/dist/esm/rendering/index.d.ts +9 -6
- package/dist/esm/rendering/mesh/Mesh.d.ts +69 -0
- package/dist/esm/rendering/mesh/Mesh.js +114 -0
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -0
- package/dist/esm/rendering/primitives/Graphics.d.ts +3 -3
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/shader/Shader.d.ts +3 -3
- package/dist/esm/rendering/shader/Shader.js +10 -10
- package/dist/esm/rendering/text/Text.d.ts +2 -2
- package/dist/esm/rendering/text/Text.js +2 -2
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/texture/Sampler.d.ts +0 -3
- package/dist/esm/rendering/texture/Sampler.js +5 -7
- package/dist/esm/rendering/texture/Sampler.js.map +1 -1
- package/dist/esm/rendering/types.d.ts +4 -0
- package/dist/esm/rendering/types.js +4 -0
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +2 -2
- package/dist/esm/rendering/video/Video.js +2 -2
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +2 -2
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +35 -11
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +13 -13
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js +20 -20
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/{WebGl2RenderManager.d.ts → WebGl2Backend.d.ts} +15 -12
- package/dist/esm/rendering/webgl2/{WebGl2RenderManager.js → WebGl2Backend.js} +63 -38
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts +31 -0
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +186 -0
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +27 -0
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +242 -0
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +38 -7
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +281 -90
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.d.ts +2 -2
- package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.js +15 -10
- package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +12 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts +2 -0
- package/dist/esm/rendering/webgl2/{WebGl2ShaderRuntime.js → WebGl2ShaderProgram.js} +58 -18
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +26 -7
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +260 -62
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +24 -1
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js +6 -2
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js.map +1 -1
- package/dist/esm/rendering/webgl2/glsl/mask-compose.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/mask-compose.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/mask-compose.vert.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/mask-compose.vert.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/mesh.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/mesh.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/mesh.vert.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/mesh.vert.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/particle.vert.js +1 -1
- package/dist/esm/rendering/webgl2/glsl/sprite.frag.js +1 -1
- package/dist/esm/rendering/webgl2/glsl/sprite.vert.js +1 -1
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +9 -9
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js +18 -18
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/{WebGpuRenderManager.d.ts → WebGpuBackend.d.ts} +17 -14
- package/dist/esm/rendering/webgpu/{WebGpuRenderManager.js → WebGpuBackend.js} +77 -40
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +37 -0
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +279 -0
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +40 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +439 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +2 -3
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +65 -82
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.d.ts +2 -3
- package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js +24 -25
- package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +28 -13
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +410 -382
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/resources/Loader.js +5 -3
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/exo.esm.js +3574 -1696
- package/dist/exo.esm.js.map +1 -1
- package/package.json +20 -11
- package/dist/esm/math/Transformable.d.ts +0 -47
- package/dist/esm/math/Transformable.js +0 -140
- package/dist/esm/math/Transformable.js.map +0 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderManager.js.map +0 -1
- package/dist/esm/rendering/webgl2/WebGl2RendererRuntime.d.ts +0 -15
- package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.d.ts +0 -2
- package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.js.map +0 -1
- package/dist/esm/rendering/webgpu/WebGpuRenderManager.js.map +0 -1
- package/dist/esm/rendering/webgpu/WebGpuRendererRuntime.d.ts +0 -8
- package/dist/exo.esm.min.js +0 -2
- package/dist/exo.esm.min.js.map +0 -1
- package/dist/exo.global.js +0 -17328
- package/dist/exo.global.js.map +0 -1
- package/dist/exo.global.min.js +0 -2
- package/dist/exo.global.min.js.map +0 -1
|
@@ -8,6 +8,8 @@ struct ProjectionUniforms {
|
|
|
8
8
|
projection: mat4x4<f32>,
|
|
9
9
|
translation: mat4x4<f32>,
|
|
10
10
|
flags: vec4<f32>,
|
|
11
|
+
localBounds: vec4<f32>, // quadMin.xy, quadSize.xy
|
|
12
|
+
uvBounds: vec4<f32>, // uvMin.xy, uvMax.xy
|
|
11
13
|
};
|
|
12
14
|
|
|
13
15
|
@group(0) @binding(0)
|
|
@@ -19,16 +21,13 @@ var particleTexture: texture_2d<f32>;
|
|
|
19
21
|
@group(1) @binding(1)
|
|
20
22
|
var particleSampler: sampler;
|
|
21
23
|
|
|
24
|
+
// Per-instance attributes (one entry per particle, 24 bytes total).
|
|
22
25
|
struct VertexInput {
|
|
23
|
-
@location(0) unitPosition: vec2<f32>,
|
|
24
|
-
@location(1)
|
|
25
|
-
@location(2)
|
|
26
|
-
@location(3)
|
|
27
|
-
@location(4)
|
|
28
|
-
@location(5) translation: vec2<f32>,
|
|
29
|
-
@location(6) scale: vec2<f32>,
|
|
30
|
-
@location(7) rotation: f32,
|
|
31
|
-
@location(8) color: vec4<f32>,
|
|
26
|
+
@location(0) unitPosition: vec2<f32>, // per-vertex (static unit quad)
|
|
27
|
+
@location(1) translation: vec2<f32>,
|
|
28
|
+
@location(2) scale: vec2<f32>,
|
|
29
|
+
@location(3) rotation: f32,
|
|
30
|
+
@location(4) color: vec4<f32>,
|
|
32
31
|
};
|
|
33
32
|
|
|
34
33
|
struct VertexOutput {
|
|
@@ -39,7 +38,12 @@ struct VertexOutput {
|
|
|
39
38
|
|
|
40
39
|
@vertex
|
|
41
40
|
fn vertexMain(input: VertexInput) -> VertexOutput {
|
|
42
|
-
let
|
|
41
|
+
let quadMin = uniforms.localBounds.xy;
|
|
42
|
+
let quadSize = uniforms.localBounds.zw;
|
|
43
|
+
let uvMin = uniforms.uvBounds.xy;
|
|
44
|
+
let uvMax = uniforms.uvBounds.zw;
|
|
45
|
+
|
|
46
|
+
let localPosition = quadMin + (input.unitPosition * quadSize);
|
|
43
47
|
let radians = radians(input.rotation);
|
|
44
48
|
let sinValue = sin(radians);
|
|
45
49
|
let cosValue = cos(radians);
|
|
@@ -51,7 +55,7 @@ fn vertexMain(input: VertexInput) -> VertexOutput {
|
|
|
51
55
|
var output: VertexOutput;
|
|
52
56
|
|
|
53
57
|
output.position = uniforms.projection * uniforms.translation * vec4<f32>(rotated, 0.0, 1.0);
|
|
54
|
-
output.texcoord =
|
|
58
|
+
output.texcoord = uvMin + ((uvMax - uvMin) * input.unitPosition);
|
|
55
59
|
output.color = vec4(input.color.rgb * input.color.a, input.color.a);
|
|
56
60
|
|
|
57
61
|
return output;
|
|
@@ -66,10 +70,10 @@ fn fragmentMain(input: VertexOutput) -> @location(0) vec4<f32> {
|
|
|
66
70
|
}
|
|
67
71
|
`;
|
|
68
72
|
const staticVertexStrideBytes = 8;
|
|
69
|
-
const instanceWords =
|
|
70
|
-
const instanceStrideBytes =
|
|
73
|
+
const instanceWords = 6;
|
|
74
|
+
const instanceStrideBytes = 24;
|
|
71
75
|
const indicesPerParticle = 6;
|
|
72
|
-
const uniformByteLength =
|
|
76
|
+
const uniformByteLength = 176;
|
|
73
77
|
const initialParticleCapacity = 1;
|
|
74
78
|
const staticVertexData = new Float32Array([
|
|
75
79
|
0, 0,
|
|
@@ -85,7 +89,6 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
|
|
|
85
89
|
_drawCalls = [];
|
|
86
90
|
_drawCallCount = 0;
|
|
87
91
|
_uniformData = new Float32Array(uniformByteLength / Float32Array.BYTES_PER_ELEMENT);
|
|
88
|
-
_renderManager = null;
|
|
89
92
|
_device = null;
|
|
90
93
|
_shaderModule = null;
|
|
91
94
|
_uniformBindGroupLayout = null;
|
|
@@ -102,9 +105,9 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
|
|
|
102
105
|
_uint32View = new Uint32Array(this._instanceData);
|
|
103
106
|
_pipelines = new Map();
|
|
104
107
|
render(system) {
|
|
105
|
-
const
|
|
108
|
+
const backend = this._backend;
|
|
106
109
|
const texture = system.texture;
|
|
107
|
-
if (
|
|
110
|
+
if (backend === null
|
|
108
111
|
|| !(texture instanceof Texture)
|
|
109
112
|
|| texture.source === null
|
|
110
113
|
|| texture.width === 0
|
|
@@ -112,7 +115,7 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
|
|
|
112
115
|
|| system.particles.length === 0) {
|
|
113
116
|
return;
|
|
114
117
|
}
|
|
115
|
-
|
|
118
|
+
backend.setBlendMode(system.blendMode);
|
|
116
119
|
const drawCallIndex = this._drawCallCount++;
|
|
117
120
|
const drawCall = this._drawCalls[drawCallIndex];
|
|
118
121
|
if (drawCall) {
|
|
@@ -129,32 +132,32 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
|
|
|
129
132
|
}
|
|
130
133
|
}
|
|
131
134
|
flush() {
|
|
132
|
-
const
|
|
135
|
+
const backend = this._backend;
|
|
133
136
|
const device = this._device;
|
|
134
137
|
const uniformBuffer = this._uniformBuffer;
|
|
135
138
|
const uniformBindGroup = this._uniformBindGroup;
|
|
136
139
|
const staticVertexBuffer = this._staticVertexBuffer;
|
|
137
140
|
const indexBuffer = this._indexBuffer;
|
|
138
|
-
if (!
|
|
141
|
+
if (!backend || !device || !uniformBuffer || !uniformBindGroup || !staticVertexBuffer || !this._instanceBuffer || !indexBuffer) {
|
|
139
142
|
return;
|
|
140
143
|
}
|
|
141
|
-
if (this._drawCallCount === 0 && !
|
|
144
|
+
if (this._drawCallCount === 0 && !backend.clearRequested) {
|
|
142
145
|
return;
|
|
143
146
|
}
|
|
144
|
-
const scissor =
|
|
147
|
+
const scissor = backend.getScissorRect();
|
|
145
148
|
const maskClipsAll = scissor !== null && (scissor.width <= 0 || scissor.height <= 0);
|
|
146
149
|
// If no drawcalls will actually render (none queued, or the scissor
|
|
147
150
|
// clips everything), but a clear is pending, open a single empty
|
|
148
151
|
// pass so createColorAttachment consumes the clear state.
|
|
149
152
|
if (this._drawCallCount === 0 || maskClipsAll) {
|
|
150
|
-
if (
|
|
153
|
+
if (backend.clearRequested) {
|
|
151
154
|
const encoder = device.createCommandEncoder();
|
|
152
155
|
const pass = encoder.beginRenderPass({
|
|
153
|
-
colorAttachments: [
|
|
156
|
+
colorAttachments: [backend.createColorAttachment()],
|
|
154
157
|
});
|
|
155
|
-
|
|
158
|
+
backend.stats.renderPasses++;
|
|
156
159
|
pass.end();
|
|
157
|
-
|
|
160
|
+
backend.submit(encoder.finish());
|
|
158
161
|
}
|
|
159
162
|
this._drawCallCount = 0;
|
|
160
163
|
return;
|
|
@@ -175,8 +178,8 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
|
|
|
175
178
|
if (particleCount === 0) {
|
|
176
179
|
continue;
|
|
177
180
|
}
|
|
178
|
-
const pipeline = this._getPipeline(drawCall.blendMode,
|
|
179
|
-
const textureBinding =
|
|
181
|
+
const pipeline = this._getPipeline(drawCall.blendMode, backend.renderTargetFormat);
|
|
182
|
+
const textureBinding = backend.getTextureBinding(drawCall.texture);
|
|
180
183
|
const textureBindGroup = device.createBindGroup({
|
|
181
184
|
layout: this._textureBindGroupLayout,
|
|
182
185
|
entries: [{
|
|
@@ -189,14 +192,14 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
|
|
|
189
192
|
});
|
|
190
193
|
this._ensureCapacity(particleCount);
|
|
191
194
|
this._writeInstanceData(system.vertices, system.texCoords, system.particles);
|
|
192
|
-
this._writeUniformData(
|
|
195
|
+
this._writeUniformData(backend, system, drawCall.texture);
|
|
193
196
|
device.queue.writeBuffer(this._instanceBuffer, 0, this._instanceData, 0, particleCount * instanceStrideBytes);
|
|
194
197
|
device.queue.writeBuffer(uniformBuffer, 0, this._uniformData.buffer, this._uniformData.byteOffset, this._uniformData.byteLength);
|
|
195
198
|
const encoder = device.createCommandEncoder();
|
|
196
199
|
const pass = encoder.beginRenderPass({
|
|
197
|
-
colorAttachments: [
|
|
200
|
+
colorAttachments: [backend.createColorAttachment()],
|
|
198
201
|
});
|
|
199
|
-
|
|
202
|
+
backend.stats.renderPasses++;
|
|
200
203
|
if (scissor !== null) {
|
|
201
204
|
pass.setScissorRect(scissor.x, scissor.y, scissor.width, scissor.height);
|
|
202
205
|
}
|
|
@@ -207,19 +210,19 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
|
|
|
207
210
|
pass.setVertexBuffer(1, this._instanceBuffer);
|
|
208
211
|
pass.setIndexBuffer(indexBuffer, 'uint16');
|
|
209
212
|
pass.drawIndexed(indicesPerParticle, particleCount, 0, 0, 0);
|
|
210
|
-
|
|
211
|
-
|
|
213
|
+
backend.stats.batches++;
|
|
214
|
+
backend.stats.drawCalls++;
|
|
212
215
|
pass.end();
|
|
213
|
-
|
|
216
|
+
backend.submit(encoder.finish());
|
|
214
217
|
}
|
|
215
218
|
this._drawCallCount = 0;
|
|
216
219
|
}
|
|
217
220
|
destroy() {
|
|
218
221
|
this.disconnect();
|
|
219
222
|
}
|
|
220
|
-
onConnect(
|
|
221
|
-
this.
|
|
222
|
-
this._device = this.
|
|
223
|
+
onConnect(backend) {
|
|
224
|
+
this._backend = backend;
|
|
225
|
+
this._device = this._backend.device;
|
|
223
226
|
this._shaderModule = this._device.createShaderModule({ code: particleShaderSource });
|
|
224
227
|
this._uniformBindGroupLayout = this._device.createBindGroupLayout({
|
|
225
228
|
entries: [{
|
|
@@ -290,7 +293,7 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
|
|
|
290
293
|
this._uniformBindGroupLayout = null;
|
|
291
294
|
this._shaderModule = null;
|
|
292
295
|
this._device = null;
|
|
293
|
-
this.
|
|
296
|
+
this._backend = null;
|
|
294
297
|
this._instanceBufferByteLength = 0;
|
|
295
298
|
this._instanceData = new ArrayBuffer(instanceStrideBytes * initialParticleCapacity);
|
|
296
299
|
this._float32View = new Float32Array(this._instanceData);
|
|
@@ -321,10 +324,20 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
|
|
|
321
324
|
this._instanceBufferByteLength = byteLength;
|
|
322
325
|
}
|
|
323
326
|
}
|
|
324
|
-
_writeUniformData(
|
|
325
|
-
const projection =
|
|
327
|
+
_writeUniformData(backend, system, texture) {
|
|
328
|
+
const projection = backend.view.getTransform().toArray(false);
|
|
326
329
|
const transform = system.getGlobalTransform().toArray(false);
|
|
327
|
-
const shouldPremultiplySample =
|
|
330
|
+
const shouldPremultiplySample = backend.shouldPremultiplyTextureSample(texture);
|
|
331
|
+
const vertices = system.vertices;
|
|
332
|
+
const texCoords = system.texCoords;
|
|
333
|
+
const quadMinX = vertices[0];
|
|
334
|
+
const quadMinY = vertices[1];
|
|
335
|
+
const quadSizeX = vertices[2] - vertices[0];
|
|
336
|
+
const quadSizeY = vertices[3] - vertices[1];
|
|
337
|
+
const uvMinX = (texCoords[0] & 0xFFFF) / 0xFFFF;
|
|
338
|
+
const uvMinY = ((texCoords[0] >>> 16) & 0xFFFF) / 0xFFFF;
|
|
339
|
+
const uvMaxX = (texCoords[2] & 0xFFFF) / 0xFFFF;
|
|
340
|
+
const uvMaxY = ((texCoords[2] >>> 16) & 0xFFFF) / 0xFFFF;
|
|
328
341
|
this._uniformData.set([
|
|
329
342
|
projection[0], projection[1], 0, 0,
|
|
330
343
|
projection[3], projection[4], 0, 0,
|
|
@@ -335,34 +348,20 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
|
|
|
335
348
|
0, 0, 1, 0,
|
|
336
349
|
transform[6], transform[7], 0, transform[8],
|
|
337
350
|
shouldPremultiplySample ? 1 : 0, 0, 0, 0,
|
|
351
|
+
quadMinX, quadMinY, quadSizeX, quadSizeY,
|
|
352
|
+
uvMinX, uvMinY, uvMaxX, uvMaxY,
|
|
338
353
|
]);
|
|
339
354
|
}
|
|
340
|
-
_writeInstanceData(
|
|
341
|
-
const quadMinX = vertices[0];
|
|
342
|
-
const quadMinY = vertices[1];
|
|
343
|
-
const quadSizeX = vertices[2] - vertices[0];
|
|
344
|
-
const quadSizeY = vertices[3] - vertices[1];
|
|
345
|
-
const uvMinX = (texCoords[0] & 0xFFFF) / 65535;
|
|
346
|
-
const uvMinY = ((texCoords[0] >>> 16) & 0xFFFF) / 65535;
|
|
347
|
-
const uvMaxX = (texCoords[2] & 0xFFFF) / 65535;
|
|
348
|
-
const uvMaxY = ((texCoords[2] >>> 16) & 0xFFFF) / 65535;
|
|
355
|
+
_writeInstanceData(_vertices, _texCoords, particles) {
|
|
349
356
|
for (let particleIndex = 0; particleIndex < particles.length; particleIndex++) {
|
|
350
357
|
const particle = particles[particleIndex];
|
|
351
358
|
const targetIndex = particleIndex * instanceWords;
|
|
352
|
-
this._float32View[targetIndex] =
|
|
353
|
-
this._float32View[targetIndex + 1] =
|
|
354
|
-
this._float32View[targetIndex + 2] =
|
|
355
|
-
this._float32View[targetIndex + 3] =
|
|
356
|
-
this._float32View[targetIndex + 4] =
|
|
357
|
-
this.
|
|
358
|
-
this._float32View[targetIndex + 6] = uvMaxX;
|
|
359
|
-
this._float32View[targetIndex + 7] = uvMaxY;
|
|
360
|
-
this._float32View[targetIndex + 8] = particle.position.x;
|
|
361
|
-
this._float32View[targetIndex + 9] = particle.position.y;
|
|
362
|
-
this._float32View[targetIndex + 10] = particle.scale.x;
|
|
363
|
-
this._float32View[targetIndex + 11] = particle.scale.y;
|
|
364
|
-
this._float32View[targetIndex + 12] = particle.rotation;
|
|
365
|
-
this._uint32View[targetIndex + 13] = particle.tint.toRgba();
|
|
359
|
+
this._float32View[targetIndex + 0] = particle.position.x;
|
|
360
|
+
this._float32View[targetIndex + 1] = particle.position.y;
|
|
361
|
+
this._float32View[targetIndex + 2] = particle.scale.x;
|
|
362
|
+
this._float32View[targetIndex + 3] = particle.scale.y;
|
|
363
|
+
this._float32View[targetIndex + 4] = particle.rotation;
|
|
364
|
+
this._uint32View[targetIndex + 5] = particle.tint.toRgba();
|
|
366
365
|
}
|
|
367
366
|
}
|
|
368
367
|
_getPipeline(blendMode, format) {
|
|
@@ -397,26 +396,10 @@ class WebGpuParticleRenderer extends AbstractWebGpuRenderer {
|
|
|
397
396
|
}, {
|
|
398
397
|
shaderLocation: 3,
|
|
399
398
|
offset: 16,
|
|
400
|
-
format: 'float32x2',
|
|
401
|
-
}, {
|
|
402
|
-
shaderLocation: 4,
|
|
403
|
-
offset: 24,
|
|
404
|
-
format: 'float32x2',
|
|
405
|
-
}, {
|
|
406
|
-
shaderLocation: 5,
|
|
407
|
-
offset: 32,
|
|
408
|
-
format: 'float32x2',
|
|
409
|
-
}, {
|
|
410
|
-
shaderLocation: 6,
|
|
411
|
-
offset: 40,
|
|
412
|
-
format: 'float32x2',
|
|
413
|
-
}, {
|
|
414
|
-
shaderLocation: 7,
|
|
415
|
-
offset: 48,
|
|
416
399
|
format: 'float32',
|
|
417
400
|
}, {
|
|
418
|
-
shaderLocation:
|
|
419
|
-
offset:
|
|
401
|
+
shaderLocation: 4,
|
|
402
|
+
offset: 20,
|
|
420
403
|
format: 'unorm8x4',
|
|
421
404
|
}],
|
|
422
405
|
}],
|
|
@@ -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":";;;;AAAA;AASA,MAAM,oBAAoB,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiE5B;AAED,MAAM,uBAAuB,GAAG,CAAC;AACjC,MAAM,aAAa,GAAG,CAAC;AACvB,MAAM,mBAAmB,GAAG,EAAE;AAC9B,MAAM,kBAAkB,GAAG,CAAC;AAC5B,MAAM,iBAAiB,GAAG,GAAG;AAC7B,MAAM,uBAAuB,GAAG,CAAC;AACjC,MAAM,gBAAgB,GAAG,IAAI,YAAY,CAAC;AACtC,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,CAAC,EAAE,CAAC;AACP,CAAA,CAAC;AACF,MAAM,eAAe,GAAG,IAAI,WAAW,CAAC;IACpC,CAAC,EAAE,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,CAAC,EAAE,CAAC;AACV,CAAA,CAAC;AAQI,MAAO,sBAAuB,SAAQ,sBAAsC,CAAA;IAC7D,UAAU,GAAkC,EAAE;IACvD,cAAc,GAAG,CAAC;IACT,YAAY,GAAG,IAAI,YAAY,CAAC,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,CAAC;IAE5F,OAAO,GAAqB,IAAI;IAChC,aAAa,GAA2B,IAAI;IAC5C,uBAAuB,GAA8B,IAAI;IACzD,uBAAuB,GAA8B,IAAI;IACzD,eAAe,GAA6B,IAAI;IAChD,cAAc,GAAqB,IAAI;IACvC,iBAAiB,GAAwB,IAAI;IAC7C,mBAAmB,GAAqB,IAAI;IAC5C,eAAe,GAAqB,IAAI;IACxC,YAAY,GAAqB,IAAI;IACrC,yBAAyB,GAAG,CAAC;IAC7B,aAAa,GAAgB,IAAI,WAAW,CAAC,mBAAmB,GAAG,uBAAuB,CAAC;IAC3F,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;IACnD,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;AACxC,IAAA,UAAU,GAAmC,IAAI,GAAG,EAA6B;AAE3F,IAAA,MAAM,CAAC,MAAsB,EAAA;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ;AAC7B,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;QAE9B,IACI,OAAO,KAAK;AACT,eAAA,EAAE,OAAO,YAAY,OAAO;eAC5B,OAAO,CAAC,MAAM,KAAK;eACnB,OAAO,CAAC,KAAK,KAAK;eAClB,OAAO,CAAC,MAAM,KAAK;AACnB,eAAA,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAClC;YACE;QACJ;AAEA,QAAA,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC;AACtC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAE/C,IAAI,QAAQ,EAAE;AACV,YAAA,QAAQ,CAAC,MAAM,GAAG,MAAM;AACxB,YAAA,QAAQ,CAAC,OAAO,GAAG,OAAO;AAC1B,YAAA,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;QACzC;aAAO;AACH,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;gBACjB,MAAM;gBACN,OAAO;gBACP,SAAS,EAAE,MAAM,CAAC,SAAS;AAC9B,aAAA,CAAC;QACN;IACJ;IAEO,KAAK,GAAA;AACR,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ;AAC7B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO;AAC3B,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc;AACzC,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB;AAC/C,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB;AACnD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY;QAErC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,IAAI,CAAC,gBAAgB,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,WAAW,EAAE;YAC5H;QACJ;QAEA,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YACtD;QACJ;AAEA,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE;AACxC,QAAA,MAAM,YAAY,GAAG,OAAO,KAAK,IAAI,KAAK,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;;;;QAKpF,IAAI,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,YAAY,EAAE;AAC3C,YAAA,IAAI,OAAO,CAAC,cAAc,EAAE;AACxB,gBAAA,MAAM,OAAO,GAAG,MAAM,CAAC,oBAAoB,EAAE;AAC7C,gBAAA,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;AACjC,oBAAA,gBAAgB,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AACtD,iBAAA,CAAC;AACF,gBAAA,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE;gBAC5B,IAAI,CAAC,GAAG,EAAE;gBACV,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC;AACA,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC;YACvB;QACJ;;;;;;;;;;AAWA,QAAA,KAAK,IAAI,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE;YAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AAC/C,YAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM;AAC9B,YAAA,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM;AAE7C,YAAA,IAAI,aAAa,KAAK,CAAC,EAAE;gBACrB;YACJ;AAEA,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC;YAClF,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC;AAClE,YAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAC;gBAC5C,MAAM,EAAE,IAAI,CAAC,uBAAwB;AACrC,gBAAA,OAAO,EAAE,CAAC;AACN,wBAAA,OAAO,EAAE,CAAC;wBACV,QAAQ,EAAE,cAAc,CAAC,IAAI;qBAChC,EAAE;AACC,wBAAA,OAAO,EAAE,CAAC;wBACV,QAAQ,EAAE,cAAc,CAAC,OAAO;qBACnC,CAAC;AACL,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;AACnC,YAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;YAC5E,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;YAEzD,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,eAAgB,EAAE,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,mBAAmB,CAAC;YAC9G,MAAM,CAAC,KAAK,CAAC,WAAW,CACpB,aAAa,EACb,CAAC,EACD,IAAI,CAAC,YAAY,CAAC,MAAqB,EACvC,IAAI,CAAC,YAAY,CAAC,UAAU,EAC5B,IAAI,CAAC,YAAY,CAAC,UAAU,CAC/B;AAED,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,oBAAoB,EAAE;AAC7C,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;AACjC,gBAAA,gBAAgB,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AACtD,aAAA,CAAC;AACF,YAAA,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE;AAE5B,YAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AAClB,gBAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC;YAC5E;AAEA,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,gBAAgB,CAAC;AACtC,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC1B,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,gBAAgB,CAAC;AACtC,YAAA,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,kBAAkB,CAAC;YAC3C,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,eAAgB,CAAC;AAC9C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC;AAC1C,YAAA,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,YAAA,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;YAEzB,IAAI,CAAC,GAAG,EAAE;YACV,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC;AAEA,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;IAC3B;IAEO,OAAO,GAAA;QACV,IAAI,CAAC,UAAU,EAAE;IACrB;AAEU,IAAA,SAAS,CAAC,OAAsB,EAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAwB;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;AACnC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;QACpF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;AAC9D,YAAA,OAAO,EAAE,CAAC;AACN,oBAAA,OAAO,EAAE,CAAC;AACV,oBAAA,UAAU,EAAE,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,QAAQ;AAC3D,oBAAA,MAAM,EAAE;AACJ,wBAAA,IAAI,EAAE,SAAS;AAClB,qBAAA;iBACJ,CAAC;AACL,SAAA,CAAC;QACF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;AAC9D,YAAA,OAAO,EAAE,CAAC;AACN,oBAAA,OAAO,EAAE,CAAC;oBACV,UAAU,EAAE,cAAc,CAAC,QAAQ;AACnC,oBAAA,OAAO,EAAE;AACL,wBAAA,UAAU,EAAE,OAAO;AACtB,qBAAA;iBACJ,EAAE;AACC,oBAAA,OAAO,EAAE,CAAC;oBACV,UAAU,EAAE,cAAc,CAAC,QAAQ;AACnC,oBAAA,OAAO,EAAE;AACL,wBAAA,IAAI,EAAE,WAAW;AACpB,qBAAA;iBACJ,CAAC;AACL,SAAA,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;YACrD,gBAAgB,EAAE,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,CAAC;AACjF,SAAA,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAC5C,YAAA,IAAI,EAAE,iBAAiB;AACvB,YAAA,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ;AAC1D,SAAA,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YAClD,MAAM,EAAE,IAAI,CAAC,uBAAuB;AACpC,YAAA,OAAO,EAAE,CAAC;AACN,oBAAA,OAAO,EAAE,CAAC;AACV,oBAAA,QAAQ,EAAE;wBACN,MAAM,EAAE,IAAI,CAAC,cAAc;AAC9B,qBAAA;iBACJ,CAAC;AACL,SAAA,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACjD,IAAI,EAAE,gBAAgB,CAAC,UAAU;AACjC,YAAA,KAAK,EAAE,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,QAAQ;AACzD,SAAA,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC;QAC9I,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YAC1C,IAAI,EAAE,eAAe,CAAC,UAAU;AAChC,YAAA,KAAK,EAAE,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC,QAAQ;AACxD,SAAA,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,CAAC,UAAU,EAAE,eAAe,CAAC,UAAU,CAAC;AACpI,QAAA,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC;IACjD;IAEU,YAAY,GAAA;QAClB,IAAI,CAAC,KAAK,EAAE;AAEZ,QAAA,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE;AACnC,QAAA,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE;AAC/B,QAAA,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE;AAC5B,QAAA,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE;AAE9B,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAC/B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAC7B,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI;AACnC,QAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI;AACnC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,yBAAyB,GAAG,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,WAAW,CAAC,mBAAmB,GAAG,uBAAuB,CAAC;QACnF,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;QACxD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;AACtD,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC;IAC3B;AAEQ,IAAA,eAAe,CAAC,aAAqB,EAAA;AACzC,QAAA,MAAM,qBAAqB,GAAG,aAAa,GAAG,mBAAmB;QAEjE,IAAI,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;AACvD,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU;AAE9C,YAAA,OAAO,UAAU,GAAG,qBAAqB,EAAE;gBACvC,UAAU,IAAI,CAAC;YACnB;YAEA,IAAI,CAAC,aAAa,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC;YAChD,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;YACxD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;QAC1D;AAEA,QAAA,IAAI,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,EAAE;AACxD,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,yBAAyB,IAAI,mBAAmB;AAEtE,YAAA,OAAO,UAAU,GAAG,qBAAqB,EAAE;gBACvC,UAAU,IAAI,CAAC;YACnB;AAEA,YAAA,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE;YAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAQ,CAAC,YAAY,CAAC;AAC9C,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,KAAK,EAAE,cAAc,CAAC,MAAM,GAAG,cAAc,CAAC,QAAQ;AACzD,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,yBAAyB,GAAG,UAAU;QAC/C;IACJ;AAEQ,IAAA,iBAAiB,CAAC,OAAsB,EAAE,MAAsB,EAAE,OAAgB,EAAA;AACtF,QAAA,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5D,MAAM,uBAAuB,GAAG,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC;AAC/E,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAChC,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS;AAClC,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC5B,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AAC3C,QAAA,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM;AAC/C,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,MAAM,IAAI,MAAM;AACxD,QAAA,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM;AAC/C,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,MAAM,IAAI,MAAM;AAExD,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;YAClB,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAClC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAClC,YAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACV,YAAA,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;YAE9C,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YAChC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAChC,YAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACV,YAAA,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAE3C,YAAA,uBAAuB,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAExC,YAAA,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;AACxC,YAAA,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;AACjC,SAAA,CAAC;IACN;AAEQ,IAAA,kBAAkB,CAAC,SAAuB,EAAE,UAAuB,EAAE,SAAsC,EAAA;AAC/G,QAAA,KAAK,IAAI,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE;AAC3E,YAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC;AACzC,YAAA,MAAM,WAAW,GAAG,aAAa,GAAG,aAAa;AAEjD,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxD,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACxD,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrD,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ;AACtD,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;QAC9D;IACJ;IAEQ,YAAY,CAAC,SAAqB,EAAE,MAAwB,EAAA;AAChE,QAAA,MAAM,WAAW,GAAG,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,MAAM,EAAE;QAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;QAEzD,IAAI,gBAAgB,EAAE;AAClB,YAAA,OAAO,gBAAgB;QAC3B;AAEA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAQ,CAAC,oBAAoB,CAAC;YAChD,MAAM,EAAE,IAAI,CAAC,eAAgB;AAC7B,YAAA,MAAM,EAAE;gBACJ,MAAM,EAAE,IAAI,CAAC,aAAc;AAC3B,gBAAA,UAAU,EAAE,YAAY;AACxB,gBAAA,OAAO,EAAE,CAAC;AACN,wBAAA,WAAW,EAAE,uBAAuB;AACpC,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,cAAc,EAAE,CAAC;AACjB,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,WAAW;6BACtB,CAAC;qBACL,EAAE;AACC,wBAAA,WAAW,EAAE,mBAAmB;AAChC,wBAAA,QAAQ,EAAE,UAAU;AACpB,wBAAA,UAAU,EAAE,CAAC;AACT,gCAAA,cAAc,EAAE,CAAC;AACjB,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,WAAW;6BACtB,EAAE;AACC,gCAAA,cAAc,EAAE,CAAC;AACjB,gCAAA,MAAM,EAAE,CAAC;AACT,gCAAA,MAAM,EAAE,WAAW;6BACtB,EAAE;AACC,gCAAA,cAAc,EAAE,CAAC;AACjB,gCAAA,MAAM,EAAE,EAAE;AACV,gCAAA,MAAM,EAAE,SAAS;6BACpB,EAAE;AACC,gCAAA,cAAc,EAAE,CAAC;AACjB,gCAAA,MAAM,EAAE,EAAE;AACV,gCAAA,MAAM,EAAE,UAAU;6BACrB,CAAC;qBACL,CAAC;AACL,aAAA;AACD,YAAA,QAAQ,EAAE;gBACN,MAAM,EAAE,IAAI,CAAC,aAAc;AAC3B,gBAAA,UAAU,EAAE,cAAc;AAC1B,gBAAA,OAAO,EAAE,CAAC;wBACN,MAAM;AACN,wBAAA,KAAK,EAAE,mBAAmB,CAAC,SAAS,CAAC;wBACrC,SAAS,EAAE,aAAa,CAAC,GAAG;qBAC/B,CAAC;AACL,aAAA;AACD,YAAA,SAAS,EAAE;AACP,gBAAA,QAAQ,EAAE,eAAe;AAC5B,aAAA;AACJ,SAAA,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC;AAE1C,QAAA,OAAO,QAAQ;IACnB;AACH;;;;"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { AbstractWebGpuRenderer } from '@/rendering/webgpu/AbstractWebGpuRenderer';
|
|
2
2
|
import type { DrawableShape } from '@/rendering/primitives/DrawableShape';
|
|
3
|
-
import type {
|
|
3
|
+
import type { WebGpuBackend } from '@/rendering/webgpu/WebGpuBackend';
|
|
4
4
|
export declare class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer<DrawableShape> {
|
|
5
5
|
private readonly _combinedTransform;
|
|
6
6
|
private readonly _drawCalls;
|
|
7
7
|
private _drawCallCount;
|
|
8
8
|
private readonly _pipelines;
|
|
9
|
-
private _renderManager;
|
|
10
9
|
private _device;
|
|
11
10
|
private _shaderModule;
|
|
12
11
|
private _pipelineLayout;
|
|
@@ -23,7 +22,7 @@ export declare class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer<Draw
|
|
|
23
22
|
render(shape: DrawableShape): void;
|
|
24
23
|
flush(): void;
|
|
25
24
|
destroy(): void;
|
|
26
|
-
protected onConnect(
|
|
25
|
+
protected onConnect(backend: WebGpuBackend): void;
|
|
27
26
|
protected onDisconnect(): void;
|
|
28
27
|
private _writeShapeVertices;
|
|
29
28
|
private _ensureVertexCapacity;
|
|
@@ -42,7 +42,6 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
|
|
|
42
42
|
_drawCalls = [];
|
|
43
43
|
_drawCallCount = 0;
|
|
44
44
|
_pipelines = new Map();
|
|
45
|
-
_renderManager = null;
|
|
46
45
|
_device = null;
|
|
47
46
|
_shaderModule = null;
|
|
48
47
|
_pipelineLayout = null;
|
|
@@ -57,8 +56,8 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
|
|
|
57
56
|
_generatedIndexData = new Uint16Array(0);
|
|
58
57
|
_sequentialIndexData = new Uint16Array(0);
|
|
59
58
|
render(shape) {
|
|
60
|
-
const
|
|
61
|
-
if (
|
|
59
|
+
const backend = this._backend;
|
|
60
|
+
if (backend === null) {
|
|
62
61
|
throw new Error('Renderer not connected');
|
|
63
62
|
}
|
|
64
63
|
if (shape.drawMode !== RenderingPrimitives.Points
|
|
@@ -70,7 +69,7 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
|
|
|
70
69
|
&& shape.drawMode !== RenderingPrimitives.TriangleStrip) {
|
|
71
70
|
throw new Error(`WebGPU primitive renderer does not support draw mode "${shape.drawMode}" yet.`);
|
|
72
71
|
}
|
|
73
|
-
|
|
72
|
+
backend.setBlendMode(shape.blendMode);
|
|
74
73
|
if (shape.geometry.vertices.length === 0) {
|
|
75
74
|
return;
|
|
76
75
|
}
|
|
@@ -88,15 +87,15 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
|
|
|
88
87
|
}
|
|
89
88
|
}
|
|
90
89
|
flush() {
|
|
91
|
-
const
|
|
90
|
+
const backend = this._backend;
|
|
92
91
|
const device = this._device;
|
|
93
|
-
if (!
|
|
92
|
+
if (!backend || !device) {
|
|
94
93
|
return;
|
|
95
94
|
}
|
|
96
|
-
if (this._drawCallCount === 0 && !
|
|
95
|
+
if (this._drawCallCount === 0 && !backend.clearRequested) {
|
|
97
96
|
return;
|
|
98
97
|
}
|
|
99
|
-
const scissor =
|
|
98
|
+
const scissor = backend.getScissorRect();
|
|
100
99
|
const maskClipsAll = scissor !== null && (scissor.width <= 0 || scissor.height <= 0);
|
|
101
100
|
// Phase 1: resolve drawcalls and record each one's offsets into the
|
|
102
101
|
// shared packed buffers. Transform gets baked into the vertex data
|
|
@@ -118,7 +117,7 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
|
|
|
118
117
|
topology: resolved.topology,
|
|
119
118
|
usesStripIndex: resolved.usesStripIndex,
|
|
120
119
|
blendMode: drawCall.blendMode,
|
|
121
|
-
format:
|
|
120
|
+
format: backend.renderTargetFormat,
|
|
122
121
|
});
|
|
123
122
|
plan.push({
|
|
124
123
|
pipeline,
|
|
@@ -135,14 +134,14 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
|
|
|
135
134
|
// a single empty pass so createColorAttachment consumes the clear
|
|
136
135
|
// state exactly once.
|
|
137
136
|
if (plan.length === 0) {
|
|
138
|
-
if (
|
|
137
|
+
if (backend.clearRequested) {
|
|
139
138
|
const encoder = device.createCommandEncoder();
|
|
140
139
|
const pass = encoder.beginRenderPass({
|
|
141
|
-
colorAttachments: [
|
|
140
|
+
colorAttachments: [backend.createColorAttachment()],
|
|
142
141
|
});
|
|
143
|
-
|
|
142
|
+
backend.stats.renderPasses++;
|
|
144
143
|
pass.end();
|
|
145
|
-
|
|
144
|
+
backend.submit(encoder.finish());
|
|
146
145
|
}
|
|
147
146
|
this._drawCallCount = 0;
|
|
148
147
|
return;
|
|
@@ -168,7 +167,7 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
|
|
|
168
167
|
}
|
|
169
168
|
const drawCall = this._drawCalls[i];
|
|
170
169
|
const shape = drawCall.shape;
|
|
171
|
-
this._writeShapeVertices(
|
|
170
|
+
this._writeShapeVertices(backend, shape, vOffset);
|
|
172
171
|
if (resolved.indices !== null && resolved.indexCount > 0) {
|
|
173
172
|
this._packedIndexData.set(resolved.indices.subarray(0, resolved.indexCount), iOffset);
|
|
174
173
|
iOffset += resolved.indexCount;
|
|
@@ -186,9 +185,9 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
|
|
|
186
185
|
// baked into the vertex data.
|
|
187
186
|
const encoder = device.createCommandEncoder();
|
|
188
187
|
const pass = encoder.beginRenderPass({
|
|
189
|
-
colorAttachments: [
|
|
188
|
+
colorAttachments: [backend.createColorAttachment()],
|
|
190
189
|
});
|
|
191
|
-
|
|
190
|
+
backend.stats.renderPasses++;
|
|
192
191
|
if (scissor !== null) {
|
|
193
192
|
pass.setScissorRect(scissor.x, scissor.y, scissor.width, scissor.height);
|
|
194
193
|
}
|
|
@@ -202,20 +201,20 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
|
|
|
202
201
|
else {
|
|
203
202
|
pass.draw(planned.vertexCount);
|
|
204
203
|
}
|
|
205
|
-
|
|
206
|
-
|
|
204
|
+
backend.stats.batches++;
|
|
205
|
+
backend.stats.drawCalls++;
|
|
207
206
|
}
|
|
208
207
|
pass.end();
|
|
209
|
-
|
|
208
|
+
backend.submit(encoder.finish());
|
|
210
209
|
this._drawCallCount = 0;
|
|
211
210
|
}
|
|
212
211
|
destroy() {
|
|
213
212
|
this.disconnect();
|
|
214
213
|
this._combinedTransform.destroy();
|
|
215
214
|
}
|
|
216
|
-
onConnect(
|
|
217
|
-
this.
|
|
218
|
-
this._device = this.
|
|
215
|
+
onConnect(backend) {
|
|
216
|
+
this._backend = backend;
|
|
217
|
+
this._device = this._backend.device;
|
|
219
218
|
this._shaderModule = this._device.createShaderModule({ code: primitiveShaderSource });
|
|
220
219
|
// Transform is applied per-vertex on the CPU, so no uniform binding
|
|
221
220
|
// is needed — the shader outputs input.position directly.
|
|
@@ -230,10 +229,10 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
|
|
|
230
229
|
this._pipelineLayout = null;
|
|
231
230
|
this._shaderModule = null;
|
|
232
231
|
this._device = null;
|
|
233
|
-
this.
|
|
232
|
+
this._backend = null;
|
|
234
233
|
this._drawCallCount = 0;
|
|
235
234
|
}
|
|
236
|
-
_writeShapeVertices(
|
|
235
|
+
_writeShapeVertices(backend, shape, vertexStart) {
|
|
237
236
|
// Matrix.combine is `other * this` (see Matrix.rotate and
|
|
238
237
|
// SceneNode.getGlobalTransform, both of which chain via
|
|
239
238
|
// local.combine(parent.global) to yield parent.global * local).
|
|
@@ -243,7 +242,7 @@ class WebGpuPrimitiveRenderer extends AbstractWebGpuRenderer {
|
|
|
243
242
|
// _combinedTransform = view * global.
|
|
244
243
|
const matrix = this._combinedTransform
|
|
245
244
|
.copy(shape.getGlobalTransform())
|
|
246
|
-
.combine(
|
|
245
|
+
.combine(backend.view.getTransform());
|
|
247
246
|
// Match the original uniform-based WGSL layout exactly.
|
|
248
247
|
//
|
|
249
248
|
// The shader packs the Matrix's 9 fields into a 4x4 mat (column-major
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGpuPrimitiveRenderer.js","sources":["../../../../../src/rendering/webgpu/WebGpuPrimitiveRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebGpuPrimitiveRenderer.js","sources":["../../../../../src/rendering/webgpu/WebGpuPrimitiveRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|