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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/Canvas/index.android.js +6 -4
  2. package/Canvas/index.android.js.map +1 -1
  3. package/Canvas/index.ios.js +4 -3
  4. package/Canvas/index.ios.js.map +1 -1
  5. package/Canvas/utils.js +2 -1
  6. package/Canvas/utils.js.map +1 -1
  7. package/Canvas2D/CanvasRenderingContext2D/index.d.ts +1 -0
  8. package/Canvas2D/CanvasRenderingContext2D/index.js +158 -6
  9. package/Canvas2D/CanvasRenderingContext2D/index.js.map +1 -1
  10. package/Canvas2D/DOMMatrix/index.js +280 -2
  11. package/Canvas2D/DOMMatrix/index.js.map +1 -1
  12. package/Canvas2D/Path2D/index.js.map +1 -1
  13. package/WebGL/WebGLRenderingContext/index.js +0 -1
  14. package/WebGL/WebGLRenderingContext/index.js.map +1 -1
  15. package/WebGPU/GPUCanvasContext.d.ts +0 -1
  16. package/WebGPU/GPUCanvasContext.js +6 -18
  17. package/WebGPU/GPUCanvasContext.js.map +1 -1
  18. package/WebGPU/GPUCommandEncoder.d.ts +1 -1
  19. package/WebGPU/GPUCommandEncoder.js +1 -1
  20. package/WebGPU/GPUCommandEncoder.js.map +1 -1
  21. package/WebGPU/GPUDevice.d.ts +2 -2
  22. package/WebGPU/GPUDevice.js.map +1 -1
  23. package/WebGPU/GPUQueue.js +1 -4
  24. package/WebGPU/GPUQueue.js.map +1 -1
  25. package/WebGPU/GPURenderPassEncoder.d.ts +1 -1
  26. package/WebGPU/GPURenderPassEncoder.js +2 -2
  27. package/WebGPU/GPURenderPassEncoder.js.map +1 -1
  28. package/WebGPU/Interfaces.d.ts +1 -0
  29. package/WebGPU/Types.d.ts +3 -3
  30. package/WebGPU/Utils.d.ts +1 -1
  31. package/WebGPU/Utils.js +67 -93
  32. package/WebGPU/Utils.js.map +1 -1
  33. package/angular/fesm2022/nativescript-canvas-angular.mjs +5 -5
  34. package/angular/package.json +0 -2
  35. package/package.json +1 -1
  36. package/platforms/android/canvas-release.aar +0 -0
  37. package/platforms/ios/CanvasNative.xcframework/Info.plist +5 -5
  38. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  39. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative-Swift.h +10 -5
  40. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +249 -47
  41. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Info.plist +0 -0
  42. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  43. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +12361 -10901
  44. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.private.swiftinterface +55 -49
  45. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  46. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftinterface +55 -49
  47. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  48. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +954 -994
  49. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  50. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative-Swift.h +20 -10
  51. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +249 -47
  52. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Info.plist +0 -0
  53. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  54. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  55. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +12361 -10901
  56. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +55 -49
  57. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  58. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftinterface +55 -49
  59. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +12361 -10901
  60. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +55 -49
  61. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  62. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +55 -49
  63. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +29 -29
  64. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  65. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +955 -993
  66. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasNative.yml +824 -1037
  67. package/platforms/ios/src/cpp/CanvasJSIModule.cpp +1166 -1175
  68. package/platforms/ios/src/cpp/OnRafCallback.cpp +15 -10
  69. package/platforms/ios/src/cpp/OnRafCallback.h +1 -0
  70. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.cpp +59 -15
  71. package/platforms/ios/src/cpp/canvas2d/Path2D.cpp +1 -1
  72. package/platforms/ios/src/cpp/webgpu/GPUAdapterImpl.cpp +4 -8
  73. package/platforms/ios/src/cpp/webgpu/GPUCanvasContextImpl.cpp +431 -326
  74. package/platforms/ios/src/cpp/webgpu/GPUCanvasContextImpl.h +98 -42
  75. package/platforms/ios/src/cpp/webgpu/GPUCommandEncoderImpl.cpp +1150 -1144
  76. package/platforms/ios/src/cpp/webgpu/GPUDeviceImpl.cpp +69 -34
  77. package/platforms/ios/src/cpp/webgpu/GPUQueueImpl.cpp +45 -19
  78. package/platforms/ios/src/cpp/webgpu/GPURenderPassEncoderImpl.cpp +22 -19
  79. package/platforms/ios/src/cpp/webgpu/GPUTextureImpl.cpp +11 -0
  80. package/platforms/ios/src/cpp/webgpu/GPUUtils.h +25 -15
  81. package/angular/esm2022/index.mjs +0 -17
  82. package/angular/esm2022/nativescript-canvas-angular.mjs +0 -5
@@ -2,56 +2,112 @@
2
2
  // Created by Osei Fortune on 20/06/2024.
3
3
  //
4
4
 
5
- #ifndef CANVAS_ANDROID_GPUCANVASCONTEXTIMPL_H
6
- #define CANVAS_ANDROID_GPUCANVASCONTEXTIMPL_H
5
+ #pragma once
6
+ #pragma process_pending_includes
7
+
8
+ #include "RafImpl.h"
9
+ #include "OnRafCallback.h"
7
10
 
8
11
  #include "Helpers.h"
9
12
  #include "ObjectWrapperImpl.h"
10
13
  #include "GPUDeviceImpl.h"
11
14
  #include "GPUTextureImpl.h"
12
15
 
16
+
13
17
  class GPUCanvasContextImpl : ObjectWrapperImpl {
14
18
  public:
15
- explicit GPUCanvasContextImpl(const CanvasGPUCanvasContext *context);
16
-
17
- ~GPUCanvasContextImpl() {
18
- canvas_native_webgpu_context_release(this->context_);
19
- }
20
-
21
- const CanvasGPUCanvasContext *GetContext();
22
-
23
- static void Init(v8::Local<v8::Object> canvasModule, v8::Isolate *isolate);
24
-
25
- static void __ToDataURL(const v8::FunctionCallbackInfo<v8::Value> &args);
26
-
27
- static GPUCanvasContextImpl *GetPointer(const v8::Local<v8::Object> &object);
28
-
29
- static v8::Local<v8::FunctionTemplate> GetCtor(v8::Isolate *isolate);
30
-
31
- static v8::Local<v8::Object> NewInstance(v8::Isolate *isolate, GPUCanvasContextImpl *ctx) {
32
- auto context = isolate->GetCurrentContext();
33
- v8::EscapableHandleScope scope(isolate);
34
- auto object = GPUCanvasContextImpl::GetCtor(isolate)->GetFunction(
35
- context).ToLocalChecked()->NewInstance(context).ToLocalChecked();
36
- SetNativeType(ctx, NativeType::GPUCanvasContext);
37
- object->SetAlignedPointerInInternalField(0, ctx);
38
- ctx->BindFinalizer(isolate, object);
39
- return scope.Escape(object);
40
- }
41
-
42
- static void Configure(const v8::FunctionCallbackInfo<v8::Value> &args);
43
-
44
- static void UnConfigure(const v8::FunctionCallbackInfo<v8::Value> &args);
45
-
46
- static void GetCurrentTexture(const v8::FunctionCallbackInfo<v8::Value> &args);
47
-
48
- static void PresentSurface(const v8::FunctionCallbackInfo<v8::Value> &args);
49
-
50
- static void GetCapabilities(const v8::FunctionCallbackInfo<v8::Value> &args);
51
-
19
+ static v8::CFunction fast_start_raf_;
20
+
21
+ static v8::CFunction fast_stop_raf_;
22
+
23
+ explicit GPUCanvasContextImpl(const CanvasGPUCanvasContext *context);
24
+
25
+ void StartRaf();
26
+
27
+ void StopRaf();
28
+
29
+ static void __StartRaf(const v8::FunctionCallbackInfo<v8::Value> &args);
30
+
31
+ static void __FastStartRaf(v8::Local<v8::Object> receiver_obj) {
32
+ GPUCanvasContextImpl *ptr = GetPointer(receiver_obj);
33
+ if (ptr == nullptr) {
34
+ return;
35
+ }
36
+
37
+ ptr->StartRaf();
38
+
39
+ }
40
+
41
+ static void __StopRaf(const v8::FunctionCallbackInfo<v8::Value> &args);
42
+
43
+ static void __FastStopRaf(v8::Local<v8::Object> receiver_obj) {
44
+ GPUCanvasContextImpl *ptr = GetPointer(receiver_obj);
45
+ if (ptr == nullptr) {
46
+ return;
47
+ }
48
+
49
+ ptr->StopRaf();
50
+
51
+ }
52
+
53
+ ~GPUCanvasContextImpl() {
54
+ auto raf = this->raf_.get();
55
+ if (raf != nullptr) {
56
+ canvas_native_raf_stop(raf->GetRaf());
57
+ }
58
+ canvas_native_webgpu_context_release(this->context_);
59
+ }
60
+
61
+ const CanvasGPUCanvasContext *GetContext();
62
+
63
+ static void Init(v8::Local<v8::Object> canvasModule, v8::Isolate *isolate);
64
+
65
+ static void __ToDataURL(const v8::FunctionCallbackInfo<v8::Value> &args);
66
+
67
+ static GPUCanvasContextImpl *GetPointer(const v8::Local<v8::Object> &object);
68
+
69
+ static v8::Local<v8::FunctionTemplate> GetCtor(v8::Isolate *isolate);
70
+
71
+ static v8::Local<v8::Object> NewInstance(v8::Isolate *isolate, GPUCanvasContextImpl *ctx) {
72
+ auto context = isolate->GetCurrentContext();
73
+ v8::EscapableHandleScope scope(isolate);
74
+ auto object = GPUCanvasContextImpl::GetCtor(isolate)->GetFunction(
75
+ context).ToLocalChecked()->NewInstance(context).ToLocalChecked();
76
+ SetNativeType(ctx, NativeType::GPUCanvasContext);
77
+ object->SetAlignedPointerInInternalField(0, ctx);
78
+ ctx->BindFinalizer(isolate, object);
79
+ return scope.Escape(object);
80
+ }
81
+
82
+ static void Configure(const v8::FunctionCallbackInfo<v8::Value> &args);
83
+
84
+ static void UnConfigure(const v8::FunctionCallbackInfo<v8::Value> &args);
85
+
86
+ static void GetCurrentTexture(const v8::FunctionCallbackInfo<v8::Value> &args);
87
+
88
+ static void PresentSurface(const v8::FunctionCallbackInfo<v8::Value> &args);
89
+
90
+ static void GetCapabilities(const v8::FunctionCallbackInfo<v8::Value> &args);
91
+
92
+ static void SetContinuousRenderMode(v8::Local<v8::String> property,
93
+ v8::Local<v8::Value> value,
94
+ const v8::PropertyCallbackInfo<void> &info);
95
+
96
+ static void GetContinuousRenderMode(v8::Local<v8::String> property,
97
+ const v8::PropertyCallbackInfo<v8::Value> &info);
98
+
99
+ void SetRaf(std::shared_ptr<RafImpl> raf);
100
+
101
+ RafImpl *GetRaf();
102
+
103
+ void Flush();
104
+
105
+ static void Flush(intptr_t context);
106
+
52
107
  private:
53
- const CanvasGPUCanvasContext *context_;
108
+ const CanvasGPUCanvasContext *context_;
109
+ std::shared_ptr<RafImpl> raf_;
110
+
111
+ bool continuousRender_ = true;
54
112
  };
55
113
 
56
-
57
- #endif //CANVAS_ANDROID_GPUCANVASCONTEXTIMPL_H