@nativescript/canvas 2.0.0-webgpu.40 → 2.0.0-webgpu.42

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 (40) hide show
  1. package/Canvas/index.android.js +6 -0
  2. package/Canvas/index.android.js.map +1 -1
  3. package/Canvas/index.ios.js +6 -0
  4. package/Canvas/index.ios.js.map +1 -1
  5. package/WebGPU/GPUCanvasContext.d.ts +7 -2
  6. package/WebGPU/GPUCanvasContext.js +31 -0
  7. package/WebGPU/GPUCanvasContext.js.map +1 -1
  8. package/WebGPU/GPUQueue.js +1 -1
  9. package/WebGPU/GPUQueue.js.map +1 -1
  10. package/package.json +1 -1
  11. package/platforms/android/canvas-release.aar +0 -0
  12. package/platforms/ios/CanvasNative.xcframework/Info.plist +5 -5
  13. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  14. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative-Swift.h +1 -0
  15. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +11 -0
  16. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  17. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +49 -14
  18. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.private.swiftinterface +1 -0
  19. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftinterface +1 -0
  20. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  21. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +672 -662
  22. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  23. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative-Swift.h +2 -0
  24. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +11 -0
  25. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  26. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  27. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +49 -14
  28. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +1 -0
  29. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftinterface +1 -0
  30. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +49 -14
  31. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +1 -0
  32. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +1 -0
  33. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +24 -24
  34. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  35. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +693 -683
  36. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasNative.yml +746 -736
  37. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.cpp +1 -1
  38. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.cpp +2 -2
  39. package/platforms/ios/src/cpp/webgpu/GPUCanvasContextImpl.cpp +59 -3
  40. package/platforms/ios/src/cpp/webgpu/GPUCanvasContextImpl.h +2 -0
@@ -3106,7 +3106,7 @@ CanvasRenderingContext2DImpl::__ToDataURL(const v8::FunctionCallbackInfo<v8::Val
3106
3106
 
3107
3107
 
3108
3108
  if (args[1]->IsNumber()) {
3109
- quality = (int) args[1]->NumberValue(context).ToChecked();
3109
+ quality = (int) (args[1]->NumberValue(context).ToChecked() * 100);
3110
3110
  }
3111
3111
 
3112
3112
 
@@ -5883,8 +5883,8 @@ WebGLRenderingContext::__ToDataURL(const v8::FunctionCallbackInfo<v8::Value> &ar
5883
5883
 
5884
5884
 
5885
5885
  if (args[1]->IsNumber()) {
5886
- quality = (int) args[1]->NumberValue(
5887
- context).ToChecked();
5886
+ quality = (int) (args[1]->NumberValue(
5887
+ context).ToChecked() * 100);
5888
5888
  }
5889
5889
 
5890
5890
 
@@ -6,6 +6,7 @@
6
6
  #include "Caches.h"
7
7
  #include "GPUAdapterImpl.h"
8
8
  #include "GPUUtils.h"
9
+ #include "GPUQueueImpl.h"
9
10
 
10
11
  GPUCanvasContextImpl::GPUCanvasContextImpl(const CanvasGPUCanvasContext *context) : context_(
11
12
  context) {}
@@ -70,6 +71,9 @@ v8::Local<v8::FunctionTemplate> GPUCanvasContextImpl::GetCtor(v8::Isolate *isola
70
71
  ConvertToV8String(isolate, "getCapabilities"),
71
72
  v8::FunctionTemplate::New(isolate, &GetCapabilities));
72
73
 
74
+ tmpl->Set(
75
+ ConvertToV8String(isolate, "__toDataURL"),
76
+ v8::FunctionTemplate::New(isolate, &__ToDataURL));
73
77
 
74
78
  cache->GPUCanvasContextTmpl =
75
79
  std::make_unique<v8::Persistent<v8::FunctionTemplate>>(isolate, ctorTmpl);
@@ -211,6 +215,57 @@ void GPUCanvasContextImpl::UnConfigure(const v8::FunctionCallbackInfo<v8::Value>
211
215
 
212
216
  }
213
217
 
218
+ void GPUCanvasContextImpl::__ToDataURL(const v8::FunctionCallbackInfo<v8::Value> &args) {
219
+ GPUCanvasContextImpl *ptr = GetPointer(args.This());
220
+
221
+ auto isolate = args.GetIsolate();
222
+ auto context = isolate->GetCurrentContext();
223
+
224
+
225
+ std::string type("image/png");
226
+ int quality = 92;
227
+ if (args[0]->IsString()) {
228
+ type = ConvertFromV8String(isolate, args[0]);
229
+ }
230
+
231
+ if (args[1]->IsNumber()) {
232
+ quality = (int) (args[1]->NumberValue(context).ToChecked() * 100);
233
+ }
234
+
235
+ auto deviceType = GetNativeType(args[2]);
236
+ auto textureType = GetNativeType(args[3]);
237
+
238
+ if (deviceType == NativeType::GPUDevice) {
239
+ auto device = GPUDeviceImpl::GetPointer(args[2].As<v8::Object>());
240
+ char* data = nullptr;
241
+ if(textureType == NativeType::GPUTexture){
242
+ auto texture = GPUTextureImpl::GetPointer(args[3].As<v8::Object>());
243
+ data = canvas_native_webgpu_to_data_url_with_texture(
244
+ ptr->GetContext(), device->GetGPUDevice(), texture->GetTexture(),
245
+ type.c_str(),
246
+ quality);
247
+ }else {
248
+ data = canvas_native_webgpu_to_data_url(
249
+ ptr->GetContext(), device->GetGPUDevice(), type.c_str(),
250
+ quality);
251
+
252
+ }
253
+
254
+ if(data == nullptr){
255
+ args.GetReturnValue().Set(ConvertToV8String(isolate, "data:,"));
256
+ return;
257
+ }
258
+
259
+ auto value = new OneByteStringResource((char *) data);
260
+ auto ret = v8::String::NewExternalOneByte(isolate, value);
261
+ args.GetReturnValue().Set(ret.ToLocalChecked());
262
+ } else {
263
+ args.GetReturnValue().Set(ConvertToV8String(isolate, "data:,"));
264
+ }
265
+
266
+
267
+ }
268
+
214
269
  void GPUCanvasContextImpl::GetCurrentTexture(const v8::FunctionCallbackInfo<v8::Value> &args) {
215
270
  GPUCanvasContextImpl *ptr = GetPointer(args.This());
216
271
  auto isolate = args.GetIsolate();
@@ -225,11 +280,11 @@ void GPUCanvasContextImpl::GetCurrentTexture(const v8::FunctionCallbackInfo<v8::
225
280
 
226
281
  if (texture != nullptr) {
227
282
  auto status = canvas_native_webgpu_texture_get_status(texture);
228
- if(status == SurfaceGetCurrentTextureStatusSuccess){
283
+ if (status == SurfaceGetCurrentTextureStatusSuccess) {
229
284
  auto textureImpl = new GPUTextureImpl(texture);
230
285
  auto ret = GPUTextureImpl::NewInstance(isolate, textureImpl);
231
286
  args.GetReturnValue().Set(ret);
232
- }else {
287
+ } else {
233
288
  canvas_native_webgpu_texture_release(texture);
234
289
  args.GetReturnValue().SetNull();
235
290
  }
@@ -316,7 +371,8 @@ void GPUCanvasContextImpl::GetCapabilities(const v8::FunctionCallbackInfo<v8::Va
316
371
  }
317
372
 
318
373
  ret->Set(context, ConvertToV8String(isolate, "format"), v8::Array::New(isolate)).FromJust();
319
- ret->Set(context, ConvertToV8String(isolate, "presentModes"), v8::Array::New(isolate)).FromJust();
374
+ ret->Set(context, ConvertToV8String(isolate, "presentModes"),
375
+ v8::Array::New(isolate)).FromJust();
320
376
  ret->Set(context, ConvertToV8String(isolate, "alphaModes"), v8::Array::New(isolate)).FromJust();
321
377
  ret->Set(context, ConvertToV8String(isolate, "usages"), v8::Uint32::New(isolate, 0)).FromJust();
322
378
  args.GetReturnValue().Set(ret);
@@ -22,6 +22,8 @@ public:
22
22
 
23
23
  static void Init(v8::Local<v8::Object> canvasModule, v8::Isolate *isolate);
24
24
 
25
+ static void __ToDataURL(const v8::FunctionCallbackInfo<v8::Value> &args);
26
+
25
27
  static GPUCanvasContextImpl *GetPointer(const v8::Local<v8::Object> &object);
26
28
 
27
29
  static v8::Local<v8::FunctionTemplate> GetCtor(v8::Isolate *isolate);