@flighthq/scene2d-wgpu 0.5.0-next.1944.cd6b6e7 → 0.5.1-edge.638.d4dbd4e
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/README.md +2 -2
- package/dist/contract.d.ts +1 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +1 -0
- package/dist/contract.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/scene2dWgpuPipeline.d.ts +3 -0
- package/dist/scene2dWgpuPipeline.d.ts.map +1 -0
- package/dist/scene2dWgpuPipeline.js +38 -0
- package/dist/scene2dWgpuPipeline.js.map +1 -0
- package/dist/wgpuCache.d.ts +8 -11
- package/dist/wgpuCache.d.ts.map +1 -1
- package/dist/wgpuCache.js +57 -189
- package/dist/wgpuCache.js.map +1 -1
- package/dist/wgpuClipContours.d.ts.map +1 -1
- package/dist/wgpuClipContours.js +2 -2
- package/dist/wgpuClipContours.js.map +1 -1
- package/dist/wgpuClipRectangle.d.ts.map +1 -1
- package/dist/wgpuClipRectangle.js +3 -3
- package/dist/wgpuClipRectangle.js.map +1 -1
- package/dist/wgpuColorAdjustmentMaterialFeature.js +12 -13
- package/dist/wgpuColorAdjustmentMaterialFeature.js.map +1 -1
- package/dist/wgpuParticleEmitter2D.d.ts.map +1 -1
- package/dist/wgpuParticleEmitter2D.js +8 -8
- package/dist/wgpuParticleEmitter2D.js.map +1 -1
- package/dist/wgpuQuadBatchWriter.d.ts.map +1 -1
- package/dist/wgpuQuadBatchWriter.js +7 -7
- package/dist/wgpuQuadBatchWriter.js.map +1 -1
- package/dist/wgpuRasterShapeRenderer.d.ts.map +1 -1
- package/dist/wgpuRasterShapeRenderer.js +13 -11
- package/dist/wgpuRasterShapeRenderer.js.map +1 -1
- package/dist/wgpuRichText.d.ts +1 -1
- package/dist/wgpuRichText.d.ts.map +1 -1
- package/dist/wgpuRichText.js +45 -47
- package/dist/wgpuRichText.js.map +1 -1
- package/dist/wgpuScale9Shape.d.ts +14 -2
- package/dist/wgpuScale9Shape.d.ts.map +1 -1
- package/dist/wgpuScale9Shape.js +47 -42
- package/dist/wgpuScale9Shape.js.map +1 -1
- package/dist/wgpuShapeData.d.ts +2 -2
- package/dist/wgpuShapeData.d.ts.map +1 -1
- package/dist/wgpuShapeData.js +12 -15
- package/dist/wgpuShapeData.js.map +1 -1
- package/dist/wgpuShapeMesh.d.ts.map +1 -1
- package/dist/wgpuShapeMesh.js +2 -2
- package/dist/wgpuShapeMesh.js.map +1 -1
- package/dist/wgpuStandardMaterial.d.ts.map +1 -1
- package/dist/wgpuStandardMaterial.js +4 -4
- package/dist/wgpuStandardMaterial.js.map +1 -1
- package/dist/wgpuTextLabel.d.ts.map +1 -1
- package/dist/wgpuTextLabel.js +29 -22
- package/dist/wgpuTextLabel.js.map +1 -1
- package/package.json +19 -19
- package/src/wgpuCache.test.ts +144 -30
- package/src/wgpuColorAdjustmentMaterialFeature.test.ts +2 -1
- package/src/wgpuParticleEmitter2D.test.ts +2 -1
- package/src/wgpuQuadBatchWriter.test.ts +2 -1
- package/src/wgpuRasterShapeRenderer.test.ts +54 -1
- package/src/wgpuRichText.test.ts +118 -13
- package/src/wgpuScale9Shape.test.ts +139 -11
- package/src/wgpuShape.test.ts +40 -7
- package/src/wgpuShapeData.test.ts +75 -9
- package/src/wgpuStandardMaterial.test.ts +10 -2
- package/src/wgpuTextLabel.test.ts +92 -11
- package/src/wgpuVelocity.test.ts +6 -1
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/scene2d-wgpu`. The `
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/scene2d-wgpu@0.5.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/scene2d-wgpu@0.5.1-edge.638.d4dbd4e](https://github.com/flighthq/flight/tree/d4dbd4e347dc8be10b180c85a766ab50333dcb51/packages/scene2d-wgpu)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/d4dbd4e347dc8be10b180c85a766ab50333dcb51/LICENSE.md)
|
package/dist/contract.d.ts
CHANGED
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,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
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uBAAuB,CAAC;AACtC,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
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,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
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uBAAuB,CAAC;AACtC,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/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
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';
|
|
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, scene2dWgpuPipeline, } from './contract';
|
|
2
2
|
export { getWgpuShapeRasterizer, registerWgpuShapeRasterizer } from './wgpuShapeRasterizer';
|
|
3
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,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,
|
|
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,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
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';
|
|
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, scene2dWgpuPipeline, } from './contract';
|
|
2
2
|
export { getWgpuShapeRasterizer, registerWgpuShapeRasterizer } from './wgpuShapeRasterizer';
|
|
3
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,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,
|
|
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,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene2dWgpuPipeline.d.ts","sourceRoot":"","sources":["../src/scene2dWgpuPipeline.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAwB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAiDnF,eAAO,MAAM,mBAAmB,EAAE,YAQhC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { withRegistryTableEntry } from '@flighthq/registry/contract';
|
|
2
|
+
import { createEmptyWgpuRegistries, createWgpuPipeline } from '@flighthq/render-wgpu/contract';
|
|
3
|
+
import { BitmapTextKind, DisplayObjectKind, MorphShapeKind, ParticleEmitter2DKind, QuadBatchKind, RenderCacheKind, RichTextKind, Scale9ShapeKind, ShapeKind, SpriteKind, StandardMaterialKind, TextLabelKind, TilemapKind, } from '@flighthq/types/contract';
|
|
4
|
+
import { defaultWgpuBitmapTextRenderer } from './wgpuBitmapText';
|
|
5
|
+
import { defaultWgpuRenderCacheRenderer } from './wgpuCache';
|
|
6
|
+
import { defaultWgpuScene2DRenderer } from './wgpuNode2D';
|
|
7
|
+
import { defaultWgpuParticleEmitter2DRenderer } from './wgpuParticleEmitter2D';
|
|
8
|
+
import { defaultWgpuQuadBatchRenderer } from './wgpuQuadBatch';
|
|
9
|
+
import { defaultWgpuRichTextRenderer } from './wgpuRichText';
|
|
10
|
+
import { defaultWgpuScale9ShapeRenderer } from './wgpuScale9Shape';
|
|
11
|
+
import { defaultWgpuMorphShapeRenderer, defaultWgpuShapeRenderer } from './wgpuShape';
|
|
12
|
+
import { defaultWgpuSpriteRenderer } from './wgpuSprite';
|
|
13
|
+
import { standardWgpuMaterialRenderer } from './wgpuStandardMaterial';
|
|
14
|
+
import { defaultWgpuTextLabelRenderer } from './wgpuTextLabel';
|
|
15
|
+
import { defaultWgpuTilemapRenderer } from './wgpuTilemap';
|
|
16
|
+
function buildScene2dWgpuRenderers() {
|
|
17
|
+
let table = createEmptyWgpuRegistries().renderers;
|
|
18
|
+
table = withRegistryTableEntry(table, BitmapTextKind, defaultWgpuBitmapTextRenderer);
|
|
19
|
+
table = withRegistryTableEntry(table, DisplayObjectKind, defaultWgpuScene2DRenderer);
|
|
20
|
+
table = withRegistryTableEntry(table, MorphShapeKind, defaultWgpuMorphShapeRenderer);
|
|
21
|
+
table = withRegistryTableEntry(table, ParticleEmitter2DKind, defaultWgpuParticleEmitter2DRenderer);
|
|
22
|
+
table = withRegistryTableEntry(table, QuadBatchKind, defaultWgpuQuadBatchRenderer);
|
|
23
|
+
table = withRegistryTableEntry(table, RenderCacheKind, defaultWgpuRenderCacheRenderer);
|
|
24
|
+
table = withRegistryTableEntry(table, RichTextKind, defaultWgpuRichTextRenderer);
|
|
25
|
+
table = withRegistryTableEntry(table, Scale9ShapeKind, defaultWgpuScale9ShapeRenderer);
|
|
26
|
+
table = withRegistryTableEntry(table, ShapeKind, defaultWgpuShapeRenderer);
|
|
27
|
+
table = withRegistryTableEntry(table, SpriteKind, defaultWgpuSpriteRenderer);
|
|
28
|
+
table = withRegistryTableEntry(table, TextLabelKind, defaultWgpuTextLabelRenderer);
|
|
29
|
+
table = withRegistryTableEntry(table, TilemapKind, defaultWgpuTilemapRenderer);
|
|
30
|
+
return table;
|
|
31
|
+
}
|
|
32
|
+
const _registries = createEmptyWgpuRegistries();
|
|
33
|
+
export const scene2dWgpuPipeline = createWgpuPipeline({
|
|
34
|
+
..._registries,
|
|
35
|
+
materialRenderers: withRegistryTableEntry(_registries.materialRenderers, StandardMaterialKind, standardWgpuMaterialRenderer),
|
|
36
|
+
renderers: buildScene2dWgpuRenderers(),
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=scene2dWgpuPipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scene2dWgpuPipeline.js","sourceRoot":"","sources":["../src/scene2dWgpuPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAE/F,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,eAAe,EACf,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,oCAAoC,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAE3D,SAAS,yBAAyB;IAChC,IAAI,KAAK,GAAG,yBAAyB,EAAE,CAAC,SAAS,CAAC;IAClD,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,6BAA6B,CAAC,CAAC;IACrF,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;IACrF,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,6BAA6B,CAAC,CAAC;IACrF,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,qBAAqB,EAAE,oCAAoC,CAAC,CAAC;IACnG,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,4BAA4B,CAAC,CAAC;IACnF,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,8BAA8B,CAAC,CAAC;IACvF,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,2BAA2B,CAAC,CAAC;IACjF,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,8BAA8B,CAAC,CAAC;IACvF,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC;IAC3E,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,yBAAyB,CAAC,CAAC;IAC7E,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,4BAA4B,CAAC,CAAC;IACnF,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,0BAA0B,CAAC,CAAC;IAC/E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,WAAW,GAAG,yBAAyB,EAAE,CAAC;AAEhD,MAAM,CAAC,MAAM,mBAAmB,GAAiB,kBAAkB,CAAC;IAClE,GAAG,WAAW;IACd,iBAAiB,EAAE,sBAAsB,CACvC,WAAW,CAAC,iBAAiB,EAC7B,oBAAoB,EACpB,4BAA4B,CAC7B;IACD,SAAS,EAAE,yBAAyB,EAAE;CACvC,CAAC,CAAC"}
|
package/dist/wgpuCache.d.ts
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import type { Node2D, Scene2DRenderer,
|
|
1
|
+
import type { Node2D, RenderCache, RenderCacheRefreshOptions, Scene2DRenderer, WgpuDeviceState, WgpuPipeline, WgpuPresentationRenderState, WgpuRenderOptions, WgpuRenderState, WgpuRenderTarget } from '@flighthq/types/contract';
|
|
2
2
|
/**
|
|
3
3
|
* Creates an offscreen render state for baking render caches consumed by `screenState`.
|
|
4
4
|
*
|
|
5
5
|
* Wgpu textures and pipelines cannot cross GPU devices, so — unlike the canvas backend —
|
|
6
|
-
* this offscreen state
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* adapter map, and frame counter, so baking neither substitutes a cache into itself nor
|
|
10
|
-
* disturbs the screen state's nodes.
|
|
6
|
+
* this offscreen state shares the owner's explicit device tier. It owns its pipeline snapshot,
|
|
7
|
+
* uniform ring, frame-local batch resources, and scene-graph bookkeeping; a bounded frame borrow
|
|
8
|
+
* supplies only the live presentation encoder/pass while a bake is being recorded.
|
|
11
9
|
*/
|
|
12
|
-
export declare function createWgpuCacheState(
|
|
10
|
+
export declare function createWgpuCacheState(ownerState: WgpuRenderState, deviceState: Readonly<WgpuDeviceState>, pipeline: Readonly<WgpuPipeline>, options?: Readonly<WgpuRenderOptions>): WgpuRenderState;
|
|
13
11
|
export declare function enableWgpuRenderCache(state: WgpuRenderState): void;
|
|
14
12
|
/**
|
|
15
13
|
* Allocates or resizes the texture `screenState` composites for `cache`, returning it so a
|
|
@@ -17,16 +15,15 @@ export declare function enableWgpuRenderCache(state: WgpuRenderState): void;
|
|
|
17
15
|
* refreshWgpuRenderCache.
|
|
18
16
|
*/
|
|
19
17
|
export declare function ensureWgpuRenderCacheTarget(state: WgpuRenderState, cache: RenderCache, width: number, height: number): WgpuRenderTarget;
|
|
20
|
-
export declare function getWgpuRenderCacheScreenState(state: WgpuRenderState): WgpuRenderState;
|
|
21
18
|
export declare function getWgpuRenderCacheTarget(state: WgpuRenderState, cache: RenderCache): WgpuRenderTarget | null;
|
|
22
19
|
/**
|
|
23
20
|
* Bakes `source`'s subtree into its cache target using the offscreen `cacheState`, then records
|
|
24
21
|
* the transform that places the result back in scene space. Returns whether a bake happened —
|
|
25
22
|
* the offscreen state's own dirtiness decides it (honoring its sceneGraphSyncPolicy), so this is
|
|
26
|
-
* cheap to call every frame. Because the bake runs on the shared GPU device,
|
|
27
|
-
*
|
|
23
|
+
* cheap to call every frame. Because the bake runs on the shared GPU device, it can composite its
|
|
24
|
+
* owned target in the owner's frame without acquiring presentation capability itself.
|
|
28
25
|
*/
|
|
29
|
-
export declare function refreshWgpuRenderCache(cacheState: WgpuRenderState, cache: RenderCache, source: Node2D, options?: Readonly<RenderCacheRefreshOptions>): boolean;
|
|
26
|
+
export declare function refreshWgpuRenderCache(ownerState: WgpuPresentationRenderState, cacheState: WgpuRenderState, cache: RenderCache, source: Node2D, options?: Readonly<RenderCacheRefreshOptions>): boolean;
|
|
30
27
|
export declare function releaseWgpuRenderCache(state: WgpuRenderState, cache: RenderCache): void;
|
|
31
28
|
export declare const defaultWgpuRenderCacheRenderer: Scene2DRenderer;
|
|
32
29
|
//# sourceMappingURL=wgpuCache.d.ts.map
|
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,
|
|
1
|
+
{"version":3,"file":"wgpuCache.d.ts","sourceRoot":"","sources":["../src/wgpuCache.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAEV,MAAM,EACN,WAAW,EACX,yBAAyB,EAEzB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAKlC;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,eAAe,EAC3B,WAAW,EAAE,QAAQ,CAAC,eAAe,CAAC,EACtC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,EAChC,OAAO,GAAE,QAAQ,CAAC,iBAAiB,CAAM,GACxC,eAAe,CASjB;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;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,GAAG,gBAAgB,GAAG,IAAI,CAE5G;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,2BAA2B,EACvC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC5C,OAAO,CA8BT;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAQvF;AAmCD,eAAO,MAAM,8BAA8B,EAAE,eAG5C,CAAC"}
|
package/dist/wgpuCache.js
CHANGED
|
@@ -1,123 +1,25 @@
|
|
|
1
1
|
import { createMatrix, createRectangle, multiplyMatrix } from '@flighthq/geometry/contract';
|
|
2
2
|
import { computeNodeBoundsRectangle } from '@flighthq/node/contract';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { computeScene2DRenderTargetTransform, computeRenderCacheTransform, computeRenderTargetSize, copyAllRenderersFromRenderState, createRenderState, getRenderProxyCache, noopRendererData, prepareScene2DRender, registerRenderCacheRenderer, } from '@flighthq/render/contract';
|
|
6
|
-
import { EntityRuntimeKey } from '@flighthq/types/contract';
|
|
3
|
+
import { beginWgpuRenderPass, createWgpuOffscreenRenderState, createWgpuRenderTarget, destroyWgpuRenderState, destroyWgpuRenderTarget, drawWgpuRenderTargetResult, endWgpuRenderPass, getWgpuRenderStateRuntime, resizeWgpuRenderTarget, registerWgpuRenderStateTeardown, setWgpuRenderTransform2D, withWgpuFrameBorrow, } from '@flighthq/render-wgpu/contract';
|
|
4
|
+
import { computeScene2DRenderTargetTransform, computeRenderCacheTransform, computeRenderTargetSize, getRenderProxyCache, noopRendererData, prepareScene2DRender, registerRenderCacheRenderer, } from '@flighthq/render/contract';
|
|
7
5
|
import { renderWgpuScene2D } from './wgpuNode2D';
|
|
8
6
|
import { flushWgpuQuadBatchWriter } from './wgpuQuadBatchWriter';
|
|
9
7
|
/**
|
|
10
8
|
* Creates an offscreen render state for baking render caches consumed by `screenState`.
|
|
11
9
|
*
|
|
12
10
|
* Wgpu textures and pipelines cannot cross GPU devices, so — unlike the canvas backend —
|
|
13
|
-
* this offscreen state
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* adapter map, and frame counter, so baking neither substitutes a cache into itself nor
|
|
17
|
-
* disturbs the screen state's nodes.
|
|
11
|
+
* this offscreen state shares the owner's explicit device tier. It owns its pipeline snapshot,
|
|
12
|
+
* uniform ring, frame-local batch resources, and scene-graph bookkeeping; a bounded frame borrow
|
|
13
|
+
* supplies only the live presentation encoder/pass while a bake is being recorded.
|
|
18
14
|
*/
|
|
19
|
-
export function createWgpuCacheState(
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
pixelRatio: screenState.pixelRatio,
|
|
24
|
-
renderTransform2D: createMatrix(),
|
|
25
|
-
roundPixels: screenState.roundPixels,
|
|
26
|
-
sceneGraphSyncPolicy: screenState.sceneGraphSyncPolicy,
|
|
27
|
-
});
|
|
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
|
-
const cacheRuntime = createWgpuRenderStateRuntime();
|
|
31
|
-
cacheState[EntityRuntimeKey] = cacheRuntime;
|
|
32
|
-
copyAllRenderersFromRenderState(cacheState, screenState);
|
|
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.
|
|
15
|
+
export function createWgpuCacheState(ownerState, deviceState, pipeline, options = {}) {
|
|
16
|
+
const cacheState = createWgpuOffscreenRenderState(deviceState, pipeline, options);
|
|
17
|
+
// The explicit owner is retained only for late blend policy. Frame/resource ownership remains local,
|
|
18
|
+
// and owner teardown closes this state exactly once.
|
|
35
19
|
cacheState.applyBlendMode = null;
|
|
36
|
-
cacheRuntime
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
cacheState.device = screenState.device;
|
|
40
|
-
cacheState.format = screenState.format;
|
|
41
|
-
cacheRuntime.uniformBindGroupLayout = screenRuntime.uniformBindGroupLayout;
|
|
42
|
-
cacheRuntime.textureBindGroupLayout = screenRuntime.textureBindGroupLayout;
|
|
43
|
-
cacheRuntime.uniformBuffer = screenRuntime.uniformBuffer;
|
|
44
|
-
cacheRuntime.uniformData = screenRuntime.uniformData;
|
|
45
|
-
cacheRuntime.uniformDataU32 = screenRuntime.uniformDataU32;
|
|
46
|
-
cacheRuntime.uniformStride = screenRuntime.uniformStride;
|
|
47
|
-
cacheRuntime.uniformBindGroup = screenRuntime.uniformBindGroup;
|
|
48
|
-
cacheRuntime.matrixArray = screenRuntime.matrixArray;
|
|
49
|
-
cacheRuntime.pipelineCache = screenRuntime.pipelineCache;
|
|
50
|
-
cacheRuntime.linearSampler = screenRuntime.linearSampler;
|
|
51
|
-
cacheRuntime.nearestSampler = screenRuntime.nearestSampler;
|
|
52
|
-
cacheRuntime.textureCache = screenRuntime.textureCache;
|
|
53
|
-
cacheRuntime.defaultBitmapShader = screenRuntime.defaultBitmapShader;
|
|
54
|
-
cacheRuntime.particleInstanceBuffer = screenRuntime.particleInstanceBuffer;
|
|
55
|
-
cacheRuntime.particleInstanceData = screenRuntime.particleInstanceData;
|
|
56
|
-
cacheRuntime.particleInstanceCapacity = screenRuntime.particleInstanceCapacity;
|
|
57
|
-
// The baked subtree is recorded into the screen state's command encoder, so the cache
|
|
58
|
-
// state must share the live per-frame encoder/pass surfaces rather than its own.
|
|
59
|
-
cacheRuntime.commandEncoder = screenRuntime.commandEncoder;
|
|
60
|
-
cacheRuntime.renderPass = screenRuntime.renderPass;
|
|
61
|
-
cacheRuntime.canvasTextureView = screenRuntime.canvasTextureView;
|
|
62
|
-
cacheRuntime.canvasViewCleared = screenRuntime.canvasViewCleared;
|
|
63
|
-
cacheRuntime.depthStencilTexture = screenRuntime.depthStencilTexture;
|
|
64
|
-
cacheRuntime.depthStencilView = screenRuntime.depthStencilView;
|
|
65
|
-
cacheRuntime.depthStencilWidth = screenRuntime.depthStencilWidth;
|
|
66
|
-
cacheRuntime.depthStencilHeight = screenRuntime.depthStencilHeight;
|
|
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
|
-
};
|
|
89
|
-
cacheRuntime.uniformOffset = 0;
|
|
90
|
-
cacheRuntime.currentBlendMode = null;
|
|
91
|
-
cacheRuntime.currentMaskDepth = 0;
|
|
92
|
-
// Contour-clip pipelines can be lazily rebuilt against the cache's device; the active-clip stack must
|
|
93
|
-
// start empty so a cached subtree's clips don't reference the screen state's GPU buffers.
|
|
94
|
-
cacheRuntime.clipContourPipelines = undefined;
|
|
95
|
-
cacheRuntime.clipContourStack = [];
|
|
96
|
-
cacheRuntime.clipForms = [];
|
|
97
|
-
// The flat-color shape-fill pipelines can be lazily rebuilt against the (shared) device on first use.
|
|
98
|
-
cacheRuntime.shapeMeshPipelines = undefined;
|
|
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.
|
|
111
|
-
// The bake state owns its own buffer pool (its flushes record into the same frame, so they must
|
|
112
|
-
// not share slots with the screen's batch either).
|
|
113
|
-
cacheRuntime.quadBatchWriterBufferPool = [];
|
|
114
|
-
cacheRuntime.quadBatchWriterBufferCursor = 0;
|
|
115
|
-
cacheRuntime.maskWriteMode = false;
|
|
116
|
-
cacheRuntime.currentScissorRect = null;
|
|
117
|
-
cacheRuntime.scissorStack = [];
|
|
118
|
-
cacheRuntime.renderTargetViewport = null;
|
|
119
|
-
cacheRuntime.renderTargetStack = [];
|
|
120
|
-
_cacheStateScreen.set(cacheState, screenState);
|
|
20
|
+
const cacheRuntime = getWgpuRenderStateRuntime(cacheState);
|
|
21
|
+
cacheRuntime.applyBlendModeParent = ownerState;
|
|
22
|
+
registerWgpuRenderStateTeardown(ownerState, () => destroyWgpuRenderState(cacheState));
|
|
121
23
|
return cacheState;
|
|
122
24
|
}
|
|
123
25
|
export function enableWgpuRenderCache(state) {
|
|
@@ -140,90 +42,48 @@ export function ensureWgpuRenderCacheTarget(state, cache, width, height) {
|
|
|
140
42
|
}
|
|
141
43
|
return target;
|
|
142
44
|
}
|
|
143
|
-
// Cache rendering uses a second render state over the screen state's GPU device. Backend resources
|
|
144
|
-
// that must remain visible while that cache state walks a subtree are owned by the screen state.
|
|
145
|
-
export function getWgpuRenderCacheScreenState(state) {
|
|
146
|
-
return _cacheStateScreen.get(state) ?? state;
|
|
147
|
-
}
|
|
148
45
|
export function getWgpuRenderCacheTarget(state, cache) {
|
|
149
|
-
return
|
|
46
|
+
return _renderCacheTargets.get(state)?.get(cache) ?? null;
|
|
150
47
|
}
|
|
151
48
|
/**
|
|
152
49
|
* Bakes `source`'s subtree into its cache target using the offscreen `cacheState`, then records
|
|
153
50
|
* the transform that places the result back in scene space. Returns whether a bake happened —
|
|
154
51
|
* the offscreen state's own dirtiness decides it (honoring its sceneGraphSyncPolicy), so this is
|
|
155
|
-
* cheap to call every frame. Because the bake runs on the shared GPU device,
|
|
156
|
-
*
|
|
52
|
+
* cheap to call every frame. Because the bake runs on the shared GPU device, it can composite its
|
|
53
|
+
* owned target in the owner's frame without acquiring presentation capability itself.
|
|
157
54
|
*/
|
|
158
|
-
export function refreshWgpuRenderCache(cacheState, cache, source, options) {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
const minHeight = options?.minHeight ?? 1;
|
|
186
|
-
computeNodeBoundsRectangle(_bounds, source, source);
|
|
187
|
-
const { width, height } = computeRenderTargetSize(_targetSize, _bounds, padding, minWidth, minHeight);
|
|
188
|
-
const existing = getWgpuRenderCacheTarget(screenState, cache);
|
|
189
|
-
const resized = existing === null || existing.width !== width || existing.height !== height;
|
|
190
|
-
const target = ensureWgpuRenderCacheTarget(screenState, cache, width, height);
|
|
191
|
-
computeScene2DRenderTargetTransform(_renderTransform, source, _bounds, padding, padding);
|
|
192
|
-
computeRenderCacheTransform(cache.transform, _bounds, padding, padding);
|
|
193
|
-
// Wgpu render targets store content for a bottom-left UV origin (what drawWgpuRenderTargetResult's
|
|
194
|
-
// V-flip expects on composite), so bake with a Y-inverted render transform — unlike the Gl backend,
|
|
195
|
-
// whose framebuffer convention needs no inversion.
|
|
196
|
-
_yInvert.d = -1;
|
|
197
|
-
_yInvert.ty = target.height;
|
|
198
|
-
multiplyMatrix(_bakeTransform, _yInvert, _renderTransform);
|
|
199
|
-
// Reclaim the bake state's buffer pool from the start of this bake; the previous bake's submit
|
|
200
|
-
// has been queued, so its slots are safe to reuse.
|
|
201
|
-
cacheRuntime.quadBatchWriterBufferCursor = 0;
|
|
202
|
-
// The pass clears to transparent by default (target.clearColors is empty); the Y-inverted bake
|
|
203
|
-
// transform is a display-object draw concern, set explicitly rather than carried by the pass.
|
|
204
|
-
beginWgpuRenderPass(cacheState, target);
|
|
205
|
-
setWgpuRenderTransform2D(cacheState, _bakeTransform);
|
|
206
|
-
const dirty = prepareScene2DRender(cacheState, source);
|
|
207
|
-
if (dirty || resized) {
|
|
208
|
-
renderWgpuScene2D(cacheState, source);
|
|
209
|
-
}
|
|
210
|
-
endWgpuRenderPass(cacheState);
|
|
211
|
-
// endWgpuRenderPass reopened a fresh canvas pass on the cache state — hand the live encoder
|
|
212
|
-
// and pass back to the screen state so its subsequent draws continue in the same frame.
|
|
213
|
-
screenRuntime.commandEncoder = cacheRuntime.commandEncoder;
|
|
214
|
-
screenRuntime.renderPass = cacheRuntime.renderPass;
|
|
215
|
-
screenRuntime.canvasTextureView = cacheRuntime.canvasTextureView;
|
|
216
|
-
screenRuntime.canvasViewCleared = cacheRuntime.canvasViewCleared;
|
|
217
|
-
screenRuntime.currentBlendMode = null;
|
|
218
|
-
// Advance the screen's cursor past the bake's uniform writes so its subsequent draws don't
|
|
219
|
-
// overwrite them in the shared ring buffer.
|
|
220
|
-
screenRuntime.uniformOffset = cacheRuntime.uniformOffset;
|
|
221
|
-
if (ownsFrame)
|
|
222
|
-
submitWgpuRenderPass(screenState);
|
|
223
|
-
return dirty || resized;
|
|
55
|
+
export function refreshWgpuRenderCache(ownerState, cacheState, cache, source, options) {
|
|
56
|
+
return withWgpuFrameBorrow(ownerState, cacheState, () => {
|
|
57
|
+
const padding = options?.padding ?? 0;
|
|
58
|
+
const minWidth = options?.minWidth ?? 1;
|
|
59
|
+
const minHeight = options?.minHeight ?? 1;
|
|
60
|
+
computeNodeBoundsRectangle(_bounds, source, source);
|
|
61
|
+
const { width, height } = computeRenderTargetSize(_targetSize, _bounds, padding, minWidth, minHeight);
|
|
62
|
+
const existing = getWgpuRenderCacheTarget(ownerState, cache);
|
|
63
|
+
const resized = existing === null || existing.width !== width || existing.height !== height;
|
|
64
|
+
const target = ensureWgpuRenderCacheTarget(ownerState, cache, width, height);
|
|
65
|
+
computeScene2DRenderTargetTransform(_renderTransform, source, _bounds, padding, padding);
|
|
66
|
+
computeRenderCacheTransform(cache.transform, _bounds, padding, padding);
|
|
67
|
+
_yInvert.d = -1;
|
|
68
|
+
_yInvert.ty = target.height;
|
|
69
|
+
multiplyMatrix(_bakeTransform, _yInvert, _renderTransform);
|
|
70
|
+
beginWgpuRenderPass(cacheState, target);
|
|
71
|
+
try {
|
|
72
|
+
setWgpuRenderTransform2D(cacheState, _bakeTransform);
|
|
73
|
+
const dirty = prepareScene2DRender(cacheState, source);
|
|
74
|
+
if (dirty || resized)
|
|
75
|
+
renderWgpuScene2D(cacheState, source);
|
|
76
|
+
return dirty || resized;
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
endWgpuRenderPass(cacheState);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
224
82
|
}
|
|
225
83
|
export function releaseWgpuRenderCache(state, cache) {
|
|
226
|
-
const targets =
|
|
84
|
+
const targets = _renderCacheTargets.get(state);
|
|
85
|
+
if (targets === undefined)
|
|
86
|
+
return;
|
|
227
87
|
const target = targets.get(cache);
|
|
228
88
|
if (target === undefined)
|
|
229
89
|
return;
|
|
@@ -235,7 +95,7 @@ function drawWgpuRenderCache(state, renderProxy) {
|
|
|
235
95
|
const cache = getRenderProxyCache(state, renderProxy.source);
|
|
236
96
|
if (cache === null)
|
|
237
97
|
return;
|
|
238
|
-
const target =
|
|
98
|
+
const target = _renderCacheTargets.get(state)?.get(cache);
|
|
239
99
|
if (target === undefined)
|
|
240
100
|
return;
|
|
241
101
|
// Drain pending batched geometry before the immediate composite quad. Like every other
|
|
@@ -250,11 +110,21 @@ function drawWgpuRenderCache(state, renderProxy) {
|
|
|
250
110
|
function getTargets(state) {
|
|
251
111
|
let targets = _renderCacheTargets.get(state);
|
|
252
112
|
if (targets === undefined) {
|
|
253
|
-
targets = new
|
|
113
|
+
targets = new Map();
|
|
254
114
|
_renderCacheTargets.set(state, targets);
|
|
115
|
+
registerWgpuRenderStateTeardown(state, destroyOwnedWgpuRenderCacheTargets);
|
|
255
116
|
}
|
|
256
117
|
return targets;
|
|
257
118
|
}
|
|
119
|
+
function destroyOwnedWgpuRenderCacheTargets(state) {
|
|
120
|
+
const targets = _renderCacheTargets.get(state);
|
|
121
|
+
if (targets === undefined)
|
|
122
|
+
return;
|
|
123
|
+
for (const target of targets.values())
|
|
124
|
+
destroyWgpuRenderTarget(state, target);
|
|
125
|
+
targets.clear();
|
|
126
|
+
_renderCacheTargets.delete(state);
|
|
127
|
+
}
|
|
258
128
|
export const defaultWgpuRenderCacheRenderer = {
|
|
259
129
|
createData: noopRendererData,
|
|
260
130
|
submit: drawWgpuRenderCache,
|
|
@@ -262,8 +132,6 @@ export const defaultWgpuRenderCacheRenderer = {
|
|
|
262
132
|
// The screen state owns each cache's target, keyed by the handle, so one handle can be
|
|
263
133
|
// composited by several states without the handle carrying a backend resource.
|
|
264
134
|
const _renderCacheTargets = new WeakMap();
|
|
265
|
-
// Links an offscreen cache state back to the screen state whose targets it bakes into.
|
|
266
|
-
const _cacheStateScreen = new WeakMap();
|
|
267
135
|
const _bounds = createRectangle();
|
|
268
136
|
const _renderTransform = createMatrix();
|
|
269
137
|
const _bakeTransform = createMatrix();
|
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,
|
|
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":"
|
|
1
|
+
{"version":3,"file":"wgpuClipContours.d.ts","sourceRoot":"","sources":["../src/wgpuClipContours.ts"],"names":[],"mappings":"AAKA,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,4 +1,4 @@
|
|
|
1
|
-
import { getWgpuRenderStateRuntime, retireWgpuBuffer } from '@flighthq/render-wgpu/contract';
|
|
1
|
+
import { getWgpuRenderStateRuntime, getWgpuSurfaceRenderExtent, retireWgpuBuffer, } from '@flighthq/render-wgpu/contract';
|
|
2
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
|
|
@@ -87,7 +87,7 @@ export function pushWgpuClipContours(state, contours, winding, worldTransform) {
|
|
|
87
87
|
}
|
|
88
88
|
function createClipContourUniformBuffer(state, t) {
|
|
89
89
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
90
|
-
const viewport = runtime.renderTargetViewport ?? state
|
|
90
|
+
const viewport = runtime.renderTargetViewport ?? getWgpuSurfaceRenderExtent(state);
|
|
91
91
|
const iw = 2 / viewport.width;
|
|
92
92
|
const ih = 2 / viewport.height;
|
|
93
93
|
// Column-major mat3x3f = projection · worldTransform, mapping clip-local points to clip space exactly
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuClipContours.js","sourceRoot":"","sources":["../src/wgpuClipContours.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"wgpuClipContours.js","sourceRoot":"","sources":["../src/wgpuClipContours.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuClipRectangle.d.ts","sourceRoot":"","sources":["../src/wgpuClipRectangle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgpuClipRectangle.d.ts","sourceRoot":"","sources":["../src/wgpuClipRectangle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAmB,MAAM,0BAA0B,CAAC;AAI5G,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAoBjE;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC7B,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,GAC9B,IAAI,CAmBN"}
|