@nativescript/canvas 2.0.0-webgpu.3 → 2.0.0-webgpu.31

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 (198) hide show
  1. package/Canvas/common.d.ts +4 -9
  2. package/Canvas/common.js +37 -126
  3. package/Canvas/common.js.map +1 -1
  4. package/Canvas/index.android.d.ts +0 -1
  5. package/Canvas/index.android.js +45 -38
  6. package/Canvas/index.android.js.map +1 -1
  7. package/Canvas/index.d.ts +11 -3
  8. package/Canvas/index.ios.js +49 -40
  9. package/Canvas/index.ios.js.map +1 -1
  10. package/Canvas/utils.d.ts +3 -0
  11. package/Canvas/utils.js +85 -0
  12. package/Canvas/utils.js.map +1 -0
  13. package/Canvas2D/CanvasRenderingContext2D/index.d.ts +1 -0
  14. package/Canvas2D/CanvasRenderingContext2D/index.js +1 -0
  15. package/Canvas2D/CanvasRenderingContext2D/index.js.map +1 -1
  16. package/Dom/Group.d.ts +1 -2
  17. package/Dom/Group.js.map +1 -1
  18. package/Dom/Image.js +0 -1
  19. package/Dom/Image.js.map +1 -1
  20. package/Dom/Paint.d.ts +1 -1
  21. package/Dom/shapes/Path.d.ts +1 -1
  22. package/ImageAsset/index.js +77 -33
  23. package/ImageAsset/index.js.map +1 -1
  24. package/ImageBitmap/index.js +107 -20
  25. package/ImageBitmap/index.js.map +1 -1
  26. package/README.md +2 -4
  27. package/WebGL/WebGLRenderingContext/index.js +74 -31
  28. package/WebGL/WebGLRenderingContext/index.js.map +1 -1
  29. package/WebGL2/WebGL2RenderingContext/index.js +4 -4
  30. package/WebGL2/WebGL2RenderingContext/index.js.map +1 -1
  31. package/WebGPU/GPU.js +4 -3
  32. package/WebGPU/GPU.js.map +1 -1
  33. package/WebGPU/GPUAdapter.d.ts +6 -3
  34. package/WebGPU/GPUAdapter.js +31 -0
  35. package/WebGPU/GPUAdapter.js.map +1 -1
  36. package/WebGPU/GPUBindGroup.d.ts +1 -0
  37. package/WebGPU/GPUBindGroup.js +3 -0
  38. package/WebGPU/GPUBindGroup.js.map +1 -1
  39. package/WebGPU/GPUBindGroupLayout.d.ts +1 -0
  40. package/WebGPU/GPUBindGroupLayout.js +3 -0
  41. package/WebGPU/GPUBindGroupLayout.js.map +1 -1
  42. package/WebGPU/GPUBuffer.js +10 -2
  43. package/WebGPU/GPUBuffer.js.map +1 -1
  44. package/WebGPU/GPUCanvasContext.d.ts +3 -2
  45. package/WebGPU/GPUCanvasContext.js +52 -10
  46. package/WebGPU/GPUCanvasContext.js.map +1 -1
  47. package/WebGPU/GPUCommandBuffer.d.ts +1 -0
  48. package/WebGPU/GPUCommandBuffer.js +3 -0
  49. package/WebGPU/GPUCommandBuffer.js.map +1 -1
  50. package/WebGPU/GPUCommandEncoder.d.ts +3 -9
  51. package/WebGPU/GPUCommandEncoder.js +94 -41
  52. package/WebGPU/GPUCommandEncoder.js.map +1 -1
  53. package/WebGPU/GPUComputePassEncoder.d.ts +1 -0
  54. package/WebGPU/GPUComputePassEncoder.js +3 -0
  55. package/WebGPU/GPUComputePassEncoder.js.map +1 -1
  56. package/WebGPU/GPUComputePipeline.d.ts +1 -0
  57. package/WebGPU/GPUComputePipeline.js +3 -0
  58. package/WebGPU/GPUComputePipeline.js.map +1 -1
  59. package/WebGPU/GPUDevice.d.ts +17 -79
  60. package/WebGPU/GPUDevice.js +76 -91
  61. package/WebGPU/GPUDevice.js.map +1 -1
  62. package/WebGPU/GPUExternalTexture.d.ts +1 -0
  63. package/WebGPU/GPUExternalTexture.js +3 -0
  64. package/WebGPU/GPUExternalTexture.js.map +1 -1
  65. package/WebGPU/GPUPipelineLayout.d.ts +1 -0
  66. package/WebGPU/GPUPipelineLayout.js +3 -0
  67. package/WebGPU/GPUPipelineLayout.js.map +1 -1
  68. package/WebGPU/GPUQuerySet.d.ts +1 -0
  69. package/WebGPU/GPUQuerySet.js +3 -0
  70. package/WebGPU/GPUQuerySet.js.map +1 -1
  71. package/WebGPU/GPUQueue.d.ts +1 -0
  72. package/WebGPU/GPUQueue.js +56 -14
  73. package/WebGPU/GPUQueue.js.map +1 -1
  74. package/WebGPU/GPURenderBundle.d.ts +1 -0
  75. package/WebGPU/GPURenderBundle.js +3 -0
  76. package/WebGPU/GPURenderBundle.js.map +1 -1
  77. package/WebGPU/GPURenderBundleEncoder.d.ts +4 -2
  78. package/WebGPU/GPURenderBundleEncoder.js +7 -3
  79. package/WebGPU/GPURenderBundleEncoder.js.map +1 -1
  80. package/WebGPU/GPURenderPassEncoder.d.ts +2 -1
  81. package/WebGPU/GPURenderPassEncoder.js +5 -2
  82. package/WebGPU/GPURenderPassEncoder.js.map +1 -1
  83. package/WebGPU/GPURenderPipeline.d.ts +1 -0
  84. package/WebGPU/GPURenderPipeline.js +3 -0
  85. package/WebGPU/GPURenderPipeline.js.map +1 -1
  86. package/WebGPU/GPUSampler.d.ts +1 -0
  87. package/WebGPU/GPUSampler.js +3 -0
  88. package/WebGPU/GPUSampler.js.map +1 -1
  89. package/WebGPU/GPUShaderModule.d.ts +1 -1
  90. package/WebGPU/GPUShaderModule.js +2 -2
  91. package/WebGPU/GPUShaderModule.js.map +1 -1
  92. package/WebGPU/GPUTexture.d.ts +1 -0
  93. package/WebGPU/GPUTexture.js +3 -0
  94. package/WebGPU/GPUTexture.js.map +1 -1
  95. package/WebGPU/GPUTextureView.d.ts +1 -0
  96. package/WebGPU/GPUTextureView.js +3 -0
  97. package/WebGPU/GPUTextureView.js.map +1 -1
  98. package/WebGPU/Interfaces.d.ts +95 -4
  99. package/WebGPU/Types.d.ts +9 -1
  100. package/WebGPU/Utils.d.ts +6 -0
  101. package/WebGPU/Utils.js +224 -0
  102. package/WebGPU/Utils.js.map +1 -1
  103. package/angular/esm2022/index.mjs +4 -4
  104. package/angular/fesm2022/nativescript-canvas-angular.mjs +4 -4
  105. package/package.json +1 -1
  106. package/platforms/android/canvas-release.aar +0 -0
  107. package/platforms/ios/CanvasNative.xcframework/Info.plist +5 -5
  108. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  109. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative-Swift.h +40 -12
  110. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_ios.h +7 -0
  111. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +227 -62
  112. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Info.plist +0 -0
  113. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  114. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +7341 -6577
  115. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.private.swiftinterface +62 -4
  116. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  117. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftinterface +62 -4
  118. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/NSCCanvas.nib +0 -0
  119. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  120. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +650 -644
  121. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  122. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative-Swift.h +80 -24
  123. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_ios.h +7 -0
  124. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +227 -62
  125. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Info.plist +0 -0
  126. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  127. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  128. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +7341 -6577
  129. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +62 -4
  130. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  131. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftinterface +62 -4
  132. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +7341 -6577
  133. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +62 -4
  134. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  135. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +62 -4
  136. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/NSCCanvas.nib +0 -0
  137. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +27 -27
  138. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  139. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasNative.yml +652 -646
  140. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasNative.yml +704 -684
  141. package/platforms/ios/src/NSOperationQueueWrapper.h +1 -1
  142. package/platforms/ios/src/NSOperationQueueWrapper.mm +41 -9
  143. package/platforms/ios/src/cpp/AsyncCallback.h +16 -8
  144. package/platforms/ios/src/cpp/CanvasJSIModule.cpp +208 -789
  145. package/platforms/ios/src/cpp/ImageAssetImpl.cpp +18 -28
  146. package/platforms/ios/src/cpp/ImageAssetImpl.h +3 -3
  147. package/platforms/ios/src/cpp/ImageBitmapImpl.cpp +60 -3
  148. package/platforms/ios/src/cpp/ImageBitmapImpl.h +10 -3
  149. package/platforms/ios/src/cpp/PromiseCallback.h +1 -2
  150. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.cpp +1 -1
  151. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.h +3 -3
  152. package/platforms/ios/src/cpp/canvas2d/Path2D.h +5 -5
  153. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.cpp +106 -1
  154. package/platforms/ios/src/cpp/webgpu/GPUAdapterImpl.cpp +26 -23
  155. package/platforms/ios/src/cpp/webgpu/GPUBindGroupImpl.cpp +31 -5
  156. package/platforms/ios/src/cpp/webgpu/GPUBindGroupImpl.h +4 -1
  157. package/platforms/ios/src/cpp/webgpu/GPUBindGroupLayoutImpl.cpp +26 -0
  158. package/platforms/ios/src/cpp/webgpu/GPUBindGroupLayoutImpl.h +3 -0
  159. package/platforms/ios/src/cpp/webgpu/GPUBufferImpl.cpp +41 -7
  160. package/platforms/ios/src/cpp/webgpu/GPUBufferImpl.h +4 -0
  161. package/platforms/ios/src/cpp/webgpu/GPUCanvasContextImpl.cpp +11 -5
  162. package/platforms/ios/src/cpp/webgpu/GPUCommandBufferImpl.cpp +28 -1
  163. package/platforms/ios/src/cpp/webgpu/GPUCommandBufferImpl.h +3 -0
  164. package/platforms/ios/src/cpp/webgpu/GPUCommandEncoderImpl.cpp +75 -79
  165. package/platforms/ios/src/cpp/webgpu/GPUCommandEncoderImpl.h +4 -0
  166. package/platforms/ios/src/cpp/webgpu/GPUComputePassEncoderImpl.cpp +42 -14
  167. package/platforms/ios/src/cpp/webgpu/GPUComputePassEncoderImpl.h +3 -0
  168. package/platforms/ios/src/cpp/webgpu/GPUComputePipelineImpl.cpp +25 -0
  169. package/platforms/ios/src/cpp/webgpu/GPUComputePipelineImpl.h +2 -0
  170. package/platforms/ios/src/cpp/webgpu/GPUDeviceImpl.cpp +1597 -674
  171. package/platforms/ios/src/cpp/webgpu/GPUDeviceImpl.h +2 -0
  172. package/platforms/ios/src/cpp/webgpu/GPUImpl.cpp +2 -1
  173. package/platforms/ios/src/cpp/webgpu/GPUImpl.h +1 -1
  174. package/platforms/ios/src/cpp/webgpu/GPULabel.h +33 -0
  175. package/platforms/ios/src/cpp/webgpu/GPUPipelineLayoutImpl.cpp +26 -0
  176. package/platforms/ios/src/cpp/webgpu/GPUPipelineLayoutImpl.h +3 -1
  177. package/platforms/ios/src/cpp/webgpu/GPUQuerySetImpl.cpp +1 -2
  178. package/platforms/ios/src/cpp/webgpu/GPUQuerySetImpl.h +1 -1
  179. package/platforms/ios/src/cpp/webgpu/GPUQueueImpl.cpp +50 -13
  180. package/platforms/ios/src/cpp/webgpu/GPUQueueImpl.h +3 -0
  181. package/platforms/ios/src/cpp/webgpu/GPURenderBundleEncoderImpl.cpp +43 -14
  182. package/platforms/ios/src/cpp/webgpu/GPURenderBundleEncoderImpl.h +3 -0
  183. package/platforms/ios/src/cpp/webgpu/GPURenderBundleImpl.cpp +25 -0
  184. package/platforms/ios/src/cpp/webgpu/GPURenderBundleImpl.h +3 -0
  185. package/platforms/ios/src/cpp/webgpu/GPURenderPassEncoderImpl.cpp +39 -13
  186. package/platforms/ios/src/cpp/webgpu/GPURenderPassEncoderImpl.h +3 -0
  187. package/platforms/ios/src/cpp/webgpu/GPURenderPipelineImpl.cpp +25 -0
  188. package/platforms/ios/src/cpp/webgpu/GPURenderPipelineImpl.h +3 -0
  189. package/platforms/ios/src/cpp/webgpu/GPUSamplerImpl.cpp +26 -0
  190. package/platforms/ios/src/cpp/webgpu/GPUSamplerImpl.h +4 -1
  191. package/platforms/ios/src/cpp/webgpu/GPUShaderModuleImpl.cpp +24 -0
  192. package/platforms/ios/src/cpp/webgpu/GPUShaderModuleImpl.h +3 -0
  193. package/platforms/ios/src/cpp/webgpu/GPUTextureImpl.cpp +34 -8
  194. package/platforms/ios/src/cpp/webgpu/GPUTextureImpl.h +2 -0
  195. package/platforms/ios/src/cpp/webgpu/GPUTextureViewImpl.cpp +26 -0
  196. package/platforms/ios/src/cpp/webgpu/GPUTextureViewImpl.h +3 -0
  197. package/platforms/ios/src/cpp/webgpu/GPUUtils.h +511 -0
  198. package/utils.d.ts +1 -1
@@ -17,7 +17,7 @@ const CanvasGPUComputePassEncoder *GPUComputePassEncoderImpl::GetComputePass() {
17
17
  }
18
18
 
19
19
 
20
- void GPUComputePassEncoderImpl::Init(v8::Local<v8::Object> canvasModule, v8::Isolate *isolate) {
20
+ void GPUComputePassEncoderImpl::Init(v8::Local <v8::Object> canvasModule, v8::Isolate *isolate) {
21
21
  v8::Locker locker(isolate);
22
22
  v8::Isolate::Scope isolate_scope(isolate);
23
23
  v8::HandleScope handle_scope(isolate);
@@ -26,11 +26,12 @@ void GPUComputePassEncoderImpl::Init(v8::Local<v8::Object> canvasModule, v8::Iso
26
26
  auto context = isolate->GetCurrentContext();
27
27
  auto func = ctor->GetFunction(context).ToLocalChecked();
28
28
 
29
- canvasModule->Set(context, ConvertToV8String(isolate, "GPUComputePassEncoder"), func).FromJust();
29
+ canvasModule->Set(context, ConvertToV8String(isolate, "GPUComputePassEncoder"),
30
+ func).FromJust();
30
31
  }
31
32
 
32
33
  GPUComputePassEncoderImpl *
33
- GPUComputePassEncoderImpl::GetPointer(const v8::Local<v8::Object> &object) {
34
+ GPUComputePassEncoderImpl::GetPointer(const v8::Local <v8::Object> &object) {
34
35
  auto ptr = object->GetAlignedPointerFromInternalField(0);
35
36
  if (ptr == nullptr) {
36
37
  return nullptr;
@@ -38,20 +39,25 @@ GPUComputePassEncoderImpl::GetPointer(const v8::Local<v8::Object> &object) {
38
39
  return static_cast<GPUComputePassEncoderImpl *>(ptr);
39
40
  }
40
41
 
41
- v8::Local<v8::FunctionTemplate> GPUComputePassEncoderImpl::GetCtor(v8::Isolate *isolate) {
42
+ v8::Local <v8::FunctionTemplate> GPUComputePassEncoderImpl::GetCtor(v8::Isolate *isolate) {
42
43
  auto cache = Caches::Get(isolate);
43
44
  auto ctor = cache->GPUComputePassEncoderTmpl.get();
44
45
  if (ctor != nullptr) {
45
46
  return ctor->Get(isolate);
46
47
  }
47
48
 
48
- v8::Local<v8::FunctionTemplate> ctorTmpl = v8::FunctionTemplate::New(isolate);
49
+ v8::Local <v8::FunctionTemplate> ctorTmpl = v8::FunctionTemplate::New(isolate);
49
50
  ctorTmpl->InstanceTemplate()->SetInternalFieldCount(2);
50
51
  ctorTmpl->SetClassName(ConvertToV8String(isolate, "GPUComputePassEncoder"));
51
52
 
52
53
  auto tmpl = ctorTmpl->InstanceTemplate();
53
54
  tmpl->SetInternalFieldCount(2);
54
55
 
56
+ tmpl->SetLazyDataProperty(
57
+ ConvertToV8String(isolate, "label"),
58
+ GetLabel
59
+ );
60
+
55
61
  tmpl->Set(
56
62
  ConvertToV8String(isolate, "dispatchWorkgroups"),
57
63
  v8::FunctionTemplate::New(isolate, &DispatchWorkgroups));
@@ -86,12 +92,34 @@ v8::Local<v8::FunctionTemplate> GPUComputePassEncoderImpl::GetCtor(v8::Isolate *
86
92
 
87
93
 
88
94
  cache->GPUComputePassEncoderTmpl =
89
- std::make_unique<v8::Persistent<v8::FunctionTemplate>>(isolate, ctorTmpl);
95
+ std::make_unique<v8::Persistent < v8::FunctionTemplate>>
96
+ (isolate, ctorTmpl);
90
97
  return ctorTmpl;
91
98
  }
92
99
 
93
100
  void
94
- GPUComputePassEncoderImpl::DispatchWorkgroups(const v8::FunctionCallbackInfo<v8::Value> &args) {
101
+ GPUComputePassEncoderImpl::GetLabel(v8::Local <v8::Name> name,
102
+ const v8::PropertyCallbackInfo <v8::Value> &info) {
103
+ auto ptr = GetPointer(info.This());
104
+ if (ptr != nullptr) {
105
+ auto label = canvas_native_webgpu_compute_pass_encoder_get_label(ptr->computePass_);
106
+ if (label == nullptr) {
107
+ info.GetReturnValue().SetEmptyString();
108
+ return;
109
+ }
110
+ info.GetReturnValue().Set(
111
+ ConvertToV8String(info.GetIsolate(), label)
112
+ );
113
+ canvas_native_string_destroy(label);
114
+ return;
115
+ }
116
+
117
+ info.GetReturnValue().SetEmptyString();
118
+ }
119
+
120
+
121
+ void
122
+ GPUComputePassEncoderImpl::DispatchWorkgroups(const v8::FunctionCallbackInfo <v8::Value> &args) {
95
123
  auto *ptr = GetPointer(args.This());
96
124
  if (ptr == nullptr) {
97
125
  return;
@@ -126,7 +154,7 @@ GPUComputePassEncoderImpl::DispatchWorkgroups(const v8::FunctionCallbackInfo<v8:
126
154
  }
127
155
 
128
156
  void GPUComputePassEncoderImpl::DispatchWorkgroupsIndirect(
129
- const v8::FunctionCallbackInfo<v8::Value> &args) {
157
+ const v8::FunctionCallbackInfo <v8::Value> &args) {
130
158
  auto *ptr = GetPointer(args.This());
131
159
  if (ptr == nullptr) {
132
160
  return;
@@ -150,7 +178,7 @@ void GPUComputePassEncoderImpl::DispatchWorkgroupsIndirect(
150
178
  }
151
179
 
152
180
 
153
- void GPUComputePassEncoderImpl::End(const v8::FunctionCallbackInfo<v8::Value> &args) {
181
+ void GPUComputePassEncoderImpl::End(const v8::FunctionCallbackInfo <v8::Value> &args) {
154
182
  auto *ptr = GetPointer(args.This());
155
183
  if (ptr == nullptr) {
156
184
  return;
@@ -160,7 +188,7 @@ void GPUComputePassEncoderImpl::End(const v8::FunctionCallbackInfo<v8::Value> &a
160
188
  }
161
189
 
162
190
  void
163
- GPUComputePassEncoderImpl::InsertDebugMarker(const v8::FunctionCallbackInfo<v8::Value> &args) {
191
+ GPUComputePassEncoderImpl::InsertDebugMarker(const v8::FunctionCallbackInfo <v8::Value> &args) {
164
192
  auto *ptr = GetPointer(args.This());
165
193
  if (ptr == nullptr) {
166
194
  return;
@@ -176,7 +204,7 @@ GPUComputePassEncoderImpl::InsertDebugMarker(const v8::FunctionCallbackInfo<v8::
176
204
  }
177
205
  }
178
206
 
179
- void GPUComputePassEncoderImpl::PopDebugGroup(const v8::FunctionCallbackInfo<v8::Value> &args) {
207
+ void GPUComputePassEncoderImpl::PopDebugGroup(const v8::FunctionCallbackInfo <v8::Value> &args) {
180
208
  auto *ptr = GetPointer(args.This());
181
209
  if (ptr == nullptr) {
182
210
  return;
@@ -185,7 +213,7 @@ void GPUComputePassEncoderImpl::PopDebugGroup(const v8::FunctionCallbackInfo<v8:
185
213
  canvas_native_webgpu_compute_pass_encoder_pop_debug_group(ptr->GetComputePass());
186
214
  }
187
215
 
188
- void GPUComputePassEncoderImpl::PushDebugGroup(const v8::FunctionCallbackInfo<v8::Value> &args) {
216
+ void GPUComputePassEncoderImpl::PushDebugGroup(const v8::FunctionCallbackInfo <v8::Value> &args) {
189
217
  auto *ptr = GetPointer(args.This());
190
218
  if (ptr == nullptr) {
191
219
  return;
@@ -201,7 +229,7 @@ void GPUComputePassEncoderImpl::PushDebugGroup(const v8::FunctionCallbackInfo<v8
201
229
  }
202
230
  }
203
231
 
204
- void GPUComputePassEncoderImpl::SetBindGroup(const v8::FunctionCallbackInfo<v8::Value> &args) {
232
+ void GPUComputePassEncoderImpl::SetBindGroup(const v8::FunctionCallbackInfo <v8::Value> &args) {
205
233
  auto *ptr = GetPointer(args.This());
206
234
  if (ptr == nullptr) {
207
235
  return;
@@ -243,7 +271,7 @@ void GPUComputePassEncoderImpl::SetBindGroup(const v8::FunctionCallbackInfo<v8::
243
271
  }
244
272
  }
245
273
 
246
- void GPUComputePassEncoderImpl::SetPipeline(const v8::FunctionCallbackInfo<v8::Value> &args) {
274
+ void GPUComputePassEncoderImpl::SetPipeline(const v8::FunctionCallbackInfo <v8::Value> &args) {
247
275
  auto *ptr = GetPointer(args.This());
248
276
  if (ptr == nullptr) {
249
277
  return;
@@ -36,6 +36,9 @@ public:
36
36
  return scope.Escape(object);
37
37
  }
38
38
 
39
+ static void GetLabel(v8::Local<v8::Name> name,
40
+ const v8::PropertyCallbackInfo<v8::Value> &info);
41
+
39
42
  static void DispatchWorkgroups(const v8::FunctionCallbackInfo<v8::Value> &args);
40
43
 
41
44
  static void DispatchWorkgroupsIndirect(const v8::FunctionCallbackInfo<v8::Value> &args);
@@ -49,6 +49,10 @@ v8::Local<v8::FunctionTemplate> GPUComputePipelineImpl::GetCtor(v8::Isolate *iso
49
49
  auto tmpl = ctorTmpl->InstanceTemplate();
50
50
  tmpl->SetInternalFieldCount(2);
51
51
 
52
+ tmpl->SetLazyDataProperty(
53
+ ConvertToV8String(isolate, "label"),
54
+ GetLabel
55
+ );
52
56
 
53
57
  tmpl->Set(
54
58
  ConvertToV8String(isolate, "getBindGroupLayout"),
@@ -59,6 +63,27 @@ v8::Local<v8::FunctionTemplate> GPUComputePipelineImpl::GetCtor(v8::Isolate *iso
59
63
  return ctorTmpl;
60
64
  }
61
65
 
66
+ void
67
+ GPUComputePipelineImpl::GetLabel(v8::Local<v8::Name> name,
68
+ const v8::PropertyCallbackInfo<v8::Value> &info) {
69
+ auto ptr = GetPointer(info.This());
70
+ if (ptr != nullptr) {
71
+ auto label = canvas_native_webgpu_compute_pipeline_get_label(ptr->pipeline_);
72
+ if (label == nullptr) {
73
+ info.GetReturnValue().SetEmptyString();
74
+ return;
75
+ }
76
+ info.GetReturnValue().Set(
77
+ ConvertToV8String(info.GetIsolate(), label)
78
+ );
79
+ canvas_native_string_destroy(label);
80
+ return;
81
+ }
82
+
83
+ info.GetReturnValue().SetEmptyString();
84
+ }
85
+
86
+
62
87
  void GPUComputePipelineImpl::GetBindGroupLayout(const v8::FunctionCallbackInfo<v8::Value> &args) {
63
88
  auto *ptr = GetPointer(args.This());
64
89
  if (ptr == nullptr) {
@@ -37,6 +37,8 @@ public:
37
37
  return scope.Escape(object);
38
38
  }
39
39
 
40
+ static void GetLabel(v8::Local<v8::Name> name,
41
+ const v8::PropertyCallbackInfo<v8::Value> &info);
40
42
 
41
43
  static void GetBindGroupLayout(const v8::FunctionCallbackInfo<v8::Value> &args);
42
44