@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
@@ -7,10 +7,11 @@
7
7
 
8
8
  #include "CustomBlendModes.h"
9
9
  #include "JsiSkColor.h"
10
+ #include "JsiSkConverters.h"
10
11
  #include "JsiSkColorFilter.h"
11
- #include "JsiSkHostObjects.h"
12
12
  #include "JsiSkImageFilter.h"
13
13
  #include "JsiSkMaskFilter.h"
14
+ #include "JsiSkNativeObjects.h"
14
15
  #include "JsiSkPathEffect.h"
15
16
  #include "JsiSkShader.h"
16
17
 
@@ -24,184 +25,148 @@
24
25
  namespace RNSkia {
25
26
  namespace jsi = facebook::jsi;
26
27
 
27
- class JsiSkPaint : public JsiSkWrappingSharedPtrHostObject<SkPaint> {
28
+ class JsiSkPaint
29
+ : public JsiSkWrappingSharedPtrNativeObject<JsiSkPaint, SkPaint> {
28
30
  public:
29
- EXPORT_JSI_API_TYPENAME(JsiSkPaint, Paint)
31
+ static constexpr const char *CLASS_NAME = "Paint";
30
32
 
31
- JSI_HOST_FUNCTION(assign) {
32
- SkPaint *paint = JsiSkPaint::fromValue(runtime, arguments[0]).get();
33
- *getObject() = *paint;
34
- return jsi::Value::undefined();
35
- }
33
+ void assign(std::shared_ptr<SkPaint> paint) { *getObject() = *paint; }
36
34
 
37
- JSI_HOST_FUNCTION(copy) {
35
+ std::shared_ptr<JsiSkPaint> copy() {
38
36
  const auto *paint = getObject().get();
39
- auto hostObjectInstance =
40
- std::make_shared<JsiSkPaint>(getContext(), SkPaint(*paint));
41
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
42
- runtime, hostObjectInstance, getContext());
37
+ return std::make_shared<JsiSkPaint>(getContext(), SkPaint(*paint));
43
38
  }
44
39
 
45
- JSI_HOST_FUNCTION(reset) {
46
- getObject()->reset();
47
- return jsi::Value::undefined();
48
- }
40
+ void reset() { getObject()->reset(); }
49
41
 
50
- JSI_HOST_FUNCTION(getColor) {
51
- return JsiSkColor::toValue(runtime, getObject()->getColor());
52
- }
42
+ JsiColor getColor() { return {getObject()->getColor()}; }
53
43
 
54
- JSI_HOST_FUNCTION(getStrokeCap) {
44
+ double getStrokeCap() {
55
45
  return static_cast<double>(getObject()->getStrokeCap());
56
46
  }
57
47
 
58
- JSI_HOST_FUNCTION(getStrokeJoin) {
48
+ double getStrokeJoin() {
59
49
  return static_cast<double>(getObject()->getStrokeJoin());
60
50
  }
61
51
 
62
- JSI_HOST_FUNCTION(getStrokeMiter) {
52
+ double getStrokeMiter() {
63
53
  return static_cast<double>(getObject()->getStrokeMiter());
64
54
  }
65
55
 
66
- JSI_HOST_FUNCTION(getStrokeWidth) {
56
+ double getStrokeWidth() {
67
57
  return static_cast<double>(getObject()->getStrokeWidth());
68
58
  }
69
59
 
70
- JSI_HOST_FUNCTION(getAlphaf) {
71
- float alphaf = getObject()->getAlphaf();
72
- return jsi::Value(SkScalarToDouble(alphaf));
73
- }
60
+ double getAlphaf() { return SkScalarToDouble(getObject()->getAlphaf()); }
74
61
 
75
- JSI_HOST_FUNCTION(setColor) {
76
- SkColor color = JsiSkColor::fromValue(runtime, arguments[0]);
77
- getObject()->setColor(color);
78
- return jsi::Value::undefined();
79
- }
62
+ void setColor(JsiColor color) { getObject()->setColor(color); }
80
63
 
81
- JSI_HOST_FUNCTION(setAlphaf) {
82
- SkScalar alpha = arguments[0].asNumber();
83
- getObject()->setAlphaf(alpha);
84
- return jsi::Value::undefined();
85
- }
64
+ void setAlphaf(double alpha) { getObject()->setAlphaf(alpha); }
86
65
 
87
- JSI_HOST_FUNCTION(setAntiAlias) {
88
- bool antiAliased = arguments[0].getBool();
66
+ void setAntiAlias(bool antiAliased) {
89
67
  getObject()->setAntiAlias(antiAliased);
90
- return jsi::Value::undefined();
91
68
  }
92
69
 
93
- JSI_HOST_FUNCTION(setDither) {
94
- bool dithered = arguments[0].getBool();
95
- getObject()->setDither(dithered);
96
- return jsi::Value::undefined();
97
- }
70
+ void setDither(bool dithered) { getObject()->setDither(dithered); }
98
71
 
99
- JSI_HOST_FUNCTION(setStrokeWidth) {
100
- SkScalar width = arguments[0].asNumber();
101
- getObject()->setStrokeWidth(width);
102
- return jsi::Value::undefined();
103
- }
72
+ void setStrokeWidth(double width) { getObject()->setStrokeWidth(width); }
104
73
 
105
- JSI_HOST_FUNCTION(setStyle) {
106
- auto style = arguments[0].asNumber();
74
+ void setStyle(double style) {
107
75
  getObject()->setStyle(static_cast<SkPaint::Style>(style));
108
- return jsi::Value::undefined();
109
76
  }
110
77
 
111
- JSI_HOST_FUNCTION(setStrokeCap) {
112
- auto cap = arguments[0].asNumber();
78
+ void setStrokeCap(double cap) {
113
79
  getObject()->setStrokeCap(static_cast<SkPaint::Cap>(cap));
114
- return jsi::Value::undefined();
115
80
  }
116
81
 
117
- JSI_HOST_FUNCTION(setStrokeJoin) {
118
- int join = arguments[0].asNumber();
82
+ void setStrokeJoin(int join) {
119
83
  getObject()->setStrokeJoin(static_cast<SkPaint::Join>(join));
120
- return jsi::Value::undefined();
121
84
  }
122
85
 
123
- JSI_HOST_FUNCTION(setStrokeMiter) {
124
- int limit = arguments[0].asNumber();
125
- getObject()->setStrokeMiter(limit);
126
- return jsi::Value::undefined();
127
- }
86
+ void setStrokeMiter(int limit) { getObject()->setStrokeMiter(limit); }
128
87
 
129
- JSI_HOST_FUNCTION(setBlendMode) {
130
- int blendModeValue = static_cast<int>(arguments[0].asNumber());
88
+ void setBlendMode(int blendModeValue) {
131
89
  applyBlendMode(*getObject(), blendModeValue);
132
- return jsi::Value::undefined();
133
- }
134
-
135
- JSI_HOST_FUNCTION(setMaskFilter) {
136
- auto maskFilter = arguments[0].isNull() || arguments[0].isUndefined()
137
- ? nullptr
138
- : JsiSkMaskFilter::fromValue(runtime, arguments[0]);
139
- getObject()->setMaskFilter(std::move(maskFilter));
140
- return jsi::Value::undefined();
141
- }
142
-
143
- JSI_HOST_FUNCTION(setImageFilter) {
144
- auto imageFilter = arguments[0].isNull() || arguments[0].isUndefined()
145
- ? nullptr
146
- : JsiSkImageFilter::fromValue(runtime, arguments[0]);
147
- getObject()->setImageFilter(std::move(imageFilter));
148
- return jsi::Value::undefined();
149
- }
150
-
151
- JSI_HOST_FUNCTION(setColorFilter) {
152
- auto colorFilter = arguments[0].isNull() || arguments[0].isUndefined()
153
- ? nullptr
154
- : JsiSkColorFilter::fromValue(runtime, arguments[0]);
155
- getObject()->setColorFilter(std::move(colorFilter));
156
- return jsi::Value::undefined();
157
- }
158
-
159
- JSI_HOST_FUNCTION(setShader) {
160
- auto shader = arguments[0].isNull() || arguments[0].isUndefined()
161
- ? nullptr
162
- : JsiSkShader::fromValue(runtime, arguments[0]);
163
- getObject()->setShader(std::move(shader));
164
- return jsi::Value::undefined();
165
- }
166
-
167
- JSI_HOST_FUNCTION(setPathEffect) {
168
- auto pathEffect = arguments[0].isNull() || arguments[0].isUndefined()
169
- ? nullptr
170
- : JsiSkPathEffect::fromValue(runtime, arguments[0]);
171
- getObject()->setPathEffect(std::move(pathEffect));
172
- return jsi::Value::undefined();
173
- }
174
-
175
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkPaint, assign),
176
- JSI_EXPORT_FUNC(JsiSkPaint, copy),
177
- JSI_EXPORT_FUNC(JsiSkPaint, reset),
178
- JSI_EXPORT_FUNC(JsiSkPaint, getAlphaf),
179
- JSI_EXPORT_FUNC(JsiSkPaint, getColor),
180
- JSI_EXPORT_FUNC(JsiSkPaint, getStrokeCap),
181
- JSI_EXPORT_FUNC(JsiSkPaint, getStrokeJoin),
182
- JSI_EXPORT_FUNC(JsiSkPaint, getStrokeMiter),
183
- JSI_EXPORT_FUNC(JsiSkPaint, getStrokeWidth),
184
- JSI_EXPORT_FUNC(JsiSkPaint, setPathEffect),
185
- JSI_EXPORT_FUNC(JsiSkPaint, setShader),
186
- JSI_EXPORT_FUNC(JsiSkPaint, setColorFilter),
187
- JSI_EXPORT_FUNC(JsiSkPaint, setImageFilter),
188
- JSI_EXPORT_FUNC(JsiSkPaint, setMaskFilter),
189
- JSI_EXPORT_FUNC(JsiSkPaint, setBlendMode),
190
- JSI_EXPORT_FUNC(JsiSkPaint, setStrokeMiter),
191
- JSI_EXPORT_FUNC(JsiSkPaint, setStrokeJoin),
192
- JSI_EXPORT_FUNC(JsiSkPaint, setStrokeCap),
193
- JSI_EXPORT_FUNC(JsiSkPaint, setAntiAlias),
194
- JSI_EXPORT_FUNC(JsiSkPaint, setDither),
195
- JSI_EXPORT_FUNC(JsiSkPaint, setStrokeWidth),
196
- JSI_EXPORT_FUNC(JsiSkPaint, setStyle),
197
- JSI_EXPORT_FUNC(JsiSkPaint, setColor),
198
- JSI_EXPORT_FUNC(JsiSkPaint, setAlphaf),
199
- JSI_EXPORT_FUNC(JsiSkPaint, dispose))
90
+ }
91
+
92
+ void setMaskFilter(JsiOptional<sk_sp<SkMaskFilter>> maskFilter) {
93
+ getObject()->setMaskFilter(
94
+ maskFilter.has_value() ? std::move(*maskFilter) : nullptr);
95
+ }
96
+
97
+ void setImageFilter(JsiOptional<sk_sp<SkImageFilter>> imageFilter) {
98
+ getObject()->setImageFilter(
99
+ imageFilter.has_value() ? std::move(*imageFilter) : nullptr);
100
+ }
101
+
102
+ void setColorFilter(JsiOptional<sk_sp<SkColorFilter>> colorFilter) {
103
+ getObject()->setColorFilter(
104
+ colorFilter.has_value() ? std::move(*colorFilter) : nullptr);
105
+ }
106
+
107
+ void setShader(JsiOptional<sk_sp<SkShader>> shader) {
108
+ getObject()->setShader(shader.has_value() ? std::move(*shader) : nullptr);
109
+ }
110
+
111
+ void setPathEffect(JsiOptional<sk_sp<SkPathEffect>> pathEffect) {
112
+ getObject()->setPathEffect(
113
+ pathEffect.has_value() ? std::move(*pathEffect) : nullptr);
114
+ }
115
+
116
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
117
+ installCommon(runtime, prototype);
118
+ installMethod(runtime, prototype, "assign", &JsiSkPaint::assign);
119
+ installMethod(runtime, prototype, "copy", &JsiSkPaint::copy);
120
+ installMethod(runtime, prototype, "reset", &JsiSkPaint::reset);
121
+ installMethod(runtime, prototype, "getAlphaf", &JsiSkPaint::getAlphaf);
122
+ installMethod(runtime, prototype, "getColor", &JsiSkPaint::getColor);
123
+ installMethod(runtime, prototype, "getStrokeCap",
124
+ &JsiSkPaint::getStrokeCap);
125
+ installMethod(runtime, prototype, "getStrokeJoin",
126
+ &JsiSkPaint::getStrokeJoin);
127
+ installMethod(runtime, prototype, "getStrokeMiter",
128
+ &JsiSkPaint::getStrokeMiter);
129
+ installMethod(runtime, prototype, "getStrokeWidth",
130
+ &JsiSkPaint::getStrokeWidth);
131
+ installMethod(runtime, prototype, "setPathEffect",
132
+ &JsiSkPaint::setPathEffect);
133
+ installMethod(runtime, prototype, "setShader", &JsiSkPaint::setShader);
134
+ installMethod(runtime, prototype, "setColorFilter",
135
+ &JsiSkPaint::setColorFilter);
136
+ installMethod(runtime, prototype, "setImageFilter",
137
+ &JsiSkPaint::setImageFilter);
138
+ installMethod(runtime, prototype, "setMaskFilter",
139
+ &JsiSkPaint::setMaskFilter);
140
+ installMethod(runtime, prototype, "setBlendMode",
141
+ &JsiSkPaint::setBlendMode);
142
+ installMethod(runtime, prototype, "setStrokeMiter",
143
+ &JsiSkPaint::setStrokeMiter);
144
+ installMethod(runtime, prototype, "setStrokeJoin",
145
+ &JsiSkPaint::setStrokeJoin);
146
+ installMethod(runtime, prototype, "setStrokeCap",
147
+ &JsiSkPaint::setStrokeCap);
148
+ installMethod(runtime, prototype, "setAntiAlias",
149
+ &JsiSkPaint::setAntiAlias);
150
+ installMethod(runtime, prototype, "setDither", &JsiSkPaint::setDither);
151
+ installMethod(runtime, prototype, "setStrokeWidth",
152
+ &JsiSkPaint::setStrokeWidth);
153
+ installMethod(runtime, prototype, "setStyle", &JsiSkPaint::setStyle);
154
+ installMethod(runtime, prototype, "setColor", &JsiSkPaint::setColor);
155
+ installMethod(runtime, prototype, "setAlphaf", &JsiSkPaint::setAlphaf);
156
+ }
200
157
 
201
158
  JsiSkPaint(std::shared_ptr<RNSkPlatformContext> context, SkPaint paint)
202
- : JsiSkWrappingSharedPtrHostObject<SkPaint>(
159
+ : JsiSkWrappingSharedPtrNativeObject<JsiSkPaint, SkPaint>(
203
160
  std::move(context), std::make_shared<SkPaint>(std::move(paint))) {}
204
161
 
162
+ /**
163
+ Returns the underlying object from a host object of this type
164
+ */
165
+ static std::shared_ptr<SkPaint> fromValue(jsi::Runtime &runtime,
166
+ const jsi::Value &obj) {
167
+ return objectFromValue(runtime, obj);
168
+ }
169
+
205
170
  /**
206
171
  Copy from another paint
207
172
  */
@@ -209,12 +174,10 @@ public:
209
174
  setObject(std::make_shared<SkPaint>(std::move(paint)));
210
175
  }
211
176
 
212
- size_t getMemoryPressure() const override {
177
+ size_t getMemoryPressure() override {
213
178
  return std::max(sizeof(SkPaint), kMinMemoryPressure);
214
179
  }
215
180
 
216
- std::string getObjectType() const override { return "JsiSkPaint"; }
217
-
218
181
  /**
219
182
  * Creates the function for construction a new instance of the SkPaint
220
183
  * wrapper
@@ -228,9 +191,8 @@ public:
228
191
  auto paint = SkPaint();
229
192
  paint.setAntiAlias(true);
230
193
  // Return the newly constructed object
231
- auto hostObjectInstance = std::make_shared<JsiSkPaint>(context, paint);
232
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
233
- runtime, hostObjectInstance, context);
194
+ return makeJsiObject(runtime,
195
+ std::make_shared<JsiSkPaint>(context, paint));
234
196
  };
235
197
  }
236
198
  };
@@ -3,13 +3,14 @@
3
3
  #include <memory>
4
4
  #include <string>
5
5
  #include <utility>
6
+ #include <variant>
6
7
  #include <vector>
7
8
 
8
9
  #include <jsi/jsi.h>
9
10
 
10
11
  #include "JsiSkCanvas.h"
11
12
  #include "JsiSkFont.h"
12
- #include "JsiSkHostObjects.h"
13
+ #include "JsiSkNativeObjects.h"
13
14
  #include "JsiSkPath.h"
14
15
  #include "JsiSkRect.h"
15
16
 
@@ -31,65 +32,51 @@ namespace para = skia::textlayout;
31
32
  * Implementation of the Paragraph object in JSI
32
33
  */
33
34
  class JsiSkParagraph
34
- : public JsiSkWrappingSharedPtrHostObject<para::Paragraph> {
35
+ : public JsiSkWrappingSharedPtrNativeObject<JsiSkParagraph,
36
+ para::Paragraph> {
35
37
  public:
36
- EXPORT_JSI_API_TYPENAME(JsiSkParagraph, Paragraph)
38
+ static constexpr const char *CLASS_NAME = "Paragraph";
37
39
 
38
- JSI_HOST_FUNCTION(layout) {
39
- auto width = getArgumentAsNumber(runtime, arguments, count, 0);
40
- getObject()->layout(width);
41
- return jsi::Value::undefined();
42
- }
40
+ void layout(double width) { getObject()->layout(width); }
43
41
 
44
- JSI_HOST_FUNCTION(paint) {
45
- auto jsiCanvas =
46
- getArgumentAsHostObject<JsiSkCanvas>(runtime, arguments, count, 0);
47
- auto x = getArgumentAsNumber(runtime, arguments, count, 1);
48
- auto y = getArgumentAsNumber(runtime, arguments, count, 2);
42
+ void paint(std::shared_ptr<JsiSkCanvas> jsiCanvas, double x, double y) {
49
43
  getObject()->paint(jsiCanvas->getCanvas(), x, y);
50
- return jsi::Value::undefined();
51
44
  }
52
45
 
53
- JSI_HOST_FUNCTION(getHeight) {
54
- return static_cast<double>(getObject()->getHeight());
55
- }
46
+ double getHeight() { return static_cast<double>(getObject()->getHeight()); }
56
47
 
57
- JSI_HOST_FUNCTION(getMaxWidth) {
48
+ double getMaxWidth() {
58
49
  return static_cast<double>(getObject()->getMaxWidth());
59
50
  }
60
51
 
61
- JSI_HOST_FUNCTION(getMaxIntrinsicWidth) {
52
+ double getMaxIntrinsicWidth() {
62
53
  return static_cast<double>(getObject()->getMaxIntrinsicWidth());
63
54
  }
64
55
 
65
- JSI_HOST_FUNCTION(getMinIntrinsicWidth) {
56
+ double getMinIntrinsicWidth() {
66
57
  return static_cast<double>(getObject()->getMinIntrinsicWidth());
67
58
  }
68
59
 
69
- JSI_HOST_FUNCTION(getLongestLine) {
60
+ double getLongestLine() {
70
61
  return static_cast<double>(getObject()->getLongestLine());
71
62
  }
72
63
 
73
- JSI_HOST_FUNCTION(getGlyphPositionAtCoordinate) {
74
- auto dx = getArgumentAsNumber(runtime, arguments, count, 0);
75
- auto dy = getArgumentAsNumber(runtime, arguments, count, 1);
64
+ int getGlyphPositionAtCoordinate(double dx, double dy) {
76
65
  auto result = getObject()->getGlyphPositionAtCoordinate(dx, dy);
77
66
  return result.position;
78
67
  }
79
68
 
80
- JSI_HOST_FUNCTION(getRectsForRange) {
81
- auto start = getArgumentAsNumber(runtime, arguments, count, 0);
82
- auto end = getArgumentAsNumber(runtime, arguments, count, 1);
69
+ std::vector<std::shared_ptr<JsiSkRect>> getRectsForRange(double start,
70
+ double end) {
83
71
  auto result =
84
72
  getObject()->getRectsForRange(start, end, para::RectHeightStyle::kTight,
85
73
  para::RectWidthStyle::kTight);
86
- auto returnValue = jsi::Array(runtime, result.size());
87
- for (size_t i = 0; i < result.size(); ++i) {
88
- returnValue.setValueAtIndex(
89
- runtime, i,
90
- JsiSkRect::toValue(runtime, getContext(), result[i].rect));
74
+ std::vector<std::shared_ptr<JsiSkRect>> rects;
75
+ rects.reserve(result.size());
76
+ for (const auto &box : result) {
77
+ rects.push_back(std::make_shared<JsiSkRect>(getContext(), box.rect));
91
78
  }
92
- return returnValue;
79
+ return rects;
93
80
  }
94
81
 
95
82
  JSI_HOST_FUNCTION(getLineMetrics) {
@@ -142,14 +129,13 @@ public:
142
129
  return returnValue;
143
130
  }
144
131
 
145
- JSI_HOST_FUNCTION(getPath) {
146
- auto lineNumber =
147
- static_cast<int>(getArgumentAsNumber(runtime, arguments, count, 0));
132
+ std::variant<std::nullptr_t, std::shared_ptr<JsiSkPath>>
133
+ getPath(int lineNumber) {
148
134
  auto paragraph = getObject();
149
135
  // Paragraph::getPath does not bounds-check the line number.
150
136
  if (lineNumber < 0 ||
151
137
  static_cast<size_t>(lineNumber) >= paragraph->lineNumber()) {
152
- return jsi::Value::null();
138
+ return nullptr;
153
139
  }
154
140
  // Paragraph::getPath resets its path builder after every visual run, so
155
141
  // for lines shaped as multiple runs (e.g. through font fallback) it only
@@ -182,10 +168,7 @@ public:
182
168
  &rec);
183
169
  });
184
170
  SkPath path = builder.detach();
185
- auto hostObjectInstance =
186
- std::make_shared<JsiSkPath>(getContext(), std::move(path));
187
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
188
- runtime, hostObjectInstance, getContext());
171
+ return std::make_shared<JsiSkPath>(getContext(), std::move(path));
189
172
  }
190
173
 
191
174
  JSI_HOST_FUNCTION(extendedVisit) {
@@ -203,10 +186,9 @@ public:
203
186
  }
204
187
  auto value = jsi::Object(runtime);
205
188
 
206
- auto fontInstance = std::make_shared<JsiSkFont>(context, info->font);
207
189
  value.setProperty(runtime, "font",
208
- JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
209
- runtime, fontInstance, context));
190
+ makeJsiObject(runtime, std::make_shared<JsiSkFont>(
191
+ context, info->font)));
210
192
 
211
193
  auto origin = jsi::Object(runtime);
212
194
  origin.setProperty(runtime, "x",
@@ -269,29 +251,37 @@ public:
269
251
  return returnValue;
270
252
  }
271
253
 
272
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkParagraph, layout),
273
- JSI_EXPORT_FUNC(JsiSkParagraph, paint),
274
- JSI_EXPORT_FUNC(JsiSkParagraph, getMaxWidth),
275
- JSI_EXPORT_FUNC(JsiSkParagraph, getMinIntrinsicWidth),
276
- JSI_EXPORT_FUNC(JsiSkParagraph, getMaxIntrinsicWidth),
277
- JSI_EXPORT_FUNC(JsiSkParagraph, getLongestLine),
278
- JSI_EXPORT_FUNC(JsiSkParagraph, getHeight),
279
- JSI_EXPORT_FUNC(JsiSkParagraph, getRectsForPlaceholders),
280
- JSI_EXPORT_FUNC(JsiSkParagraph,
281
- getGlyphPositionAtCoordinate),
282
- JSI_EXPORT_FUNC(JsiSkParagraph, getRectsForRange),
283
- JSI_EXPORT_FUNC(JsiSkParagraph, getLineMetrics),
284
- JSI_EXPORT_FUNC(JsiSkParagraph, getPath),
285
- JSI_EXPORT_FUNC(JsiSkParagraph, extendedVisit),
286
- JSI_EXPORT_FUNC(JsiSkParagraph, dispose))
287
-
288
- size_t getMemoryPressure() const override { return 1024 * 1024; }
289
-
290
- std::string getObjectType() const override { return "JsiSkParagraph"; }
254
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
255
+ installCommon(runtime, prototype);
256
+ installMethod(runtime, prototype, "layout", &JsiSkParagraph::layout);
257
+ installMethod(runtime, prototype, "paint", &JsiSkParagraph::paint);
258
+ installMethod(runtime, prototype, "getMaxWidth",
259
+ &JsiSkParagraph::getMaxWidth);
260
+ installMethod(runtime, prototype, "getMinIntrinsicWidth",
261
+ &JsiSkParagraph::getMinIntrinsicWidth);
262
+ installMethod(runtime, prototype, "getMaxIntrinsicWidth",
263
+ &JsiSkParagraph::getMaxIntrinsicWidth);
264
+ installMethod(runtime, prototype, "getLongestLine",
265
+ &JsiSkParagraph::getLongestLine);
266
+ installMethod(runtime, prototype, "getHeight", &JsiSkParagraph::getHeight);
267
+ installHostMethod(runtime, prototype, "getRectsForPlaceholders",
268
+ &JsiSkParagraph::getRectsForPlaceholders);
269
+ installMethod(runtime, prototype, "getGlyphPositionAtCoordinate",
270
+ &JsiSkParagraph::getGlyphPositionAtCoordinate);
271
+ installMethod(runtime, prototype, "getRectsForRange",
272
+ &JsiSkParagraph::getRectsForRange);
273
+ installHostMethod(runtime, prototype, "getLineMetrics",
274
+ &JsiSkParagraph::getLineMetrics);
275
+ installMethod(runtime, prototype, "getPath", &JsiSkParagraph::getPath);
276
+ installHostMethod(runtime, prototype, "extendedVisit",
277
+ &JsiSkParagraph::extendedVisit);
278
+ }
279
+
280
+ size_t getMemoryPressure() override { return 1024 * 1024; }
291
281
 
292
282
  explicit JsiSkParagraph(std::shared_ptr<RNSkPlatformContext> context,
293
283
  para::ParagraphBuilder *paragraphBuilder)
294
- : JsiSkWrappingSharedPtrHostObject<para::Paragraph>(
284
+ : JsiSkWrappingSharedPtrNativeObject<JsiSkParagraph, para::Paragraph>(
295
285
  std::move(context), paragraphBuilder->Build()) {}
296
286
  };
297
287