@shopify/react-native-skia 2.10.0 → 2.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/android/CMakeLists.txt +7 -41
  2. package/android/build.gradle +33 -0
  3. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +1 -2
  4. package/cpp/api/JsiNativeBuffer.h +14 -20
  5. package/cpp/api/JsiSkAnimatedImage.h +13 -16
  6. package/cpp/api/JsiSkAnimatedImageFactory.h +9 -7
  7. package/cpp/api/JsiSkApi.h +94 -90
  8. package/cpp/api/JsiSkCanvas.h +108 -251
  9. package/cpp/api/JsiSkColorFilterFactory.h +45 -63
  10. package/cpp/api/JsiSkContourMeasure.h +19 -29
  11. package/cpp/api/JsiSkContourMeasureIter.h +6 -6
  12. package/cpp/api/JsiSkConverters.h +410 -0
  13. package/cpp/api/JsiSkDataFactory.h +9 -15
  14. package/cpp/api/JsiSkFont.h +99 -180
  15. package/cpp/api/JsiSkFontMgr.h +19 -21
  16. package/cpp/api/JsiSkFontMgrFactory.h +4 -5
  17. package/cpp/api/JsiSkImage.h +66 -66
  18. package/cpp/api/JsiSkImageFactory.h +66 -63
  19. package/cpp/api/JsiSkImageFilterFactory.h +354 -608
  20. package/cpp/api/JsiSkImageInfo.h +10 -13
  21. package/cpp/api/JsiSkMaskFilterFactory.h +8 -11
  22. package/cpp/api/JsiSkMatrix.h +36 -73
  23. package/cpp/api/JsiSkNativeObjects.h +64 -96
  24. package/cpp/api/JsiSkPaint.h +73 -131
  25. package/cpp/api/JsiSkParagraph.h +36 -53
  26. package/cpp/api/JsiSkParagraphBuilder.h +36 -64
  27. package/cpp/api/JsiSkParagraphBuilderFactory.h +11 -16
  28. package/cpp/api/JsiSkPath.h +216 -349
  29. package/cpp/api/JsiSkPathBuilder.h +133 -269
  30. package/cpp/api/JsiSkPathBuilderFactory.h +11 -11
  31. package/cpp/api/JsiSkPathEffectFactory.h +52 -72
  32. package/cpp/api/JsiSkPathFactory.h +129 -195
  33. package/cpp/api/JsiSkPicture.h +12 -18
  34. package/cpp/api/JsiSkPictureRecorder.h +14 -15
  35. package/cpp/api/JsiSkPoint.h +4 -4
  36. package/cpp/api/JsiSkRRect.h +7 -8
  37. package/cpp/api/JsiSkRSXform.h +10 -23
  38. package/cpp/api/JsiSkRect.h +23 -31
  39. package/cpp/api/JsiSkRuntimeEffect.h +67 -83
  40. package/cpp/api/JsiSkRuntimeEffectFactory.h +6 -10
  41. package/cpp/api/JsiSkRuntimeShaderBuilder.h +5 -14
  42. package/cpp/api/JsiSkSVG.h +4 -4
  43. package/cpp/api/JsiSkShaderFactory.h +153 -225
  44. package/cpp/api/JsiSkSkottie.h +104 -126
  45. package/cpp/api/JsiSkSurface.h +11 -14
  46. package/cpp/api/JsiSkSurfaceFactory.h +6 -7
  47. package/cpp/api/JsiSkTextBlobFactory.h +31 -54
  48. package/cpp/api/JsiSkTypeface.h +8 -12
  49. package/cpp/api/JsiSkTypefaceFactory.h +9 -7
  50. package/cpp/api/JsiSkTypefaceFontProvider.h +22 -23
  51. package/cpp/api/JsiSkTypefaceFontProviderFactory.h +5 -6
  52. package/cpp/api/JsiSkVertices.h +6 -8
  53. package/cpp/api/JsiSkiaContext.h +10 -11
  54. package/cpp/api/JsiVideo.h +31 -71
  55. package/cpp/jsi/EnumMapper.h +2 -2
  56. package/cpp/jsi/JSIConverter.h +2 -33
  57. package/cpp/jsi/NativeObject.h +24 -19
  58. package/cpp/jsi/Promise.cpp +2 -2
  59. package/cpp/jsi/Promise.h +2 -2
  60. package/cpp/rnskia/RNDawnContext.h +18 -2
  61. package/cpp/rnskia/RNDawnInterop.cpp +19 -0
  62. package/cpp/rnskia/RNDawnUtils.h +18 -1
  63. package/cpp/rnskia/RNSkManager.cpp +5 -162
  64. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +2 -0
  65. package/lib/commonjs/mock/index.js +0 -1
  66. package/lib/commonjs/mock/index.js.map +1 -1
  67. package/lib/commonjs/skia/types/Image/ImageFactory.d.ts +15 -6
  68. package/lib/commonjs/skia/types/Image/ImageFactory.js.map +1 -1
  69. package/lib/commonjs/skia/types/Skia.d.ts +5 -15
  70. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  71. package/lib/commonjs/skia/types/index.d.ts +0 -1
  72. package/lib/commonjs/skia/types/index.js +0 -11
  73. package/lib/commonjs/skia/types/index.js.map +1 -1
  74. package/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  75. package/lib/commonjs/skia/web/JsiSkImageFactory.js +2 -2
  76. package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
  77. package/lib/commonjs/skia/web/JsiSkia.js +1 -4
  78. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  79. package/lib/commonjs/views/index.d.ts +0 -1
  80. package/lib/commonjs/views/index.js +0 -11
  81. package/lib/commonjs/views/index.js.map +1 -1
  82. package/lib/module/mock/index.js +0 -1
  83. package/lib/module/mock/index.js.map +1 -1
  84. package/lib/module/skia/types/Image/ImageFactory.d.ts +15 -6
  85. package/lib/module/skia/types/Image/ImageFactory.js.map +1 -1
  86. package/lib/module/skia/types/Skia.d.ts +5 -15
  87. package/lib/module/skia/types/Skia.js.map +1 -1
  88. package/lib/module/skia/types/index.d.ts +0 -1
  89. package/lib/module/skia/types/index.js +0 -1
  90. package/lib/module/skia/types/index.js.map +1 -1
  91. package/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  92. package/lib/module/skia/web/JsiSkImageFactory.js +2 -2
  93. package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
  94. package/lib/module/skia/web/JsiSkia.js +1 -4
  95. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  96. package/lib/module/views/index.d.ts +0 -1
  97. package/lib/module/views/index.js +0 -1
  98. package/lib/module/views/index.js.map +1 -1
  99. package/lib/typescript/lib/commonjs/mock/index.d.ts +0 -1
  100. package/lib/typescript/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  101. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -2
  102. package/lib/typescript/lib/module/mock/index.d.ts +0 -2
  103. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -2
  104. package/lib/typescript/lib/module/skia/types/index.d.ts +0 -1
  105. package/lib/typescript/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  106. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -2
  107. package/lib/typescript/lib/module/views/index.d.ts +0 -1
  108. package/lib/typescript/src/skia/types/Image/ImageFactory.d.ts +15 -6
  109. package/lib/typescript/src/skia/types/Skia.d.ts +5 -15
  110. package/lib/typescript/src/skia/types/index.d.ts +0 -1
  111. package/lib/typescript/src/skia/web/JsiSkImageFactory.d.ts +2 -2
  112. package/lib/typescript/src/views/index.d.ts +0 -1
  113. package/package.json +3 -4
  114. package/react-native-skia.podspec +38 -4
  115. package/src/mock/index.ts +0 -1
  116. package/src/skia/types/Image/ImageFactory.ts +15 -6
  117. package/src/skia/types/Skia.ts +5 -15
  118. package/src/skia/types/index.ts +0 -1
  119. package/src/skia/web/JsiSkImageFactory.ts +3 -3
  120. package/src/skia/web/JsiSkia.ts +2 -5
  121. package/src/views/index.ts +0 -1
  122. package/android/cpp/jni/JniWebGPUView.cpp +0 -112
  123. package/android/cpp/rnskia-android/SkiaPlatformContext.h +0 -26
  124. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUSurfaceView.java +0 -43
  125. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUTextureView.java +0 -50
  126. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUView.java +0 -98
  127. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewAPI.java +0 -19
  128. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewManager.java +0 -58
  129. package/apple/RNWebGPUAppleNativeBuffer.mm +0 -33
  130. package/apple/SkiaPlatformContext.h +0 -20
  131. package/apple/SkiaPlatformContext.mm +0 -21
  132. package/apple/SkiaWebGPUView.mm +0 -81
  133. package/apple/WebGPUMetalView.mm +0 -136
  134. package/cpp/rnwgpu/ArrayBuffer.h +0 -116
  135. package/cpp/rnwgpu/Canvas.h +0 -52
  136. package/cpp/rnwgpu/PlatformContext.h +0 -18
  137. package/cpp/rnwgpu/SurfaceRegistry.h +0 -605
  138. package/cpp/rnwgpu/api/AppleNativeBuffer.h +0 -22
  139. package/cpp/rnwgpu/api/Convertors.h +0 -783
  140. package/cpp/rnwgpu/api/External.h +0 -12
  141. package/cpp/rnwgpu/api/GPU.cpp +0 -162
  142. package/cpp/rnwgpu/api/GPU.h +0 -60
  143. package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -239
  144. package/cpp/rnwgpu/api/GPUAdapter.h +0 -60
  145. package/cpp/rnwgpu/api/GPUAdapterInfo.h +0 -57
  146. package/cpp/rnwgpu/api/GPUBindGroup.cpp +0 -3
  147. package/cpp/rnwgpu/api/GPUBindGroup.h +0 -51
  148. package/cpp/rnwgpu/api/GPUBindGroupLayout.h +0 -52
  149. package/cpp/rnwgpu/api/GPUBuffer.cpp +0 -107
  150. package/cpp/rnwgpu/api/GPUBuffer.h +0 -88
  151. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -75
  152. package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -70
  153. package/cpp/rnwgpu/api/GPUCommandBuffer.h +0 -45
  154. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +0 -179
  155. package/cpp/rnwgpu/api/GPUCommandEncoder.h +0 -111
  156. package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -79
  157. package/cpp/rnwgpu/api/GPUCompilationMessage.h +0 -36
  158. package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +0 -60
  159. package/cpp/rnwgpu/api/GPUComputePassEncoder.h +0 -85
  160. package/cpp/rnwgpu/api/GPUComputePipeline.cpp +0 -12
  161. package/cpp/rnwgpu/api/GPUComputePipeline.h +0 -60
  162. package/cpp/rnwgpu/api/GPUDevice.cpp +0 -613
  163. package/cpp/rnwgpu/api/GPUDevice.h +0 -258
  164. package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
  165. package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
  166. package/cpp/rnwgpu/api/GPUError.h +0 -35
  167. package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
  168. package/cpp/rnwgpu/api/GPUExternalTexture.cpp +0 -139
  169. package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -95
  170. package/cpp/rnwgpu/api/GPUFeatures.h +0 -203
  171. package/cpp/rnwgpu/api/GPUInternalError.h +0 -31
  172. package/cpp/rnwgpu/api/GPUOrigin2D.h +0 -55
  173. package/cpp/rnwgpu/api/GPUOrigin3D.h +0 -62
  174. package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +0 -33
  175. package/cpp/rnwgpu/api/GPUPipelineLayout.h +0 -45
  176. package/cpp/rnwgpu/api/GPUQuerySet.cpp +0 -11
  177. package/cpp/rnwgpu/api/GPUQuerySet.h +0 -73
  178. package/cpp/rnwgpu/api/GPUQueue.cpp +0 -179
  179. package/cpp/rnwgpu/api/GPUQueue.h +0 -84
  180. package/cpp/rnwgpu/api/GPURenderBundle.h +0 -44
  181. package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +0 -131
  182. package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +0 -110
  183. package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +0 -165
  184. package/cpp/rnwgpu/api/GPURenderPassEncoder.h +0 -130
  185. package/cpp/rnwgpu/api/GPURenderPipeline.cpp +0 -13
  186. package/cpp/rnwgpu/api/GPURenderPipeline.h +0 -61
  187. package/cpp/rnwgpu/api/GPUSampler.h +0 -44
  188. package/cpp/rnwgpu/api/GPUShaderModule.cpp +0 -56
  189. package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
  190. package/cpp/rnwgpu/api/GPUSharedFence.cpp +0 -80
  191. package/cpp/rnwgpu/api/GPUSharedFence.h +0 -53
  192. package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +0 -135
  193. package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +0 -75
  194. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +0 -129
  195. package/cpp/rnwgpu/api/GPUSupportedLimits.h +0 -131
  196. package/cpp/rnwgpu/api/GPUTexture.cpp +0 -47
  197. package/cpp/rnwgpu/api/GPUTexture.h +0 -162
  198. package/cpp/rnwgpu/api/GPUTextureView.h +0 -44
  199. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +0 -60
  200. package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
  201. package/cpp/rnwgpu/api/ImageBitmap.h +0 -62
  202. package/cpp/rnwgpu/api/NativeBufferUtils.h +0 -87
  203. package/cpp/rnwgpu/api/RNWebGPU.h +0 -82
  204. package/cpp/rnwgpu/api/WebGPUConstants.h +0 -36
  205. package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -64
  206. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -78
  207. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -56
  208. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -97
  209. package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -57
  210. package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -52
  211. package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -56
  212. package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -56
  213. package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -59
  214. package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +0 -39
  215. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +0 -76
  216. package/cpp/rnwgpu/api/descriptors/GPUColor.h +0 -66
  217. package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -58
  218. package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
  219. package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -45
  220. package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -45
  221. package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -56
  222. package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -58
  223. package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -67
  224. package/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h +0 -56
  225. package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -103
  226. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -109
  227. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -38
  228. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -90
  229. package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -73
  230. package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -62
  231. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
  232. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -65
  233. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -81
  234. package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -54
  235. package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
  236. package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -54
  237. package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -57
  238. package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -69
  239. package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -61
  240. package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -55
  241. package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -43
  242. package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -45
  243. package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -80
  244. package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -81
  245. package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -101
  246. package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -92
  247. package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -58
  248. package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -103
  249. package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -51
  250. package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -45
  251. package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -110
  252. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -60
  253. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -62
  254. package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
  255. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h +0 -58
  256. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h +0 -51
  257. package/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h +0 -73
  258. package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -64
  259. package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -59
  260. package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -59
  261. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -91
  262. package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
  263. package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -91
  264. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -64
  265. package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -53
  266. package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -62
  267. package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -73
  268. package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1969
  269. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -213
  270. package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -58
  271. package/cpp/rnwgpu/async/RuntimeContext.cpp +0 -199
  272. package/cpp/rnwgpu/async/RuntimeContext.h +0 -134
  273. package/lib/commonjs/skia/types/WebGPU.d.ts +0 -184
  274. package/lib/commonjs/skia/types/WebGPU.js +0 -105
  275. package/lib/commonjs/skia/types/WebGPU.js.map +0 -1
  276. package/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -8
  277. package/lib/commonjs/specs/WebGPUViewNativeComponent.js +0 -10
  278. package/lib/commonjs/specs/WebGPUViewNativeComponent.js.map +0 -1
  279. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  280. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js +0 -103
  281. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  282. package/lib/commonjs/specs/utils.d.ts +0 -1
  283. package/lib/commonjs/specs/utils.js +0 -11
  284. package/lib/commonjs/specs/utils.js.map +0 -1
  285. package/lib/commonjs/views/WebGPUCanvas.d.ts +0 -33
  286. package/lib/commonjs/views/WebGPUCanvas.js +0 -79
  287. package/lib/commonjs/views/WebGPUCanvas.js.map +0 -1
  288. package/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -23
  289. package/lib/commonjs/views/WebGPUCanvas.web.js +0 -20
  290. package/lib/commonjs/views/WebGPUCanvas.web.js.map +0 -1
  291. package/lib/module/skia/types/WebGPU.d.ts +0 -184
  292. package/lib/module/skia/types/WebGPU.js +0 -99
  293. package/lib/module/skia/types/WebGPU.js.map +0 -1
  294. package/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -8
  295. package/lib/module/specs/WebGPUViewNativeComponent.js +0 -4
  296. package/lib/module/specs/WebGPUViewNativeComponent.js.map +0 -1
  297. package/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  298. package/lib/module/specs/WebGPUViewNativeComponent.web.js +0 -96
  299. package/lib/module/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  300. package/lib/module/specs/utils.d.ts +0 -1
  301. package/lib/module/specs/utils.js +0 -5
  302. package/lib/module/specs/utils.js.map +0 -1
  303. package/lib/module/views/WebGPUCanvas.d.ts +0 -33
  304. package/lib/module/views/WebGPUCanvas.js +0 -70
  305. package/lib/module/views/WebGPUCanvas.js.map +0 -1
  306. package/lib/module/views/WebGPUCanvas.web.d.ts +0 -23
  307. package/lib/module/views/WebGPUCanvas.web.js +0 -12
  308. package/lib/module/views/WebGPUCanvas.web.js.map +0 -1
  309. package/lib/typescript/lib/commonjs/skia/types/WebGPU.d.ts +0 -2
  310. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -4
  311. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -3
  312. package/lib/typescript/lib/commonjs/specs/utils.d.ts +0 -2
  313. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.d.ts +0 -6
  314. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -6
  315. package/lib/typescript/lib/module/skia/types/WebGPU.d.ts +0 -31
  316. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -2
  317. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -2
  318. package/lib/typescript/lib/module/specs/utils.d.ts +0 -1
  319. package/lib/typescript/lib/module/views/WebGPUCanvas.d.ts +0 -7
  320. package/lib/typescript/lib/module/views/WebGPUCanvas.web.d.ts +0 -8
  321. package/lib/typescript/src/skia/types/WebGPU.d.ts +0 -184
  322. package/lib/typescript/src/specs/WebGPUViewNativeComponent.d.ts +0 -8
  323. package/lib/typescript/src/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  324. package/lib/typescript/src/specs/utils.d.ts +0 -1
  325. package/lib/typescript/src/views/WebGPUCanvas.d.ts +0 -33
  326. package/lib/typescript/src/views/WebGPUCanvas.web.d.ts +0 -23
  327. package/src/skia/types/WebGPU.ts +0 -226
  328. package/src/specs/WebGPUViewNativeComponent.ts +0 -11
  329. package/src/specs/WebGPUViewNativeComponent.web.ts +0 -110
  330. package/src/specs/utils.ts +0 -4
  331. package/src/views/WebGPUCanvas.tsx +0 -125
  332. package/src/views/WebGPUCanvas.web.tsx +0 -36
@@ -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; }