@shopify/react-native-skia 2.9.1 → 2.10.1

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 (387) hide show
  1. package/android/CMakeLists.txt +8 -46
  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 +23 -24
  5. package/cpp/api/JsiSkAnimatedImage.h +24 -25
  6. package/cpp/api/JsiSkAnimatedImageFactory.h +18 -17
  7. package/cpp/api/JsiSkApi.h +254 -96
  8. package/cpp/api/JsiSkCanvas.h +141 -266
  9. package/cpp/api/JsiSkColor.h +7 -5
  10. package/cpp/api/JsiSkColorFilter.h +15 -8
  11. package/cpp/api/JsiSkColorFilterFactory.h +49 -67
  12. package/cpp/api/JsiSkContourMeasure.h +31 -38
  13. package/cpp/api/JsiSkContourMeasureIter.h +20 -23
  14. package/cpp/api/JsiSkConverters.h +410 -0
  15. package/cpp/api/JsiSkData.h +13 -7
  16. package/cpp/api/JsiSkDataFactory.h +27 -32
  17. package/cpp/api/JsiSkFont.h +123 -192
  18. package/cpp/api/JsiSkFontMgr.h +33 -26
  19. package/cpp/api/JsiSkFontMgrFactory.h +12 -11
  20. package/cpp/api/JsiSkFontStyle.h +14 -12
  21. package/cpp/api/JsiSkImage.h +90 -79
  22. package/cpp/api/JsiSkImageFactory.h +93 -95
  23. package/cpp/api/JsiSkImageFilter.h +21 -11
  24. package/cpp/api/JsiSkImageFilterFactory.h +375 -629
  25. package/cpp/api/JsiSkImageInfo.h +25 -25
  26. package/cpp/api/JsiSkMaskFilter.h +21 -11
  27. package/cpp/api/JsiSkMaskFilterFactory.h +17 -17
  28. package/cpp/api/JsiSkMatrix.h +51 -88
  29. package/cpp/api/JsiSkNativeObjects.h +387 -0
  30. package/cpp/api/JsiSkPaint.h +104 -142
  31. package/cpp/api/JsiSkParagraph.h +54 -64
  32. package/cpp/api/JsiSkParagraphBuilder.h +43 -68
  33. package/cpp/api/JsiSkParagraphBuilderFactory.h +20 -24
  34. package/cpp/api/JsiSkPath.h +242 -350
  35. package/cpp/api/JsiSkPathBuilder.h +153 -273
  36. package/cpp/api/JsiSkPathBuilderFactory.h +19 -20
  37. package/cpp/api/JsiSkPathEffect.h +21 -11
  38. package/cpp/api/JsiSkPathEffectFactory.h +61 -80
  39. package/cpp/api/JsiSkPathFactory.h +148 -238
  40. package/cpp/api/JsiSkPicture.h +32 -27
  41. package/cpp/api/JsiSkPictureFactory.h +21 -26
  42. package/cpp/api/JsiSkPictureRecorder.h +27 -29
  43. package/cpp/api/JsiSkPoint.h +20 -23
  44. package/cpp/api/JsiSkRRect.h +24 -32
  45. package/cpp/api/JsiSkRSXform.h +31 -48
  46. package/cpp/api/JsiSkRect.h +40 -50
  47. package/cpp/api/JsiSkRuntimeEffect.h +85 -92
  48. package/cpp/api/JsiSkRuntimeEffectFactory.h +14 -18
  49. package/cpp/api/JsiSkRuntimeShaderBuilder.h +28 -30
  50. package/cpp/api/JsiSkSVG.h +15 -15
  51. package/cpp/api/JsiSkSVGFactory.h +17 -20
  52. package/cpp/api/JsiSkShader.h +15 -8
  53. package/cpp/api/JsiSkShaderFactory.h +159 -238
  54. package/cpp/api/JsiSkSkottie.h +131 -143
  55. package/cpp/api/JsiSkSurface.h +29 -32
  56. package/cpp/api/JsiSkSurfaceFactory.h +18 -20
  57. package/cpp/api/JsiSkTextBlob.h +15 -8
  58. package/cpp/api/JsiSkTextBlobFactory.h +40 -66
  59. package/cpp/api/JsiSkTypeface.h +25 -22
  60. package/cpp/api/JsiSkTypefaceFactory.h +17 -15
  61. package/cpp/api/JsiSkTypefaceFontProvider.h +43 -39
  62. package/cpp/api/JsiSkTypefaceFontProviderFactory.h +13 -12
  63. package/cpp/api/JsiSkVertices.h +23 -22
  64. package/cpp/api/JsiSkiaContext.h +22 -23
  65. package/cpp/api/JsiSkottieFactory.h +16 -17
  66. package/cpp/api/JsiVideo.h +43 -81
  67. package/cpp/api/recorder/Convertor.h +31 -61
  68. package/cpp/api/recorder/DataTypes.h +8 -16
  69. package/cpp/api/recorder/JsiRecorder.h +83 -55
  70. package/cpp/api/recorder/RNRecorder.h +1 -1
  71. package/cpp/jsi/BoxedNativeObject.h +146 -0
  72. package/cpp/{jsi2 → jsi}/EnumMapper.h +4 -1
  73. package/cpp/{jsi2 → jsi}/JSIConverter.h +0 -31
  74. package/cpp/{jsi2 → jsi}/NativeObject.h +131 -152
  75. package/cpp/jsi/RuntimeAwareCache.cpp +1 -1
  76. package/cpp/jsi/RuntimeAwareCache.h +26 -8
  77. package/cpp/jsi/ViewProperty.h +5 -11
  78. package/cpp/rnskia/RNDawnContext.h +18 -2
  79. package/cpp/rnskia/RNDawnInterop.cpp +19 -0
  80. package/cpp/rnskia/RNDawnUtils.h +18 -1
  81. package/cpp/rnskia/RNSkJsiViewApi.h +20 -11
  82. package/cpp/rnskia/RNSkManager.cpp +9 -168
  83. package/cpp/rnskia/RNSkPictureView.h +1 -1
  84. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +2 -0
  85. package/lib/commonjs/external/reanimated/renderHelpers.d.ts +15 -0
  86. package/lib/commonjs/external/reanimated/renderHelpers.js +30 -1
  87. package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
  88. package/lib/commonjs/mock/index.js +0 -1
  89. package/lib/commonjs/mock/index.js.map +1 -1
  90. package/lib/commonjs/skia/NativeSetup.js +4 -0
  91. package/lib/commonjs/skia/NativeSetup.js.map +1 -1
  92. package/lib/commonjs/skia/SkiaWorkletSerialization.d.ts +1 -0
  93. package/lib/commonjs/skia/SkiaWorkletSerialization.js +66 -0
  94. package/lib/commonjs/skia/SkiaWorkletSerialization.js.map +1 -0
  95. package/lib/commonjs/skia/types/Image/ImageFactory.d.ts +15 -6
  96. package/lib/commonjs/skia/types/Image/ImageFactory.js.map +1 -1
  97. package/lib/commonjs/skia/types/Skia.d.ts +5 -15
  98. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  99. package/lib/commonjs/skia/types/index.d.ts +0 -1
  100. package/lib/commonjs/skia/types/index.js +0 -11
  101. package/lib/commonjs/skia/types/index.js.map +1 -1
  102. package/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  103. package/lib/commonjs/skia/web/JsiSkImageFactory.js +2 -2
  104. package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
  105. package/lib/commonjs/skia/web/JsiSkia.js +1 -4
  106. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  107. package/lib/commonjs/sksg/Container.native.js +20 -1
  108. package/lib/commonjs/sksg/Container.native.js.map +1 -1
  109. package/lib/commonjs/views/index.d.ts +0 -1
  110. package/lib/commonjs/views/index.js +0 -11
  111. package/lib/commonjs/views/index.js.map +1 -1
  112. package/lib/module/external/reanimated/renderHelpers.d.ts +15 -0
  113. package/lib/module/external/reanimated/renderHelpers.js +29 -0
  114. package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
  115. package/lib/module/mock/index.js +0 -1
  116. package/lib/module/mock/index.js.map +1 -1
  117. package/lib/module/skia/NativeSetup.js +4 -0
  118. package/lib/module/skia/NativeSetup.js.map +1 -1
  119. package/lib/module/skia/SkiaWorkletSerialization.d.ts +1 -0
  120. package/lib/module/skia/SkiaWorkletSerialization.js +59 -0
  121. package/lib/module/skia/SkiaWorkletSerialization.js.map +1 -0
  122. package/lib/module/skia/types/Image/ImageFactory.d.ts +15 -6
  123. package/lib/module/skia/types/Image/ImageFactory.js.map +1 -1
  124. package/lib/module/skia/types/Skia.d.ts +5 -15
  125. package/lib/module/skia/types/Skia.js.map +1 -1
  126. package/lib/module/skia/types/index.d.ts +0 -1
  127. package/lib/module/skia/types/index.js +0 -1
  128. package/lib/module/skia/types/index.js.map +1 -1
  129. package/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  130. package/lib/module/skia/web/JsiSkImageFactory.js +2 -2
  131. package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
  132. package/lib/module/skia/web/JsiSkia.js +1 -4
  133. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  134. package/lib/module/sksg/Container.native.js +21 -2
  135. package/lib/module/sksg/Container.native.js.map +1 -1
  136. package/lib/module/views/index.d.ts +0 -1
  137. package/lib/module/views/index.js +0 -1
  138. package/lib/module/views/index.js.map +1 -1
  139. package/lib/typescript/lib/commonjs/external/reanimated/renderHelpers.d.ts +2 -0
  140. package/lib/typescript/lib/commonjs/mock/index.d.ts +0 -1
  141. package/lib/typescript/lib/commonjs/skia/SkiaWorkletSerialization.d.ts +2 -0
  142. package/lib/typescript/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  143. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -2
  144. package/lib/typescript/lib/module/external/reanimated/renderHelpers.d.ts +15 -0
  145. package/lib/typescript/lib/module/mock/index.d.ts +0 -2
  146. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -2
  147. package/lib/typescript/lib/module/skia/SkiaWorkletSerialization.d.ts +1 -0
  148. package/lib/typescript/lib/module/skia/types/index.d.ts +0 -1
  149. package/lib/typescript/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  150. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -2
  151. package/lib/typescript/lib/module/views/index.d.ts +0 -1
  152. package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +15 -0
  153. package/lib/typescript/src/skia/SkiaWorkletSerialization.d.ts +1 -0
  154. package/lib/typescript/src/skia/types/Image/ImageFactory.d.ts +15 -6
  155. package/lib/typescript/src/skia/types/Skia.d.ts +5 -15
  156. package/lib/typescript/src/skia/types/index.d.ts +0 -1
  157. package/lib/typescript/src/skia/web/JsiSkImageFactory.d.ts +2 -2
  158. package/lib/typescript/src/views/index.d.ts +0 -1
  159. package/package.json +8 -5
  160. package/react-native-skia.podspec +38 -5
  161. package/src/external/reanimated/renderHelpers.ts +30 -0
  162. package/src/mock/index.ts +0 -1
  163. package/src/skia/NativeSetup.ts +5 -0
  164. package/src/skia/SkiaWorkletSerialization.ts +67 -0
  165. package/src/skia/types/Image/ImageFactory.ts +15 -6
  166. package/src/skia/types/Skia.ts +5 -15
  167. package/src/skia/types/index.ts +0 -1
  168. package/src/skia/web/JsiSkImageFactory.ts +3 -3
  169. package/src/skia/web/JsiSkia.ts +2 -5
  170. package/src/sksg/Container.native.ts +40 -2
  171. package/src/views/index.ts +0 -1
  172. package/android/cpp/jni/JniWebGPUView.cpp +0 -112
  173. package/android/cpp/rnskia-android/SkiaPlatformContext.h +0 -26
  174. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUSurfaceView.java +0 -43
  175. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUTextureView.java +0 -50
  176. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUView.java +0 -98
  177. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewAPI.java +0 -19
  178. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewManager.java +0 -58
  179. package/apple/RNWebGPUAppleNativeBuffer.mm +0 -33
  180. package/apple/SkiaPlatformContext.h +0 -20
  181. package/apple/SkiaPlatformContext.mm +0 -21
  182. package/apple/SkiaWebGPUView.mm +0 -81
  183. package/apple/WebGPUMetalView.mm +0 -136
  184. package/cpp/api/JsiSkHostObjects.h +0 -257
  185. package/cpp/jsi/JsiHostObject.cpp +0 -137
  186. package/cpp/jsi/JsiHostObject.h +0 -385
  187. package/cpp/rnwgpu/ArrayBuffer.h +0 -117
  188. package/cpp/rnwgpu/Canvas.h +0 -50
  189. package/cpp/rnwgpu/PlatformContext.h +0 -18
  190. package/cpp/rnwgpu/SurfaceRegistry.h +0 -605
  191. package/cpp/rnwgpu/api/AppleNativeBuffer.h +0 -22
  192. package/cpp/rnwgpu/api/Convertors.h +0 -783
  193. package/cpp/rnwgpu/api/External.h +0 -12
  194. package/cpp/rnwgpu/api/GPU.cpp +0 -162
  195. package/cpp/rnwgpu/api/GPU.h +0 -60
  196. package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -240
  197. package/cpp/rnwgpu/api/GPUAdapter.h +0 -60
  198. package/cpp/rnwgpu/api/GPUAdapterInfo.h +0 -57
  199. package/cpp/rnwgpu/api/GPUBindGroup.cpp +0 -3
  200. package/cpp/rnwgpu/api/GPUBindGroup.h +0 -51
  201. package/cpp/rnwgpu/api/GPUBindGroupLayout.h +0 -52
  202. package/cpp/rnwgpu/api/GPUBuffer.cpp +0 -107
  203. package/cpp/rnwgpu/api/GPUBuffer.h +0 -88
  204. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -75
  205. package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -70
  206. package/cpp/rnwgpu/api/GPUCommandBuffer.h +0 -45
  207. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +0 -179
  208. package/cpp/rnwgpu/api/GPUCommandEncoder.h +0 -111
  209. package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -79
  210. package/cpp/rnwgpu/api/GPUCompilationMessage.h +0 -36
  211. package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +0 -60
  212. package/cpp/rnwgpu/api/GPUComputePassEncoder.h +0 -85
  213. package/cpp/rnwgpu/api/GPUComputePipeline.cpp +0 -12
  214. package/cpp/rnwgpu/api/GPUComputePipeline.h +0 -60
  215. package/cpp/rnwgpu/api/GPUDevice.cpp +0 -614
  216. package/cpp/rnwgpu/api/GPUDevice.h +0 -258
  217. package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
  218. package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
  219. package/cpp/rnwgpu/api/GPUError.h +0 -35
  220. package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
  221. package/cpp/rnwgpu/api/GPUExternalTexture.cpp +0 -139
  222. package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -95
  223. package/cpp/rnwgpu/api/GPUFeatures.h +0 -203
  224. package/cpp/rnwgpu/api/GPUInternalError.h +0 -31
  225. package/cpp/rnwgpu/api/GPUOrigin2D.h +0 -55
  226. package/cpp/rnwgpu/api/GPUOrigin3D.h +0 -62
  227. package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +0 -33
  228. package/cpp/rnwgpu/api/GPUPipelineLayout.h +0 -45
  229. package/cpp/rnwgpu/api/GPUQuerySet.cpp +0 -11
  230. package/cpp/rnwgpu/api/GPUQuerySet.h +0 -73
  231. package/cpp/rnwgpu/api/GPUQueue.cpp +0 -179
  232. package/cpp/rnwgpu/api/GPUQueue.h +0 -84
  233. package/cpp/rnwgpu/api/GPURenderBundle.h +0 -44
  234. package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +0 -131
  235. package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +0 -110
  236. package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +0 -165
  237. package/cpp/rnwgpu/api/GPURenderPassEncoder.h +0 -130
  238. package/cpp/rnwgpu/api/GPURenderPipeline.cpp +0 -13
  239. package/cpp/rnwgpu/api/GPURenderPipeline.h +0 -61
  240. package/cpp/rnwgpu/api/GPUSampler.h +0 -44
  241. package/cpp/rnwgpu/api/GPUShaderModule.cpp +0 -56
  242. package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
  243. package/cpp/rnwgpu/api/GPUSharedFence.cpp +0 -80
  244. package/cpp/rnwgpu/api/GPUSharedFence.h +0 -53
  245. package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +0 -135
  246. package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +0 -75
  247. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +0 -129
  248. package/cpp/rnwgpu/api/GPUSupportedLimits.h +0 -131
  249. package/cpp/rnwgpu/api/GPUTexture.cpp +0 -47
  250. package/cpp/rnwgpu/api/GPUTexture.h +0 -162
  251. package/cpp/rnwgpu/api/GPUTextureView.h +0 -44
  252. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +0 -60
  253. package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
  254. package/cpp/rnwgpu/api/ImageBitmap.h +0 -62
  255. package/cpp/rnwgpu/api/NativeBufferUtils.h +0 -87
  256. package/cpp/rnwgpu/api/RNWebGPU.h +0 -82
  257. package/cpp/rnwgpu/api/WebGPUConstants.h +0 -36
  258. package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -64
  259. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -78
  260. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -56
  261. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -97
  262. package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -57
  263. package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -52
  264. package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -56
  265. package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -56
  266. package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -59
  267. package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +0 -39
  268. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +0 -76
  269. package/cpp/rnwgpu/api/descriptors/GPUColor.h +0 -66
  270. package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -58
  271. package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
  272. package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -45
  273. package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -45
  274. package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -56
  275. package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -58
  276. package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -67
  277. package/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h +0 -56
  278. package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -103
  279. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -109
  280. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -38
  281. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -90
  282. package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -73
  283. package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -62
  284. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
  285. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -65
  286. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -81
  287. package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -54
  288. package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
  289. package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -54
  290. package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -57
  291. package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -69
  292. package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -61
  293. package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -55
  294. package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -43
  295. package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -45
  296. package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -80
  297. package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -81
  298. package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -101
  299. package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -92
  300. package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -58
  301. package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -103
  302. package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -51
  303. package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -45
  304. package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -110
  305. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -60
  306. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -62
  307. package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
  308. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h +0 -58
  309. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h +0 -51
  310. package/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h +0 -73
  311. package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -64
  312. package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -59
  313. package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -59
  314. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -91
  315. package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
  316. package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -91
  317. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -64
  318. package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -53
  319. package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -62
  320. package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -73
  321. package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1969
  322. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -214
  323. package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -58
  324. package/cpp/rnwgpu/async/RuntimeContext.cpp +0 -199
  325. package/cpp/rnwgpu/async/RuntimeContext.h +0 -134
  326. package/lib/commonjs/skia/types/WebGPU.d.ts +0 -184
  327. package/lib/commonjs/skia/types/WebGPU.js +0 -105
  328. package/lib/commonjs/skia/types/WebGPU.js.map +0 -1
  329. package/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -8
  330. package/lib/commonjs/specs/WebGPUViewNativeComponent.js +0 -10
  331. package/lib/commonjs/specs/WebGPUViewNativeComponent.js.map +0 -1
  332. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  333. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js +0 -103
  334. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  335. package/lib/commonjs/specs/utils.d.ts +0 -1
  336. package/lib/commonjs/specs/utils.js +0 -11
  337. package/lib/commonjs/specs/utils.js.map +0 -1
  338. package/lib/commonjs/views/WebGPUCanvas.d.ts +0 -33
  339. package/lib/commonjs/views/WebGPUCanvas.js +0 -79
  340. package/lib/commonjs/views/WebGPUCanvas.js.map +0 -1
  341. package/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -23
  342. package/lib/commonjs/views/WebGPUCanvas.web.js +0 -20
  343. package/lib/commonjs/views/WebGPUCanvas.web.js.map +0 -1
  344. package/lib/module/skia/types/WebGPU.d.ts +0 -184
  345. package/lib/module/skia/types/WebGPU.js +0 -99
  346. package/lib/module/skia/types/WebGPU.js.map +0 -1
  347. package/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -8
  348. package/lib/module/specs/WebGPUViewNativeComponent.js +0 -4
  349. package/lib/module/specs/WebGPUViewNativeComponent.js.map +0 -1
  350. package/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  351. package/lib/module/specs/WebGPUViewNativeComponent.web.js +0 -96
  352. package/lib/module/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  353. package/lib/module/specs/utils.d.ts +0 -1
  354. package/lib/module/specs/utils.js +0 -5
  355. package/lib/module/specs/utils.js.map +0 -1
  356. package/lib/module/views/WebGPUCanvas.d.ts +0 -33
  357. package/lib/module/views/WebGPUCanvas.js +0 -70
  358. package/lib/module/views/WebGPUCanvas.js.map +0 -1
  359. package/lib/module/views/WebGPUCanvas.web.d.ts +0 -23
  360. package/lib/module/views/WebGPUCanvas.web.js +0 -12
  361. package/lib/module/views/WebGPUCanvas.web.js.map +0 -1
  362. package/lib/typescript/lib/commonjs/skia/types/WebGPU.d.ts +0 -2
  363. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -4
  364. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -3
  365. package/lib/typescript/lib/commonjs/specs/utils.d.ts +0 -2
  366. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.d.ts +0 -6
  367. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -6
  368. package/lib/typescript/lib/module/skia/types/WebGPU.d.ts +0 -31
  369. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -2
  370. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -2
  371. package/lib/typescript/lib/module/specs/utils.d.ts +0 -1
  372. package/lib/typescript/lib/module/views/WebGPUCanvas.d.ts +0 -7
  373. package/lib/typescript/lib/module/views/WebGPUCanvas.web.d.ts +0 -8
  374. package/lib/typescript/src/skia/types/WebGPU.d.ts +0 -184
  375. package/lib/typescript/src/specs/WebGPUViewNativeComponent.d.ts +0 -8
  376. package/lib/typescript/src/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  377. package/lib/typescript/src/specs/utils.d.ts +0 -1
  378. package/lib/typescript/src/views/WebGPUCanvas.d.ts +0 -33
  379. package/lib/typescript/src/views/WebGPUCanvas.web.d.ts +0 -23
  380. package/src/skia/types/WebGPU.ts +0 -226
  381. package/src/specs/WebGPUViewNativeComponent.ts +0 -11
  382. package/src/specs/WebGPUViewNativeComponent.web.ts +0 -110
  383. package/src/specs/utils.ts +0 -4
  384. package/src/views/WebGPUCanvas.tsx +0 -125
  385. package/src/views/WebGPUCanvas.web.tsx +0 -36
  386. /package/cpp/{jsi2 → jsi}/Promise.cpp +0 -0
  387. /package/cpp/{jsi2 → jsi}/Promise.h +0 -0
@@ -1,385 +0,0 @@
1
- #pragma once
2
-
3
- #include <jsi/jsi.h>
4
-
5
- #include <functional>
6
- #include <map>
7
- #include <memory>
8
- #include <string>
9
- #include <unordered_map>
10
- #include <vector>
11
-
12
- #include "RuntimeAwareCache.h"
13
-
14
- #define STR_CAT_NX(A, B) A##B
15
- #define STR_CAT(A, B) STR_CAT_NX(A, B)
16
- #define STR_GET get_
17
- #define STR_SET set_
18
-
19
- /**
20
- * Creates a new Host function declaration as a lambda with all deps passed
21
- * with implicit lambda capture clause
22
- */
23
- #define JSI_HOST_FUNCTION_LAMBDA \
24
- [=](jsi::Runtime & runtime, const jsi::Value &thisValue, \
25
- const jsi::Value *arguments, size_t count) -> jsi::Value
26
-
27
- /**
28
- * Creates a new Host function declaration
29
- */
30
- #define JSI_HOST_FUNCTION(NAME) \
31
- jsi::Value NAME(jsi::Runtime &runtime, const jsi::Value &thisValue, \
32
- const jsi::Value *arguments, size_t count)
33
-
34
- /**
35
- * Creates a new property setter function declaration
36
- */
37
- #define JSI_PROPERTY_SET(NAME) \
38
- void STR_CAT(STR_SET, NAME)(jsi::Runtime & runtime, const jsi::Value &value)
39
-
40
- /**
41
- * Creates a new property getter function declaration
42
- */
43
- #define JSI_PROPERTY_GET(NAME) \
44
- jsi::Value STR_CAT(STR_GET, NAME)(jsi::Runtime & runtime)
45
-
46
- /**
47
- * Creates a JSI export function declaration
48
- */
49
- #define JSI_EXPORT_FUNC(CLASS, FUNCTION) \
50
- {#FUNCTION, (jsi::Value(JsiHostObject::*)( \
51
- jsi::Runtime & runtime, const jsi::Value &thisValue, \
52
- const jsi::Value *arguments, size_t)) & \
53
- CLASS::FUNCTION}
54
-
55
- /**
56
- * Creates a JSI export functions statement
57
- */
58
- #define JSI_EXPORT_FUNCTIONS(...) \
59
- const RNJsi::JsiFunctionMap &getExportedFunctionMap() override { \
60
- static RNJsi::JsiFunctionMap map = {__VA_ARGS__}; \
61
- return map; \
62
- }
63
-
64
- /**
65
- * Creates a JSI export getter declaration
66
- */
67
- #define JSI_EXPORT_PROP_GET(CLASS, FUNCTION) \
68
- {#FUNCTION, (jsi::Value(JsiHostObject::*)(jsi::Runtime & runtime)) & \
69
- CLASS::STR_CAT(STR_GET, FUNCTION)}
70
-
71
- /**
72
- * Creates a JSI export getters statement
73
- */
74
- #define JSI_EXPORT_PROPERTY_GETTERS(...) \
75
- const RNJsi::JsiPropertyGettersMap &getExportedPropertyGettersMap() \
76
- override { \
77
- static RNJsi::JsiPropertyGettersMap map = {__VA_ARGS__}; \
78
- return map; \
79
- }
80
-
81
- /**
82
- * Creates a JSI export setter declaration
83
- */
84
- #define JSI_EXPORT_PROP_SET(CLASS, FUNCTION) \
85
- {#FUNCTION, \
86
- (void(JsiHostObject::*)(jsi::Runtime & runtime, const jsi::Value &)) & \
87
- CLASS::STR_CAT(STR_SET, FUNCTION)}
88
-
89
- /**
90
- * Creates a JSI export setters statement
91
- */
92
- #define JSI_EXPORT_PROPERTY_SETTERS(...) \
93
- const RNJsi::JsiPropertySettersMap &getExportedPropertySettersMap() \
94
- override { \
95
- static RNJsi::JsiPropertySettersMap map = {__VA_ARGS__}; \
96
- return map; \
97
- }
98
-
99
- namespace RNJsi {
100
-
101
- namespace jsi = facebook::jsi;
102
-
103
- using JsPropertyType = struct {
104
- std::function<jsi::Value(jsi::Runtime &)> get;
105
- std::function<void(jsi::Runtime &, const jsi::Value &)> set;
106
- };
107
-
108
- class JsiHostObject;
109
-
110
- using JsiFunctionMap =
111
- std::unordered_map<std::string, jsi::Value (JsiHostObject::*)(
112
- jsi::Runtime &, const jsi::Value &,
113
- const jsi::Value *, size_t)>;
114
-
115
- using JsiPropertyGettersMap =
116
- std::unordered_map<std::string,
117
- jsi::Value (JsiHostObject::*)(jsi::Runtime &)>;
118
-
119
- using JsiPropertySettersMap =
120
- std::unordered_map<std::string, void (JsiHostObject::*)(
121
- jsi::Runtime &, const jsi::Value &)>;
122
-
123
- /**
124
- * Base class for jsi host objects
125
- */
126
- class JsiHostObject : public jsi::HostObject {
127
- public:
128
- JsiHostObject() = default;
129
- ~JsiHostObject() = default;
130
-
131
- /**
132
- * Overridden jsi::HostObject set property method
133
- * @param rt Runtime
134
- * @param name Name of value to set
135
- * @param value Value to set
136
- */
137
- void set(jsi::Runtime &rt, const jsi::PropNameID &name,
138
- const jsi::Value &value) override;
139
-
140
- /**
141
- * Overridden jsi::HostObject get property method. Returns functions from
142
- * the map of functions.
143
- * @param runtime Runtime
144
- * @param name Name of value to get
145
- * @return Value
146
- */
147
- jsi::Value get(jsi::Runtime &runtime, const jsi::PropNameID &name) override;
148
-
149
- /**
150
- * Overridden getPropertyNames from jsi::HostObject. Returns all keys in the
151
- * function and property maps
152
- * @param runtime Runtime
153
- * @return List of property names
154
- */
155
- std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime &runtime) override;
156
-
157
- protected:
158
- /**
159
- Override to return map of name/functions
160
- */
161
- virtual const RNJsi::JsiFunctionMap &getExportedFunctionMap() {
162
- static const RNJsi::JsiFunctionMap empty;
163
- return empty;
164
- }
165
-
166
- /**
167
- Override to get property getters map of name/functions
168
- */
169
- virtual const JsiPropertyGettersMap &getExportedPropertyGettersMap() {
170
- static const JsiPropertyGettersMap empty;
171
- return empty;
172
- }
173
-
174
- /**
175
- Override to get property setters map of name/functions
176
- */
177
- virtual const JsiPropertySettersMap &getExportedPropertySettersMap() {
178
- static const JsiPropertySettersMap empty;
179
- return empty;
180
- }
181
-
182
- /**
183
- * Installs a function into the function map
184
- */
185
- void installFunction(const std::string &name,
186
- const jsi::HostFunctionType &function) {
187
- _funcMap.emplace(name, function);
188
- }
189
-
190
- /**
191
- * Installs a property with get/set
192
- * @param name Name of property to install
193
- * @param get Getter function
194
- * @param set Setter function
195
- */
196
- void installProperty(
197
- const std::string &name,
198
- const std::function<jsi::Value(jsi::Runtime &)> &get,
199
- const std::function<void(jsi::Runtime &, const jsi::Value &)> &set) {
200
- _propMap.emplace(name, JsPropertyType{.get = get, .set = set});
201
- }
202
-
203
- /**
204
- * Installs a property with only getter
205
- * @param name Name of property to install
206
- * @param get Getter function
207
- */
208
- void installReadonlyProperty(
209
- const std::string &name,
210
- const std::function<jsi::Value(jsi::Runtime &)> &get) {
211
- _propMap.emplace(name, JsPropertyType{
212
- .get = get,
213
- .set = [](jsi::Runtime &, const jsi::Value &) {},
214
- });
215
- }
216
-
217
- /**
218
- * Installs a property which points to a given host object
219
- * @param name Name of property to install
220
- * @param hostObject Object to return
221
- */
222
- void installReadonlyProperty(const std::string &name,
223
- std::shared_ptr<jsi::HostObject> hostObject) {
224
- _propMap.emplace(name, JsPropertyType{
225
- .get =
226
- [hostObject](jsi::Runtime &runtime) {
227
- return jsi::Object::createFromHostObject(
228
- runtime, hostObject);
229
- },
230
- .set = [](jsi::Runtime &, const jsi::Value &) {},
231
- });
232
- }
233
-
234
- /**
235
- @Returns a reference to the argument at the given position in the arguments
236
- array. Raises an error if the index is above the number of arguments.
237
- @param runtime jsi::Runtime
238
- @param arguments Arguments list
239
- @param count Number of arguments in arguments list
240
- @param index Index of parameter to return
241
- */
242
- static const jsi::Value &getArgument(jsi::Runtime &runtime,
243
- const jsi::Value *arguments,
244
- size_t count, size_t index) {
245
- if (index >= count) {
246
- throw jsi::JSError(runtime, "Argument index out of bounds.");
247
- }
248
-
249
- return arguments[index];
250
- }
251
-
252
- /**
253
- Returns argument as number or throws
254
- */
255
- static double getArgumentAsNumber(jsi::Runtime &runtime,
256
- const jsi::Value *arguments, size_t count,
257
- size_t index) {
258
- const jsi::Value &value = getArgument(runtime, arguments, count, index);
259
- if (!value.isNumber()) {
260
- throw jsi::JSError(runtime,
261
- "Expected type number for parameter at index " +
262
- std::to_string(index));
263
- }
264
- return value.asNumber();
265
- }
266
-
267
- /**
268
- Returns argument as bool or throws
269
- */
270
- static bool getArgumentAsBool(jsi::Runtime &runtime,
271
- const jsi::Value *arguments, size_t count,
272
- size_t index) {
273
- const jsi::Value &value = getArgument(runtime, arguments, count, index);
274
- if (!value.isBool()) {
275
- throw jsi::JSError(runtime,
276
- "Expected type boolean for parameter at index " +
277
- std::to_string(index));
278
- }
279
- return value.getBool();
280
- }
281
-
282
- /**
283
- Returns argument as string or throws
284
- */
285
- static jsi::String getArgumentAsString(jsi::Runtime &runtime,
286
- const jsi::Value *arguments,
287
- size_t count, size_t index) {
288
- const jsi::Value &value = getArgument(runtime, arguments, count, index);
289
- if (!value.isString()) {
290
- throw jsi::JSError(runtime,
291
- "Expected type string for parameter at index " +
292
- std::to_string(index));
293
- }
294
- return value.asString(runtime);
295
- }
296
-
297
- /**
298
- Returns argument as object or throws
299
- */
300
- static jsi::Object getArgumentAsObject(jsi::Runtime &runtime,
301
- const jsi::Value *arguments,
302
- size_t count, size_t index) {
303
- const jsi::Value &value = getArgument(runtime, arguments, count, index);
304
- if (!value.isObject()) {
305
- throw jsi::JSError(runtime,
306
- "Expected type object for parameter at index " +
307
- std::to_string(index));
308
- }
309
- return value.asObject(runtime);
310
- }
311
-
312
- /**
313
- Returns argument as host object or throws
314
- */
315
- template <typename T = HostObject>
316
- static std::shared_ptr<T>
317
- getArgumentAsHostObject(jsi::Runtime &runtime, const jsi::Value *arguments,
318
- size_t count, size_t index) {
319
- auto value = getArgumentAsObject(runtime, arguments, count, index);
320
- if (!value.isHostObject(runtime)) {
321
- throw jsi::JSError(runtime,
322
- "Expected type host object for parameter at index " +
323
- std::to_string(index));
324
- }
325
- return value.asHostObject<T>(runtime);
326
- }
327
-
328
- /**
329
- Returns argument as host object or nullptr if the value is not a valid host
330
- object of requested type
331
- */
332
- template <typename T = HostObject>
333
- static std::shared_ptr<T>
334
- tryGetArgumentAsHostObject(jsi::Runtime &runtime, const jsi::Value *arguments,
335
- size_t count, size_t index) {
336
- const jsi::Value &value = getArgument(runtime, arguments, count, index);
337
- if (!value.isObject()) {
338
- return nullptr;
339
- }
340
-
341
- auto object = value.asObject(runtime);
342
- if (!object.isHostObject(runtime)) {
343
- return nullptr;
344
- }
345
-
346
- return object.asHostObject<T>(runtime);
347
- }
348
-
349
- /**
350
- Returns argument as array or throws
351
- */
352
- static jsi::Array getArgumentAsArray(jsi::Runtime &runtime,
353
- const jsi::Value *arguments,
354
- size_t count, size_t index) {
355
- auto value = getArgumentAsObject(runtime, arguments, count, index);
356
- if (!value.isArray(runtime)) {
357
- throw jsi::JSError(runtime,
358
- "Expected type array for parameter at index " +
359
- std::to_string(index));
360
- }
361
- return value.asArray(runtime);
362
- }
363
-
364
- /**
365
- Returns argument as function or throws
366
- */
367
- static jsi::Object getArgumentAsFunction(jsi::Runtime &runtime,
368
- const jsi::Value *arguments,
369
- size_t count, size_t index) {
370
- auto value = getArgumentAsObject(runtime, arguments, count, index);
371
- if (!value.isFunction(runtime)) {
372
- throw jsi::JSError(runtime,
373
- "Expected type function for parameter at index " +
374
- std::to_string(index));
375
- }
376
- return value.asFunction(runtime);
377
- }
378
-
379
- private:
380
- std::unordered_map<std::string, jsi::HostFunctionType> _funcMap;
381
- std::unordered_map<std::string, JsPropertyType> _propMap;
382
-
383
- RuntimeAwareCache<std::map<std::string, jsi::Function>> _hostFunctionCache;
384
- };
385
- } // namespace RNJsi
@@ -1,117 +0,0 @@
1
- #pragma once
2
- #include <jsi/jsi.h>
3
-
4
- #include <cmath>
5
- #include <cstdint>
6
- #include <memory>
7
-
8
- #include "jsi2/JSIConverter.h"
9
-
10
- namespace rnwgpu {
11
-
12
- namespace jsi = facebook::jsi;
13
-
14
- struct ArrayBuffer : jsi::MutableBuffer {
15
- ArrayBuffer(void *data, size_t size, size_t bytesPerElement)
16
- : _data(data), _size(size), _bytesPerElement(bytesPerElement) {}
17
-
18
- ~ArrayBuffer() override {}
19
-
20
- size_t size() const override { return _size; }
21
-
22
- uint8_t *data() override { return static_cast<uint8_t *>(_data); }
23
-
24
- void *_data;
25
- size_t _size;
26
- size_t _bytesPerElement;
27
- };
28
-
29
- static std::shared_ptr<ArrayBuffer>
30
- createArrayBufferFromJSI(jsi::Runtime &runtime,
31
- const jsi::ArrayBuffer &arrayBuffer,
32
- size_t bytesPerElement) {
33
- auto size = arrayBuffer.size(runtime);
34
- return std::make_shared<ArrayBuffer>(arrayBuffer.data(runtime), size,
35
- bytesPerElement);
36
- }
37
-
38
- template <> struct JSIConverter<std::shared_ptr<ArrayBuffer>> {
39
- static std::shared_ptr<ArrayBuffer>
40
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBound) {
41
- if (arg.isObject()) {
42
- auto obj = arg.getObject(runtime);
43
- if (obj.isArrayBuffer(runtime)) {
44
- return createArrayBufferFromJSI(runtime, obj.getArrayBuffer(runtime),
45
- 1);
46
- }
47
- if (obj.hasProperty(runtime, "buffer")) {
48
- auto bufferProp = obj.getProperty(runtime, "buffer");
49
- if (bufferProp.isObject() &&
50
- bufferProp.getObject(runtime).isArrayBuffer(runtime)) {
51
- auto buff = bufferProp.getObject(runtime);
52
- auto arrayBuffer = buff.getArrayBuffer(runtime);
53
- const size_t bufferSize = arrayBuffer.size(runtime);
54
-
55
- // byteOffset / byteLength are user-readable JS properties, not values
56
- // the engine guarantees (unlike Dawn's node binding, which reads them
57
- // off the engine's typed-array view). Read them as doubles so we can
58
- // reject negative, non-integral, NaN/Inf, or oversized values before
59
- // they wrap around when cast to size_t.
60
- const double byteOffsetValue =
61
- obj.getProperty(runtime, "byteOffset").asNumber();
62
- const double byteLengthValue =
63
- obj.getProperty(runtime, "byteLength").asNumber();
64
-
65
- auto isValidByteIndex = [](double value) {
66
- return std::isfinite(value) && value >= 0.0 &&
67
- value <= static_cast<double>(SIZE_MAX) &&
68
- std::floor(value) == value;
69
- };
70
- if (!isValidByteIndex(byteOffsetValue) ||
71
- !isValidByteIndex(byteLengthValue)) {
72
- throw std::runtime_error(
73
- "ArrayBuffer::fromJSI: invalid byteOffset/byteLength");
74
- }
75
-
76
- const size_t byteOffset = static_cast<size_t>(byteOffsetValue);
77
- const size_t byteLength = static_cast<size_t>(byteLengthValue);
78
-
79
- // Overflow-safe bounds check: byteOffset + byteLength <= bufferSize.
80
- if (byteOffset > bufferSize ||
81
- byteLength > bufferSize - byteOffset) {
82
- throw std::runtime_error(
83
- "ArrayBuffer::fromJSI: view bounds [byteOffset, byteOffset + "
84
- "byteLength) exceed the backing ArrayBuffer size");
85
- }
86
-
87
- // BYTES_PER_ELEMENT is absent on a DataView; default to 1. A spoofed
88
- // object could report 0 (or a negative/NaN value), so clamp to a
89
- // minimum of 1 to avoid a later division by zero in writeBuffer.
90
- size_t bytesPerElements = 1;
91
- if (obj.hasProperty(runtime, "BYTES_PER_ELEMENT")) {
92
- auto bpe = obj.getProperty(runtime, "BYTES_PER_ELEMENT");
93
- if (bpe.isNumber()) {
94
- const double value = bpe.asNumber();
95
- if (std::isfinite(value) && value >= 1.0) {
96
- bytesPerElements = static_cast<size_t>(value);
97
- }
98
- }
99
- }
100
-
101
- return std::make_shared<ArrayBuffer>(
102
- arrayBuffer.data(runtime) + byteOffset, byteLength,
103
- bytesPerElements);
104
- }
105
- }
106
- }
107
- throw std::runtime_error("ArrayBuffer::fromJSI: argument is not an object "
108
- "with an ArrayBuffer 'buffer' property");
109
- }
110
-
111
- static jsi::Value toJSI(jsi::Runtime &runtime,
112
- std::shared_ptr<ArrayBuffer> arg) {
113
- return jsi::ArrayBuffer(runtime, arg);
114
- }
115
- };
116
-
117
- } // namespace rnwgpu
@@ -1,50 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
-
5
- #include "jsi2/NativeObject.h"
6
-
7
- namespace rnwgpu {
8
-
9
- namespace jsi = facebook::jsi;
10
-
11
- class Canvas : public NativeObject<Canvas> {
12
- public:
13
- static constexpr const char *CLASS_NAME = "Canvas";
14
-
15
- Canvas(void *nativeSurface, int width, int height)
16
- : NativeObject(CLASS_NAME), _nativeSurface(nativeSurface), _width(width),
17
- _height(height), _clientWidth(width), _clientHeight(height) {}
18
-
19
- void *getNativeSurface() { return _nativeSurface; }
20
-
21
- int getWidth() { return _width; }
22
- int getHeight() { return _height; }
23
-
24
- void setWidth(int width) { _width = width; }
25
- void setHeight(int height) { _height = height; }
26
-
27
- int getClientWidth() { return _clientWidth; }
28
- int getClientHeight() { return _clientHeight; }
29
-
30
- void setClientWidth(int width) { _clientWidth = width; }
31
- void setClientHeight(int height) { _clientHeight = height; }
32
-
33
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
34
- installGetterSetter(runtime, prototype, "width", &Canvas::getWidth,
35
- &Canvas::setWidth);
36
- installGetterSetter(runtime, prototype, "height", &Canvas::getHeight,
37
- &Canvas::setHeight);
38
- installGetter(runtime, prototype, "clientWidth", &Canvas::getClientWidth);
39
- installGetter(runtime, prototype, "clientHeight", &Canvas::getClientHeight);
40
- }
41
-
42
- private:
43
- void *_nativeSurface;
44
- int _width;
45
- int _height;
46
- int _clientWidth;
47
- int _clientHeight;
48
- };
49
-
50
- } // namespace rnwgpu
@@ -1,18 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
-
5
- #include "webgpu/webgpu_cpp.h"
6
-
7
- namespace rnwgpu {
8
-
9
- class PlatformContext {
10
- public:
11
- PlatformContext() = default;
12
- virtual ~PlatformContext() = default;
13
-
14
- virtual wgpu::Surface makeSurface(wgpu::Instance instance, void *surface,
15
- int width, int height) = 0;
16
- };
17
-
18
- } // namespace rnwgpu