@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
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { getWgpuBlendState, getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
2
|
+
import { enableColorAdjustments } from '@flighthq/render/contract';
|
|
3
|
+
import { getWgpuQuadBatchPreludeWGSL } from './wgpuQuadBatchWriter';
|
|
4
|
+
import { drawWgpuShapeMeshBatch } from './wgpuShapeMesh';
|
|
5
|
+
// Enables the opt-in color-adjustment accumulator and inline fold on a WebGPU render state: the fused-color-matrix
|
|
4
6
|
// scene2d the sprite/quad batch draws through so a color adjustment (and, later, other pointwise
|
|
5
7
|
// adjustments) folds into the batch as per-instance storage data at @group(3) — replicated across the
|
|
6
8
|
// batch for a whole-batch tint, or varied per instance — without ever splitting the batch. Until a
|
|
7
|
-
// state calls this, its batch renderer carries none of this module's WGSL
|
|
8
|
-
//
|
|
9
|
+
// state calls this, its render proxies stay unadjusted and the batch renderer carries none of this module's WGSL
|
|
10
|
+
// (both tree-shake out) and
|
|
11
|
+
// recordWgpuQuadBatchColorScaleBias silently skips every tint. Idempotent; safe to call per state.
|
|
9
12
|
export function registerWgpuColorAdjustmentMaterialFeature(state) {
|
|
13
|
+
enableColorAdjustments(state);
|
|
10
14
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
11
15
|
runtime.wgpuColorAdjustmentMaterialFeature = wgpuColorAdjustmentMaterialFeature;
|
|
12
|
-
if (runtime.
|
|
13
|
-
runtime.
|
|
16
|
+
if (runtime.quadBatchWriterColorScaleBiasMode === undefined)
|
|
17
|
+
runtime.quadBatchWriterColorScaleBiasMode = CT_MODE_NONE;
|
|
14
18
|
}
|
|
15
19
|
// Per-instance color-adjustment data (8 floats = 4 scale + 4 bias). Wgpu carries every tint
|
|
16
20
|
// through the per-instance storage buffer, so a whole-batch (uniform) tint is the same value on each
|
|
17
21
|
// instance — there is no separate hardware-uniform path.
|
|
18
22
|
const COLOR_SCALE_BIAS_FLOATS = 8;
|
|
19
23
|
const COLOR_MATRIX_FLOATS = 20;
|
|
20
|
-
// Color-adjustment fold modes for the active
|
|
24
|
+
// Color-adjustment fold modes for the active quad-batch writer. NONE keeps the base module; UNIFORM defers
|
|
21
25
|
// per-instance fill while one tint covers the whole batch; PER_INSTANCE packs a tint per instance.
|
|
22
26
|
const CT_MODE_NONE = 0;
|
|
23
27
|
const CT_MODE_UNIFORM = 1;
|
|
@@ -47,7 +51,7 @@ fn applyFlightColorMatrix(
|
|
|
47
51
|
// Folds instance `instanceIndex`'s effective color adjustment into the active batch. See the fold-mode
|
|
48
52
|
// constants for the promotion rules. `colorScaleBias` is null for an untinted instance.
|
|
49
53
|
function recordWgpuColorAdjustment(runtime, colorScaleBias, instanceIndex) {
|
|
50
|
-
const mode = runtime.
|
|
54
|
+
const mode = runtime.quadBatchWriterColorScaleBiasMode ?? CT_MODE_NONE;
|
|
51
55
|
const tint = colorScaleBias ?? null;
|
|
52
56
|
if (mode === CT_MODE_MATRIX) {
|
|
53
57
|
writeWgpuColorMatrixInstance(runtime, tint, instanceIndex);
|
|
@@ -57,42 +61,42 @@ function recordWgpuColorAdjustment(runtime, colorScaleBias, instanceIndex) {
|
|
|
57
61
|
if (tint === null)
|
|
58
62
|
return;
|
|
59
63
|
if (instanceIndex === 0) {
|
|
60
|
-
runtime.
|
|
61
|
-
runtime.
|
|
64
|
+
runtime.quadBatchWriterColorScaleBiasMode = CT_MODE_UNIFORM;
|
|
65
|
+
runtime.quadBatchWriterUniformColorScaleBias = tint;
|
|
62
66
|
return;
|
|
63
67
|
}
|
|
64
68
|
if (isColorMatrixData(tint)) {
|
|
65
|
-
|
|
69
|
+
promoteWgpuQuadBatchWriterColorScaleBiasToMatrix(runtime, instanceIndex, null);
|
|
66
70
|
writeWgpuColorMatrixInstance(runtime, tint, instanceIndex);
|
|
67
71
|
return;
|
|
68
72
|
}
|
|
69
73
|
const packedTint = getPackedTint(tint);
|
|
70
74
|
if (packedTint !== null) {
|
|
71
|
-
|
|
75
|
+
promoteWgpuQuadBatchWriterColorScaleBiasToPackedTint(runtime, instanceIndex, null);
|
|
72
76
|
writeWgpuPackedTintInstance(runtime, packedTint, instanceIndex);
|
|
73
77
|
}
|
|
74
78
|
else {
|
|
75
|
-
|
|
79
|
+
promoteWgpuQuadBatchWriterColorScaleBiasToPerInstance(runtime, instanceIndex, null);
|
|
76
80
|
writeWgpuColorScaleBiasInstance(runtime, tint, instanceIndex);
|
|
77
81
|
}
|
|
78
82
|
return;
|
|
79
83
|
}
|
|
80
84
|
if (mode === CT_MODE_UNIFORM) {
|
|
81
|
-
const uniform = runtime.
|
|
85
|
+
const uniform = runtime.quadBatchWriterUniformColorScaleBias ?? null;
|
|
82
86
|
if (equalsRecordedColorScaleBias(tint, uniform))
|
|
83
87
|
return;
|
|
84
88
|
if (isColorMatrixData(tint) || (uniform !== null && isColorMatrixData(uniform))) {
|
|
85
|
-
|
|
89
|
+
promoteWgpuQuadBatchWriterColorScaleBiasToMatrix(runtime, instanceIndex, uniform);
|
|
86
90
|
writeWgpuColorMatrixInstance(runtime, tint, instanceIndex);
|
|
87
91
|
return;
|
|
88
92
|
}
|
|
89
93
|
const packedTint = getPackedTint(tint);
|
|
90
94
|
if (getPackedTint(uniform) !== null && packedTint !== null) {
|
|
91
|
-
|
|
95
|
+
promoteWgpuQuadBatchWriterColorScaleBiasToPackedTint(runtime, instanceIndex, uniform);
|
|
92
96
|
writeWgpuPackedTintInstance(runtime, packedTint, instanceIndex);
|
|
93
97
|
}
|
|
94
98
|
else {
|
|
95
|
-
|
|
99
|
+
promoteWgpuQuadBatchWriterColorScaleBiasToPerInstance(runtime, instanceIndex, uniform);
|
|
96
100
|
writeWgpuColorScaleBiasInstance(runtime, tint, instanceIndex);
|
|
97
101
|
}
|
|
98
102
|
return;
|
|
@@ -122,52 +126,52 @@ function recordWgpuColorAdjustment(runtime, colorScaleBias, instanceIndex) {
|
|
|
122
126
|
}
|
|
123
127
|
// Resolves the active batch's folded realization: replicates a whole-batch uniform tint across the
|
|
124
128
|
// batch, then returns the per-instance storage data + the folded shader module. Returns null when the
|
|
125
|
-
// batch carried no tint, so
|
|
129
|
+
// batch carried no tint, so flushWgpuQuadBatchWriter runs the lean material path. Resets the fold mode for
|
|
126
130
|
// the next batch.
|
|
127
131
|
function resolveWgpuColorAdjustmentFlush(state, count) {
|
|
128
132
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
129
|
-
const ctMode = runtime.
|
|
133
|
+
const ctMode = runtime.quadBatchWriterColorScaleBiasMode ?? CT_MODE_NONE;
|
|
130
134
|
if (ctMode === CT_MODE_NONE)
|
|
131
135
|
return null;
|
|
132
136
|
if (ctMode === CT_MODE_UNIFORM) {
|
|
133
|
-
const uniform = runtime.
|
|
137
|
+
const uniform = runtime.quadBatchWriterUniformColorScaleBias;
|
|
134
138
|
if (isColorMatrixData(uniform)) {
|
|
135
|
-
runtime.
|
|
136
|
-
|
|
139
|
+
runtime.quadBatchWriterColorScaleBiasMode = CT_MODE_MATRIX;
|
|
140
|
+
fillWgpuQuadBatchWriterUniformColorMatrix(runtime, uniform, count);
|
|
137
141
|
}
|
|
138
142
|
else {
|
|
139
143
|
const packedTint = getPackedTint(uniform);
|
|
140
144
|
if (packedTint !== null) {
|
|
141
|
-
runtime.
|
|
142
|
-
|
|
145
|
+
runtime.quadBatchWriterColorScaleBiasMode = CT_MODE_PACKED_TINT;
|
|
146
|
+
fillWgpuQuadBatchWriterUniformPackedTint(runtime, packedTint, count);
|
|
143
147
|
}
|
|
144
148
|
else {
|
|
145
|
-
runtime.
|
|
146
|
-
|
|
149
|
+
runtime.quadBatchWriterColorScaleBiasMode = CT_MODE_PER_INSTANCE;
|
|
150
|
+
fillWgpuQuadBatchWriterUniformColorScaleBias(runtime, uniform, count);
|
|
147
151
|
}
|
|
148
152
|
}
|
|
149
153
|
}
|
|
150
|
-
const resolvedMode = runtime.
|
|
151
|
-
runtime.
|
|
152
|
-
runtime.
|
|
154
|
+
const resolvedMode = runtime.quadBatchWriterColorScaleBiasMode;
|
|
155
|
+
runtime.quadBatchWriterColorScaleBiasMode = CT_MODE_NONE;
|
|
156
|
+
runtime.quadBatchWriterUniformColorScaleBias = null;
|
|
153
157
|
if (resolvedMode === CT_MODE_PACKED_TINT) {
|
|
154
158
|
return {
|
|
155
|
-
data: runtime.
|
|
159
|
+
data: runtime.quadBatchWriterColorTintData,
|
|
156
160
|
floats: 1,
|
|
157
|
-
module:
|
|
161
|
+
module: getWgpuQuadBatchWriterPackedTintModule(state),
|
|
158
162
|
};
|
|
159
163
|
}
|
|
160
164
|
if (resolvedMode === CT_MODE_MATRIX) {
|
|
161
165
|
return {
|
|
162
|
-
data: runtime.
|
|
166
|
+
data: runtime.quadBatchWriterColorMatrixData,
|
|
163
167
|
floats: COLOR_MATRIX_FLOATS,
|
|
164
|
-
module:
|
|
168
|
+
module: getWgpuQuadBatchWriterColorMatrixModule(state),
|
|
165
169
|
};
|
|
166
170
|
}
|
|
167
171
|
return {
|
|
168
|
-
data: runtime.
|
|
172
|
+
data: runtime.quadBatchWriterColorScaleBiasData,
|
|
169
173
|
floats: COLOR_SCALE_BIAS_FLOATS,
|
|
170
|
-
module:
|
|
174
|
+
module: getWgpuQuadBatchWriterColorScaleBiasModule(state),
|
|
171
175
|
};
|
|
172
176
|
}
|
|
173
177
|
// Value equality for the whole-batch uniform check: reference-equal short-circuits (every glyph of a
|
|
@@ -196,35 +200,35 @@ function equalsRecordedColorScaleBias(a, b) {
|
|
|
196
200
|
// Grows the color-adjustment data array to hold `floatsNeeded` floats, preserving already-recorded
|
|
197
201
|
// per-instance data.
|
|
198
202
|
function ensureWgpuColorScaleBiasCapacity(runtime, floatsNeeded) {
|
|
199
|
-
const existing = runtime.
|
|
203
|
+
const existing = runtime.quadBatchWriterColorScaleBiasData;
|
|
200
204
|
if (existing !== undefined && floatsNeeded <= existing.length)
|
|
201
205
|
return;
|
|
202
206
|
const newSize = Math.max(floatsNeeded, (existing?.length ?? 0) * 2, COLOR_SCALE_BIAS_FLOATS * 256);
|
|
203
207
|
const grown = new Float32Array(newSize);
|
|
204
208
|
if (existing !== undefined)
|
|
205
209
|
grown.set(existing);
|
|
206
|
-
runtime.
|
|
210
|
+
runtime.quadBatchWriterColorScaleBiasData = grown;
|
|
207
211
|
}
|
|
208
212
|
// Replicates a whole-batch uniform tint across `count` instances at flush time — Wgpu has no separate
|
|
209
213
|
// hardware-uniform tint path, so a uniform is the same value on every instance of the storage buffer.
|
|
210
|
-
function
|
|
214
|
+
function fillWgpuQuadBatchWriterUniformColorScaleBias(runtime, colorScaleBias, count) {
|
|
211
215
|
ensureWgpuColorScaleBiasCapacity(runtime, count * COLOR_SCALE_BIAS_FLOATS);
|
|
212
216
|
for (let i = 0; i < count; i++)
|
|
213
217
|
writeWgpuColorScaleBiasInstance(runtime, colorScaleBias, i);
|
|
214
218
|
}
|
|
215
|
-
function
|
|
219
|
+
function fillWgpuQuadBatchWriterUniformPackedTint(runtime, rgba, count) {
|
|
216
220
|
for (let i = 0; i < count; i++)
|
|
217
221
|
writeWgpuPackedTintInstance(runtime, rgba, i);
|
|
218
222
|
}
|
|
219
|
-
function
|
|
223
|
+
function fillWgpuQuadBatchWriterUniformColorMatrix(runtime, matrix, count) {
|
|
220
224
|
for (let i = 0; i < count; i++)
|
|
221
225
|
writeWgpuColorMatrixInstance(runtime, matrix, i);
|
|
222
226
|
}
|
|
223
|
-
// The folded per-instance color-adjustment shader module (cached per device): the base
|
|
227
|
+
// The folded per-instance color-adjustment shader module (cached per device): the base quad-batch writer
|
|
224
228
|
// prelude plus a scene2d that reads 8 per-instance floats from the material storage buffer (@group(3))
|
|
225
229
|
// and applies `color * mult + offset` in unpremultiplied space. Reused verbatim from the former
|
|
226
230
|
// color-adjustment material so premultiplied-alpha handling is unchanged.
|
|
227
|
-
function
|
|
231
|
+
function getWgpuQuadBatchWriterColorScaleBiasModule(state) {
|
|
228
232
|
const cached = _colorScaleBiasModules.get(state.device);
|
|
229
233
|
if (cached !== undefined)
|
|
230
234
|
return cached;
|
|
@@ -234,7 +238,7 @@ function getWgpuSpriteBatchColorScaleBiasModule(state) {
|
|
|
234
238
|
_colorScaleBiasModules.set(state.device, module);
|
|
235
239
|
return module;
|
|
236
240
|
}
|
|
237
|
-
function
|
|
241
|
+
function getWgpuQuadBatchWriterPackedTintModule(state) {
|
|
238
242
|
const cached = _packedTintModules.get(state.device);
|
|
239
243
|
if (cached !== undefined)
|
|
240
244
|
return cached;
|
|
@@ -244,7 +248,7 @@ function getWgpuSpriteBatchPackedTintModule(state) {
|
|
|
244
248
|
_packedTintModules.set(state.device, module);
|
|
245
249
|
return module;
|
|
246
250
|
}
|
|
247
|
-
function
|
|
251
|
+
function getWgpuQuadBatchWriterColorMatrixModule(state) {
|
|
248
252
|
const cached = _colorMatrixModules.get(state.device);
|
|
249
253
|
if (cached !== undefined)
|
|
250
254
|
return cached;
|
|
@@ -256,36 +260,36 @@ function getWgpuSpriteBatchColorMatrixModule(state) {
|
|
|
256
260
|
}
|
|
257
261
|
// Switches the batch to per-instance mode and back-fills every already-recorded instance
|
|
258
262
|
// [0, instanceCount) with `fill` (a prior uniform value, or null → identity).
|
|
259
|
-
function
|
|
260
|
-
runtime.
|
|
263
|
+
function promoteWgpuQuadBatchWriterColorScaleBiasToPerInstance(runtime, instanceCount, fill) {
|
|
264
|
+
runtime.quadBatchWriterColorScaleBiasMode = CT_MODE_PER_INSTANCE;
|
|
261
265
|
for (let i = 0; i < instanceCount; i++)
|
|
262
266
|
writeWgpuColorScaleBiasInstance(runtime, fill, i);
|
|
263
267
|
}
|
|
264
|
-
function
|
|
265
|
-
runtime.
|
|
268
|
+
function promoteWgpuQuadBatchWriterColorScaleBiasToPackedTint(runtime, instanceCount, fill) {
|
|
269
|
+
runtime.quadBatchWriterColorScaleBiasMode = CT_MODE_PACKED_TINT;
|
|
266
270
|
for (let i = 0; i < instanceCount; i++)
|
|
267
271
|
writeWgpuPackedTintInstance(runtime, getPackedTint(fill), i);
|
|
268
272
|
}
|
|
269
273
|
function promoteWgpuPackedTintToColorScaleBias(runtime, instanceCount) {
|
|
270
|
-
runtime.
|
|
271
|
-
const packed = runtime.
|
|
274
|
+
runtime.quadBatchWriterColorScaleBiasMode = CT_MODE_PER_INSTANCE;
|
|
275
|
+
const packed = runtime.quadBatchWriterColorTintData;
|
|
272
276
|
for (let i = 0; i < instanceCount; i++)
|
|
273
277
|
writeWgpuNativePackedTintAsColorScaleBias(runtime, packed[i], i);
|
|
274
278
|
}
|
|
275
|
-
function
|
|
276
|
-
runtime.
|
|
279
|
+
function promoteWgpuQuadBatchWriterColorScaleBiasToMatrix(runtime, instanceCount, fill) {
|
|
280
|
+
runtime.quadBatchWriterColorScaleBiasMode = CT_MODE_MATRIX;
|
|
277
281
|
for (let i = 0; i < instanceCount; i++)
|
|
278
282
|
writeWgpuColorMatrixInstance(runtime, fill, i);
|
|
279
283
|
}
|
|
280
284
|
function promoteWgpuPackedTintToColorMatrix(runtime, instanceCount) {
|
|
281
|
-
const packed = runtime.
|
|
282
|
-
runtime.
|
|
285
|
+
const packed = runtime.quadBatchWriterColorTintData;
|
|
286
|
+
runtime.quadBatchWriterColorScaleBiasMode = CT_MODE_MATRIX;
|
|
283
287
|
for (let i = 0; i < instanceCount; i++)
|
|
284
288
|
writeWgpuNativePackedTintAsColorMatrix(runtime, packed[i], i);
|
|
285
289
|
}
|
|
286
290
|
function promoteWgpuColorScaleBiasToMatrix(runtime, instanceCount) {
|
|
287
|
-
const affine = runtime.
|
|
288
|
-
runtime.
|
|
291
|
+
const affine = runtime.quadBatchWriterColorScaleBiasData;
|
|
292
|
+
runtime.quadBatchWriterColorScaleBiasMode = CT_MODE_MATRIX;
|
|
289
293
|
for (let i = 0; i < instanceCount; i++) {
|
|
290
294
|
writeWgpuAffineValuesAsColorMatrix(runtime, affine, i * COLOR_SCALE_BIAS_FLOATS, i);
|
|
291
295
|
}
|
|
@@ -295,7 +299,7 @@ function promoteWgpuColorScaleBiasToMatrix(runtime, instanceCount) {
|
|
|
295
299
|
function writeWgpuColorScaleBiasInstance(runtime, colorScaleBias, instanceIndex) {
|
|
296
300
|
const offset = instanceIndex * COLOR_SCALE_BIAS_FLOATS;
|
|
297
301
|
ensureWgpuColorScaleBiasCapacity(runtime, offset + COLOR_SCALE_BIAS_FLOATS);
|
|
298
|
-
const out = runtime.
|
|
302
|
+
const out = runtime.quadBatchWriterColorScaleBiasData;
|
|
299
303
|
if (colorScaleBias !== null) {
|
|
300
304
|
for (let channel = 0; channel < 4; channel++) {
|
|
301
305
|
out[offset + channel] = getColorScale(colorScaleBias, channel);
|
|
@@ -315,15 +319,15 @@ function writeWgpuColorScaleBiasInstance(runtime, colorScaleBias, instanceIndex)
|
|
|
315
319
|
}
|
|
316
320
|
function writeWgpuColorMatrixInstance(runtime, adjustment, instanceIndex) {
|
|
317
321
|
const offset = instanceIndex * COLOR_MATRIX_FLOATS;
|
|
318
|
-
let out = runtime.
|
|
322
|
+
let out = runtime.quadBatchWriterColorMatrixData;
|
|
319
323
|
if (out === undefined) {
|
|
320
324
|
out = new Float32Array(COLOR_MATRIX_FLOATS * 256);
|
|
321
|
-
runtime.
|
|
325
|
+
runtime.quadBatchWriterColorMatrixData = out;
|
|
322
326
|
}
|
|
323
327
|
else if (offset + COLOR_MATRIX_FLOATS > out.length) {
|
|
324
328
|
const grown = new Float32Array(Math.max(offset + COLOR_MATRIX_FLOATS, out.length * 2));
|
|
325
329
|
grown.set(out);
|
|
326
|
-
runtime.
|
|
330
|
+
runtime.quadBatchWriterColorMatrixData = grown;
|
|
327
331
|
out = grown;
|
|
328
332
|
}
|
|
329
333
|
if (adjustment === null) {
|
|
@@ -354,7 +358,7 @@ function writeIdentityColorMatrix(out, offset) {
|
|
|
354
358
|
}
|
|
355
359
|
function writeWgpuNativePackedTintAsColorMatrix(runtime, nativeWord, instanceIndex) {
|
|
356
360
|
writeWgpuColorMatrixInstance(runtime, null, instanceIndex);
|
|
357
|
-
const out = runtime.
|
|
361
|
+
const out = runtime.quadBatchWriterColorMatrixData;
|
|
358
362
|
const offset = instanceIndex * COLOR_MATRIX_FLOATS;
|
|
359
363
|
out[offset] = (nativeWord & 0xff) / 255;
|
|
360
364
|
out[offset + 5] = ((nativeWord >>> 8) & 0xff) / 255;
|
|
@@ -363,7 +367,7 @@ function writeWgpuNativePackedTintAsColorMatrix(runtime, nativeWord, instanceInd
|
|
|
363
367
|
}
|
|
364
368
|
function writeWgpuAffineValuesAsColorMatrix(runtime, affine, affineOffset, instanceIndex) {
|
|
365
369
|
writeWgpuColorMatrixInstance(runtime, null, instanceIndex);
|
|
366
|
-
const out = runtime.
|
|
370
|
+
const out = runtime.quadBatchWriterColorMatrixData;
|
|
367
371
|
const offset = instanceIndex * COLOR_MATRIX_FLOATS;
|
|
368
372
|
for (let channel = 0; channel < 4; channel++) {
|
|
369
373
|
out[offset + channel * 4 + channel] = affine[affineOffset + channel];
|
|
@@ -371,15 +375,15 @@ function writeWgpuAffineValuesAsColorMatrix(runtime, affine, affineOffset, insta
|
|
|
371
375
|
}
|
|
372
376
|
}
|
|
373
377
|
function writeWgpuPackedTintInstance(runtime, rgba, instanceIndex) {
|
|
374
|
-
let data = runtime.
|
|
378
|
+
let data = runtime.quadBatchWriterColorTintData;
|
|
375
379
|
if (data === undefined) {
|
|
376
380
|
data = new Uint32Array(256);
|
|
377
|
-
runtime.
|
|
381
|
+
runtime.quadBatchWriterColorTintData = data;
|
|
378
382
|
}
|
|
379
383
|
else if (instanceIndex >= data.length) {
|
|
380
384
|
const grown = new Uint32Array(Math.max(instanceIndex + 1, data.length * 2));
|
|
381
385
|
grown.set(data);
|
|
382
|
-
runtime.
|
|
386
|
+
runtime.quadBatchWriterColorTintData = grown;
|
|
383
387
|
data = grown;
|
|
384
388
|
}
|
|
385
389
|
data[instanceIndex] = rgbaToNativeByteWord(rgba);
|
|
@@ -387,7 +391,7 @@ function writeWgpuPackedTintInstance(runtime, rgba, instanceIndex) {
|
|
|
387
391
|
function writeWgpuNativePackedTintAsColorScaleBias(runtime, nativeWord, instanceIndex) {
|
|
388
392
|
const offset = instanceIndex * COLOR_SCALE_BIAS_FLOATS;
|
|
389
393
|
writeWgpuColorScaleBiasInstance(runtime, null, instanceIndex);
|
|
390
|
-
const data = runtime.
|
|
394
|
+
const data = runtime.quadBatchWriterColorScaleBiasData;
|
|
391
395
|
data[offset] = (nativeWord & 0xff) / 255;
|
|
392
396
|
data[offset + 1] = ((nativeWord >>> 8) & 0xff) / 255;
|
|
393
397
|
data[offset + 2] = ((nativeWord >>> 16) & 0xff) / 255;
|
|
@@ -450,6 +454,90 @@ function getColorBias(value, channel) {
|
|
|
450
454
|
return value.blueBias;
|
|
451
455
|
return value.alphaBias;
|
|
452
456
|
}
|
|
457
|
+
// Draws tessellated solid fills through the same opt-in scale/bias fold as quad batches. A shape has
|
|
458
|
+
// one resolved node adjustment, so the value is uploaded once in each per-mesh uniform rather than as
|
|
459
|
+
// vertex data. The source color remains premultiplied by mesh alpha × node alpha in the shared driver;
|
|
460
|
+
// the fragment shader preserves the established unpremultiply → adjust → repremultiply order.
|
|
461
|
+
function drawWgpuShapeMeshesColorScaleBias(state, renderProxy, meshes, buffers) {
|
|
462
|
+
const colorScaleBias = renderProxy.colorScaleBias;
|
|
463
|
+
const uniform = _shapeMeshColorScaleBiasUniformScratch;
|
|
464
|
+
uniform[16] = colorScaleBias.redScale;
|
|
465
|
+
uniform[17] = colorScaleBias.greenScale;
|
|
466
|
+
uniform[18] = colorScaleBias.blueScale;
|
|
467
|
+
uniform[19] = colorScaleBias.alphaScale;
|
|
468
|
+
uniform[20] = colorScaleBias.redBias;
|
|
469
|
+
uniform[21] = colorScaleBias.greenBias;
|
|
470
|
+
uniform[22] = colorScaleBias.blueBias;
|
|
471
|
+
uniform[23] = colorScaleBias.alphaBias;
|
|
472
|
+
drawWgpuShapeMeshBatch(state, renderProxy, meshes, buffers, ensureWgpuShapeMeshColorScaleBiasPipeline(state, renderProxy.blendMode), buffers.colorScaleBiasUniformBuffers, buffers.colorScaleBiasBindGroups, uniform);
|
|
473
|
+
}
|
|
474
|
+
function ensureWgpuShapeMeshColorScaleBiasPipeline(state, blendMode) {
|
|
475
|
+
let cache = _shapeMeshColorScaleBiasPipelines.get(state.device);
|
|
476
|
+
if (cache === undefined) {
|
|
477
|
+
cache = new Map();
|
|
478
|
+
_shapeMeshColorScaleBiasPipelines.set(state.device, cache);
|
|
479
|
+
}
|
|
480
|
+
const runtime = getWgpuRenderStateRuntime(state);
|
|
481
|
+
const format = runtime.currentColorFormat ?? state.format;
|
|
482
|
+
const key = `${format}|${blendMode ?? 'null'}`;
|
|
483
|
+
const existing = cache.get(key);
|
|
484
|
+
if (existing !== undefined)
|
|
485
|
+
return existing;
|
|
486
|
+
const device = state.device;
|
|
487
|
+
const module = device.createShaderModule({ code: SHAPE_MESH_COLOR_SCALE_BIAS_WGSL });
|
|
488
|
+
const bindGroupLayout = device.createBindGroupLayout({
|
|
489
|
+
entries: [{ binding: 0, visibility: GPUShaderStage.VERTEX | GPUShaderStage.FRAGMENT, buffer: { type: 'uniform' } }],
|
|
490
|
+
});
|
|
491
|
+
const layout = device.createPipelineLayout({ bindGroupLayouts: [bindGroupLayout] });
|
|
492
|
+
const pipeline = device.createRenderPipeline({
|
|
493
|
+
layout,
|
|
494
|
+
vertex: {
|
|
495
|
+
module,
|
|
496
|
+
entryPoint: 'vs_main',
|
|
497
|
+
buffers: [{ arrayStride: 8, attributes: [{ shaderLocation: 0, offset: 0, format: 'float32x2' }] }],
|
|
498
|
+
},
|
|
499
|
+
fragment: {
|
|
500
|
+
module,
|
|
501
|
+
entryPoint: 'fs_main',
|
|
502
|
+
targets: [{ format, blend: getWgpuBlendState(blendMode) }],
|
|
503
|
+
},
|
|
504
|
+
primitive: { topology: 'triangle-list', cullMode: 'none' },
|
|
505
|
+
depthStencil: {
|
|
506
|
+
format: 'depth24plus-stencil8',
|
|
507
|
+
depthWriteEnabled: false,
|
|
508
|
+
depthCompare: 'always',
|
|
509
|
+
stencilFront: { compare: 'equal', passOp: 'keep', failOp: 'keep', depthFailOp: 'keep' },
|
|
510
|
+
stencilBack: { compare: 'equal', passOp: 'keep', failOp: 'keep', depthFailOp: 'keep' },
|
|
511
|
+
stencilReadMask: 0xff,
|
|
512
|
+
stencilWriteMask: 0x00,
|
|
513
|
+
},
|
|
514
|
+
});
|
|
515
|
+
const created = { pipeline, bindGroupLayout };
|
|
516
|
+
cache.set(key, created);
|
|
517
|
+
return created;
|
|
518
|
+
}
|
|
519
|
+
const SHAPE_MESH_COLOR_SCALE_BIAS_WGSL = /* wgsl */ `
|
|
520
|
+
${WGPU_COLOR_ADJUSTMENT_FRAGMENT_CHUNK}
|
|
521
|
+
struct ShapeMeshUniforms {
|
|
522
|
+
matrix : mat3x3f,
|
|
523
|
+
color : vec4f,
|
|
524
|
+
colorScale : vec4f,
|
|
525
|
+
colorBias : vec4f,
|
|
526
|
+
}
|
|
527
|
+
@group(0) @binding(0) var<uniform> u : ShapeMeshUniforms;
|
|
528
|
+
@vertex fn vs_main(@location(0) position : vec2f) -> @builtin(position) vec4f {
|
|
529
|
+
let p = u.matrix * vec3f(position, 1.0);
|
|
530
|
+
return vec4f(p.x, p.y, 0.0, 1.0);
|
|
531
|
+
}
|
|
532
|
+
@fragment fn fs_main() -> @location(0) vec4f {
|
|
533
|
+
if (u.color.a <= 0.0) { discard; }
|
|
534
|
+
var color = vec4f(u.color.rgb / u.color.a, u.color.a);
|
|
535
|
+
color = applyFlightColorAdjustment(color, u.colorScale, u.colorBias);
|
|
536
|
+
return vec4f(color.rgb * color.a, color.a);
|
|
537
|
+
}
|
|
538
|
+
`;
|
|
539
|
+
const _shapeMeshColorScaleBiasPipelines = new WeakMap();
|
|
540
|
+
const _shapeMeshColorScaleBiasUniformScratch = new Float32Array(24);
|
|
453
541
|
const COLOR_SCALE_BIAS_WGSL = /* wgsl */ `
|
|
454
542
|
${WGPU_COLOR_ADJUSTMENT_FRAGMENT_CHUNK}
|
|
455
543
|
@group(3) @binding(0) var<storage, read> ctData : array<f32>;
|
|
@@ -566,6 +654,7 @@ const _colorMatrixModules = new WeakMap();
|
|
|
566
654
|
const wgpuColorAdjustmentMaterialFeature = {
|
|
567
655
|
fragmentShaderChunk: WGPU_COLOR_ADJUSTMENT_FRAGMENT_CHUNK,
|
|
568
656
|
matrixFragmentShaderChunk: WGPU_COLOR_MATRIX_FRAGMENT_CHUNK,
|
|
657
|
+
drawShapeMeshes: drawWgpuShapeMeshesColorScaleBias,
|
|
569
658
|
record: recordWgpuColorAdjustment,
|
|
570
659
|
resolveFlush: resolveWgpuColorAdjustmentFlush,
|
|
571
660
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuColorAdjustmentMaterialFeature.js","sourceRoot":"","sources":["../src/wgpuColorAdjustmentMaterialFeature.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wgpuColorAdjustmentMaterialFeature.js","sourceRoot":"","sources":["../src/wgpuColorAdjustmentMaterialFeature.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 drawWgpuMeshShape(state: WgpuRenderState, renderProxy: RenderProxy2D): boolean;
|
|
3
|
+
export declare const defaultWgpuMeshShapeRenderer: Scene2DRenderer;
|
|
4
|
+
//# sourceMappingURL=wgpuMeshShapeRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuMeshShapeRenderer.d.ts","sourceRoot":"","sources":["../src/wgpuMeshShapeRenderer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EAKf,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAUlC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,GAAG,OAAO,CA6C7F;AASD,eAAO,MAAM,4BAA4B,EAAE,eAQ1C,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { getNodeLocalContentRevision } from '@flighthq/node/contract';
|
|
2
|
+
import { tessellatePath } from '@flighthq/path/contract';
|
|
3
|
+
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
4
|
+
import { getShapeFillRegions, getShapeStrokeOutlineRegions, getShapeStrokeRegions } from '@flighthq/shape/contract';
|
|
5
|
+
import { BatchFormat, RenderRegistry, ShapeKind } from '@flighthq/types/contract';
|
|
6
|
+
import { createWgpuShapeData, destroyWgpuShapeData, getWgpuShapeData } from './wgpuShapeData';
|
|
7
|
+
import { drawWgpuShapeMeshes } from './wgpuShapeMesh';
|
|
8
|
+
// Draws the shape through the GPU mesh path alone, and reports whether it did. Returns false when any
|
|
9
|
+
// fill or stroke has no tessellated form — a gradient, a texture fill, or a closed stroke the active
|
|
10
|
+
// tessellator rejects — which is the signal drawWgpuShape uses to fall through to the raster strategy.
|
|
11
|
+
// Mirrors scene2d-gl/glMeshShapeRenderer.
|
|
12
|
+
export function drawWgpuMeshShape(state, renderProxy) {
|
|
13
|
+
const runtime = getWgpuRenderStateRuntime(state);
|
|
14
|
+
if (runtime.renderPass === null)
|
|
15
|
+
return false;
|
|
16
|
+
const source = renderProxy.source;
|
|
17
|
+
const { commands } = source.data;
|
|
18
|
+
if (commands.length === 0 || renderProxy.rendererData === null)
|
|
19
|
+
return false;
|
|
20
|
+
// Compact open outlines are the default. Explicitly enabling stroke-path tessellation adds hollow
|
|
21
|
+
// closed rings and pathological-geometry rejection to this state only.
|
|
22
|
+
const strokePathTessellator = runtime.strokeTessellator;
|
|
23
|
+
const regions = resolveWgpuShapeMeshRegions(commands, strokePathTessellator !== null);
|
|
24
|
+
if (regions === null || regions.length === 0)
|
|
25
|
+
return false;
|
|
26
|
+
const meshData = getWgpuShapeData(renderProxy.rendererData);
|
|
27
|
+
if (meshData === null)
|
|
28
|
+
return false;
|
|
29
|
+
const version = getNodeLocalContentRevision(source);
|
|
30
|
+
if (meshData.meshVersion !== version) {
|
|
31
|
+
const meshes = [];
|
|
32
|
+
let supported = true;
|
|
33
|
+
for (let i = 0; i < regions.length; i++) {
|
|
34
|
+
const region = regions[i];
|
|
35
|
+
const mesh = strokePathTessellator !== null && isShapeStrokeRegion(region)
|
|
36
|
+
? strokePathTessellator(region.path, region.style)
|
|
37
|
+
: tessellatePath(region.path);
|
|
38
|
+
if (mesh === null) {
|
|
39
|
+
supported = false;
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
meshes.push({
|
|
43
|
+
vertices: new Float32Array(mesh.vertices),
|
|
44
|
+
indices: new Uint16Array(mesh.indices),
|
|
45
|
+
color: region.color,
|
|
46
|
+
alpha: region.alpha,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
meshData.meshes = supported ? meshes : null;
|
|
50
|
+
meshData.meshVersion = version;
|
|
51
|
+
}
|
|
52
|
+
if (meshData.meshes === null)
|
|
53
|
+
return false;
|
|
54
|
+
drawWgpuShapeMeshes(state, renderProxy, meshData.meshes, meshData.meshBuffers);
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
// The GPU-only shape strategy: everything is tessellated, nothing is ever rasterized, and this module
|
|
58
|
+
// never references the canvas replay — so registering this renderer instead of defaultWgpuShapeRenderer
|
|
59
|
+
// leaves @flighthq/scene2d-canvas out of the bundle entirely and needs no shape commands registered.
|
|
60
|
+
//
|
|
61
|
+
// A fill with no tessellated form does not draw. That is the deliberate consequence of choosing this
|
|
62
|
+
// strategy rather than a defect, so it reports the same ShapeRasterizer miss the hybrid reports when no
|
|
63
|
+
// rasterizer is registered: the shape needs raster and this state will not do it.
|
|
64
|
+
export const defaultWgpuMeshShapeRenderer = {
|
|
65
|
+
format: BatchFormat.Quad,
|
|
66
|
+
createData: createWgpuShapeData,
|
|
67
|
+
destroyData: destroyWgpuShapeData,
|
|
68
|
+
submit(state, renderProxy) {
|
|
69
|
+
if (drawWgpuMeshShape(state, renderProxy))
|
|
70
|
+
return;
|
|
71
|
+
getWgpuRenderStateRuntime(state).registryMiss?.(RenderRegistry.ShapeRasterizer, ShapeKind);
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
// Resolves every solid fill and solid stroke into one fill-before-stroke source list. The default lane
|
|
75
|
+
// uses compact fillable open-stroke outlines; the opt-in ring lane retains styled centerlines for the
|
|
76
|
+
// heavier direct stroke tessellator.
|
|
77
|
+
function resolveWgpuShapeMeshRegions(commands, strokePathTessellatorEnabled) {
|
|
78
|
+
const fillRegions = getShapeFillRegions(commands);
|
|
79
|
+
if (fillRegions === null)
|
|
80
|
+
return null;
|
|
81
|
+
const strokeRegions = strokePathTessellatorEnabled
|
|
82
|
+
? getShapeStrokeRegions(commands)
|
|
83
|
+
: getShapeStrokeOutlineRegions(commands);
|
|
84
|
+
if (strokeRegions === null)
|
|
85
|
+
return null;
|
|
86
|
+
const regions = [...fillRegions, ...strokeRegions];
|
|
87
|
+
return regions.length > 0 ? regions : null;
|
|
88
|
+
}
|
|
89
|
+
function isShapeStrokeRegion(region) {
|
|
90
|
+
return 'style' in region;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=wgpuMeshShapeRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wgpuMeshShapeRenderer.js","sourceRoot":"","sources":["../src/wgpuMeshShapeRenderer.ts"],"names":[],"mappings":"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"}
|