@nativescript/canvas 2.0.0-rc.1 → 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 (116) hide show
  1. package/Canvas/common.d.ts +7 -6
  2. package/Canvas/common.js +251 -206
  3. package/Canvas/common.js.map +1 -1
  4. package/Canvas/index.android.d.ts +2 -0
  5. package/Canvas/index.android.js +17 -4
  6. package/Canvas/index.android.js.map +1 -1
  7. package/Canvas/index.d.ts +1 -0
  8. package/Canvas/index.ios.d.ts +2 -0
  9. package/Canvas/index.ios.js +10 -3
  10. package/Canvas/index.ios.js.map +1 -1
  11. package/Canvas/utils.js +2 -1
  12. package/Canvas/utils.js.map +1 -1
  13. package/Canvas2D/CanvasRenderingContext2D/index.d.ts +1 -0
  14. package/Canvas2D/CanvasRenderingContext2D/index.js +158 -6
  15. package/Canvas2D/CanvasRenderingContext2D/index.js.map +1 -1
  16. package/Canvas2D/DOMMatrix/index.js +280 -2
  17. package/Canvas2D/DOMMatrix/index.js.map +1 -1
  18. package/Canvas2D/Path2D/index.js.map +1 -1
  19. package/TextDecoder/index.d.ts +1 -0
  20. package/TextDecoder/index.js +17 -0
  21. package/TextDecoder/index.js.map +1 -1
  22. package/WebGL/WebGLRenderingContext/index.js +0 -1
  23. package/WebGL/WebGLRenderingContext/index.js.map +1 -1
  24. package/WebGPU/GPUCanvasContext.d.ts +0 -1
  25. package/WebGPU/GPUCanvasContext.js +6 -18
  26. package/WebGPU/GPUCanvasContext.js.map +1 -1
  27. package/WebGPU/GPUCommandEncoder.d.ts +1 -1
  28. package/WebGPU/GPUCommandEncoder.js +1 -1
  29. package/WebGPU/GPUCommandEncoder.js.map +1 -1
  30. package/WebGPU/GPUDevice.d.ts +2 -2
  31. package/WebGPU/GPUDevice.js.map +1 -1
  32. package/WebGPU/GPUQueue.js +2 -5
  33. package/WebGPU/GPUQueue.js.map +1 -1
  34. package/WebGPU/GPURenderPassEncoder.d.ts +1 -1
  35. package/WebGPU/GPURenderPassEncoder.js +2 -2
  36. package/WebGPU/GPURenderPassEncoder.js.map +1 -1
  37. package/WebGPU/Interfaces.d.ts +1 -0
  38. package/WebGPU/Types.d.ts +3 -3
  39. package/WebGPU/Utils.d.ts +1 -1
  40. package/WebGPU/Utils.js +67 -93
  41. package/WebGPU/Utils.js.map +1 -1
  42. package/angular/fesm2022/nativescript-canvas-angular.mjs +5 -5
  43. package/angular/package.json +0 -2
  44. package/helpers.d.ts +3 -0
  45. package/helpers.js +9 -0
  46. package/helpers.js.map +1 -1
  47. package/package.json +1 -1
  48. package/platforms/android/canvas-release.aar +0 -0
  49. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  50. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative-Swift.h +10 -5
  51. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_ios.h +14 -0
  52. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +259 -47
  53. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Info.plist +0 -0
  54. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  55. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +12361 -10901
  56. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.private.swiftinterface +55 -49
  57. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  58. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftinterface +55 -49
  59. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  60. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +954 -994
  61. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  62. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative-Swift.h +20 -10
  63. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_ios.h +14 -0
  64. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +259 -47
  65. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Info.plist +0 -0
  66. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  67. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  68. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +12361 -10901
  69. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +55 -49
  70. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  71. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftinterface +55 -49
  72. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +12361 -10901
  73. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +55 -49
  74. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  75. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +55 -49
  76. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +31 -31
  77. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  78. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +955 -993
  79. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasNative.yml +824 -1037
  80. package/platforms/ios/src/cpp/CanvasJSIModule.cpp +1172 -1011
  81. package/platforms/ios/src/cpp/CanvasJSIModule.h +6 -0
  82. package/platforms/ios/src/cpp/Helpers.h +44 -0
  83. package/platforms/ios/src/cpp/OnRafCallback.cpp +15 -10
  84. package/platforms/ios/src/cpp/OnRafCallback.h +1 -0
  85. package/platforms/ios/src/cpp/PromiseCallback.h +42 -20
  86. package/platforms/ios/src/cpp/TextDecoderImpl.cpp +142 -0
  87. package/platforms/ios/src/cpp/TextDecoderImpl.h +2 -0
  88. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.cpp +59 -15
  89. package/platforms/ios/src/cpp/canvas2d/Path2D.cpp +1 -1
  90. package/platforms/ios/src/cpp/webgpu/GPUAdapterImpl.cpp +4 -8
  91. package/platforms/ios/src/cpp/webgpu/GPUCanvasContextImpl.cpp +431 -326
  92. package/platforms/ios/src/cpp/webgpu/GPUCanvasContextImpl.h +98 -42
  93. package/platforms/ios/src/cpp/webgpu/GPUCommandEncoderImpl.cpp +1150 -1144
  94. package/platforms/ios/src/cpp/webgpu/GPUDeviceImpl.cpp +69 -34
  95. package/platforms/ios/src/cpp/webgpu/GPUQueueImpl.cpp +45 -18
  96. package/platforms/ios/src/cpp/webgpu/GPURenderPassEncoderImpl.cpp +22 -19
  97. package/platforms/ios/src/cpp/webgpu/GPUTextureImpl.cpp +11 -0
  98. package/platforms/ios/src/cpp/webgpu/GPUUtils.h +25 -15
  99. package/angular/esm2022/index.mjs +0 -17
  100. package/angular/esm2022/nativescript-canvas-angular.mjs +0 -5
  101. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Black.ttf +0 -0
  102. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Bold.ttf +0 -0
  103. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-ExtraBold.ttf +0 -0
  104. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-ExtraLight.ttf +0 -0
  105. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Light.ttf +0 -0
  106. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Medium.ttf +0 -0
  107. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Regular.ttf +0 -0
  108. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-SemiBold.ttf +0 -0
  109. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Black.ttf +0 -0
  110. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Bold.ttf +0 -0
  111. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-ExtraBold.ttf +0 -0
  112. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-ExtraLight.ttf +0 -0
  113. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Light.ttf +0 -0
  114. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Medium.ttf +0 -0
  115. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-Regular.ttf +0 -0
  116. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/fonts/Noto_Serif_CJK/NotoSerifTC-SemiBold.ttf +0 -0
@@ -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,
@@ -3615,6 +3747,8 @@ void canvas_native_webgpu_texture_view_release(const struct CanvasGPUTextureView
3615
3747
 
3616
3748
  void canvas_native_webgpu_struct_surface_capabilities_release(struct CanvasSurfaceCapabilities *cap);
3617
3749
 
3750
+ const struct U8Buffer *canvas_native_u8_buffer_clone(const struct U8Buffer *buffer);
3751
+
3618
3752
  const uint8_t *canvas_native_u8_buffer_get_bytes(const struct U8Buffer *buffer);
3619
3753
 
3620
3754
  uint8_t *canvas_native_u8_buffer_get_bytes_mut(struct U8Buffer *buffer);
@@ -3661,6 +3795,14 @@ char *canvas_native_string_buffer_get_value_at(const struct StringBuffer *buffer
3661
3795
 
3662
3796
  void canvas_native_string_buffer_release(struct StringBuffer *buffer);
3663
3797
 
3798
+ const char *canvas_native_helper_base64_encode(const uint8_t *data, uintptr_t size);
3799
+
3800
+ const char *canvas_native_helper_base64_encode_c_str(const char *data);
3801
+
3802
+ struct U8Buffer *canvas_native_helper_base64_decode(const uint8_t *data, uintptr_t size);
3803
+
3804
+ struct U8Buffer *canvas_native_helper_base64_decode_c_str(const char *data);
3805
+
3664
3806
  struct FileHelperMime *canvas_native_helper_get_mime(const uint8_t *data, uintptr_t size);
3665
3807
 
3666
3808
  void canvas_native_helper_release_mime(struct FileHelperMime *mime);
@@ -3879,12 +4021,20 @@ bool canvas_native_webgl_result_get_bool(const struct WebGLResult *result);
3879
4021
 
3880
4022
  struct I32Buffer *canvas_native_webgl_result_get_i32_array(const struct WebGLResult *result);
3881
4023
 
4024
+ struct I32Buffer *canvas_native_webgl_result_into_i32_array(struct WebGLResult *result);
4025
+
3882
4026
  struct U32Buffer *canvas_native_webgl_result_get_u32_array(const struct WebGLResult *result);
3883
4027
 
4028
+ struct U32Buffer *canvas_native_webgl_result_into_u32_array(struct WebGLResult *result);
4029
+
3884
4030
  struct F32Buffer *canvas_native_webgl_result_get_f32_array(const struct WebGLResult *result);
3885
4031
 
4032
+ struct F32Buffer *canvas_native_webgl_result_into_f32_array(struct WebGLResult *result);
4033
+
3886
4034
  struct U8Buffer *canvas_native_webgl_result_get_bool_array(const struct WebGLResult *result);
3887
4035
 
4036
+ struct BoolBuffer *canvas_native_webgl_result_into_bool_array(struct WebGLResult *result);
4037
+
3888
4038
  uint32_t canvas_native_webgl_result_get_u32(const struct WebGLResult *result);
3889
4039
 
3890
4040
  int32_t canvas_native_webgl_result_get_i32(const struct WebGLResult *result);
@@ -4597,6 +4747,17 @@ void canvas_native_webgl_tex_sub_image2d(uint32_t target,
4597
4747
  uintptr_t size,
4598
4748
  struct WebGLState *state);
4599
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
+
4600
4761
  void canvas_native_webgl_uniform1f(int32_t location, float v0, struct WebGLState *state);
4601
4762
 
4602
4763
  void canvas_native_webgl_uniform1fv(int32_t location,
@@ -4822,6 +4983,30 @@ uint32_t canvas_native_webgl2_client_wait_sync(const struct WebGLSync *sync,
4822
4983
  intptr_t timeout,
4823
4984
  struct WebGLState *state);
4824
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
+
4825
5010
  void canvas_native_webgl2_compressed_tex_sub_image3d_none(uint32_t target,
4826
5011
  int32_t level,
4827
5012
  int32_t xoffset,
@@ -4832,7 +5017,7 @@ void canvas_native_webgl2_compressed_tex_sub_image3d_none(uint32_t target,
4832
5017
  int32_t depth,
4833
5018
  uint32_t format,
4834
5019
  int32_t image_size,
4835
- int32_t offset,
5020
+ uintptr_t offset,
4836
5021
  struct WebGLState *state);
4837
5022
 
4838
5023
  void canvas_native_webgl2_compressed_tex_sub_image3d(uint32_t target,
@@ -4880,6 +5065,8 @@ void canvas_native_webgl2_delete_query_with_query(uint32_t id, struct WebGLState
4880
5065
 
4881
5066
  void canvas_native_webgl2_delete_sampler_with_sampler(uint32_t sampler, struct WebGLState *state);
4882
5067
 
5068
+ void canvas_native_webgl2_sync_destroy(const struct WebGLSync *sync);
5069
+
4883
5070
  void canvas_native_webgl2_delete_sync_with_sync(const struct WebGLSync *sync,
4884
5071
  struct WebGLState *state);
4885
5072
 
@@ -5080,6 +5267,18 @@ void canvas_native_webgl2_tex_image3d_canvas2d(uint32_t target,
5080
5267
  struct CanvasRenderingContext2D *canvas,
5081
5268
  struct WebGLState *state);
5082
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
+
5083
5282
  void canvas_native_webgl2_tex_image3d(uint32_t target,
5084
5283
  int32_t level,
5085
5284
  int32_t internalformat,
@@ -5175,6 +5374,19 @@ void canvas_native_webgl2_tex_sub_image3d_canvas2d(uint32_t target,
5175
5374
  struct CanvasRenderingContext2D *canvas,
5176
5375
  struct WebGLState *state);
5177
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
+
5178
5390
  void canvas_native_webgl2_tex_sub_image3d_offset(uint32_t target,
5179
5391
  int32_t level,
5180
5392
  int32_t xoffset,