@nativescript/canvas 2.0.0-webgpu.34 → 2.0.0-webgpu.36

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 (69) hide show
  1. package/Canvas/common.d.ts +1 -1
  2. package/Canvas/common.js +24 -18
  3. package/Canvas/common.js.map +1 -1
  4. package/Canvas/index.android.js.map +1 -1
  5. package/Canvas/index.ios.d.ts +7 -1
  6. package/Canvas/index.ios.js +57 -17
  7. package/Canvas/index.ios.js.map +1 -1
  8. package/Canvas2D/CanvasRenderingContext2D/index.d.ts +2 -1
  9. package/Canvas2D/CanvasRenderingContext2D/index.js +1 -4
  10. package/Canvas2D/CanvasRenderingContext2D/index.js.map +1 -1
  11. package/ImageAsset/index.d.ts +4 -2
  12. package/ImageAsset/index.js +76 -6
  13. package/ImageAsset/index.js.map +1 -1
  14. package/WebGL/WebGLRenderingContext/common.d.ts +1 -1
  15. package/WebGL/WebGLRenderingContext/index.js +5 -4
  16. package/WebGL/WebGLRenderingContext/index.js.map +1 -1
  17. package/WebGL2/WebGL2RenderingContext/index.js +1 -1
  18. package/WebGL2/WebGL2RenderingContext/index.js.map +1 -1
  19. package/WebGPU/GPUCanvasContext.d.ts +2 -1
  20. package/WebGPU/GPUCanvasContext.js.map +1 -1
  21. package/WebGPU/GPUQueue.js +9 -0
  22. package/WebGPU/GPUQueue.js.map +1 -1
  23. package/WebGPU/GPURenderPassEncoder.d.ts +3 -0
  24. package/WebGPU/GPURenderPassEncoder.js +9 -0
  25. package/WebGPU/GPURenderPassEncoder.js.map +1 -1
  26. package/angular/esm2022/index.mjs +4 -4
  27. package/angular/fesm2022/nativescript-canvas-angular.mjs +4 -4
  28. package/angular/fesm2022/nativescript-canvas-angular.mjs.map +1 -1
  29. package/common.js.map +1 -1
  30. package/index.d.ts +2 -1
  31. package/index.js +2 -1
  32. package/index.js.map +1 -1
  33. package/package.json +1 -1
  34. package/platforms/android/canvas-release.aar +0 -0
  35. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  36. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative-Swift.h +1 -0
  37. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +85 -0
  38. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  39. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +109 -18
  40. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.private.swiftinterface +4 -0
  41. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftinterface +4 -0
  42. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  43. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +681 -675
  44. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  45. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative-Swift.h +2 -0
  46. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +85 -0
  47. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  48. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  49. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +109 -18
  50. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +4 -0
  51. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftinterface +4 -0
  52. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +109 -18
  53. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +4 -0
  54. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +4 -0
  55. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +24 -24
  56. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  57. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +683 -677
  58. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasNative.yml +736 -730
  59. package/platforms/ios/src/cpp/CanvasJSIModule.cpp +140 -12
  60. package/platforms/ios/src/cpp/CanvasJSIModule.h +2 -0
  61. package/platforms/ios/src/cpp/ImageAssetImpl.cpp +572 -397
  62. package/platforms/ios/src/cpp/ImageAssetImpl.h +4 -0
  63. package/platforms/ios/src/cpp/webgl/WebGLRenderingContextBase.cpp +1 -1
  64. package/platforms/ios/src/cpp/webgpu/GPUComputePassEncoderImpl.cpp +42 -37
  65. package/platforms/ios/src/cpp/webgpu/GPUQueueImpl.cpp +40 -8
  66. package/platforms/ios/src/cpp/webgpu/GPURenderBundleEncoderImpl.cpp +26 -23
  67. package/platforms/ios/src/cpp/webgpu/GPURenderPassEncoderImpl.cpp +93 -23
  68. package/platforms/ios/src/cpp/webgpu/GPURenderPassEncoderImpl.h +4 -0
  69. package/utils.d.ts +1 -1
@@ -178,6 +178,10 @@ void CanvasJSIModule::install(v8::Isolate *isolate) {
178
178
  v8::FunctionTemplate::New(isolate, &ReadFile)->GetFunction(
179
179
  context).ToLocalChecked()).FromJust();
180
180
 
181
+ canvasMod->Set(context, ConvertToV8String(isolate, "getMime"),
182
+ v8::FunctionTemplate::New(isolate, &GetMime)->GetFunction(
183
+ context).ToLocalChecked()).FromJust();
184
+
181
185
  canvasMod->Set(context, ConvertToV8String(isolate, "createWebGLContext"),
182
186
  v8::FunctionTemplate::New(isolate, &CreateWebGLContext)->GetFunction(
183
187
  context).ToLocalChecked()).FromJust();
@@ -233,7 +237,7 @@ void CanvasJSIModule::Create2DContext(const v8::FunctionCallbackInfo<v8::Value>
233
237
  auto context = isolate->GetCurrentContext();
234
238
  auto ptr = args[0].As<v8::BigInt>()->Int64Value();
235
239
 
236
- auto context_2d = static_cast<CanvasRenderingContext2D *>((void *)ptr);
240
+ auto context_2d = static_cast<CanvasRenderingContext2D *>((void *) ptr);
237
241
 
238
242
  auto ret = CanvasRenderingContext2DImpl::NewInstance(isolate, new CanvasRenderingContext2DImpl(
239
243
  context_2d));
@@ -358,7 +362,7 @@ void CanvasJSIModule::CreateImageBitmap(const v8::FunctionCallbackInfo<v8::Value
358
362
  isolate, ta);
359
363
 
360
364
  auto callback = new AsyncCallback(isolate, cbFunc, [](bool done, void *data) {
361
- if(data == nullptr){return;}
365
+ if (data == nullptr) { return; }
362
366
  auto async_data = static_cast<AsyncCallback *>(data);
363
367
  auto func = async_data->inner_.get();
364
368
  if (func != nullptr && func->isolate_ != nullptr) {
@@ -598,7 +602,7 @@ void CanvasJSIModule::Create2DContextWithPointer(const v8::FunctionCallbackInfo<
598
602
 
599
603
  struct FileData {
600
604
  char *error_;
601
- U8Buffer* data;
605
+ U8Buffer *data;
602
606
 
603
607
  ~FileData() {
604
608
  if (error_ != nullptr) {
@@ -613,9 +617,133 @@ void CanvasJSIModule::ReadFile(const v8::FunctionCallbackInfo<v8::Value> &args)
613
617
  auto file = ConvertFromV8String(isolate, args[0]);
614
618
  auto cbFunc = args[1].As<v8::Function>();
615
619
 
620
+ auto callback = new AsyncCallback(isolate, cbFunc, [](bool done, void *data) {
621
+ if (data == nullptr) { return; }
622
+ auto async_data = static_cast<AsyncCallback *>(data);
623
+ auto func = async_data->inner_.get();
624
+ if (func != nullptr && func->isolate_ != nullptr) {
625
+ v8::Isolate *isolate = func->isolate_;
626
+ v8::Locker locker(isolate);
627
+ v8::Isolate::Scope isolate_scope(isolate);
628
+ v8::HandleScope handle_scope(isolate);
629
+ v8::Local<v8::Function> callback = func->callback_.Get(
630
+ isolate);
631
+ v8::Local<v8::Context> context = callback->GetCreationContextChecked();
632
+ v8::Context::Scope context_scope(context);
633
+
634
+ if (func->data != nullptr) {
635
+ auto file_data = static_cast<FileData *>(func->data);
636
+
637
+ v8::Local<v8::Value> args[2];
638
+
639
+ if (done) {
640
+ args[0] = v8::Null(isolate);
641
+
642
+ auto buf = canvas_native_u8_buffer_get_bytes_mut(file_data->data);
643
+ auto size = (size_t) canvas_native_u8_buffer_get_length(file_data->data);
644
+
645
+ auto store = v8::ArrayBuffer::NewBackingStore((void *) buf, size,
646
+ [](void *data,
647
+ size_t length,
648
+ void *deleter_data) {
649
+ if (deleter_data !=
650
+ nullptr) {
651
+ delete static_cast<FileData *>(deleter_data);
652
+
653
+ }
654
+ },
655
+ func->data);
656
+
657
+ auto ret = v8::Object::New(isolate);
658
+ auto buffer = v8::ArrayBuffer::New(isolate, std::move(store));
659
+ ret->Set(context, ConvertToV8String(isolate, "buffer"), buffer);
660
+ auto mime = canvas_native_helper_get_mime(buf, size);
661
+ if (mime != nullptr) {
662
+ if (mime->mime_type != nullptr) {
663
+ ret->Set(context, ConvertToV8String(isolate, "mime"),
664
+ ConvertToV8String(isolate, mime->mime_type));
665
+ }
666
+ if (mime->extension != nullptr) {
667
+ ret->Set(context, ConvertToV8String(isolate, "extension"),
668
+ ConvertToV8String(isolate, mime->extension));
669
+ }
670
+ canvas_native_helper_release_mime(mime);
671
+ }
672
+
673
+ args[1] = ret;
674
+ } else {
675
+ auto error = file_data->error_;
676
+ args[0] = v8::Exception::Error(ConvertToV8String(isolate, error));
677
+ args[1] = v8::Null(isolate);
678
+ delete file_data;
679
+ }
680
+
681
+ v8::TryCatch tc(isolate);
682
+ v8::Local<v8::Value> result;
683
+ if (!callback->Call(context, context->Global(), 2, args).ToLocal(
684
+ &result)) {
685
+ if (tc.HasCaught()) {
686
+
687
+ // v8::Local<v8::Value> stack;
688
+ // bool success = tc.StackTrace(context).ToLocal(&stack);
689
+ // if (!success || stack.IsEmpty()) {
690
+ // if (!done) {
691
+ // delete async_data;
692
+ // }
693
+ // return;
694
+ // }
695
+ //
696
+ // v8::Local<v8::String> stackV8Str;
697
+ // success = stack->ToDetailString(context).ToLocal(&stackV8Str);
698
+ // if (!success || stackV8Str.IsEmpty()) {
699
+ // if (!done) {
700
+ // delete async_data;
701
+ // }
702
+ // return;
703
+ // }
704
+
705
+ }
706
+ }
707
+
708
+ delete async_data;
709
+
710
+ }
711
+ }
712
+ });
713
+
714
+ callback->prepare();
715
+
716
+ std::thread thread(
717
+ [callback, file]() {
718
+ bool done = false;
719
+ auto ret = canvas_native_helper_read_file(file.c_str());
720
+
721
+ if (!canvas_native_helper_read_file_has_error(ret)) {
722
+ auto buf = canvas_native_helper_read_file_take_data(ret);
723
+ callback->inner_->data = new FileData{nullptr, buf};
724
+ done = true;
725
+ } else {
726
+ auto error = canvas_native_helper_read_file_get_error(ret);
727
+ callback->inner_->data = new FileData{const_cast<char *>(error), nullptr};
728
+ }
729
+ canvas_native_helper_release(ret);
730
+ callback->execute(done);
731
+ });
732
+
733
+ thread.detach();
734
+
735
+
736
+ }
737
+
738
+
739
+ void CanvasJSIModule::GetMime(const v8::FunctionCallbackInfo<v8::Value> &args) {
740
+ auto isolate = args.GetIsolate();
741
+ auto file = ConvertFromV8String(isolate, args[0]);
742
+ auto cbFunc = args[1].As<v8::Function>();
743
+
616
744
 
617
745
  auto callback = new AsyncCallback(isolate, cbFunc, [](bool done, void *data) {
618
- if(data == nullptr){return;}
746
+ if (data == nullptr) { return; }
619
747
  auto async_data = static_cast<AsyncCallback *>(data);
620
748
  auto func = async_data->inner_.get();
621
749
  if (func != nullptr && func->isolate_ != nullptr) {
@@ -624,12 +752,12 @@ void CanvasJSIModule::ReadFile(const v8::FunctionCallbackInfo<v8::Value> &args)
624
752
  v8::Isolate::Scope isolate_scope(isolate);
625
753
  v8::HandleScope handle_scope(isolate);
626
754
  v8::Local<v8::Function> callback = func->callback_.Get(
627
- isolate);
755
+ isolate);
628
756
  v8::Local<v8::Context> context = callback->GetCreationContextChecked();
629
757
  v8::Context::Scope context_scope(context);
630
758
 
631
759
  if (func->data != nullptr) {
632
- auto file_data = static_cast<FileData*>(func->data);
760
+ auto file_data = static_cast<FileData *>(func->data);
633
761
 
634
762
  v8::Local<v8::Value> args[2];
635
763
 
@@ -701,11 +829,11 @@ void CanvasJSIModule::ReadFile(const v8::FunctionCallbackInfo<v8::Value> &args)
701
829
 
702
830
  if (!canvas_native_helper_read_file_has_error(ret)) {
703
831
  auto buf = canvas_native_helper_read_file_take_data(ret);
704
- callback->inner_->data = new FileData {nullptr, buf};
832
+ callback->inner_->data = new FileData{nullptr, buf};
705
833
  done = true;
706
834
  } else {
707
835
  auto error = canvas_native_helper_read_file_get_error(ret);
708
- callback->inner_->data = new FileData {const_cast<char *>(error), nullptr};
836
+ callback->inner_->data = new FileData{const_cast<char *>(error), nullptr};
709
837
  }
710
838
  canvas_native_helper_release(ret);
711
839
  callback->execute(done);
@@ -714,9 +842,9 @@ void CanvasJSIModule::ReadFile(const v8::FunctionCallbackInfo<v8::Value> &args)
714
842
  thread.detach();
715
843
 
716
844
 
717
-
718
845
  }
719
846
 
847
+
720
848
  void CanvasJSIModule::CreateWebGLContext(const v8::FunctionCallbackInfo<v8::Value> &args) {
721
849
 
722
850
  auto options = GLOptions();
@@ -734,7 +862,7 @@ void CanvasJSIModule::CreateWebGLContext(const v8::FunctionCallbackInfo<v8::Valu
734
862
  auto count = args.Length();
735
863
  if (count == 6) {
736
864
  auto ctx = args[1].As<v8::BigInt>()->Int64Value();
737
- auto webgl = static_cast<WebGLState*>((void *)ctx);
865
+ auto webgl = (WebGLState *) ctx;
738
866
 
739
867
  auto renderingContext = WebGLRenderingContext::NewInstance(isolate,
740
868
  new WebGLRenderingContext(
@@ -817,8 +945,8 @@ void CanvasJSIModule::CreateWebGL2Context(const v8::FunctionCallbackInfo<v8::Val
817
945
 
818
946
  auto count = args.Length();
819
947
  if (count == 6) {
820
- auto ctx = args[0].As<v8::BigInt>()->Int64Value();
821
- auto webgl = static_cast<WebGLState*>((void *)ctx);
948
+ auto ctx = args[1].As<v8::BigInt>()->Int64Value();
949
+ auto webgl = (WebGLState *) ctx;
822
950
  auto renderingContext = WebGL2RenderingContext::NewInstance(isolate,
823
951
  new WebGL2RenderingContext(
824
952
  webgl,
@@ -37,6 +37,8 @@ public:
37
37
 
38
38
  static void ReadFile(const v8::FunctionCallbackInfo<v8::Value> &args);
39
39
 
40
+ static void GetMime(const v8::FunctionCallbackInfo<v8::Value> &args);
41
+
40
42
  static void CreateWebGLContext(const v8::FunctionCallbackInfo<v8::Value> &args);
41
43
 
42
44
  static void CreateWebGL2Context(const v8::FunctionCallbackInfo<v8::Value> &args);