@shopify/react-native-skia 2.10.0 → 2.10.2

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 (332) hide show
  1. package/android/CMakeLists.txt +7 -41
  2. package/android/build.gradle +33 -0
  3. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +1 -2
  4. package/cpp/api/JsiNativeBuffer.h +14 -20
  5. package/cpp/api/JsiSkAnimatedImage.h +13 -16
  6. package/cpp/api/JsiSkAnimatedImageFactory.h +9 -7
  7. package/cpp/api/JsiSkApi.h +94 -90
  8. package/cpp/api/JsiSkCanvas.h +108 -251
  9. package/cpp/api/JsiSkColorFilterFactory.h +45 -63
  10. package/cpp/api/JsiSkContourMeasure.h +19 -29
  11. package/cpp/api/JsiSkContourMeasureIter.h +6 -6
  12. package/cpp/api/JsiSkConverters.h +410 -0
  13. package/cpp/api/JsiSkDataFactory.h +9 -15
  14. package/cpp/api/JsiSkFont.h +99 -180
  15. package/cpp/api/JsiSkFontMgr.h +19 -21
  16. package/cpp/api/JsiSkFontMgrFactory.h +4 -5
  17. package/cpp/api/JsiSkImage.h +66 -66
  18. package/cpp/api/JsiSkImageFactory.h +66 -63
  19. package/cpp/api/JsiSkImageFilterFactory.h +354 -608
  20. package/cpp/api/JsiSkImageInfo.h +10 -13
  21. package/cpp/api/JsiSkMaskFilterFactory.h +8 -11
  22. package/cpp/api/JsiSkMatrix.h +36 -73
  23. package/cpp/api/JsiSkNativeObjects.h +64 -96
  24. package/cpp/api/JsiSkPaint.h +73 -131
  25. package/cpp/api/JsiSkParagraph.h +36 -53
  26. package/cpp/api/JsiSkParagraphBuilder.h +36 -64
  27. package/cpp/api/JsiSkParagraphBuilderFactory.h +11 -16
  28. package/cpp/api/JsiSkPath.h +216 -349
  29. package/cpp/api/JsiSkPathBuilder.h +133 -269
  30. package/cpp/api/JsiSkPathBuilderFactory.h +11 -11
  31. package/cpp/api/JsiSkPathEffectFactory.h +52 -72
  32. package/cpp/api/JsiSkPathFactory.h +129 -195
  33. package/cpp/api/JsiSkPicture.h +12 -18
  34. package/cpp/api/JsiSkPictureRecorder.h +14 -15
  35. package/cpp/api/JsiSkPoint.h +4 -4
  36. package/cpp/api/JsiSkRRect.h +7 -8
  37. package/cpp/api/JsiSkRSXform.h +10 -23
  38. package/cpp/api/JsiSkRect.h +23 -31
  39. package/cpp/api/JsiSkRuntimeEffect.h +67 -83
  40. package/cpp/api/JsiSkRuntimeEffectFactory.h +6 -10
  41. package/cpp/api/JsiSkRuntimeShaderBuilder.h +5 -14
  42. package/cpp/api/JsiSkSVG.h +4 -4
  43. package/cpp/api/JsiSkShaderFactory.h +153 -225
  44. package/cpp/api/JsiSkSkottie.h +104 -126
  45. package/cpp/api/JsiSkSurface.h +11 -14
  46. package/cpp/api/JsiSkSurfaceFactory.h +6 -7
  47. package/cpp/api/JsiSkTextBlobFactory.h +31 -54
  48. package/cpp/api/JsiSkTypeface.h +8 -12
  49. package/cpp/api/JsiSkTypefaceFactory.h +9 -7
  50. package/cpp/api/JsiSkTypefaceFontProvider.h +22 -23
  51. package/cpp/api/JsiSkTypefaceFontProviderFactory.h +5 -6
  52. package/cpp/api/JsiSkVertices.h +6 -8
  53. package/cpp/api/JsiSkiaContext.h +10 -11
  54. package/cpp/api/JsiVideo.h +31 -71
  55. package/cpp/jsi/EnumMapper.h +2 -2
  56. package/cpp/jsi/JSIConverter.h +2 -33
  57. package/cpp/jsi/NativeObject.h +24 -19
  58. package/cpp/jsi/Promise.cpp +2 -2
  59. package/cpp/jsi/Promise.h +2 -2
  60. package/cpp/rnskia/RNDawnContext.h +18 -2
  61. package/cpp/rnskia/RNDawnInterop.cpp +19 -0
  62. package/cpp/rnskia/RNDawnUtils.h +18 -1
  63. package/cpp/rnskia/RNSkManager.cpp +5 -162
  64. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +2 -0
  65. package/lib/commonjs/mock/index.js +0 -1
  66. package/lib/commonjs/mock/index.js.map +1 -1
  67. package/lib/commonjs/skia/types/Image/ImageFactory.d.ts +15 -6
  68. package/lib/commonjs/skia/types/Image/ImageFactory.js.map +1 -1
  69. package/lib/commonjs/skia/types/Skia.d.ts +5 -15
  70. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  71. package/lib/commonjs/skia/types/index.d.ts +0 -1
  72. package/lib/commonjs/skia/types/index.js +0 -11
  73. package/lib/commonjs/skia/types/index.js.map +1 -1
  74. package/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  75. package/lib/commonjs/skia/web/JsiSkImageFactory.js +2 -2
  76. package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
  77. package/lib/commonjs/skia/web/JsiSkia.js +1 -4
  78. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  79. package/lib/commonjs/views/index.d.ts +0 -1
  80. package/lib/commonjs/views/index.js +0 -11
  81. package/lib/commonjs/views/index.js.map +1 -1
  82. package/lib/module/mock/index.js +0 -1
  83. package/lib/module/mock/index.js.map +1 -1
  84. package/lib/module/skia/types/Image/ImageFactory.d.ts +15 -6
  85. package/lib/module/skia/types/Image/ImageFactory.js.map +1 -1
  86. package/lib/module/skia/types/Skia.d.ts +5 -15
  87. package/lib/module/skia/types/Skia.js.map +1 -1
  88. package/lib/module/skia/types/index.d.ts +0 -1
  89. package/lib/module/skia/types/index.js +0 -1
  90. package/lib/module/skia/types/index.js.map +1 -1
  91. package/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  92. package/lib/module/skia/web/JsiSkImageFactory.js +2 -2
  93. package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
  94. package/lib/module/skia/web/JsiSkia.js +1 -4
  95. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  96. package/lib/module/views/index.d.ts +0 -1
  97. package/lib/module/views/index.js +0 -1
  98. package/lib/module/views/index.js.map +1 -1
  99. package/lib/typescript/lib/commonjs/mock/index.d.ts +0 -1
  100. package/lib/typescript/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  101. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -2
  102. package/lib/typescript/lib/module/mock/index.d.ts +0 -2
  103. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -2
  104. package/lib/typescript/lib/module/skia/types/index.d.ts +0 -1
  105. package/lib/typescript/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  106. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -2
  107. package/lib/typescript/lib/module/views/index.d.ts +0 -1
  108. package/lib/typescript/src/skia/types/Image/ImageFactory.d.ts +15 -6
  109. package/lib/typescript/src/skia/types/Skia.d.ts +5 -15
  110. package/lib/typescript/src/skia/types/index.d.ts +0 -1
  111. package/lib/typescript/src/skia/web/JsiSkImageFactory.d.ts +2 -2
  112. package/lib/typescript/src/views/index.d.ts +0 -1
  113. package/package.json +3 -4
  114. package/react-native-skia.podspec +38 -4
  115. package/src/mock/index.ts +0 -1
  116. package/src/skia/types/Image/ImageFactory.ts +15 -6
  117. package/src/skia/types/Skia.ts +5 -15
  118. package/src/skia/types/index.ts +0 -1
  119. package/src/skia/web/JsiSkImageFactory.ts +3 -3
  120. package/src/skia/web/JsiSkia.ts +2 -5
  121. package/src/views/index.ts +0 -1
  122. package/android/cpp/jni/JniWebGPUView.cpp +0 -112
  123. package/android/cpp/rnskia-android/SkiaPlatformContext.h +0 -26
  124. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUSurfaceView.java +0 -43
  125. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUTextureView.java +0 -50
  126. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUView.java +0 -98
  127. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewAPI.java +0 -19
  128. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewManager.java +0 -58
  129. package/apple/RNWebGPUAppleNativeBuffer.mm +0 -33
  130. package/apple/SkiaPlatformContext.h +0 -20
  131. package/apple/SkiaPlatformContext.mm +0 -21
  132. package/apple/SkiaWebGPUView.mm +0 -81
  133. package/apple/WebGPUMetalView.mm +0 -136
  134. package/cpp/rnwgpu/ArrayBuffer.h +0 -116
  135. package/cpp/rnwgpu/Canvas.h +0 -52
  136. package/cpp/rnwgpu/PlatformContext.h +0 -18
  137. package/cpp/rnwgpu/SurfaceRegistry.h +0 -605
  138. package/cpp/rnwgpu/api/AppleNativeBuffer.h +0 -22
  139. package/cpp/rnwgpu/api/Convertors.h +0 -783
  140. package/cpp/rnwgpu/api/External.h +0 -12
  141. package/cpp/rnwgpu/api/GPU.cpp +0 -162
  142. package/cpp/rnwgpu/api/GPU.h +0 -60
  143. package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -239
  144. package/cpp/rnwgpu/api/GPUAdapter.h +0 -60
  145. package/cpp/rnwgpu/api/GPUAdapterInfo.h +0 -57
  146. package/cpp/rnwgpu/api/GPUBindGroup.cpp +0 -3
  147. package/cpp/rnwgpu/api/GPUBindGroup.h +0 -51
  148. package/cpp/rnwgpu/api/GPUBindGroupLayout.h +0 -52
  149. package/cpp/rnwgpu/api/GPUBuffer.cpp +0 -107
  150. package/cpp/rnwgpu/api/GPUBuffer.h +0 -88
  151. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -75
  152. package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -70
  153. package/cpp/rnwgpu/api/GPUCommandBuffer.h +0 -45
  154. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +0 -179
  155. package/cpp/rnwgpu/api/GPUCommandEncoder.h +0 -111
  156. package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -79
  157. package/cpp/rnwgpu/api/GPUCompilationMessage.h +0 -36
  158. package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +0 -60
  159. package/cpp/rnwgpu/api/GPUComputePassEncoder.h +0 -85
  160. package/cpp/rnwgpu/api/GPUComputePipeline.cpp +0 -12
  161. package/cpp/rnwgpu/api/GPUComputePipeline.h +0 -60
  162. package/cpp/rnwgpu/api/GPUDevice.cpp +0 -613
  163. package/cpp/rnwgpu/api/GPUDevice.h +0 -258
  164. package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
  165. package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
  166. package/cpp/rnwgpu/api/GPUError.h +0 -35
  167. package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
  168. package/cpp/rnwgpu/api/GPUExternalTexture.cpp +0 -139
  169. package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -95
  170. package/cpp/rnwgpu/api/GPUFeatures.h +0 -203
  171. package/cpp/rnwgpu/api/GPUInternalError.h +0 -31
  172. package/cpp/rnwgpu/api/GPUOrigin2D.h +0 -55
  173. package/cpp/rnwgpu/api/GPUOrigin3D.h +0 -62
  174. package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +0 -33
  175. package/cpp/rnwgpu/api/GPUPipelineLayout.h +0 -45
  176. package/cpp/rnwgpu/api/GPUQuerySet.cpp +0 -11
  177. package/cpp/rnwgpu/api/GPUQuerySet.h +0 -73
  178. package/cpp/rnwgpu/api/GPUQueue.cpp +0 -179
  179. package/cpp/rnwgpu/api/GPUQueue.h +0 -84
  180. package/cpp/rnwgpu/api/GPURenderBundle.h +0 -44
  181. package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +0 -131
  182. package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +0 -110
  183. package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +0 -165
  184. package/cpp/rnwgpu/api/GPURenderPassEncoder.h +0 -130
  185. package/cpp/rnwgpu/api/GPURenderPipeline.cpp +0 -13
  186. package/cpp/rnwgpu/api/GPURenderPipeline.h +0 -61
  187. package/cpp/rnwgpu/api/GPUSampler.h +0 -44
  188. package/cpp/rnwgpu/api/GPUShaderModule.cpp +0 -56
  189. package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
  190. package/cpp/rnwgpu/api/GPUSharedFence.cpp +0 -80
  191. package/cpp/rnwgpu/api/GPUSharedFence.h +0 -53
  192. package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +0 -135
  193. package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +0 -75
  194. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +0 -129
  195. package/cpp/rnwgpu/api/GPUSupportedLimits.h +0 -131
  196. package/cpp/rnwgpu/api/GPUTexture.cpp +0 -47
  197. package/cpp/rnwgpu/api/GPUTexture.h +0 -162
  198. package/cpp/rnwgpu/api/GPUTextureView.h +0 -44
  199. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +0 -60
  200. package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
  201. package/cpp/rnwgpu/api/ImageBitmap.h +0 -62
  202. package/cpp/rnwgpu/api/NativeBufferUtils.h +0 -87
  203. package/cpp/rnwgpu/api/RNWebGPU.h +0 -82
  204. package/cpp/rnwgpu/api/WebGPUConstants.h +0 -36
  205. package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -64
  206. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -78
  207. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -56
  208. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -97
  209. package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -57
  210. package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -52
  211. package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -56
  212. package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -56
  213. package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -59
  214. package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +0 -39
  215. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +0 -76
  216. package/cpp/rnwgpu/api/descriptors/GPUColor.h +0 -66
  217. package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -58
  218. package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
  219. package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -45
  220. package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -45
  221. package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -56
  222. package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -58
  223. package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -67
  224. package/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h +0 -56
  225. package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -103
  226. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -109
  227. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -38
  228. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -90
  229. package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -73
  230. package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -62
  231. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
  232. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -65
  233. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -81
  234. package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -54
  235. package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
  236. package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -54
  237. package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -57
  238. package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -69
  239. package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -61
  240. package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -55
  241. package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -43
  242. package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -45
  243. package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -80
  244. package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -81
  245. package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -101
  246. package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -92
  247. package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -58
  248. package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -103
  249. package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -51
  250. package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -45
  251. package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -110
  252. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -60
  253. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -62
  254. package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
  255. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h +0 -58
  256. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h +0 -51
  257. package/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h +0 -73
  258. package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -64
  259. package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -59
  260. package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -59
  261. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -91
  262. package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
  263. package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -91
  264. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -64
  265. package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -53
  266. package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -62
  267. package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -73
  268. package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1969
  269. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -213
  270. package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -58
  271. package/cpp/rnwgpu/async/RuntimeContext.cpp +0 -199
  272. package/cpp/rnwgpu/async/RuntimeContext.h +0 -134
  273. package/lib/commonjs/skia/types/WebGPU.d.ts +0 -184
  274. package/lib/commonjs/skia/types/WebGPU.js +0 -105
  275. package/lib/commonjs/skia/types/WebGPU.js.map +0 -1
  276. package/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -8
  277. package/lib/commonjs/specs/WebGPUViewNativeComponent.js +0 -10
  278. package/lib/commonjs/specs/WebGPUViewNativeComponent.js.map +0 -1
  279. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  280. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js +0 -103
  281. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  282. package/lib/commonjs/specs/utils.d.ts +0 -1
  283. package/lib/commonjs/specs/utils.js +0 -11
  284. package/lib/commonjs/specs/utils.js.map +0 -1
  285. package/lib/commonjs/views/WebGPUCanvas.d.ts +0 -33
  286. package/lib/commonjs/views/WebGPUCanvas.js +0 -79
  287. package/lib/commonjs/views/WebGPUCanvas.js.map +0 -1
  288. package/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -23
  289. package/lib/commonjs/views/WebGPUCanvas.web.js +0 -20
  290. package/lib/commonjs/views/WebGPUCanvas.web.js.map +0 -1
  291. package/lib/module/skia/types/WebGPU.d.ts +0 -184
  292. package/lib/module/skia/types/WebGPU.js +0 -99
  293. package/lib/module/skia/types/WebGPU.js.map +0 -1
  294. package/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -8
  295. package/lib/module/specs/WebGPUViewNativeComponent.js +0 -4
  296. package/lib/module/specs/WebGPUViewNativeComponent.js.map +0 -1
  297. package/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  298. package/lib/module/specs/WebGPUViewNativeComponent.web.js +0 -96
  299. package/lib/module/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  300. package/lib/module/specs/utils.d.ts +0 -1
  301. package/lib/module/specs/utils.js +0 -5
  302. package/lib/module/specs/utils.js.map +0 -1
  303. package/lib/module/views/WebGPUCanvas.d.ts +0 -33
  304. package/lib/module/views/WebGPUCanvas.js +0 -70
  305. package/lib/module/views/WebGPUCanvas.js.map +0 -1
  306. package/lib/module/views/WebGPUCanvas.web.d.ts +0 -23
  307. package/lib/module/views/WebGPUCanvas.web.js +0 -12
  308. package/lib/module/views/WebGPUCanvas.web.js.map +0 -1
  309. package/lib/typescript/lib/commonjs/skia/types/WebGPU.d.ts +0 -2
  310. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -4
  311. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -3
  312. package/lib/typescript/lib/commonjs/specs/utils.d.ts +0 -2
  313. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.d.ts +0 -6
  314. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -6
  315. package/lib/typescript/lib/module/skia/types/WebGPU.d.ts +0 -31
  316. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -2
  317. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -2
  318. package/lib/typescript/lib/module/specs/utils.d.ts +0 -1
  319. package/lib/typescript/lib/module/views/WebGPUCanvas.d.ts +0 -7
  320. package/lib/typescript/lib/module/views/WebGPUCanvas.web.d.ts +0 -8
  321. package/lib/typescript/src/skia/types/WebGPU.d.ts +0 -184
  322. package/lib/typescript/src/specs/WebGPUViewNativeComponent.d.ts +0 -8
  323. package/lib/typescript/src/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  324. package/lib/typescript/src/specs/utils.d.ts +0 -1
  325. package/lib/typescript/src/views/WebGPUCanvas.d.ts +0 -33
  326. package/lib/typescript/src/views/WebGPUCanvas.web.d.ts +0 -23
  327. package/src/skia/types/WebGPU.ts +0 -226
  328. package/src/specs/WebGPUViewNativeComponent.ts +0 -11
  329. package/src/specs/WebGPUViewNativeComponent.web.ts +0 -110
  330. package/src/specs/utils.ts +0 -4
  331. package/src/views/WebGPUCanvas.tsx +0 -125
  332. package/src/views/WebGPUCanvas.web.tsx +0 -36
@@ -1,60 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
-
6
- #include "webgpu/webgpu_cpp.h"
7
-
8
- #include "jsi/JSIConverter.h"
9
-
10
- #include "rnwgpu/api/GPUPipelineLayout.h"
11
-
12
- namespace jsi = facebook::jsi;
13
-
14
- namespace rnwgpu {
15
-
16
- struct GPUShaderModuleCompilationHint {
17
- std::string entryPoint; // string
18
- std::optional<
19
- std::variant<std::nullptr_t, std::shared_ptr<GPUPipelineLayout>>>
20
- layout; // | GPUPipelineLayout | GPUAutoLayoutMode
21
- };
22
-
23
- } // namespace rnwgpu
24
-
25
- namespace rnwgpu {
26
-
27
- template <>
28
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUShaderModuleCompilationHint>> {
29
- static std::shared_ptr<rnwgpu::GPUShaderModuleCompilationHint>
30
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
31
- auto result = std::make_unique<rnwgpu::GPUShaderModuleCompilationHint>();
32
- if (!outOfBounds && arg.isObject()) {
33
- auto value = arg.getObject(runtime);
34
- if (value.hasProperty(runtime, "entryPoint")) {
35
- auto prop = value.getProperty(runtime, "entryPoint");
36
- result->entryPoint =
37
- JSIConverter<std::string>::fromJSI(runtime, prop, false);
38
- }
39
- if (value.hasProperty(runtime, "layout")) {
40
- auto prop = value.getProperty(runtime, "layout");
41
- if (prop.isNull() || prop.isString()) {
42
- result->layout = nullptr;
43
- } else {
44
- result->layout =
45
- JSIConverter<std::shared_ptr<GPUPipelineLayout>>::fromJSI(
46
- runtime, prop, false);
47
- }
48
- }
49
- }
50
-
51
- return result;
52
- }
53
- static jsi::Value
54
- toJSI(jsi::Runtime &runtime,
55
- std::shared_ptr<rnwgpu::GPUShaderModuleCompilationHint> arg) {
56
- throw std::runtime_error("Invalid GPUShaderModuleCompilationHint::toJSI()");
57
- }
58
- };
59
-
60
- } // namespace rnwgpu
@@ -1,62 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
- #include <vector>
6
-
7
- #include "webgpu/webgpu_cpp.h"
8
-
9
- #include "jsi/JSIConverter.h"
10
-
11
- #include "GPUShaderModuleCompilationHint.h"
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- namespace rnwgpu {
16
-
17
- struct GPUShaderModuleDescriptor {
18
- std::string code; // string
19
- std::optional<std::vector<std::shared_ptr<GPUShaderModuleCompilationHint>>>
20
- compilationHints; // Array<GPUShaderModuleCompilationHint>
21
- std::optional<std::string> label; // string
22
- };
23
-
24
- } // namespace rnwgpu
25
-
26
- namespace rnwgpu {
27
-
28
- template <>
29
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUShaderModuleDescriptor>> {
30
- static std::shared_ptr<rnwgpu::GPUShaderModuleDescriptor>
31
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
32
- auto result = std::make_unique<rnwgpu::GPUShaderModuleDescriptor>();
33
- if (!outOfBounds && arg.isObject()) {
34
- auto value = arg.getObject(runtime);
35
- if (value.hasProperty(runtime, "code")) {
36
- auto prop = value.getProperty(runtime, "code");
37
- result->code = JSIConverter<std::string>::fromJSI(runtime, prop, false);
38
- }
39
- if (value.hasProperty(runtime, "compilationHints")) {
40
- auto prop = value.getProperty(runtime, "compilationHints");
41
- result->compilationHints = JSIConverter<std::optional<std::vector<
42
- std::shared_ptr<GPUShaderModuleCompilationHint>>>>::fromJSI(runtime,
43
- prop,
44
- false);
45
- }
46
- if (value.hasProperty(runtime, "label")) {
47
- auto prop = value.getProperty(runtime, "label");
48
- result->label = JSIConverter<std::optional<std::string>>::fromJSI(
49
- runtime, prop, false);
50
- }
51
- }
52
-
53
- return result;
54
- }
55
- static jsi::Value
56
- toJSI(jsi::Runtime &runtime,
57
- std::shared_ptr<rnwgpu::GPUShaderModuleDescriptor> arg) {
58
- throw std::runtime_error("Invalid GPUShaderModuleDescriptor::toJSI()");
59
- }
60
- };
61
-
62
- } // namespace rnwgpu
@@ -1,25 +0,0 @@
1
- #pragma once
2
-
3
- #include <jsi/jsi.h>
4
-
5
- #include "webgpu/webgpu_cpp.h"
6
-
7
- namespace rnwgpu {
8
-
9
- namespace jsi = facebook::jsi;
10
-
11
- class GPUShaderStage {
12
- public:
13
- static jsi::Object create(jsi::Runtime &runtime) {
14
- jsi::Object obj(runtime);
15
- obj.setProperty(runtime, "VERTEX",
16
- static_cast<double>(wgpu::ShaderStage::Vertex));
17
- obj.setProperty(runtime, "FRAGMENT",
18
- static_cast<double>(wgpu::ShaderStage::Fragment));
19
- obj.setProperty(runtime, "COMPUTE",
20
- static_cast<double>(wgpu::ShaderStage::Compute));
21
- return obj;
22
- }
23
- };
24
-
25
- } // namespace rnwgpu
@@ -1,58 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <optional>
5
- #include <string>
6
-
7
- #include "webgpu/webgpu_cpp.h"
8
-
9
- #include "jsi/JSIConverter.h"
10
-
11
- namespace jsi = facebook::jsi;
12
-
13
- namespace rnwgpu {
14
-
15
- // Descriptor for GPUDevice.importSharedFence. `handle` is the native handle
16
- // (an id<MTLSharedEvent> pointer on Apple, an OS file descriptor on Android),
17
- // passed from JS as a BigInt.
18
- struct GPUSharedFenceDescriptor {
19
- std::string type;
20
- void *handle = nullptr;
21
- std::optional<std::string> label;
22
- };
23
-
24
- } // namespace rnwgpu
25
-
26
- namespace rnwgpu {
27
-
28
- template <>
29
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUSharedFenceDescriptor>> {
30
- static std::shared_ptr<rnwgpu::GPUSharedFenceDescriptor>
31
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
32
- auto result = std::make_unique<rnwgpu::GPUSharedFenceDescriptor>();
33
- if (!outOfBounds && arg.isObject()) {
34
- auto value = arg.getObject(runtime);
35
- if (value.hasProperty(runtime, "type")) {
36
- result->type =
37
- value.getProperty(runtime, "type").asString(runtime).utf8(runtime);
38
- }
39
- if (value.hasProperty(runtime, "handle")) {
40
- auto prop = value.getProperty(runtime, "handle");
41
- result->handle = JSIConverter<void *>::fromJSI(runtime, prop, false);
42
- }
43
- if (value.hasProperty(runtime, "label")) {
44
- auto prop = value.getProperty(runtime, "label");
45
- result->label = JSIConverter<std::optional<std::string>>::fromJSI(
46
- runtime, prop, false);
47
- }
48
- }
49
- return result;
50
- }
51
- static jsi::Value
52
- toJSI(jsi::Runtime & /*runtime*/,
53
- std::shared_ptr<rnwgpu::GPUSharedFenceDescriptor> /*arg*/) {
54
- throw std::runtime_error("Invalid GPUSharedFenceDescriptor::toJSI()");
55
- }
56
- };
57
-
58
- } // namespace rnwgpu
@@ -1,51 +0,0 @@
1
- #pragma once
2
-
3
- #include <cstdint>
4
- #include <memory>
5
-
6
- #include "webgpu/webgpu_cpp.h"
7
-
8
- #include "jsi/JSIConverter.h"
9
-
10
- #include "rnwgpu/api/GPUSharedFence.h"
11
-
12
- namespace jsi = facebook::jsi;
13
-
14
- namespace rnwgpu {
15
-
16
- // A fence and the timeline value to wait for / signal at.
17
- struct GPUSharedFenceState {
18
- std::shared_ptr<GPUSharedFence> fence;
19
- uint64_t signaledValue = 0;
20
- };
21
-
22
- } // namespace rnwgpu
23
-
24
- namespace rnwgpu {
25
-
26
- template <> struct JSIConverter<std::shared_ptr<rnwgpu::GPUSharedFenceState>> {
27
- static std::shared_ptr<rnwgpu::GPUSharedFenceState>
28
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
29
- auto result = std::make_unique<rnwgpu::GPUSharedFenceState>();
30
- if (!outOfBounds && arg.isObject()) {
31
- auto value = arg.getObject(runtime);
32
- if (value.hasProperty(runtime, "fence")) {
33
- auto prop = value.getProperty(runtime, "fence");
34
- result->fence = JSIConverter<std::shared_ptr<GPUSharedFence>>::fromJSI(
35
- runtime, prop, false);
36
- }
37
- if (value.hasProperty(runtime, "signaledValue")) {
38
- auto prop = value.getProperty(runtime, "signaledValue");
39
- result->signaledValue =
40
- JSIConverter<uint64_t>::fromJSI(runtime, prop, false);
41
- }
42
- }
43
- return result;
44
- }
45
- static jsi::Value toJSI(jsi::Runtime &runtime,
46
- std::shared_ptr<rnwgpu::GPUSharedFenceState> arg) {
47
- throw std::runtime_error("Invalid GPUSharedFenceState::toJSI()");
48
- }
49
- };
50
-
51
- } // namespace rnwgpu
@@ -1,73 +0,0 @@
1
- #pragma once
2
-
3
- #include <cstdint>
4
- #include <memory>
5
- #include <optional>
6
- #include <string>
7
-
8
- #include "webgpu/webgpu_cpp.h"
9
-
10
- #include "jsi/JSIConverter.h"
11
-
12
- namespace jsi = facebook::jsi;
13
-
14
- namespace rnwgpu {
15
-
16
- // Descriptor for GPUDevice.importSharedTextureMemory.
17
- //
18
- // `handle` is a native buffer pointer as a uintptr_t (passed as a BigInt from
19
- // JS), i.e. the value returned by Skia.NativeBuffer.MakeFromImage:
20
- // - Apple platforms: CVPixelBufferRef (its backing IOSurface is imported)
21
- // - Android: AHardwareBuffer*
22
- //
23
- // Lifetime: the caller is responsible for keeping the underlying object alive
24
- // (via Skia.NativeBuffer.Release) for as long as this shared memory is in use.
25
- struct GPUSharedTextureMemoryDescriptor {
26
- uint64_t handle = 0;
27
- std::optional<std::string> label;
28
- };
29
-
30
- } // namespace rnwgpu
31
-
32
- namespace rnwgpu {
33
-
34
- template <>
35
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUSharedTextureMemoryDescriptor>> {
36
- static std::shared_ptr<rnwgpu::GPUSharedTextureMemoryDescriptor>
37
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
38
- auto result = std::make_shared<rnwgpu::GPUSharedTextureMemoryDescriptor>();
39
- if (!outOfBounds && arg.isObject()) {
40
- auto value = arg.getObject(runtime);
41
- if (value.hasProperty(runtime, "handle")) {
42
- auto prop = value.getProperty(runtime, "handle");
43
- // The native buffer pointer arrives as a BigInt (uintptr_t value). It
44
- // must be a BigInt: a JS number can't represent a 64-bit pointer
45
- // without truncation, so we reject it rather than corrupt the address.
46
- if (prop.isBigInt()) {
47
- result->handle = prop.asBigInt(runtime).asUint64(runtime);
48
- } else if (!prop.isUndefined() && !prop.isNull()) {
49
- throw jsi::JSError(
50
- runtime, "GPUSharedTextureMemoryDescriptor.handle must be a "
51
- "NativeBuffer (BigInt) from "
52
- "Skia.NativeBuffer.MakeFromImage / MakeTestBuffer");
53
- }
54
- }
55
- if (value.hasProperty(runtime, "label")) {
56
- auto prop = value.getProperty(runtime, "label");
57
- if (!prop.isUndefined()) {
58
- result->label = JSIConverter<std::optional<std::string>>::fromJSI(
59
- runtime, prop, false);
60
- }
61
- }
62
- }
63
- return result;
64
- }
65
- static jsi::Value
66
- toJSI(jsi::Runtime & /*runtime*/,
67
- std::shared_ptr<rnwgpu::GPUSharedTextureMemoryDescriptor> /*arg*/) {
68
- throw std::runtime_error(
69
- "Invalid GPUSharedTextureMemoryDescriptor::toJSI()");
70
- }
71
- };
72
-
73
- } // namespace rnwgpu
@@ -1,64 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
-
5
- #include "webgpu/webgpu_cpp.h"
6
-
7
- #include "jsi/JSIConverter.h"
8
-
9
- namespace jsi = facebook::jsi;
10
-
11
- namespace rnwgpu {
12
-
13
- struct GPUStencilFaceState {
14
- std::optional<wgpu::CompareFunction> compare; // GPUCompareFunction
15
- std::optional<wgpu::StencilOperation> failOp; // GPUStencilOperation
16
- std::optional<wgpu::StencilOperation> depthFailOp; // GPUStencilOperation
17
- std::optional<wgpu::StencilOperation> passOp; // GPUStencilOperation
18
- };
19
-
20
- } // namespace rnwgpu
21
-
22
- namespace rnwgpu {
23
-
24
- template <> struct JSIConverter<std::shared_ptr<rnwgpu::GPUStencilFaceState>> {
25
- static std::shared_ptr<rnwgpu::GPUStencilFaceState>
26
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
27
- auto result = std::make_unique<rnwgpu::GPUStencilFaceState>();
28
- if (!outOfBounds && arg.isObject()) {
29
- auto value = arg.getObject(runtime);
30
- if (value.hasProperty(runtime, "compare")) {
31
- auto prop = value.getProperty(runtime, "compare");
32
- result->compare =
33
- JSIConverter<std::optional<wgpu::CompareFunction>>::fromJSI(
34
- runtime, prop, false);
35
- }
36
- if (value.hasProperty(runtime, "failOp")) {
37
- auto prop = value.getProperty(runtime, "failOp");
38
- result->failOp =
39
- JSIConverter<std::optional<wgpu::StencilOperation>>::fromJSI(
40
- runtime, prop, false);
41
- }
42
- if (value.hasProperty(runtime, "depthFailOp")) {
43
- auto prop = value.getProperty(runtime, "depthFailOp");
44
- result->depthFailOp =
45
- JSIConverter<std::optional<wgpu::StencilOperation>>::fromJSI(
46
- runtime, prop, false);
47
- }
48
- if (value.hasProperty(runtime, "passOp")) {
49
- auto prop = value.getProperty(runtime, "passOp");
50
- result->passOp =
51
- JSIConverter<std::optional<wgpu::StencilOperation>>::fromJSI(
52
- runtime, prop, false);
53
- }
54
- }
55
-
56
- return result;
57
- }
58
- static jsi::Value toJSI(jsi::Runtime &runtime,
59
- std::shared_ptr<rnwgpu::GPUStencilFaceState> arg) {
60
- throw std::runtime_error("Invalid GPUStencilFaceState::toJSI()");
61
- }
62
- };
63
-
64
- } // namespace rnwgpu
@@ -1,59 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
-
5
- #include "webgpu/webgpu_cpp.h"
6
-
7
- #include "jsi/JSIConverter.h"
8
-
9
- namespace jsi = facebook::jsi;
10
-
11
- namespace rnwgpu {
12
-
13
- struct GPUStorageTextureBindingLayout {
14
- std::optional<wgpu::StorageTextureAccess> access; // GPUStorageTextureAccess
15
- wgpu::TextureFormat format; // GPUTextureFormat
16
- std::optional<wgpu::TextureViewDimension>
17
- viewDimension; // GPUTextureViewDimension
18
- };
19
-
20
- } // namespace rnwgpu
21
-
22
- namespace rnwgpu {
23
-
24
- template <>
25
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUStorageTextureBindingLayout>> {
26
- static std::shared_ptr<rnwgpu::GPUStorageTextureBindingLayout>
27
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
28
- auto result = std::make_unique<rnwgpu::GPUStorageTextureBindingLayout>();
29
- if (!outOfBounds && arg.isObject()) {
30
- auto value = arg.getObject(runtime);
31
- if (value.hasProperty(runtime, "access")) {
32
- auto prop = value.getProperty(runtime, "access");
33
- result->access =
34
- JSIConverter<std::optional<wgpu::StorageTextureAccess>>::fromJSI(
35
- runtime, prop, false);
36
- }
37
- if (value.hasProperty(runtime, "format")) {
38
- auto prop = value.getProperty(runtime, "format");
39
- result->format =
40
- JSIConverter<wgpu::TextureFormat>::fromJSI(runtime, prop, false);
41
- }
42
- if (value.hasProperty(runtime, "viewDimension")) {
43
- auto prop = value.getProperty(runtime, "viewDimension");
44
- result->viewDimension =
45
- JSIConverter<std::optional<wgpu::TextureViewDimension>>::fromJSI(
46
- runtime, prop, false);
47
- }
48
- }
49
-
50
- return result;
51
- }
52
- static jsi::Value
53
- toJSI(jsi::Runtime &runtime,
54
- std::shared_ptr<rnwgpu::GPUStorageTextureBindingLayout> arg) {
55
- throw std::runtime_error("Invalid GPUStorageTextureBindingLayout::toJSI()");
56
- }
57
- };
58
-
59
- } // namespace rnwgpu
@@ -1,59 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
-
5
- #include "webgpu/webgpu_cpp.h"
6
-
7
- #include "jsi/JSIConverter.h"
8
-
9
- namespace jsi = facebook::jsi;
10
-
11
- namespace rnwgpu {
12
-
13
- struct GPUTextureBindingLayout {
14
- std::optional<wgpu::TextureSampleType> sampleType; // GPUTextureSampleType
15
- std::optional<wgpu::TextureViewDimension>
16
- viewDimension; // GPUTextureViewDimension
17
- std::optional<bool> multisampled; // boolean
18
- };
19
-
20
- } // namespace rnwgpu
21
-
22
- namespace rnwgpu {
23
-
24
- template <>
25
- struct JSIConverter<std::shared_ptr<rnwgpu::GPUTextureBindingLayout>> {
26
- static std::shared_ptr<rnwgpu::GPUTextureBindingLayout>
27
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
28
- auto result = std::make_unique<rnwgpu::GPUTextureBindingLayout>();
29
- if (!outOfBounds && arg.isObject()) {
30
- auto value = arg.getObject(runtime);
31
- if (value.hasProperty(runtime, "sampleType")) {
32
- auto prop = value.getProperty(runtime, "sampleType");
33
- result->sampleType =
34
- JSIConverter<std::optional<wgpu::TextureSampleType>>::fromJSI(
35
- runtime, prop, false);
36
- }
37
- if (value.hasProperty(runtime, "viewDimension")) {
38
- auto prop = value.getProperty(runtime, "viewDimension");
39
- result->viewDimension =
40
- JSIConverter<std::optional<wgpu::TextureViewDimension>>::fromJSI(
41
- runtime, prop, false);
42
- }
43
- if (value.hasProperty(runtime, "multisampled")) {
44
- auto prop = value.getProperty(runtime, "multisampled");
45
- result->multisampled =
46
- JSIConverter<std::optional<bool>>::fromJSI(runtime, prop, false);
47
- }
48
- }
49
-
50
- return result;
51
- }
52
- static jsi::Value
53
- toJSI(jsi::Runtime &runtime,
54
- std::shared_ptr<rnwgpu::GPUTextureBindingLayout> arg) {
55
- throw std::runtime_error("Invalid GPUTextureBindingLayout::toJSI()");
56
- }
57
- };
58
-
59
- } // namespace rnwgpu
@@ -1,91 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
- #include <vector>
6
-
7
- #include "webgpu/webgpu_cpp.h"
8
-
9
- #include "jsi/JSIConverter.h"
10
-
11
- #include "rnwgpu/api/GPUExtent3D.h"
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- namespace rnwgpu {
16
-
17
- struct GPUTextureDescriptor {
18
- std::shared_ptr<GPUExtent3D> size; // GPUExtent3DStrict
19
- std::optional<double> mipLevelCount; // GPUIntegerCoordinate
20
- std::optional<double> sampleCount; // GPUSize32
21
- std::optional<wgpu::TextureDimension> dimension; // GPUTextureDimension
22
- wgpu::TextureFormat format; // GPUTextureFormat
23
- double usage; // GPUTextureUsageFlags
24
- std::optional<std::vector<wgpu::TextureFormat>>
25
- viewFormats; // Iterable<GPUTextureFormat>
26
- std::optional<std::string> label; // string
27
- };
28
-
29
- } // namespace rnwgpu
30
-
31
- namespace rnwgpu {
32
-
33
- template <> struct JSIConverter<std::shared_ptr<rnwgpu::GPUTextureDescriptor>> {
34
- static std::shared_ptr<rnwgpu::GPUTextureDescriptor>
35
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
36
- auto result = std::make_unique<rnwgpu::GPUTextureDescriptor>();
37
- if (!outOfBounds && arg.isObject()) {
38
- auto value = arg.getObject(runtime);
39
- if (value.hasProperty(runtime, "size")) {
40
- auto prop = value.getProperty(runtime, "size");
41
- result->size = JSIConverter<std::shared_ptr<GPUExtent3D>>::fromJSI(
42
- runtime, prop, false);
43
- }
44
- if (value.hasProperty(runtime, "mipLevelCount")) {
45
- auto prop = value.getProperty(runtime, "mipLevelCount");
46
- result->mipLevelCount =
47
- JSIConverter<std::optional<double>>::fromJSI(runtime, prop, false);
48
- }
49
- if (value.hasProperty(runtime, "sampleCount")) {
50
- auto prop = value.getProperty(runtime, "sampleCount");
51
- result->sampleCount =
52
- JSIConverter<std::optional<double>>::fromJSI(runtime, prop, false);
53
- }
54
- if (value.hasProperty(runtime, "dimension")) {
55
- auto prop = value.getProperty(runtime, "dimension");
56
- result->dimension =
57
- JSIConverter<std::optional<wgpu::TextureDimension>>::fromJSI(
58
- runtime, prop, false);
59
- }
60
- if (value.hasProperty(runtime, "format")) {
61
- auto prop = value.getProperty(runtime, "format");
62
- result->format =
63
- JSIConverter<wgpu::TextureFormat>::fromJSI(runtime, prop, false);
64
- }
65
- if (value.hasProperty(runtime, "usage")) {
66
- auto prop = value.getProperty(runtime, "usage");
67
- result->usage = JSIConverter<double>::fromJSI(runtime, prop, false);
68
- }
69
- if (value.hasProperty(runtime, "viewFormats")) {
70
- auto prop = value.getProperty(runtime, "viewFormats");
71
- result->viewFormats = JSIConverter<
72
- std::optional<std::vector<wgpu::TextureFormat>>>::fromJSI(runtime,
73
- prop,
74
- false);
75
- }
76
- if (value.hasProperty(runtime, "label")) {
77
- auto prop = value.getProperty(runtime, "label");
78
- result->label = JSIConverter<std::optional<std::string>>::fromJSI(
79
- runtime, prop, false);
80
- }
81
- }
82
-
83
- return result;
84
- }
85
- static jsi::Value toJSI(jsi::Runtime &runtime,
86
- std::shared_ptr<rnwgpu::GPUTextureDescriptor> arg) {
87
- throw std::runtime_error("Invalid GPUTextureDescriptor::toJSI()");
88
- }
89
- };
90
-
91
- } // namespace rnwgpu
@@ -1,29 +0,0 @@
1
- #pragma once
2
-
3
- #include <jsi/jsi.h>
4
-
5
- #include "webgpu/webgpu_cpp.h"
6
-
7
- namespace rnwgpu {
8
-
9
- namespace jsi = facebook::jsi;
10
-
11
- class GPUTextureUsage {
12
- public:
13
- static jsi::Object create(jsi::Runtime &runtime) {
14
- jsi::Object obj(runtime);
15
- obj.setProperty(runtime, "COPY_SRC",
16
- static_cast<double>(wgpu::TextureUsage::CopySrc));
17
- obj.setProperty(runtime, "COPY_DST",
18
- static_cast<double>(wgpu::TextureUsage::CopyDst));
19
- obj.setProperty(runtime, "TEXTURE_BINDING",
20
- static_cast<double>(wgpu::TextureUsage::TextureBinding));
21
- obj.setProperty(runtime, "STORAGE_BINDING",
22
- static_cast<double>(wgpu::TextureUsage::StorageBinding));
23
- obj.setProperty(runtime, "RENDER_ATTACHMENT",
24
- static_cast<double>(wgpu::TextureUsage::RenderAttachment));
25
- return obj;
26
- }
27
- };
28
-
29
- } // namespace rnwgpu