@flighthq/scene2d-wgpu 0.3.0-next.906.07cea63 → 0.3.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/contract.d.ts +8 -6
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +8 -6
- package/dist/contract.js.map +1 -1
- package/dist/enableWgpuColorAdjustmentGuards.js +2 -2
- package/dist/enableWgpuColorAdjustmentGuards.js.map +1 -1
- package/dist/enableWgpuStrokePathTessellation.d.ts +3 -0
- package/dist/enableWgpuStrokePathTessellation.d.ts.map +1 -0
- package/dist/enableWgpuStrokePathTessellation.js +8 -0
- package/dist/enableWgpuStrokePathTessellation.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/wgpuBitmapText.d.ts.map +1 -1
- package/dist/wgpuBitmapText.js +20 -16
- package/dist/wgpuBitmapText.js.map +1 -1
- package/dist/wgpuCache.d.ts.map +1 -1
- package/dist/wgpuCache.js +19 -16
- package/dist/wgpuCache.js.map +1 -1
- package/dist/wgpuClipContours.js +3 -3
- package/dist/wgpuClipContours.js.map +1 -1
- package/dist/wgpuClipRectangle.js +3 -3
- package/dist/wgpuClipRectangle.js.map +1 -1
- package/dist/wgpuColorAdjustmentMaterialFeature.d.ts.map +1 -1
- package/dist/wgpuColorAdjustmentMaterialFeature.js +156 -67
- package/dist/wgpuColorAdjustmentMaterialFeature.js.map +1 -1
- package/dist/wgpuMeshShapeRenderer.d.ts +4 -0
- package/dist/wgpuMeshShapeRenderer.d.ts.map +1 -0
- package/dist/wgpuMeshShapeRenderer.js +92 -0
- package/dist/wgpuMeshShapeRenderer.js.map +1 -0
- package/dist/wgpuNode2D.js +2 -2
- package/dist/wgpuNode2D.js.map +1 -1
- package/dist/wgpuParticleEmitter2D.d.ts.map +1 -1
- package/dist/wgpuParticleEmitter2D.js +26 -10
- package/dist/wgpuParticleEmitter2D.js.map +1 -1
- package/dist/wgpuQuadBatch.d.ts +1 -1
- package/dist/wgpuQuadBatch.d.ts.map +1 -1
- package/dist/wgpuQuadBatch.js +18 -13
- package/dist/wgpuQuadBatch.js.map +1 -1
- package/dist/wgpuQuadBatchWriter.d.ts +12 -0
- package/dist/wgpuQuadBatchWriter.d.ts.map +1 -0
- package/dist/{wgpuSpriteBatch.js → wgpuQuadBatchWriter.js} +97 -72
- package/dist/wgpuQuadBatchWriter.js.map +1 -0
- package/dist/wgpuRasterShapeRenderer.d.ts +4 -0
- package/dist/wgpuRasterShapeRenderer.d.ts.map +1 -0
- package/dist/wgpuRasterShapeRenderer.js +110 -0
- package/dist/wgpuRasterShapeRenderer.js.map +1 -0
- package/dist/wgpuRichText.d.ts.map +1 -1
- package/dist/wgpuRichText.js +7 -4
- package/dist/wgpuRichText.js.map +1 -1
- package/dist/wgpuScale9Shape.d.ts +1 -3
- package/dist/wgpuScale9Shape.d.ts.map +1 -1
- package/dist/wgpuScale9Shape.js +36 -33
- package/dist/wgpuScale9Shape.js.map +1 -1
- package/dist/wgpuShape.d.ts +2 -1
- package/dist/wgpuShape.d.ts.map +1 -1
- package/dist/wgpuShape.js +19 -153
- package/dist/wgpuShape.js.map +1 -1
- package/dist/wgpuShapeData.d.ts +6 -0
- package/dist/wgpuShapeData.d.ts.map +1 -0
- package/dist/wgpuShapeData.js +81 -0
- package/dist/wgpuShapeData.js.map +1 -0
- package/dist/wgpuShapeMesh.d.ts +2 -1
- package/dist/wgpuShapeMesh.d.ts.map +1 -1
- package/dist/wgpuShapeMesh.js +74 -62
- package/dist/wgpuShapeMesh.js.map +1 -1
- package/dist/wgpuShapeRasterizer.d.ts +4 -0
- package/dist/wgpuShapeRasterizer.d.ts.map +1 -0
- package/dist/wgpuShapeRasterizer.js +11 -0
- package/dist/wgpuShapeRasterizer.js.map +1 -0
- package/dist/wgpuSprite.d.ts +3 -2
- package/dist/wgpuSprite.d.ts.map +1 -1
- package/dist/wgpuSprite.js +67 -25
- package/dist/wgpuSprite.js.map +1 -1
- package/dist/wgpuStandardMaterial.d.ts +1 -1
- package/dist/wgpuStandardMaterial.js +3 -3
- package/dist/wgpuStandardMaterial.js.map +1 -1
- package/dist/wgpuTextLabel.d.ts.map +1 -1
- package/dist/wgpuTextLabel.js +15 -12
- package/dist/wgpuTextLabel.js.map +1 -1
- package/dist/wgpuTilemap.d.ts.map +1 -1
- package/dist/wgpuTilemap.js +19 -18
- package/dist/wgpuTilemap.js.map +1 -1
- package/package.json +22 -18
- package/src/enableWgpuColorAdjustmentGuards.test.ts +4 -4
- package/src/enableWgpuStrokePathTessellation.test.ts +23 -0
- package/src/wgpuBitmapText.test.ts +2 -2
- package/src/wgpuCache.test.ts +14 -11
- package/src/wgpuColorAdjustmentMaterialFeature.test.ts +52 -46
- package/src/wgpuMeshShapeRenderer.test.ts +167 -0
- package/src/wgpuParticleEmitter2D.test.ts +16 -7
- package/src/wgpuQuadBatch.test.ts +3 -3
- package/src/{wgpuSpriteBatch.test.ts → wgpuQuadBatchWriter.test.ts} +79 -70
- package/src/wgpuRasterShapeRenderer.test.ts +156 -0
- package/src/wgpuScale9Shape.test.ts +0 -13
- package/src/wgpuShape.test.ts +169 -15
- package/src/wgpuShapeData.test.ts +97 -0
- package/src/wgpuShapeMesh.test.ts +170 -15
- package/src/wgpuShapeRasterizer.test.ts +36 -0
- package/src/wgpuSprite.test.ts +45 -10
- package/src/wgpuStandardMaterial.test.ts +3 -3
- package/src/wgpuTextLabel.test.ts +7 -7
- package/src/wgpuTilemap.test.ts +4 -4
- package/src/wgpuVelocity.test.ts +3 -3
- package/dist/wgpuBitmap.d.ts +0 -4
- package/dist/wgpuBitmap.d.ts.map +0 -1
- package/dist/wgpuBitmap.js +0 -84
- package/dist/wgpuBitmap.js.map +0 -1
- package/dist/wgpuRenderTargetNode2D.d.ts +0 -11
- package/dist/wgpuRenderTargetNode2D.d.ts.map +0 -1
- package/dist/wgpuRenderTargetNode2D.js +0 -100
- package/dist/wgpuRenderTargetNode2D.js.map +0 -1
- package/dist/wgpuSpriteBatch.d.ts +0 -12
- package/dist/wgpuSpriteBatch.d.ts.map +0 -1
- package/dist/wgpuSpriteBatch.js.map +0 -1
- package/dist/wgpuSpriteRenderer.d.ts +0 -3
- package/dist/wgpuSpriteRenderer.d.ts.map +0 -1
- package/dist/wgpuSpriteRenderer.js +0 -55
- package/dist/wgpuSpriteRenderer.js.map +0 -1
- package/dist/wgpuVideo.d.ts +0 -6
- package/dist/wgpuVideo.d.ts.map +0 -1
- package/dist/wgpuVideo.js +0 -63
- package/dist/wgpuVideo.js.map +0 -1
- package/src/wgpuBitmap.test.ts +0 -40
- package/src/wgpuRenderTargetNode2D.test.ts +0 -267
- package/src/wgpuSpriteRenderer.test.ts +0 -63
- package/src/wgpuVideo.test.ts +0 -59
package/dist/wgpuNode2D.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
2
2
|
import { getRenderProxy2D, isRenderProxyVisible, noopRendererData } from '@flighthq/render/contract';
|
|
3
3
|
import { getNode2DRuntime } from '@flighthq/scene2d/contract';
|
|
4
|
-
import {
|
|
4
|
+
import { flushWgpuQuadBatchWriter } from './wgpuQuadBatchWriter';
|
|
5
5
|
export function drawWgpuScene2D(_state, _renderProxy) {
|
|
6
6
|
// Plain display objects have no visual geometry of their own.
|
|
7
7
|
}
|
|
@@ -31,7 +31,7 @@ export function renderWgpuScene2D(state, source) {
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
|
|
34
|
+
flushWgpuQuadBatchWriter(state);
|
|
35
35
|
clipHooks?.finalize(state);
|
|
36
36
|
}
|
|
37
37
|
export const defaultWgpuScene2DRenderer = {
|
package/dist/wgpuNode2D.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuNode2D.js","sourceRoot":"","sources":["../src/wgpuNode2D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wgpuNode2D.js","sourceRoot":"","sources":["../src/wgpuNode2D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,UAAU,eAAe,CAAC,MAAuB,EAAE,YAA2B;IAClF,8DAA8D;AAChE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAsB,EAAE,MAAc;IACtE,MAAM,SAAS,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,sBAAsB,CAAC;IAE/C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IAEtB,OAAO,WAAW,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,SAAS,CAAC,EAAE,WAAW,CAAW,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,SAAS;QAE/B,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QAEjC,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEzC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAAE,SAAS;QAE1C,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAE1C,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;YACpD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC9C,SAAS,CAAC,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAW,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAChC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAoB;IACzD,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,eAAe;CACxB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuParticleEmitter2D.d.ts","sourceRoot":"","sources":["../src/wgpuParticleEmitter2D.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAqB,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAsLlH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"wgpuParticleEmitter2D.d.ts","sourceRoot":"","sources":["../src/wgpuParticleEmitter2D.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAqB,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAsLlH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAwJlG;AAED,eAAO,MAAM,oCAAoC,EAAE,cAMlD,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
1
|
+
import { getWgpuRenderStateRuntime, getWgpuSampler, resolveWgpuTexture } from '@flighthq/render-wgpu/contract';
|
|
2
|
+
import { SCENE2D_WORKING_COLOR_SPACE } from '@flighthq/render/contract';
|
|
4
3
|
import { noopRendererData } from '@flighthq/render/contract';
|
|
5
|
-
import {
|
|
4
|
+
import { getTextureHeight, getTextureWidth, hasTextureSource } from '@flighthq/texture/contract';
|
|
5
|
+
import { flushWgpuQuadBatchWriter } from './wgpuQuadBatchWriter';
|
|
6
6
|
// Per-instance layout in the instance buffer (14 floats = 56 bytes):
|
|
7
7
|
// 0: px, 1: py, 2: cosScale, 3: sinScale
|
|
8
8
|
// 4: r, 5: g, 6: b, 7: alpha
|
|
@@ -167,17 +167,33 @@ export function drawWgpuParticleEmitter2D(state, renderProxy) {
|
|
|
167
167
|
return;
|
|
168
168
|
const source = renderProxy.source;
|
|
169
169
|
const { atlas, alphas, colors, ids, particleCount, transforms } = source.data;
|
|
170
|
-
if (atlas === null || atlas.
|
|
170
|
+
if (atlas === null || atlas.texture === null || !hasTextureSource(atlas.texture) || particleCount === 0)
|
|
171
171
|
return;
|
|
172
172
|
const resources = ensureParticleResources(state);
|
|
173
173
|
ensureParticleInstanceBuffer(state, particleCount);
|
|
174
174
|
state.applyBlendMode?.(state, renderProxy.blendMode);
|
|
175
|
-
const textureEntry =
|
|
175
|
+
const textureEntry = resolveWgpuTexture(state, atlas.texture, true, SCENE2D_WORKING_COLOR_SPACE);
|
|
176
|
+
if (textureEntry === null)
|
|
177
|
+
return;
|
|
178
|
+
const textureBindGroup = state.device.createBindGroup({
|
|
179
|
+
layout: runtime.textureBindGroupLayout,
|
|
180
|
+
entries: [
|
|
181
|
+
{ binding: 0, resource: textureEntry.view },
|
|
182
|
+
{
|
|
183
|
+
binding: 1,
|
|
184
|
+
resource: getWgpuSampler(state, atlas.texture.sampler.minFilter.startsWith('nearest') ? 'nearest' : 'linear', atlas.texture.sampler.magFilter.startsWith('nearest') ? 'nearest' : 'linear', atlas.texture.sampler.wrapU, atlas.texture.sampler.wrapV, atlas.texture.sampler.mipmaps && atlas.texture.sampler.minFilter.includes('mipmap')
|
|
185
|
+
? atlas.texture.sampler.minFilter.endsWith('nearest')
|
|
186
|
+
? 'nearest'
|
|
187
|
+
: 'linear'
|
|
188
|
+
: undefined, atlas.texture.sampler.anisotropy),
|
|
189
|
+
},
|
|
190
|
+
],
|
|
191
|
+
});
|
|
176
192
|
const regions = atlas.regions;
|
|
177
193
|
const numRegions = regions.length;
|
|
178
194
|
const nodeAlpha = renderProxy.alpha;
|
|
179
|
-
const iw = 1 / (atlas.
|
|
180
|
-
const ih = 1 / (atlas.
|
|
195
|
+
const iw = 1 / Math.max(1, getTextureWidth(atlas.texture));
|
|
196
|
+
const ih = 1 / Math.max(1, getTextureHeight(atlas.texture));
|
|
181
197
|
const instanceData = runtime.particleInstanceData;
|
|
182
198
|
let drawCount = 0;
|
|
183
199
|
let base = 0;
|
|
@@ -279,14 +295,14 @@ export function drawWgpuParticleEmitter2D(state, renderProxy) {
|
|
|
279
295
|
const pass = runtime.renderPass;
|
|
280
296
|
pass.setPipeline(getParticlePipeline(state, resources));
|
|
281
297
|
pass.setBindGroup(0, runtime.uniformBindGroup, [uniformOffset]);
|
|
282
|
-
pass.setBindGroup(1,
|
|
298
|
+
pass.setBindGroup(1, textureBindGroup);
|
|
283
299
|
pass.setBindGroup(2, instanceBindGroup);
|
|
284
300
|
pass.draw(6, drawCount, 0, 0);
|
|
285
301
|
}
|
|
286
302
|
export const defaultWgpuParticleEmitter2DRenderer = {
|
|
287
303
|
createData: noopRendererData,
|
|
288
304
|
submit(state, node) {
|
|
289
|
-
|
|
305
|
+
flushWgpuQuadBatchWriter(state);
|
|
290
306
|
drawWgpuParticleEmitter2D(state, node);
|
|
291
307
|
},
|
|
292
308
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuParticleEmitter2D.js","sourceRoot":"","sources":["../src/wgpuParticleEmitter2D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,qEAAqE;AACrE,2CAA2C;AAC3C,+BAA+B;AAC/B,iCAAiC;AACjC,0BAA0B;AAC1B,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,eAAe,GAAG,eAAe,GAAG,CAAC,CAAC;AAE5C,yCAAyC;AACzC,MAAM,mBAAmB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiEtC,CAAC;AAWF,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAoC,CAAC;AAE3E,SAAS,uBAAuB,CAAC,KAAsB;IACrD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAE5C,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACzB,MAAM,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC;IAEnE,MAAM,uBAAuB,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAC3D,OAAO,EAAE;YACP;gBACE,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,cAAc,CAAC,MAAM;gBACjC,MAAM,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;aACtC;SACF;KACF,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,CAAC,oBAAoB,CAAC;QACjD,gBAAgB,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,EAAE,uBAAuB,CAAC;KAC5F,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,CAAC,kBAAkB,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAExE,MAAM,SAAS,GAA0B;QACvC,SAAS,EAAE,IAAI,GAAG,EAAE;QACpB,cAAc;QACd,MAAM;QACN,uBAAuB;KACxB,CAAC;IACF,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,0GAA0G;AAC1G,SAAS,mBAAmB,CAAC,KAAsB,EAAE,SAAgC;IACnF,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC,kBAAkB,IAAI,KAAK,CAAC,MAAM,CAAC;IACnF,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAE5C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC;QACjD,MAAM,EAAE,SAAS,CAAC,cAAc;QAChC,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;QAC3D,QAAQ,EAAE;YACR,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE;gBACP;oBACE,MAAM;oBACN,KAAK,EAAE;wBACL,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE,KAAK,EAAE;wBAC/E,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE,KAAK,EAAE;qBAChF;iBACF;aACF;SACF;QACD,YAAY,EAAE;YACZ,MAAM,EAAE,sBAAsB;YAC9B,iBAAiB,EAAE,KAAK;YACxB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;YACxF,WAAW,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;YACvF,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;SACvB;QACD,SAAS,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE;KACzC,CAAC,CAAC;IAEH,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAsB,EAAE,KAAa;IACzE,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,KAAK,GAAG,eAAe,CAAC;IACvC,IAAI,OAAO,CAAC,wBAAwB,IAAI,MAAM,IAAI,OAAO,CAAC,sBAAsB,KAAK,IAAI;QAAE,OAAO;IAElG,kGAAkG;IAClG,8EAA8E;IAC9E,IAAI,OAAO,CAAC,sBAAsB,KAAK,IAAI,EAAE,CAAC;QAC5C,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,wBAAwB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClF,OAAO,CAAC,sBAAsB,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;QACzD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC;QAC5C,KAAK,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,QAAQ;KACxD,CAAC,CAAC;IACH,OAAO,CAAC,wBAAwB,GAAG,WAAW,CAAC;IAC/C,OAAO,CAAC,oBAAoB,GAAG,IAAI,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAsB,EAAE,WAA0B;IAC1F,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO;IAExC,MAAM,MAAM,GAAG,WAAW,CAAC,MAA2B,CAAC;IACvD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IAC9E,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC;QAAE,OAAO;IAElH,MAAM,SAAS,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACjD,4BAA4B,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAEnD,KAAK,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,4BAA4B,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAEnF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,OAAO,CAAC,oBAAqB,CAAC;IAEnD,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU;YAAE,SAAS;QACzC,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;YAAE,SAAS;QAEtD,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAExC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3D,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5B,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5B,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QAC9B,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QAC9B,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,MAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,MAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,MAAO,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/C,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QACvC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QACvC,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACzD,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAC1D,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACvC,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACxC,IAAI,IAAI,eAAe,CAAC;QACxB,SAAS,EAAE,CAAC;IACd,CAAC;IAED,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO;IAE5B,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAEzB,uBAAuB;IACvB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,sBAAuB,EAAE,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,GAAG,eAAe,CAAC,CAAC;IAElH,6FAA6F;IAC7F,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC5C,MAAM,SAAS,GAAG,aAAa,IAAI,CAAC,CAAC;IACrC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,IAAI,KAAK,CAAC,MAAM,CAAC;IAC9D,MAAM,CAAC,GAAG,WAAW,CAAC,WAAW,CAAC;IAElC,IAAI,GAAW,EAAE,GAAW,CAAC;IAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3B,+EAA+E;QAC/E,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;QACzB,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC1B,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACrB,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnB,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnB,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnB,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACtB,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnB,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpB,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnB,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;QACzB,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC1B,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAC3B,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAC5B,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnB,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAC3B,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAC5B,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnB,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;QAChC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;QACjC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5C,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5C,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5C,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/B,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5C,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5C,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5C,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/B,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5C,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5C,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7C,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAChC,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,yCAAyC;IAC1E,cAAc,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IACnC,cAAc,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;QAAE,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7D,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAE/C,uCAAuC;IACvC,MAAM,iBAAiB,GAAG,MAAM,CAAC,eAAe,CAAC;QAC/C,MAAM,EAAE,SAAS,CAAC,uBAAuB;QACzC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,sBAAuB,EAAE,EAAE,CAAC;KACjF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,OAAO,CAAC,UAAW,CAAC;IACjC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,MAAM,oCAAoC,GAAmB;IAClE,UAAU,EAAE,gBAAgB;IAC5B,MAAM,CAAC,KAAsB,EAAE,IAAmB;QAChD,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC5B,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"wgpuParticleEmitter2D.js","sourceRoot":"","sources":["../src/wgpuParticleEmitter2D.ts"],"names":[],"mappings":"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"}
|
package/dist/wgpuQuadBatch.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SpriteRenderer } from '@flighthq/types/contract';
|
|
2
|
-
import { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline } from './
|
|
2
|
+
import { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline } from './wgpuQuadBatchWriter';
|
|
3
3
|
export { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline };
|
|
4
4
|
export declare const defaultWgpuQuadBatchRenderer: SpriteRenderer;
|
|
5
5
|
//# sourceMappingURL=wgpuQuadBatch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuQuadBatch.d.ts","sourceRoot":"","sources":["../src/wgpuQuadBatch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuQuadBatch.d.ts","sourceRoot":"","sources":["../src/wgpuQuadBatch.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAIV,cAAc,EAGf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EAKzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,4BAA4B,EAAE,wBAAwB,EAAE,CAAC;AAyGlE,eAAO,MAAM,4BAA4B,EAAE,cAI1C,CAAC"}
|
package/dist/wgpuQuadBatch.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { resolveWgpuMaterialRenderer } from '@flighthq/render-wgpu/contract';
|
|
1
|
+
import { resolveWgpuMaterialRenderer, resolveWgpuTexture } from '@flighthq/render-wgpu/contract';
|
|
3
2
|
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
3
|
+
import { SCENE2D_WORKING_COLOR_SPACE } from '@flighthq/render/contract';
|
|
4
4
|
import { noopRendererData } from '@flighthq/render/contract';
|
|
5
|
+
import { getTextureHeight, getTextureWidth, hasTextureSource } from '@flighthq/texture/contract';
|
|
5
6
|
import { BatchFormat } from '@flighthq/types/contract';
|
|
6
|
-
import { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline,
|
|
7
|
+
import { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline, packWgpuQuadBatchMaterialInstance, prepareWgpuQuadBatchWrite, recordWgpuQuadBatchColorScaleBias, QUAD_BATCH_INSTANCE_FLOATS, } from './wgpuQuadBatchWriter';
|
|
7
8
|
export { ensureWgpuQuadBatchResources, getWgpuQuadBatchPipeline };
|
|
8
9
|
// Each quad writes the 13 base instance floats; any material packs its own per-instance data into the
|
|
9
10
|
// parallel material buffer.
|
|
10
|
-
const INSTANCE_STRIDE_FLOATS =
|
|
11
|
+
const INSTANCE_STRIDE_FLOATS = QUAD_BATCH_INSTANCE_FLOATS;
|
|
11
12
|
function submitWgpuQuadBatch(state, quadBatch) {
|
|
12
13
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
13
14
|
if (runtime.renderPass === null)
|
|
@@ -15,24 +16,28 @@ function submitWgpuQuadBatch(state, quadBatch) {
|
|
|
15
16
|
const source = quadBatch.source;
|
|
16
17
|
const data = source.data;
|
|
17
18
|
const { atlas, instanceCount, ids, transforms } = data;
|
|
18
|
-
if (atlas === null || atlas.
|
|
19
|
+
if (atlas === null || atlas.texture === null || !hasTextureSource(atlas.texture) || instanceCount === 0)
|
|
19
20
|
return;
|
|
20
21
|
const material = quadBatch.material;
|
|
21
22
|
const materialRenderer = resolveWgpuMaterialRenderer(state, material);
|
|
22
23
|
if (materialRenderer === null)
|
|
23
24
|
return;
|
|
25
|
+
const texture = atlas.texture;
|
|
26
|
+
const textureEntry = resolveWgpuTexture(state, texture, true, SCENE2D_WORKING_COLOR_SPACE);
|
|
27
|
+
if (textureEntry === null)
|
|
28
|
+
return;
|
|
24
29
|
const nodeMaterialData = quadBatch.materialData;
|
|
25
30
|
// Per-quad color adjustments, overriding the node-level tint for the quads that carry one.
|
|
26
31
|
const perQuadColorScaleBias = data.materialData;
|
|
27
32
|
const nodeColorScaleBias = quadBatch.colorScaleBias;
|
|
28
33
|
const nodeColorMatrix = quadBatch.colorMatrix;
|
|
29
|
-
const startCount = runtime.
|
|
30
|
-
const base =
|
|
34
|
+
const startCount = runtime.quadBatchWriterCount;
|
|
35
|
+
const base = prepareWgpuQuadBatchWrite(state, textureEntry, texture.sampler, quadBatch.blendMode, material, materialRenderer, instanceCount);
|
|
31
36
|
const regions = atlas.regions;
|
|
32
37
|
const numRegions = regions.length;
|
|
33
|
-
const iw = 1 / (
|
|
34
|
-
const ih = 1 / (
|
|
35
|
-
const instanceData = runtime.
|
|
38
|
+
const iw = 1 / Math.max(1, getTextureWidth(texture));
|
|
39
|
+
const ih = 1 / Math.max(1, getTextureHeight(texture));
|
|
40
|
+
const instanceData = runtime.quadBatchWriterInstanceData;
|
|
36
41
|
const isVector2 = data.transformType === 'vector2';
|
|
37
42
|
const pt = quadBatch.transform2D;
|
|
38
43
|
const pa = pt.a, pb = pt.b, pc = pt.c, pd = pt.d, ptx = pt.tx, pty = pt.ty;
|
|
@@ -74,16 +79,16 @@ function submitWgpuQuadBatch(state, quadBatch) {
|
|
|
74
79
|
instanceData[writeBase + 10] = (region.x + region.width) * iw;
|
|
75
80
|
instanceData[writeBase + 11] = (region.y + region.height) * ih;
|
|
76
81
|
instanceData[writeBase + 12] = alpha;
|
|
77
|
-
|
|
82
|
+
packWgpuQuadBatchMaterialInstance(state, nodeMaterialData, startCount + drawCount);
|
|
78
83
|
// Per-quad tint overrides the node-level tint (null → the node's, itself possibly null → untinted).
|
|
79
84
|
const colorScaleBias = perQuadColorScaleBias?.[i] ??
|
|
80
85
|
nodeColorMatrix ??
|
|
81
86
|
nodeColorScaleBias;
|
|
82
|
-
|
|
87
|
+
recordWgpuQuadBatchColorScaleBias(state, colorScaleBias, startCount + drawCount);
|
|
83
88
|
writeBase += INSTANCE_STRIDE_FLOATS;
|
|
84
89
|
drawCount++;
|
|
85
90
|
}
|
|
86
|
-
runtime.
|
|
91
|
+
runtime.quadBatchWriterCount += drawCount;
|
|
87
92
|
}
|
|
88
93
|
export const defaultWgpuQuadBatchRenderer = {
|
|
89
94
|
format: BatchFormat.Quad,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuQuadBatch.js","sourceRoot":"","sources":["../src/wgpuQuadBatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wgpuQuadBatch.js","sourceRoot":"","sources":["../src/wgpuQuadBatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ColorScaleBias, TintMaterialData, Material, MaterialData, SamplerLike, WgpuMaterialRenderer, WgpuQuadBatchResources, WgpuRenderState, WgpuTextureEntry } from '@flighthq/types/contract';
|
|
2
|
+
import type { BlendMode } from '@flighthq/types/contract';
|
|
3
|
+
export declare const QUAD_BATCH_INSTANCE_FLOATS = 13;
|
|
4
|
+
export declare function ensureWgpuQuadBatchResources(state: WgpuRenderState): WgpuQuadBatchResources;
|
|
5
|
+
export declare function flushWgpuQuadBatchWriter(state: WgpuRenderState): void;
|
|
6
|
+
export declare function getWgpuQuadBatchPipeline(state: WgpuRenderState, resources: WgpuQuadBatchResources, module: GPUShaderModule, hasMaterialData: boolean, blendMode: BlendMode | null): GPURenderPipeline;
|
|
7
|
+
export declare function getWgpuQuadBatchPreludeWGSL(): string;
|
|
8
|
+
export declare function packWgpuQuadBatchMaterialInstance(state: WgpuRenderState, materialData: MaterialData | null, instanceIndex: number): void;
|
|
9
|
+
export declare function prepareWgpuQuadBatchWrite(state: WgpuRenderState, texture: Readonly<WgpuTextureEntry>, sampler: Readonly<SamplerLike> | null, blendMode: BlendMode | null, material: Material | null, materialRenderer: WgpuMaterialRenderer, maxInstances: number, smoothing?: boolean | null): number;
|
|
10
|
+
export declare function recordWgpuQuadBatchColorScaleBias(state: WgpuRenderState, colorScaleBias: ColorScaleBias | TintMaterialData | readonly number[] | null | undefined, instanceIndex: number): void;
|
|
11
|
+
export declare function resetWgpuQuadBatchWriterBufferPool(state: WgpuRenderState): void;
|
|
12
|
+
//# sourceMappingURL=wgpuQuadBatchWriter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuQuadBatchWriter.d.ts","sourceRoot":"","sources":["../src/wgpuQuadBatchWriter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAU1D,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAmD7C,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,eAAe,GAAG,sBAAsB,CAwC3F;AAID,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CA+ErE;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,sBAAsB,EACjC,MAAM,EAAE,eAAe,EACvB,eAAe,EAAE,OAAO,EACxB,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B,iBAAiB,CAkDnB;AAKD,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAKD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,aAAa,EAAE,MAAM,GACpB,IAAI,CAaN;AAOD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,EACrC,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,gBAAgB,EAAE,oBAAoB,EACtC,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,OAAO,GAAG,IAAW,GAC/B,MAAM,CAmCR;AAOD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,eAAe,EACtB,cAAc,EAAE,cAAc,GAAG,gBAAgB,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EACxF,aAAa,EAAE,MAAM,GACpB,IAAI,CAQN;AAKD,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAE/E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getWgpuBlendState, getWgpuSampler, resolveWgpuSmoothingBindGroup } from '@flighthq/render-wgpu/contract';
|
|
2
2
|
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
3
3
|
// Base per-instance layout (13 floats = 52 bytes). This is a fixed contract material shaders read
|
|
4
4
|
// from the instance storage buffer; it carries no material concern (no color adjustment). A material
|
|
@@ -8,9 +8,9 @@ import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
|
8
8
|
// [6-7] width, height — region size in pixels
|
|
9
9
|
// [8-11] u0,v0,u1,v1 — atlas UV rect
|
|
10
10
|
// [12] alpha — per-instance alpha
|
|
11
|
-
export const
|
|
12
|
-
const
|
|
13
|
-
// Shared WGSL prelude for
|
|
11
|
+
export const QUAD_BATCH_INSTANCE_FLOATS = 13;
|
|
12
|
+
const QUAD_BATCH_INSTANCE_STRIDE = QUAD_BATCH_INSTANCE_FLOATS * 4;
|
|
13
|
+
// Shared WGSL prelude for quad-batch writer material shaders: the base Uniforms and InstanceData structs,
|
|
14
14
|
// the standard bind-group bindings (@group(0) uniform, @group(1) texture/sampler, @group(2)
|
|
15
15
|
// instances), and a quadBaseVertex helper that expands one instance corner into clip-space position,
|
|
16
16
|
// UV, and alpha. A material module appends its own @group(3) material buffer (when it uses one), a
|
|
@@ -94,50 +94,53 @@ export function ensureWgpuQuadBatchResources(state) {
|
|
|
94
94
|
return resources;
|
|
95
95
|
}
|
|
96
96
|
const _quadBatchResources = new WeakMap();
|
|
97
|
-
export function
|
|
97
|
+
export function flushWgpuQuadBatchWriter(state) {
|
|
98
98
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
99
|
-
const count = runtime.
|
|
99
|
+
const count = runtime.quadBatchWriterCount;
|
|
100
100
|
if (count === 0 || runtime.renderPass === null) {
|
|
101
|
-
|
|
101
|
+
resetWgpuQuadBatchWriter(state);
|
|
102
102
|
return;
|
|
103
103
|
}
|
|
104
|
-
const texture = runtime.
|
|
105
|
-
const
|
|
106
|
-
const
|
|
107
|
-
const
|
|
104
|
+
const texture = runtime.quadBatchWriterTexture;
|
|
105
|
+
const sampler = runtime.quadBatchWriterSampler;
|
|
106
|
+
const blendMode = runtime.quadBatchWriterBlendMode;
|
|
107
|
+
const smoothing = runtime.quadBatchWriterSmoothing;
|
|
108
|
+
const renderer = runtime.quadBatchWriterMaterialRenderer;
|
|
108
109
|
// The color-adjustment fold is opt-in (registerWgpuColorAdjustmentMaterialFeature): when installed it resolves a
|
|
109
110
|
// tinted batch to its per-instance @group(3) storage data + folded module; an untinted batch (or an
|
|
110
111
|
// un-enabled state) falls back to the resolved material's own per-instance data, and no fold WGSL is
|
|
111
112
|
// linked into this module. CT and material per-instance data never mix in a built-in batch (built-in
|
|
112
113
|
// materials have no per-instance floats).
|
|
113
114
|
const ctFlush = runtime.wgpuColorAdjustmentMaterialFeature?.resolveFlush(state, count) ?? null;
|
|
114
|
-
const group3Floats = ctFlush !== null ? ctFlush.floats : runtime.
|
|
115
|
-
const group3Data = ctFlush !== null ? ctFlush.data : runtime.
|
|
116
|
-
|
|
115
|
+
const group3Floats = ctFlush !== null ? ctFlush.floats : runtime.quadBatchWriterMaterialFloats;
|
|
116
|
+
const group3Data = ctFlush !== null ? ctFlush.data : runtime.quadBatchWriterMaterialData;
|
|
117
|
+
resetWgpuQuadBatchWriter(state);
|
|
117
118
|
const resources = ensureWgpuQuadBatchResources(state);
|
|
118
119
|
// Claim a distinct pool slot for this flush. The canvas pass is submitted once at end of frame, so
|
|
119
120
|
// a buffer shared across flushes would be rewritten before any draw reads it, leaving every draw
|
|
120
121
|
// reading the last flush's data. A per-flush slot keeps each draw's instances intact until submit.
|
|
121
|
-
const slot =
|
|
122
|
-
const instanceBytes = count *
|
|
122
|
+
const slot = acquireWgpuQuadBatchWriterBufferSlot(state);
|
|
123
|
+
const instanceBytes = count * QUAD_BATCH_INSTANCE_STRIDE;
|
|
123
124
|
if (slot.instanceBuffer === null || slot.instanceCapacity < instanceBytes) {
|
|
124
|
-
const capacity = Math.max(instanceBytes, slot.instanceCapacity * 2,
|
|
125
|
-
slot.instanceBuffer =
|
|
125
|
+
const capacity = Math.max(instanceBytes, slot.instanceCapacity * 2, QUAD_BATCH_INSTANCE_STRIDE * 256);
|
|
126
|
+
slot.instanceBuffer = createWgpuQuadBatchWriterBuffer(state, capacity);
|
|
126
127
|
slot.instanceCapacity = capacity;
|
|
127
128
|
}
|
|
128
|
-
state.device.queue.writeBuffer(slot.instanceBuffer, 0, runtime.
|
|
129
|
+
state.device.queue.writeBuffer(slot.instanceBuffer, 0, runtime.quadBatchWriterInstanceData.buffer, 0, instanceBytes);
|
|
129
130
|
if (group3Floats > 0) {
|
|
130
131
|
const group3Bytes = count * group3Floats * 4;
|
|
131
132
|
if (slot.materialBuffer === null || slot.materialCapacity < group3Bytes) {
|
|
132
133
|
const capacity = Math.max(group3Bytes, slot.materialCapacity * 2, group3Floats * 4 * 256);
|
|
133
|
-
slot.materialBuffer =
|
|
134
|
+
slot.materialBuffer = createWgpuQuadBatchWriterBuffer(state, capacity);
|
|
134
135
|
slot.materialCapacity = capacity;
|
|
135
136
|
}
|
|
136
137
|
state.device.queue.writeBuffer(slot.materialBuffer, 0, group3Data.buffer, 0, group3Bytes);
|
|
137
138
|
}
|
|
138
139
|
state.applyBlendMode?.(state, blendMode);
|
|
139
|
-
const
|
|
140
|
-
|
|
140
|
+
const textureBindGroup = sampler !== null
|
|
141
|
+
? createWgpuTextureSamplerBindGroup(state, texture.view, sampler)
|
|
142
|
+
: resolveWgpuSmoothingBindGroup(state, texture, smoothing);
|
|
143
|
+
const uniformOffset = writeWgpuQuadBatchWriterUniforms(state, texture.straightAlpha === true);
|
|
141
144
|
const instanceBindGroup = state.device.createBindGroup({
|
|
142
145
|
layout: resources.instanceBindGroupLayout,
|
|
143
146
|
entries: [{ binding: 0, resource: { buffer: slot.instanceBuffer } }],
|
|
@@ -149,7 +152,7 @@ export function flushWgpuSpriteBatch(state) {
|
|
|
149
152
|
pass.setBindGroup(0, runtime.uniformBindGroup, [uniformOffset]);
|
|
150
153
|
// Per-bitmap smoothing selects the LINEAR/NEAREST variant bind group; a null key (sprites/text/shapes)
|
|
151
154
|
// uses the entry's global-default bind group.
|
|
152
|
-
pass.setBindGroup(1,
|
|
155
|
+
pass.setBindGroup(1, textureBindGroup);
|
|
153
156
|
pass.setBindGroup(2, instanceBindGroup);
|
|
154
157
|
if (group3Floats > 0) {
|
|
155
158
|
const materialBindGroup = state.device.createBindGroup({
|
|
@@ -221,56 +224,58 @@ export function getWgpuQuadBatchPreludeWGSL() {
|
|
|
221
224
|
// Writes one instance's per-instance material floats into the parallel material buffer at the
|
|
222
225
|
// instance's slot. No-op for materials with no per-instance data (floats === 0 / no packInstance),
|
|
223
226
|
// so the base path never assumes any particular material contributes here.
|
|
224
|
-
export function
|
|
227
|
+
export function packWgpuQuadBatchMaterialInstance(state, materialData, instanceIndex) {
|
|
225
228
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
226
|
-
const floats = runtime.
|
|
229
|
+
const floats = runtime.quadBatchWriterMaterialFloats;
|
|
227
230
|
if (floats === 0)
|
|
228
231
|
return;
|
|
229
|
-
const renderer = runtime.
|
|
232
|
+
const renderer = runtime.quadBatchWriterMaterialRenderer;
|
|
230
233
|
if (renderer === null || renderer.packInstance === undefined)
|
|
231
234
|
return;
|
|
232
|
-
renderer.packInstance(state, runtime.
|
|
235
|
+
renderer.packInstance(state, runtime.quadBatchWriterMaterial, materialData, runtime.quadBatchWriterMaterialData, instanceIndex * floats);
|
|
233
236
|
}
|
|
234
|
-
// Ensures the
|
|
237
|
+
// Ensures the quad-batch writer can accept up to `maxInstances` more instances for the given texture,
|
|
235
238
|
// blend mode, and material. Flushes when any of the three changes (material by reference) or
|
|
236
|
-
// capacity is exceeded. Returns the float index in
|
|
237
|
-
// base instance data; the caller increments the runtime's
|
|
238
|
-
//
|
|
239
|
-
export function
|
|
239
|
+
// capacity is exceeded. Returns the float index in quadBatchWriterInstanceData where the caller writes
|
|
240
|
+
// base instance data; the caller increments the runtime's quadBatchWriterCount and calls
|
|
241
|
+
// packWgpuQuadBatchMaterialInstance per instance.
|
|
242
|
+
export function prepareWgpuQuadBatchWrite(state, texture, sampler, blendMode, material, materialRenderer, maxInstances, smoothing = null) {
|
|
240
243
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
241
|
-
if (texture !== runtime.
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
244
|
+
if (texture !== runtime.quadBatchWriterTexture ||
|
|
245
|
+
sampler !== runtime.quadBatchWriterSampler ||
|
|
246
|
+
blendMode !== runtime.quadBatchWriterBlendMode ||
|
|
247
|
+
material !== runtime.quadBatchWriterMaterial ||
|
|
248
|
+
smoothing !== runtime.quadBatchWriterSmoothing) {
|
|
249
|
+
flushWgpuQuadBatchWriter(state);
|
|
246
250
|
}
|
|
247
|
-
runtime.
|
|
248
|
-
runtime.
|
|
249
|
-
runtime.
|
|
250
|
-
runtime.
|
|
251
|
-
runtime.
|
|
251
|
+
runtime.quadBatchWriterTexture = texture;
|
|
252
|
+
runtime.quadBatchWriterSampler = sampler;
|
|
253
|
+
runtime.quadBatchWriterSmoothing = smoothing;
|
|
254
|
+
runtime.quadBatchWriterBlendMode = blendMode;
|
|
255
|
+
runtime.quadBatchWriterMaterial = material;
|
|
256
|
+
runtime.quadBatchWriterMaterialRenderer = materialRenderer;
|
|
252
257
|
const floats = materialRenderer.instanceFloatCount;
|
|
253
|
-
runtime.
|
|
254
|
-
const needed = (runtime.
|
|
255
|
-
if (needed > runtime.
|
|
256
|
-
const newSize = Math.max(needed, runtime.
|
|
257
|
-
runtime.
|
|
258
|
+
runtime.quadBatchWriterMaterialFloats = floats;
|
|
259
|
+
const needed = (runtime.quadBatchWriterCount + maxInstances) * QUAD_BATCH_INSTANCE_FLOATS;
|
|
260
|
+
if (needed > runtime.quadBatchWriterInstanceData.length) {
|
|
261
|
+
const newSize = Math.max(needed, runtime.quadBatchWriterInstanceData.length * 2, QUAD_BATCH_INSTANCE_FLOATS * 256);
|
|
262
|
+
runtime.quadBatchWriterInstanceData = new Float32Array(newSize);
|
|
258
263
|
}
|
|
259
264
|
if (floats > 0) {
|
|
260
|
-
const materialNeeded = (runtime.
|
|
261
|
-
if (materialNeeded > runtime.
|
|
262
|
-
const newSize = Math.max(materialNeeded, runtime.
|
|
263
|
-
runtime.
|
|
265
|
+
const materialNeeded = (runtime.quadBatchWriterCount + maxInstances) * floats;
|
|
266
|
+
if (materialNeeded > runtime.quadBatchWriterMaterialData.length) {
|
|
267
|
+
const newSize = Math.max(materialNeeded, runtime.quadBatchWriterMaterialData.length * 2, floats * 256);
|
|
268
|
+
runtime.quadBatchWriterMaterialData = new Float32Array(newSize);
|
|
264
269
|
}
|
|
265
270
|
}
|
|
266
|
-
return runtime.
|
|
271
|
+
return runtime.quadBatchWriterCount * QUAD_BATCH_INSTANCE_FLOATS;
|
|
267
272
|
}
|
|
268
273
|
// Folds instance `instanceIndex`'s effective color adjustment into the active batch through the opt-in
|
|
269
274
|
// color-adjustment fold, without ever splitting the batch. When the capability was not enabled
|
|
270
275
|
// (registerWgpuColorAdjustmentMaterialFeature), the fold slot is null and the tint is skipped — the batch draws
|
|
271
276
|
// untinted (the sentinel behavior, never a throw); an installed guard reports the miss. `colorScaleBias`
|
|
272
277
|
// is null/undefined for an untinted instance, which is a no-op whether or not the fold is enabled.
|
|
273
|
-
export function
|
|
278
|
+
export function recordWgpuQuadBatchColorScaleBias(state, colorScaleBias, instanceIndex) {
|
|
274
279
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
275
280
|
const fold = runtime.wgpuColorAdjustmentMaterialFeature;
|
|
276
281
|
if (fold != null) {
|
|
@@ -283,38 +288,58 @@ export function recordWgpuSpriteBatchColorScaleBias(state, colorScaleBias, insta
|
|
|
283
288
|
// Resets the per-frame buffer-pool cursor so the next frame reclaims slots from the start. Must be
|
|
284
289
|
// called once at the start of each frame's batch work — the screen frame via renderWgpuBackground,
|
|
285
290
|
// and the offscreen cache bake via refreshWgpuRenderCache (the bake flushes on its own state).
|
|
286
|
-
export function
|
|
287
|
-
getWgpuRenderStateRuntime(state).
|
|
291
|
+
export function resetWgpuQuadBatchWriterBufferPool(state) {
|
|
292
|
+
getWgpuRenderStateRuntime(state).quadBatchWriterBufferCursor = 0;
|
|
288
293
|
}
|
|
289
294
|
// Claims the next per-frame pool slot, allocating one if the frame has more flushes than any prior
|
|
290
|
-
// frame. The cursor is reset to 0 each frame by
|
|
291
|
-
function
|
|
295
|
+
// frame. The cursor is reset to 0 each frame by resetWgpuQuadBatchWriterBufferPool.
|
|
296
|
+
function acquireWgpuQuadBatchWriterBufferSlot(state) {
|
|
292
297
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
293
|
-
const pool = runtime.
|
|
294
|
-
let slot = pool[runtime.
|
|
298
|
+
const pool = runtime.quadBatchWriterBufferPool;
|
|
299
|
+
let slot = pool[runtime.quadBatchWriterBufferCursor];
|
|
295
300
|
if (slot === undefined) {
|
|
296
301
|
slot = { instanceBuffer: null, instanceCapacity: 0, materialBuffer: null, materialCapacity: 0 };
|
|
297
|
-
pool[runtime.
|
|
302
|
+
pool[runtime.quadBatchWriterBufferCursor] = slot;
|
|
298
303
|
}
|
|
299
|
-
runtime.
|
|
304
|
+
runtime.quadBatchWriterBufferCursor++;
|
|
300
305
|
return slot;
|
|
301
306
|
}
|
|
302
|
-
function
|
|
307
|
+
function createWgpuQuadBatchWriterBuffer(state, size) {
|
|
303
308
|
return state.device.createBuffer({ size, usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST });
|
|
304
309
|
}
|
|
305
|
-
function
|
|
310
|
+
function resetWgpuQuadBatchWriter(state) {
|
|
306
311
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
307
|
-
runtime.
|
|
308
|
-
runtime.
|
|
309
|
-
runtime.
|
|
310
|
-
runtime.
|
|
311
|
-
runtime.
|
|
312
|
-
runtime.
|
|
313
|
-
runtime.
|
|
312
|
+
runtime.quadBatchWriterCount = 0;
|
|
313
|
+
runtime.quadBatchWriterTexture = null;
|
|
314
|
+
runtime.quadBatchWriterSampler = null;
|
|
315
|
+
runtime.quadBatchWriterSmoothing = null;
|
|
316
|
+
runtime.quadBatchWriterBlendMode = null;
|
|
317
|
+
runtime.quadBatchWriterMaterial = null;
|
|
318
|
+
runtime.quadBatchWriterMaterialRenderer = null;
|
|
319
|
+
runtime.quadBatchWriterMaterialFloats = 0;
|
|
320
|
+
}
|
|
321
|
+
function createWgpuTextureSamplerBindGroup(state, view, sampler) {
|
|
322
|
+
const minFilter = sampler.minFilter.startsWith('nearest') ? 'nearest' : 'linear';
|
|
323
|
+
const magFilter = sampler.magFilter.startsWith('nearest') ? 'nearest' : 'linear';
|
|
324
|
+
const mipmapFilter = sampler.mipmaps && sampler.minFilter.includes('mipmap')
|
|
325
|
+
? sampler.minFilter.endsWith('nearest')
|
|
326
|
+
? 'nearest'
|
|
327
|
+
: 'linear'
|
|
328
|
+
: undefined;
|
|
329
|
+
return state.device.createBindGroup({
|
|
330
|
+
layout: getWgpuRenderStateRuntime(state).textureBindGroupLayout,
|
|
331
|
+
entries: [
|
|
332
|
+
{ binding: 0, resource: view },
|
|
333
|
+
{
|
|
334
|
+
binding: 1,
|
|
335
|
+
resource: getWgpuSampler(state, minFilter, magFilter, sampler.wrapU, sampler.wrapV, mipmapFilter, sampler.anisotropy),
|
|
336
|
+
},
|
|
337
|
+
],
|
|
338
|
+
});
|
|
314
339
|
}
|
|
315
340
|
// Writes the NDC viewport matrix and the shared texture's alpha representation into the uniform ring,
|
|
316
341
|
// then advances the ring offset. Returns the byte offset for the dynamic bind-group binding.
|
|
317
|
-
function
|
|
342
|
+
function writeWgpuQuadBatchWriterUniforms(state, straightTextureAlpha) {
|
|
318
343
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
319
344
|
const uniformOffset = runtime.uniformOffset;
|
|
320
345
|
const floatBase = uniformOffset >> 2;
|
|
@@ -338,4 +363,4 @@ function writeWgpuSpriteBatchUniforms(state, straightTextureAlpha) {
|
|
|
338
363
|
runtime.uniformOffset += runtime.uniformStride;
|
|
339
364
|
return uniformOffset;
|
|
340
365
|
}
|
|
341
|
-
//# sourceMappingURL=
|
|
366
|
+
//# sourceMappingURL=wgpuQuadBatchWriter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuQuadBatchWriter.js","sourceRoot":"","sources":["../src/wgpuQuadBatchWriter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { RenderProxy2D, Scene2DRenderer, WgpuRenderState } from '@flighthq/types/contract';
|
|
2
|
+
export declare function drawWgpuRasterShape(state: WgpuRenderState, renderProxy: RenderProxy2D): void;
|
|
3
|
+
export declare const defaultWgpuRasterShapeRenderer: Scene2DRenderer;
|
|
4
|
+
//# sourceMappingURL=wgpuRasterShapeRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuRasterShapeRenderer.d.ts","sourceRoot":"","sources":["../src/wgpuRasterShapeRenderer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAS,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAqBvG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CA4F5F;AAUD,eAAO,MAAM,8BAA8B,EAAE,eAK5C,CAAC"}
|