@shopify/react-native-skia 2.10.0 → 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 (329) 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 +60 -92
  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/JSIConverter.h +0 -31
  56. package/cpp/jsi/NativeObject.h +11 -6
  57. package/cpp/rnskia/RNDawnContext.h +18 -2
  58. package/cpp/rnskia/RNDawnInterop.cpp +19 -0
  59. package/cpp/rnskia/RNDawnUtils.h +18 -1
  60. package/cpp/rnskia/RNSkManager.cpp +5 -162
  61. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +2 -0
  62. package/lib/commonjs/mock/index.js +0 -1
  63. package/lib/commonjs/mock/index.js.map +1 -1
  64. package/lib/commonjs/skia/types/Image/ImageFactory.d.ts +15 -6
  65. package/lib/commonjs/skia/types/Image/ImageFactory.js.map +1 -1
  66. package/lib/commonjs/skia/types/Skia.d.ts +5 -15
  67. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  68. package/lib/commonjs/skia/types/index.d.ts +0 -1
  69. package/lib/commonjs/skia/types/index.js +0 -11
  70. package/lib/commonjs/skia/types/index.js.map +1 -1
  71. package/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  72. package/lib/commonjs/skia/web/JsiSkImageFactory.js +2 -2
  73. package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
  74. package/lib/commonjs/skia/web/JsiSkia.js +1 -4
  75. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  76. package/lib/commonjs/views/index.d.ts +0 -1
  77. package/lib/commonjs/views/index.js +0 -11
  78. package/lib/commonjs/views/index.js.map +1 -1
  79. package/lib/module/mock/index.js +0 -1
  80. package/lib/module/mock/index.js.map +1 -1
  81. package/lib/module/skia/types/Image/ImageFactory.d.ts +15 -6
  82. package/lib/module/skia/types/Image/ImageFactory.js.map +1 -1
  83. package/lib/module/skia/types/Skia.d.ts +5 -15
  84. package/lib/module/skia/types/Skia.js.map +1 -1
  85. package/lib/module/skia/types/index.d.ts +0 -1
  86. package/lib/module/skia/types/index.js +0 -1
  87. package/lib/module/skia/types/index.js.map +1 -1
  88. package/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  89. package/lib/module/skia/web/JsiSkImageFactory.js +2 -2
  90. package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
  91. package/lib/module/skia/web/JsiSkia.js +1 -4
  92. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  93. package/lib/module/views/index.d.ts +0 -1
  94. package/lib/module/views/index.js +0 -1
  95. package/lib/module/views/index.js.map +1 -1
  96. package/lib/typescript/lib/commonjs/mock/index.d.ts +0 -1
  97. package/lib/typescript/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  98. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -2
  99. package/lib/typescript/lib/module/mock/index.d.ts +0 -2
  100. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -2
  101. package/lib/typescript/lib/module/skia/types/index.d.ts +0 -1
  102. package/lib/typescript/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  103. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -2
  104. package/lib/typescript/lib/module/views/index.d.ts +0 -1
  105. package/lib/typescript/src/skia/types/Image/ImageFactory.d.ts +15 -6
  106. package/lib/typescript/src/skia/types/Skia.d.ts +5 -15
  107. package/lib/typescript/src/skia/types/index.d.ts +0 -1
  108. package/lib/typescript/src/skia/web/JsiSkImageFactory.d.ts +2 -2
  109. package/lib/typescript/src/views/index.d.ts +0 -1
  110. package/package.json +3 -4
  111. package/react-native-skia.podspec +38 -4
  112. package/src/mock/index.ts +0 -1
  113. package/src/skia/types/Image/ImageFactory.ts +15 -6
  114. package/src/skia/types/Skia.ts +5 -15
  115. package/src/skia/types/index.ts +0 -1
  116. package/src/skia/web/JsiSkImageFactory.ts +3 -3
  117. package/src/skia/web/JsiSkia.ts +2 -5
  118. package/src/views/index.ts +0 -1
  119. package/android/cpp/jni/JniWebGPUView.cpp +0 -112
  120. package/android/cpp/rnskia-android/SkiaPlatformContext.h +0 -26
  121. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUSurfaceView.java +0 -43
  122. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUTextureView.java +0 -50
  123. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUView.java +0 -98
  124. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewAPI.java +0 -19
  125. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewManager.java +0 -58
  126. package/apple/RNWebGPUAppleNativeBuffer.mm +0 -33
  127. package/apple/SkiaPlatformContext.h +0 -20
  128. package/apple/SkiaPlatformContext.mm +0 -21
  129. package/apple/SkiaWebGPUView.mm +0 -81
  130. package/apple/WebGPUMetalView.mm +0 -136
  131. package/cpp/rnwgpu/ArrayBuffer.h +0 -116
  132. package/cpp/rnwgpu/Canvas.h +0 -52
  133. package/cpp/rnwgpu/PlatformContext.h +0 -18
  134. package/cpp/rnwgpu/SurfaceRegistry.h +0 -605
  135. package/cpp/rnwgpu/api/AppleNativeBuffer.h +0 -22
  136. package/cpp/rnwgpu/api/Convertors.h +0 -783
  137. package/cpp/rnwgpu/api/External.h +0 -12
  138. package/cpp/rnwgpu/api/GPU.cpp +0 -162
  139. package/cpp/rnwgpu/api/GPU.h +0 -60
  140. package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -239
  141. package/cpp/rnwgpu/api/GPUAdapter.h +0 -60
  142. package/cpp/rnwgpu/api/GPUAdapterInfo.h +0 -57
  143. package/cpp/rnwgpu/api/GPUBindGroup.cpp +0 -3
  144. package/cpp/rnwgpu/api/GPUBindGroup.h +0 -51
  145. package/cpp/rnwgpu/api/GPUBindGroupLayout.h +0 -52
  146. package/cpp/rnwgpu/api/GPUBuffer.cpp +0 -107
  147. package/cpp/rnwgpu/api/GPUBuffer.h +0 -88
  148. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -75
  149. package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -70
  150. package/cpp/rnwgpu/api/GPUCommandBuffer.h +0 -45
  151. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +0 -179
  152. package/cpp/rnwgpu/api/GPUCommandEncoder.h +0 -111
  153. package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -79
  154. package/cpp/rnwgpu/api/GPUCompilationMessage.h +0 -36
  155. package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +0 -60
  156. package/cpp/rnwgpu/api/GPUComputePassEncoder.h +0 -85
  157. package/cpp/rnwgpu/api/GPUComputePipeline.cpp +0 -12
  158. package/cpp/rnwgpu/api/GPUComputePipeline.h +0 -60
  159. package/cpp/rnwgpu/api/GPUDevice.cpp +0 -613
  160. package/cpp/rnwgpu/api/GPUDevice.h +0 -258
  161. package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
  162. package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
  163. package/cpp/rnwgpu/api/GPUError.h +0 -35
  164. package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
  165. package/cpp/rnwgpu/api/GPUExternalTexture.cpp +0 -139
  166. package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -95
  167. package/cpp/rnwgpu/api/GPUFeatures.h +0 -203
  168. package/cpp/rnwgpu/api/GPUInternalError.h +0 -31
  169. package/cpp/rnwgpu/api/GPUOrigin2D.h +0 -55
  170. package/cpp/rnwgpu/api/GPUOrigin3D.h +0 -62
  171. package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +0 -33
  172. package/cpp/rnwgpu/api/GPUPipelineLayout.h +0 -45
  173. package/cpp/rnwgpu/api/GPUQuerySet.cpp +0 -11
  174. package/cpp/rnwgpu/api/GPUQuerySet.h +0 -73
  175. package/cpp/rnwgpu/api/GPUQueue.cpp +0 -179
  176. package/cpp/rnwgpu/api/GPUQueue.h +0 -84
  177. package/cpp/rnwgpu/api/GPURenderBundle.h +0 -44
  178. package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +0 -131
  179. package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +0 -110
  180. package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +0 -165
  181. package/cpp/rnwgpu/api/GPURenderPassEncoder.h +0 -130
  182. package/cpp/rnwgpu/api/GPURenderPipeline.cpp +0 -13
  183. package/cpp/rnwgpu/api/GPURenderPipeline.h +0 -61
  184. package/cpp/rnwgpu/api/GPUSampler.h +0 -44
  185. package/cpp/rnwgpu/api/GPUShaderModule.cpp +0 -56
  186. package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
  187. package/cpp/rnwgpu/api/GPUSharedFence.cpp +0 -80
  188. package/cpp/rnwgpu/api/GPUSharedFence.h +0 -53
  189. package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +0 -135
  190. package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +0 -75
  191. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +0 -129
  192. package/cpp/rnwgpu/api/GPUSupportedLimits.h +0 -131
  193. package/cpp/rnwgpu/api/GPUTexture.cpp +0 -47
  194. package/cpp/rnwgpu/api/GPUTexture.h +0 -162
  195. package/cpp/rnwgpu/api/GPUTextureView.h +0 -44
  196. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +0 -60
  197. package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
  198. package/cpp/rnwgpu/api/ImageBitmap.h +0 -62
  199. package/cpp/rnwgpu/api/NativeBufferUtils.h +0 -87
  200. package/cpp/rnwgpu/api/RNWebGPU.h +0 -82
  201. package/cpp/rnwgpu/api/WebGPUConstants.h +0 -36
  202. package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -64
  203. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -78
  204. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -56
  205. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -97
  206. package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -57
  207. package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -52
  208. package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -56
  209. package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -56
  210. package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -59
  211. package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +0 -39
  212. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +0 -76
  213. package/cpp/rnwgpu/api/descriptors/GPUColor.h +0 -66
  214. package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -58
  215. package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
  216. package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -45
  217. package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -45
  218. package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -56
  219. package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -58
  220. package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -67
  221. package/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h +0 -56
  222. package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -103
  223. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -109
  224. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -38
  225. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -90
  226. package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -73
  227. package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -62
  228. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
  229. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -65
  230. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -81
  231. package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -54
  232. package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
  233. package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -54
  234. package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -57
  235. package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -69
  236. package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -61
  237. package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -55
  238. package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -43
  239. package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -45
  240. package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -80
  241. package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -81
  242. package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -101
  243. package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -92
  244. package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -58
  245. package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -103
  246. package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -51
  247. package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -45
  248. package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -110
  249. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -60
  250. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -62
  251. package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
  252. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h +0 -58
  253. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h +0 -51
  254. package/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h +0 -73
  255. package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -64
  256. package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -59
  257. package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -59
  258. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -91
  259. package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
  260. package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -91
  261. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -64
  262. package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -53
  263. package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -62
  264. package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -73
  265. package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1969
  266. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -213
  267. package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -58
  268. package/cpp/rnwgpu/async/RuntimeContext.cpp +0 -199
  269. package/cpp/rnwgpu/async/RuntimeContext.h +0 -134
  270. package/lib/commonjs/skia/types/WebGPU.d.ts +0 -184
  271. package/lib/commonjs/skia/types/WebGPU.js +0 -105
  272. package/lib/commonjs/skia/types/WebGPU.js.map +0 -1
  273. package/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -8
  274. package/lib/commonjs/specs/WebGPUViewNativeComponent.js +0 -10
  275. package/lib/commonjs/specs/WebGPUViewNativeComponent.js.map +0 -1
  276. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  277. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js +0 -103
  278. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  279. package/lib/commonjs/specs/utils.d.ts +0 -1
  280. package/lib/commonjs/specs/utils.js +0 -11
  281. package/lib/commonjs/specs/utils.js.map +0 -1
  282. package/lib/commonjs/views/WebGPUCanvas.d.ts +0 -33
  283. package/lib/commonjs/views/WebGPUCanvas.js +0 -79
  284. package/lib/commonjs/views/WebGPUCanvas.js.map +0 -1
  285. package/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -23
  286. package/lib/commonjs/views/WebGPUCanvas.web.js +0 -20
  287. package/lib/commonjs/views/WebGPUCanvas.web.js.map +0 -1
  288. package/lib/module/skia/types/WebGPU.d.ts +0 -184
  289. package/lib/module/skia/types/WebGPU.js +0 -99
  290. package/lib/module/skia/types/WebGPU.js.map +0 -1
  291. package/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -8
  292. package/lib/module/specs/WebGPUViewNativeComponent.js +0 -4
  293. package/lib/module/specs/WebGPUViewNativeComponent.js.map +0 -1
  294. package/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  295. package/lib/module/specs/WebGPUViewNativeComponent.web.js +0 -96
  296. package/lib/module/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  297. package/lib/module/specs/utils.d.ts +0 -1
  298. package/lib/module/specs/utils.js +0 -5
  299. package/lib/module/specs/utils.js.map +0 -1
  300. package/lib/module/views/WebGPUCanvas.d.ts +0 -33
  301. package/lib/module/views/WebGPUCanvas.js +0 -70
  302. package/lib/module/views/WebGPUCanvas.js.map +0 -1
  303. package/lib/module/views/WebGPUCanvas.web.d.ts +0 -23
  304. package/lib/module/views/WebGPUCanvas.web.js +0 -12
  305. package/lib/module/views/WebGPUCanvas.web.js.map +0 -1
  306. package/lib/typescript/lib/commonjs/skia/types/WebGPU.d.ts +0 -2
  307. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -4
  308. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -3
  309. package/lib/typescript/lib/commonjs/specs/utils.d.ts +0 -2
  310. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.d.ts +0 -6
  311. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -6
  312. package/lib/typescript/lib/module/skia/types/WebGPU.d.ts +0 -31
  313. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -2
  314. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -2
  315. package/lib/typescript/lib/module/specs/utils.d.ts +0 -1
  316. package/lib/typescript/lib/module/views/WebGPUCanvas.d.ts +0 -7
  317. package/lib/typescript/lib/module/views/WebGPUCanvas.web.d.ts +0 -8
  318. package/lib/typescript/src/skia/types/WebGPU.d.ts +0 -184
  319. package/lib/typescript/src/specs/WebGPUViewNativeComponent.d.ts +0 -8
  320. package/lib/typescript/src/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  321. package/lib/typescript/src/specs/utils.d.ts +0 -1
  322. package/lib/typescript/src/views/WebGPUCanvas.d.ts +0 -33
  323. package/lib/typescript/src/views/WebGPUCanvas.web.d.ts +0 -23
  324. package/src/skia/types/WebGPU.ts +0 -226
  325. package/src/specs/WebGPUViewNativeComponent.ts +0 -11
  326. package/src/specs/WebGPUViewNativeComponent.web.ts +0 -110
  327. package/src/specs/utils.ts +0 -4
  328. package/src/views/WebGPUCanvas.tsx +0 -125
  329. package/src/views/WebGPUCanvas.web.tsx +0 -36
@@ -7,6 +7,7 @@
7
7
 
8
8
  #include "CustomBlendModes.h"
9
9
  #include "JsiSkColor.h"
10
+ #include "JsiSkConverters.h"
10
11
  #include "JsiSkColorFilter.h"
11
12
  #include "JsiSkImageFilter.h"
12
13
  #include "JsiSkMaskFilter.h"
@@ -29,188 +30,129 @@ class JsiSkPaint
29
30
  public:
30
31
  static constexpr const char *CLASS_NAME = "Paint";
31
32
 
32
- JSI_HOST_FUNCTION(assign) {
33
- SkPaint *paint = JsiSkPaint::fromValue(runtime, arguments[0]).get();
34
- *getObject() = *paint;
35
- return jsi::Value::undefined();
36
- }
33
+ void assign(std::shared_ptr<SkPaint> paint) { *getObject() = *paint; }
37
34
 
38
- JSI_HOST_FUNCTION(copy) {
35
+ std::shared_ptr<JsiSkPaint> copy() {
39
36
  const auto *paint = getObject().get();
40
- return makeJsiObject(
41
- runtime, std::make_shared<JsiSkPaint>(getContext(), SkPaint(*paint)));
37
+ return std::make_shared<JsiSkPaint>(getContext(), SkPaint(*paint));
42
38
  }
43
39
 
44
- JSI_HOST_FUNCTION(reset) {
45
- getObject()->reset();
46
- return jsi::Value::undefined();
47
- }
40
+ void reset() { getObject()->reset(); }
48
41
 
49
- JSI_HOST_FUNCTION(getColor) {
50
- return JsiSkColor::toValue(runtime, getObject()->getColor());
51
- }
42
+ JsiColor getColor() { return {getObject()->getColor()}; }
52
43
 
53
- JSI_HOST_FUNCTION(getStrokeCap) {
44
+ double getStrokeCap() {
54
45
  return static_cast<double>(getObject()->getStrokeCap());
55
46
  }
56
47
 
57
- JSI_HOST_FUNCTION(getStrokeJoin) {
48
+ double getStrokeJoin() {
58
49
  return static_cast<double>(getObject()->getStrokeJoin());
59
50
  }
60
51
 
61
- JSI_HOST_FUNCTION(getStrokeMiter) {
52
+ double getStrokeMiter() {
62
53
  return static_cast<double>(getObject()->getStrokeMiter());
63
54
  }
64
55
 
65
- JSI_HOST_FUNCTION(getStrokeWidth) {
56
+ double getStrokeWidth() {
66
57
  return static_cast<double>(getObject()->getStrokeWidth());
67
58
  }
68
59
 
69
- JSI_HOST_FUNCTION(getAlphaf) {
70
- float alphaf = getObject()->getAlphaf();
71
- return jsi::Value(SkScalarToDouble(alphaf));
72
- }
60
+ double getAlphaf() { return SkScalarToDouble(getObject()->getAlphaf()); }
73
61
 
74
- JSI_HOST_FUNCTION(setColor) {
75
- SkColor color = JsiSkColor::fromValue(runtime, arguments[0]);
76
- getObject()->setColor(color);
77
- return jsi::Value::undefined();
78
- }
62
+ void setColor(JsiColor color) { getObject()->setColor(color); }
79
63
 
80
- JSI_HOST_FUNCTION(setAlphaf) {
81
- SkScalar alpha = arguments[0].asNumber();
82
- getObject()->setAlphaf(alpha);
83
- return jsi::Value::undefined();
84
- }
64
+ void setAlphaf(double alpha) { getObject()->setAlphaf(alpha); }
85
65
 
86
- JSI_HOST_FUNCTION(setAntiAlias) {
87
- bool antiAliased = arguments[0].getBool();
66
+ void setAntiAlias(bool antiAliased) {
88
67
  getObject()->setAntiAlias(antiAliased);
89
- return jsi::Value::undefined();
90
68
  }
91
69
 
92
- JSI_HOST_FUNCTION(setDither) {
93
- bool dithered = arguments[0].getBool();
94
- getObject()->setDither(dithered);
95
- return jsi::Value::undefined();
96
- }
70
+ void setDither(bool dithered) { getObject()->setDither(dithered); }
97
71
 
98
- JSI_HOST_FUNCTION(setStrokeWidth) {
99
- SkScalar width = arguments[0].asNumber();
100
- getObject()->setStrokeWidth(width);
101
- return jsi::Value::undefined();
102
- }
72
+ void setStrokeWidth(double width) { getObject()->setStrokeWidth(width); }
103
73
 
104
- JSI_HOST_FUNCTION(setStyle) {
105
- auto style = arguments[0].asNumber();
74
+ void setStyle(double style) {
106
75
  getObject()->setStyle(static_cast<SkPaint::Style>(style));
107
- return jsi::Value::undefined();
108
76
  }
109
77
 
110
- JSI_HOST_FUNCTION(setStrokeCap) {
111
- auto cap = arguments[0].asNumber();
78
+ void setStrokeCap(double cap) {
112
79
  getObject()->setStrokeCap(static_cast<SkPaint::Cap>(cap));
113
- return jsi::Value::undefined();
114
80
  }
115
81
 
116
- JSI_HOST_FUNCTION(setStrokeJoin) {
117
- int join = arguments[0].asNumber();
82
+ void setStrokeJoin(int join) {
118
83
  getObject()->setStrokeJoin(static_cast<SkPaint::Join>(join));
119
- return jsi::Value::undefined();
120
84
  }
121
85
 
122
- JSI_HOST_FUNCTION(setStrokeMiter) {
123
- int limit = arguments[0].asNumber();
124
- getObject()->setStrokeMiter(limit);
125
- return jsi::Value::undefined();
126
- }
86
+ void setStrokeMiter(int limit) { getObject()->setStrokeMiter(limit); }
127
87
 
128
- JSI_HOST_FUNCTION(setBlendMode) {
129
- int blendModeValue = static_cast<int>(arguments[0].asNumber());
88
+ void setBlendMode(int blendModeValue) {
130
89
  applyBlendMode(*getObject(), blendModeValue);
131
- return jsi::Value::undefined();
132
90
  }
133
91
 
134
- JSI_HOST_FUNCTION(setMaskFilter) {
135
- auto maskFilter = arguments[0].isNull() || arguments[0].isUndefined()
136
- ? nullptr
137
- : JsiSkMaskFilter::fromValue(runtime, arguments[0]);
138
- getObject()->setMaskFilter(std::move(maskFilter));
139
- return jsi::Value::undefined();
92
+ void setMaskFilter(JsiOptional<sk_sp<SkMaskFilter>> maskFilter) {
93
+ getObject()->setMaskFilter(
94
+ maskFilter.has_value() ? std::move(*maskFilter) : nullptr);
140
95
  }
141
96
 
142
- JSI_HOST_FUNCTION(setImageFilter) {
143
- auto imageFilter = arguments[0].isNull() || arguments[0].isUndefined()
144
- ? nullptr
145
- : JsiSkImageFilter::fromValue(runtime, arguments[0]);
146
- getObject()->setImageFilter(std::move(imageFilter));
147
- return jsi::Value::undefined();
97
+ void setImageFilter(JsiOptional<sk_sp<SkImageFilter>> imageFilter) {
98
+ getObject()->setImageFilter(
99
+ imageFilter.has_value() ? std::move(*imageFilter) : nullptr);
148
100
  }
149
101
 
150
- JSI_HOST_FUNCTION(setColorFilter) {
151
- auto colorFilter = arguments[0].isNull() || arguments[0].isUndefined()
152
- ? nullptr
153
- : JsiSkColorFilter::fromValue(runtime, arguments[0]);
154
- getObject()->setColorFilter(std::move(colorFilter));
155
- return jsi::Value::undefined();
102
+ void setColorFilter(JsiOptional<sk_sp<SkColorFilter>> colorFilter) {
103
+ getObject()->setColorFilter(
104
+ colorFilter.has_value() ? std::move(*colorFilter) : nullptr);
156
105
  }
157
106
 
158
- JSI_HOST_FUNCTION(setShader) {
159
- auto shader = arguments[0].isNull() || arguments[0].isUndefined()
160
- ? nullptr
161
- : JsiSkShader::fromValue(runtime, arguments[0]);
162
- getObject()->setShader(std::move(shader));
163
- return jsi::Value::undefined();
107
+ void setShader(JsiOptional<sk_sp<SkShader>> shader) {
108
+ getObject()->setShader(shader.has_value() ? std::move(*shader) : nullptr);
164
109
  }
165
110
 
166
- JSI_HOST_FUNCTION(setPathEffect) {
167
- auto pathEffect = arguments[0].isNull() || arguments[0].isUndefined()
168
- ? nullptr
169
- : JsiSkPathEffect::fromValue(runtime, arguments[0]);
170
- getObject()->setPathEffect(std::move(pathEffect));
171
- return jsi::Value::undefined();
111
+ void setPathEffect(JsiOptional<sk_sp<SkPathEffect>> pathEffect) {
112
+ getObject()->setPathEffect(
113
+ pathEffect.has_value() ? std::move(*pathEffect) : nullptr);
172
114
  }
173
115
 
174
116
  static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
175
117
  installCommon(runtime, prototype);
176
- installHostMethod(runtime, prototype, "assign", &JsiSkPaint::assign);
177
- installHostMethod(runtime, prototype, "copy", &JsiSkPaint::copy);
178
- installHostMethod(runtime, prototype, "reset", &JsiSkPaint::reset);
179
- installHostMethod(runtime, prototype, "getAlphaf", &JsiSkPaint::getAlphaf);
180
- installHostMethod(runtime, prototype, "getColor", &JsiSkPaint::getColor);
181
- installHostMethod(runtime, prototype, "getStrokeCap",
182
- &JsiSkPaint::getStrokeCap);
183
- installHostMethod(runtime, prototype, "getStrokeJoin",
184
- &JsiSkPaint::getStrokeJoin);
185
- installHostMethod(runtime, prototype, "getStrokeMiter",
186
- &JsiSkPaint::getStrokeMiter);
187
- installHostMethod(runtime, prototype, "getStrokeWidth",
188
- &JsiSkPaint::getStrokeWidth);
189
- installHostMethod(runtime, prototype, "setPathEffect",
190
- &JsiSkPaint::setPathEffect);
191
- installHostMethod(runtime, prototype, "setShader", &JsiSkPaint::setShader);
192
- installHostMethod(runtime, prototype, "setColorFilter",
193
- &JsiSkPaint::setColorFilter);
194
- installHostMethod(runtime, prototype, "setImageFilter",
195
- &JsiSkPaint::setImageFilter);
196
- installHostMethod(runtime, prototype, "setMaskFilter",
197
- &JsiSkPaint::setMaskFilter);
198
- installHostMethod(runtime, prototype, "setBlendMode",
199
- &JsiSkPaint::setBlendMode);
200
- installHostMethod(runtime, prototype, "setStrokeMiter",
201
- &JsiSkPaint::setStrokeMiter);
202
- installHostMethod(runtime, prototype, "setStrokeJoin",
203
- &JsiSkPaint::setStrokeJoin);
204
- installHostMethod(runtime, prototype, "setStrokeCap",
205
- &JsiSkPaint::setStrokeCap);
206
- installHostMethod(runtime, prototype, "setAntiAlias",
207
- &JsiSkPaint::setAntiAlias);
208
- installHostMethod(runtime, prototype, "setDither", &JsiSkPaint::setDither);
209
- installHostMethod(runtime, prototype, "setStrokeWidth",
210
- &JsiSkPaint::setStrokeWidth);
211
- installHostMethod(runtime, prototype, "setStyle", &JsiSkPaint::setStyle);
212
- installHostMethod(runtime, prototype, "setColor", &JsiSkPaint::setColor);
213
- installHostMethod(runtime, prototype, "setAlphaf", &JsiSkPaint::setAlphaf);
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);
214
156
  }
215
157
 
216
158
  JsiSkPaint(std::shared_ptr<RNSkPlatformContext> context, SkPaint paint)
@@ -3,6 +3,7 @@
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>
@@ -36,61 +37,46 @@ class JsiSkParagraph
36
37
  public:
37
38
  static constexpr const char *CLASS_NAME = "Paragraph";
38
39
 
39
- JSI_HOST_FUNCTION(layout) {
40
- auto width = getArgumentAsNumber(runtime, arguments, count, 0);
41
- getObject()->layout(width);
42
- return jsi::Value::undefined();
43
- }
40
+ void layout(double width) { getObject()->layout(width); }
44
41
 
45
- JSI_HOST_FUNCTION(paint) {
46
- auto jsiCanvas = getJsiObject<JsiSkCanvas>(
47
- runtime, getArgument(runtime, arguments, count, 0));
48
- auto x = getArgumentAsNumber(runtime, arguments, count, 1);
49
- auto y = getArgumentAsNumber(runtime, arguments, count, 2);
42
+ void paint(std::shared_ptr<JsiSkCanvas> jsiCanvas, double x, double y) {
50
43
  getObject()->paint(jsiCanvas->getCanvas(), x, y);
51
- return jsi::Value::undefined();
52
44
  }
53
45
 
54
- JSI_HOST_FUNCTION(getHeight) {
55
- return static_cast<double>(getObject()->getHeight());
56
- }
46
+ double getHeight() { return static_cast<double>(getObject()->getHeight()); }
57
47
 
58
- JSI_HOST_FUNCTION(getMaxWidth) {
48
+ double getMaxWidth() {
59
49
  return static_cast<double>(getObject()->getMaxWidth());
60
50
  }
61
51
 
62
- JSI_HOST_FUNCTION(getMaxIntrinsicWidth) {
52
+ double getMaxIntrinsicWidth() {
63
53
  return static_cast<double>(getObject()->getMaxIntrinsicWidth());
64
54
  }
65
55
 
66
- JSI_HOST_FUNCTION(getMinIntrinsicWidth) {
56
+ double getMinIntrinsicWidth() {
67
57
  return static_cast<double>(getObject()->getMinIntrinsicWidth());
68
58
  }
69
59
 
70
- JSI_HOST_FUNCTION(getLongestLine) {
60
+ double getLongestLine() {
71
61
  return static_cast<double>(getObject()->getLongestLine());
72
62
  }
73
63
 
74
- JSI_HOST_FUNCTION(getGlyphPositionAtCoordinate) {
75
- auto dx = getArgumentAsNumber(runtime, arguments, count, 0);
76
- auto dy = getArgumentAsNumber(runtime, arguments, count, 1);
64
+ int getGlyphPositionAtCoordinate(double dx, double dy) {
77
65
  auto result = getObject()->getGlyphPositionAtCoordinate(dx, dy);
78
66
  return result.position;
79
67
  }
80
68
 
81
- JSI_HOST_FUNCTION(getRectsForRange) {
82
- auto start = getArgumentAsNumber(runtime, arguments, count, 0);
83
- auto end = getArgumentAsNumber(runtime, arguments, count, 1);
69
+ std::vector<std::shared_ptr<JsiSkRect>> getRectsForRange(double start,
70
+ double end) {
84
71
  auto result =
85
72
  getObject()->getRectsForRange(start, end, para::RectHeightStyle::kTight,
86
73
  para::RectWidthStyle::kTight);
87
- auto returnValue = jsi::Array(runtime, result.size());
88
- for (size_t i = 0; i < result.size(); ++i) {
89
- returnValue.setValueAtIndex(
90
- runtime, i,
91
- 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));
92
78
  }
93
- return returnValue;
79
+ return rects;
94
80
  }
95
81
 
96
82
  JSI_HOST_FUNCTION(getLineMetrics) {
@@ -143,14 +129,13 @@ public:
143
129
  return returnValue;
144
130
  }
145
131
 
146
- JSI_HOST_FUNCTION(getPath) {
147
- auto lineNumber =
148
- static_cast<int>(getArgumentAsNumber(runtime, arguments, count, 0));
132
+ std::variant<std::nullptr_t, std::shared_ptr<JsiSkPath>>
133
+ getPath(int lineNumber) {
149
134
  auto paragraph = getObject();
150
135
  // Paragraph::getPath does not bounds-check the line number.
151
136
  if (lineNumber < 0 ||
152
137
  static_cast<size_t>(lineNumber) >= paragraph->lineNumber()) {
153
- return jsi::Value::null();
138
+ return nullptr;
154
139
  }
155
140
  // Paragraph::getPath resets its path builder after every visual run, so
156
141
  // for lines shaped as multiple runs (e.g. through font fallback) it only
@@ -183,8 +168,7 @@ public:
183
168
  &rec);
184
169
  });
185
170
  SkPath path = builder.detach();
186
- return makeJsiObject(
187
- runtime, std::make_shared<JsiSkPath>(getContext(), std::move(path)));
171
+ return std::make_shared<JsiSkPath>(getContext(), std::move(path));
188
172
  }
189
173
 
190
174
  JSI_HOST_FUNCTION(extendedVisit) {
@@ -269,27 +253,26 @@ public:
269
253
 
270
254
  static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
271
255
  installCommon(runtime, prototype);
272
- installHostMethod(runtime, prototype, "layout", &JsiSkParagraph::layout);
273
- installHostMethod(runtime, prototype, "paint", &JsiSkParagraph::paint);
274
- installHostMethod(runtime, prototype, "getMaxWidth",
275
- &JsiSkParagraph::getMaxWidth);
276
- installHostMethod(runtime, prototype, "getMinIntrinsicWidth",
277
- &JsiSkParagraph::getMinIntrinsicWidth);
278
- installHostMethod(runtime, prototype, "getMaxIntrinsicWidth",
279
- &JsiSkParagraph::getMaxIntrinsicWidth);
280
- installHostMethod(runtime, prototype, "getLongestLine",
281
- &JsiSkParagraph::getLongestLine);
282
- installHostMethod(runtime, prototype, "getHeight",
283
- &JsiSkParagraph::getHeight);
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);
284
267
  installHostMethod(runtime, prototype, "getRectsForPlaceholders",
285
268
  &JsiSkParagraph::getRectsForPlaceholders);
286
- installHostMethod(runtime, prototype, "getGlyphPositionAtCoordinate",
287
- &JsiSkParagraph::getGlyphPositionAtCoordinate);
288
- installHostMethod(runtime, prototype, "getRectsForRange",
289
- &JsiSkParagraph::getRectsForRange);
269
+ installMethod(runtime, prototype, "getGlyphPositionAtCoordinate",
270
+ &JsiSkParagraph::getGlyphPositionAtCoordinate);
271
+ installMethod(runtime, prototype, "getRectsForRange",
272
+ &JsiSkParagraph::getRectsForRange);
290
273
  installHostMethod(runtime, prototype, "getLineMetrics",
291
274
  &JsiSkParagraph::getLineMetrics);
292
- installHostMethod(runtime, prototype, "getPath", &JsiSkParagraph::getPath);
275
+ installMethod(runtime, prototype, "getPath", &JsiSkParagraph::getPath);
293
276
  installHostMethod(runtime, prototype, "extendedVisit",
294
277
  &JsiSkParagraph::extendedVisit);
295
278
  }
@@ -1,10 +1,12 @@
1
1
  #pragma once
2
2
 
3
3
  #include <memory>
4
+ #include <string>
4
5
  #include <utility>
5
6
 
6
7
  #include <jsi/jsi.h>
7
8
 
9
+ #include "JsiSkConverters.h"
8
10
  #include "JsiSkFont.h"
9
11
  #include "JsiSkFontMgr.h"
10
12
  #include "JsiSkFontMgrFactory.h"
@@ -40,85 +42,55 @@ class JsiSkParagraphBuilder : public JsiSkNativeObject<JsiSkParagraphBuilder> {
40
42
  public:
41
43
  static constexpr const char *CLASS_NAME = "ParagraphBuilder";
42
44
 
43
- JSI_HOST_FUNCTION(build) {
44
- return makeJsiObject(runtime, std::make_shared<JsiSkParagraph>(
45
- getContext(), _builder.get()));
45
+ std::shared_ptr<JsiSkParagraph> build() {
46
+ return std::make_shared<JsiSkParagraph>(getContext(), _builder.get());
46
47
  }
47
48
 
48
- JSI_HOST_FUNCTION(reset) {
49
- _builder->Reset();
50
- return jsi::Value::undefined();
51
- }
49
+ void reset() { _builder->Reset(); }
52
50
 
53
- JSI_HOST_FUNCTION(addText) {
54
- auto text = getArgumentAsString(runtime, arguments, count, 0).utf8(runtime);
55
- _builder->addText(text.c_str());
56
- return thisValue.asObject(runtime);
57
- }
51
+ void addText(std::string text) { _builder->addText(text.c_str()); }
58
52
 
59
- JSI_HOST_FUNCTION(addPlaceholder) {
60
- auto width =
61
- count >= 1 ? getArgumentAsNumber(runtime, arguments, count, 0) : 0;
62
- auto height =
63
- count >= 2 ? getArgumentAsNumber(runtime, arguments, count, 1) : 0;
64
- auto alignment =
65
- count >= 3 ? static_cast<para::PlaceholderAlignment>(
66
- getArgumentAsNumber(runtime, arguments, count, 2))
67
- : para::PlaceholderAlignment::kBaseline;
68
- auto baseline = count >= 4
69
- ? static_cast<para::TextBaseline>(
70
- getArgumentAsNumber(runtime, arguments, count, 3))
53
+ void addPlaceholder(JsiOptional<double> width, JsiOptional<double> height,
54
+ JsiOptional<double> alignmentParam,
55
+ JsiOptional<double> baselineParam,
56
+ JsiOptional<double> offset) {
57
+ auto alignment = alignmentParam.has_value()
58
+ ? static_cast<para::PlaceholderAlignment>(
59
+ *alignmentParam)
60
+ : para::PlaceholderAlignment::kBaseline;
61
+ auto baseline = baselineParam.has_value()
62
+ ? static_cast<para::TextBaseline>(*baselineParam)
71
63
  : para::TextBaseline::kAlphabetic;
72
- auto offset =
73
- count >= 5 ? getArgumentAsNumber(runtime, arguments, count, 4) : 0;
74
-
75
- para::PlaceholderStyle style(width, height, alignment, baseline, offset);
64
+ para::PlaceholderStyle style(width.value_or(0), height.value_or(0),
65
+ alignment, baseline, offset.value_or(0));
76
66
  _builder->addPlaceholder(style);
77
-
78
- return thisValue.asObject(runtime);
79
67
  }
80
68
 
81
- JSI_HOST_FUNCTION(pushStyle) {
82
- auto textStyle = JsiSkTextStyle::fromValue(runtime, arguments[0]);
83
- // Foreground paint
84
- if (count >= 2) {
85
- auto foreground = tryGetJsiObject<JsiSkPaint>(
86
- runtime, getArgument(runtime, arguments, count, 1));
87
- if (foreground) {
88
- textStyle.setForegroundPaint(*foreground->getObject().get());
89
- }
69
+ void pushStyle(para::TextStyle textStyle,
70
+ JsiOptional<std::shared_ptr<SkPaint>> foreground,
71
+ JsiOptional<std::shared_ptr<SkPaint>> background) {
72
+ if (foreground.has_value()) {
73
+ textStyle.setForegroundPaint(**foreground);
90
74
  }
91
- // Background paint
92
- if (count >= 3) {
93
- auto background = tryGetJsiObject<JsiSkPaint>(
94
- runtime, getArgument(runtime, arguments, count, 2));
95
- if (background) {
96
- textStyle.setBackgroundPaint(*background->getObject().get());
97
- }
75
+ if (background.has_value()) {
76
+ textStyle.setBackgroundPaint(**background);
98
77
  }
99
-
100
78
  _builder->pushStyle(textStyle);
101
-
102
- return thisValue.asObject(runtime);
103
79
  }
104
80
 
105
- JSI_HOST_FUNCTION(pop) {
106
- _builder->pop();
107
- return thisValue.asObject(runtime);
108
- }
81
+ void pop() { _builder->pop(); }
109
82
 
110
83
  static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
111
- installHostMethod(runtime, prototype, "build",
112
- &JsiSkParagraphBuilder::build);
113
- installHostMethod(runtime, prototype, "reset",
114
- &JsiSkParagraphBuilder::reset);
115
- installHostMethod(runtime, prototype, "addText",
116
- &JsiSkParagraphBuilder::addText);
117
- installHostMethod(runtime, prototype, "addPlaceholder",
118
- &JsiSkParagraphBuilder::addPlaceholder);
119
- installHostMethod(runtime, prototype, "pushStyle",
120
- &JsiSkParagraphBuilder::pushStyle);
121
- installHostMethod(runtime, prototype, "pop", &JsiSkParagraphBuilder::pop);
84
+ installMethod(runtime, prototype, "build", &JsiSkParagraphBuilder::build);
85
+ installMethod(runtime, prototype, "reset", &JsiSkParagraphBuilder::reset);
86
+ installChainableMethod(runtime, prototype, "addText",
87
+ &JsiSkParagraphBuilder::addText);
88
+ installChainableMethod(runtime, prototype, "addPlaceholder",
89
+ &JsiSkParagraphBuilder::addPlaceholder);
90
+ installChainableMethod(runtime, prototype, "pushStyle",
91
+ &JsiSkParagraphBuilder::pushStyle);
92
+ installChainableMethod(runtime, prototype, "pop",
93
+ &JsiSkParagraphBuilder::pop);
122
94
  }
123
95
 
124
96
  size_t getMemoryPressure() override { return 1024 * 1024; }
@@ -5,9 +5,11 @@
5
5
 
6
6
  #include <jsi/jsi.h>
7
7
 
8
+ #include "JsiSkConverters.h"
8
9
  #include "JsiSkNativeObjects.h"
9
10
  #include "JsiSkParagraphBuilder.h"
10
11
  #include "JsiSkParagraphStyle.h"
12
+ #include "JsiSkTypefaceFontProvider.h"
11
13
 
12
14
  #pragma clang diagnostic push
13
15
  #pragma clang diagnostic ignored "-Wdocumentation"
@@ -31,25 +33,18 @@ class JsiSkParagraphBuilderFactory
31
33
  public:
32
34
  static constexpr const char *CLASS_NAME = "ParagraphBuilderFactory";
33
35
 
34
- JSI_HOST_FUNCTION(Make) {
35
- // Get paragraph style from params
36
- auto paragraphStyle =
37
- count > 0 ? JsiSkParagraphStyle::fromValue(runtime, arguments[0])
38
- : para::ParagraphStyle();
39
-
40
- // get font manager
41
- auto fontMgr =
42
- count > 1 ? JsiSkTypefaceFontProvider::fromValue(runtime, arguments[1])
43
- : nullptr;
44
-
45
- // Create the paragraph builder
46
- return makeJsiObject(runtime, std::make_shared<JsiSkParagraphBuilder>(
47
- getContext(), paragraphStyle, fontMgr));
36
+ std::shared_ptr<JsiSkParagraphBuilder>
37
+ Make(JsiOptional<para::ParagraphStyle> paragraphStyle,
38
+ JsiOptional<sk_sp<para::TypefaceFontProvider>> fontMgr) {
39
+ return std::make_shared<JsiSkParagraphBuilder>(
40
+ getContext(),
41
+ paragraphStyle.has_value() ? *paragraphStyle : para::ParagraphStyle(),
42
+ fontMgr.has_value() ? *fontMgr : nullptr);
48
43
  }
49
44
 
50
45
  static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
51
- installHostMethod(runtime, prototype, "Make",
52
- &JsiSkParagraphBuilderFactory::Make);
46
+ installMethod(runtime, prototype, "Make",
47
+ &JsiSkParagraphBuilderFactory::Make);
53
48
  }
54
49
 
55
50
  size_t getMemoryPressure() override { return 1024 * 1024; }