@flighthq/render-wgpu 0.2.1-next.840.857425c → 0.3.0-next.1021.f5f1ee0
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 +22 -0
- package/dist/contract.d.ts.map +1 -0
- package/dist/contract.js +22 -0
- package/dist/contract.js.map +1 -0
- package/dist/index.d.ts +1 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -18
- package/dist/index.js.map +1 -1
- package/dist/wgpuAdapterCapabilities.d.ts +1 -1
- package/dist/wgpuAdapterCapabilities.d.ts.map +1 -1
- package/dist/wgpuBackground.d.ts +1 -1
- package/dist/wgpuBackground.d.ts.map +1 -1
- package/dist/wgpuBackground.js +2 -2
- package/dist/wgpuBackground.js.map +1 -1
- package/dist/wgpuCompressedTexture.d.ts +1 -1
- package/dist/wgpuCompressedTexture.d.ts.map +1 -1
- package/dist/wgpuCompressedTexture.js +4 -7
- package/dist/wgpuCompressedTexture.js.map +1 -1
- package/dist/wgpuDraw.d.ts +8 -6
- package/dist/wgpuDraw.d.ts.map +1 -1
- package/dist/wgpuDraw.js +79 -45
- package/dist/wgpuDraw.js.map +1 -1
- package/dist/wgpuExternalTexture.d.ts +4 -0
- package/dist/wgpuExternalTexture.d.ts.map +1 -0
- package/dist/wgpuExternalTexture.js +58 -0
- package/dist/wgpuExternalTexture.js.map +1 -0
- package/dist/wgpuFullscreenPass.d.ts +1 -1
- package/dist/wgpuFullscreenPass.d.ts.map +1 -1
- package/dist/wgpuMaterialRegistry.d.ts +1 -1
- package/dist/wgpuMaterialRegistry.d.ts.map +1 -1
- package/dist/wgpuMaterialRegistry.js +3 -3
- package/dist/wgpuMaterialRegistry.js.map +1 -1
- package/dist/wgpuMipmap.d.ts +1 -1
- package/dist/wgpuMipmap.d.ts.map +1 -1
- package/dist/wgpuRenderState.d.ts +1 -1
- package/dist/wgpuRenderState.d.ts.map +1 -1
- package/dist/wgpuRenderState.js +22 -20
- package/dist/wgpuRenderState.js.map +1 -1
- package/dist/wgpuRenderTarget.d.ts +1 -1
- package/dist/wgpuRenderTarget.d.ts.map +1 -1
- package/dist/wgpuRenderTarget.js +4 -2
- package/dist/wgpuRenderTarget.js.map +1 -1
- package/dist/wgpuRenderTargetPool.d.ts +1 -1
- package/dist/wgpuRenderTargetPool.d.ts.map +1 -1
- package/dist/wgpuRenderTargetPool.js.map +1 -1
- package/dist/wgpuRenderTexture.d.ts +10 -0
- package/dist/wgpuRenderTexture.d.ts.map +1 -0
- package/dist/wgpuRenderTexture.js +76 -0
- package/dist/wgpuRenderTexture.js.map +1 -0
- package/dist/wgpuScissor.d.ts +1 -1
- package/dist/wgpuScissor.d.ts.map +1 -1
- package/dist/wgpuShader.d.ts +3 -3
- package/dist/wgpuShader.d.ts.map +1 -1
- package/dist/wgpuShader.js +28 -28
- package/dist/wgpuShader.js.map +1 -1
- package/dist/wgpuShaderBinding.d.ts +1 -1
- package/dist/wgpuShaderBinding.d.ts.map +1 -1
- package/dist/wgpuShaderBinding.js +1 -1
- package/dist/wgpuShaderBinding.js.map +1 -1
- package/dist/wgpuShaderRegistry.d.ts +1 -1
- package/dist/wgpuShaderRegistry.d.ts.map +1 -1
- package/dist/wgpuShaderRegistry.js +1 -1
- package/dist/wgpuShaderRegistry.js.map +1 -1
- package/dist/wgpuSurface.d.ts +2 -2
- package/dist/wgpuSurface.d.ts.map +1 -1
- package/dist/wgpuSurface.js +12 -12
- package/dist/wgpuSurface.js.map +1 -1
- package/dist/wgpuTestHelper.d.ts +1 -1
- package/dist/wgpuTestHelper.d.ts.map +1 -1
- package/dist/wgpuTextureResolver.d.ts +9 -0
- package/dist/wgpuTextureResolver.d.ts.map +1 -0
- package/dist/wgpuTextureResolver.js +61 -0
- package/dist/wgpuTextureResolver.js.map +1 -0
- package/dist/wgpuTextureUpload.d.ts +1 -1
- package/dist/wgpuTextureUpload.d.ts.map +1 -1
- package/dist/wgpuTextureUpload.js +3 -9
- package/dist/wgpuTextureUpload.js.map +1 -1
- package/package.json +12 -7
- package/src/wgpuCompressedTexture.test.ts +18 -35
- package/src/wgpuDraw.test.ts +111 -65
- package/src/wgpuExternalTexture.test.ts +35 -0
- package/src/wgpuMaterialRegistry.test.ts +4 -4
- package/src/wgpuMipmap.test.ts +1 -1
- package/src/wgpuRenderTarget.test.ts +15 -1
- package/src/wgpuRenderTexture.test.ts +106 -0
- package/src/wgpuShader.test.ts +8 -8
- package/src/wgpuShaderBinding.test.ts +8 -8
- package/src/wgpuShaderRegistry.test.ts +1 -1
- package/src/wgpuSurface.test.ts +3 -3
- package/src/wgpuTextureResolver.test.ts +156 -0
- package/src/wgpuTextureUpload.test.ts +2 -12
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export * from './wgpuAdapterCapabilities';
|
|
2
|
+
export * from './wgpuBackground';
|
|
3
|
+
export * from './wgpuCompressedTexture';
|
|
4
|
+
export * from './wgpuDraw';
|
|
5
|
+
export * from './wgpuExternalTexture';
|
|
6
|
+
export * from './wgpuElement';
|
|
7
|
+
export * from './wgpuFullscreenPass';
|
|
8
|
+
export * from './wgpuMaterialRegistry';
|
|
9
|
+
export * from './wgpuMipmap';
|
|
10
|
+
export * from './wgpuRenderState';
|
|
11
|
+
export * from './wgpuRenderTarget';
|
|
12
|
+
export * from './wgpuRenderTargetPool';
|
|
13
|
+
export * from './wgpuRenderTexture';
|
|
14
|
+
export * from './wgpuScissor';
|
|
15
|
+
export * from './wgpuShader';
|
|
16
|
+
export * from './wgpuShaderBinding';
|
|
17
|
+
export * from './wgpuShaderRegistry';
|
|
18
|
+
export * from './wgpuSurface';
|
|
19
|
+
export * from './wgpuTextureUpload';
|
|
20
|
+
export * from './wgpuTextureResolver';
|
|
21
|
+
export { createWgpuRenderStateForTest, installWgpuMock } from './wgpuTestHelper';
|
|
22
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/contract.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export * from './wgpuAdapterCapabilities';
|
|
2
|
+
export * from './wgpuBackground';
|
|
3
|
+
export * from './wgpuCompressedTexture';
|
|
4
|
+
export * from './wgpuDraw';
|
|
5
|
+
export * from './wgpuExternalTexture';
|
|
6
|
+
export * from './wgpuElement';
|
|
7
|
+
export * from './wgpuFullscreenPass';
|
|
8
|
+
export * from './wgpuMaterialRegistry';
|
|
9
|
+
export * from './wgpuMipmap';
|
|
10
|
+
export * from './wgpuRenderState';
|
|
11
|
+
export * from './wgpuRenderTarget';
|
|
12
|
+
export * from './wgpuRenderTargetPool';
|
|
13
|
+
export * from './wgpuRenderTexture';
|
|
14
|
+
export * from './wgpuScissor';
|
|
15
|
+
export * from './wgpuShader';
|
|
16
|
+
export * from './wgpuShaderBinding';
|
|
17
|
+
export * from './wgpuShaderRegistry';
|
|
18
|
+
export * from './wgpuSurface';
|
|
19
|
+
export * from './wgpuTextureUpload';
|
|
20
|
+
export * from './wgpuTextureResolver';
|
|
21
|
+
export { createWgpuRenderStateForTest, installWgpuMock } from './wgpuTestHelper';
|
|
22
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,19 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export * from './wgpuBackground';
|
|
3
|
-
export * from './wgpuCompressedTexture';
|
|
4
|
-
export * from './wgpuDraw';
|
|
5
|
-
export * from './wgpuElement';
|
|
6
|
-
export * from './wgpuFullscreenPass';
|
|
7
|
-
export * from './wgpuMaterialRegistry';
|
|
8
|
-
export * from './wgpuMipmap';
|
|
9
|
-
export * from './wgpuRenderState';
|
|
10
|
-
export * from './wgpuRenderTarget';
|
|
11
|
-
export * from './wgpuRenderTargetPool';
|
|
12
|
-
export * from './wgpuScissor';
|
|
13
|
-
export * from './wgpuShader';
|
|
14
|
-
export * from './wgpuShaderBinding';
|
|
15
|
-
export * from './wgpuShaderRegistry';
|
|
16
|
-
export * from './wgpuSurface';
|
|
17
|
-
export * from './wgpuTextureUpload';
|
|
18
|
-
export { createWgpuRenderStateForTest, installWgpuMock } from './wgpuTestHelper';
|
|
1
|
+
export { beginWgpuFrame, beginWgpuRenderPass, bindWgpuRenderTexture, createBitmapFromWgpuRenderState, createExternalWgpuTexture, createWgpuCanvasElement, createWgpuRenderState, createWgpuRenderTarget, destroyWgpuRenderTexture, disposeExternalWgpuTexture, enableWgpuBlendModeSupport, enableWgpuFrameCapture, endWgpuRenderPass, isWgpuRenderTextureReady, registerWgpuBitmapTextureResolver, registerWgpuCompressedImageTextureResolver, registerWgpuImageTextureResolver, registerWgpuRenderTextureResolver, registerWgpuTextureResolver, registerWgpuVideoTextureResolver, registerWgpuCompressedTextureDecoder, registerWgpuCompressedTextureUpload, renderIntoWgpuRenderTexture, renderWgpuBackground, resolveWgpuTexture, resolveWgpuSmoothingBindGroup, submitWgpuRenderPass, } from './contract';
|
|
19
2
|
//# 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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,iCAAiC,EACjC,0CAA0C,EAC1C,gCAAgC,EAChC,iCAAiC,EACjC,2BAA2B,EAC3B,gCAAgC,EAChC,oCAAoC,EACpC,mCAAmC,EACnC,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,EAClB,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,19 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export * from './wgpuBackground';
|
|
3
|
-
export * from './wgpuCompressedTexture';
|
|
4
|
-
export * from './wgpuDraw';
|
|
5
|
-
export * from './wgpuElement';
|
|
6
|
-
export * from './wgpuFullscreenPass';
|
|
7
|
-
export * from './wgpuMaterialRegistry';
|
|
8
|
-
export * from './wgpuMipmap';
|
|
9
|
-
export * from './wgpuRenderState';
|
|
10
|
-
export * from './wgpuRenderTarget';
|
|
11
|
-
export * from './wgpuRenderTargetPool';
|
|
12
|
-
export * from './wgpuScissor';
|
|
13
|
-
export * from './wgpuShader';
|
|
14
|
-
export * from './wgpuShaderBinding';
|
|
15
|
-
export * from './wgpuShaderRegistry';
|
|
16
|
-
export * from './wgpuSurface';
|
|
17
|
-
export * from './wgpuTextureUpload';
|
|
18
|
-
export { createWgpuRenderStateForTest, installWgpuMock } from './wgpuTestHelper';
|
|
1
|
+
export { beginWgpuFrame, beginWgpuRenderPass, bindWgpuRenderTexture, createBitmapFromWgpuRenderState, createExternalWgpuTexture, createWgpuCanvasElement, createWgpuRenderState, createWgpuRenderTarget, destroyWgpuRenderTexture, disposeExternalWgpuTexture, enableWgpuBlendModeSupport, enableWgpuFrameCapture, endWgpuRenderPass, isWgpuRenderTextureReady, registerWgpuBitmapTextureResolver, registerWgpuCompressedImageTextureResolver, registerWgpuImageTextureResolver, registerWgpuRenderTextureResolver, registerWgpuTextureResolver, registerWgpuVideoTextureResolver, registerWgpuCompressedTextureDecoder, registerWgpuCompressedTextureUpload, renderIntoWgpuRenderTexture, renderWgpuBackground, resolveWgpuTexture, resolveWgpuSmoothingBindGroup, submitWgpuRenderPass, } from './contract';
|
|
19
2
|
//# 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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,EACjB,wBAAwB,EACxB,iCAAiC,EACjC,0CAA0C,EAC1C,gCAAgC,EAChC,iCAAiC,EACjC,2BAA2B,EAC3B,gCAAgC,EAChC,oCAAoC,EACpC,mCAAmC,EACnC,2BAA2B,EAC3B,oBAAoB,EACpB,kBAAkB,EAClB,6BAA6B,EAC7B,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { WgpuAdapterCapabilities } from '@flighthq/types';
|
|
1
|
+
import type { WgpuAdapterCapabilities } from '@flighthq/types/contract';
|
|
2
2
|
export declare function getWgpuAdapterCapabilities(adapter: GPUAdapter): WgpuAdapterCapabilities;
|
|
3
3
|
//# sourceMappingURL=wgpuAdapterCapabilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuAdapterCapabilities.d.ts","sourceRoot":"","sources":["../src/wgpuAdapterCapabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"wgpuAdapterCapabilities.d.ts","sourceRoot":"","sources":["../src/wgpuAdapterCapabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AASxE,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,UAAU,GAAG,uBAAuB,CAwBvF"}
|
package/dist/wgpuBackground.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBackground.d.ts","sourceRoot":"","sources":["../src/wgpuBackground.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"wgpuBackground.d.ts","sourceRoot":"","sources":["../src/wgpuBackground.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AA6BhE;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAe3D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAyDjE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAmCjE"}
|
package/dist/wgpuBackground.js
CHANGED
|
@@ -31,9 +31,9 @@ export function beginWgpuFrame(state) {
|
|
|
31
31
|
return;
|
|
32
32
|
runtime.commandEncoder = state.device.createCommandEncoder();
|
|
33
33
|
runtime.uniformOffset = 0;
|
|
34
|
-
// Reclaim the
|
|
34
|
+
// Reclaim the quad-batch writer buffer pool from the start of the frame; last frame's submit has been
|
|
35
35
|
// queued, so its slots are safe to overwrite.
|
|
36
|
-
runtime.
|
|
36
|
+
runtime.quadBatchWriterBufferCursor = 0;
|
|
37
37
|
runtime.currentBlendMode = null;
|
|
38
38
|
runtime.currentRenderTarget = null;
|
|
39
39
|
runtime.currentMaskDepth = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuBackground.js","sourceRoot":"","sources":["../src/wgpuBackground.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvF,SAAS,sBAAsB,CAAC,KAAsB,EAAE,KAAa,EAAE,MAAc;IACnF,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACjD,IACE,OAAO,CAAC,mBAAmB,KAAK,IAAI;QACpC,OAAO,CAAC,iBAAiB,KAAK,KAAK;QACnC,OAAO,CAAC,kBAAkB,KAAK,MAAM,EACrC,CAAC;QACD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,mBAAmB,EAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;QACzC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAClD,MAAM,EAAE,sBAAsB;QAC9B,KAAK,EAAE,eAAe,CAAC,iBAAiB;KACzC,CAAC,CAAC;IAEH,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC;IACtC,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAChD,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAClC,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAsB;IACnD,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI;QAAE,OAAO;IAE5C,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAC7D,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;IAC1B,
|
|
1
|
+
{"version":3,"file":"wgpuBackground.js","sourceRoot":"","sources":["../src/wgpuBackground.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TextureContainer, TextureContainerFormat, WgpuCompressedTextureDecoder, WgpuCompressedTextureSupport, WgpuRenderState } from '@flighthq/types';
|
|
1
|
+
import type { TextureContainer, TextureContainerFormat, WgpuCompressedTextureDecoder, WgpuCompressedTextureSupport, WgpuRenderState } from '@flighthq/types/contract';
|
|
2
2
|
export declare function detectWgpuCompressedTextureSupport(device: GPUDevice): WgpuCompressedTextureSupport;
|
|
3
3
|
export declare function getWgpuCompressedTextureFormat(device: GPUDevice, format: TextureContainerFormat): GPUTextureFormat | null;
|
|
4
4
|
export declare function hasWgpuCompressedTextureFormat(support: Readonly<WgpuCompressedTextureSupport>, format: TextureContainerFormat): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuCompressedTexture.d.ts","sourceRoot":"","sources":["../src/wgpuCompressedTexture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAChB,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,eAAe,EAEhB,MAAM,
|
|
1
|
+
{"version":3,"file":"wgpuCompressedTexture.d.ts","sourceRoot":"","sources":["../src/wgpuCompressedTexture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAChB,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAWlC,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,SAAS,GAAG,4BAA4B,CAMlG;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,sBAAsB,GAC7B,gBAAgB,GAAG,IAAI,CAOzB;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,EAC/C,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAKT;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,4BAA4B,GAAG,IAAI,GAC1C,IAAI,CAEN;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAEjG;AAMD,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACrC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC7B,MAAM,CAAC,EAAE,4BAA4B,GACpC,UAAU,GAAG,IAAI,CAoEnB"}
|
|
@@ -30,8 +30,7 @@ export function registerWgpuCompressedTextureDecoder(state, decode) {
|
|
|
30
30
|
getWgpuRenderStateRuntime(state).compressedTextureDecoder = decode;
|
|
31
31
|
}
|
|
32
32
|
export function registerWgpuCompressedTextureUpload(state, uploader) {
|
|
33
|
-
getWgpuRenderStateRuntime(state).compressedTextureUpload =
|
|
34
|
-
uploader === null ? null : uploadWgpuCompressedImageResource;
|
|
33
|
+
getWgpuRenderStateRuntime(state).compressedTextureUpload = uploader === null ? null : uploadWgpuCompressedImage;
|
|
35
34
|
}
|
|
36
35
|
// Creates and fills a WebGPU texture from a parsed block-compressed container. Native uploads cover
|
|
37
36
|
// 2D, cubemap, and 2D-array shapes; the RGBA fallback intentionally covers plain 2D only, matching GL.
|
|
@@ -94,10 +93,8 @@ export function uploadWgpuCompressedTextureContainer(state, container, payload,
|
|
|
94
93
|
}
|
|
95
94
|
return texture;
|
|
96
95
|
}
|
|
97
|
-
function
|
|
96
|
+
function uploadWgpuCompressedImage(state, image, decode) {
|
|
98
97
|
const compressed = image.compressed;
|
|
99
|
-
if (compressed === null)
|
|
100
|
-
return null;
|
|
101
98
|
const container = compressed.container;
|
|
102
99
|
if (container.depth !== 1 || container.faces !== 1 || container.layers !== 1)
|
|
103
100
|
return null;
|
|
@@ -106,7 +103,7 @@ function uploadWgpuCompressedImageResource(state, image, decode) {
|
|
|
106
103
|
? undefined
|
|
107
104
|
: (format, width, height, data) => {
|
|
108
105
|
const rgba = decode(format, width, height, data);
|
|
109
|
-
return rgba !== null
|
|
106
|
+
return rgba !== null ? premultiplyRgba8(rgba) : null;
|
|
110
107
|
};
|
|
111
108
|
const texture = uploadWgpuCompressedTextureContainer(state, container, compressed.payload, fallback);
|
|
112
109
|
if (texture === null)
|
|
@@ -121,7 +118,7 @@ function uploadWgpuCompressedImageResource(state, image, decode) {
|
|
|
121
118
|
{ binding: 1, resource: sampler },
|
|
122
119
|
],
|
|
123
120
|
});
|
|
124
|
-
return { bindGroup, straightAlpha: native
|
|
121
|
+
return { bindGroup, straightAlpha: native, texture, view };
|
|
125
122
|
}
|
|
126
123
|
function premultiplyRgba8(data) {
|
|
127
124
|
const out = new Uint8ClampedArray(data.length);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuCompressedTexture.js","sourceRoot":"","sources":["../src/wgpuCompressedTexture.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAS9D,MAAM,UAAU,kCAAkC,CAAC,MAAiB;IAClE,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,0BAA0B,CAAC;QACrD,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC;QACjD,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,0BAA0B,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,MAAiB,EACjB,MAA8B;IAE9B,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,OAAO,GAAG,kCAAkC,CAAC,MAAM,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACpE,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,OAA+C,EAC/C,MAA8B;IAE9B,IAAI,uBAAuB,CAAC,MAAM,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC3D,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC,EAAE,CAAC;IAC/C,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC;IACnD,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,KAAsB,EACtB,MAA2C;IAE3C,yBAAyB,CAAC,KAAK,CAAC,CAAC,wBAAwB,GAAG,MAAM,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,KAAsB,EAAE,QAAe;IACzF,yBAAyB,CAAC,KAAK,CAAC,CAAC,uBAAuB
|
|
1
|
+
{"version":3,"file":"wgpuCompressedTexture.js","sourceRoot":"","sources":["../src/wgpuCompressedTexture.ts"],"names":[],"mappings":"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"}
|
package/dist/wgpuDraw.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { BlendMode } from '@flighthq/types';
|
|
1
|
+
import type { Bitmap, ColorScaleBias, CompressedImage, ImageResource, Texture, RenderProxy, RenderProxy2D, WgpuRenderState, WgpuTextureEntry, WgpuVideoTextureEntry } from '@flighthq/types/contract';
|
|
2
|
+
import { BlendMode } from '@flighthq/types/contract';
|
|
3
3
|
export declare function applyWgpuBlendMode(state: WgpuRenderState, blendMode: BlendMode | null): void;
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function bindWgpuBitmapTexture(state: WgpuRenderState, bitmap: Readonly<Bitmap>, generateMips?: boolean, premultiply?: boolean): WgpuTextureEntry;
|
|
5
|
+
export declare function bindWgpuCompressedImageTexture(state: WgpuRenderState, image: Readonly<CompressedImage>): WgpuTextureEntry | null;
|
|
6
|
+
export declare function bindWgpuImageResourceTexture(state: WgpuRenderState, image: Readonly<ImageResource>, generateMips?: boolean, premultiply?: boolean): WgpuTextureEntry;
|
|
5
7
|
export declare function bindWgpuTexture(state: WgpuRenderState, imageSource: CanvasImageSource, generateMips?: boolean): WgpuTextureEntry;
|
|
6
|
-
export declare function bindWgpuVideoTexture(state: WgpuRenderState, videoTexture: Readonly<
|
|
8
|
+
export declare function bindWgpuVideoTexture(state: WgpuRenderState, videoTexture: Readonly<Texture>): WgpuVideoTextureEntry | null;
|
|
7
9
|
export declare function buildWgpuRenderTargetBindGroup(state: WgpuRenderState, view: GPUTextureView): GPUBindGroup;
|
|
8
10
|
export declare function createWgpuTextureEntry(state: WgpuRenderState, width: number, height: number, canvas: HTMLCanvasElement): WgpuTextureEntry;
|
|
9
|
-
export declare function destroyWgpuVideoTexture(state: WgpuRenderState, videoTexture: Readonly<
|
|
11
|
+
export declare function destroyWgpuVideoTexture(state: WgpuRenderState, videoTexture: Readonly<Texture>): boolean;
|
|
10
12
|
export declare function drawWgpuQuad(state: WgpuRenderState, renderProxy: RenderProxy2D, textureEntry: WgpuTextureEntry, x0: number, y0: number, x1: number, y1: number, u0: number, v0: number, u1: number, v1: number): void;
|
|
11
13
|
export declare function drawWgpuQuadWithTransform(state: WgpuRenderState, renderProxy: RenderProxy, transform: {
|
|
12
14
|
a: number;
|
|
@@ -17,7 +19,7 @@ export declare function drawWgpuQuadWithTransform(state: WgpuRenderState, render
|
|
|
17
19
|
ty: number;
|
|
18
20
|
}, textureEntry: WgpuTextureEntry, x0: number, y0: number, x1: number, y1: number, u0: number, v0: number, u1: number, v1: number): void;
|
|
19
21
|
export declare function enableWgpuBlendModeSupport(state: WgpuRenderState): void;
|
|
20
|
-
export declare function
|
|
22
|
+
export declare function getWgpuRenderProxyColorScaleBias(renderProxy: Readonly<RenderProxy>): ColorScaleBias | null;
|
|
21
23
|
export declare function resolveWgpuSmoothingBindGroup(state: WgpuRenderState, entry: WgpuTextureEntry, smoothing: boolean | null): GPUBindGroup;
|
|
22
24
|
export declare function submitWgpuQuadDraw(state: WgpuRenderState, uniformOffset: number, textureBindGroup: GPUBindGroup): void;
|
|
23
25
|
export declare function updateWgpuTextureEntry(state: WgpuRenderState, entry: WgpuTextureEntry, canvas: HTMLCanvasElement): void;
|
package/dist/wgpuDraw.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgpuDraw.d.ts","sourceRoot":"","sources":["../src/wgpuDraw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,
|
|
1
|
+
{"version":3,"file":"wgpuDraw.d.ts","sourceRoot":"","sources":["../src/wgpuDraw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,cAAc,EACd,eAAe,EAGf,aAAa,EACb,OAAO,EACP,WAAW,EACX,aAAa,EAEb,eAAe,EAEf,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAMrD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAE5F;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,YAAY,UAAQ,EACpB,WAAW,UAAQ,GAClB,gBAAgB,CAElB;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,GAC/B,gBAAgB,GAAG,IAAI,CAEzB;AAMD,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC9B,YAAY,UAAQ,EACpB,WAAW,UAAQ,GAClB,gBAAgB,CAElB;AAuCD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,iBAAiB,EAC9B,YAAY,UAAQ,GACnB,gBAAgB,CAkElB;AAoBD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,GAC9B,qBAAqB,GAAG,IAAI,CA2C9B;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,YAAY,CAUzG;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,GACxB,gBAAgB,CA+BlB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CASxG;AAqBD,wBAAgB,YAAY,CAC1B,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,aAAa,EAC1B,YAAY,EAAE,gBAAgB,EAC9B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,IAAI,CAoBN;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,eAAe,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EACjF,YAAY,EAAE,gBAAgB,EAC9B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,IAAI,CAmBN;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAEvE;AAID,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,cAAc,GAAG,IAAI,CAE1G;AAQD,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,OAAO,GAAG,IAAI,GACxB,YAAY,CAOd;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,YAAY,GAC7B,IAAI,CAUN;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAUN;AAGD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAG9D"}
|
package/dist/wgpuDraw.js
CHANGED
|
@@ -1,23 +1,32 @@
|
|
|
1
|
-
import { BlendMode } from '@flighthq/types';
|
|
1
|
+
import { BlendMode } from '@flighthq/types/contract';
|
|
2
2
|
import { generateWgpuMipmaps, getWgpuMipLevelCount } from './wgpuMipmap';
|
|
3
3
|
import { getWgpuRenderStateRuntime, getWgpuSampler } from './wgpuRenderState';
|
|
4
4
|
import { getActiveWgpuPipeline, getWgpuPipeline, writeWgpuQuadUniforms } from './wgpuShader';
|
|
5
5
|
export function applyWgpuBlendMode(state, blendMode) {
|
|
6
6
|
getWgpuRenderStateRuntime(state).currentBlendMode = blendMode;
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
//
|
|
15
|
-
|
|
16
|
-
|
|
8
|
+
export function bindWgpuBitmapTexture(state, bitmap, generateMips = false, premultiply = false) {
|
|
9
|
+
return bindWgpuImageBackingTexture(state, bitmap, generateMips, premultiply, uploadWgpuBitmapEntry);
|
|
10
|
+
}
|
|
11
|
+
export function bindWgpuCompressedImageTexture(state, image) {
|
|
12
|
+
return bindWgpuImageBackingTexture(state, image, false, false, uploadWgpuCompressedImageEntry);
|
|
13
|
+
}
|
|
14
|
+
// Uploads and caches the WebGPU texture for an ImageResource. Bitmap and CompressedImage use sibling
|
|
15
|
+
// entry points below; they share only the identity/version cache bracket and keep representation-specific
|
|
16
|
+
// uploaders. Premultiplied and straight requests use separate caches so 2D and 3D sampling of one backing
|
|
17
|
+
// cannot rewrite each other's realization. Returns the texture, view, and 2D bind group.
|
|
18
|
+
export function bindWgpuImageResourceTexture(state, image, generateMips = false, premultiply = false) {
|
|
19
|
+
return bindWgpuImageBackingTexture(state, image, generateMips, premultiply, uploadWgpuImageResourceEntry);
|
|
20
|
+
}
|
|
21
|
+
function bindWgpuImageBackingTexture(state, image, generateMips, premultiply, upload) {
|
|
22
|
+
const runtime = getWgpuRenderStateRuntime(state);
|
|
23
|
+
const cache = premultiply ? runtime.imageBackingPremultipliedTextureCache : runtime.imageBackingStraightTextureCache;
|
|
17
24
|
const cached = cache.get(image);
|
|
18
25
|
if (cached !== undefined && cached.version === image.version)
|
|
19
26
|
return cached;
|
|
20
|
-
const built =
|
|
27
|
+
const built = upload(state, image, generateMips, premultiply);
|
|
28
|
+
if (built === null)
|
|
29
|
+
return null;
|
|
21
30
|
if (cached !== undefined) {
|
|
22
31
|
cached.texture.destroy();
|
|
23
32
|
cached.texture = built.texture;
|
|
@@ -110,11 +119,12 @@ function buildWgpuSmoothingBindGroup(state, runtime, view, sampler) {
|
|
|
110
119
|
],
|
|
111
120
|
});
|
|
112
121
|
}
|
|
113
|
-
// Dynamic
|
|
114
|
-
//
|
|
122
|
+
// Dynamic host-video upload. The texture is cached by ImageResource backing and copied only when its
|
|
123
|
+
// version advances; a resolution change recreates the allocation/view, and a sampler mutation rebuilds
|
|
115
124
|
// only the bind group. Returns null until the backing element has a decoded frame.
|
|
116
125
|
export function bindWgpuVideoTexture(state, videoTexture) {
|
|
117
|
-
const
|
|
126
|
+
const image = videoTexture.storage.image;
|
|
127
|
+
const element = (image?.source ?? null);
|
|
118
128
|
if (element === null || element.readyState < 2 || element.videoWidth <= 0 || element.videoHeight <= 0)
|
|
119
129
|
return null;
|
|
120
130
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
@@ -122,7 +132,7 @@ export function bindWgpuVideoTexture(state, videoTexture) {
|
|
|
122
132
|
const width = element.videoWidth;
|
|
123
133
|
const height = element.videoHeight;
|
|
124
134
|
const sampler = getWgpuVideoSampler(state, videoTexture);
|
|
125
|
-
let entry = cache.get(
|
|
135
|
+
let entry = cache.get(image);
|
|
126
136
|
if (entry === undefined || entry.width !== width || entry.height !== height) {
|
|
127
137
|
entry?.texture.destroy();
|
|
128
138
|
const texture = state.device.createTexture({
|
|
@@ -136,19 +146,19 @@ export function bindWgpuVideoTexture(state, videoTexture) {
|
|
|
136
146
|
height,
|
|
137
147
|
sampler,
|
|
138
148
|
texture,
|
|
139
|
-
|
|
149
|
+
uploadedVersion: -1,
|
|
140
150
|
view,
|
|
141
151
|
width,
|
|
142
152
|
};
|
|
143
|
-
cache.set(
|
|
153
|
+
cache.set(image, entry);
|
|
144
154
|
}
|
|
145
155
|
else if (entry.sampler !== sampler) {
|
|
146
156
|
entry.sampler = sampler;
|
|
147
157
|
entry.bindGroup = buildWgpuTextureBindGroup(state, entry.view, sampler);
|
|
148
158
|
}
|
|
149
|
-
if (entry.
|
|
159
|
+
if (entry.uploadedVersion !== image.version) {
|
|
150
160
|
state.device.queue.copyExternalImageToTexture({ source: element, flipY: false }, { texture: entry.texture, premultipliedAlpha: true }, [width, height]);
|
|
151
|
-
entry.
|
|
161
|
+
entry.uploadedVersion = image.version;
|
|
152
162
|
}
|
|
153
163
|
return entry;
|
|
154
164
|
}
|
|
@@ -187,12 +197,15 @@ export function createWgpuTextureEntry(state, width, height, canvas) {
|
|
|
187
197
|
return { texture, view, bindGroup };
|
|
188
198
|
}
|
|
189
199
|
export function destroyWgpuVideoTexture(state, videoTexture) {
|
|
200
|
+
const image = videoTexture.storage.image;
|
|
201
|
+
if (image == null)
|
|
202
|
+
return false;
|
|
190
203
|
const cache = getWgpuRenderStateRuntime(state).videoTextureCache;
|
|
191
|
-
const entry = cache?.get(
|
|
204
|
+
const entry = cache?.get(image);
|
|
192
205
|
if (entry === undefined)
|
|
193
206
|
return false;
|
|
194
207
|
entry.texture.destroy();
|
|
195
|
-
cache.delete(
|
|
208
|
+
cache.delete(image);
|
|
196
209
|
return true;
|
|
197
210
|
}
|
|
198
211
|
function buildWgpuTextureBindGroup(state, view, sampler) {
|
|
@@ -217,23 +230,23 @@ export function drawWgpuQuad(state, renderProxy, textureEntry, x0, y0, x1, y1, u
|
|
|
217
230
|
const pass = runtime.renderPass;
|
|
218
231
|
if (pass === null)
|
|
219
232
|
return;
|
|
220
|
-
const uniformOffset = writeWgpuQuadUniforms(state, renderProxy,
|
|
233
|
+
const uniformOffset = writeWgpuQuadUniforms(state, renderProxy, getWgpuRenderProxyColorScaleBias(renderProxy), x0, y0, x1, y1, u0, v0, u1, v1, textureEntry.straightAlpha === true);
|
|
221
234
|
submitWgpuQuadDraw(state, uniformOffset, textureEntry.bindGroup);
|
|
222
235
|
}
|
|
223
236
|
export function drawWgpuQuadWithTransform(state, renderProxy, transform, textureEntry, x0, y0, x1, y1, u0, v0, u1, v1) {
|
|
224
237
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
225
238
|
if (runtime.renderPass === null)
|
|
226
239
|
return;
|
|
227
|
-
const uniformOffset = writeWgpuQuadUniforms(state, { alpha: renderProxy.alpha, transform2D: transform },
|
|
240
|
+
const uniformOffset = writeWgpuQuadUniforms(state, { alpha: renderProxy.alpha, transform2D: transform }, getWgpuRenderProxyColorScaleBias(renderProxy), x0, y0, x1, y1, u0, v0, u1, v1, textureEntry.straightAlpha === true);
|
|
228
241
|
submitWgpuQuadDraw(state, uniformOffset, textureEntry.bindGroup);
|
|
229
242
|
}
|
|
230
243
|
export function enableWgpuBlendModeSupport(state) {
|
|
231
244
|
state.applyBlendMode = applyWgpuBlendMode;
|
|
232
245
|
}
|
|
233
|
-
// Effective node-level color
|
|
246
|
+
// Effective node-level color adjustment for a render node — the resolved HasColorScaleBias trait. Used
|
|
234
247
|
// by the immediate (display-object) draw path; the batch path folds it per-instance instead.
|
|
235
|
-
export function
|
|
236
|
-
return renderProxy.
|
|
248
|
+
export function getWgpuRenderProxyColorScaleBias(renderProxy) {
|
|
249
|
+
return renderProxy.colorScaleBias ?? null;
|
|
237
250
|
}
|
|
238
251
|
// The group(1) bind group a 2D bitmap should sample through for a per-bitmap `smoothing` preference:
|
|
239
252
|
// `null` returns the entry's default bind group (the global `state.allowSmoothing` sampler, for
|
|
@@ -287,20 +300,14 @@ function premultiplyStraightRgba8(data) {
|
|
|
287
300
|
}
|
|
288
301
|
return out;
|
|
289
302
|
}
|
|
290
|
-
// Allocates a GPU texture for
|
|
291
|
-
//
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
function uploadWgpuImageResourceEntry(state, image, generateMips) {
|
|
303
|
+
// Allocates a GPU texture for a Bitmap and writes its CPU-readable pixels, premultiplying a straight
|
|
304
|
+
// bitmap only when the caller requests a premultiplied realization.
|
|
305
|
+
function uploadWgpuBitmapEntry(state, image, generateMips, premultiply) {
|
|
306
|
+
const bitmap = image;
|
|
295
307
|
const runtime = getWgpuRenderStateRuntime(state);
|
|
296
308
|
const { device } = state;
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
if (compressed != null)
|
|
300
|
-
return compressed;
|
|
301
|
-
}
|
|
302
|
-
const width = image.width || 1;
|
|
303
|
-
const height = image.height || 1;
|
|
309
|
+
const width = bitmap.width || 1;
|
|
310
|
+
const height = bitmap.height || 1;
|
|
304
311
|
const mipLevelCount = generateMips ? getWgpuMipLevelCount(width, height) : 1;
|
|
305
312
|
const texture = device.createTexture({
|
|
306
313
|
size: [width, height, 1],
|
|
@@ -308,13 +315,40 @@ function uploadWgpuImageResourceEntry(state, image, generateMips) {
|
|
|
308
315
|
mipLevelCount,
|
|
309
316
|
usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT,
|
|
310
317
|
});
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
+
const transform = premultiply && bitmap.alphaType !== 'premultiplied';
|
|
319
|
+
const data = transform ? premultiplyStraightRgba8(bitmap.data) : bitmap.data;
|
|
320
|
+
device.queue.writeTexture({ texture }, data, { bytesPerRow: width * 4, rowsPerImage: height }, [width, height, 1]);
|
|
321
|
+
if (mipLevelCount > 1)
|
|
322
|
+
generateWgpuMipmaps(state, texture, width, height, 'rgba8unorm');
|
|
323
|
+
const view = texture.createView();
|
|
324
|
+
const sampler = state.allowSmoothing ? runtime.linearSampler : runtime.nearestSampler;
|
|
325
|
+
const bindGroup = device.createBindGroup({
|
|
326
|
+
layout: runtime.textureBindGroupLayout,
|
|
327
|
+
entries: [
|
|
328
|
+
{ binding: 0, resource: view },
|
|
329
|
+
{ binding: 1, resource: sampler },
|
|
330
|
+
],
|
|
331
|
+
});
|
|
332
|
+
return { texture, view, bindGroup };
|
|
333
|
+
}
|
|
334
|
+
function uploadWgpuCompressedImageEntry(state, image) {
|
|
335
|
+
const runtime = getWgpuRenderStateRuntime(state);
|
|
336
|
+
return (runtime.compressedTextureUpload?.(state, image, runtime.compressedTextureDecoder ?? null) ?? null);
|
|
337
|
+
}
|
|
338
|
+
function uploadWgpuImageResourceEntry(state, image, generateMips, premultiply) {
|
|
339
|
+
const resource = image;
|
|
340
|
+
const runtime = getWgpuRenderStateRuntime(state);
|
|
341
|
+
const { device } = state;
|
|
342
|
+
const width = resource.width || 1;
|
|
343
|
+
const height = resource.height || 1;
|
|
344
|
+
const mipLevelCount = generateMips ? getWgpuMipLevelCount(width, height) : 1;
|
|
345
|
+
const texture = device.createTexture({
|
|
346
|
+
size: [width, height, 1],
|
|
347
|
+
format: 'rgba8unorm',
|
|
348
|
+
mipLevelCount,
|
|
349
|
+
usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT,
|
|
350
|
+
});
|
|
351
|
+
device.queue.copyExternalImageToTexture({ source: resource.source, flipY: false }, { texture, premultipliedAlpha: premultiply }, [width, height]);
|
|
318
352
|
if (mipLevelCount > 1)
|
|
319
353
|
generateWgpuMipmaps(state, texture, width, height, 'rgba8unorm');
|
|
320
354
|
const view = texture.createView();
|