@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,129 +0,0 @@
1
- #include "GPUSupportedLimits.h"
2
-
3
- namespace rnwgpu {
4
-
5
- double GPUSupportedLimits::getMaxTextureDimension1D() {
6
- return _instance.maxTextureDimension1D;
7
- }
8
-
9
- double GPUSupportedLimits::getMaxTextureDimension2D() {
10
- return _instance.maxTextureDimension2D;
11
- }
12
-
13
- double GPUSupportedLimits::getMaxTextureDimension3D() {
14
- return _instance.maxTextureDimension3D;
15
- }
16
-
17
- double GPUSupportedLimits::getMaxTextureArrayLayers() {
18
- return _instance.maxTextureArrayLayers;
19
- }
20
-
21
- double GPUSupportedLimits::getMaxBindGroups() {
22
- return _instance.maxBindGroups;
23
- }
24
-
25
- double GPUSupportedLimits::getMaxBindGroupsPlusVertexBuffers() {
26
- return _instance.maxBindGroupsPlusVertexBuffers;
27
- }
28
-
29
- double GPUSupportedLimits::getMaxBindingsPerBindGroup() {
30
- return _instance.maxBindingsPerBindGroup;
31
- }
32
-
33
- double GPUSupportedLimits::getMaxDynamicUniformBuffersPerPipelineLayout() {
34
- return _instance.maxDynamicUniformBuffersPerPipelineLayout;
35
- }
36
-
37
- double GPUSupportedLimits::getMaxDynamicStorageBuffersPerPipelineLayout() {
38
- return _instance.maxDynamicStorageBuffersPerPipelineLayout;
39
- }
40
-
41
- double GPUSupportedLimits::getMaxSampledTexturesPerShaderStage() {
42
- return _instance.maxSampledTexturesPerShaderStage;
43
- }
44
-
45
- double GPUSupportedLimits::getMaxSamplersPerShaderStage() {
46
- return _instance.maxSamplersPerShaderStage;
47
- }
48
-
49
- double GPUSupportedLimits::getMaxStorageBuffersPerShaderStage() {
50
- return _instance.maxStorageBuffersPerShaderStage;
51
- }
52
-
53
- double GPUSupportedLimits::getMaxStorageTexturesPerShaderStage() {
54
- return _instance.maxStorageTexturesPerShaderStage;
55
- }
56
-
57
- double GPUSupportedLimits::getMaxUniformBuffersPerShaderStage() {
58
- return _instance.maxUniformBuffersPerShaderStage;
59
- }
60
-
61
- double GPUSupportedLimits::getMaxUniformBufferBindingSize() {
62
- return _instance.maxUniformBufferBindingSize;
63
- }
64
-
65
- double GPUSupportedLimits::getMaxStorageBufferBindingSize() {
66
- return _instance.maxStorageBufferBindingSize;
67
- }
68
-
69
- double GPUSupportedLimits::getMinUniformBufferOffsetAlignment() {
70
- return _instance.minUniformBufferOffsetAlignment;
71
- }
72
-
73
- double GPUSupportedLimits::getMinStorageBufferOffsetAlignment() {
74
- return _instance.minStorageBufferOffsetAlignment;
75
- }
76
-
77
- double GPUSupportedLimits::getMaxVertexBuffers() {
78
- return _instance.maxVertexBuffers;
79
- }
80
-
81
- double GPUSupportedLimits::getMaxBufferSize() {
82
- return _instance.maxBufferSize;
83
- }
84
-
85
- double GPUSupportedLimits::getMaxVertexAttributes() {
86
- return _instance.maxVertexAttributes;
87
- }
88
-
89
- double GPUSupportedLimits::getMaxVertexBufferArrayStride() {
90
- return _instance.maxVertexBufferArrayStride;
91
- }
92
-
93
- double GPUSupportedLimits::getMaxInterStageShaderVariables() {
94
- return _instance.maxInterStageShaderVariables;
95
- }
96
-
97
- double GPUSupportedLimits::getMaxColorAttachments() {
98
- return _instance.maxColorAttachments;
99
- }
100
-
101
- double GPUSupportedLimits::getMaxColorAttachmentBytesPerSample() {
102
- return _instance.maxColorAttachmentBytesPerSample;
103
- }
104
-
105
- double GPUSupportedLimits::getMaxComputeWorkgroupStorageSize() {
106
- return _instance.maxComputeWorkgroupStorageSize;
107
- }
108
-
109
- double GPUSupportedLimits::getMaxComputeInvocationsPerWorkgroup() {
110
- return _instance.maxComputeInvocationsPerWorkgroup;
111
- }
112
-
113
- double GPUSupportedLimits::getMaxComputeWorkgroupSizeX() {
114
- return _instance.maxComputeWorkgroupSizeX;
115
- }
116
-
117
- double GPUSupportedLimits::getMaxComputeWorkgroupSizeY() {
118
- return _instance.maxComputeWorkgroupSizeY;
119
- }
120
-
121
- double GPUSupportedLimits::getMaxComputeWorkgroupSizeZ() {
122
- return _instance.maxComputeWorkgroupSizeZ;
123
- }
124
-
125
- double GPUSupportedLimits::getMaxComputeWorkgroupsPerDimension() {
126
- return _instance.maxComputeWorkgroupsPerDimension;
127
- }
128
-
129
- } // namespace rnwgpu
@@ -1,131 +0,0 @@
1
- #pragma once
2
-
3
- #include <string>
4
-
5
- #include "descriptors/Unions.h"
6
-
7
- #include "jsi2/NativeObject.h"
8
-
9
- #include "webgpu/webgpu_cpp.h"
10
-
11
- namespace rnwgpu {
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- class GPUSupportedLimits : public NativeObject<GPUSupportedLimits> {
16
- public:
17
- static constexpr const char *CLASS_NAME = "GPUSupportedLimits";
18
-
19
- explicit GPUSupportedLimits(wgpu::Limits instance)
20
- : NativeObject(CLASS_NAME), _instance(instance) {}
21
-
22
- public:
23
- std::string getBrand() { return CLASS_NAME; }
24
-
25
- double getMaxTextureDimension1D();
26
- double getMaxTextureDimension2D();
27
- double getMaxTextureDimension3D();
28
- double getMaxTextureArrayLayers();
29
- double getMaxBindGroups();
30
- double getMaxBindGroupsPlusVertexBuffers();
31
- double getMaxBindingsPerBindGroup();
32
- double getMaxDynamicUniformBuffersPerPipelineLayout();
33
- double getMaxDynamicStorageBuffersPerPipelineLayout();
34
- double getMaxSampledTexturesPerShaderStage();
35
- double getMaxSamplersPerShaderStage();
36
- double getMaxStorageBuffersPerShaderStage();
37
- double getMaxStorageTexturesPerShaderStage();
38
- double getMaxUniformBuffersPerShaderStage();
39
- double getMaxUniformBufferBindingSize();
40
- double getMaxStorageBufferBindingSize();
41
- double getMinUniformBufferOffsetAlignment();
42
- double getMinStorageBufferOffsetAlignment();
43
- double getMaxVertexBuffers();
44
- double getMaxBufferSize();
45
- double getMaxVertexAttributes();
46
- double getMaxVertexBufferArrayStride();
47
- double getMaxInterStageShaderVariables();
48
- double getMaxColorAttachments();
49
- double getMaxColorAttachmentBytesPerSample();
50
- double getMaxComputeWorkgroupStorageSize();
51
- double getMaxComputeInvocationsPerWorkgroup();
52
- double getMaxComputeWorkgroupSizeX();
53
- double getMaxComputeWorkgroupSizeY();
54
- double getMaxComputeWorkgroupSizeZ();
55
- double getMaxComputeWorkgroupsPerDimension();
56
-
57
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
58
- installGetter(runtime, prototype, "__brand", &GPUSupportedLimits::getBrand);
59
- installGetter(runtime, prototype, "maxTextureDimension1D",
60
- &GPUSupportedLimits::getMaxTextureDimension1D);
61
- installGetter(runtime, prototype, "maxTextureDimension2D",
62
- &GPUSupportedLimits::getMaxTextureDimension2D);
63
- installGetter(runtime, prototype, "maxTextureDimension3D",
64
- &GPUSupportedLimits::getMaxTextureDimension3D);
65
- installGetter(runtime, prototype, "maxTextureArrayLayers",
66
- &GPUSupportedLimits::getMaxTextureArrayLayers);
67
- installGetter(runtime, prototype, "maxBindGroups",
68
- &GPUSupportedLimits::getMaxBindGroups);
69
- installGetter(runtime, prototype, "maxBindGroupsPlusVertexBuffers",
70
- &GPUSupportedLimits::getMaxBindGroupsPlusVertexBuffers);
71
- installGetter(runtime, prototype, "maxBindingsPerBindGroup",
72
- &GPUSupportedLimits::getMaxBindingsPerBindGroup);
73
- installGetter(
74
- runtime, prototype, "maxDynamicUniformBuffersPerPipelineLayout",
75
- &GPUSupportedLimits::getMaxDynamicUniformBuffersPerPipelineLayout);
76
- installGetter(
77
- runtime, prototype, "maxDynamicStorageBuffersPerPipelineLayout",
78
- &GPUSupportedLimits::getMaxDynamicStorageBuffersPerPipelineLayout);
79
- installGetter(runtime, prototype, "maxSampledTexturesPerShaderStage",
80
- &GPUSupportedLimits::getMaxSampledTexturesPerShaderStage);
81
- installGetter(runtime, prototype, "maxSamplersPerShaderStage",
82
- &GPUSupportedLimits::getMaxSamplersPerShaderStage);
83
- installGetter(runtime, prototype, "maxStorageBuffersPerShaderStage",
84
- &GPUSupportedLimits::getMaxStorageBuffersPerShaderStage);
85
- installGetter(runtime, prototype, "maxStorageTexturesPerShaderStage",
86
- &GPUSupportedLimits::getMaxStorageTexturesPerShaderStage);
87
- installGetter(runtime, prototype, "maxUniformBuffersPerShaderStage",
88
- &GPUSupportedLimits::getMaxUniformBuffersPerShaderStage);
89
- installGetter(runtime, prototype, "maxUniformBufferBindingSize",
90
- &GPUSupportedLimits::getMaxUniformBufferBindingSize);
91
- installGetter(runtime, prototype, "maxStorageBufferBindingSize",
92
- &GPUSupportedLimits::getMaxStorageBufferBindingSize);
93
- installGetter(runtime, prototype, "minUniformBufferOffsetAlignment",
94
- &GPUSupportedLimits::getMinUniformBufferOffsetAlignment);
95
- installGetter(runtime, prototype, "minStorageBufferOffsetAlignment",
96
- &GPUSupportedLimits::getMinStorageBufferOffsetAlignment);
97
- installGetter(runtime, prototype, "maxVertexBuffers",
98
- &GPUSupportedLimits::getMaxVertexBuffers);
99
- installGetter(runtime, prototype, "maxBufferSize",
100
- &GPUSupportedLimits::getMaxBufferSize);
101
- installGetter(runtime, prototype, "maxVertexAttributes",
102
- &GPUSupportedLimits::getMaxVertexAttributes);
103
- installGetter(runtime, prototype, "maxVertexBufferArrayStride",
104
- &GPUSupportedLimits::getMaxVertexBufferArrayStride);
105
- installGetter(runtime, prototype, "maxInterStageShaderVariables",
106
- &GPUSupportedLimits::getMaxInterStageShaderVariables);
107
- installGetter(runtime, prototype, "maxColorAttachments",
108
- &GPUSupportedLimits::getMaxColorAttachments);
109
- installGetter(runtime, prototype, "maxColorAttachmentBytesPerSample",
110
- &GPUSupportedLimits::getMaxColorAttachmentBytesPerSample);
111
- installGetter(runtime, prototype, "maxComputeWorkgroupStorageSize",
112
- &GPUSupportedLimits::getMaxComputeWorkgroupStorageSize);
113
- installGetter(runtime, prototype, "maxComputeInvocationsPerWorkgroup",
114
- &GPUSupportedLimits::getMaxComputeInvocationsPerWorkgroup);
115
- installGetter(runtime, prototype, "maxComputeWorkgroupSizeX",
116
- &GPUSupportedLimits::getMaxComputeWorkgroupSizeX);
117
- installGetter(runtime, prototype, "maxComputeWorkgroupSizeY",
118
- &GPUSupportedLimits::getMaxComputeWorkgroupSizeY);
119
- installGetter(runtime, prototype, "maxComputeWorkgroupSizeZ",
120
- &GPUSupportedLimits::getMaxComputeWorkgroupSizeZ);
121
- installGetter(runtime, prototype, "maxComputeWorkgroupsPerDimension",
122
- &GPUSupportedLimits::getMaxComputeWorkgroupsPerDimension);
123
- }
124
-
125
- inline const wgpu::Limits get() { return _instance; }
126
-
127
- private:
128
- wgpu::Limits _instance;
129
- };
130
-
131
- } // namespace rnwgpu
@@ -1,47 +0,0 @@
1
- #include "GPUTexture.h"
2
-
3
- #include <memory>
4
-
5
- #include "Convertors.h"
6
-
7
- namespace rnwgpu {
8
-
9
- void GPUTexture::destroy() { _instance.Destroy(); }
10
-
11
- std::shared_ptr<GPUTextureView> GPUTexture::createView(
12
- std::optional<std::shared_ptr<GPUTextureViewDescriptor>> descriptor) {
13
- wgpu::TextureViewDescriptor desc;
14
- Convertor conv;
15
- if (!conv(desc, descriptor)) {
16
- throw std::runtime_error("GPUTextureView.createView(): couldn't access "
17
- "GPUTextureViewDescriptor");
18
- }
19
- auto view = _instance.CreateView(&desc);
20
- return std::make_shared<GPUTextureView>(
21
- view,
22
- descriptor.has_value() ? descriptor.value()->label.value_or("") : "");
23
- }
24
-
25
- uint32_t GPUTexture::getWidth() { return _instance.GetWidth(); }
26
-
27
- uint32_t GPUTexture::getHeight() { return _instance.GetHeight(); }
28
-
29
- uint32_t GPUTexture::getDepthOrArrayLayers() {
30
- return _instance.GetDepthOrArrayLayers();
31
- }
32
-
33
- uint32_t GPUTexture::getMipLevelCount() { return _instance.GetMipLevelCount(); }
34
-
35
- uint32_t GPUTexture::getSampleCount() { return _instance.GetSampleCount(); }
36
-
37
- wgpu::TextureDimension GPUTexture::getDimension() {
38
- return _instance.GetDimension();
39
- }
40
-
41
- wgpu::TextureFormat GPUTexture::getFormat() { return _instance.GetFormat(); }
42
-
43
- double GPUTexture::getUsage() {
44
- return static_cast<double>(_instance.GetUsage());
45
- }
46
-
47
- } // namespace rnwgpu
@@ -1,162 +0,0 @@
1
- #pragma once
2
-
3
- #include <algorithm>
4
- #include <memory>
5
- #include <string>
6
-
7
- #include "descriptors/Unions.h"
8
-
9
- #include "jsi2/NativeObject.h"
10
-
11
- #include "webgpu/webgpu_cpp.h"
12
-
13
- #include "GPUTextureView.h"
14
- #include "descriptors/GPUTextureViewDescriptor.h"
15
-
16
- namespace rnwgpu {
17
-
18
- namespace jsi = facebook::jsi;
19
-
20
- class GPUTexture : public NativeObject<GPUTexture> {
21
- public:
22
- static constexpr const char *CLASS_NAME = "GPUTexture";
23
-
24
- explicit GPUTexture(wgpu::Texture instance, std::string label,
25
- bool reportsMemoryPressure = true)
26
- : NativeObject(CLASS_NAME), _instance(instance), _label(label),
27
- _reportsMemoryPressure(reportsMemoryPressure) {}
28
-
29
- public:
30
- std::string getBrand() { return CLASS_NAME; }
31
-
32
- std::shared_ptr<GPUTextureView> createView(
33
- std::optional<std::shared_ptr<GPUTextureViewDescriptor>> descriptor);
34
- void destroy();
35
-
36
- uint32_t getWidth();
37
- uint32_t getHeight();
38
- uint32_t getDepthOrArrayLayers();
39
- uint32_t getMipLevelCount();
40
- uint32_t getSampleCount();
41
- wgpu::TextureDimension getDimension();
42
- wgpu::TextureFormat getFormat();
43
- double getUsage();
44
-
45
- std::string getLabel() { return _label; }
46
- void setLabel(const std::string &label) {
47
- _label = label;
48
- _instance.SetLabel(_label.c_str());
49
- }
50
-
51
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
52
- installGetter(runtime, prototype, "__brand", &GPUTexture::getBrand);
53
- installMethod(runtime, prototype, "createView", &GPUTexture::createView);
54
- installMethod(runtime, prototype, "destroy", &GPUTexture::destroy);
55
- installGetter(runtime, prototype, "width", &GPUTexture::getWidth);
56
- installGetter(runtime, prototype, "height", &GPUTexture::getHeight);
57
- installGetter(runtime, prototype, "depthOrArrayLayers",
58
- &GPUTexture::getDepthOrArrayLayers);
59
- installGetter(runtime, prototype, "mipLevelCount",
60
- &GPUTexture::getMipLevelCount);
61
- installGetter(runtime, prototype, "sampleCount",
62
- &GPUTexture::getSampleCount);
63
- installGetter(runtime, prototype, "dimension", &GPUTexture::getDimension);
64
- installGetter(runtime, prototype, "format", &GPUTexture::getFormat);
65
- installGetter(runtime, prototype, "usage", &GPUTexture::getUsage);
66
- installGetterSetter(runtime, prototype, "label", &GPUTexture::getLabel,
67
- &GPUTexture::setLabel);
68
- }
69
-
70
- inline const wgpu::Texture get() { return _instance; }
71
-
72
- size_t getMemoryPressure() override {
73
- if (!_reportsMemoryPressure) {
74
- return sizeof(GPUTexture);
75
- }
76
- // Calculate approximate memory usage based on texture properties
77
- uint32_t width = getWidth();
78
- uint32_t height = getHeight();
79
- uint32_t depthOrArrayLayers = getDepthOrArrayLayers();
80
- uint32_t mipLevelCount = getMipLevelCount();
81
- uint32_t sampleCount = getSampleCount();
82
-
83
- // Estimate bytes per pixel based on format
84
- // This is a simplified estimate - actual values depend on the specific
85
- // format
86
- size_t bytesPerPixel = 4; // Default to RGBA8 format
87
- wgpu::TextureFormat format = getFormat();
88
- switch (format) {
89
- case wgpu::TextureFormat::R8Unorm:
90
- case wgpu::TextureFormat::R8Snorm:
91
- case wgpu::TextureFormat::R8Uint:
92
- case wgpu::TextureFormat::R8Sint:
93
- case wgpu::TextureFormat::Stencil8:
94
- bytesPerPixel = 1;
95
- break;
96
- case wgpu::TextureFormat::R16Uint:
97
- case wgpu::TextureFormat::R16Sint:
98
- case wgpu::TextureFormat::R16Float:
99
- case wgpu::TextureFormat::RG8Unorm:
100
- case wgpu::TextureFormat::RG8Snorm:
101
- case wgpu::TextureFormat::RG8Uint:
102
- case wgpu::TextureFormat::RG8Sint:
103
- case wgpu::TextureFormat::Depth16Unorm:
104
- bytesPerPixel = 2;
105
- break;
106
- case wgpu::TextureFormat::RGBA8Unorm:
107
- case wgpu::TextureFormat::RGBA8UnormSrgb:
108
- case wgpu::TextureFormat::RGBA8Snorm:
109
- case wgpu::TextureFormat::RGBA8Uint:
110
- case wgpu::TextureFormat::RGBA8Sint:
111
- case wgpu::TextureFormat::BGRA8Unorm:
112
- case wgpu::TextureFormat::BGRA8UnormSrgb:
113
- case wgpu::TextureFormat::RGB10A2Unorm:
114
- case wgpu::TextureFormat::R32Float:
115
- case wgpu::TextureFormat::R32Uint:
116
- case wgpu::TextureFormat::R32Sint:
117
- case wgpu::TextureFormat::RG16Uint:
118
- case wgpu::TextureFormat::RG16Sint:
119
- case wgpu::TextureFormat::RG16Float:
120
- case wgpu::TextureFormat::Depth24Plus:
121
- case wgpu::TextureFormat::Depth24PlusStencil8:
122
- case wgpu::TextureFormat::Depth32Float:
123
- bytesPerPixel = 4;
124
- break;
125
- case wgpu::TextureFormat::RG32Float:
126
- case wgpu::TextureFormat::RG32Uint:
127
- case wgpu::TextureFormat::RG32Sint:
128
- case wgpu::TextureFormat::RGBA16Uint:
129
- case wgpu::TextureFormat::RGBA16Sint:
130
- case wgpu::TextureFormat::RGBA16Float:
131
- case wgpu::TextureFormat::Depth32FloatStencil8:
132
- bytesPerPixel = 8;
133
- break;
134
- case wgpu::TextureFormat::RGBA32Float:
135
- case wgpu::TextureFormat::RGBA32Uint:
136
- case wgpu::TextureFormat::RGBA32Sint:
137
- bytesPerPixel = 16;
138
- break;
139
- default:
140
- bytesPerPixel = 4; // Safe default
141
- break;
142
- }
143
-
144
- // Calculate total memory for all mip levels
145
- size_t totalMemory = 0;
146
- for (uint32_t mip = 0; mip < mipLevelCount; ++mip) {
147
- uint32_t mipWidth = std::max(1u, width >> mip);
148
- uint32_t mipHeight = std::max(1u, height >> mip);
149
- totalMemory += static_cast<size_t>(mipWidth) * mipHeight *
150
- depthOrArrayLayers * bytesPerPixel * sampleCount;
151
- }
152
-
153
- return totalMemory;
154
- }
155
-
156
- private:
157
- wgpu::Texture _instance;
158
- std::string _label;
159
- bool _reportsMemoryPressure = true;
160
- };
161
-
162
- } // namespace rnwgpu
@@ -1,44 +0,0 @@
1
- #pragma once
2
-
3
- #include <string>
4
-
5
- #include "descriptors/Unions.h"
6
-
7
- #include "jsi2/NativeObject.h"
8
-
9
- #include "webgpu/webgpu_cpp.h"
10
-
11
- namespace rnwgpu {
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- class GPUTextureView : public NativeObject<GPUTextureView> {
16
- public:
17
- static constexpr const char *CLASS_NAME = "GPUTextureView";
18
-
19
- explicit GPUTextureView(wgpu::TextureView instance, std::string label)
20
- : NativeObject(CLASS_NAME), _instance(instance), _label(label) {}
21
-
22
- public:
23
- std::string getBrand() { return CLASS_NAME; }
24
-
25
- std::string getLabel() { return _label; }
26
- void setLabel(const std::string &label) {
27
- _label = label;
28
- _instance.SetLabel(_label.c_str());
29
- }
30
-
31
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
32
- installGetter(runtime, prototype, "__brand", &GPUTextureView::getBrand);
33
- installGetterSetter(runtime, prototype, "label", &GPUTextureView::getLabel,
34
- &GPUTextureView::setLabel);
35
- }
36
-
37
- inline const wgpu::TextureView get() { return _instance; }
38
-
39
- private:
40
- wgpu::TextureView _instance;
41
- std::string _label;
42
- };
43
-
44
- } // namespace rnwgpu
@@ -1,60 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
- #include <variant>
6
-
7
- #include "jsi2/NativeObject.h"
8
-
9
- #include "GPUError.h"
10
- #include "GPUInternalError.h"
11
- #include "GPUOutOfMemoryError.h"
12
- #include "GPUValidationError.h"
13
-
14
- namespace rnwgpu {
15
-
16
- namespace jsi = facebook::jsi;
17
-
18
- using GPUErrorVariant = std::variant<std::shared_ptr<GPUValidationError>,
19
- std::shared_ptr<GPUOutOfMemoryError>,
20
- std::shared_ptr<GPUInternalError>>;
21
-
22
- class GPUUncapturedErrorEvent : public NativeObject<GPUUncapturedErrorEvent> {
23
- public:
24
- static constexpr const char *CLASS_NAME = "GPUUncapturedErrorEvent";
25
-
26
- explicit GPUUncapturedErrorEvent(GPUErrorVariant error)
27
- : NativeObject(CLASS_NAME), _error(std::move(error)) {}
28
-
29
- GPUErrorVariant getError() { return _error; }
30
-
31
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
32
- installGetter(runtime, prototype, "error",
33
- &GPUUncapturedErrorEvent::getError);
34
- }
35
-
36
- private:
37
- GPUErrorVariant _error;
38
- };
39
-
40
- } // namespace rnwgpu
41
-
42
- namespace rnwgpu {
43
-
44
- template <> struct JSIConverter<GPUErrorVariant> {
45
- static jsi::Value toJSI(jsi::Runtime &runtime, GPUErrorVariant arg) {
46
- return std::visit(
47
- [&runtime](auto &&error) -> jsi::Value {
48
- using T = std::decay_t<decltype(error)>;
49
- return JSIConverter<T>::toJSI(runtime, error);
50
- },
51
- arg);
52
- }
53
-
54
- static GPUErrorVariant fromJSI(jsi::Runtime &runtime, const jsi::Value &arg,
55
- bool outOfBounds) {
56
- throw std::runtime_error("GPUErrorVariant::fromJSI not implemented");
57
- }
58
- };
59
-
60
- } // namespace rnwgpu
@@ -1,32 +0,0 @@
1
- #pragma once
2
-
3
- #include <string>
4
-
5
- #include "jsi2/NativeObject.h"
6
-
7
- namespace rnwgpu {
8
-
9
- namespace jsi = facebook::jsi;
10
-
11
- class GPUValidationError : public NativeObject<GPUValidationError> {
12
- public:
13
- static constexpr const char *CLASS_NAME = "GPUValidationError";
14
-
15
- explicit GPUValidationError(std::string message)
16
- : NativeObject(CLASS_NAME), _message(std::move(message)) {}
17
-
18
- public:
19
- std::string getBrand() { return CLASS_NAME; }
20
- std::string getMessage() { return _message; }
21
-
22
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
23
- installGetter(runtime, prototype, "__brand", &GPUValidationError::getBrand);
24
- installGetter(runtime, prototype, "message",
25
- &GPUValidationError::getMessage);
26
- }
27
-
28
- private:
29
- std::string _message;
30
- };
31
-
32
- } // namespace rnwgpu
@@ -1,62 +0,0 @@
1
- #pragma once
2
-
3
- #include <cstdint>
4
- #include <memory>
5
- #include <utility>
6
- #include <vector>
7
-
8
- #include "jsi2/NativeObject.h"
9
-
10
- namespace rnwgpu {
11
-
12
- namespace jsi = facebook::jsi;
13
-
14
- // DRAFT — compile-unverified. Minimal ImageBitmap holding decoded, unpremul
15
- // RGBA8 pixels plus its dimensions. Produced by the global createImageBitmap()
16
- // binding (see RNSkManager.cpp). Decoding is done with Skia's own codec, so no
17
- // platform-specific image decoder is required.
18
- //
19
- // FOLLOW-UP: to make an ImageBitmap usable as a copyExternalImageToTexture
20
- // source, uncomment the `source` field + ImageBitmap converter in
21
- // rnwgpu/api/descriptors/GPUImageCopyExternalImage.h and upload `data()` in
22
- // GPUQueue::copyExternalImageToTexture. That GPU wiring is intentionally out of
23
- // scope for this draft.
24
- class ImageBitmap : public NativeObject<ImageBitmap> {
25
- public:
26
- static constexpr const char *CLASS_NAME = "ImageBitmap";
27
-
28
- ImageBitmap(std::vector<uint8_t> data, size_t width, size_t height)
29
- : NativeObject(CLASS_NAME), _data(std::move(data)), _width(width),
30
- _height(height) {}
31
-
32
- size_t getWidth() { return _width; }
33
-
34
- size_t getHeight() { return _height; }
35
-
36
- // Per the spec, close() releases the bitmap's underlying pixels and zeroes
37
- // its dimensions. Idempotent.
38
- void close() {
39
- _data.clear();
40
- _data.shrink_to_fit();
41
- _width = 0;
42
- _height = 0;
43
- }
44
-
45
- // Decoded, unpremultiplied RGBA8 pixels (row-major, width*height*4 bytes).
46
- const std::vector<uint8_t> &data() const { return _data; }
47
-
48
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
49
- installGetter(runtime, prototype, "width", &ImageBitmap::getWidth);
50
- installGetter(runtime, prototype, "height", &ImageBitmap::getHeight);
51
- installMethod(runtime, prototype, "close", &ImageBitmap::close);
52
- }
53
-
54
- size_t getMemoryPressure() override { return _data.size(); }
55
-
56
- private:
57
- std::vector<uint8_t> _data;
58
- size_t _width;
59
- size_t _height;
60
- };
61
-
62
- } // namespace rnwgpu