@nativescript/canvas 2.0.0-webgpu.16 → 2.0.0-webgpu.18

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.
Files changed (31) hide show
  1. package/ImageBitmap/index.js +86 -0
  2. package/ImageBitmap/index.js.map +1 -1
  3. package/WebGPU/GPUBuffer.js +9 -1
  4. package/WebGPU/GPUBuffer.js.map +1 -1
  5. package/WebGPU/GPUCanvasContext.js +14 -2
  6. package/WebGPU/GPUCanvasContext.js.map +1 -1
  7. package/WebGPU/GPUCommandEncoder.js +139 -25
  8. package/WebGPU/GPUCommandEncoder.js.map +1 -1
  9. package/WebGPU/GPUDevice.js +59 -24
  10. package/WebGPU/GPUDevice.js.map +1 -1
  11. package/package.json +1 -1
  12. package/platforms/android/canvas-release.aar +0 -0
  13. package/platforms/ios/CanvasNative.xcframework/Info.plist +5 -5
  14. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  15. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  16. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +6746 -6146
  17. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  18. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +110 -110
  19. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  20. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  21. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  22. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +6746 -6146
  23. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +6746 -6146
  24. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +4 -4
  25. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  26. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +582 -582
  27. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasNative.yml +561 -561
  28. package/platforms/ios/src/cpp/CanvasJSIModule.cpp +2 -1
  29. package/platforms/ios/src/cpp/ImageBitmapImpl.cpp +38 -0
  30. package/platforms/ios/src/cpp/ImageBitmapImpl.h +4 -0
  31. package/platforms/ios/src/cpp/webgpu/GPUBufferImpl.cpp +2 -0
@@ -3,6 +3,47 @@ import { ImageData } from '../Canvas2D';
3
3
  import { Canvas } from '../Canvas';
4
4
  import { ImageSource } from '@nativescript/core';
5
5
  import { Helpers } from '../helpers';
6
+ function parseOptions(options) {
7
+ if (__ANDROID__) {
8
+ const opts = new org.nativescript.canvas.NSCImageBitmap.Options();
9
+ if (options?.imageOrientation === 'flipY') {
10
+ opts.setImageOrientation(org.nativescript.canvas.ImageBitmapImageOrientation.FlipY);
11
+ }
12
+ switch (options?.premultiplyAlpha) {
13
+ case 'premultiply':
14
+ opts.setPremultiplyAlpha(org.nativescript.canvas.ImageBitmapPremultiplyAlpha.PremultiplyAlpha);
15
+ break;
16
+ case 'none':
17
+ opts.setPremultiplyAlpha(org.nativescript.canvas.ImageBitmapPremultiplyAlpha.None);
18
+ break;
19
+ }
20
+ if (options?.colorSpaceConversion === 'none') {
21
+ opts.setColorSpaceConversion(org.nativescript.canvas.ImageBitmapColorSpaceConversion.None);
22
+ }
23
+ if (typeof options?.resizeWidth === 'number') {
24
+ opts.setResizeWidth(options.resizeWidth);
25
+ }
26
+ if (typeof options?.resizeHeight === 'number') {
27
+ opts.setResizeHeight(options.resizeWidth);
28
+ }
29
+ switch (options?.resizeQuality) {
30
+ case 'medium':
31
+ opts.setResizeQuality(org.nativescript.canvas.ImageBitmapResizeQuality.Medium);
32
+ break;
33
+ case 'high':
34
+ opts.setResizeQuality(org.nativescript.canvas.ImageBitmapResizeQuality.High);
35
+ break;
36
+ case 'pixelated':
37
+ opts.setResizeQuality(org.nativescript.canvas.ImageBitmapResizeQuality.Pixelated);
38
+ break;
39
+ }
40
+ if (options?.premultiplyAlpha === 'flipY') {
41
+ opts.setImageOrientation(org.nativescript.canvas.ImageBitmapImageOrientation.FlipY);
42
+ }
43
+ return opts;
44
+ }
45
+ return options;
46
+ }
6
47
  export class ImageBitmap {
7
48
  get native() {
8
49
  return this._native;
@@ -67,6 +108,31 @@ export class ImageBitmap {
67
108
  realSource = source.ios; // todo
68
109
  }
69
110
  }
111
+ if (__ANDROID__) {
112
+ if (ArrayBuffer.isView(realSource)) {
113
+ const asset = new global.CanvasModule.ImageAsset();
114
+ const ptr = long(asset.__getRef());
115
+ const cb = new org.nativescript.canvas.NSCImageBitmap.Callback({
116
+ onComplete(done) {
117
+ if (done) {
118
+ const value = global.CanvasModule.ImageBitmap.fromAsset(asset);
119
+ resolve(ImageBitmap.fromNative(value));
120
+ }
121
+ else {
122
+ reject(new Error('Failed to create ImageBitmap'));
123
+ }
124
+ },
125
+ });
126
+ if (options) {
127
+ const opts = parseOptions(options);
128
+ org.nativescript.canvas.NSCImageBitmap.createFromOptions(ptr, realSource, opts, cb);
129
+ }
130
+ else {
131
+ org.nativescript.canvas.NSCImageBitmap.createFrom(ptr, realSource, cb);
132
+ }
133
+ }
134
+ return;
135
+ }
70
136
  global.CanvasModule.createImageBitmap(realSource, options, (error, value) => {
71
137
  if (value) {
72
138
  resolve(ImageBitmap.fromNative(value));
@@ -119,6 +185,26 @@ export class ImageBitmap {
119
185
  realSource = source.ios; // todo
120
186
  }
121
187
  }
188
+ if (__ANDROID__) {
189
+ if (ArrayBuffer.isView(realSource)) {
190
+ const asset = new global.CanvasModule.ImageAsset();
191
+ const ptr = long(asset.__getRef());
192
+ const cb = new org.nativescript.canvas.NSCImageBitmap.Callback({
193
+ onComplete(done) {
194
+ if (done) {
195
+ const value = global.CanvasModule.ImageBitmap.fromAsset(asset);
196
+ resolve(ImageBitmap.fromNative(value));
197
+ }
198
+ else {
199
+ reject(new Error('Failed to create ImageBitmap'));
200
+ }
201
+ },
202
+ });
203
+ const opts = parseOptions(options ?? {});
204
+ org.nativescript.canvas.NSCImageBitmap.createFromRectOptions(ptr, realSource, sx, sy, sWidth, sHeight, opts, cb);
205
+ }
206
+ return;
207
+ }
122
208
  global.CanvasModule.createImageBitmap(realSource, sx, sy, sWidth, sHeight, options, (error, value) => {
123
209
  if (value) {
124
210
  resolve(ImageBitmap.fromNative(value));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/canvas/ImageBitmap/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/canvas/ImageBitmap/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,SAAS,YAAY,CAAC,OAAO;IAC5B,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAClE,IAAI,OAAO,EAAE,gBAAgB,KAAK,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACrF,CAAC;QAED,QAAQ,OAAO,EAAE,gBAAgB,EAAE,CAAC;YACnC,KAAK,aAAa;gBACjB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,CAAC;gBAC/F,MAAM;YACP,KAAK,MAAM;gBACV,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;gBACnF,MAAM;QACR,CAAC;QAED,IAAI,OAAO,EAAE,oBAAoB,KAAK,MAAM,EAAE,CAAC;YAC9C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;QAC5F,CAAC;QAED,IAAI,OAAO,OAAO,EAAE,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC9C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,OAAO,OAAO,EAAE,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;QAED,QAAQ,OAAO,EAAE,aAAa,EAAE,CAAC;YAChC,KAAK,QAAQ;gBACZ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;gBAC/E,MAAM;YACP,KAAK,MAAM;gBACV,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;gBAC7E,MAAM;YACP,KAAK,WAAW;gBACf,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;gBAClF,MAAM;QACR,CAAC;QAED,IAAI,OAAO,EAAE,gBAAgB,KAAK,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACrF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,OAAO,WAAW;IAMvB,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,YAAoB,MAAW;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAK;QACtB,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAW,EAAE,OAAY;QAC1C,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM;YAC3C,IAAI,UAAU,CAAC;YAEf,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;gBAC9B,UAAU,GAAI,MAAc,CAAC,MAAM,CAAC;YACrC,CAAC;iBAAM,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;gBAC1C,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,CAAC;iBAAM,IAAI,MAAM,YAAY,UAAU,EAAE,CAAC;gBACzC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,CAAC;iBAAM,IAAI,MAAM,YAAY,SAAS,EAAE,CAAC;gBACxC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,CAAC;iBAAM,IAAI,MAAM,YAAY,IAAI,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAI,IAAY,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAe,CAAC;gBAC7E,UAAU,GAAG,KAAK,CAAC;gBACnB,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC/B,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC3C,CAAC;YACF,CAAC;iBAAM,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACvF,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;oBAC5D,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;gBACnC,CAAC;qBAAM,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,YAAY,MAAM,EAAE,CAAC;oBAC5E,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpC,CAAC;YACF,CAAC;iBAAM,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;gBAC1C,2BAA2B;gBAC3B,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;gBAC1C,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACtB,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO;gBACrC,CAAC;gBACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAClB,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO;gBACjC,CAAC;YACF,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBACjB,IAAI,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBACpC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;oBACnD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACnC,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC9D,UAAU,CAAC,IAAI;4BACd,IAAI,IAAI,EAAE,CAAC;gCACV,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gCAC/D,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;4BACxC,CAAC;iCAAM,CAAC;gCACP,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;4BACnD,CAAC;wBACF,CAAC;qBACD,CAAC,CAAC;oBACH,IAAI,OAAO,EAAE,CAAC;wBACb,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;wBACnC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG,EAAE,UAAmB,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC9F,CAAC;yBAAM,CAAC;wBACP,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE,UAAmB,EAAE,EAAE,CAAC,CAAC;oBACjF,CAAC;gBACF,CAAC;gBACD,OAAO;YACR,CAAC;YAED,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC3E,IAAI,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACP,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1B,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAW,EAAE,EAAU,EAAE,EAAU,EAAE,MAAc,EAAE,OAAe,EAAE,OAAY;QACvG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,UAAU,CAAC;YACf,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;gBAC9B,UAAU,GAAI,MAAc,CAAC,MAAM,CAAC;YACrC,CAAC;iBAAM,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;gBAC1C,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,CAAC;iBAAM,IAAI,MAAM,YAAY,UAAU,EAAE,CAAC;gBACzC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,CAAC;iBAAM,IAAI,MAAM,YAAY,SAAS,EAAE,CAAC;gBACxC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;YAC5B,CAAC;iBAAM,IAAI,MAAM,YAAY,IAAI,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAI,IAAY,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC/D,UAAU,GAAG,KAAK,CAAC;gBACnB,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC/B,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC3C,CAAC;YACF,CAAC;iBAAM,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACvF,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;oBAC5D,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;gBACnC,CAAC;qBAAM,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,YAAY,MAAM,EAAE,CAAC;oBAC5E,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpC,CAAC;YACF,CAAC;iBAAM,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;gBAC1C,2BAA2B;gBAC3B,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;gBAC1C,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACtB,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO;gBACrC,CAAC;gBAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAClB,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO;gBACjC,CAAC;YACF,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBACjB,IAAI,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBACpC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;oBACnD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACnC,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC;wBAC9D,UAAU,CAAC,IAAI;4BACd,IAAI,IAAI,EAAE,CAAC;gCACV,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gCAC/D,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;4BACxC,CAAC;iCAAM,CAAC;gCACP,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;4BACnD,CAAC;wBACF,CAAC;qBACD,CAAC,CAAC;oBACH,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;oBACzC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,qBAAqB,CAAC,GAAG,EAAE,UAAmB,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC3H,CAAC;gBACD,OAAO;YACR,CAAC;YAED,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACpG,IAAI,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACP,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1B,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AAtKA;IACC,OAAO,CAAC,UAAU,EAAE,CAAC;AACtB,CAAC,GAAA,CAAA"}
@@ -33,9 +33,17 @@ export class GPUBuffer {
33
33
  return this[native_].getMappedRange(offset, rangeSize);
34
34
  }
35
35
  mapAsync(mode, offset, size) {
36
- return this[native_].mapAsync(mode, offset, size).then((value) => {
36
+ const previousSrc = this[mapState_];
37
+ this[mapState_] = 'pending';
38
+ return this[native_]
39
+ .mapAsync(mode, offset, size)
40
+ .then((value) => {
37
41
  this[mapState_] = 'mapped';
38
42
  return value;
43
+ })
44
+ .catch((e) => {
45
+ this[mapState_] = previousSrc;
46
+ throw e;
39
47
  });
40
48
  }
41
49
  unmap() {
@@ -1 +1 @@
1
- {"version":3,"file":"GPUBuffer.js","sourceRoot":"","sources":["../../../../packages/canvas/WebGPU/GPUBuffer.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAO,SAAS;IAAtB;QAEC,QAAW,GAAsC,UAAU,CAAC;IA4D7D,CAAC;IA1DA,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,OAAO;QACN,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAED,cAAc,CAAC,MAAe,EAAE,IAAa;QAC5C,IAAI,SAAS,CAAC;QACd,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACP,SAAS,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,MAAe,EAAE,IAAa;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YAChE,IAAI,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;YAC3B,OAAO,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,mBAA4B,KAAK;QAC1D,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACtB,IAAI,gBAAgB,EAAE,CAAC;gBACtB,GAAG,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;YAC3B,CAAC;YACD,OAAO,GAAG,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD;KA5DC,SAAS"}
1
+ {"version":3,"file":"GPUBuffer.js","sourceRoot":"","sources":["../../../../packages/canvas/WebGPU/GPUBuffer.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAO,SAAS;IAAtB;QAEC,QAAW,GAAsC,UAAU,CAAC;IAoE7D,CAAC;IAlEA,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,OAAO;QACN,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAED,cAAc,CAAC,MAAe,EAAE,IAAa;QAC5C,IAAI,SAAS,CAAC;QACd,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACP,SAAS,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,MAAe,EAAE,IAAa;QACpD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC;aAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;aAC5B,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;YAC3B,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;YAC9B,MAAM,CAAC,CAAC;QACT,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,mBAA4B,KAAK;QAC1D,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACtB,IAAI,gBAAgB,EAAE,CAAC;gBACtB,GAAG,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;YAC3B,CAAC;YACD,OAAO,GAAG,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD;KApEC,SAAS"}
@@ -45,8 +45,20 @@ export class GPUCanvasContext {
45
45
  }
46
46
  else {
47
47
  if (!capabilities.alphaModes.includes(options.alphaMode) && (options.alphaMode === 'opaque' || options.alphaMode === 'premultiplied')) {
48
- opts.alphaMode = capabilities.alphaModes[0];
49
- console.warn(`GPUCanvasContext: configure alphaMode ${options.alphaMode} unsupported falling back to ${capabilities.alphaModes[0]}`);
48
+ if (__IOS__ && options.alphaMode === 'premultiplied') {
49
+ let index = capabilities.alphaModes.indexOf('premultiplied');
50
+ if (index === -1) {
51
+ index = capabilities.alphaModes.indexOf('postmultiplied');
52
+ }
53
+ if (index === -1) {
54
+ index = 0;
55
+ }
56
+ opts.alphaMode = capabilities.alphaModes[index];
57
+ }
58
+ else {
59
+ opts.alphaMode = capabilities.alphaModes[0];
60
+ }
61
+ console.warn(`GPUCanvasContext: configure alphaMode ${options.alphaMode} unsupported falling back to ${opts.alphaMode}`);
50
62
  }
51
63
  }
52
64
  if (__ANDROID__ && !capabilities.format.includes(options.format) && (options.format === 'bgra8unorm' || options.format === 'bgra8unorm-srgb')) {
@@ -1 +1 @@
1
- {"version":3,"file":"GPUCanvasContext.js","sourceRoot":"","sources":["../../../../packages/canvas/WebGPU/GPUCanvasContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,OAAO,gBAAgB;IAU5B,YAAY,OAAY,EAAE,cAAc;QACvC,IAAI,aAAa,GAAG,GAAG,CAAC;QACxB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,CAAC;QACvD,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAClD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,OAAsO;QAC/O,MAAM,IAAI,GAAG;YACZ,KAAK,EAAE,eAAe,CAAC,iBAAiB;YACxC,UAAU,EAAE,MAAM;YAClB,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,MAAM;YACnB,GAAG,OAAO;SACV,CAAC;QACF,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEvE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBAC1B,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,eAAe,CAAC,EAAE,CAAC;oBACvI,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC5C,OAAO,CAAC,IAAI,CAAC,yCAAyC,OAAO,CAAC,SAAS,gCAAgC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtI,CAAC;YACF,CAAC;YAED,IAAI,WAAW,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,YAAY,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CAAC,EAAE,CAAC;gBAC/I,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrC,wCAAwC;gBACxC,IAAI,IAAI,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;oBACvC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;gBAC5B,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,sCAAsC,OAAO,CAAC,MAAM,gCAAgC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACjH,CAAC;YAED,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;oBAClD,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,sCAAsC,OAAO,CAAC,MAAM,gCAAgC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACjH,CAAC;YAED,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;gBACjD,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,iEAAiE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;YACtG,CAAC;QACF,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,WAAW;QACV,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAGD,iBAAiB;QAChB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,eAAe,CAAC;QAC7B,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAElD,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IAED,cAAc;QACb,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC;IACF,CAAC;IAED,eAAe,CAAC,OAAmB;QAMlC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC;CACD;AA9HA;IACC,OAAO,CAAC,UAAU,EAAE,CAAC;AACtB,CAAC,GAAA,CAAA"}
1
+ {"version":3,"file":"GPUCanvasContext.js","sourceRoot":"","sources":["../../../../packages/canvas/WebGPU/GPUCanvasContext.ts"],"names":[],"mappings":"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"}
@@ -15,37 +15,77 @@ export class GPUCommandEncoder {
15
15
  return null;
16
16
  }
17
17
  beginComputePass(descriptor) {
18
+ const desc = {
19
+ label: descriptor?.label,
20
+ };
18
21
  if (descriptor?.timestampWrites) {
19
- descriptor.timestampWrites.querySet = descriptor.timestampWrites.querySet[native_];
22
+ desc.timestampWrites = {
23
+ beginningOfPassWriteIndex: descriptor.timestampWrites.beginningOfPassWriteIndex,
24
+ endOfPassWriteIndex: descriptor.timestampWrites.endOfPassWriteIndex,
25
+ querySet: descriptor.timestampWrites?.querySet?.[native_],
26
+ };
20
27
  }
21
- return GPUComputePassEncoder.fromNative(this[native_].beginComputePass(descriptor));
28
+ return GPUComputePassEncoder.fromNative(this[native_].beginComputePass(desc));
22
29
  }
23
30
  beginRenderPass(descriptor) {
24
- descriptor.colorAttachments = descriptor.colorAttachments.map((attachment) => {
31
+ const desc = {
32
+ colorAttachments: new Array(descriptor?.colorAttachments?.length ?? 0),
33
+ label: descriptor?.label,
34
+ maxDrawCount: descriptor?.maxDrawCount,
35
+ };
36
+ descriptor.colorAttachments.forEach((attachment, i) => {
37
+ const newAttachment = {
38
+ loadOp: 'load',
39
+ storeOp: 'store',
40
+ view: null,
41
+ };
25
42
  if (Array.isArray(attachment.clearValue)) {
26
- attachment.clearValue = { r: attachment.clearValue[0], g: attachment.clearValue[1], b: attachment.clearValue[2], a: attachment.clearValue[3] };
43
+ newAttachment.clearValue = { r: attachment.clearValue[0], g: attachment.clearValue[1], b: attachment.clearValue[2], a: attachment.clearValue[3] };
27
44
  }
28
45
  if (attachment.view) {
29
- attachment.view = attachment.view[native_];
46
+ newAttachment.view = attachment.view[native_];
30
47
  }
31
48
  else {
32
49
  /// ???
33
50
  }
34
51
  if (attachment.resolveTarget) {
35
- attachment.resolveTarget = attachment.resolveTarget[native_];
52
+ newAttachment.resolveTarget = attachment.resolveTarget[native_];
53
+ }
54
+ if (typeof attachment?.depthSlice === 'number') {
55
+ newAttachment.depthSlice = attachment.depthSlice;
56
+ }
57
+ if (attachment.loadOp) {
58
+ newAttachment.loadOp = attachment.loadOp;
36
59
  }
37
- return attachment;
60
+ if (attachment.storeOp) {
61
+ newAttachment.storeOp = attachment.storeOp;
62
+ }
63
+ desc.colorAttachments[i] = newAttachment;
38
64
  });
39
- if (descriptor?.depthStencilAttachment?.view?.[native_]) {
40
- descriptor.depthStencilAttachment.view = descriptor.depthStencilAttachment.view[native_];
65
+ if (descriptor?.depthStencilAttachment) {
66
+ desc.depthStencilAttachment = {
67
+ depthLoadOp: descriptor.depthStencilAttachment.depthLoadOp,
68
+ depthStoreOp: descriptor.depthStencilAttachment.depthStoreOp,
69
+ view: descriptor.depthStencilAttachment.view?.[native_],
70
+ depthClearValue: descriptor.depthStencilAttachment.depthClearValue,
71
+ depthReadOnly: descriptor.depthStencilAttachment.depthReadOnly,
72
+ stencilLoadOp: descriptor.depthStencilAttachment.stencilLoadOp,
73
+ stencilStoreOp: descriptor.depthStencilAttachment.stencilStoreOp,
74
+ stencilClearValue: descriptor.depthStencilAttachment.stencilClearValue,
75
+ stencilReadOnly: descriptor.depthStencilAttachment.stencilReadOnly,
76
+ };
41
77
  }
42
78
  if (descriptor?.occlusionQuerySet) {
43
- descriptor.occlusionQuerySet = descriptor.occlusionQuerySet[native_];
79
+ desc.occlusionQuerySet = descriptor.occlusionQuerySet[native_];
44
80
  }
45
- if (descriptor?.timestampWrites?.querySet) {
46
- descriptor.timestampWrites.querySet = descriptor.timestampWrites.querySet[native_];
81
+ if (descriptor?.timestampWrites) {
82
+ desc.timestampWrites = {
83
+ beginningOfPassWriteIndex: descriptor.timestampWrites.beginningOfPassWriteIndex,
84
+ endOfPassWriteIndex: descriptor.timestampWrites.endOfPassWriteIndex,
85
+ querySet: descriptor.timestampWrites.querySet[native_],
86
+ };
47
87
  }
48
- const passEncoder = this[native_].beginRenderPass(descriptor);
88
+ const passEncoder = this[native_].beginRenderPass(desc);
49
89
  return GPURenderPassEncoder.fromNative(passEncoder);
50
90
  }
51
91
  clearBuffer(buffer, offset, size) {
@@ -55,40 +95,114 @@ export class GPUCommandEncoder {
55
95
  this[native_].copyBufferToBuffer(source[native_], sourceOffset, destination[native_], destinationOffset, size);
56
96
  }
57
97
  copyBufferToTexture(source, destination, copySize) {
58
- source.buffer = source.buffer[native_];
59
- destination.texture = destination.texture[native_];
98
+ const src = {
99
+ buffer: source.buffer[native_],
100
+ bytesPerRow: source.bytesPerRow,
101
+ };
102
+ if (typeof source.offset === 'number') {
103
+ src.offset = source.offset;
104
+ }
105
+ if (typeof source.rowsPerImage === 'number') {
106
+ src.rowsPerImage = source.rowsPerImage;
107
+ }
108
+ const dst = {
109
+ texture: destination.texture[native_],
110
+ };
111
+ if (destination.aspect) {
112
+ dst.aspect = destination.aspect;
113
+ }
114
+ if (typeof destination.mipLevel === 'number') {
115
+ dst.mipLevel = destination.mipLevel;
116
+ }
117
+ if (destination.origin) {
118
+ dst.origin = destination.origin;
119
+ }
120
+ let size;
60
121
  if (Array.isArray(copySize)) {
61
- copySize = {
122
+ size = {
62
123
  width: copySize[0],
63
124
  height: copySize[1] ?? 1,
64
125
  depthOrArrayLayers: copySize[2] ?? 1,
65
126
  };
66
127
  }
67
- this[native_].copyBufferToTexture(source, destination, copySize);
128
+ else {
129
+ size = { ...copySize };
130
+ }
131
+ this[native_].copyBufferToTexture(src, dst, size);
68
132
  }
69
133
  copyTextureToBuffer(source, destination, copySize) {
70
- source.texture = source.texture[native_];
71
- destination.buffer = destination.buffer[native_];
134
+ const src = {
135
+ texture: source.texture[native_],
136
+ };
137
+ if (source.aspect) {
138
+ src.aspect = source.aspect;
139
+ }
140
+ if (typeof source.mipLevel === 'number') {
141
+ src.mipLevel = source.mipLevel;
142
+ }
143
+ if (source.origin) {
144
+ src.origin = source.origin;
145
+ }
146
+ const dst = {
147
+ buffer: destination.buffer[native_],
148
+ bytesPerRow: destination.bytesPerRow,
149
+ };
150
+ if (typeof destination.offset === 'number') {
151
+ dst.offset = destination.offset;
152
+ }
153
+ if (typeof destination.rowsPerImage === 'number') {
154
+ dst.rowsPerImage = destination.rowsPerImage;
155
+ }
156
+ let size;
72
157
  if (Array.isArray(copySize)) {
73
- copySize = {
158
+ size = {
74
159
  width: copySize[0],
75
160
  height: copySize[1] ?? 1,
76
161
  depthOrArrayLayers: copySize[2] ?? 1,
77
162
  };
78
163
  }
79
- this[native_].copyTextureToBuffer(source, destination, copySize);
164
+ else {
165
+ size = { ...copySize };
166
+ }
167
+ this[native_].copyTextureToBuffer(src, dst, size);
80
168
  }
81
169
  copyTextureToTexture(source, destination, copySize) {
82
- source.texture = source.texture[native_];
83
- destination.texture = destination.texture[native_];
170
+ const src = {
171
+ texture: source.texture[native_],
172
+ };
173
+ if (source.aspect) {
174
+ src.aspect = source.aspect;
175
+ }
176
+ if (typeof source.mipLevel === 'number') {
177
+ src.mipLevel = source.mipLevel;
178
+ }
179
+ if (source.origin) {
180
+ src.origin = source.origin;
181
+ }
182
+ const dst = {
183
+ texture: destination.texture[native_],
184
+ };
185
+ if (destination.aspect) {
186
+ dst.aspect = destination.aspect;
187
+ }
188
+ if (typeof destination.mipLevel === 'number') {
189
+ dst.mipLevel = destination.mipLevel;
190
+ }
191
+ if (destination.origin) {
192
+ dst.origin = destination.origin;
193
+ }
194
+ let size;
84
195
  if (Array.isArray(copySize)) {
85
- copySize = {
196
+ size = {
86
197
  width: copySize[0],
87
198
  height: copySize[1] ?? 1,
88
199
  depthOrArrayLayers: copySize[2] ?? 1,
89
200
  };
90
201
  }
91
- this[native_].copyTextureToTexture(source, destination, copySize);
202
+ else {
203
+ size = { ...copySize };
204
+ }
205
+ this[native_].copyTextureToTexture(src, dst, size);
92
206
  }
93
207
  finish(descriptor) {
94
208
  const ret = this[native_].finish(descriptor);
@@ -1 +1 @@
1
- {"version":3,"file":"GPUCommandEncoder.js","sourceRoot":"","sources":["../../../../packages/canvas/WebGPU/GPUCommandEncoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GPUCommandEncoder.js","sourceRoot":"","sources":["../../../../packages/canvas/WebGPU/GPUCommandEncoder.ts"],"names":[],"mappings":"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"}
@@ -175,28 +175,44 @@ export class GPUDevice extends EventTarget {
175
175
  this.native.destroy();
176
176
  }
177
177
  createBindGroup(descriptor) {
178
- descriptor.layout = descriptor?.layout?.[native_];
178
+ const desc = {
179
+ layout: descriptor.layout[native_],
180
+ entries: [],
181
+ };
182
+ desc.label = descriptor?.label;
179
183
  if (Array.isArray(descriptor.entries)) {
180
- descriptor.entries = descriptor.entries.map((entry) => {
181
- var _a, _b;
184
+ for (const entry of descriptor.entries) {
182
185
  if (entry.resource instanceof GPUTextureView) {
183
- entry.resource = entry.resource[native_];
186
+ desc.entries.push({
187
+ binding: entry.binding,
188
+ resource: entry.resource[native_],
189
+ });
184
190
  }
185
191
  else if (entry.resource instanceof GPUSampler) {
186
- entry.resource = entry.resource[native_];
192
+ desc.entries.push({
193
+ binding: entry.binding,
194
+ resource: entry.resource[native_],
195
+ });
187
196
  }
188
197
  else if (entry.resource instanceof GPUExternalTexture) {
189
- entry.resource = entry.resource[native_];
198
+ desc.entries.push({
199
+ binding: entry.binding,
200
+ resource: entry.resource[native_],
201
+ });
190
202
  }
191
203
  else if (entry?.resource?.buffer && entry?.resource?.buffer instanceof GPUBuffer) {
192
- entry.resource.buffer = entry.resource.buffer[native_];
193
- (_a = entry.resource).offset ?? (_a.offset = 0);
194
- (_b = entry.resource).size ?? (_b.size = entry.resource.buffer.size - entry.resource.offset);
204
+ desc.entries.push({
205
+ binding: entry.binding,
206
+ resource: {
207
+ buffer: entry.resource.buffer[native_],
208
+ offset: entry.resource.offset ?? 0,
209
+ size: entry.resource.size ?? entry.resource.buffer.size - entry.resource.offset,
210
+ },
211
+ });
195
212
  }
196
- return entry;
197
- });
213
+ }
198
214
  }
199
- const group = this.native.createBindGroup(descriptor);
215
+ const group = this.native.createBindGroup(desc);
200
216
  if (group) {
201
217
  return GPUBindGroup.fromNative(group);
202
218
  }
@@ -221,11 +237,14 @@ export class GPUDevice extends EventTarget {
221
237
  return GPUCommandEncoder.fromNative(encoder);
222
238
  }
223
239
  createComputePipeline(descriptor) {
240
+ const desc = {
241
+ compute: descriptor.compute.module[native_],
242
+ layout: 'auto',
243
+ };
224
244
  if (descriptor.layout instanceof GPUPipelineLayout) {
225
- descriptor.layout = descriptor.layout[native_];
245
+ desc.layout = descriptor.layout[native_];
226
246
  }
227
- descriptor.compute.module = descriptor.compute.module[native_];
228
- return GPUComputePipeline.fromNative(this.native.createComputePipeline(descriptor));
247
+ return GPUComputePipeline.fromNative(this.native.createComputePipeline(desc));
229
248
  }
230
249
  createComputePipelineAsync(descriptor) {
231
250
  return new Promise((resolve, reject) => {
@@ -260,11 +279,16 @@ export class GPUDevice extends EventTarget {
260
279
  return GPURenderBundleEncoder.fromNative(this.native.createRenderBundleEncoder(descriptor));
261
280
  }
262
281
  createRenderPipeline(descriptor) {
282
+ const desc = {
283
+ vertex: {
284
+ module: descriptor.vertex.module[native_],
285
+ },
286
+ layout: 'auto',
287
+ };
263
288
  const vertex = descriptor.vertex;
264
- vertex.module = vertex.module[native_];
265
289
  const buffers = vertex?.buffers;
266
290
  if (Array.isArray(buffers)) {
267
- vertex.buffers = buffers.map((buffer) => {
291
+ desc.vertex.buffers = buffers.map((buffer) => {
268
292
  buffer.attributes = buffer.attributes.map((attr) => {
269
293
  attr.format = parseVertexFormat(attr.format);
270
294
  return attr;
@@ -274,16 +298,27 @@ export class GPUDevice extends EventTarget {
274
298
  }
275
299
  const fragment = descriptor.fragment;
276
300
  if (fragment) {
277
- handleUnsupportedPlatformFormat(fragment, 'createRenderPipeline');
278
- fragment.module = fragment.module[native_];
301
+ handleUnsupportedPlatformFormat(desc.fragment, 'createRenderPipeline');
302
+ desc.fragment = {
303
+ module: fragment.module[native_],
304
+ targets: fragment.targets,
305
+ constants: fragment.constants,
306
+ entryPoint: fragment.entryPoint,
307
+ };
279
308
  }
280
- const layout = descriptor.layout;
281
- if (layout instanceof GPUPipelineLayout) {
282
- descriptor.layout = descriptor.layout[native_];
309
+ if (descriptor.depthStencil) {
310
+ desc.depthStencil = descriptor.depthStencil;
283
311
  }
284
- else {
312
+ if (descriptor.multisample) {
313
+ desc.multisample = descriptor.multisample;
314
+ }
315
+ if (descriptor.primitive) {
316
+ desc.primitive = descriptor.primitive;
317
+ }
318
+ if (descriptor.layout instanceof GPUPipelineLayout) {
319
+ desc.layout = descriptor.layout[native_];
285
320
  }
286
- return GPURenderPipeline.fromNative(this[native_].createRenderPipeline(descriptor));
321
+ return GPURenderPipeline.fromNative(this[native_].createRenderPipeline(desc));
287
322
  }
288
323
  createRenderPipelineAsync(descriptor) {
289
324
  return new Promise((resolve, reject) => {