@flighthq/scene2d-wgpu 0.3.0-next.906.07cea63 → 0.3.1-next.1041.35b950c
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.d.ts.map +1 -1
- package/dist/enableWgpuColorAdjustmentGuards.js +15 -7
- 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 +14 -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 +46 -23
- package/dist/wgpuCache.js.map +1 -1
- package/dist/wgpuClipContours.d.ts.map +1 -1
- package/dist/wgpuClipContours.js +6 -5
- 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 +165 -68
- 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 +93 -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 +28 -12
- 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} +103 -76
- 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 +16 -10
- 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 +41 -35
- 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 +75 -67
- 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 +18 -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 +17 -14
- 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/dist/wgpuVelocity.d.ts.map +1 -1
- package/dist/wgpuVelocity.js +11 -12
- package/dist/wgpuVelocity.js.map +1 -1
- package/package.json +26 -18
- package/src/enableWgpuColorAdjustmentGuards.test.ts +17 -12
- package/src/enableWgpuStrokePathTessellation.test.ts +30 -0
- package/src/wgpuBitmapText.test.ts +2 -2
- package/src/wgpuCache.test.ts +166 -16
- package/src/wgpuColorAdjustmentMaterialFeature.test.ts +58 -51
- package/src/wgpuMeshShapeRenderer.test.ts +167 -0
- package/src/wgpuParticleEmitter2D.test.ts +35 -20
- 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 +46 -0
- package/src/wgpuSprite.test.ts +45 -10
- package/src/wgpuStandardMaterial.test.ts +3 -3
- package/src/wgpuTextLabel.test.ts +25 -9
- package/src/wgpuTilemap.test.ts +4 -4
- package/src/wgpuVelocity.test.ts +26 -4
- 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/contract.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './enableWgpuColorAdjustmentGuards';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './enableWgpuStrokePathTessellation';
|
|
3
|
+
export * from './wgpuSprite';
|
|
3
4
|
export * from './wgpuBitmapText';
|
|
4
5
|
export * from './wgpuCache';
|
|
5
6
|
export * from './wgpuClip';
|
|
@@ -12,19 +13,20 @@ export * from './wgpuParticleEmitter2D';
|
|
|
12
13
|
export * from './wgpuQuadBatch';
|
|
13
14
|
export * from './wgpuRendererData';
|
|
14
15
|
export * from './wgpuRenderStats';
|
|
15
|
-
export * from './wgpuRenderTargetNode2D';
|
|
16
16
|
export * from './wgpuRichText';
|
|
17
17
|
export * from './wgpuScale9Mapper';
|
|
18
18
|
export * from './wgpuScale9Shape';
|
|
19
|
+
export * from './wgpuMeshShapeRenderer';
|
|
20
|
+
export * from './wgpuRasterShapeRenderer';
|
|
19
21
|
export * from './wgpuShape';
|
|
22
|
+
export * from './wgpuShapeData';
|
|
20
23
|
export * from './wgpuShapeMesh';
|
|
21
24
|
export * from './wgpuSprite';
|
|
22
|
-
export * from './
|
|
23
|
-
export * from './wgpuSpriteRenderer';
|
|
25
|
+
export * from './wgpuQuadBatchWriter';
|
|
24
26
|
export * from './wgpuTextInput';
|
|
25
27
|
export * from './wgpuTextLabel';
|
|
26
28
|
export * from './wgpuTilemap';
|
|
27
29
|
export * from './wgpuVelocity';
|
|
28
|
-
export
|
|
29
|
-
export
|
|
30
|
+
export { defaultCanvasBeginTextureFill as defaultWgpuBeginTextureFill, defaultCanvasBeginFill as defaultWgpuBeginFill, defaultCanvasBeginGradientFill as defaultWgpuBeginGradientFill, defaultCanvasCubicCurveTo as defaultWgpuCubicCurveTo, defaultCanvasCurveTo as defaultWgpuCurveTo, defaultCanvasDrawCircle as defaultWgpuDrawCircle, defaultCanvasDrawEllipse as defaultWgpuDrawEllipse, defaultCanvasDrawRectangle as defaultWgpuDrawRectangle, defaultCanvasDrawRoundRectangle as defaultWgpuDrawRoundRectangle, defaultCanvasEndFill as defaultWgpuEndFill, defaultCanvasLineStyle as defaultWgpuLineStyle, defaultCanvasLineTo as defaultWgpuLineTo, defaultCanvasMoveTo as defaultWgpuMoveTo, defaultCanvasShapeCommands as defaultWgpuShapeCommands, defaultCanvasTextureShapeCommands as defaultWgpuTextureShapeCommands, registerCanvasShapeCommands as registerWgpuShapeCommands, } from '@flighthq/scene2d-canvas/contract';
|
|
31
|
+
export * from './wgpuShapeRasterizer';
|
|
30
32
|
//# sourceMappingURL=contract.d.ts.map
|
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,6BAA6B,IAAI,2BAA2B,EAC5D,sBAAsB,IAAI,oBAAoB,EAC9C,8BAA8B,IAAI,4BAA4B,EAC9D,yBAAyB,IAAI,uBAAuB,EACpD,oBAAoB,IAAI,kBAAkB,EAC1C,uBAAuB,IAAI,qBAAqB,EAChD,wBAAwB,IAAI,sBAAsB,EAClD,0BAA0B,IAAI,wBAAwB,EACtD,+BAA+B,IAAI,6BAA6B,EAChE,oBAAoB,IAAI,kBAAkB,EAC1C,sBAAsB,IAAI,oBAAoB,EAC9C,mBAAmB,IAAI,iBAAiB,EACxC,mBAAmB,IAAI,iBAAiB,EACxC,0BAA0B,IAAI,wBAAwB,EACtD,iCAAiC,IAAI,+BAA+B,EACpE,2BAA2B,IAAI,yBAAyB,GACzD,MAAM,mCAAmC,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
|
package/dist/contract.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './enableWgpuColorAdjustmentGuards';
|
|
2
|
-
export * from './
|
|
2
|
+
export * from './enableWgpuStrokePathTessellation';
|
|
3
|
+
export * from './wgpuSprite';
|
|
3
4
|
export * from './wgpuBitmapText';
|
|
4
5
|
export * from './wgpuCache';
|
|
5
6
|
export * from './wgpuClip';
|
|
@@ -12,19 +13,20 @@ export * from './wgpuParticleEmitter2D';
|
|
|
12
13
|
export * from './wgpuQuadBatch';
|
|
13
14
|
export * from './wgpuRendererData';
|
|
14
15
|
export * from './wgpuRenderStats';
|
|
15
|
-
export * from './wgpuRenderTargetNode2D';
|
|
16
16
|
export * from './wgpuRichText';
|
|
17
17
|
export * from './wgpuScale9Mapper';
|
|
18
18
|
export * from './wgpuScale9Shape';
|
|
19
|
+
export * from './wgpuMeshShapeRenderer';
|
|
20
|
+
export * from './wgpuRasterShapeRenderer';
|
|
19
21
|
export * from './wgpuShape';
|
|
22
|
+
export * from './wgpuShapeData';
|
|
20
23
|
export * from './wgpuShapeMesh';
|
|
21
24
|
export * from './wgpuSprite';
|
|
22
|
-
export * from './
|
|
23
|
-
export * from './wgpuSpriteRenderer';
|
|
25
|
+
export * from './wgpuQuadBatchWriter';
|
|
24
26
|
export * from './wgpuTextInput';
|
|
25
27
|
export * from './wgpuTextLabel';
|
|
26
28
|
export * from './wgpuTilemap';
|
|
27
29
|
export * from './wgpuVelocity';
|
|
28
|
-
export
|
|
29
|
-
export
|
|
30
|
+
export { defaultCanvasBeginTextureFill as defaultWgpuBeginTextureFill, defaultCanvasBeginFill as defaultWgpuBeginFill, defaultCanvasBeginGradientFill as defaultWgpuBeginGradientFill, defaultCanvasCubicCurveTo as defaultWgpuCubicCurveTo, defaultCanvasCurveTo as defaultWgpuCurveTo, defaultCanvasDrawCircle as defaultWgpuDrawCircle, defaultCanvasDrawEllipse as defaultWgpuDrawEllipse, defaultCanvasDrawRectangle as defaultWgpuDrawRectangle, defaultCanvasDrawRoundRectangle as defaultWgpuDrawRoundRectangle, defaultCanvasEndFill as defaultWgpuEndFill, defaultCanvasLineStyle as defaultWgpuLineStyle, defaultCanvasLineTo as defaultWgpuLineTo, defaultCanvasMoveTo as defaultWgpuMoveTo, defaultCanvasShapeCommands as defaultWgpuShapeCommands, defaultCanvasTextureShapeCommands as defaultWgpuTextureShapeCommands, registerCanvasShapeCommands as registerWgpuShapeCommands, } from '@flighthq/scene2d-canvas/contract';
|
|
31
|
+
export * from './wgpuShapeRasterizer';
|
|
30
32
|
//# sourceMappingURL=contract.js.map
|
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sCAAsC,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,6BAA6B,IAAI,2BAA2B,EAC5D,sBAAsB,IAAI,oBAAoB,EAC9C,8BAA8B,IAAI,4BAA4B,EAC9D,yBAAyB,IAAI,uBAAuB,EACpD,oBAAoB,IAAI,kBAAkB,EAC1C,uBAAuB,IAAI,qBAAqB,EAChD,wBAAwB,IAAI,sBAAsB,EAClD,0BAA0B,IAAI,wBAAwB,EACtD,+BAA+B,IAAI,6BAA6B,EAChE,oBAAoB,IAAI,kBAAkB,EAC1C,sBAAsB,IAAI,oBAAoB,EAC9C,mBAAmB,IAAI,iBAAiB,EACxC,mBAAmB,IAAI,iBAAiB,EACxC,0BAA0B,IAAI,wBAAwB,EACtD,iCAAiC,IAAI,+BAA+B,EACpE,2BAA2B,IAAI,yBAAyB,GACzD,MAAM,mCAAmC,CAAC;AAC3C,cAAc,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableWgpuColorAdjustmentGuards.d.ts","sourceRoot":"","sources":["../src/enableWgpuColorAdjustmentGuards.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enableWgpuColorAdjustmentGuards.d.ts","sourceRoot":"","sources":["../src/enableWgpuColorAdjustmentGuards.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAIhE,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAEnF;AAOD,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAU5E"}
|
|
@@ -1,21 +1,29 @@
|
|
|
1
1
|
import { logOnce } from '@flighthq/log/contract';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { createSlotTable } from '@flighthq/registry/contract';
|
|
3
|
+
import { getWgpuColorAdjustmentMaterialFeatureGuard, getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
4
|
+
import { LogLevel, RegistryEntryState } from '@flighthq/types/contract';
|
|
4
5
|
// Returns whether color-adjustment guards are installed on `state` (enableWgpuColorAdjustmentGuards).
|
|
5
6
|
export function areWgpuColorAdjustmentGuardsEnabled(state) {
|
|
6
|
-
return
|
|
7
|
+
return getWgpuColorAdjustmentMaterialFeatureGuard(state) != null;
|
|
7
8
|
}
|
|
8
9
|
// Installs the shakeable color-adjustment guard on `state`: when a node carries a color adjustment but
|
|
9
|
-
// registerWgpuColorAdjustmentMaterialFeature was never called,
|
|
10
|
-
// through its
|
|
10
|
+
// registerWgpuColorAdjustmentMaterialFeature was never called, recordWgpuQuadBatchColorScaleBias reaches this guard
|
|
11
|
+
// through its optional persistent registry slot and warns once (the tint is skipped, drawn untinted — the sentinel
|
|
11
12
|
// behavior, never a throw). Not calling this — the production default — costs the batch nothing, since
|
|
12
13
|
// the message and @flighthq/log dependency live only in this separately-imported module. Idempotent.
|
|
13
14
|
export function enableWgpuColorAdjustmentGuards(state) {
|
|
14
|
-
getWgpuRenderStateRuntime(state)
|
|
15
|
+
const runtime = getWgpuRenderStateRuntime(state);
|
|
16
|
+
const table = runtime.registries.colorAdjustmentFeatureGuard ?? createSlotTable('WgpuColorAdjustmentFeatureGuard', 'Disabled');
|
|
17
|
+
if (table.entry?.state !== RegistryEntryState.Bound || table.entry.value !== warnWgpuColorAdjustmentNotEnabled) {
|
|
18
|
+
runtime.registries.colorAdjustmentFeatureGuard = {
|
|
19
|
+
...table,
|
|
20
|
+
entry: { state: RegistryEntryState.Bound, value: warnWgpuColorAdjustmentNotEnabled },
|
|
21
|
+
};
|
|
22
|
+
}
|
|
15
23
|
}
|
|
16
24
|
function warnWgpuColorAdjustmentNotEnabled() {
|
|
17
25
|
logOnce('scene2d-wgpu:color-adjustment-not-enabled', LogLevel.Warn, {
|
|
18
|
-
message: '
|
|
26
|
+
message: 'recordWgpuQuadBatchColorScaleBias: color adjustment present but WGPU color adjustment not enabled — call registerWgpuColorAdjustmentMaterialFeature(state)',
|
|
19
27
|
}, 'scene2d-wgpu');
|
|
20
28
|
}
|
|
21
29
|
//# sourceMappingURL=enableWgpuColorAdjustmentGuards.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableWgpuColorAdjustmentGuards.js","sourceRoot":"","sources":["../src/enableWgpuColorAdjustmentGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"enableWgpuColorAdjustmentGuards.js","sourceRoot":"","sources":["../src/enableWgpuColorAdjustmentGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,0CAA0C,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEvH,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAExE,sGAAsG;AACtG,MAAM,UAAU,mCAAmC,CAAC,KAAsB;IACxE,OAAO,0CAA0C,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AACnE,CAAC;AAED,uGAAuG;AACvG,oHAAoH;AACpH,mHAAmH;AACnH,uGAAuG;AACvG,qGAAqG;AACrG,MAAM,UAAU,+BAA+B,CAAC,KAAsB;IACpE,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,KAAK,GACT,OAAO,CAAC,UAAU,CAAC,2BAA2B,IAAI,eAAe,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAC;IACnH,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,KAAK,kBAAkB,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,iCAAiC,EAAE,CAAC;QAC/G,OAAO,CAAC,UAAU,CAAC,2BAA2B,GAAG;YAC/C,GAAG,KAAK;YACR,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,iCAAiC,EAAE;SACrF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,iCAAiC;IACxC,OAAO,CACL,2CAA2C,EAC3C,QAAQ,CAAC,IAAI,EACb;QACE,OAAO,EACL,4JAA4J;KAC/J,EACD,cAAc,CACf,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enableWgpuStrokePathTessellation.d.ts","sourceRoot":"","sources":["../src/enableWgpuStrokePathTessellation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAKhE,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAO7E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { tessellateStrokePath } from '@flighthq/path/contract';
|
|
2
|
+
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
3
|
+
import { RegistryEntryState } from '@flighthq/types/contract';
|
|
4
|
+
// Installs the closed-ring/pathology-aware stroke kernel only for states that need it. Ordinary shape
|
|
5
|
+
// bundles keep the compact open-outline mesh lane and rasterize closed strokes.
|
|
6
|
+
export function enableWgpuStrokePathTessellation(state) {
|
|
7
|
+
const runtime = getWgpuRenderStateRuntime(state);
|
|
8
|
+
const table = runtime.registries.strokeTessellator;
|
|
9
|
+
runtime.registries.strokeTessellator = {
|
|
10
|
+
...table,
|
|
11
|
+
entry: { state: RegistryEntryState.Bound, value: tessellateStrokePath },
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=enableWgpuStrokePathTessellation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enableWgpuStrokePathTessellation.js","sourceRoot":"","sources":["../src/enableWgpuStrokePathTessellation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,sGAAsG;AACtG,gFAAgF;AAChF,MAAM,UAAU,gCAAgC,CAAC,KAAsB;IACrE,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC;IACnD,OAAO,CAAC,UAAU,CAAC,iBAAiB,GAAG;QACrC,GAAG,KAAK;QACR,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,oBAAoB,EAAE;KACxE,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { createWgpuCacheState, createWgpuVelocityTarget,
|
|
1
|
+
export { createWgpuCacheState, createWgpuVelocityTarget, defaultWgpuBitmapTextRenderer, defaultWgpuMeshShapeRenderer, defaultWgpuMorphShapeRenderer, defaultWgpuNode2DVelocityWriter, defaultWgpuParticleEmitter2DRenderer, defaultWgpuParticleEmitter2DVelocityWriter, defaultWgpuQuadBatchRenderer, defaultWgpuRichTextRenderer, defaultWgpuScale9ShapeRenderer, defaultWgpuScene2DRenderer, defaultWgpuShapeCommands, defaultWgpuRasterShapeRenderer, defaultWgpuShapeRenderer, defaultWgpuSpriteRenderer, defaultWgpuTextLabelRenderer, defaultWgpuTextureShapeCommands, defaultWgpuTilemapRenderer, drawWgpuSprite, enableWgpuStrokePathTessellation, enableWgpuClipSupport, enableWgpuRenderCache, enableWgpuTextInput, refreshWgpuRenderCache, registerWgpuStandardMaterial, registerWgpuColorAdjustmentMaterialFeature, registerWgpuShapeCommands, registerWgpuVelocityWriter, renderWgpuScene2D, renderWgpuVelocity, } from './contract';
|
|
2
|
+
export { getWgpuShapeRasterizer, registerWgpuShapeRasterizer } from './wgpuShapeRasterizer';
|
|
2
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,oCAAoC,EACpC,0CAA0C,EAC1C,4BAA4B,EAC5B,2BAA2B,EAC3B,8BAA8B,EAC9B,0BAA0B,EAC1B,wBAAwB,EACxB,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,+BAA+B,EAC/B,0BAA0B,EAC1B,cAAc,EACd,gCAAgC,EAChC,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,0CAA0C,EAC1C,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { createWgpuCacheState, createWgpuVelocityTarget,
|
|
1
|
+
export { createWgpuCacheState, createWgpuVelocityTarget, defaultWgpuBitmapTextRenderer, defaultWgpuMeshShapeRenderer, defaultWgpuMorphShapeRenderer, defaultWgpuNode2DVelocityWriter, defaultWgpuParticleEmitter2DRenderer, defaultWgpuParticleEmitter2DVelocityWriter, defaultWgpuQuadBatchRenderer, defaultWgpuRichTextRenderer, defaultWgpuScale9ShapeRenderer, defaultWgpuScene2DRenderer, defaultWgpuShapeCommands, defaultWgpuRasterShapeRenderer, defaultWgpuShapeRenderer, defaultWgpuSpriteRenderer, defaultWgpuTextLabelRenderer, defaultWgpuTextureShapeCommands, defaultWgpuTilemapRenderer, drawWgpuSprite, enableWgpuStrokePathTessellation, enableWgpuClipSupport, enableWgpuRenderCache, enableWgpuTextInput, refreshWgpuRenderCache, registerWgpuStandardMaterial, registerWgpuColorAdjustmentMaterialFeature, registerWgpuShapeCommands, registerWgpuVelocityWriter, renderWgpuScene2D, renderWgpuVelocity, } from './contract';
|
|
2
|
+
export { getWgpuShapeRasterizer, registerWgpuShapeRasterizer } from './wgpuShapeRasterizer';
|
|
2
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,oCAAoC,EACpC,0CAA0C,EAC1C,4BAA4B,EAC5B,2BAA2B,EAC3B,8BAA8B,EAC9B,0BAA0B,EAC1B,wBAAwB,EACxB,8BAA8B,EAC9B,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,+BAA+B,EAC/B,0BAA0B,EAC1B,cAAc,EACd,gCAAgC,EAChC,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,0CAA0C,EAC1C,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBitmapText.d.ts","sourceRoot":"","sources":["../src/wgpuBitmapText.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuBitmapText.d.ts","sourceRoot":"","sources":["../src/wgpuBitmapText.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAIV,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAkGlC,eAAO,MAAM,6BAA6B,EAAE,cAI3C,CAAC"}
|
package/dist/wgpuBitmapText.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { getWgpuRenderStateRuntime, resolveWgpuMaterialRenderer, resolveWgpuTexture, } from '@flighthq/render-wgpu/contract';
|
|
2
|
+
import { SCENE2D_WORKING_COLOR_SPACE } from '@flighthq/render/contract';
|
|
3
3
|
import { noopRendererData } from '@flighthq/render/contract';
|
|
4
4
|
import { getNode2DRuntime } from '@flighthq/scene2d/contract';
|
|
5
|
+
import { getTextureHeight, getTextureWidth, hasTextureSource } from '@flighthq/texture/contract';
|
|
5
6
|
import { BatchFormat } from '@flighthq/types/contract';
|
|
6
|
-
import {
|
|
7
|
-
const INSTANCE_STRIDE_FLOATS =
|
|
7
|
+
import { packWgpuQuadBatchMaterialInstance, prepareWgpuQuadBatchWrite, recordWgpuQuadBatchColorScaleBias, QUAD_BATCH_INSTANCE_FLOATS, } from './wgpuQuadBatchWriter';
|
|
8
|
+
const INSTANCE_STRIDE_FLOATS = QUAD_BATCH_INSTANCE_FLOATS;
|
|
8
9
|
// Draws a BitmapText leaf on WebGPU: one batched sprite pass per glyph-atlas page. The node's resolved
|
|
9
10
|
// color adjustment folds in as a whole-node tint on every glyph (the same
|
|
10
|
-
// `
|
|
11
|
+
// `recordWgpuQuadBatchColorScaleBias` path a tinted QuadBatch uses). Mirrors `submitWgpuQuadBatch`'s
|
|
11
12
|
// vector2 inner loop, sourced from each page's own `ids`/`transforms` arrays.
|
|
12
13
|
function submitWgpuBitmapText(state, node) {
|
|
13
14
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
@@ -31,18 +32,21 @@ function submitWgpuBitmapText(state, node) {
|
|
|
31
32
|
const alpha = node.alpha;
|
|
32
33
|
for (const page of pages) {
|
|
33
34
|
const atlas = page.atlas;
|
|
34
|
-
const
|
|
35
|
-
if (
|
|
35
|
+
const texture = atlas.texture;
|
|
36
|
+
if (texture === null || !hasTextureSource(texture) || page.instanceCount === 0)
|
|
36
37
|
continue;
|
|
37
|
-
|
|
38
|
+
const textureEntry = resolveWgpuTexture(state, texture, true, SCENE2D_WORKING_COLOR_SPACE);
|
|
39
|
+
if (textureEntry === null)
|
|
40
|
+
continue;
|
|
41
|
+
// prepareWgpuQuadBatchWrite may flush the prior page's batch (each page binds a different image),
|
|
38
42
|
// so read the running instance count AFTER it so material/color-adjustment indices align with `base`.
|
|
39
|
-
const base =
|
|
40
|
-
const startCount = runtime.
|
|
43
|
+
const base = prepareWgpuQuadBatchWrite(state, textureEntry, texture.sampler, node.blendMode, material, materialRenderer, page.instanceCount);
|
|
44
|
+
const startCount = runtime.quadBatchWriterCount;
|
|
41
45
|
const regions = atlas.regions;
|
|
42
46
|
const numRegions = regions.length;
|
|
43
|
-
const iw = 1 / (
|
|
44
|
-
const ih = 1 / (
|
|
45
|
-
const instanceData = runtime.
|
|
47
|
+
const iw = 1 / Math.max(1, getTextureWidth(texture));
|
|
48
|
+
const ih = 1 / Math.max(1, getTextureHeight(texture));
|
|
49
|
+
const instanceData = runtime.quadBatchWriterInstanceData;
|
|
46
50
|
const ids = page.ids;
|
|
47
51
|
const transforms = page.transforms;
|
|
48
52
|
let writeBase = base;
|
|
@@ -69,12 +73,12 @@ function submitWgpuBitmapText(state, node) {
|
|
|
69
73
|
instanceData[writeBase + 10] = (region.x + region.width) * iw;
|
|
70
74
|
instanceData[writeBase + 11] = (region.y + region.height) * ih;
|
|
71
75
|
instanceData[writeBase + 12] = alpha;
|
|
72
|
-
|
|
73
|
-
|
|
76
|
+
packWgpuQuadBatchMaterialInstance(state, nodeMaterialData, startCount + drawCount);
|
|
77
|
+
recordWgpuQuadBatchColorScaleBias(state, nodeColorScaleBias, startCount + drawCount);
|
|
74
78
|
writeBase += INSTANCE_STRIDE_FLOATS;
|
|
75
79
|
drawCount++;
|
|
76
80
|
}
|
|
77
|
-
runtime.
|
|
81
|
+
runtime.quadBatchWriterCount += drawCount;
|
|
78
82
|
}
|
|
79
83
|
}
|
|
80
84
|
export const defaultWgpuBitmapTextRenderer = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBitmapText.js","sourceRoot":"","sources":["../src/wgpuBitmapText.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"wgpuBitmapText.js","sourceRoot":"","sources":["../src/wgpuBitmapText.ts"],"names":[],"mappings":"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"}
|
package/dist/wgpuCache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuCache.d.ts","sourceRoot":"","sources":["../src/wgpuCache.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EACV,MAAM,EACN,eAAe,EAEf,WAAW,EACX,yBAAyB,EAEzB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAMlC;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"wgpuCache.d.ts","sourceRoot":"","sources":["../src/wgpuCache.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EACV,MAAM,EACN,eAAe,EAEf,WAAW,EACX,yBAAyB,EAEzB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAMlC;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,eAAe,GAAG,eAAe,CA6GlF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAElE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,gBAAgB,CAUlB;AAID,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,CAErF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,GAAG,gBAAgB,GAAG,IAAI,CAE5G;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC5C,OAAO,CAuET;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAOvF;AA0BD,eAAO,MAAM,8BAA8B,EAAE,eAG5C,CAAC"}
|
package/dist/wgpuCache.js
CHANGED
|
@@ -5,7 +5,7 @@ import { beginWgpuFrame, beginWgpuRenderPass, createWgpuRenderTarget, destroyWgp
|
|
|
5
5
|
import { computeScene2DRenderTargetTransform, computeRenderCacheTransform, computeRenderTargetSize, copyAllRenderersFromRenderState, createRenderState, getRenderProxyCache, noopRendererData, prepareScene2DRender, registerRenderCacheRenderer, } from '@flighthq/render/contract';
|
|
6
6
|
import { EntityRuntimeKey } from '@flighthq/types/contract';
|
|
7
7
|
import { renderWgpuScene2D } from './wgpuNode2D';
|
|
8
|
-
import {
|
|
8
|
+
import { flushWgpuQuadBatchWriter } from './wgpuQuadBatchWriter';
|
|
9
9
|
/**
|
|
10
10
|
* Creates an offscreen render state for baking render caches consumed by `screenState`.
|
|
11
11
|
*
|
|
@@ -25,12 +25,15 @@ export function createWgpuCacheState(screenState) {
|
|
|
25
25
|
roundPixels: screenState.roundPixels,
|
|
26
26
|
sceneGraphSyncPolicy: screenState.sceneGraphSyncPolicy,
|
|
27
27
|
});
|
|
28
|
-
// Attach the cache runtime before copying renderers: copyAllRenderersFromRenderState
|
|
29
|
-
//
|
|
28
|
+
// Attach the cache runtime before copying renderers: copyAllRenderersFromRenderState replaces the
|
|
29
|
+
// runtime's renderer-table snapshot, so the backend runtime must already be installed.
|
|
30
30
|
const cacheRuntime = createWgpuRenderStateRuntime();
|
|
31
31
|
cacheState[EntityRuntimeKey] = cacheRuntime;
|
|
32
32
|
copyAllRenderersFromRenderState(cacheState, screenState);
|
|
33
|
-
|
|
33
|
+
// Cache baking follows blend-mode support enabled on the screen after this long-lived state is
|
|
34
|
+
// created. The draw seam resolves this explicit parent unless the cache installs a local hook.
|
|
35
|
+
cacheState.applyBlendMode = null;
|
|
36
|
+
cacheRuntime.applyBlendModeParent = screenState;
|
|
34
37
|
cacheState.canvas = screenState.canvas;
|
|
35
38
|
cacheState.context = screenState.context;
|
|
36
39
|
cacheState.device = screenState.device;
|
|
@@ -61,7 +64,28 @@ export function createWgpuCacheState(screenState) {
|
|
|
61
64
|
cacheRuntime.depthStencilView = screenRuntime.depthStencilView;
|
|
62
65
|
cacheRuntime.depthStencilWidth = screenRuntime.depthStencilWidth;
|
|
63
66
|
cacheRuntime.depthStencilHeight = screenRuntime.depthStencilHeight;
|
|
64
|
-
|
|
67
|
+
// Cache rendering is a derived pipeline: it starts from the screen's persistent registration
|
|
68
|
+
// snapshots through a distinct aggregate, so later replacements on either state diverge cleanly.
|
|
69
|
+
cacheRuntime.registries = {
|
|
70
|
+
colorAdjustmentFeature: screenRuntime.registries.colorAdjustmentFeature,
|
|
71
|
+
colorAdjustmentFeatureGuard: screenRuntime.registries.colorAdjustmentFeatureGuard,
|
|
72
|
+
colorAdjustments: screenRuntime.registries.colorAdjustments,
|
|
73
|
+
colorAdjustmentUnsupportedGuard: screenRuntime.registries.colorAdjustmentUnsupportedGuard,
|
|
74
|
+
compressedTextureDecoder: screenRuntime.registries.compressedTextureDecoder,
|
|
75
|
+
compressedTextureUpload: screenRuntime.registries.compressedTextureUpload,
|
|
76
|
+
customMaterialShaders: screenRuntime.registries.customMaterialShaders,
|
|
77
|
+
materialRenderers: screenRuntime.registries.materialRenderers,
|
|
78
|
+
meshMaterialRenderers: screenRuntime.registries.meshMaterialRenderers,
|
|
79
|
+
modifierSnippets: screenRuntime.registries.modifierSnippets,
|
|
80
|
+
modifierSnippetRevision: screenRuntime.registries.modifierSnippetRevision,
|
|
81
|
+
renderEffects: screenRuntime.registries.renderEffects,
|
|
82
|
+
renderers: cacheRuntime.registries.renderers,
|
|
83
|
+
renderRootGuard: screenRuntime.registries.renderRootGuard,
|
|
84
|
+
shapeRasterizer: screenRuntime.registries.shapeRasterizer,
|
|
85
|
+
strokeTessellator: screenRuntime.registries.strokeTessellator,
|
|
86
|
+
textureResolvers: screenRuntime.registries.textureResolvers,
|
|
87
|
+
velocityWriters: screenRuntime.registries.velocityWriters,
|
|
88
|
+
};
|
|
65
89
|
cacheRuntime.uniformOffset = 0;
|
|
66
90
|
cacheRuntime.currentBlendMode = null;
|
|
67
91
|
cacheRuntime.currentMaskDepth = 0;
|
|
@@ -72,23 +96,22 @@ export function createWgpuCacheState(screenState) {
|
|
|
72
96
|
cacheRuntime.clipForms = [];
|
|
73
97
|
// The flat-color shape-fill pipelines can be lazily rebuilt against the (shared) device on first use.
|
|
74
98
|
cacheRuntime.shapeMeshPipelines = undefined;
|
|
75
|
-
cacheRuntime.
|
|
76
|
-
cacheRuntime.
|
|
77
|
-
cacheRuntime.
|
|
78
|
-
cacheRuntime.
|
|
79
|
-
cacheRuntime.
|
|
80
|
-
cacheRuntime.
|
|
81
|
-
cacheRuntime.
|
|
82
|
-
cacheRuntime.
|
|
83
|
-
cacheRuntime.
|
|
84
|
-
|
|
85
|
-
//
|
|
86
|
-
cacheRuntime
|
|
87
|
-
cacheRuntime.wgpuColorAdjustmentMaterialFeatureGuard = screenRuntime.wgpuColorAdjustmentMaterialFeatureGuard;
|
|
99
|
+
cacheRuntime.quadBatchWriterBlendMode = null;
|
|
100
|
+
cacheRuntime.quadBatchWriterMaterial = null;
|
|
101
|
+
cacheRuntime.quadBatchWriterMaterialRenderer = null;
|
|
102
|
+
cacheRuntime.quadBatchWriterMaterialFloats = 0;
|
|
103
|
+
cacheRuntime.quadBatchWriterCount = 0;
|
|
104
|
+
cacheRuntime.quadBatchWriterInstanceData = new Float32Array(0);
|
|
105
|
+
cacheRuntime.quadBatchWriterMaterialData = new Float32Array(0);
|
|
106
|
+
cacheRuntime.quadBatchWriterTexture = null;
|
|
107
|
+
cacheRuntime.quadBatchWriterSampler = null;
|
|
108
|
+
cacheRuntime.quadBatchWriterSmoothing = null;
|
|
109
|
+
// The opt-in fold and diagnostic guard already propagate through their independent persistent
|
|
110
|
+
// registry snapshots above; per-batch color-adjustment data lives on cacheRuntime and grows lazily.
|
|
88
111
|
// The bake state owns its own buffer pool (its flushes record into the same frame, so they must
|
|
89
112
|
// not share slots with the screen's batch either).
|
|
90
|
-
cacheRuntime.
|
|
91
|
-
cacheRuntime.
|
|
113
|
+
cacheRuntime.quadBatchWriterBufferPool = [];
|
|
114
|
+
cacheRuntime.quadBatchWriterBufferCursor = 0;
|
|
92
115
|
cacheRuntime.maskWriteMode = false;
|
|
93
116
|
cacheRuntime.currentScissorRect = null;
|
|
94
117
|
cacheRuntime.scissorStack = [];
|
|
@@ -175,7 +198,7 @@ export function refreshWgpuRenderCache(cacheState, cache, source, options) {
|
|
|
175
198
|
multiplyMatrix(_bakeTransform, _yInvert, _renderTransform);
|
|
176
199
|
// Reclaim the bake state's buffer pool from the start of this bake; the previous bake's submit
|
|
177
200
|
// has been queued, so its slots are safe to reuse.
|
|
178
|
-
cacheRuntime.
|
|
201
|
+
cacheRuntime.quadBatchWriterBufferCursor = 0;
|
|
179
202
|
// The pass clears to transparent by default (target.clearColors is empty); the Y-inverted bake
|
|
180
203
|
// transform is a display-object draw concern, set explicitly rather than carried by the pass.
|
|
181
204
|
beginWgpuRenderPass(cacheState, target);
|
|
@@ -216,10 +239,10 @@ function drawWgpuRenderCache(state, renderProxy) {
|
|
|
216
239
|
if (target === undefined)
|
|
217
240
|
return;
|
|
218
241
|
// Drain pending batched geometry before the immediate composite quad. Like every other
|
|
219
|
-
// immediate-draw renderer (RichText
|
|
242
|
+
// immediate-draw renderer (RichText), this bypasses the quad-batch writer; without the flush the
|
|
220
243
|
// immediate quad interleaves with the un-flushed batch's instance buffer and bind-group state,
|
|
221
244
|
// corrupting the pending batch rather than merely reordering it.
|
|
222
|
-
|
|
245
|
+
flushWgpuQuadBatchWriter(state);
|
|
223
246
|
// renderProxy.transform2D already carries the cache placement transform (folded in by the
|
|
224
247
|
// adapter), so the target composites with an identity offset.
|
|
225
248
|
drawWgpuRenderTargetResult(state, renderProxy, target, _identity);
|
package/dist/wgpuCache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuCache.js","sourceRoot":"","sources":["../src/wgpuCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AACzG,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,mCAAmC,EACnC,2BAA2B,EAC3B,uBAAuB,EACvB,+BAA+B,EAC/B,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAWnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wgpuCache.js","sourceRoot":"","sources":["../src/wgpuCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuClipContours.d.ts","sourceRoot":"","sources":["../src/wgpuClipContours.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAA4B,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAsC/G,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"wgpuClipContours.d.ts","sourceRoot":"","sources":["../src/wgpuClipContours.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAA4B,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAsC/G,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAuBhE;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACxC,OAAO,EAAE,WAAW,EACpB,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC/B,IAAI,CA+BN"}
|
package/dist/wgpuClipContours.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
2
|
-
import {
|
|
1
|
+
import { getWgpuRenderStateRuntime, retireWgpuBuffer } from '@flighthq/render-wgpu/contract';
|
|
2
|
+
import { flushWgpuQuadBatchWriter } from './wgpuQuadBatchWriter';
|
|
3
3
|
// Wgpu contour clip via stencil nesting — the Wgpu counterpart to webglClipContours. A path
|
|
4
4
|
// ClipRegion is realized by stamping its covered pixels into the stencil buffer, then content draws in
|
|
5
5
|
// the existing 'masked' stencil mode (compare equal, reference = currentMaskDepth). Crisp at any zoom:
|
|
@@ -33,7 +33,7 @@ struct ClipUniforms { matrix : mat3x3f }
|
|
|
33
33
|
const CLIP_UNIFORM_BYTES = 48;
|
|
34
34
|
export function popWgpuClipContours(state) {
|
|
35
35
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
36
|
-
|
|
36
|
+
flushWgpuQuadBatchWriter(state);
|
|
37
37
|
const entry = runtime.clipContourStack.pop();
|
|
38
38
|
runtime.currentMaskDepth = Math.max(0, runtime.currentMaskDepth - 1);
|
|
39
39
|
const pass = runtime.renderPass;
|
|
@@ -51,12 +51,13 @@ export function popWgpuClipContours(state) {
|
|
|
51
51
|
if (entry !== undefined) {
|
|
52
52
|
// The erase draw just recorded references these buffers; the frame's submit is deferred to
|
|
53
53
|
// submitWgpuRenderPass, so defer their destruction until after that submit.
|
|
54
|
-
(
|
|
54
|
+
retireWgpuBuffer(state, entry.vertexBuffer);
|
|
55
|
+
retireWgpuBuffer(state, entry.uniformBuffer);
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
export function pushWgpuClipContours(state, contours, winding, worldTransform) {
|
|
58
59
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
59
|
-
|
|
60
|
+
flushWgpuQuadBatchWriter(state);
|
|
60
61
|
// Coverage-based; winding (even-odd vs non-zero, holes) is not yet applied — see file header.
|
|
61
62
|
void winding;
|
|
62
63
|
const device = state.device;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuClipContours.js","sourceRoot":"","sources":["../src/wgpuClipContours.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"wgpuClipContours.js","sourceRoot":"","sources":["../src/wgpuClipContours.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { getWgpuRenderStateRuntime } from '@flighthq/render-wgpu/contract';
|
|
2
|
-
import {
|
|
2
|
+
import { flushWgpuQuadBatchWriter } from './wgpuQuadBatchWriter';
|
|
3
3
|
export function popWgpuClipRectangle(state) {
|
|
4
4
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
5
|
-
|
|
5
|
+
flushWgpuQuadBatchWriter(state);
|
|
6
6
|
const stack = runtime.scissorStack;
|
|
7
7
|
stack.pop();
|
|
8
8
|
const previous = stack.length > 0 ? stack[stack.length - 1] : null;
|
|
@@ -24,7 +24,7 @@ export function popWgpuClipRectangle(state) {
|
|
|
24
24
|
}
|
|
25
25
|
export function pushWgpuClipRectangle(state, rect, transform) {
|
|
26
26
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
27
|
-
|
|
27
|
+
flushWgpuQuadBatchWriter(state);
|
|
28
28
|
const next = intersectWgpuScissorRect(runtime.currentScissorRect ?? null, computeWgpuScissorRect(state, rect, transform));
|
|
29
29
|
runtime.currentScissorRect = next;
|
|
30
30
|
runtime.scissorStack.push(next);
|