@nativescript/canvas 2.0.0-rc.2 → 2.0.0-rc.21

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 (125) hide show
  1. package/Canvas/common.d.ts +13 -6
  2. package/Canvas/common.js +257 -206
  3. package/Canvas/common.js.map +1 -1
  4. package/Canvas/index.android.d.ts +2 -0
  5. package/Canvas/index.android.js +23 -4
  6. package/Canvas/index.android.js.map +1 -1
  7. package/Canvas/index.d.ts +3 -0
  8. package/Canvas/index.ios.d.ts +2 -0
  9. package/Canvas/index.ios.js +16 -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/Fonts/FontFace.android.js +7 -3
  20. package/Fonts/FontFace.android.js.map +1 -1
  21. package/Fonts/FontFace.ios.d.ts +1 -0
  22. package/Fonts/FontFace.ios.js +10 -3
  23. package/Fonts/FontFace.ios.js.map +1 -1
  24. package/TextDecoder/index.d.ts +1 -0
  25. package/TextDecoder/index.js +17 -0
  26. package/TextDecoder/index.js.map +1 -1
  27. package/WebGL/WebGLRenderingContext/index.js +0 -1
  28. package/WebGL/WebGLRenderingContext/index.js.map +1 -1
  29. package/WebGPU/GPUCanvasContext.d.ts +0 -1
  30. package/WebGPU/GPUCanvasContext.js +6 -18
  31. package/WebGPU/GPUCanvasContext.js.map +1 -1
  32. package/WebGPU/GPUCommandEncoder.d.ts +1 -1
  33. package/WebGPU/GPUCommandEncoder.js +1 -1
  34. package/WebGPU/GPUCommandEncoder.js.map +1 -1
  35. package/WebGPU/GPUCompilationInfo.d.ts +10 -0
  36. package/WebGPU/GPUCompilationInfo.js +20 -0
  37. package/WebGPU/GPUCompilationInfo.js.map +1 -0
  38. package/WebGPU/GPUCompilationMessage.d.ts +11 -0
  39. package/WebGPU/GPUCompilationMessage.js +30 -0
  40. package/WebGPU/GPUCompilationMessage.js.map +1 -0
  41. package/WebGPU/GPUDevice.d.ts +2 -2
  42. package/WebGPU/GPUDevice.js.map +1 -1
  43. package/WebGPU/GPUQueue.js +1 -4
  44. package/WebGPU/GPUQueue.js.map +1 -1
  45. package/WebGPU/GPURenderPassEncoder.d.ts +1 -1
  46. package/WebGPU/GPURenderPassEncoder.js +2 -2
  47. package/WebGPU/GPURenderPassEncoder.js.map +1 -1
  48. package/WebGPU/GPUShaderModule.d.ts +2 -0
  49. package/WebGPU/GPUShaderModule.js +10 -0
  50. package/WebGPU/GPUShaderModule.js.map +1 -1
  51. package/WebGPU/Interfaces.d.ts +1 -0
  52. package/WebGPU/Types.d.ts +3 -3
  53. package/WebGPU/Utils.d.ts +1 -1
  54. package/WebGPU/Utils.js +67 -93
  55. package/WebGPU/Utils.js.map +1 -1
  56. package/WebGPU/index.d.ts +2 -0
  57. package/WebGPU/index.js +2 -0
  58. package/WebGPU/index.js.map +1 -1
  59. package/angular/fesm2022/nativescript-canvas-angular.mjs +5 -5
  60. package/angular/package.json +0 -2
  61. package/helpers.d.ts +3 -0
  62. package/helpers.js +9 -0
  63. package/helpers.js.map +1 -1
  64. package/index.js +6 -1
  65. package/index.js.map +1 -1
  66. package/package.json +1 -1
  67. package/platforms/android/canvas-release.aar +0 -0
  68. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  69. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative-Swift.h +10 -5
  70. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +294 -47
  71. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Info.plist +0 -0
  72. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  73. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +11317 -11881
  74. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.private.swiftinterface +55 -49
  75. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  76. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftinterface +55 -49
  77. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  78. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +954 -994
  79. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  80. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative-Swift.h +20 -10
  81. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +294 -47
  82. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Info.plist +0 -0
  83. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  84. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  85. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +11317 -11881
  86. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +55 -49
  87. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  88. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftinterface +55 -49
  89. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +11317 -11881
  90. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +55 -49
  91. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  92. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +55 -49
  93. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +29 -29
  94. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  95. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +955 -993
  96. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasNative.yml +824 -1037
  97. package/platforms/ios/src/cpp/Caches.h +6 -0
  98. package/platforms/ios/src/cpp/CanvasJSIModule.cpp +1172 -1011
  99. package/platforms/ios/src/cpp/CanvasJSIModule.h +6 -0
  100. package/platforms/ios/src/cpp/Helpers.h +23 -2
  101. package/platforms/ios/src/cpp/NativeType.h +3 -1
  102. package/platforms/ios/src/cpp/OnRafCallback.cpp +15 -10
  103. package/platforms/ios/src/cpp/OnRafCallback.h +1 -0
  104. package/platforms/ios/src/cpp/PromiseCallback.h +42 -20
  105. package/platforms/ios/src/cpp/TextDecoderImpl.cpp +142 -0
  106. package/platforms/ios/src/cpp/TextDecoderImpl.h +2 -0
  107. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.cpp +59 -15
  108. package/platforms/ios/src/cpp/canvas2d/Path2D.cpp +1 -1
  109. package/platforms/ios/src/cpp/webgpu/GPUAdapterImpl.cpp +4 -8
  110. package/platforms/ios/src/cpp/webgpu/GPUCanvasContextImpl.cpp +431 -326
  111. package/platforms/ios/src/cpp/webgpu/GPUCanvasContextImpl.h +98 -42
  112. package/platforms/ios/src/cpp/webgpu/GPUCommandEncoderImpl.cpp +1150 -1144
  113. package/platforms/ios/src/cpp/webgpu/GPUCompilationInfoImpl.cpp +88 -0
  114. package/platforms/ios/src/cpp/webgpu/GPUCompilationInfoImpl.h +49 -0
  115. package/platforms/ios/src/cpp/webgpu/GPUCompilationMessageImpl.cpp +193 -0
  116. package/platforms/ios/src/cpp/webgpu/GPUCompilationMessageImpl.h +64 -0
  117. package/platforms/ios/src/cpp/webgpu/GPUDeviceImpl.cpp +69 -34
  118. package/platforms/ios/src/cpp/webgpu/GPUQueueImpl.cpp +45 -18
  119. package/platforms/ios/src/cpp/webgpu/GPURenderPassEncoderImpl.cpp +22 -19
  120. package/platforms/ios/src/cpp/webgpu/GPUShaderModuleImpl.cpp +23 -0
  121. package/platforms/ios/src/cpp/webgpu/GPUShaderModuleImpl.h +2 -0
  122. package/platforms/ios/src/cpp/webgpu/GPUTextureImpl.cpp +11 -0
  123. package/platforms/ios/src/cpp/webgpu/GPUUtils.h +25 -15
  124. package/angular/esm2022/index.mjs +0 -17
  125. package/angular/esm2022/nativescript-canvas-angular.mjs +0 -5
@@ -277,6 +277,12 @@ typedef enum CanvasGPUAutoLayoutMode {
277
277
  CanvasGPUAutoLayoutModeAuto,
278
278
  } CanvasGPUAutoLayoutMode;
279
279
 
280
+ typedef enum CanvasGPUCompilationMessageType {
281
+ CanvasGPUCompilationMessageTypeError,
282
+ CanvasGPUCompilationMessageTypeWarning,
283
+ CanvasGPUCompilationMessageTypeInfo,
284
+ } CanvasGPUCompilationMessageType;
285
+
280
286
  typedef enum CanvasGPUErrorFilter {
281
287
  /**
282
288
  * Catch only out-of-memory errors.
@@ -453,6 +459,20 @@ typedef enum CanvasStorageTextureAccess {
453
459
  * ```
454
460
  */
455
461
  CanvasStorageTextureAccessReadWrite,
462
+ /**
463
+ * The texture can be both read and written in the shader via atomics and must be annotated
464
+ * with `read_write` in WGSL.
465
+ *
466
+ * [`Features::TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES`] must be enabled to use this access
467
+ * mode. This is a nonstandard, native-only extension.
468
+ *
469
+ * Example WGSL syntax:
470
+ * ```rust,ignore
471
+ * @group(0) @binding(0)
472
+ * var my_storage_image: texture_storage_2d<r32uint, atomic>;
473
+ * ```
474
+ */
475
+ CanvasStorageTextureAccessAtomic,
456
476
  } CanvasStorageTextureAccess;
457
477
 
458
478
  typedef enum CanvasStoreOp {
@@ -511,41 +531,51 @@ typedef enum CanvasTextureViewDimension {
511
531
  } CanvasTextureViewDimension;
512
532
 
513
533
  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,
534
+ CanvasVertexFormatUint8 = 0,
535
+ CanvasVertexFormatUint8x2 = 1,
536
+ CanvasVertexFormatUint8x4 = 2,
537
+ CanvasVertexFormatSint8 = 3,
538
+ CanvasVertexFormatSint8x2 = 4,
539
+ CanvasVertexFormatSint8x4 = 5,
540
+ CanvasVertexFormatUnorm8 = 6,
541
+ CanvasVertexFormatUnorm8x2 = 7,
542
+ CanvasVertexFormatUnorm8x4 = 8,
543
+ CanvasVertexFormatSnorm8 = 9,
544
+ CanvasVertexFormatSnorm8x2 = 10,
545
+ CanvasVertexFormatSnorm8x4 = 11,
546
+ CanvasVertexFormatUint16 = 12,
547
+ CanvasVertexFormatUint16x2 = 13,
548
+ CanvasVertexFormatUint16x4 = 14,
549
+ CanvasVertexFormatSint16 = 15,
550
+ CanvasVertexFormatSint16x2 = 16,
551
+ CanvasVertexFormatSint16x4 = 17,
552
+ CanvasVertexFormatUnorm16 = 18,
553
+ CanvasVertexFormatUnorm16x2 = 19,
554
+ CanvasVertexFormatUnorm16x4 = 20,
555
+ CanvasVertexFormatSnorm16 = 21,
556
+ CanvasVertexFormatSnorm16x2 = 22,
557
+ CanvasVertexFormatSnorm16x4 = 23,
558
+ CanvasVertexFormatFloat16 = 24,
559
+ CanvasVertexFormatFloat16x2 = 25,
560
+ CanvasVertexFormatFloat16x4 = 26,
561
+ CanvasVertexFormatFloat32 = 27,
562
+ CanvasVertexFormatFloat32x2 = 28,
563
+ CanvasVertexFormatFloat32x3 = 29,
564
+ CanvasVertexFormatFloat32x4 = 30,
565
+ CanvasVertexFormatUint32 = 31,
566
+ CanvasVertexFormatUint32x2 = 32,
567
+ CanvasVertexFormatUint32x3 = 33,
568
+ CanvasVertexFormatUint32x4 = 34,
569
+ CanvasVertexFormatSint32 = 35,
570
+ CanvasVertexFormatSint32x2 = 36,
571
+ CanvasVertexFormatSint32x3 = 37,
572
+ CanvasVertexFormatSint32x4 = 38,
573
+ CanvasVertexFormatFloat64 = 39,
574
+ CanvasVertexFormatFloat64x2 = 40,
575
+ CanvasVertexFormatFloat64x3 = 41,
576
+ CanvasVertexFormatFloat64x4 = 42,
577
+ CanvasVertexFormatUnorm10_10_10_2 = 43,
578
+ CanvasVertexFormatUnorm8x4Bgra = 44,
549
579
  } CanvasVertexFormat;
550
580
 
551
581
  typedef enum CanvasVertexStepMode {
@@ -602,6 +632,7 @@ typedef enum SurfaceGetCurrentTextureStatus {
602
632
  SurfaceGetCurrentTextureStatusOutOfMemory = 4,
603
633
  SurfaceGetCurrentTextureStatusDeviceLost = 5,
604
634
  SurfaceGetCurrentTextureStatusForce32 = 2147483647,
635
+ SurfaceGetCurrentTextureStatusUnknown = 6,
605
636
  } SurfaceGetCurrentTextureStatus;
606
637
 
607
638
  typedef enum TextBaseLine {
@@ -657,6 +688,8 @@ typedef enum WebGLResultType {
657
688
 
658
689
  typedef struct ANGLE_instanced_arrays ANGLE_instanced_arrays;
659
690
 
691
+ typedef struct BoolBuffer BoolBuffer;
692
+
660
693
  typedef struct CCow CCow;
661
694
 
662
695
  typedef struct CanvasConstants CanvasConstants;
@@ -677,6 +710,10 @@ typedef struct CanvasGPUCommandBuffer CanvasGPUCommandBuffer;
677
710
 
678
711
  typedef struct CanvasGPUCommandEncoder CanvasGPUCommandEncoder;
679
712
 
713
+ typedef struct CanvasGPUCompilationInfo CanvasGPUCompilationInfo;
714
+
715
+ typedef struct CanvasGPUCompilationMessage CanvasGPUCompilationMessage;
716
+
680
717
  typedef struct CanvasGPUComputePassEncoder CanvasGPUComputePassEncoder;
681
718
 
682
719
  typedef struct CanvasGPUComputePipeline CanvasGPUComputePipeline;
@@ -954,6 +991,7 @@ typedef enum CanvasGPUTextureFormat_Tag {
954
991
  * 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
992
  */
956
993
  CanvasGPUTextureFormatRg11b10UFloat,
994
+ CanvasGPUTextureFormatR64Uint,
957
995
  /**
958
996
  * Red and green channels. 32 bit integer per channel. Unsigned in shader.
959
997
  */
@@ -1301,6 +1339,8 @@ typedef struct CanvasGPUSupportedLimits {
1301
1339
  uint32_t max_storage_buffers_per_shader_stage;
1302
1340
  uint32_t max_storage_textures_per_shader_stage;
1303
1341
  uint32_t max_uniform_buffers_per_shader_stage;
1342
+ uint32_t max_binding_array_elements_per_shader_stage;
1343
+ uint32_t max_binding_array_sampler_elements_per_shader_stage;
1304
1344
  uint32_t max_uniform_buffer_binding_size;
1305
1345
  uint32_t max_storage_buffer_binding_size;
1306
1346
  uint32_t max_vertex_buffers;
@@ -1369,10 +1409,24 @@ typedef struct CanvasColor {
1369
1409
  #define CanvasColor_GREEN (CanvasColor){ .r = 0.0, .g = 1.0, .b = 0.0, .a = 1.0 }
1370
1410
  #define CanvasColor_BLUE (CanvasColor){ .r = 0.0, .g = 0.0, .b = 1.0, .a = 1.0 }
1371
1411
 
1412
+ typedef enum CanvasOptionalColor_Tag {
1413
+ CanvasOptionalColorNone,
1414
+ CanvasOptionalColorSome,
1415
+ } CanvasOptionalColor_Tag;
1416
+
1417
+ typedef struct CanvasOptionalColor {
1418
+ CanvasOptionalColor_Tag tag;
1419
+ union {
1420
+ struct {
1421
+ struct CanvasColor some;
1422
+ };
1423
+ };
1424
+ } CanvasOptionalColor;
1425
+
1372
1426
  typedef struct CanvasPassChannelColor {
1373
1427
  enum CanvasLoadOp load_op;
1374
1428
  enum CanvasStoreOp store_op;
1375
- struct CanvasColor clear_value;
1429
+ struct CanvasOptionalColor clear_value;
1376
1430
  bool read_only;
1377
1431
  } CanvasPassChannelColor;
1378
1432
 
@@ -1382,6 +1436,20 @@ typedef struct CanvasRenderPassColorAttachment {
1382
1436
  struct CanvasPassChannelColor channel;
1383
1437
  } CanvasRenderPassColorAttachment;
1384
1438
 
1439
+ typedef enum CanvasOptionF32_Tag {
1440
+ CanvasOptionF32None,
1441
+ CanvasOptionF32Some,
1442
+ } CanvasOptionF32_Tag;
1443
+
1444
+ typedef struct CanvasOptionF32 {
1445
+ CanvasOptionF32_Tag tag;
1446
+ union {
1447
+ struct {
1448
+ float some;
1449
+ };
1450
+ };
1451
+ } CanvasOptionF32;
1452
+
1385
1453
  typedef enum CanvasOptionalLoadOp_Tag {
1386
1454
  CanvasOptionalLoadOpNone,
1387
1455
  CanvasOptionalLoadOpSome,
@@ -1412,7 +1480,7 @@ typedef struct CanvasOptionalStoreOp {
1412
1480
 
1413
1481
  typedef struct CanvasRenderPassDepthStencilAttachment {
1414
1482
  const struct CanvasGPUTextureView *view;
1415
- float depth_clear_value;
1483
+ struct CanvasOptionF32 depth_clear_value;
1416
1484
  struct CanvasOptionalLoadOp depth_load_op;
1417
1485
  struct CanvasOptionalStoreOp depth_store_op;
1418
1486
  bool depth_read_only;
@@ -1590,6 +1658,20 @@ typedef struct CanvasVertexState {
1590
1658
  uintptr_t buffers_size;
1591
1659
  } CanvasVertexState;
1592
1660
 
1661
+ typedef enum CanvasOptionalPrimitiveTopology_Tag {
1662
+ CanvasOptionalPrimitiveTopologyNone,
1663
+ CanvasOptionalPrimitiveTopologySome,
1664
+ } CanvasOptionalPrimitiveTopology_Tag;
1665
+
1666
+ typedef struct CanvasOptionalPrimitiveTopology {
1667
+ CanvasOptionalPrimitiveTopology_Tag tag;
1668
+ union {
1669
+ struct {
1670
+ enum CanvasPrimitiveTopology some;
1671
+ };
1672
+ };
1673
+ } CanvasOptionalPrimitiveTopology;
1674
+
1593
1675
  typedef enum CanvasOptionalIndexFormat_Tag {
1594
1676
  CanvasOptionalIndexFormatNone,
1595
1677
  CanvasOptionalIndexFormatSome,
@@ -1605,7 +1687,7 @@ typedef struct CanvasOptionalIndexFormat {
1605
1687
  } CanvasOptionalIndexFormat;
1606
1688
 
1607
1689
  typedef struct CanvasPrimitiveState {
1608
- enum CanvasPrimitiveTopology topology;
1690
+ struct CanvasOptionalPrimitiveTopology topology;
1609
1691
  struct CanvasOptionalIndexFormat strip_index_format;
1610
1692
  enum CanvasFrontFace front_face;
1611
1693
  enum CanvasCullMode cull_mode;
@@ -1865,6 +1947,29 @@ typedef struct CanvasImageCopyExternalImage {
1865
1947
  uint32_t height;
1866
1948
  } CanvasImageCopyExternalImage;
1867
1949
 
1950
+ typedef struct CanvasImageCopyGPUContext {
1951
+ /**
1952
+ * The texture to be copied from. The copy source data is captured at the moment
1953
+ * the copy is issued.
1954
+ */
1955
+ const struct CanvasGPUCanvasContext *source;
1956
+ /**
1957
+ * The base texel used for copying from the external image. Together
1958
+ * with the `copy_size` argument to copy functions, defines the
1959
+ * sub-region of the image to copy.
1960
+ *
1961
+ * Relative to the top left of the image.
1962
+ *
1963
+ * Must be [`Origin2d::ZERO`] if [`DownlevelFlags::UNRESTRICTED_EXTERNAL_TEXTURE_COPIES`] is not supported.
1964
+ */
1965
+ struct CanvasOrigin2d origin;
1966
+ /**
1967
+ * If the Y coordinate of the image should be flipped. Even if this is
1968
+ * true, `origin` is still relative to the top left.
1969
+ */
1970
+ bool flip_y;
1971
+ } CanvasImageCopyGPUContext;
1972
+
1868
1973
  typedef struct CanvasImageDataLayout {
1869
1974
  uint64_t offset;
1870
1975
  int32_t bytes_per_row;
@@ -1884,6 +1989,7 @@ typedef struct CanvasCreateTextureViewDescriptor {
1884
1989
  struct CanvasOptionalGPUTextureFormat format;
1885
1990
  enum CanvasOptionalTextureViewDimension dimension;
1886
1991
  const struct CanvasImageSubresourceRange *range;
1992
+ uint32_t usage;
1887
1993
  } CanvasCreateTextureViewDescriptor;
1888
1994
 
1889
1995
  typedef struct FileHelperMime {
@@ -1907,6 +2013,12 @@ void canvas_native_context_2d_path_test(int64_t context);
1907
2013
 
1908
2014
  void canvas_native_context_2d_conic_test(int64_t context);
1909
2015
 
2016
+ #if !defined(TARGET_OS_ANDROID)
2017
+ void canvas_native_context_set_render_func(int64_t value, void *data, void (*render)(const void*));
2018
+ #endif
2019
+
2020
+ void canvas_native_context_clear_render_func(int64_t value);
2021
+
1910
2022
  void canvas_native_context_release(struct CanvasRenderingContext2D *value);
1911
2023
 
1912
2024
  #if (defined(TARGET_OS_ANDROID) || defined(TARGET_OS_IOS))
@@ -2057,6 +2169,11 @@ const char *canvas_native_context_get_global_composition(const struct CanvasRend
2057
2169
  void canvas_native_context_set_global_composition(struct CanvasRenderingContext2D *context,
2058
2170
  const char *composition);
2059
2171
 
2172
+ void canvas_native_context_set_global_composition_int(struct CanvasRenderingContext2D *context,
2173
+ uint32_t composition);
2174
+
2175
+ uint32_t canvas_native_context_get_global_composition_int(const struct CanvasRenderingContext2D *context);
2176
+
2060
2177
  void canvas_native_paint_style_set_fill_color_with_c_string(struct CanvasRenderingContext2D *context,
2061
2178
  const char *color);
2062
2179
 
@@ -2367,7 +2484,7 @@ void canvas_native_context_draw_atlas(struct CanvasRenderingContext2D *context,
2367
2484
  uintptr_t tex_size,
2368
2485
  const char *const *colors,
2369
2486
  uintptr_t colors_size,
2370
- int32_t blend_mode);
2487
+ uint32_t blend_mode);
2371
2488
 
2372
2489
  void canvas_native_context_draw_atlas_encoded(struct CanvasRenderingContext2D *context,
2373
2490
  const uint8_t *data,
@@ -2378,7 +2495,7 @@ void canvas_native_context_draw_atlas_encoded(struct CanvasRenderingContext2D *c
2378
2495
  uintptr_t tex_size,
2379
2496
  const char *const *colors,
2380
2497
  uintptr_t colors_size,
2381
- int32_t blend_mode);
2498
+ uint32_t blend_mode);
2382
2499
 
2383
2500
  void canvas_native_context_draw_atlas_asset(struct CanvasRenderingContext2D *context,
2384
2501
  const struct ImageAsset *asset,
@@ -2388,7 +2505,7 @@ void canvas_native_context_draw_atlas_asset(struct CanvasRenderingContext2D *con
2388
2505
  uintptr_t tex_size,
2389
2506
  const char *const *colors,
2390
2507
  uintptr_t colors_size,
2391
- int32_t blend_mode);
2508
+ uint32_t blend_mode);
2392
2509
 
2393
2510
  void canvas_native_context_ellipse(struct CanvasRenderingContext2D *context,
2394
2511
  float x,
@@ -2496,6 +2613,8 @@ void canvas_native_context_rect(struct CanvasRenderingContext2D *context,
2496
2613
  float width,
2497
2614
  float height);
2498
2615
 
2616
+ void canvas_native_context_reset(struct CanvasRenderingContext2D *context);
2617
+
2499
2618
  void canvas_native_context_round_rect(struct CanvasRenderingContext2D *context,
2500
2619
  float x,
2501
2620
  float y,
@@ -3008,13 +3127,15 @@ void canvas_native_webgpu_buffer_map_async(const struct CanvasGPUBuffer *buffer,
3008
3127
  void (*callback)(enum CanvasGPUErrorType, char*, void*),
3009
3128
  void *callback_data);
3010
3129
 
3130
+ char *canvas_native_webgpu_to_data_url_with_fallback(const struct CanvasGPUCanvasContext *context,
3131
+ const char *format,
3132
+ float quality);
3133
+
3011
3134
  char *canvas_native_webgpu_to_data_url(const struct CanvasGPUCanvasContext *context,
3012
- const struct CanvasGPUDevice *device,
3013
3135
  const char *format,
3014
3136
  uint32_t quality);
3015
3137
 
3016
3138
  char *canvas_native_webgpu_to_data_url_with_texture(const struct CanvasGPUCanvasContext *context,
3017
- const struct CanvasGPUDevice *device,
3018
3139
  const struct CanvasGPUTexture *texture,
3019
3140
  const char *format,
3020
3141
  uint32_t quality);
@@ -3068,12 +3189,23 @@ void canvas_native_webgpu_context_resize_nsview(const struct CanvasGPUCanvasCont
3068
3189
  uint32_t height);
3069
3190
  #endif
3070
3191
 
3192
+ #if (defined(TARGET_OS_MACOS) || defined(TARGET_OS_IOS))
3193
+ void canvas_native_webgpu_context_resize_layer(const struct CanvasGPUCanvasContext *context,
3194
+ void *layer,
3195
+ uint32_t width,
3196
+ uint32_t height);
3197
+ #endif
3198
+
3071
3199
  void canvas_native_webgpu_context_configure(const struct CanvasGPUCanvasContext *context,
3072
3200
  const struct CanvasGPUDevice *device,
3073
3201
  const struct CanvasGPUSurfaceConfiguration *config);
3074
3202
 
3075
3203
  void canvas_native_webgpu_context_unconfigure(const struct CanvasGPUCanvasContext *context);
3076
3204
 
3205
+ bool canvas_native_webgpu_context_has_current_texture(const struct CanvasGPUCanvasContext *context);
3206
+
3207
+ bool canvas_native_webgpu_context_has_surface_presented(const struct CanvasGPUCanvasContext *context);
3208
+
3077
3209
  const struct CanvasGPUTexture *canvas_native_webgpu_context_get_current_texture(const struct CanvasGPUCanvasContext *context);
3078
3210
 
3079
3211
  void canvas_native_webgpu_context_present_surface(const struct CanvasGPUCanvasContext *context,
@@ -3124,7 +3256,7 @@ void canvas_native_webgpu_command_encoder_copy_buffer_to_buffer(const struct Can
3124
3256
  int64_t src_offset,
3125
3257
  const struct CanvasGPUBuffer *dst,
3126
3258
  int64_t dst_offset,
3127
- uint64_t size);
3259
+ int64_t size);
3128
3260
 
3129
3261
  void canvas_native_webgpu_command_encoder_copy_buffer_to_texture(const struct CanvasGPUCommandEncoder *command_encoder,
3130
3262
  const struct CanvasImageCopyBuffer *src,
@@ -3362,6 +3494,11 @@ void canvas_native_webgpu_queue_copy_external_image_to_texture(const struct Canv
3362
3494
  const struct CanvasImageCopyTexture *destination,
3363
3495
  const struct CanvasExtent3d *size);
3364
3496
 
3497
+ void canvas_native_webgpu_queue_copy_gpu_context_to_texture(const struct CanvasGPUQueue *queue,
3498
+ const struct CanvasImageCopyGPUContext *source,
3499
+ const struct CanvasImageCopyTexture *destination,
3500
+ const struct CanvasExtent3d *size);
3501
+
3365
3502
  void canvas_native_webgpu_queue_on_submitted_work_done(const struct CanvasGPUQueue *queue,
3366
3503
  void (*callback)(char*, void*),
3367
3504
  void *callback_data);
@@ -3375,8 +3512,15 @@ void canvas_native_webgpu_queue_write_buffer(const struct CanvasGPUQueue *queue,
3375
3512
  uint64_t buffer_offset,
3376
3513
  const uint8_t *data,
3377
3514
  uintptr_t data_size,
3378
- uintptr_t data_offset,
3379
- intptr_t size);
3515
+ uintptr_t data_offset);
3516
+
3517
+ void canvas_native_webgpu_queue_write_buffer_size(const struct CanvasGPUQueue *queue,
3518
+ const struct CanvasGPUBuffer *buffer,
3519
+ uint64_t buffer_offset,
3520
+ const uint8_t *data,
3521
+ uintptr_t data_size,
3522
+ uintptr_t data_offset,
3523
+ uintptr_t size);
3380
3524
 
3381
3525
  void canvas_native_webgpu_queue_write_texture(const struct CanvasGPUQueue *queue,
3382
3526
  const struct CanvasImageCopyTexture *destination,
@@ -3572,6 +3716,29 @@ void canvas_native_webgpu_shader_module_reference(const struct CanvasGPUShaderMo
3572
3716
 
3573
3717
  void canvas_native_webgpu_shader_module_release(const struct CanvasGPUShaderModule *shader_module);
3574
3718
 
3719
+ struct CanvasGPUCompilationInfo *canvas_native_webgpu_device_create_shader_module_get_compilation_info(const struct CanvasGPUShaderModule *shader_module);
3720
+
3721
+ uintptr_t canvas_native_webgpu_compilation_info_get_messages_count(struct CanvasGPUCompilationInfo *info);
3722
+
3723
+ struct CanvasGPUCompilationMessage *canvas_native_webgpu_compilation_info_get_message_at(struct CanvasGPUCompilationInfo *info,
3724
+ uintptr_t index);
3725
+
3726
+ void canvas_native_webgpu_compilation_info_release(struct CanvasGPUCompilationInfo *info);
3727
+
3728
+ void canvas_native_webgpu_compilation_message_release(struct CanvasGPUCompilationMessage *message);
3729
+
3730
+ const char *canvas_native_webgpu_compilation_message_get_message(struct CanvasGPUCompilationMessage *message);
3731
+
3732
+ enum CanvasGPUCompilationMessageType canvas_native_webgpu_compilation_message_get_type(struct CanvasGPUCompilationMessage *message);
3733
+
3734
+ uint64_t canvas_native_webgpu_compilation_message_get_line_num(struct CanvasGPUCompilationMessage *message);
3735
+
3736
+ uint64_t canvas_native_webgpu_compilation_message_get_line_pos(struct CanvasGPUCompilationMessage *message);
3737
+
3738
+ uint64_t canvas_native_webgpu_compilation_message_get_offset(struct CanvasGPUCompilationMessage *message);
3739
+
3740
+ uint64_t canvas_native_webgpu_compilation_message_get_length(struct CanvasGPUCompilationMessage *message);
3741
+
3575
3742
  struct CanvasGPUSupportedLimits *canvas_native_webgpu_create_limits(void);
3576
3743
 
3577
3744
  void canvas_native_webgpu_limits_release(struct CanvasGPUSupportedLimits *limits);
@@ -3615,6 +3782,8 @@ void canvas_native_webgpu_texture_view_release(const struct CanvasGPUTextureView
3615
3782
 
3616
3783
  void canvas_native_webgpu_struct_surface_capabilities_release(struct CanvasSurfaceCapabilities *cap);
3617
3784
 
3785
+ const struct U8Buffer *canvas_native_u8_buffer_clone(const struct U8Buffer *buffer);
3786
+
3618
3787
  const uint8_t *canvas_native_u8_buffer_get_bytes(const struct U8Buffer *buffer);
3619
3788
 
3620
3789
  uint8_t *canvas_native_u8_buffer_get_bytes_mut(struct U8Buffer *buffer);
@@ -3661,6 +3830,14 @@ char *canvas_native_string_buffer_get_value_at(const struct StringBuffer *buffer
3661
3830
 
3662
3831
  void canvas_native_string_buffer_release(struct StringBuffer *buffer);
3663
3832
 
3833
+ const char *canvas_native_helper_base64_encode(const uint8_t *data, uintptr_t size);
3834
+
3835
+ const char *canvas_native_helper_base64_encode_c_str(const char *data);
3836
+
3837
+ struct U8Buffer *canvas_native_helper_base64_decode(const uint8_t *data, uintptr_t size);
3838
+
3839
+ struct U8Buffer *canvas_native_helper_base64_decode_c_str(const char *data);
3840
+
3664
3841
  struct FileHelperMime *canvas_native_helper_get_mime(const uint8_t *data, uintptr_t size);
3665
3842
 
3666
3843
  void canvas_native_helper_release_mime(struct FileHelperMime *mime);
@@ -3879,12 +4056,20 @@ bool canvas_native_webgl_result_get_bool(const struct WebGLResult *result);
3879
4056
 
3880
4057
  struct I32Buffer *canvas_native_webgl_result_get_i32_array(const struct WebGLResult *result);
3881
4058
 
4059
+ struct I32Buffer *canvas_native_webgl_result_into_i32_array(struct WebGLResult *result);
4060
+
3882
4061
  struct U32Buffer *canvas_native_webgl_result_get_u32_array(const struct WebGLResult *result);
3883
4062
 
4063
+ struct U32Buffer *canvas_native_webgl_result_into_u32_array(struct WebGLResult *result);
4064
+
3884
4065
  struct F32Buffer *canvas_native_webgl_result_get_f32_array(const struct WebGLResult *result);
3885
4066
 
4067
+ struct F32Buffer *canvas_native_webgl_result_into_f32_array(struct WebGLResult *result);
4068
+
3886
4069
  struct U8Buffer *canvas_native_webgl_result_get_bool_array(const struct WebGLResult *result);
3887
4070
 
4071
+ struct BoolBuffer *canvas_native_webgl_result_into_bool_array(struct WebGLResult *result);
4072
+
3888
4073
  uint32_t canvas_native_webgl_result_get_u32(const struct WebGLResult *result);
3889
4074
 
3890
4075
  int32_t canvas_native_webgl_result_get_i32(const struct WebGLResult *result);
@@ -4597,6 +4782,17 @@ void canvas_native_webgl_tex_sub_image2d(uint32_t target,
4597
4782
  uintptr_t size,
4598
4783
  struct WebGLState *state);
4599
4784
 
4785
+ void canvas_native_webgl_tex_sub_image2d_offset(uint32_t target,
4786
+ int32_t level,
4787
+ int32_t xoffset,
4788
+ int32_t yoffset,
4789
+ int32_t width,
4790
+ int32_t height,
4791
+ uint32_t format,
4792
+ int32_t image_type,
4793
+ int64_t offset,
4794
+ struct WebGLState *state);
4795
+
4600
4796
  void canvas_native_webgl_uniform1f(int32_t location, float v0, struct WebGLState *state);
4601
4797
 
4602
4798
  void canvas_native_webgl_uniform1fv(int32_t location,
@@ -4822,6 +5018,30 @@ uint32_t canvas_native_webgl2_client_wait_sync(const struct WebGLSync *sync,
4822
5018
  intptr_t timeout,
4823
5019
  struct WebGLState *state);
4824
5020
 
5021
+ void canvas_native_webgl2_compressed_tex_image3d_none(uint32_t target,
5022
+ int32_t level,
5023
+ uint32_t internalformat,
5024
+ int32_t width,
5025
+ int32_t height,
5026
+ int32_t depth,
5027
+ int32_t border,
5028
+ int32_t image_size,
5029
+ uintptr_t offset,
5030
+ struct WebGLState *state);
5031
+
5032
+ void canvas_native_webgl2_compressed_tex_image3d(uint32_t target,
5033
+ int32_t level,
5034
+ uint32_t internalformat,
5035
+ int32_t width,
5036
+ int32_t height,
5037
+ int32_t depth,
5038
+ int32_t border,
5039
+ const uint8_t *src,
5040
+ uintptr_t size,
5041
+ uintptr_t src_offset,
5042
+ uintptr_t src_length_override,
5043
+ struct WebGLState *state);
5044
+
4825
5045
  void canvas_native_webgl2_compressed_tex_sub_image3d_none(uint32_t target,
4826
5046
  int32_t level,
4827
5047
  int32_t xoffset,
@@ -4832,7 +5052,7 @@ void canvas_native_webgl2_compressed_tex_sub_image3d_none(uint32_t target,
4832
5052
  int32_t depth,
4833
5053
  uint32_t format,
4834
5054
  int32_t image_size,
4835
- int32_t offset,
5055
+ uintptr_t offset,
4836
5056
  struct WebGLState *state);
4837
5057
 
4838
5058
  void canvas_native_webgl2_compressed_tex_sub_image3d(uint32_t target,
@@ -4880,6 +5100,8 @@ void canvas_native_webgl2_delete_query_with_query(uint32_t id, struct WebGLState
4880
5100
 
4881
5101
  void canvas_native_webgl2_delete_sampler_with_sampler(uint32_t sampler, struct WebGLState *state);
4882
5102
 
5103
+ void canvas_native_webgl2_sync_destroy(const struct WebGLSync *sync);
5104
+
4883
5105
  void canvas_native_webgl2_delete_sync_with_sync(const struct WebGLSync *sync,
4884
5106
  struct WebGLState *state);
4885
5107
 
@@ -5080,6 +5302,18 @@ void canvas_native_webgl2_tex_image3d_canvas2d(uint32_t target,
5080
5302
  struct CanvasRenderingContext2D *canvas,
5081
5303
  struct WebGLState *state);
5082
5304
 
5305
+ void canvas_native_webgl2_tex_image3d_webgl(uint32_t target,
5306
+ int32_t level,
5307
+ int32_t internalformat,
5308
+ int32_t _width,
5309
+ int32_t _height,
5310
+ int32_t depth,
5311
+ int32_t border,
5312
+ uint32_t format,
5313
+ uint32_t type_,
5314
+ struct WebGLState *webgl,
5315
+ struct WebGLState *state);
5316
+
5083
5317
  void canvas_native_webgl2_tex_image3d(uint32_t target,
5084
5318
  int32_t level,
5085
5319
  int32_t internalformat,
@@ -5175,6 +5409,19 @@ void canvas_native_webgl2_tex_sub_image3d_canvas2d(uint32_t target,
5175
5409
  struct CanvasRenderingContext2D *canvas,
5176
5410
  struct WebGLState *state);
5177
5411
 
5412
+ void canvas_native_webgl2_tex_sub_image3d_webgl(uint32_t target,
5413
+ int32_t level,
5414
+ int32_t xoffset,
5415
+ int32_t yoffset,
5416
+ int32_t zoffset,
5417
+ int32_t _width,
5418
+ int32_t _height,
5419
+ int32_t depth,
5420
+ uint32_t format,
5421
+ uint32_t type_,
5422
+ struct WebGLState *webgl,
5423
+ struct WebGLState *state);
5424
+
5178
5425
  void canvas_native_webgl2_tex_sub_image3d_offset(uint32_t target,
5179
5426
  int32_t level,
5180
5427
  int32_t xoffset,