@nativescript/canvas 2.0.0-webgpu.35 → 2.0.0-webgpu.37

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 (56) 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.js +1 -1
  6. package/Canvas/index.ios.js.map +1 -1
  7. package/Canvas2D/CanvasRenderingContext2D/index.d.ts +2 -1
  8. package/Canvas2D/CanvasRenderingContext2D/index.js +1 -4
  9. package/Canvas2D/CanvasRenderingContext2D/index.js.map +1 -1
  10. package/ImageAsset/index.d.ts +4 -2
  11. package/ImageAsset/index.js +76 -6
  12. package/ImageAsset/index.js.map +1 -1
  13. package/WebGL/WebGLRenderingContext/common.d.ts +1 -1
  14. package/WebGL/WebGLRenderingContext/index.js +4 -3
  15. package/WebGL/WebGLRenderingContext/index.js.map +1 -1
  16. package/WebGPU/GPUCanvasContext.d.ts +2 -1
  17. package/WebGPU/GPUCanvasContext.js.map +1 -1
  18. package/WebGPU/GPUQueue.js +9 -0
  19. package/WebGPU/GPUQueue.js.map +1 -1
  20. package/WebGPU/GPURenderPassEncoder.d.ts +3 -0
  21. package/WebGPU/GPURenderPassEncoder.js +9 -0
  22. package/WebGPU/GPURenderPassEncoder.js.map +1 -1
  23. package/angular/esm2022/index.mjs +4 -4
  24. package/angular/fesm2022/nativescript-canvas-angular.mjs +4 -4
  25. package/angular/fesm2022/nativescript-canvas-angular.mjs.map +1 -1
  26. package/common.js.map +1 -1
  27. package/index.d.ts +2 -1
  28. package/index.js +2 -1
  29. package/index.js.map +1 -1
  30. package/package.json +1 -1
  31. package/platforms/android/canvas-release.aar +0 -0
  32. package/platforms/ios/CanvasNative.xcframework/Info.plist +5 -5
  33. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  34. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +85 -0
  35. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  36. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +7293 -7997
  37. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  38. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +681 -681
  39. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  40. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +85 -0
  41. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  42. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  43. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +7293 -7997
  44. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +7293 -7997
  45. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +6 -6
  46. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  47. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +683 -683
  48. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasNative.yml +736 -736
  49. package/platforms/ios/src/cpp/CanvasJSIModule.cpp +129 -0
  50. package/platforms/ios/src/cpp/CanvasJSIModule.h +2 -0
  51. package/platforms/ios/src/cpp/ImageAssetImpl.cpp +572 -397
  52. package/platforms/ios/src/cpp/ImageAssetImpl.h +4 -0
  53. package/platforms/ios/src/cpp/webgpu/GPUQueueImpl.cpp +40 -8
  54. package/platforms/ios/src/cpp/webgpu/GPURenderPassEncoderImpl.cpp +67 -0
  55. package/platforms/ios/src/cpp/webgpu/GPURenderPassEncoderImpl.h +4 -0
  56. 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();
@@ -613,6 +617,130 @@ 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
746
  if (data == nullptr) { return; }
@@ -716,6 +844,7 @@ void CanvasJSIModule::ReadFile(const v8::FunctionCallbackInfo<v8::Value> &args)
716
844
 
717
845
  }
718
846
 
847
+
719
848
  void CanvasJSIModule::CreateWebGLContext(const v8::FunctionCallbackInfo<v8::Value> &args) {
720
849
 
721
850
  auto options = GLOptions();
@@ -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);