@flighthq/scene2d-wgpu 0.3.0-next.1220.6982c21 → 0.3.0-next.1272.222de94
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/wgpuRichText.d.ts.map +1 -1
- package/dist/wgpuRichText.js +5 -2
- package/dist/wgpuRichText.js.map +1 -1
- package/dist/wgpuScale9Shape.d.ts.map +1 -1
- package/dist/wgpuScale9Shape.js +4 -1
- package/dist/wgpuScale9Shape.js.map +1 -1
- package/dist/wgpuShape.d.ts.map +1 -1
- package/dist/wgpuShape.js +63 -38
- package/dist/wgpuShape.js.map +1 -1
- package/dist/wgpuShapeMesh.d.ts.map +1 -1
- package/dist/wgpuShapeMesh.js +36 -32
- package/dist/wgpuShapeMesh.js.map +1 -1
- package/dist/wgpuSprite.d.ts.map +1 -1
- package/dist/wgpuSprite.js +3 -2
- package/dist/wgpuSprite.js.map +1 -1
- package/dist/wgpuTextLabel.d.ts.map +1 -1
- package/dist/wgpuTextLabel.js +2 -0
- package/dist/wgpuTextLabel.js.map +1 -1
- package/package.json +18 -18
- package/src/wgpuShape.test.ts +101 -1
- package/src/wgpuShapeMesh.test.ts +23 -8
- package/src/wgpuSprite.test.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRichText.d.ts","sourceRoot":"","sources":["../src/wgpuRichText.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EAKX,eAAe,EACf,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AAiBlC,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,GAAG,YAAY,CAE7F;AAGD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAIrF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CASzF;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,aAAa,EAC1B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI,
|
|
1
|
+
{"version":3,"file":"wgpuRichText.d.ts","sourceRoot":"","sources":["../src/wgpuRichText.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EAKX,eAAe,EACf,mBAAmB,EAEpB,MAAM,0BAA0B,CAAC;AAiBlC,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,GAAG,YAAY,CAE7F;AAGD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAIrF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CASzF;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,aAAa,EAC1B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI,CA+DN;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAE/E;AAED,eAAO,MAAM,2BAA2B,EAAE,eAIzC,CAAC"}
|
package/dist/wgpuRichText.js
CHANGED
|
@@ -72,9 +72,12 @@ export function drawWgpuRichTextWithOverlay(state, renderProxy, overlay) {
|
|
|
72
72
|
const ph = _offscreenCanvas.height;
|
|
73
73
|
let entry = richData.entry;
|
|
74
74
|
if (entry === null || richData.w !== pw || richData.h !== ph) {
|
|
75
|
+
const nextEntry = createWgpuTextureEntry(state, pw, ph, _offscreenCanvas);
|
|
76
|
+
if (nextEntry === null)
|
|
77
|
+
return;
|
|
75
78
|
entry?.texture.destroy();
|
|
76
|
-
entry =
|
|
77
|
-
richData.entry =
|
|
79
|
+
entry = nextEntry;
|
|
80
|
+
richData.entry = nextEntry;
|
|
78
81
|
richData.w = pw;
|
|
79
82
|
richData.h = ph;
|
|
80
83
|
}
|
package/dist/wgpuRichText.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuRichText.js","sourceRoot":"","sources":["../src/wgpuRichText.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"wgpuRichText.js","sourceRoot":"","sources":["../src/wgpuRichText.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuScale9Shape.d.ts","sourceRoot":"","sources":["../src/wgpuScale9Shape.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,4BAA4B,EAA6B,MAAM,mCAAmC,CAAC;AAC5G,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EAEX,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAsBlC,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,GAAG,YAAY,CAehG;AAGD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAIxF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"wgpuScale9Shape.d.ts","sourceRoot":"","sources":["../src/wgpuScale9Shape.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,4BAA4B,EAA6B,MAAM,mCAAmC,CAAC;AAC5G,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EAEX,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAsBlC,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,GAAG,YAAY,CAehG;AAGD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAIxF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAkF5F;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,CAEzF;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EAAE,EACd,MAAM,EAAE,SAAS,OAAO,EAAE,EAC1B,MAAM,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC,CAAC,GACzD,IAAI,CAeN;AAED,eAAO,MAAM,8BAA8B,EAAE,eAI5C,CAAC"}
|
package/dist/wgpuScale9Shape.js
CHANGED
|
@@ -71,8 +71,11 @@ export function drawWgpuScale9Shape(state, renderProxy) {
|
|
|
71
71
|
// GPU textures are fixed-size: recreate the entry when the field size changes, otherwise reupload
|
|
72
72
|
// the canvas pixels into the existing entry.
|
|
73
73
|
if (shapeData.entry === null || shapeData.lastW !== w || shapeData.lastH !== h) {
|
|
74
|
+
const nextEntry = createWgpuTextureEntry(state, w, h, shapeData.canvas);
|
|
75
|
+
if (nextEntry === null)
|
|
76
|
+
return;
|
|
74
77
|
shapeData.entry?.texture.destroy();
|
|
75
|
-
shapeData.entry =
|
|
78
|
+
shapeData.entry = nextEntry;
|
|
76
79
|
}
|
|
77
80
|
else {
|
|
78
81
|
updateWgpuTextureEntry(state, shapeData.entry, shapeData.canvas);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuScale9Shape.js","sourceRoot":"","sources":["../src/wgpuScale9Shape.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"wgpuScale9Shape.js","sourceRoot":"","sources":["../src/wgpuScale9Shape.ts"],"names":[],"mappings":"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"}
|
package/dist/wgpuShape.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuShape.d.ts","sourceRoot":"","sources":["../src/wgpuShape.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,eAAe,EAIf,aAAa,
|
|
1
|
+
{"version":3,"file":"wgpuShape.d.ts","sourceRoot":"","sources":["../src/wgpuShape.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,eAAe,EAIf,aAAa,EAMb,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AA6FlC,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CA+GtF;AAMD,eAAO,MAAM,wBAAwB,EAAE,eAKtC,CAAC"}
|
package/dist/wgpuShape.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createImageResource, invalidateImageResource } from '@flighthq/image/contract';
|
|
2
2
|
import { getNodeLocalBoundsRectangle, getNodeLocalContentRevision } from '@flighthq/node/contract';
|
|
3
|
-
import { tessellatePath } from '@flighthq/path/contract';
|
|
3
|
+
import { tessellatePath, tessellateStrokePath } from '@flighthq/path/contract';
|
|
4
4
|
import { bindWgpuImageResourceTexture, resolveWgpuMaterialRenderer } from '@flighthq/render-wgpu/contract';
|
|
5
5
|
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
6
6
|
import { renderCanvasShapeCommands } from '@flighthq/scene2d-canvas/contract';
|
|
7
|
-
import { getShapeFillRegions, getShapeStrokeRegions
|
|
7
|
+
import { getShapeFillRegions, getShapeStrokeRegions } from '@flighthq/shape/contract';
|
|
8
8
|
import { BatchFormat } from '@flighthq/types/contract';
|
|
9
9
|
import { ensureWgpuQuadBatchResources, packWgpuQuadBatchMaterialInstance, prepareWgpuQuadBatchWrite, recordWgpuQuadBatchColorScaleBias, } from './wgpuQuadBatchWriter';
|
|
10
10
|
import { createWgpuRendererData, getWgpuRendererData } from './wgpuRendererData';
|
|
@@ -24,12 +24,12 @@ function createWgpuShapeData(_state, _source) {
|
|
|
24
24
|
meshVersion: -1,
|
|
25
25
|
meshes: null,
|
|
26
26
|
meshBuffers: {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
vertexBuffers: [],
|
|
28
|
+
vertexCapacities: [],
|
|
29
|
+
indexBuffers: [],
|
|
30
|
+
indexCapacities: [],
|
|
31
|
+
uniformBuffers: [],
|
|
32
|
+
bindGroups: [],
|
|
33
33
|
},
|
|
34
34
|
});
|
|
35
35
|
}
|
|
@@ -46,26 +46,31 @@ function destroyWgpuShapeData(state, data) {
|
|
|
46
46
|
runtime.textureSourcePremultipliedTextureCache.delete(shapeData.image);
|
|
47
47
|
}
|
|
48
48
|
const b = shapeData.meshBuffers;
|
|
49
|
-
b.
|
|
50
|
-
|
|
51
|
-
b.
|
|
52
|
-
|
|
53
|
-
b.
|
|
54
|
-
|
|
55
|
-
b.
|
|
49
|
+
for (const buffer of b.vertexBuffers)
|
|
50
|
+
buffer.destroy();
|
|
51
|
+
for (const buffer of b.indexBuffers)
|
|
52
|
+
buffer.destroy();
|
|
53
|
+
for (const buffer of b.uniformBuffers)
|
|
54
|
+
buffer.destroy();
|
|
55
|
+
b.vertexBuffers.length = 0;
|
|
56
|
+
b.vertexCapacities.length = 0;
|
|
57
|
+
b.indexBuffers.length = 0;
|
|
58
|
+
b.indexCapacities.length = 0;
|
|
59
|
+
b.uniformBuffers.length = 0;
|
|
60
|
+
b.bindGroups.length = 0;
|
|
56
61
|
}
|
|
57
|
-
//
|
|
58
|
-
//
|
|
59
|
-
//
|
|
60
|
-
// stroke, a closed-primitive (ring) stroke, or a shape that BOTH fills and strokes. Mirrors
|
|
61
|
-
// scene2d-gl/glShape's resolveGlShapeMeshRegions.
|
|
62
|
+
// Resolves every solid fill and solid stroke into one fill-before-stroke source list. Style sentinels
|
|
63
|
+
// are decided here; geometric stroke sentinels are decided by tessellateStrokePath during cache rebuild.
|
|
64
|
+
// Mirrors scene2d-gl/glShape.
|
|
62
65
|
function resolveWgpuShapeMeshRegions(commands) {
|
|
63
66
|
const fillRegions = getShapeFillRegions(commands);
|
|
64
|
-
if (fillRegions
|
|
65
|
-
return fillRegions.length > 0 ? fillRegions : null;
|
|
66
|
-
if (hasShapeFill(commands))
|
|
67
|
+
if (fillRegions === null)
|
|
67
68
|
return null;
|
|
68
|
-
|
|
69
|
+
const strokeRegions = getShapeStrokeRegions(commands);
|
|
70
|
+
if (strokeRegions === null)
|
|
71
|
+
return null;
|
|
72
|
+
const regions = [...fillRegions, ...strokeRegions];
|
|
73
|
+
return regions.length > 0 ? regions : null;
|
|
69
74
|
}
|
|
70
75
|
export function drawWgpuShape(state, renderProxy) {
|
|
71
76
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
@@ -78,30 +83,41 @@ export function drawWgpuShape(state, renderProxy) {
|
|
|
78
83
|
return;
|
|
79
84
|
if (renderProxy.rendererData === null)
|
|
80
85
|
return;
|
|
81
|
-
// GPU mesh path:
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
// fill + stroke mesh paths don't compose yet). Mirrors scene2d-gl/glShape.
|
|
86
|
+
// GPU mesh path: fills use direct path tessellation; strokes use the dedicated cross-section mesh so
|
|
87
|
+
// open outlines and hollow closed rings share joins/caps/dashes without hole-fill ambiguity. A
|
|
88
|
+
// pathological stroke's null mesh deliberately falls through to the Canvas raster path below.
|
|
89
|
+
// Mirrors scene2d-gl/glShape.
|
|
86
90
|
const regions = resolveWgpuShapeMeshRegions(commands);
|
|
87
91
|
if (regions !== null && regions.length > 0) {
|
|
88
92
|
const meshData = getWgpuRendererData(renderProxy.rendererData);
|
|
89
93
|
if (meshData === null)
|
|
90
94
|
return;
|
|
91
95
|
if (meshData.meshVersion !== version) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
96
|
+
const meshes = [];
|
|
97
|
+
let supported = true;
|
|
98
|
+
for (let i = 0; i < regions.length; i++) {
|
|
99
|
+
const region = regions[i];
|
|
100
|
+
const mesh = isShapeStrokeRegion(region)
|
|
101
|
+
? tessellateStrokePath(region.path, region.style)
|
|
102
|
+
: tessellatePath(region.path);
|
|
103
|
+
if (mesh === null) {
|
|
104
|
+
supported = false;
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
meshes.push({
|
|
95
108
|
vertices: new Float32Array(mesh.vertices),
|
|
96
109
|
indices: new Uint16Array(mesh.indices),
|
|
97
110
|
color: region.color,
|
|
98
111
|
alpha: region.alpha,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
meshData.meshes = supported ? meshes : null;
|
|
101
115
|
meshData.meshVersion = version;
|
|
102
116
|
}
|
|
103
|
-
|
|
104
|
-
|
|
117
|
+
if (meshData.meshes !== null) {
|
|
118
|
+
drawWgpuShapeMeshes(state, renderProxy, meshData.meshes, meshData.meshBuffers);
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
105
121
|
}
|
|
106
122
|
const material = renderProxy.material;
|
|
107
123
|
const materialRenderer = resolveWgpuMaterialRenderer(state, material);
|
|
@@ -116,8 +132,12 @@ export function drawWgpuShape(state, renderProxy) {
|
|
|
116
132
|
if (w <= 0 || h <= 0)
|
|
117
133
|
return;
|
|
118
134
|
if (version !== shapeData.lastContentId || w !== shapeData.lastW || h !== shapeData.lastH) {
|
|
119
|
-
|
|
120
|
-
|
|
135
|
+
// Reassigning either canvas dimension resets its 2D context even when the value is unchanged.
|
|
136
|
+
// Animated shapes invalidate their commands every frame, so resize only when their bounds change.
|
|
137
|
+
if (shapeData.canvas.width !== w)
|
|
138
|
+
shapeData.canvas.width = w;
|
|
139
|
+
if (shapeData.canvas.height !== h)
|
|
140
|
+
shapeData.canvas.height = h;
|
|
121
141
|
const ctx = shapeData.ctx;
|
|
122
142
|
ctx.clearRect(0, 0, w, h);
|
|
123
143
|
ctx.save();
|
|
@@ -136,6 +156,8 @@ export function drawWgpuShape(state, renderProxy) {
|
|
|
136
156
|
const tx = t.tx + t.a * bounds.x + t.c * bounds.y;
|
|
137
157
|
const ty = t.ty + t.b * bounds.x + t.d * bounds.y;
|
|
138
158
|
const textureEntry = bindWgpuImageResourceTexture(state, shapeData.image, false, true);
|
|
159
|
+
if (textureEntry === null)
|
|
160
|
+
return;
|
|
139
161
|
const startCount = runtime.quadBatchWriterCount;
|
|
140
162
|
const base = prepareWgpuQuadBatchWrite(state, textureEntry, null, renderProxy.blendMode, material, materialRenderer, 1);
|
|
141
163
|
const d = runtime.quadBatchWriterInstanceData;
|
|
@@ -156,6 +178,9 @@ export function drawWgpuShape(state, renderProxy) {
|
|
|
156
178
|
recordWgpuQuadBatchColorScaleBias(state, renderProxy.colorMatrix ?? renderProxy.colorScaleBias, startCount);
|
|
157
179
|
runtime.quadBatchWriterCount++;
|
|
158
180
|
}
|
|
181
|
+
function isShapeStrokeRegion(region) {
|
|
182
|
+
return 'style' in region;
|
|
183
|
+
}
|
|
159
184
|
export const defaultWgpuShapeRenderer = {
|
|
160
185
|
format: BatchFormat.Quad,
|
|
161
186
|
createData: createWgpuShapeData,
|
package/dist/wgpuShape.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuShape.js","sourceRoot":"","sources":["../src/wgpuShape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuShape.js","sourceRoot":"","sources":["../src/wgpuShape.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuShapeMesh.d.ts","sourceRoot":"","sources":["../src/wgpuShapeMesh.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,oBAAoB,EAErB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuShapeMesh.d.ts","sourceRoot":"","sources":["../src/wgpuShapeMesh.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,oBAAoB,EAErB,MAAM,0BAA0B,CAAC;AAwBlC,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,aAAa,EAC1B,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAiDN"}
|
package/dist/wgpuShapeMesh.js
CHANGED
|
@@ -4,22 +4,21 @@ import { flushWgpuQuadBatchWriter } from './wgpuQuadBatchWriter';
|
|
|
4
4
|
// canvas-raster-to-texture shortcut (resolution-bound, so circles go jagged when scaled up). Each fill
|
|
5
5
|
// region is tessellated to a triangle mesh (CPU, cached by content version in webgpuShape) and drawn here
|
|
6
6
|
// with a flat-color pipeline, transformed by the node world transform in the vertex shader so it stays
|
|
7
|
-
// crisp at any zoom. Gradient/
|
|
8
|
-
//
|
|
7
|
+
// crisp at any zoom. Gradient/texture styles and pathological stroke centerlines still take the raster
|
|
8
|
+
// path.
|
|
9
9
|
//
|
|
10
10
|
// The fill is gated by any active contour clip: the pipeline compares stencil 'equal' currentMaskDepth
|
|
11
11
|
// (set per draw via setStencilReference) and writes nothing back, so at depth 0 the cleared stencil (0)
|
|
12
12
|
// passes everywhere and inside a clip only the clip's stamped region passes. Blend state is immutable
|
|
13
13
|
// in WebGPU, so the pipeline cache is keyed by the node's fixed-function BlendMode and target format.
|
|
14
14
|
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
// available.
|
|
15
|
+
// The shape-stroke-ring-fallback functional scene exercises this path through the headless software
|
|
16
|
+
// adapter and keeps its closed-ring pixels in parity with Canvas and WebGL.
|
|
18
17
|
// Draws the shape's tessellated fill meshes. Flushes the quad-batch writer first (these go through a separate
|
|
19
18
|
// pipeline). Uploads each mesh's geometry and premultiplied color into the shape's reusable per-shape
|
|
20
|
-
//
|
|
21
|
-
// by the active contour-clip stencil.
|
|
22
|
-
//
|
|
19
|
+
// buffer slot (grown by replacement when that region needs more room) and issues one indexed draw per
|
|
20
|
+
// mesh, gated by the active contour-clip stencil. Slots are distinct because queue writes precede render
|
|
21
|
+
// pass submission; reusing one slot would make every recorded draw observe the final mesh upload.
|
|
23
22
|
export function drawWgpuShapeMeshes(state, renderProxy, meshes, buffers) {
|
|
24
23
|
if (meshes.length === 0)
|
|
25
24
|
return;
|
|
@@ -31,12 +30,10 @@ export function drawWgpuShapeMeshes(state, renderProxy, meshes, buffers) {
|
|
|
31
30
|
const pipelineEntry = ensureShapeMeshPipeline(state, renderProxy.blendMode);
|
|
32
31
|
const device = state.device;
|
|
33
32
|
const queue = device.queue;
|
|
34
|
-
const uniform = ensureShapeMeshUniform(state, pipelineEntry, buffers);
|
|
35
33
|
// Writes the projection·world matrix into uniform columns 0..11 (it shares the same scratch array);
|
|
36
34
|
// the per-mesh color fills 12..15 in the loop below. Same matrix for every mesh of this shape.
|
|
37
35
|
shapeMeshMatrix(state, renderProxy);
|
|
38
36
|
pass.setPipeline(pipelineEntry.pipeline);
|
|
39
|
-
pass.setBindGroup(0, buffers.bindGroup);
|
|
40
37
|
// The cleared stencil is 0, so at depth 0 'equal 0' passes everywhere; inside a contour clip only its
|
|
41
38
|
// stamped region equals currentMaskDepth, so the fill is confined to the clip.
|
|
42
39
|
pass.setStencilReference(runtime.currentMaskDepth);
|
|
@@ -48,8 +45,9 @@ export function drawWgpuShapeMeshes(state, renderProxy, meshes, buffers) {
|
|
|
48
45
|
const a = mesh.alpha * nodeAlpha;
|
|
49
46
|
if (a <= 0)
|
|
50
47
|
continue;
|
|
51
|
-
const
|
|
52
|
-
const
|
|
48
|
+
const uniform = ensureShapeMeshUniform(state, pipelineEntry, buffers, i);
|
|
49
|
+
const vertexBuffer = ensureShapeMeshVertexBuffer(state, buffers, i, mesh.vertices.byteLength);
|
|
50
|
+
const indexBuffer = ensureShapeMeshIndexBuffer(state, buffers, i, mesh.indices.byteLength);
|
|
53
51
|
queue.writeBuffer(vertexBuffer, 0, mesh.vertices.buffer, mesh.vertices.byteOffset, mesh.vertices.byteLength);
|
|
54
52
|
writeShapeMeshIndices(queue, indexBuffer, mesh.indices);
|
|
55
53
|
// Premultiplied color (r*a, g*a, b*a, a) for the one / one-minus-src-alpha target blend.
|
|
@@ -60,7 +58,8 @@ export function drawWgpuShapeMeshes(state, renderProxy, meshes, buffers) {
|
|
|
60
58
|
uniform[13] = g * a;
|
|
61
59
|
uniform[14] = b * a;
|
|
62
60
|
uniform[15] = a;
|
|
63
|
-
queue.writeBuffer(buffers.
|
|
61
|
+
queue.writeBuffer(buffers.uniformBuffers[i], 0, uniform.buffer, uniform.byteOffset, uniform.byteLength);
|
|
62
|
+
pass.setBindGroup(0, buffers.bindGroups[i]);
|
|
64
63
|
pass.setVertexBuffer(0, vertexBuffer);
|
|
65
64
|
pass.setIndexBuffer(indexBuffer, 'uint16');
|
|
66
65
|
pass.drawIndexed(mesh.indices.length);
|
|
@@ -78,34 +77,37 @@ struct ShapeMeshUniforms { matrix : mat3x3f, color : vec4f }
|
|
|
78
77
|
// mat3x3f occupies 48 bytes (three vec3 columns each padded to 16), then a vec4f color (16 bytes): 64.
|
|
79
78
|
const SHAPE_MESH_UNIFORM_BYTES = 64;
|
|
80
79
|
const SHAPE_MESH_UNIFORM_FLOATS = SHAPE_MESH_UNIFORM_BYTES / 4;
|
|
81
|
-
function ensureShapeMeshIndexBuffer(state, buffers, byteLength) {
|
|
80
|
+
function ensureShapeMeshIndexBuffer(state, buffers, meshIndex, byteLength) {
|
|
82
81
|
// Index buffers must be a multiple of 4 bytes for COPY_DST writes; round up the requested size.
|
|
83
82
|
const size = Math.max(4, (byteLength + 3) & ~3);
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
let buffer = buffers.indexBuffers[meshIndex];
|
|
84
|
+
if (buffer === undefined || (buffers.indexCapacities[meshIndex] ?? 0) < size) {
|
|
85
|
+
if (buffer !== undefined) {
|
|
86
86
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
87
|
-
(runtime.retiredBuffers ?? (runtime.retiredBuffers = [])).push(
|
|
87
|
+
(runtime.retiredBuffers ?? (runtime.retiredBuffers = [])).push(buffer);
|
|
88
88
|
}
|
|
89
|
-
|
|
89
|
+
buffer = state.device.createBuffer({
|
|
90
90
|
size,
|
|
91
91
|
usage: GPUBufferUsage.INDEX | GPUBufferUsage.COPY_DST,
|
|
92
92
|
});
|
|
93
|
-
buffers.
|
|
93
|
+
buffers.indexBuffers[meshIndex] = buffer;
|
|
94
|
+
buffers.indexCapacities[meshIndex] = size;
|
|
94
95
|
}
|
|
95
|
-
return
|
|
96
|
+
return buffer;
|
|
96
97
|
}
|
|
97
98
|
// Lazily builds (once per shape) the uniform buffer + bind group, then returns the scratch float view the
|
|
98
99
|
// caller fills with the matrix (uploaded once) and per-mesh color. The matrix columns are written here so
|
|
99
100
|
// every draw shares them; only color (floats 12..15) changes per mesh.
|
|
100
|
-
function ensureShapeMeshUniform(state, pipelineEntry, buffers) {
|
|
101
|
-
if (buffers.
|
|
102
|
-
|
|
101
|
+
function ensureShapeMeshUniform(state, pipelineEntry, buffers, meshIndex) {
|
|
102
|
+
if (buffers.uniformBuffers[meshIndex] === undefined) {
|
|
103
|
+
const uniformBuffer = state.device.createBuffer({
|
|
103
104
|
size: SHAPE_MESH_UNIFORM_BYTES,
|
|
104
105
|
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,
|
|
105
106
|
});
|
|
106
|
-
buffers.
|
|
107
|
+
buffers.uniformBuffers[meshIndex] = uniformBuffer;
|
|
108
|
+
buffers.bindGroups[meshIndex] = state.device.createBindGroup({
|
|
107
109
|
layout: pipelineEntry.bindGroupLayout,
|
|
108
|
-
entries: [{ binding: 0, resource: { buffer:
|
|
110
|
+
entries: [{ binding: 0, resource: { buffer: uniformBuffer } }],
|
|
109
111
|
});
|
|
110
112
|
}
|
|
111
113
|
return _shapeMeshUniformScratch;
|
|
@@ -158,20 +160,22 @@ function ensureShapeMeshPipeline(state, blendMode) {
|
|
|
158
160
|
cache.set(key, entry);
|
|
159
161
|
return entry;
|
|
160
162
|
}
|
|
161
|
-
function ensureShapeMeshVertexBuffer(state, buffers, byteLength) {
|
|
163
|
+
function ensureShapeMeshVertexBuffer(state, buffers, meshIndex, byteLength) {
|
|
162
164
|
const size = Math.max(8, byteLength);
|
|
163
|
-
|
|
164
|
-
|
|
165
|
+
let buffer = buffers.vertexBuffers[meshIndex];
|
|
166
|
+
if (buffer === undefined || (buffers.vertexCapacities[meshIndex] ?? 0) < size) {
|
|
167
|
+
if (buffer !== undefined) {
|
|
165
168
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
166
|
-
(runtime.retiredBuffers ?? (runtime.retiredBuffers = [])).push(
|
|
169
|
+
(runtime.retiredBuffers ?? (runtime.retiredBuffers = [])).push(buffer);
|
|
167
170
|
}
|
|
168
|
-
|
|
171
|
+
buffer = state.device.createBuffer({
|
|
169
172
|
size,
|
|
170
173
|
usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
|
|
171
174
|
});
|
|
172
|
-
buffers.
|
|
175
|
+
buffers.vertexBuffers[meshIndex] = buffer;
|
|
176
|
+
buffers.vertexCapacities[meshIndex] = size;
|
|
173
177
|
}
|
|
174
|
-
return
|
|
178
|
+
return buffer;
|
|
175
179
|
}
|
|
176
180
|
// Column-major mat3x3f = projection · worldTransform, mapping shape-local points to clip space exactly as
|
|
177
181
|
// webgpuClipContours/webgpuDraw build it (so the fill lands in identical clip space). Each column is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuShapeMesh.js","sourceRoot":"","sources":["../src/wgpuShapeMesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAS9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,gGAAgG;AAChG,uGAAuG;AACvG,0GAA0G;AAC1G,uGAAuG;AACvG,uGAAuG;AACvG,
|
|
1
|
+
{"version":3,"file":"wgpuShapeMesh.js","sourceRoot":"","sources":["../src/wgpuShapeMesh.ts"],"names":[],"mappings":"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"}
|
package/dist/wgpuSprite.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuSprite.d.ts","sourceRoot":"","sources":["../src/wgpuSprite.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAU,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAWxG,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CA8DvF;AAED,eAAO,MAAM,yBAAyB,EAAE,
|
|
1
|
+
{"version":3,"file":"wgpuSprite.d.ts","sourceRoot":"","sources":["../src/wgpuSprite.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAU,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAWxG,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CA8DvF;AAED,eAAO,MAAM,yBAAyB,EAAE,eAKvC,CAAC"}
|
package/dist/wgpuSprite.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getWgpuRenderStateRuntime, resolveWgpuMaterialRenderer, resolveWgpuShader, resolveWgpuTexture, } from '@flighthq/render-wgpu/contract';
|
|
2
|
-
import {
|
|
2
|
+
import { createSpriteRendererData, isSpriteRendererDirty } from '@flighthq/scene2d/contract';
|
|
3
3
|
import { getTextureHeight, getTextureWidth, hasTextureSource } from '@flighthq/texture/contract';
|
|
4
4
|
import { BatchFormat } from '@flighthq/types/contract';
|
|
5
5
|
import { ensureWgpuQuadBatchResources, flushWgpuQuadBatchWriter, packWgpuQuadBatchMaterialInstance, prepareWgpuQuadBatchWrite, recordWgpuQuadBatchColorScaleBias, } from './wgpuQuadBatchWriter';
|
|
@@ -62,7 +62,8 @@ export function drawWgpuSprite(state, renderProxy) {
|
|
|
62
62
|
}
|
|
63
63
|
export const defaultWgpuSpriteRenderer = {
|
|
64
64
|
format: BatchFormat.Quad,
|
|
65
|
-
createData:
|
|
65
|
+
createData: createSpriteRendererData,
|
|
66
|
+
isDirty: isSpriteRendererDirty,
|
|
66
67
|
submit: drawWgpuSprite,
|
|
67
68
|
};
|
|
68
69
|
//# sourceMappingURL=wgpuSprite.js.map
|
package/dist/wgpuSprite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuSprite.js","sourceRoot":"","sources":["../src/wgpuSprite.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wgpuSprite.js","sourceRoot":"","sources":["../src/wgpuSprite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuTextLabel.d.ts","sourceRoot":"","sources":["../src/wgpuTextLabel.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,eAAe,EAIf,aAAa,EAKb,eAAe,EAChB,MAAM,0BAA0B,CAAC;AA0DlC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"wgpuTextLabel.d.ts","sourceRoot":"","sources":["../src/wgpuTextLabel.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,eAAe,EAIf,aAAa,EAKb,eAAe,EAChB,MAAM,0BAA0B,CAAC;AA0DlC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAsH1F;AAED,eAAO,MAAM,4BAA4B,EAAE,eAK1C,CAAC"}
|
package/dist/wgpuTextLabel.js
CHANGED
|
@@ -120,6 +120,8 @@ export function drawWgpuTextLabel(state, renderProxy) {
|
|
|
120
120
|
return;
|
|
121
121
|
ensureWgpuQuadBatchResources(state);
|
|
122
122
|
const textureEntry = bindWgpuImageResourceTexture(state, textData.image, false, true);
|
|
123
|
+
if (textureEntry === null)
|
|
124
|
+
return;
|
|
123
125
|
const startCount = runtime.quadBatchWriterCount;
|
|
124
126
|
const base = prepareWgpuQuadBatchWrite(state, textureEntry, null, renderProxy.blendMode, material, materialRenderer, 1);
|
|
125
127
|
const d = runtime.quadBatchWriterInstanceData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuTextLabel.js","sourceRoot":"","sources":["../src/wgpuTextLabel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wgpuTextLabel.js","sourceRoot":"","sources":["../src/wgpuTextLabel.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/scene2d-wgpu",
|
|
3
|
-
"version": "0.3.0-next.
|
|
3
|
+
"version": "0.3.0-next.1272.222de94",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/flighthq/flight.git",
|
|
@@ -36,23 +36,23 @@
|
|
|
36
36
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@flighthq/color": "0.3.0-next.
|
|
40
|
-
"@flighthq/scene2d": "0.3.0-next.
|
|
41
|
-
"@flighthq/scene2d-canvas": "0.3.0-next.
|
|
42
|
-
"@flighthq/geometry": "0.3.0-next.
|
|
43
|
-
"@flighthq/image": "0.3.0-next.
|
|
44
|
-
"@flighthq/log": "0.3.0-next.
|
|
45
|
-
"@flighthq/node": "0.3.0-next.
|
|
46
|
-
"@flighthq/path": "0.3.0-next.
|
|
47
|
-
"@flighthq/render": "0.3.0-next.
|
|
48
|
-
"@flighthq/render-wgpu": "0.3.0-next.
|
|
49
|
-
"@flighthq/shape": "0.3.0-next.
|
|
50
|
-
"@flighthq/text": "0.3.0-next.
|
|
51
|
-
"@flighthq/textinput": "0.3.0-next.
|
|
52
|
-
"@flighthq/textlayout": "0.3.0-next.
|
|
53
|
-
"@flighthq/texture": "0.3.0-next.
|
|
54
|
-
"@flighthq/types": "0.3.0-next.
|
|
55
|
-
"@flighthq/velocity": "0.3.0-next.
|
|
39
|
+
"@flighthq/color": "0.3.0-next.1272.222de94",
|
|
40
|
+
"@flighthq/scene2d": "0.3.0-next.1272.222de94",
|
|
41
|
+
"@flighthq/scene2d-canvas": "0.3.0-next.1272.222de94",
|
|
42
|
+
"@flighthq/geometry": "0.3.0-next.1272.222de94",
|
|
43
|
+
"@flighthq/image": "0.3.0-next.1272.222de94",
|
|
44
|
+
"@flighthq/log": "0.3.0-next.1272.222de94",
|
|
45
|
+
"@flighthq/node": "0.3.0-next.1272.222de94",
|
|
46
|
+
"@flighthq/path": "0.3.0-next.1272.222de94",
|
|
47
|
+
"@flighthq/render": "0.3.0-next.1272.222de94",
|
|
48
|
+
"@flighthq/render-wgpu": "0.3.0-next.1272.222de94",
|
|
49
|
+
"@flighthq/shape": "0.3.0-next.1272.222de94",
|
|
50
|
+
"@flighthq/text": "0.3.0-next.1272.222de94",
|
|
51
|
+
"@flighthq/textinput": "0.3.0-next.1272.222de94",
|
|
52
|
+
"@flighthq/textlayout": "0.3.0-next.1272.222de94",
|
|
53
|
+
"@flighthq/texture": "0.3.0-next.1272.222de94",
|
|
54
|
+
"@flighthq/types": "0.3.0-next.1272.222de94",
|
|
55
|
+
"@flighthq/velocity": "0.3.0-next.1272.222de94"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@flighthq/bitmaptext": "*",
|
package/src/wgpuShape.test.ts
CHANGED
|
@@ -3,8 +3,18 @@ import type * as FlightNodeModule from '@flighthq/node/contract';
|
|
|
3
3
|
import { renderWgpuBackground, submitWgpuRenderPass } from '@flighthq/render-wgpu/contract';
|
|
4
4
|
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
5
5
|
import { createWgpuRenderStateForTest, installWgpuMock } from '@flighthq/render-wgpu/contract';
|
|
6
|
+
import {
|
|
7
|
+
appendShapeBeginFill,
|
|
8
|
+
appendShapeEndFill,
|
|
9
|
+
appendShapePath,
|
|
10
|
+
appendShapeLineStyle,
|
|
11
|
+
appendShapeLineTo,
|
|
12
|
+
appendShapeMoveTo,
|
|
13
|
+
appendShapeRectangle,
|
|
14
|
+
createShape,
|
|
15
|
+
} from '@flighthq/shape/contract';
|
|
6
16
|
import type { RenderProxy2D } from '@flighthq/types/contract';
|
|
7
|
-
import { BatchFormat } from '@flighthq/types/contract';
|
|
17
|
+
import { BatchFormat, PathCommand } from '@flighthq/types/contract';
|
|
8
18
|
|
|
9
19
|
import { scopeModuleMocks } from './moduleMockTestHelper';
|
|
10
20
|
import type * as WgpuShapeModule from './wgpuShape';
|
|
@@ -50,6 +60,19 @@ function makeShapeProxy(data: Record<string, unknown> = {}, rendererData: unknow
|
|
|
50
60
|
} as unknown as RenderProxy2D;
|
|
51
61
|
}
|
|
52
62
|
|
|
63
|
+
function makeMeshPassSpy(): GPURenderPassEncoder {
|
|
64
|
+
return {
|
|
65
|
+
setPipeline: vi.fn(),
|
|
66
|
+
setBindGroup: vi.fn(),
|
|
67
|
+
setVertexBuffer: vi.fn(),
|
|
68
|
+
setIndexBuffer: vi.fn(),
|
|
69
|
+
setStencilReference: vi.fn(),
|
|
70
|
+
draw: vi.fn(),
|
|
71
|
+
drawIndexed: vi.fn(),
|
|
72
|
+
end: vi.fn(),
|
|
73
|
+
} as unknown as GPURenderPassEncoder;
|
|
74
|
+
}
|
|
75
|
+
|
|
53
76
|
describe('defaultWgpuShapeRenderer', () => {
|
|
54
77
|
it('declares BatchFormat.Quad', () => {
|
|
55
78
|
expect(defaultWgpuShapeRenderer.format).toBe(BatchFormat.Quad);
|
|
@@ -62,6 +85,83 @@ describe('defaultWgpuShapeRenderer', () => {
|
|
|
62
85
|
});
|
|
63
86
|
|
|
64
87
|
describe('drawWgpuShape', () => {
|
|
88
|
+
it('draws a solid fill and open solid stroke as GPU meshes in one shape', async () => {
|
|
89
|
+
const state = await createWgpuRenderStateForTest();
|
|
90
|
+
renderWgpuBackground(state);
|
|
91
|
+
getWgpuRenderStateRuntime(state).renderPass = makeMeshPassSpy();
|
|
92
|
+
const shape = createShape();
|
|
93
|
+
appendShapeBeginFill(shape, 0x00cc00);
|
|
94
|
+
appendShapeRectangle(shape, 8, 8, 32, 24);
|
|
95
|
+
appendShapeEndFill(shape);
|
|
96
|
+
appendShapeLineStyle(shape, 4, 0xff0000);
|
|
97
|
+
appendShapeMoveTo(shape, 8, 4);
|
|
98
|
+
appendShapeLineTo(shape, 40, 4);
|
|
99
|
+
const rendererData = defaultWgpuShapeRenderer.createData!(state, shape)!;
|
|
100
|
+
|
|
101
|
+
drawWgpuShape(state, makeShapeProxy({ commands: shape.data.commands, version: 1 }, rendererData));
|
|
102
|
+
|
|
103
|
+
const pass = getWgpuRenderStateRuntime(state).renderPass as unknown as {
|
|
104
|
+
drawIndexed: ReturnType<typeof vi.fn>;
|
|
105
|
+
};
|
|
106
|
+
expect(pass.drawIndexed).toHaveBeenCalledTimes(2);
|
|
107
|
+
expect(getWgpuRenderStateRuntime(state).quadBatchWriterCount).toBe(0);
|
|
108
|
+
submitWgpuRenderPass(state);
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
it('draws a closed solid stroke ring as one GPU mesh', async () => {
|
|
112
|
+
const state = await createWgpuRenderStateForTest();
|
|
113
|
+
renderWgpuBackground(state);
|
|
114
|
+
getWgpuRenderStateRuntime(state).renderPass = makeMeshPassSpy();
|
|
115
|
+
const shape = createShape();
|
|
116
|
+
appendShapeLineStyle(shape, 8, 0xff0000);
|
|
117
|
+
appendShapeRectangle(shape, 8, 8, 32, 24);
|
|
118
|
+
const rendererData = defaultWgpuShapeRenderer.createData!(state, shape)!;
|
|
119
|
+
|
|
120
|
+
drawWgpuShape(state, makeShapeProxy({ commands: shape.data.commands, version: 1 }, rendererData));
|
|
121
|
+
|
|
122
|
+
const pass = getWgpuRenderStateRuntime(state).renderPass as unknown as {
|
|
123
|
+
drawIndexed: ReturnType<typeof vi.fn>;
|
|
124
|
+
};
|
|
125
|
+
expect(pass.drawIndexed).toHaveBeenCalledTimes(1);
|
|
126
|
+
expect(getWgpuRenderStateRuntime(state).quadBatchWriterCount).toBe(0);
|
|
127
|
+
submitWgpuRenderPass(state);
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
it('falls back to the raster quad for a self-intersecting stroke centerline', async () => {
|
|
131
|
+
const state = await createWgpuRenderStateForTest();
|
|
132
|
+
renderWgpuBackground(state);
|
|
133
|
+
registerStandardWgpuMaterial(state);
|
|
134
|
+
const pass = makeMeshPassSpy();
|
|
135
|
+
getWgpuRenderStateRuntime(state).renderPass = pass;
|
|
136
|
+
const shape = createShape();
|
|
137
|
+
appendShapeLineStyle(shape, 8, 0xff0000);
|
|
138
|
+
appendShapePath(
|
|
139
|
+
shape,
|
|
140
|
+
[PathCommand.MOVE_TO, PathCommand.LINE_TO, PathCommand.LINE_TO, PathCommand.LINE_TO, PathCommand.CLOSE],
|
|
141
|
+
[8, 8, 40, 40, 8, 40, 40, 8],
|
|
142
|
+
'nonZero',
|
|
143
|
+
);
|
|
144
|
+
const rendererData = defaultWgpuShapeRenderer.createData!(state, shape)!;
|
|
145
|
+
const proxy = makeShapeProxy({ commands: shape.data.commands, version: 1 }, rendererData);
|
|
146
|
+
|
|
147
|
+
drawWgpuShape(state, proxy);
|
|
148
|
+
const canvas = (rendererData as unknown as { canvas: HTMLCanvasElement }).canvas;
|
|
149
|
+
let canvasWidth = canvas.width;
|
|
150
|
+
let canvasHeight = canvas.height;
|
|
151
|
+
const setWidth = vi.fn((value: number) => (canvasWidth = value));
|
|
152
|
+
const setHeight = vi.fn((value: number) => (canvasHeight = value));
|
|
153
|
+
Object.defineProperty(canvas, 'width', { configurable: true, get: () => canvasWidth, set: setWidth });
|
|
154
|
+
Object.defineProperty(canvas, 'height', { configurable: true, get: () => canvasHeight, set: setHeight });
|
|
155
|
+
(proxy.source as unknown as { data: { version: number } }).data.version = 2;
|
|
156
|
+
drawWgpuShape(state, proxy);
|
|
157
|
+
|
|
158
|
+
expect(pass.drawIndexed).not.toHaveBeenCalled();
|
|
159
|
+
expect(getWgpuRenderStateRuntime(state).quadBatchWriterCount).toBe(2);
|
|
160
|
+
expect(setWidth).not.toHaveBeenCalled();
|
|
161
|
+
expect(setHeight).not.toHaveBeenCalled();
|
|
162
|
+
submitWgpuRenderPass(state);
|
|
163
|
+
});
|
|
164
|
+
|
|
65
165
|
it('returns early without writing to batch when commands are empty', async () => {
|
|
66
166
|
const state = await createWgpuRenderStateForTest();
|
|
67
167
|
renderWgpuBackground(state);
|
|
@@ -20,12 +20,12 @@ const TRIANGLE: WgpuShapeMesh = {
|
|
|
20
20
|
|
|
21
21
|
function makeBuffers(): WgpuShapeMeshBuffers {
|
|
22
22
|
return {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
vertexBuffers: [],
|
|
24
|
+
vertexCapacities: [],
|
|
25
|
+
indexBuffers: [],
|
|
26
|
+
indexCapacities: [],
|
|
27
|
+
uniformBuffers: [],
|
|
28
|
+
bindGroups: [],
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
|
|
@@ -68,6 +68,20 @@ describe('drawWgpuShapeMeshes', () => {
|
|
|
68
68
|
expect(pass.drawIndexed).toHaveBeenCalledWith(3);
|
|
69
69
|
});
|
|
70
70
|
|
|
71
|
+
it('retains distinct GPU storage for every mesh recorded before submit', async () => {
|
|
72
|
+
const state = await makeState();
|
|
73
|
+
const buffers = makeBuffers();
|
|
74
|
+
|
|
75
|
+
drawWgpuShapeMeshes(state, makeProxy(), [TRIANGLE, { ...TRIANGLE, color: 0x0080ff }], buffers);
|
|
76
|
+
|
|
77
|
+
expect(buffers.vertexBuffers).toHaveLength(2);
|
|
78
|
+
expect(buffers.indexBuffers).toHaveLength(2);
|
|
79
|
+
expect(buffers.uniformBuffers).toHaveLength(2);
|
|
80
|
+
expect(buffers.vertexBuffers[0]).not.toBe(buffers.vertexBuffers[1]);
|
|
81
|
+
expect(buffers.indexBuffers[0]).not.toBe(buffers.indexBuffers[1]);
|
|
82
|
+
expect(buffers.uniformBuffers[0]).not.toBe(buffers.uniformBuffers[1]);
|
|
83
|
+
});
|
|
84
|
+
|
|
71
85
|
it('retires grown geometry buffers until the recorded frame is submitted', async () => {
|
|
72
86
|
const state = await makeState();
|
|
73
87
|
const buffers = makeBuffers();
|
|
@@ -83,7 +97,8 @@ describe('drawWgpuShapeMeshes', () => {
|
|
|
83
97
|
indices: new Uint16Array([0, 1, 2, 1, 3, 2]),
|
|
84
98
|
};
|
|
85
99
|
|
|
86
|
-
drawWgpuShapeMeshes(state, makeProxy(), [TRIANGLE
|
|
100
|
+
drawWgpuShapeMeshes(state, makeProxy(), [TRIANGLE], buffers);
|
|
101
|
+
drawWgpuShapeMeshes(state, makeProxy(), [larger], buffers);
|
|
87
102
|
|
|
88
103
|
const retired = getWgpuRenderStateRuntime(state).retiredBuffers!;
|
|
89
104
|
expect(retired).toHaveLength(2);
|
|
@@ -132,7 +147,7 @@ describe('drawWgpuShapeMeshes', () => {
|
|
|
132
147
|
|
|
133
148
|
drawWgpuShapeMeshes(state, makeProxy(createMatrix(), 0.5), [{ ...TRIANGLE, color: 0xffffff }], buffers);
|
|
134
149
|
|
|
135
|
-
const uniformData = writes.get(buffers.
|
|
150
|
+
const uniformData = writes.get(buffers.uniformBuffers[0]);
|
|
136
151
|
expect(uniformData).toBeDefined();
|
|
137
152
|
// Color occupies floats 12..15 (after the mat3x3f columns): premultiplied (0.5, 0.5, 0.5, 0.5).
|
|
138
153
|
const color = uniformData!.slice(12, 16);
|
package/src/wgpuSprite.test.ts
CHANGED
|
@@ -14,6 +14,7 @@ beforeAll(() => installWgpuMock());
|
|
|
14
14
|
describe('defaultWgpuSpriteRenderer', () => {
|
|
15
15
|
it('has createData and submit functions', () => {
|
|
16
16
|
expect(typeof defaultWgpuSpriteRenderer.createData).toBe('function');
|
|
17
|
+
expect(typeof defaultWgpuSpriteRenderer.isDirty).toBe('function');
|
|
17
18
|
expect(defaultWgpuSpriteRenderer.submit).toBe(drawWgpuSprite);
|
|
18
19
|
});
|
|
19
20
|
});
|