@shopify/react-native-skia 2.9.1 → 2.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/android/CMakeLists.txt +8 -46
  2. package/android/build.gradle +33 -0
  3. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +1 -2
  4. package/cpp/api/JsiNativeBuffer.h +23 -24
  5. package/cpp/api/JsiSkAnimatedImage.h +24 -25
  6. package/cpp/api/JsiSkAnimatedImageFactory.h +18 -17
  7. package/cpp/api/JsiSkApi.h +254 -96
  8. package/cpp/api/JsiSkCanvas.h +141 -266
  9. package/cpp/api/JsiSkColor.h +7 -5
  10. package/cpp/api/JsiSkColorFilter.h +15 -8
  11. package/cpp/api/JsiSkColorFilterFactory.h +49 -67
  12. package/cpp/api/JsiSkContourMeasure.h +31 -38
  13. package/cpp/api/JsiSkContourMeasureIter.h +20 -23
  14. package/cpp/api/JsiSkConverters.h +410 -0
  15. package/cpp/api/JsiSkData.h +13 -7
  16. package/cpp/api/JsiSkDataFactory.h +27 -32
  17. package/cpp/api/JsiSkFont.h +123 -192
  18. package/cpp/api/JsiSkFontMgr.h +33 -26
  19. package/cpp/api/JsiSkFontMgrFactory.h +12 -11
  20. package/cpp/api/JsiSkFontStyle.h +14 -12
  21. package/cpp/api/JsiSkImage.h +90 -79
  22. package/cpp/api/JsiSkImageFactory.h +93 -95
  23. package/cpp/api/JsiSkImageFilter.h +21 -11
  24. package/cpp/api/JsiSkImageFilterFactory.h +375 -629
  25. package/cpp/api/JsiSkImageInfo.h +25 -25
  26. package/cpp/api/JsiSkMaskFilter.h +21 -11
  27. package/cpp/api/JsiSkMaskFilterFactory.h +17 -17
  28. package/cpp/api/JsiSkMatrix.h +51 -88
  29. package/cpp/api/JsiSkNativeObjects.h +387 -0
  30. package/cpp/api/JsiSkPaint.h +104 -142
  31. package/cpp/api/JsiSkParagraph.h +54 -64
  32. package/cpp/api/JsiSkParagraphBuilder.h +43 -68
  33. package/cpp/api/JsiSkParagraphBuilderFactory.h +20 -24
  34. package/cpp/api/JsiSkPath.h +242 -350
  35. package/cpp/api/JsiSkPathBuilder.h +153 -273
  36. package/cpp/api/JsiSkPathBuilderFactory.h +19 -20
  37. package/cpp/api/JsiSkPathEffect.h +21 -11
  38. package/cpp/api/JsiSkPathEffectFactory.h +61 -80
  39. package/cpp/api/JsiSkPathFactory.h +148 -238
  40. package/cpp/api/JsiSkPicture.h +32 -27
  41. package/cpp/api/JsiSkPictureFactory.h +21 -26
  42. package/cpp/api/JsiSkPictureRecorder.h +27 -29
  43. package/cpp/api/JsiSkPoint.h +20 -23
  44. package/cpp/api/JsiSkRRect.h +24 -32
  45. package/cpp/api/JsiSkRSXform.h +31 -48
  46. package/cpp/api/JsiSkRect.h +40 -50
  47. package/cpp/api/JsiSkRuntimeEffect.h +85 -92
  48. package/cpp/api/JsiSkRuntimeEffectFactory.h +14 -18
  49. package/cpp/api/JsiSkRuntimeShaderBuilder.h +28 -30
  50. package/cpp/api/JsiSkSVG.h +15 -15
  51. package/cpp/api/JsiSkSVGFactory.h +17 -20
  52. package/cpp/api/JsiSkShader.h +15 -8
  53. package/cpp/api/JsiSkShaderFactory.h +159 -238
  54. package/cpp/api/JsiSkSkottie.h +131 -143
  55. package/cpp/api/JsiSkSurface.h +29 -32
  56. package/cpp/api/JsiSkSurfaceFactory.h +18 -20
  57. package/cpp/api/JsiSkTextBlob.h +15 -8
  58. package/cpp/api/JsiSkTextBlobFactory.h +40 -66
  59. package/cpp/api/JsiSkTypeface.h +25 -22
  60. package/cpp/api/JsiSkTypefaceFactory.h +17 -15
  61. package/cpp/api/JsiSkTypefaceFontProvider.h +43 -39
  62. package/cpp/api/JsiSkTypefaceFontProviderFactory.h +13 -12
  63. package/cpp/api/JsiSkVertices.h +23 -22
  64. package/cpp/api/JsiSkiaContext.h +22 -23
  65. package/cpp/api/JsiSkottieFactory.h +16 -17
  66. package/cpp/api/JsiVideo.h +43 -81
  67. package/cpp/api/recorder/Convertor.h +31 -61
  68. package/cpp/api/recorder/DataTypes.h +8 -16
  69. package/cpp/api/recorder/JsiRecorder.h +83 -55
  70. package/cpp/api/recorder/RNRecorder.h +1 -1
  71. package/cpp/jsi/BoxedNativeObject.h +146 -0
  72. package/cpp/{jsi2 → jsi}/EnumMapper.h +4 -1
  73. package/cpp/{jsi2 → jsi}/JSIConverter.h +0 -31
  74. package/cpp/{jsi2 → jsi}/NativeObject.h +131 -152
  75. package/cpp/jsi/RuntimeAwareCache.cpp +1 -1
  76. package/cpp/jsi/RuntimeAwareCache.h +26 -8
  77. package/cpp/jsi/ViewProperty.h +5 -11
  78. package/cpp/rnskia/RNDawnContext.h +18 -2
  79. package/cpp/rnskia/RNDawnInterop.cpp +19 -0
  80. package/cpp/rnskia/RNDawnUtils.h +18 -1
  81. package/cpp/rnskia/RNSkJsiViewApi.h +20 -11
  82. package/cpp/rnskia/RNSkManager.cpp +9 -168
  83. package/cpp/rnskia/RNSkPictureView.h +1 -1
  84. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +2 -0
  85. package/lib/commonjs/external/reanimated/renderHelpers.d.ts +15 -0
  86. package/lib/commonjs/external/reanimated/renderHelpers.js +30 -1
  87. package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
  88. package/lib/commonjs/mock/index.js +0 -1
  89. package/lib/commonjs/mock/index.js.map +1 -1
  90. package/lib/commonjs/skia/NativeSetup.js +4 -0
  91. package/lib/commonjs/skia/NativeSetup.js.map +1 -1
  92. package/lib/commonjs/skia/SkiaWorkletSerialization.d.ts +1 -0
  93. package/lib/commonjs/skia/SkiaWorkletSerialization.js +66 -0
  94. package/lib/commonjs/skia/SkiaWorkletSerialization.js.map +1 -0
  95. package/lib/commonjs/skia/types/Image/ImageFactory.d.ts +15 -6
  96. package/lib/commonjs/skia/types/Image/ImageFactory.js.map +1 -1
  97. package/lib/commonjs/skia/types/Skia.d.ts +5 -15
  98. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  99. package/lib/commonjs/skia/types/index.d.ts +0 -1
  100. package/lib/commonjs/skia/types/index.js +0 -11
  101. package/lib/commonjs/skia/types/index.js.map +1 -1
  102. package/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  103. package/lib/commonjs/skia/web/JsiSkImageFactory.js +2 -2
  104. package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
  105. package/lib/commonjs/skia/web/JsiSkia.js +1 -4
  106. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  107. package/lib/commonjs/sksg/Container.native.js +20 -1
  108. package/lib/commonjs/sksg/Container.native.js.map +1 -1
  109. package/lib/commonjs/views/index.d.ts +0 -1
  110. package/lib/commonjs/views/index.js +0 -11
  111. package/lib/commonjs/views/index.js.map +1 -1
  112. package/lib/module/external/reanimated/renderHelpers.d.ts +15 -0
  113. package/lib/module/external/reanimated/renderHelpers.js +29 -0
  114. package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
  115. package/lib/module/mock/index.js +0 -1
  116. package/lib/module/mock/index.js.map +1 -1
  117. package/lib/module/skia/NativeSetup.js +4 -0
  118. package/lib/module/skia/NativeSetup.js.map +1 -1
  119. package/lib/module/skia/SkiaWorkletSerialization.d.ts +1 -0
  120. package/lib/module/skia/SkiaWorkletSerialization.js +59 -0
  121. package/lib/module/skia/SkiaWorkletSerialization.js.map +1 -0
  122. package/lib/module/skia/types/Image/ImageFactory.d.ts +15 -6
  123. package/lib/module/skia/types/Image/ImageFactory.js.map +1 -1
  124. package/lib/module/skia/types/Skia.d.ts +5 -15
  125. package/lib/module/skia/types/Skia.js.map +1 -1
  126. package/lib/module/skia/types/index.d.ts +0 -1
  127. package/lib/module/skia/types/index.js +0 -1
  128. package/lib/module/skia/types/index.js.map +1 -1
  129. package/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  130. package/lib/module/skia/web/JsiSkImageFactory.js +2 -2
  131. package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
  132. package/lib/module/skia/web/JsiSkia.js +1 -4
  133. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  134. package/lib/module/sksg/Container.native.js +21 -2
  135. package/lib/module/sksg/Container.native.js.map +1 -1
  136. package/lib/module/views/index.d.ts +0 -1
  137. package/lib/module/views/index.js +0 -1
  138. package/lib/module/views/index.js.map +1 -1
  139. package/lib/typescript/lib/commonjs/external/reanimated/renderHelpers.d.ts +2 -0
  140. package/lib/typescript/lib/commonjs/mock/index.d.ts +0 -1
  141. package/lib/typescript/lib/commonjs/skia/SkiaWorkletSerialization.d.ts +2 -0
  142. package/lib/typescript/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  143. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -2
  144. package/lib/typescript/lib/module/external/reanimated/renderHelpers.d.ts +15 -0
  145. package/lib/typescript/lib/module/mock/index.d.ts +0 -2
  146. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -2
  147. package/lib/typescript/lib/module/skia/SkiaWorkletSerialization.d.ts +1 -0
  148. package/lib/typescript/lib/module/skia/types/index.d.ts +0 -1
  149. package/lib/typescript/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  150. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -2
  151. package/lib/typescript/lib/module/views/index.d.ts +0 -1
  152. package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +15 -0
  153. package/lib/typescript/src/skia/SkiaWorkletSerialization.d.ts +1 -0
  154. package/lib/typescript/src/skia/types/Image/ImageFactory.d.ts +15 -6
  155. package/lib/typescript/src/skia/types/Skia.d.ts +5 -15
  156. package/lib/typescript/src/skia/types/index.d.ts +0 -1
  157. package/lib/typescript/src/skia/web/JsiSkImageFactory.d.ts +2 -2
  158. package/lib/typescript/src/views/index.d.ts +0 -1
  159. package/package.json +8 -5
  160. package/react-native-skia.podspec +38 -5
  161. package/src/external/reanimated/renderHelpers.ts +30 -0
  162. package/src/mock/index.ts +0 -1
  163. package/src/skia/NativeSetup.ts +5 -0
  164. package/src/skia/SkiaWorkletSerialization.ts +67 -0
  165. package/src/skia/types/Image/ImageFactory.ts +15 -6
  166. package/src/skia/types/Skia.ts +5 -15
  167. package/src/skia/types/index.ts +0 -1
  168. package/src/skia/web/JsiSkImageFactory.ts +3 -3
  169. package/src/skia/web/JsiSkia.ts +2 -5
  170. package/src/sksg/Container.native.ts +40 -2
  171. package/src/views/index.ts +0 -1
  172. package/android/cpp/jni/JniWebGPUView.cpp +0 -112
  173. package/android/cpp/rnskia-android/SkiaPlatformContext.h +0 -26
  174. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUSurfaceView.java +0 -43
  175. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUTextureView.java +0 -50
  176. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUView.java +0 -98
  177. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewAPI.java +0 -19
  178. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewManager.java +0 -58
  179. package/apple/RNWebGPUAppleNativeBuffer.mm +0 -33
  180. package/apple/SkiaPlatformContext.h +0 -20
  181. package/apple/SkiaPlatformContext.mm +0 -21
  182. package/apple/SkiaWebGPUView.mm +0 -81
  183. package/apple/WebGPUMetalView.mm +0 -136
  184. package/cpp/api/JsiSkHostObjects.h +0 -257
  185. package/cpp/jsi/JsiHostObject.cpp +0 -137
  186. package/cpp/jsi/JsiHostObject.h +0 -385
  187. package/cpp/rnwgpu/ArrayBuffer.h +0 -117
  188. package/cpp/rnwgpu/Canvas.h +0 -50
  189. package/cpp/rnwgpu/PlatformContext.h +0 -18
  190. package/cpp/rnwgpu/SurfaceRegistry.h +0 -605
  191. package/cpp/rnwgpu/api/AppleNativeBuffer.h +0 -22
  192. package/cpp/rnwgpu/api/Convertors.h +0 -783
  193. package/cpp/rnwgpu/api/External.h +0 -12
  194. package/cpp/rnwgpu/api/GPU.cpp +0 -162
  195. package/cpp/rnwgpu/api/GPU.h +0 -60
  196. package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -240
  197. package/cpp/rnwgpu/api/GPUAdapter.h +0 -60
  198. package/cpp/rnwgpu/api/GPUAdapterInfo.h +0 -57
  199. package/cpp/rnwgpu/api/GPUBindGroup.cpp +0 -3
  200. package/cpp/rnwgpu/api/GPUBindGroup.h +0 -51
  201. package/cpp/rnwgpu/api/GPUBindGroupLayout.h +0 -52
  202. package/cpp/rnwgpu/api/GPUBuffer.cpp +0 -107
  203. package/cpp/rnwgpu/api/GPUBuffer.h +0 -88
  204. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -75
  205. package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -70
  206. package/cpp/rnwgpu/api/GPUCommandBuffer.h +0 -45
  207. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +0 -179
  208. package/cpp/rnwgpu/api/GPUCommandEncoder.h +0 -111
  209. package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -79
  210. package/cpp/rnwgpu/api/GPUCompilationMessage.h +0 -36
  211. package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +0 -60
  212. package/cpp/rnwgpu/api/GPUComputePassEncoder.h +0 -85
  213. package/cpp/rnwgpu/api/GPUComputePipeline.cpp +0 -12
  214. package/cpp/rnwgpu/api/GPUComputePipeline.h +0 -60
  215. package/cpp/rnwgpu/api/GPUDevice.cpp +0 -614
  216. package/cpp/rnwgpu/api/GPUDevice.h +0 -258
  217. package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
  218. package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
  219. package/cpp/rnwgpu/api/GPUError.h +0 -35
  220. package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
  221. package/cpp/rnwgpu/api/GPUExternalTexture.cpp +0 -139
  222. package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -95
  223. package/cpp/rnwgpu/api/GPUFeatures.h +0 -203
  224. package/cpp/rnwgpu/api/GPUInternalError.h +0 -31
  225. package/cpp/rnwgpu/api/GPUOrigin2D.h +0 -55
  226. package/cpp/rnwgpu/api/GPUOrigin3D.h +0 -62
  227. package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +0 -33
  228. package/cpp/rnwgpu/api/GPUPipelineLayout.h +0 -45
  229. package/cpp/rnwgpu/api/GPUQuerySet.cpp +0 -11
  230. package/cpp/rnwgpu/api/GPUQuerySet.h +0 -73
  231. package/cpp/rnwgpu/api/GPUQueue.cpp +0 -179
  232. package/cpp/rnwgpu/api/GPUQueue.h +0 -84
  233. package/cpp/rnwgpu/api/GPURenderBundle.h +0 -44
  234. package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +0 -131
  235. package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +0 -110
  236. package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +0 -165
  237. package/cpp/rnwgpu/api/GPURenderPassEncoder.h +0 -130
  238. package/cpp/rnwgpu/api/GPURenderPipeline.cpp +0 -13
  239. package/cpp/rnwgpu/api/GPURenderPipeline.h +0 -61
  240. package/cpp/rnwgpu/api/GPUSampler.h +0 -44
  241. package/cpp/rnwgpu/api/GPUShaderModule.cpp +0 -56
  242. package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
  243. package/cpp/rnwgpu/api/GPUSharedFence.cpp +0 -80
  244. package/cpp/rnwgpu/api/GPUSharedFence.h +0 -53
  245. package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +0 -135
  246. package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +0 -75
  247. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +0 -129
  248. package/cpp/rnwgpu/api/GPUSupportedLimits.h +0 -131
  249. package/cpp/rnwgpu/api/GPUTexture.cpp +0 -47
  250. package/cpp/rnwgpu/api/GPUTexture.h +0 -162
  251. package/cpp/rnwgpu/api/GPUTextureView.h +0 -44
  252. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +0 -60
  253. package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
  254. package/cpp/rnwgpu/api/ImageBitmap.h +0 -62
  255. package/cpp/rnwgpu/api/NativeBufferUtils.h +0 -87
  256. package/cpp/rnwgpu/api/RNWebGPU.h +0 -82
  257. package/cpp/rnwgpu/api/WebGPUConstants.h +0 -36
  258. package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -64
  259. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -78
  260. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -56
  261. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -97
  262. package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -57
  263. package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -52
  264. package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -56
  265. package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -56
  266. package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -59
  267. package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +0 -39
  268. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +0 -76
  269. package/cpp/rnwgpu/api/descriptors/GPUColor.h +0 -66
  270. package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -58
  271. package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
  272. package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -45
  273. package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -45
  274. package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -56
  275. package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -58
  276. package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -67
  277. package/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h +0 -56
  278. package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -103
  279. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -109
  280. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -38
  281. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -90
  282. package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -73
  283. package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -62
  284. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
  285. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -65
  286. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -81
  287. package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -54
  288. package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
  289. package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -54
  290. package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -57
  291. package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -69
  292. package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -61
  293. package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -55
  294. package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -43
  295. package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -45
  296. package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -80
  297. package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -81
  298. package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -101
  299. package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -92
  300. package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -58
  301. package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -103
  302. package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -51
  303. package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -45
  304. package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -110
  305. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -60
  306. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -62
  307. package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
  308. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h +0 -58
  309. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h +0 -51
  310. package/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h +0 -73
  311. package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -64
  312. package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -59
  313. package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -59
  314. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -91
  315. package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
  316. package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -91
  317. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -64
  318. package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -53
  319. package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -62
  320. package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -73
  321. package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1969
  322. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -214
  323. package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -58
  324. package/cpp/rnwgpu/async/RuntimeContext.cpp +0 -199
  325. package/cpp/rnwgpu/async/RuntimeContext.h +0 -134
  326. package/lib/commonjs/skia/types/WebGPU.d.ts +0 -184
  327. package/lib/commonjs/skia/types/WebGPU.js +0 -105
  328. package/lib/commonjs/skia/types/WebGPU.js.map +0 -1
  329. package/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -8
  330. package/lib/commonjs/specs/WebGPUViewNativeComponent.js +0 -10
  331. package/lib/commonjs/specs/WebGPUViewNativeComponent.js.map +0 -1
  332. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  333. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js +0 -103
  334. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  335. package/lib/commonjs/specs/utils.d.ts +0 -1
  336. package/lib/commonjs/specs/utils.js +0 -11
  337. package/lib/commonjs/specs/utils.js.map +0 -1
  338. package/lib/commonjs/views/WebGPUCanvas.d.ts +0 -33
  339. package/lib/commonjs/views/WebGPUCanvas.js +0 -79
  340. package/lib/commonjs/views/WebGPUCanvas.js.map +0 -1
  341. package/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -23
  342. package/lib/commonjs/views/WebGPUCanvas.web.js +0 -20
  343. package/lib/commonjs/views/WebGPUCanvas.web.js.map +0 -1
  344. package/lib/module/skia/types/WebGPU.d.ts +0 -184
  345. package/lib/module/skia/types/WebGPU.js +0 -99
  346. package/lib/module/skia/types/WebGPU.js.map +0 -1
  347. package/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -8
  348. package/lib/module/specs/WebGPUViewNativeComponent.js +0 -4
  349. package/lib/module/specs/WebGPUViewNativeComponent.js.map +0 -1
  350. package/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  351. package/lib/module/specs/WebGPUViewNativeComponent.web.js +0 -96
  352. package/lib/module/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  353. package/lib/module/specs/utils.d.ts +0 -1
  354. package/lib/module/specs/utils.js +0 -5
  355. package/lib/module/specs/utils.js.map +0 -1
  356. package/lib/module/views/WebGPUCanvas.d.ts +0 -33
  357. package/lib/module/views/WebGPUCanvas.js +0 -70
  358. package/lib/module/views/WebGPUCanvas.js.map +0 -1
  359. package/lib/module/views/WebGPUCanvas.web.d.ts +0 -23
  360. package/lib/module/views/WebGPUCanvas.web.js +0 -12
  361. package/lib/module/views/WebGPUCanvas.web.js.map +0 -1
  362. package/lib/typescript/lib/commonjs/skia/types/WebGPU.d.ts +0 -2
  363. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -4
  364. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -3
  365. package/lib/typescript/lib/commonjs/specs/utils.d.ts +0 -2
  366. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.d.ts +0 -6
  367. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -6
  368. package/lib/typescript/lib/module/skia/types/WebGPU.d.ts +0 -31
  369. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -2
  370. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -2
  371. package/lib/typescript/lib/module/specs/utils.d.ts +0 -1
  372. package/lib/typescript/lib/module/views/WebGPUCanvas.d.ts +0 -7
  373. package/lib/typescript/lib/module/views/WebGPUCanvas.web.d.ts +0 -8
  374. package/lib/typescript/src/skia/types/WebGPU.d.ts +0 -184
  375. package/lib/typescript/src/specs/WebGPUViewNativeComponent.d.ts +0 -8
  376. package/lib/typescript/src/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  377. package/lib/typescript/src/specs/utils.d.ts +0 -1
  378. package/lib/typescript/src/views/WebGPUCanvas.d.ts +0 -33
  379. package/lib/typescript/src/views/WebGPUCanvas.web.d.ts +0 -23
  380. package/src/skia/types/WebGPU.ts +0 -226
  381. package/src/specs/WebGPUViewNativeComponent.ts +0 -11
  382. package/src/specs/WebGPUViewNativeComponent.web.ts +0 -110
  383. package/src/specs/utils.ts +0 -4
  384. package/src/views/WebGPUCanvas.tsx +0 -125
  385. package/src/views/WebGPUCanvas.web.tsx +0 -36
  386. /package/cpp/{jsi2 → jsi}/Promise.cpp +0 -0
  387. /package/cpp/{jsi2 → jsi}/Promise.h +0 -0
@@ -1,13 +1,15 @@
1
1
  #pragma once
2
2
 
3
3
  #include <memory>
4
+ #include <string>
4
5
  #include <utility>
5
6
  #include <vector>
6
7
 
7
8
  #include <jsi/jsi.h>
8
9
 
10
+ #include "JsiSkConverters.h"
9
11
  #include "JsiSkFont.h"
10
- #include "JsiSkHostObjects.h"
12
+ #include "JsiSkNativeObjects.h"
11
13
  #include "JsiSkRSXform.h"
12
14
  #include "JsiSkTextBlob.h"
13
15
 
@@ -22,99 +24,71 @@ namespace RNSkia {
22
24
 
23
25
  namespace jsi = facebook::jsi;
24
26
 
25
- class JsiSkTextBlobFactory : public JsiSkHostObject {
27
+ class JsiSkTextBlobFactory : public JsiSkNativeObject<JsiSkTextBlobFactory> {
26
28
  public:
27
- JSI_HOST_FUNCTION(MakeFromText) {
28
- auto str = arguments[0].asString(runtime).utf8(runtime);
29
- auto font = JsiSkFont::fromValue(runtime, arguments[1]);
29
+ static constexpr const char *CLASS_NAME = "TextBlobFactory";
30
+
31
+ std::shared_ptr<JsiSkTextBlob> MakeFromText(std::string str,
32
+ std::shared_ptr<SkFont> font) {
30
33
  auto textBlob = SkTextBlob::MakeFromString(str.c_str(), *font);
31
- auto hostObjectInstance =
32
- std::make_shared<JsiSkTextBlob>(getContext(), std::move(textBlob));
33
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
34
- runtime, hostObjectInstance, getContext());
34
+ return std::make_shared<JsiSkTextBlob>(getContext(), std::move(textBlob));
35
35
  }
36
36
 
37
- JSI_HOST_FUNCTION(MakeFromGlyphs) {
38
- auto jsiGlyphs = arguments[0].asObject(runtime).asArray(runtime);
39
- auto font = JsiSkFont::fromValue(runtime, arguments[1]);
37
+ std::shared_ptr<JsiSkTextBlob> MakeFromGlyphs(std::vector<int> glyphIds,
38
+ std::shared_ptr<SkFont> font) {
40
39
  int bytesPerGlyph = 2;
41
40
  std::vector<SkGlyphID> glyphs;
42
- int glyphsSize = static_cast<int>(jsiGlyphs.size(runtime));
43
- glyphs.reserve(glyphsSize);
44
- for (int i = 0; i < glyphsSize; i++) {
45
- glyphs.push_back(jsiGlyphs.getValueAtIndex(runtime, i).asNumber());
41
+ glyphs.reserve(glyphIds.size());
42
+ for (auto glyph : glyphIds) {
43
+ glyphs.push_back(static_cast<SkGlyphID>(glyph));
46
44
  }
47
45
  auto textBlob =
48
46
  SkTextBlob::MakeFromText(glyphs.data(), glyphs.size() * bytesPerGlyph,
49
47
  *font, SkTextEncoding::kGlyphID);
50
- auto hostObjectInstance =
51
- std::make_shared<JsiSkTextBlob>(getContext(), std::move(textBlob));
52
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
53
- runtime, hostObjectInstance, getContext());
48
+ return std::make_shared<JsiSkTextBlob>(getContext(), std::move(textBlob));
54
49
  }
55
50
 
56
- JSI_HOST_FUNCTION(MakeFromRSXform) {
57
- auto str = arguments[0].asString(runtime).utf8(runtime);
58
- auto jsiRsxforms = arguments[1].asObject(runtime).asArray(runtime);
59
- auto font = JsiSkFont::fromValue(runtime, arguments[2]);
60
- std::vector<SkRSXform> rsxforms;
61
- int rsxformsSize = static_cast<int>(jsiRsxforms.size(runtime));
62
- rsxforms.reserve(rsxformsSize);
63
- for (int i = 0; i < rsxformsSize; i++) {
64
- auto rsxform = JsiSkRSXform::fromValue(
65
- runtime, jsiRsxforms.getValueAtIndex(runtime, i));
66
- rsxforms.push_back(*rsxform);
67
- }
51
+ std::shared_ptr<JsiSkTextBlob>
52
+ MakeFromRSXform(std::string str, std::vector<SkRSXform> rsxforms,
53
+ std::shared_ptr<SkFont> font) {
68
54
  auto x = SkSpan(rsxforms.data(), rsxforms.size());
69
55
  auto textBlob =
70
56
  SkTextBlob::MakeFromRSXform(str.c_str(), str.length(), x, *font);
71
- auto hostObjectInstance =
72
- std::make_shared<JsiSkTextBlob>(getContext(), std::move(textBlob));
73
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
74
- runtime, hostObjectInstance, getContext());
57
+ return std::make_shared<JsiSkTextBlob>(getContext(), std::move(textBlob));
75
58
  }
76
59
 
77
- JSI_HOST_FUNCTION(MakeFromRSXformGlyphs) {
78
- auto jsiGlyphs = arguments[0].asObject(runtime).asArray(runtime);
79
- auto jsiRsxforms = arguments[1].asObject(runtime).asArray(runtime);
80
- auto font = JsiSkFont::fromValue(runtime, arguments[2]);
60
+ std::shared_ptr<JsiSkTextBlob>
61
+ MakeFromRSXformGlyphs(std::vector<int> glyphIds,
62
+ std::vector<SkRSXform> rsxforms,
63
+ std::shared_ptr<SkFont> font) {
81
64
  int bytesPerGlyph = 2;
82
65
  std::vector<SkGlyphID> glyphs;
83
- int glyphsSize = static_cast<int>(jsiGlyphs.size(runtime));
84
- glyphs.reserve(glyphsSize);
85
- for (int i = 0; i < glyphsSize; i++) {
86
- glyphs.push_back(jsiGlyphs.getValueAtIndex(runtime, i).asNumber());
87
- }
88
- std::vector<SkRSXform> rsxforms;
89
- int rsxformsSize = static_cast<int>(jsiRsxforms.size(runtime));
90
- rsxforms.reserve(rsxformsSize);
91
- for (int i = 0; i < rsxformsSize; i++) {
92
- auto rsxform = JsiSkRSXform::fromValue(
93
- runtime, jsiRsxforms.getValueAtIndex(runtime, i));
94
- rsxforms.push_back(*rsxform);
66
+ glyphs.reserve(glyphIds.size());
67
+ for (auto glyph : glyphIds) {
68
+ glyphs.push_back(static_cast<SkGlyphID>(glyph));
95
69
  }
96
70
  auto x = SkSpan(rsxforms.data(), rsxforms.size());
97
71
  auto textBlob = SkTextBlob::MakeFromRSXform(
98
72
  glyphs.data(), glyphs.size() * bytesPerGlyph, x, *font,
99
73
  SkTextEncoding::kGlyphID);
100
- auto hostObjectInstance =
101
- std::make_shared<JsiSkTextBlob>(getContext(), std::move(textBlob));
102
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
103
- runtime, hostObjectInstance, getContext());
74
+ return std::make_shared<JsiSkTextBlob>(getContext(), std::move(textBlob));
104
75
  }
105
76
 
106
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkTextBlobFactory, MakeFromText),
107
- JSI_EXPORT_FUNC(JsiSkTextBlobFactory, MakeFromGlyphs),
108
- JSI_EXPORT_FUNC(JsiSkTextBlobFactory, MakeFromRSXform),
109
- JSI_EXPORT_FUNC(JsiSkTextBlobFactory,
110
- MakeFromRSXformGlyphs), )
111
-
112
- size_t getMemoryPressure() const override { return 2048; }
113
-
114
- std::string getObjectType() const override { return "JsiSkTextBlobFactory"; }
77
+ size_t getMemoryPressure() override { return 2048; }
78
+
79
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
80
+ installMethod(runtime, prototype, "MakeFromText",
81
+ &JsiSkTextBlobFactory::MakeFromText);
82
+ installMethod(runtime, prototype, "MakeFromGlyphs",
83
+ &JsiSkTextBlobFactory::MakeFromGlyphs);
84
+ installMethod(runtime, prototype, "MakeFromRSXform",
85
+ &JsiSkTextBlobFactory::MakeFromRSXform);
86
+ installMethod(runtime, prototype, "MakeFromRSXformGlyphs",
87
+ &JsiSkTextBlobFactory::MakeFromRSXformGlyphs);
88
+ }
115
89
 
116
90
  explicit JsiSkTextBlobFactory(std::shared_ptr<RNSkPlatformContext> context)
117
- : JsiSkHostObject(std::move(context)) {}
91
+ : JsiSkNativeObject<JsiSkTextBlobFactory>(std::move(context)) {}
118
92
  };
119
93
 
120
94
  } // namespace RNSkia
@@ -1,12 +1,14 @@
1
1
  #pragma once
2
2
 
3
3
  #include <memory>
4
+ #include <string>
4
5
  #include <utility>
5
6
  #include <vector>
6
7
 
7
8
  #include <jsi/jsi.h>
8
9
 
9
- #include "JsiSkHostObjects.h"
10
+ #include "JsiSkConverters.h"
11
+ #include "JsiSkNativeObjects.h"
10
12
  #include "utils/RNSkLog.h"
11
13
 
12
14
  #pragma clang diagnostic push
@@ -22,21 +24,20 @@ namespace RNSkia {
22
24
 
23
25
  namespace jsi = facebook::jsi;
24
26
 
25
- class JsiSkTypeface : public JsiSkWrappingSkPtrHostObject<SkTypeface> {
27
+ class JsiSkTypeface
28
+ : public JsiSkWrappingSkPtrNativeObject<JsiSkTypeface, SkTypeface> {
26
29
  public:
27
- EXPORT_JSI_API_TYPENAME(JsiSkTypeface, Typeface)
28
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkTypeface, getGlyphIDs),
29
- JSI_EXPORT_FUNC(JsiSkTypeface, dispose))
30
+ static constexpr const char *CLASS_NAME = "Typeface";
30
31
 
31
32
  JsiSkTypeface(std::shared_ptr<RNSkPlatformContext> context,
32
33
  sk_sp<SkTypeface> typeface)
33
- : JsiSkWrappingSkPtrHostObject(std::move(context), std::move(typeface)) {}
34
+ : JsiSkWrappingSkPtrNativeObject<JsiSkTypeface, SkTypeface>(
35
+ std::move(context), std::move(typeface)) {}
34
36
 
35
- JSI_HOST_FUNCTION(getGlyphIDs) {
36
- auto str = arguments[0].asString(runtime).utf8(runtime);
37
+ std::vector<int> getGlyphIDs(std::string str, JsiOptional<int> numGlyphs) {
37
38
  int numGlyphIDs =
38
- count > 1 && !arguments[1].isNull() && !arguments[1].isUndefined()
39
- ? static_cast<int>(arguments[1].asNumber())
39
+ numGlyphs.has_value()
40
+ ? *numGlyphs
40
41
  : getObject()->textToGlyphs(str.c_str(), str.length(),
41
42
  SkTextEncoding::kUTF8,
42
43
  SkSpan<SkGlyphID>(nullptr, 0));
@@ -45,15 +46,10 @@ public:
45
46
  getObject()->textToGlyphs(
46
47
  str.c_str(), str.length(), SkTextEncoding::kUTF8,
47
48
  SkSpan(static_cast<SkGlyphID *>(glyphIDs.data()), numGlyphIDs));
48
- auto jsiGlyphIDs = jsi::Array(runtime, numGlyphIDs);
49
- for (int i = 0; i < numGlyphIDs; i++) {
50
- jsiGlyphIDs.setValueAtIndex(runtime, i,
51
- jsi::Value(static_cast<int>(glyphIDs[i])));
52
- }
53
- return jsiGlyphIDs;
49
+ return std::vector<int>(glyphIDs.begin(), glyphIDs.end());
54
50
  }
55
51
 
56
- size_t getMemoryPressure() const override {
52
+ size_t getMemoryPressure() override {
57
53
  auto typeface = getObject();
58
54
  if (!typeface) {
59
55
  return 0;
@@ -74,13 +70,20 @@ public:
74
70
  static jsi::Value toValue(jsi::Runtime &runtime,
75
71
  std::shared_ptr<RNSkPlatformContext> context,
76
72
  sk_sp<SkTypeface> tf) {
77
- auto hostObjectInstance =
78
- std::make_shared<JsiSkTypeface>(context, std::move(tf));
79
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
80
- runtime, hostObjectInstance, context);
73
+ return makeJsiObject(
74
+ runtime, std::make_shared<JsiSkTypeface>(context, std::move(tf)));
75
+ }
76
+
77
+ static sk_sp<SkTypeface> fromValue(jsi::Runtime &runtime,
78
+ const jsi::Value &obj) {
79
+ return objectFromValue(runtime, obj);
81
80
  }
82
81
 
83
- std::string getObjectType() const override { return "JsiSkTypeface"; }
82
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
83
+ installCommon(runtime, prototype);
84
+ installMethod(runtime, prototype, "getGlyphIDs",
85
+ &JsiSkTypeface::getGlyphIDs);
86
+ }
84
87
  };
85
88
 
86
89
  } // namespace RNSkia
@@ -2,41 +2,43 @@
2
2
 
3
3
  #include <memory>
4
4
  #include <utility>
5
+ #include <variant>
5
6
 
6
7
  #include <jsi/jsi.h>
7
8
 
9
+ #include "JsiSkConverters.h"
8
10
  #include "JsiSkData.h"
9
- #include "JsiSkHostObjects.h"
11
+ #include "JsiSkFontMgrFactory.h"
12
+ #include "JsiSkNativeObjects.h"
10
13
  #include "JsiSkTypeface.h"
11
14
 
12
15
  namespace RNSkia {
13
16
 
14
17
  namespace jsi = facebook::jsi;
15
18
 
16
- class JsiSkTypefaceFactory : public JsiSkHostObject {
19
+ class JsiSkTypefaceFactory : public JsiSkNativeObject<JsiSkTypefaceFactory> {
17
20
  public:
18
- JSI_HOST_FUNCTION(MakeFreeTypeFaceFromData) {
19
- auto data = JsiSkData::fromValue(runtime, arguments[0]);
21
+ static constexpr const char *CLASS_NAME = "TypefaceFactory";
22
+
23
+ std::variant<std::nullptr_t, std::shared_ptr<JsiSkTypeface>>
24
+ MakeFreeTypeFaceFromData(sk_sp<SkData> data) {
20
25
  auto fontMgr = JsiSkFontMgrFactory::getFontMgr(getContext());
21
26
  auto typeface = fontMgr->makeFromData(std::move(data));
22
27
  if (typeface == nullptr) {
23
- return jsi::Value::null();
28
+ return nullptr;
24
29
  }
25
- auto hostObjectInstance =
26
- std::make_shared<JsiSkTypeface>(getContext(), std::move(typeface));
27
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
28
- runtime, hostObjectInstance, getContext());
30
+ return std::make_shared<JsiSkTypeface>(getContext(), std::move(typeface));
29
31
  }
30
32
 
31
- size_t getMemoryPressure() const override { return 1024; }
32
-
33
- std::string getObjectType() const override { return "JsiSkTypefaceFactory"; }
33
+ size_t getMemoryPressure() override { return 1024; }
34
34
 
35
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkTypefaceFactory,
36
- MakeFreeTypeFaceFromData))
35
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
36
+ installMethod(runtime, prototype, "MakeFreeTypeFaceFromData",
37
+ &JsiSkTypefaceFactory::MakeFreeTypeFaceFromData);
38
+ }
37
39
 
38
40
  explicit JsiSkTypefaceFactory(std::shared_ptr<RNSkPlatformContext> context)
39
- : JsiSkHostObject(std::move(context)) {}
41
+ : JsiSkNativeObject<JsiSkTypefaceFactory>(std::move(context)) {}
40
42
  };
41
43
 
42
44
  } // namespace RNSkia
@@ -1,12 +1,15 @@
1
1
  #pragma once
2
2
 
3
3
  #include <memory>
4
+ #include <optional>
5
+ #include <string>
4
6
  #include <utility>
5
7
 
6
8
  #include <jsi/jsi.h>
7
9
 
10
+ #include "JsiSkConverters.h"
8
11
  #include "JsiSkFontStyle.h"
9
- #include "JsiSkHostObjects.h"
12
+ #include "JsiSkNativeObjects.h"
10
13
  #include "JsiSkTypeface.h"
11
14
 
12
15
  #include "utils/RNSkLog.h"
@@ -25,29 +28,21 @@ namespace jsi = facebook::jsi;
25
28
  namespace para = skia::textlayout;
26
29
 
27
30
  class JsiSkTypefaceFontProvider
28
- : public JsiSkWrappingSkPtrHostObject<para::TypefaceFontProvider> {
31
+ : public JsiSkWrappingSkPtrNativeObject<JsiSkTypefaceFontProvider,
32
+ para::TypefaceFontProvider> {
29
33
  public:
30
- EXPORT_JSI_API_TYPENAME(JsiSkTypefaceFontProvider, TypefaceFontProvider)
31
-
32
- JSI_EXPORT_FUNCTIONS(
33
- JSI_EXPORT_FUNC(JsiSkTypefaceFontProvider, dispose),
34
- JSI_EXPORT_FUNC(JsiSkTypefaceFontProvider, registerFont),
35
- JSI_EXPORT_FUNC(JsiSkTypefaceFontProvider, matchFamilyStyle),
36
- JSI_EXPORT_FUNC(JsiSkTypefaceFontProvider, countFamilies),
37
- JSI_EXPORT_FUNC(JsiSkTypefaceFontProvider, getFamilyName))
38
-
39
- JSI_HOST_FUNCTION(registerFont) {
40
- sk_sp<SkTypeface> typeface =
41
- JsiSkTypeface::fromValue(runtime, arguments[0]);
42
- SkString familyName(arguments[1].asString(runtime).utf8(runtime).c_str());
34
+ static constexpr const char *CLASS_NAME = "TypefaceFontProvider";
35
+
36
+ void registerFont(sk_sp<SkTypeface> typeface, std::string familyNameStr) {
37
+ SkString familyName(familyNameStr.c_str());
43
38
  getObject()->registerTypeface(typeface, familyName);
44
- return jsi::Value::undefined();
45
39
  }
46
40
 
47
- JSI_HOST_FUNCTION(matchFamilyStyle) {
48
- auto name = count > 0 ? arguments[0].asString(runtime).utf8(runtime) : "";
49
- auto fontStyle =
50
- count > 1 ? JsiSkFontStyle::fromValue(runtime, arguments[1]) : nullptr;
41
+ std::shared_ptr<JsiSkTypeface>
42
+ matchFamilyStyle(std::optional<std::string> nameParam,
43
+ std::optional<std::shared_ptr<SkFontStyle>> fontStyleParam) {
44
+ auto name = nameParam.value_or("");
45
+ auto fontStyle = fontStyleParam.value_or(nullptr);
51
46
  if (name == "" || fontStyle == nullptr) {
52
47
  throw std::runtime_error("matchFamilyStyle requires a name and a style");
53
48
  }
@@ -59,31 +54,24 @@ public:
59
54
  if (!typeface) {
60
55
  throw std::runtime_error("Could not find font style for " + name);
61
56
  }
62
- auto hostObjectInstance =
63
- std::make_shared<JsiSkTypeface>(getContext(), std::move(typeface));
64
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
65
- runtime, hostObjectInstance, getContext());
57
+ return std::make_shared<JsiSkTypeface>(getContext(), std::move(typeface));
66
58
  }
67
59
 
68
- JSI_HOST_FUNCTION(countFamilies) { return getObject()->countFamilies(); }
60
+ int countFamilies() { return getObject()->countFamilies(); }
69
61
 
70
- JSI_HOST_FUNCTION(getFamilyName) {
71
- auto i = static_cast<int>(arguments[0].asNumber());
62
+ std::string getFamilyName(int i) {
72
63
  SkString name;
73
64
  getObject()->getFamilyName(i, &name);
74
- return jsi::String::createFromUtf8(runtime, name.c_str());
65
+ return std::string(name.c_str());
75
66
  }
76
67
 
77
68
  JsiSkTypefaceFontProvider(std::shared_ptr<RNSkPlatformContext> context,
78
69
  sk_sp<para::TypefaceFontProvider> tfProvider)
79
- : JsiSkWrappingSkPtrHostObject(std::move(context),
80
- std::move(tfProvider)) {}
81
-
82
- size_t getMemoryPressure() const override { return 4096; }
70
+ : JsiSkWrappingSkPtrNativeObject<JsiSkTypefaceFontProvider,
71
+ para::TypefaceFontProvider>(
72
+ std::move(context), std::move(tfProvider)) {}
83
73
 
84
- std::string getObjectType() const override {
85
- return "JsiSkTypefaceFontProvider";
86
- }
74
+ size_t getMemoryPressure() override { return 4096; }
87
75
 
88
76
  /**
89
77
  Returns the jsi object from a host object of this type
@@ -91,10 +79,26 @@ public:
91
79
  static jsi::Value toValue(jsi::Runtime &runtime,
92
80
  std::shared_ptr<RNSkPlatformContext> context,
93
81
  sk_sp<para::TypefaceFontProvider> tfProvider) {
94
- auto provider = std::make_shared<JsiSkTypefaceFontProvider>(
95
- std::move(context), std::move(tfProvider));
96
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, provider,
97
- context);
82
+ return makeJsiObject(runtime,
83
+ std::make_shared<JsiSkTypefaceFontProvider>(
84
+ std::move(context), std::move(tfProvider)));
85
+ }
86
+
87
+ static sk_sp<para::TypefaceFontProvider> fromValue(jsi::Runtime &runtime,
88
+ const jsi::Value &obj) {
89
+ return objectFromValue(runtime, obj);
90
+ }
91
+
92
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
93
+ installCommon(runtime, prototype);
94
+ installMethod(runtime, prototype, "registerFont",
95
+ &JsiSkTypefaceFontProvider::registerFont);
96
+ installMethod(runtime, prototype, "matchFamilyStyle",
97
+ &JsiSkTypefaceFontProvider::matchFamilyStyle);
98
+ installMethod(runtime, prototype, "countFamilies",
99
+ &JsiSkTypefaceFontProvider::countFamilies);
100
+ installMethod(runtime, prototype, "getFamilyName",
101
+ &JsiSkTypefaceFontProvider::getFamilyName);
98
102
  }
99
103
  };
100
104
 
@@ -6,7 +6,7 @@
6
6
  #include <jsi/jsi.h>
7
7
 
8
8
  #include "JsiSkData.h"
9
- #include "JsiSkHostObjects.h"
9
+ #include "JsiSkNativeObjects.h"
10
10
  #include "JsiSkTypefaceFontProvider.h"
11
11
 
12
12
  namespace RNSkia {
@@ -14,26 +14,27 @@ namespace RNSkia {
14
14
  namespace jsi = facebook::jsi;
15
15
  namespace para = skia::textlayout;
16
16
 
17
- class JsiSkTypefaceFontProviderFactory : public JsiSkHostObject {
17
+ class JsiSkTypefaceFontProviderFactory
18
+ : public JsiSkNativeObject<JsiSkTypefaceFontProviderFactory> {
18
19
  public:
19
- JSI_HOST_FUNCTION(Make) {
20
- auto provider = std::make_shared<JsiSkTypefaceFontProvider>(
20
+ static constexpr const char *CLASS_NAME = "TypefaceFontProviderFactory";
21
+
22
+ std::shared_ptr<JsiSkTypefaceFontProvider> Make() {
23
+ return std::make_shared<JsiSkTypefaceFontProvider>(
21
24
  getContext(), sk_make_sp<para::TypefaceFontProvider>());
22
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, provider,
23
- getContext());
24
25
  }
25
26
 
26
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkTypefaceFontProviderFactory, Make))
27
-
28
- size_t getMemoryPressure() const override { return 2048; }
27
+ size_t getMemoryPressure() override { return 2048; }
29
28
 
30
- std::string getObjectType() const override {
31
- return "JsiSkTypefaceFontProviderFactory";
29
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
30
+ installMethod(runtime, prototype, "Make",
31
+ &JsiSkTypefaceFontProviderFactory::Make);
32
32
  }
33
33
 
34
34
  explicit JsiSkTypefaceFontProviderFactory(
35
35
  std::shared_ptr<RNSkPlatformContext> context)
36
- : JsiSkHostObject(std::move(context)) {}
36
+ : JsiSkNativeObject<JsiSkTypefaceFontProviderFactory>(
37
+ std::move(context)) {}
37
38
  };
38
39
 
39
40
  } // namespace RNSkia
@@ -5,7 +5,8 @@
5
5
  #include <utility>
6
6
  #include <vector>
7
7
 
8
- #include "JsiSkHostObjects.h"
8
+ #include "JsiSkNativeObjects.h"
9
+ #include "JsiSkRect.h"
9
10
 
10
11
  #pragma clang diagnostic push
11
12
  #pragma clang diagnostic ignored "-Wdocumentation"
@@ -18,27 +19,24 @@ namespace RNSkia {
18
19
 
19
20
  namespace jsi = facebook::jsi;
20
21
 
21
- class JsiSkVertices : public JsiSkWrappingSkPtrHostObject<SkVertices> {
22
+ class JsiSkVertices
23
+ : public JsiSkWrappingSkPtrNativeObject<JsiSkVertices, SkVertices> {
22
24
  public:
25
+ static constexpr const char *CLASS_NAME = "Vertices";
26
+
23
27
  JsiSkVertices(std::shared_ptr<RNSkPlatformContext> context,
24
28
  sk_sp<SkVertices> vertices)
25
- : JsiSkWrappingSkPtrHostObject<SkVertices>(std::move(context),
26
- std::move(vertices)) {}
27
-
28
- EXPORT_JSI_API_TYPENAME(JsiSkVertices, Vertices)
29
+ : JsiSkWrappingSkPtrNativeObject<JsiSkVertices, SkVertices>(
30
+ std::move(context), std::move(vertices)) {}
29
31
 
30
- JSI_HOST_FUNCTION(bounds) {
32
+ std::shared_ptr<JsiSkRect> bounds() {
31
33
  const auto &result = getObject()->bounds();
32
- auto hostObjectInstance = std::make_shared<JsiSkRect>(getContext(), result);
33
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
34
- runtime, hostObjectInstance, getContext());
34
+ return std::make_shared<JsiSkRect>(getContext(), result);
35
35
  }
36
36
 
37
- JSI_HOST_FUNCTION(uniqueID) {
38
- return static_cast<double>(getObject()->uniqueID());
39
- }
37
+ double uniqueID() { return static_cast<double>(getObject()->uniqueID()); }
40
38
 
41
- size_t getMemoryPressure() const override {
39
+ size_t getMemoryPressure() override {
42
40
  auto vertices = getObject();
43
41
  if (!vertices)
44
42
  return 0;
@@ -47,11 +45,16 @@ public:
47
45
  return vertices->approximateSize();
48
46
  }
49
47
 
50
- std::string getObjectType() const override { return "JsiSkVertices"; }
48
+ static sk_sp<SkVertices> fromValue(jsi::Runtime &runtime,
49
+ const jsi::Value &obj) {
50
+ return objectFromValue(runtime, obj);
51
+ }
51
52
 
52
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkVertices, bounds),
53
- JSI_EXPORT_FUNC(JsiSkVertices, uniqueID),
54
- JSI_EXPORT_FUNC(JsiSkVertices, dispose))
53
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
54
+ installCommon(runtime, prototype);
55
+ installMethod(runtime, prototype, "bounds", &JsiSkVertices::bounds);
56
+ installMethod(runtime, prototype, "uniqueID", &JsiSkVertices::uniqueID);
57
+ }
55
58
 
56
59
  /**
57
60
  * Creates the function for construction a new instance of the SkVertices
@@ -158,10 +161,8 @@ public:
158
161
  texs.size() > 0 ? texs.data() : nullptr,
159
162
  colors.size() > 0 ? colors.data() : nullptr,
160
163
  indicesSize, indices.data());
161
- auto hostObjectInstance =
162
- std::make_shared<JsiSkVertices>(context, std::move(vertices));
163
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
164
- runtime, hostObjectInstance, context);
164
+ return makeJsiObject(runtime, std::make_shared<JsiSkVertices>(
165
+ context, std::move(vertices)));
165
166
  };
166
167
  }
167
168
  };
@@ -3,15 +3,18 @@
3
3
  #include <memory>
4
4
  #include <numeric>
5
5
  #include <utility>
6
+ #include <variant>
6
7
  #include <vector>
7
8
 
8
- #include "JsiSkHostObjects.h"
9
+ #include "JsiSkConverters.h"
10
+ #include "JsiSkNativeObjects.h"
9
11
  #include "utils/RNSkLog.h"
10
12
  #include <jsi/jsi.h>
11
13
 
12
14
  #include "JsiSkPaint.h"
13
15
  #include "JsiSkPoint.h"
14
16
  #include "JsiSkRect.h"
17
+ #include "JsiSkSurface.h"
15
18
  #include "JsiSkTypeface.h"
16
19
 
17
20
  #include "rnskia/RNWindowContext.h"
@@ -28,36 +31,34 @@ namespace RNSkia {
28
31
 
29
32
  namespace jsi = facebook::jsi;
30
33
 
31
- class JsiSkiaContext : public JsiSkWrappingSharedPtrHostObject<WindowContext> {
34
+ class JsiSkiaContext
35
+ : public JsiSkWrappingSharedPtrNativeObject<JsiSkiaContext, WindowContext> {
32
36
  public:
33
- EXPORT_JSI_API_TYPENAME(JsiSkiaContext, SkiaContext)
37
+ static constexpr const char *CLASS_NAME = "SkiaContext";
34
38
 
35
- JSI_HOST_FUNCTION(getSurface) {
39
+ std::variant<std::nullptr_t, std::shared_ptr<JsiSkSurface>> getSurface() {
36
40
  auto surface = getObject()->getSurface();
37
41
  if (surface == nullptr) {
38
- return jsi::Value::null();
42
+ return nullptr;
39
43
  }
40
- auto hostObjectInstance =
41
- std::make_shared<JsiSkSurface>(getContext(), std::move(surface));
42
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
43
- runtime, hostObjectInstance, getContext());
44
+ return std::make_shared<JsiSkSurface>(getContext(), std::move(surface));
44
45
  }
45
46
 
46
- JSI_HOST_FUNCTION(present) {
47
- getObject()->present();
48
- return jsi::Value::undefined();
49
- }
47
+ void present() { getObject()->present(); }
50
48
 
51
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkiaContext, getSurface),
52
- JSI_EXPORT_FUNC(JsiSkiaContext, present))
49
+ static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
50
+ installCommon(runtime, prototype);
51
+ installMethod(runtime, prototype, "getSurface",
52
+ &JsiSkiaContext::getSurface);
53
+ installMethod(runtime, prototype, "present", &JsiSkiaContext::present);
54
+ }
53
55
 
54
56
  JsiSkiaContext(std::shared_ptr<RNSkPlatformContext> context,
55
57
  std::shared_ptr<WindowContext> ctx)
56
- : JsiSkWrappingSharedPtrHostObject(std::move(context), std::move(ctx)) {}
57
-
58
- size_t getMemoryPressure() const override { return 10 * 1024 * 1024; }
58
+ : JsiSkWrappingSharedPtrNativeObject<JsiSkiaContext, WindowContext>(
59
+ std::move(context), std::move(ctx)) {}
59
60
 
60
- std::string getObjectType() const override { return "JsiSkiaContext"; }
61
+ size_t getMemoryPressure() override { return 10 * 1024 * 1024; }
61
62
 
62
63
  /**
63
64
  * Creates the function for construction a new instance of the SkFont
@@ -84,10 +85,8 @@ public:
84
85
  "Couldn't create a Skia context from the native surface");
85
86
  }
86
87
  // Return the newly constructed object
87
- auto hostObjectInstance =
88
- std::make_shared<JsiSkiaContext>(context, std::move(result));
89
- return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
90
- runtime, hostObjectInstance, context);
88
+ return makeJsiObject(runtime, std::make_shared<JsiSkiaContext>(
89
+ context, std::move(result)));
91
90
  };
92
91
  }
93
92
  };