@nativescript/canvas 2.0.0-rc.10 → 2.0.0-rc.11

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 (82) hide show
  1. package/Canvas/index.android.js +6 -4
  2. package/Canvas/index.android.js.map +1 -1
  3. package/Canvas/index.ios.js +4 -3
  4. package/Canvas/index.ios.js.map +1 -1
  5. package/Canvas/utils.js +2 -1
  6. package/Canvas/utils.js.map +1 -1
  7. package/Canvas2D/CanvasRenderingContext2D/index.d.ts +1 -0
  8. package/Canvas2D/CanvasRenderingContext2D/index.js +158 -6
  9. package/Canvas2D/CanvasRenderingContext2D/index.js.map +1 -1
  10. package/Canvas2D/DOMMatrix/index.js +280 -2
  11. package/Canvas2D/DOMMatrix/index.js.map +1 -1
  12. package/Canvas2D/Path2D/index.js.map +1 -1
  13. package/WebGL/WebGLRenderingContext/index.js +0 -1
  14. package/WebGL/WebGLRenderingContext/index.js.map +1 -1
  15. package/WebGPU/GPUCanvasContext.d.ts +0 -1
  16. package/WebGPU/GPUCanvasContext.js +6 -18
  17. package/WebGPU/GPUCanvasContext.js.map +1 -1
  18. package/WebGPU/GPUCommandEncoder.d.ts +1 -1
  19. package/WebGPU/GPUCommandEncoder.js +1 -1
  20. package/WebGPU/GPUCommandEncoder.js.map +1 -1
  21. package/WebGPU/GPUDevice.d.ts +2 -2
  22. package/WebGPU/GPUDevice.js.map +1 -1
  23. package/WebGPU/GPUQueue.js +1 -4
  24. package/WebGPU/GPUQueue.js.map +1 -1
  25. package/WebGPU/GPURenderPassEncoder.d.ts +1 -1
  26. package/WebGPU/GPURenderPassEncoder.js +2 -2
  27. package/WebGPU/GPURenderPassEncoder.js.map +1 -1
  28. package/WebGPU/Interfaces.d.ts +1 -0
  29. package/WebGPU/Types.d.ts +3 -3
  30. package/WebGPU/Utils.d.ts +1 -1
  31. package/WebGPU/Utils.js +67 -93
  32. package/WebGPU/Utils.js.map +1 -1
  33. package/angular/fesm2022/nativescript-canvas-angular.mjs +5 -5
  34. package/angular/package.json +0 -2
  35. package/package.json +1 -1
  36. package/platforms/android/canvas-release.aar +0 -0
  37. package/platforms/ios/CanvasNative.xcframework/Info.plist +5 -5
  38. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  39. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative-Swift.h +10 -5
  40. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +249 -47
  41. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Info.plist +0 -0
  42. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  43. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +12361 -10901
  44. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.private.swiftinterface +55 -49
  45. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  46. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftinterface +55 -49
  47. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  48. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +954 -994
  49. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  50. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative-Swift.h +20 -10
  51. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +249 -47
  52. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Info.plist +0 -0
  53. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  54. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  55. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +12361 -10901
  56. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +55 -49
  57. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  58. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftinterface +55 -49
  59. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +12361 -10901
  60. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +55 -49
  61. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  62. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +55 -49
  63. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +29 -29
  64. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  65. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +955 -993
  66. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasNative.yml +824 -1037
  67. package/platforms/ios/src/cpp/CanvasJSIModule.cpp +1166 -1175
  68. package/platforms/ios/src/cpp/OnRafCallback.cpp +15 -10
  69. package/platforms/ios/src/cpp/OnRafCallback.h +1 -0
  70. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.cpp +59 -15
  71. package/platforms/ios/src/cpp/canvas2d/Path2D.cpp +1 -1
  72. package/platforms/ios/src/cpp/webgpu/GPUAdapterImpl.cpp +4 -8
  73. package/platforms/ios/src/cpp/webgpu/GPUCanvasContextImpl.cpp +431 -326
  74. package/platforms/ios/src/cpp/webgpu/GPUCanvasContextImpl.h +98 -42
  75. package/platforms/ios/src/cpp/webgpu/GPUCommandEncoderImpl.cpp +1150 -1144
  76. package/platforms/ios/src/cpp/webgpu/GPUDeviceImpl.cpp +69 -34
  77. package/platforms/ios/src/cpp/webgpu/GPUQueueImpl.cpp +45 -19
  78. package/platforms/ios/src/cpp/webgpu/GPURenderPassEncoderImpl.cpp +22 -19
  79. package/platforms/ios/src/cpp/webgpu/GPUTextureImpl.cpp +11 -0
  80. package/platforms/ios/src/cpp/webgpu/GPUUtils.h +25 -15
  81. package/angular/esm2022/index.mjs +0 -17
  82. package/angular/esm2022/nativescript-canvas-angular.mjs +0 -5
@@ -10,18 +10,15 @@
10
10
  <key>DebugSymbolsPath</key>
11
11
  <string>dSYMs</string>
12
12
  <key>LibraryIdentifier</key>
13
- <string>ios-arm64_x86_64-simulator</string>
13
+ <string>ios-arm64</string>
14
14
  <key>LibraryPath</key>
15
15
  <string>CanvasNative.framework</string>
16
16
  <key>SupportedArchitectures</key>
17
17
  <array>
18
18
  <string>arm64</string>
19
- <string>x86_64</string>
20
19
  </array>
21
20
  <key>SupportedPlatform</key>
22
21
  <string>ios</string>
23
- <key>SupportedPlatformVariant</key>
24
- <string>simulator</string>
25
22
  </dict>
26
23
  <dict>
27
24
  <key>BinaryPath</key>
@@ -29,15 +26,18 @@
29
26
  <key>DebugSymbolsPath</key>
30
27
  <string>dSYMs</string>
31
28
  <key>LibraryIdentifier</key>
32
- <string>ios-arm64</string>
29
+ <string>ios-arm64_x86_64-simulator</string>
33
30
  <key>LibraryPath</key>
34
31
  <string>CanvasNative.framework</string>
35
32
  <key>SupportedArchitectures</key>
36
33
  <array>
37
34
  <string>arm64</string>
35
+ <string>x86_64</string>
38
36
  </array>
39
37
  <key>SupportedPlatform</key>
40
38
  <string>ios</string>
39
+ <key>SupportedPlatformVariant</key>
40
+ <string>simulator</string>
41
41
  </dict>
42
42
  </array>
43
43
  <key>CFBundlePackageType</key>
@@ -1,6 +1,6 @@
1
1
  #if 0
2
2
  #elif defined(__arm64__) && __arm64__
3
- // Generated by Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4)
3
+ // Generated by Apple Swift version 6.0.2 effective-5.10 (swiftlang-6.0.2.1.2 clang-1600.0.26.4)
4
4
  #ifndef CANVASNATIVE_SWIFT_H
5
5
  #define CANVASNATIVE_SWIFT_H
6
6
  #pragma clang diagnostic push
@@ -42,6 +42,8 @@
42
42
  #include <string.h>
43
43
  #endif
44
44
  #if defined(__cplusplus)
45
+ #pragma clang diagnostic push
46
+ #pragma clang diagnostic ignored "-Wnon-modular-include-in-framework-module"
45
47
  #if defined(__arm64e__) && __has_include(<ptrauth.h>)
46
48
  # include <ptrauth.h>
47
49
  #else
@@ -55,6 +57,7 @@
55
57
  # endif
56
58
  #pragma clang diagnostic pop
57
59
  #endif
60
+ #pragma clang diagnostic pop
58
61
  #endif
59
62
 
60
63
  #if !defined(SWIFT_TYPEDEFS)
@@ -297,6 +300,7 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
297
300
  #pragma clang diagnostic ignored "-Wunknown-pragmas"
298
301
  #pragma clang diagnostic ignored "-Wnullability"
299
302
  #pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
303
+ #pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
300
304
 
301
305
  #if __has_attribute(external_source_symbol)
302
306
  # pragma push_macro("any")
@@ -306,15 +310,16 @@ typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
306
310
  #endif
307
311
 
308
312
  #if defined(__OBJC__)
313
+ @class NSMutableData;
309
314
  @class NSCoder;
310
315
 
311
316
  SWIFT_CLASS_NAMED("CanvasCPUView")
312
317
  @interface CanvasCPUView : UIView
313
318
  @property (nonatomic) BOOL ignorePixelScaling;
319
+ @property (nonatomic, readonly, strong) NSMutableData * _Nullable data;
314
320
  - (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
315
321
  - (nonnull instancetype)initWithFrame:(CGRect)frame OBJC_DESIGNATED_INITIALIZER;
316
322
  - (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder SWIFT_UNAVAILABLE;
317
- - (void)drawRect:(CGRect)rect;
318
323
  @end
319
324
 
320
325
  @class NSCCanvas;
@@ -333,7 +338,6 @@ SWIFT_CLASS_NAMED("CanvasGLKView")
333
338
  @end
334
339
 
335
340
  @class UIImage;
336
- @class NSMutableData;
337
341
  @class NSString;
338
342
  @class NSData;
339
343
  @class NSError;
@@ -395,14 +399,15 @@ SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) NSMutableDic
395
399
  @property (nonatomic) BOOL autoScale;
396
400
  @property (nonatomic, readonly) int64_t nativeContext;
397
401
  @property (nonatomic, readonly) BOOL is2D;
402
+ @property (nonatomic, readonly) BOOL willReadFrequently;
398
403
  @property (nonatomic, readonly) CGFloat drawingBufferWidth;
399
404
  @property (nonatomic, readonly) CGFloat drawingBufferHeight;
400
405
  @property (nonatomic, readonly) float width;
401
406
  @property (nonatomic, readonly) float height;
402
407
  - (NSString * _Nonnull)toDataURL:(NSString * _Nonnull)format :(float)quality SWIFT_WARN_UNUSED_RESULT;
403
- - (void)initContext:(NSString * _Nonnull)type :(BOOL)alpha :(BOOL)antialias :(BOOL)depth :(BOOL)failIfMajorPerformanceCaveat :(int32_t)powerPreference :(BOOL)premultipliedAlpha :(BOOL)preserveDrawingBuffer :(BOOL)stencil :(BOOL)desynchronized :(BOOL)xrCompatible SWIFT_METHOD_FAMILY(none);
408
+ - (void)initContext:(NSString * _Nonnull)type :(BOOL)alpha :(BOOL)antialias :(BOOL)depth :(BOOL)failIfMajorPerformanceCaveat :(int32_t)powerPreference :(BOOL)premultipliedAlpha :(BOOL)preserveDrawingBuffer :(BOOL)stencil :(BOOL)desynchronized :(BOOL)xrCompatible :(BOOL)willReadFrequently SWIFT_METHOD_FAMILY(none);
404
409
  - (void)initWebGPUContext:(int64_t)instance SWIFT_METHOD_FAMILY(none);
405
- - (int64_t)create2DContext:(BOOL)alpha :(BOOL)antialias :(BOOL)depth :(BOOL)failIfMajorPerformanceCaveat :(int32_t)powerPreference :(BOOL)premultipliedAlpha :(BOOL)preserveDrawingBuffer :(BOOL)stencil :(BOOL)desynchronized :(BOOL)xrCompatible :(int32_t)fontColor SWIFT_WARN_UNUSED_RESULT;
410
+ - (int64_t)create2DContext:(BOOL)alpha :(BOOL)antialias :(BOOL)depth :(BOOL)failIfMajorPerformanceCaveat :(int32_t)powerPreference :(BOOL)premultipliedAlpha :(BOOL)preserveDrawingBuffer :(BOOL)stencil :(BOOL)desynchronized :(BOOL)xrCompatible :(int32_t)fontColor :(BOOL)willReadFrequently SWIFT_WARN_UNUSED_RESULT;
406
411
  - (UIImage * _Nullable)snapshot:(BOOL)flip SWIFT_WARN_UNUSED_RESULT;
407
412
  - (BOOL)render;
408
413
  @property (nonatomic, copy) void (^ _Nullable touchEventListener)(NSString * _Nonnull, UIGestureRecognizer * _Nonnull);
@@ -453,6 +453,20 @@ typedef enum CanvasStorageTextureAccess {
453
453
  * ```
454
454
  */
455
455
  CanvasStorageTextureAccessReadWrite,
456
+ /**
457
+ * The texture can be both read and written in the shader via atomics and must be annotated
458
+ * with `read_write` in WGSL.
459
+ *
460
+ * [`Features::TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES`] must be enabled to use this access
461
+ * mode. This is a nonstandard, native-only extension.
462
+ *
463
+ * Example WGSL syntax:
464
+ * ```rust,ignore
465
+ * @group(0) @binding(0)
466
+ * var my_storage_image: texture_storage_2d<r32uint, atomic>;
467
+ * ```
468
+ */
469
+ CanvasStorageTextureAccessAtomic,
456
470
  } CanvasStorageTextureAccess;
457
471
 
458
472
  typedef enum CanvasStoreOp {
@@ -511,41 +525,51 @@ typedef enum CanvasTextureViewDimension {
511
525
  } CanvasTextureViewDimension;
512
526
 
513
527
  typedef enum CanvasVertexFormat {
514
- CanvasVertexFormatUint8x2 = 0,
515
- CanvasVertexFormatUint8x4 = 1,
516
- CanvasVertexFormatSint8x2 = 2,
517
- CanvasVertexFormatSint8x4 = 3,
518
- CanvasVertexFormatUnorm8x2 = 4,
519
- CanvasVertexFormatUnorm8x4 = 5,
520
- CanvasVertexFormatSnorm8x2 = 6,
521
- CanvasVertexFormatSnorm8x4 = 7,
522
- CanvasVertexFormatUint16x2 = 8,
523
- CanvasVertexFormatUint16x4 = 9,
524
- CanvasVertexFormatSint16x2 = 10,
525
- CanvasVertexFormatSint16x4 = 11,
526
- CanvasVertexFormatUnorm16x2 = 12,
527
- CanvasVertexFormatUnorm16x4 = 13,
528
- CanvasVertexFormatSnorm16x2 = 14,
529
- CanvasVertexFormatSnorm16x4 = 15,
530
- CanvasVertexFormatFloat16x2 = 16,
531
- CanvasVertexFormatFloat16x4 = 17,
532
- CanvasVertexFormatFloat32 = 18,
533
- CanvasVertexFormatFloat32x2 = 19,
534
- CanvasVertexFormatFloat32x3 = 20,
535
- CanvasVertexFormatFloat32x4 = 21,
536
- CanvasVertexFormatUint32 = 22,
537
- CanvasVertexFormatUint32x2 = 23,
538
- CanvasVertexFormatUint32x3 = 24,
539
- CanvasVertexFormatUint32x4 = 25,
540
- CanvasVertexFormatSint32 = 26,
541
- CanvasVertexFormatSint32x2 = 27,
542
- CanvasVertexFormatSint32x3 = 28,
543
- CanvasVertexFormatSint32x4 = 29,
544
- CanvasVertexFormatFloat64 = 30,
545
- CanvasVertexFormatFloat64x2 = 31,
546
- CanvasVertexFormatFloat64x3 = 32,
547
- CanvasVertexFormatFloat64x4 = 33,
548
- CanvasVertexFormatUnorm10_10_10_2 = 34,
528
+ CanvasVertexFormatUint8 = 0,
529
+ CanvasVertexFormatUint8x2 = 1,
530
+ CanvasVertexFormatUint8x4 = 2,
531
+ CanvasVertexFormatSint8 = 3,
532
+ CanvasVertexFormatSint8x2 = 4,
533
+ CanvasVertexFormatSint8x4 = 5,
534
+ CanvasVertexFormatUnorm8 = 6,
535
+ CanvasVertexFormatUnorm8x2 = 7,
536
+ CanvasVertexFormatUnorm8x4 = 8,
537
+ CanvasVertexFormatSnorm8 = 9,
538
+ CanvasVertexFormatSnorm8x2 = 10,
539
+ CanvasVertexFormatSnorm8x4 = 11,
540
+ CanvasVertexFormatUint16 = 12,
541
+ CanvasVertexFormatUint16x2 = 13,
542
+ CanvasVertexFormatUint16x4 = 14,
543
+ CanvasVertexFormatSint16 = 15,
544
+ CanvasVertexFormatSint16x2 = 16,
545
+ CanvasVertexFormatSint16x4 = 17,
546
+ CanvasVertexFormatUnorm16 = 18,
547
+ CanvasVertexFormatUnorm16x2 = 19,
548
+ CanvasVertexFormatUnorm16x4 = 20,
549
+ CanvasVertexFormatSnorm16 = 21,
550
+ CanvasVertexFormatSnorm16x2 = 22,
551
+ CanvasVertexFormatSnorm16x4 = 23,
552
+ CanvasVertexFormatFloat16 = 24,
553
+ CanvasVertexFormatFloat16x2 = 25,
554
+ CanvasVertexFormatFloat16x4 = 26,
555
+ CanvasVertexFormatFloat32 = 27,
556
+ CanvasVertexFormatFloat32x2 = 28,
557
+ CanvasVertexFormatFloat32x3 = 29,
558
+ CanvasVertexFormatFloat32x4 = 30,
559
+ CanvasVertexFormatUint32 = 31,
560
+ CanvasVertexFormatUint32x2 = 32,
561
+ CanvasVertexFormatUint32x3 = 33,
562
+ CanvasVertexFormatUint32x4 = 34,
563
+ CanvasVertexFormatSint32 = 35,
564
+ CanvasVertexFormatSint32x2 = 36,
565
+ CanvasVertexFormatSint32x3 = 37,
566
+ CanvasVertexFormatSint32x4 = 38,
567
+ CanvasVertexFormatFloat64 = 39,
568
+ CanvasVertexFormatFloat64x2 = 40,
569
+ CanvasVertexFormatFloat64x3 = 41,
570
+ CanvasVertexFormatFloat64x4 = 42,
571
+ CanvasVertexFormatUnorm10_10_10_2 = 43,
572
+ CanvasVertexFormatUnorm8x4Bgra = 44,
549
573
  } CanvasVertexFormat;
550
574
 
551
575
  typedef enum CanvasVertexStepMode {
@@ -602,6 +626,7 @@ typedef enum SurfaceGetCurrentTextureStatus {
602
626
  SurfaceGetCurrentTextureStatusOutOfMemory = 4,
603
627
  SurfaceGetCurrentTextureStatusDeviceLost = 5,
604
628
  SurfaceGetCurrentTextureStatusForce32 = 2147483647,
629
+ SurfaceGetCurrentTextureStatusUnknown = 6,
605
630
  } SurfaceGetCurrentTextureStatus;
606
631
 
607
632
  typedef enum TextBaseLine {
@@ -657,6 +682,8 @@ typedef enum WebGLResultType {
657
682
 
658
683
  typedef struct ANGLE_instanced_arrays ANGLE_instanced_arrays;
659
684
 
685
+ typedef struct BoolBuffer BoolBuffer;
686
+
660
687
  typedef struct CCow CCow;
661
688
 
662
689
  typedef struct CanvasConstants CanvasConstants;
@@ -954,6 +981,7 @@ typedef enum CanvasGPUTextureFormat_Tag {
954
981
  * Red, green, and blue channels. 11 bit float with no sign bit for RG channels. 10 bit float with no sign bit for blue channel. Float in shader.
955
982
  */
956
983
  CanvasGPUTextureFormatRg11b10UFloat,
984
+ CanvasGPUTextureFormatR64Uint,
957
985
  /**
958
986
  * Red and green channels. 32 bit integer per channel. Unsigned in shader.
959
987
  */
@@ -1301,6 +1329,8 @@ typedef struct CanvasGPUSupportedLimits {
1301
1329
  uint32_t max_storage_buffers_per_shader_stage;
1302
1330
  uint32_t max_storage_textures_per_shader_stage;
1303
1331
  uint32_t max_uniform_buffers_per_shader_stage;
1332
+ uint32_t max_binding_array_elements_per_shader_stage;
1333
+ uint32_t max_binding_array_sampler_elements_per_shader_stage;
1304
1334
  uint32_t max_uniform_buffer_binding_size;
1305
1335
  uint32_t max_storage_buffer_binding_size;
1306
1336
  uint32_t max_vertex_buffers;
@@ -1369,10 +1399,24 @@ typedef struct CanvasColor {
1369
1399
  #define CanvasColor_GREEN (CanvasColor){ .r = 0.0, .g = 1.0, .b = 0.0, .a = 1.0 }
1370
1400
  #define CanvasColor_BLUE (CanvasColor){ .r = 0.0, .g = 0.0, .b = 1.0, .a = 1.0 }
1371
1401
 
1402
+ typedef enum CanvasOptionalColor_Tag {
1403
+ CanvasOptionalColorNone,
1404
+ CanvasOptionalColorSome,
1405
+ } CanvasOptionalColor_Tag;
1406
+
1407
+ typedef struct CanvasOptionalColor {
1408
+ CanvasOptionalColor_Tag tag;
1409
+ union {
1410
+ struct {
1411
+ struct CanvasColor some;
1412
+ };
1413
+ };
1414
+ } CanvasOptionalColor;
1415
+
1372
1416
  typedef struct CanvasPassChannelColor {
1373
1417
  enum CanvasLoadOp load_op;
1374
1418
  enum CanvasStoreOp store_op;
1375
- struct CanvasColor clear_value;
1419
+ struct CanvasOptionalColor clear_value;
1376
1420
  bool read_only;
1377
1421
  } CanvasPassChannelColor;
1378
1422
 
@@ -1382,6 +1426,20 @@ typedef struct CanvasRenderPassColorAttachment {
1382
1426
  struct CanvasPassChannelColor channel;
1383
1427
  } CanvasRenderPassColorAttachment;
1384
1428
 
1429
+ typedef enum CanvasOptionF32_Tag {
1430
+ CanvasOptionF32None,
1431
+ CanvasOptionF32Some,
1432
+ } CanvasOptionF32_Tag;
1433
+
1434
+ typedef struct CanvasOptionF32 {
1435
+ CanvasOptionF32_Tag tag;
1436
+ union {
1437
+ struct {
1438
+ float some;
1439
+ };
1440
+ };
1441
+ } CanvasOptionF32;
1442
+
1385
1443
  typedef enum CanvasOptionalLoadOp_Tag {
1386
1444
  CanvasOptionalLoadOpNone,
1387
1445
  CanvasOptionalLoadOpSome,
@@ -1412,7 +1470,7 @@ typedef struct CanvasOptionalStoreOp {
1412
1470
 
1413
1471
  typedef struct CanvasRenderPassDepthStencilAttachment {
1414
1472
  const struct CanvasGPUTextureView *view;
1415
- float depth_clear_value;
1473
+ struct CanvasOptionF32 depth_clear_value;
1416
1474
  struct CanvasOptionalLoadOp depth_load_op;
1417
1475
  struct CanvasOptionalStoreOp depth_store_op;
1418
1476
  bool depth_read_only;
@@ -1590,6 +1648,20 @@ typedef struct CanvasVertexState {
1590
1648
  uintptr_t buffers_size;
1591
1649
  } CanvasVertexState;
1592
1650
 
1651
+ typedef enum CanvasOptionalPrimitiveTopology_Tag {
1652
+ CanvasOptionalPrimitiveTopologyNone,
1653
+ CanvasOptionalPrimitiveTopologySome,
1654
+ } CanvasOptionalPrimitiveTopology_Tag;
1655
+
1656
+ typedef struct CanvasOptionalPrimitiveTopology {
1657
+ CanvasOptionalPrimitiveTopology_Tag tag;
1658
+ union {
1659
+ struct {
1660
+ enum CanvasPrimitiveTopology some;
1661
+ };
1662
+ };
1663
+ } CanvasOptionalPrimitiveTopology;
1664
+
1593
1665
  typedef enum CanvasOptionalIndexFormat_Tag {
1594
1666
  CanvasOptionalIndexFormatNone,
1595
1667
  CanvasOptionalIndexFormatSome,
@@ -1605,7 +1677,7 @@ typedef struct CanvasOptionalIndexFormat {
1605
1677
  } CanvasOptionalIndexFormat;
1606
1678
 
1607
1679
  typedef struct CanvasPrimitiveState {
1608
- enum CanvasPrimitiveTopology topology;
1680
+ struct CanvasOptionalPrimitiveTopology topology;
1609
1681
  struct CanvasOptionalIndexFormat strip_index_format;
1610
1682
  enum CanvasFrontFace front_face;
1611
1683
  enum CanvasCullMode cull_mode;
@@ -1865,6 +1937,29 @@ typedef struct CanvasImageCopyExternalImage {
1865
1937
  uint32_t height;
1866
1938
  } CanvasImageCopyExternalImage;
1867
1939
 
1940
+ typedef struct CanvasImageCopyGPUContext {
1941
+ /**
1942
+ * The texture to be copied from. The copy source data is captured at the moment
1943
+ * the copy is issued.
1944
+ */
1945
+ const struct CanvasGPUCanvasContext *source;
1946
+ /**
1947
+ * The base texel used for copying from the external image. Together
1948
+ * with the `copy_size` argument to copy functions, defines the
1949
+ * sub-region of the image to copy.
1950
+ *
1951
+ * Relative to the top left of the image.
1952
+ *
1953
+ * Must be [`Origin2d::ZERO`] if [`DownlevelFlags::UNRESTRICTED_EXTERNAL_TEXTURE_COPIES`] is not supported.
1954
+ */
1955
+ struct CanvasOrigin2d origin;
1956
+ /**
1957
+ * If the Y coordinate of the image should be flipped. Even if this is
1958
+ * true, `origin` is still relative to the top left.
1959
+ */
1960
+ bool flip_y;
1961
+ } CanvasImageCopyGPUContext;
1962
+
1868
1963
  typedef struct CanvasImageDataLayout {
1869
1964
  uint64_t offset;
1870
1965
  int32_t bytes_per_row;
@@ -1884,6 +1979,7 @@ typedef struct CanvasCreateTextureViewDescriptor {
1884
1979
  struct CanvasOptionalGPUTextureFormat format;
1885
1980
  enum CanvasOptionalTextureViewDimension dimension;
1886
1981
  const struct CanvasImageSubresourceRange *range;
1982
+ uint32_t usage;
1887
1983
  } CanvasCreateTextureViewDescriptor;
1888
1984
 
1889
1985
  typedef struct FileHelperMime {
@@ -1907,6 +2003,10 @@ void canvas_native_context_2d_path_test(int64_t context);
1907
2003
 
1908
2004
  void canvas_native_context_2d_conic_test(int64_t context);
1909
2005
 
2006
+ void canvas_native_context_set_render_func(int64_t value, void *data, void (*render)(const void*));
2007
+
2008
+ void canvas_native_context_clear_render_func(int64_t value);
2009
+
1910
2010
  void canvas_native_context_release(struct CanvasRenderingContext2D *value);
1911
2011
 
1912
2012
  #if (defined(TARGET_OS_ANDROID) || defined(TARGET_OS_IOS))
@@ -2057,6 +2157,11 @@ const char *canvas_native_context_get_global_composition(const struct CanvasRend
2057
2157
  void canvas_native_context_set_global_composition(struct CanvasRenderingContext2D *context,
2058
2158
  const char *composition);
2059
2159
 
2160
+ void canvas_native_context_set_global_composition_int(struct CanvasRenderingContext2D *context,
2161
+ uint32_t composition);
2162
+
2163
+ uint32_t canvas_native_context_get_global_composition_int(const struct CanvasRenderingContext2D *context);
2164
+
2060
2165
  void canvas_native_paint_style_set_fill_color_with_c_string(struct CanvasRenderingContext2D *context,
2061
2166
  const char *color);
2062
2167
 
@@ -2367,7 +2472,7 @@ void canvas_native_context_draw_atlas(struct CanvasRenderingContext2D *context,
2367
2472
  uintptr_t tex_size,
2368
2473
  const char *const *colors,
2369
2474
  uintptr_t colors_size,
2370
- int32_t blend_mode);
2475
+ uint32_t blend_mode);
2371
2476
 
2372
2477
  void canvas_native_context_draw_atlas_encoded(struct CanvasRenderingContext2D *context,
2373
2478
  const uint8_t *data,
@@ -2378,7 +2483,7 @@ void canvas_native_context_draw_atlas_encoded(struct CanvasRenderingContext2D *c
2378
2483
  uintptr_t tex_size,
2379
2484
  const char *const *colors,
2380
2485
  uintptr_t colors_size,
2381
- int32_t blend_mode);
2486
+ uint32_t blend_mode);
2382
2487
 
2383
2488
  void canvas_native_context_draw_atlas_asset(struct CanvasRenderingContext2D *context,
2384
2489
  const struct ImageAsset *asset,
@@ -2388,7 +2493,7 @@ void canvas_native_context_draw_atlas_asset(struct CanvasRenderingContext2D *con
2388
2493
  uintptr_t tex_size,
2389
2494
  const char *const *colors,
2390
2495
  uintptr_t colors_size,
2391
- int32_t blend_mode);
2496
+ uint32_t blend_mode);
2392
2497
 
2393
2498
  void canvas_native_context_ellipse(struct CanvasRenderingContext2D *context,
2394
2499
  float x,
@@ -2496,6 +2601,8 @@ void canvas_native_context_rect(struct CanvasRenderingContext2D *context,
2496
2601
  float width,
2497
2602
  float height);
2498
2603
 
2604
+ void canvas_native_context_reset(struct CanvasRenderingContext2D *context);
2605
+
2499
2606
  void canvas_native_context_round_rect(struct CanvasRenderingContext2D *context,
2500
2607
  float x,
2501
2608
  float y,
@@ -3008,13 +3115,15 @@ void canvas_native_webgpu_buffer_map_async(const struct CanvasGPUBuffer *buffer,
3008
3115
  void (*callback)(enum CanvasGPUErrorType, char*, void*),
3009
3116
  void *callback_data);
3010
3117
 
3118
+ char *canvas_native_webgpu_to_data_url_with_fallback(const struct CanvasGPUCanvasContext *context,
3119
+ const char *format,
3120
+ float quality);
3121
+
3011
3122
  char *canvas_native_webgpu_to_data_url(const struct CanvasGPUCanvasContext *context,
3012
- const struct CanvasGPUDevice *device,
3013
3123
  const char *format,
3014
3124
  uint32_t quality);
3015
3125
 
3016
3126
  char *canvas_native_webgpu_to_data_url_with_texture(const struct CanvasGPUCanvasContext *context,
3017
- const struct CanvasGPUDevice *device,
3018
3127
  const struct CanvasGPUTexture *texture,
3019
3128
  const char *format,
3020
3129
  uint32_t quality);
@@ -3068,12 +3177,23 @@ void canvas_native_webgpu_context_resize_nsview(const struct CanvasGPUCanvasCont
3068
3177
  uint32_t height);
3069
3178
  #endif
3070
3179
 
3180
+ #if (defined(TARGET_OS_MACOS) || defined(TARGET_OS_IOS))
3181
+ void canvas_native_webgpu_context_resize_layer(const struct CanvasGPUCanvasContext *context,
3182
+ void *layer,
3183
+ uint32_t width,
3184
+ uint32_t height);
3185
+ #endif
3186
+
3071
3187
  void canvas_native_webgpu_context_configure(const struct CanvasGPUCanvasContext *context,
3072
3188
  const struct CanvasGPUDevice *device,
3073
3189
  const struct CanvasGPUSurfaceConfiguration *config);
3074
3190
 
3075
3191
  void canvas_native_webgpu_context_unconfigure(const struct CanvasGPUCanvasContext *context);
3076
3192
 
3193
+ bool canvas_native_webgpu_context_has_current_texture(const struct CanvasGPUCanvasContext *context);
3194
+
3195
+ bool canvas_native_webgpu_context_has_surface_presented(const struct CanvasGPUCanvasContext *context);
3196
+
3077
3197
  const struct CanvasGPUTexture *canvas_native_webgpu_context_get_current_texture(const struct CanvasGPUCanvasContext *context);
3078
3198
 
3079
3199
  void canvas_native_webgpu_context_present_surface(const struct CanvasGPUCanvasContext *context,
@@ -3124,7 +3244,7 @@ void canvas_native_webgpu_command_encoder_copy_buffer_to_buffer(const struct Can
3124
3244
  int64_t src_offset,
3125
3245
  const struct CanvasGPUBuffer *dst,
3126
3246
  int64_t dst_offset,
3127
- uint64_t size);
3247
+ int64_t size);
3128
3248
 
3129
3249
  void canvas_native_webgpu_command_encoder_copy_buffer_to_texture(const struct CanvasGPUCommandEncoder *command_encoder,
3130
3250
  const struct CanvasImageCopyBuffer *src,
@@ -3362,6 +3482,11 @@ void canvas_native_webgpu_queue_copy_external_image_to_texture(const struct Canv
3362
3482
  const struct CanvasImageCopyTexture *destination,
3363
3483
  const struct CanvasExtent3d *size);
3364
3484
 
3485
+ void canvas_native_webgpu_queue_copy_gpu_context_to_texture(const struct CanvasGPUQueue *queue,
3486
+ const struct CanvasImageCopyGPUContext *source,
3487
+ const struct CanvasImageCopyTexture *destination,
3488
+ const struct CanvasExtent3d *size);
3489
+
3365
3490
  void canvas_native_webgpu_queue_on_submitted_work_done(const struct CanvasGPUQueue *queue,
3366
3491
  void (*callback)(char*, void*),
3367
3492
  void *callback_data);
@@ -3375,8 +3500,15 @@ void canvas_native_webgpu_queue_write_buffer(const struct CanvasGPUQueue *queue,
3375
3500
  uint64_t buffer_offset,
3376
3501
  const uint8_t *data,
3377
3502
  uintptr_t data_size,
3378
- uintptr_t data_offset,
3379
- intptr_t size);
3503
+ uintptr_t data_offset);
3504
+
3505
+ void canvas_native_webgpu_queue_write_buffer_size(const struct CanvasGPUQueue *queue,
3506
+ const struct CanvasGPUBuffer *buffer,
3507
+ uint64_t buffer_offset,
3508
+ const uint8_t *data,
3509
+ uintptr_t data_size,
3510
+ uintptr_t data_offset,
3511
+ uintptr_t size);
3380
3512
 
3381
3513
  void canvas_native_webgpu_queue_write_texture(const struct CanvasGPUQueue *queue,
3382
3514
  const struct CanvasImageCopyTexture *destination,
@@ -3889,12 +4021,20 @@ bool canvas_native_webgl_result_get_bool(const struct WebGLResult *result);
3889
4021
 
3890
4022
  struct I32Buffer *canvas_native_webgl_result_get_i32_array(const struct WebGLResult *result);
3891
4023
 
4024
+ struct I32Buffer *canvas_native_webgl_result_into_i32_array(struct WebGLResult *result);
4025
+
3892
4026
  struct U32Buffer *canvas_native_webgl_result_get_u32_array(const struct WebGLResult *result);
3893
4027
 
4028
+ struct U32Buffer *canvas_native_webgl_result_into_u32_array(struct WebGLResult *result);
4029
+
3894
4030
  struct F32Buffer *canvas_native_webgl_result_get_f32_array(const struct WebGLResult *result);
3895
4031
 
4032
+ struct F32Buffer *canvas_native_webgl_result_into_f32_array(struct WebGLResult *result);
4033
+
3896
4034
  struct U8Buffer *canvas_native_webgl_result_get_bool_array(const struct WebGLResult *result);
3897
4035
 
4036
+ struct BoolBuffer *canvas_native_webgl_result_into_bool_array(struct WebGLResult *result);
4037
+
3898
4038
  uint32_t canvas_native_webgl_result_get_u32(const struct WebGLResult *result);
3899
4039
 
3900
4040
  int32_t canvas_native_webgl_result_get_i32(const struct WebGLResult *result);
@@ -4607,6 +4747,17 @@ void canvas_native_webgl_tex_sub_image2d(uint32_t target,
4607
4747
  uintptr_t size,
4608
4748
  struct WebGLState *state);
4609
4749
 
4750
+ void canvas_native_webgl_tex_sub_image2d_offset(uint32_t target,
4751
+ int32_t level,
4752
+ int32_t xoffset,
4753
+ int32_t yoffset,
4754
+ int32_t width,
4755
+ int32_t height,
4756
+ uint32_t format,
4757
+ int32_t image_type,
4758
+ int64_t offset,
4759
+ struct WebGLState *state);
4760
+
4610
4761
  void canvas_native_webgl_uniform1f(int32_t location, float v0, struct WebGLState *state);
4611
4762
 
4612
4763
  void canvas_native_webgl_uniform1fv(int32_t location,
@@ -4832,6 +4983,30 @@ uint32_t canvas_native_webgl2_client_wait_sync(const struct WebGLSync *sync,
4832
4983
  intptr_t timeout,
4833
4984
  struct WebGLState *state);
4834
4985
 
4986
+ void canvas_native_webgl2_compressed_tex_image3d_none(uint32_t target,
4987
+ int32_t level,
4988
+ uint32_t internalformat,
4989
+ int32_t width,
4990
+ int32_t height,
4991
+ int32_t depth,
4992
+ int32_t border,
4993
+ int32_t image_size,
4994
+ uintptr_t offset,
4995
+ struct WebGLState *state);
4996
+
4997
+ void canvas_native_webgl2_compressed_tex_image3d(uint32_t target,
4998
+ int32_t level,
4999
+ uint32_t internalformat,
5000
+ int32_t width,
5001
+ int32_t height,
5002
+ int32_t depth,
5003
+ int32_t border,
5004
+ const uint8_t *src,
5005
+ uintptr_t size,
5006
+ uintptr_t src_offset,
5007
+ uintptr_t src_length_override,
5008
+ struct WebGLState *state);
5009
+
4835
5010
  void canvas_native_webgl2_compressed_tex_sub_image3d_none(uint32_t target,
4836
5011
  int32_t level,
4837
5012
  int32_t xoffset,
@@ -4842,7 +5017,7 @@ void canvas_native_webgl2_compressed_tex_sub_image3d_none(uint32_t target,
4842
5017
  int32_t depth,
4843
5018
  uint32_t format,
4844
5019
  int32_t image_size,
4845
- int32_t offset,
5020
+ uintptr_t offset,
4846
5021
  struct WebGLState *state);
4847
5022
 
4848
5023
  void canvas_native_webgl2_compressed_tex_sub_image3d(uint32_t target,
@@ -4890,6 +5065,8 @@ void canvas_native_webgl2_delete_query_with_query(uint32_t id, struct WebGLState
4890
5065
 
4891
5066
  void canvas_native_webgl2_delete_sampler_with_sampler(uint32_t sampler, struct WebGLState *state);
4892
5067
 
5068
+ void canvas_native_webgl2_sync_destroy(const struct WebGLSync *sync);
5069
+
4893
5070
  void canvas_native_webgl2_delete_sync_with_sync(const struct WebGLSync *sync,
4894
5071
  struct WebGLState *state);
4895
5072
 
@@ -5090,6 +5267,18 @@ void canvas_native_webgl2_tex_image3d_canvas2d(uint32_t target,
5090
5267
  struct CanvasRenderingContext2D *canvas,
5091
5268
  struct WebGLState *state);
5092
5269
 
5270
+ void canvas_native_webgl2_tex_image3d_webgl(uint32_t target,
5271
+ int32_t level,
5272
+ int32_t internalformat,
5273
+ int32_t _width,
5274
+ int32_t _height,
5275
+ int32_t depth,
5276
+ int32_t border,
5277
+ uint32_t format,
5278
+ uint32_t type_,
5279
+ struct WebGLState *webgl,
5280
+ struct WebGLState *state);
5281
+
5093
5282
  void canvas_native_webgl2_tex_image3d(uint32_t target,
5094
5283
  int32_t level,
5095
5284
  int32_t internalformat,
@@ -5185,6 +5374,19 @@ void canvas_native_webgl2_tex_sub_image3d_canvas2d(uint32_t target,
5185
5374
  struct CanvasRenderingContext2D *canvas,
5186
5375
  struct WebGLState *state);
5187
5376
 
5377
+ void canvas_native_webgl2_tex_sub_image3d_webgl(uint32_t target,
5378
+ int32_t level,
5379
+ int32_t xoffset,
5380
+ int32_t yoffset,
5381
+ int32_t zoffset,
5382
+ int32_t _width,
5383
+ int32_t _height,
5384
+ int32_t depth,
5385
+ uint32_t format,
5386
+ uint32_t type_,
5387
+ struct WebGLState *webgl,
5388
+ struct WebGLState *state);
5389
+
5188
5390
  void canvas_native_webgl2_tex_sub_image3d_offset(uint32_t target,
5189
5391
  int32_t level,
5190
5392
  int32_t xoffset,