@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,84 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
- #include <vector>
6
-
7
- #include "descriptors/Unions.h"
8
-
9
- #include "jsi2/NativeObject.h"
10
-
11
- #include "rnwgpu/async/AsyncTaskHandle.h"
12
- #include "rnwgpu/async/RuntimeContext.h"
13
-
14
- #include "webgpu/webgpu_cpp.h"
15
-
16
- #include "GPUBuffer.h"
17
- #include "GPUCommandBuffer.h"
18
- #include "GPUExtent3D.h"
19
- #include "descriptors/GPUImageCopyExternalImage.h"
20
- #include "descriptors/GPUImageCopyTexture.h"
21
- #include "descriptors/GPUImageCopyTextureTagged.h"
22
- #include "descriptors/GPUImageDataLayout.h"
23
- #include "rnwgpu/ArrayBuffer.h"
24
-
25
- namespace rnwgpu {
26
-
27
- namespace jsi = facebook::jsi;
28
-
29
- class GPUQueue : public NativeObject<GPUQueue> {
30
- public:
31
- static constexpr const char *CLASS_NAME = "GPUQueue";
32
-
33
- explicit GPUQueue(wgpu::Queue instance,
34
- std::shared_ptr<async::RuntimeContext> async,
35
- std::string label)
36
- : NativeObject(CLASS_NAME), _instance(instance), _async(async),
37
- _label(label) {}
38
-
39
- public:
40
- std::string getBrand() { return CLASS_NAME; }
41
-
42
- void submit(std::vector<std::shared_ptr<GPUCommandBuffer>> commandBuffers);
43
- async::AsyncTaskHandle onSubmittedWorkDone(jsi::Runtime &runtime);
44
- void writeBuffer(std::shared_ptr<GPUBuffer> buffer, uint64_t bufferOffset,
45
- std::shared_ptr<ArrayBuffer> data,
46
- std::optional<uint64_t> dataOffsetElements,
47
- std::optional<size_t> sizeElements);
48
- void writeTexture(std::shared_ptr<GPUImageCopyTexture> destination,
49
- std::shared_ptr<ArrayBuffer> data,
50
- std::shared_ptr<GPUImageDataLayout> dataLayout,
51
- std::shared_ptr<GPUExtent3D> size);
52
- void copyExternalImageToTexture(
53
- std::shared_ptr<GPUImageCopyExternalImage> source,
54
- std::shared_ptr<GPUImageCopyTextureTagged> destination,
55
- std::shared_ptr<GPUExtent3D> copySize);
56
-
57
- std::string getLabel() { return _label; }
58
- void setLabel(const std::string &label) {
59
- _label = label;
60
- _instance.SetLabel(_label.c_str());
61
- }
62
-
63
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
64
- installGetter(runtime, prototype, "__brand", &GPUQueue::getBrand);
65
- installMethod(runtime, prototype, "submit", &GPUQueue::submit);
66
- installMethodWithRuntime(runtime, prototype, "onSubmittedWorkDone",
67
- &GPUQueue::onSubmittedWorkDone);
68
- installMethod(runtime, prototype, "writeBuffer", &GPUQueue::writeBuffer);
69
- installMethod(runtime, prototype, "writeTexture", &GPUQueue::writeTexture);
70
- installMethod(runtime, prototype, "copyExternalImageToTexture",
71
- &GPUQueue::copyExternalImageToTexture);
72
- installGetterSetter(runtime, prototype, "label", &GPUQueue::getLabel,
73
- &GPUQueue::setLabel);
74
- }
75
-
76
- inline const wgpu::Queue get() { return _instance; }
77
-
78
- private:
79
- wgpu::Queue _instance;
80
- std::shared_ptr<async::RuntimeContext> _async;
81
- std::string _label;
82
- };
83
-
84
- } // 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 GPURenderBundle : public NativeObject<GPURenderBundle> {
16
- public:
17
- static constexpr const char *CLASS_NAME = "GPURenderBundle";
18
-
19
- explicit GPURenderBundle(wgpu::RenderBundle 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", &GPURenderBundle::getBrand);
33
- installGetterSetter(runtime, prototype, "label", &GPURenderBundle::getLabel,
34
- &GPURenderBundle::setLabel);
35
- }
36
-
37
- inline const wgpu::RenderBundle get() { return _instance; }
38
-
39
- private:
40
- wgpu::RenderBundle _instance;
41
- std::string _label;
42
- };
43
-
44
- } // namespace rnwgpu
@@ -1,131 +0,0 @@
1
- #include "GPURenderBundleEncoder.h"
2
-
3
- #include <memory>
4
- #include <string>
5
-
6
- #include "Convertors.h"
7
-
8
- namespace rnwgpu {
9
-
10
- std::shared_ptr<GPURenderBundle> GPURenderBundleEncoder::finish(
11
- std::optional<std::shared_ptr<GPURenderBundleDescriptor>> descriptor) {
12
- wgpu::RenderBundleDescriptor desc;
13
- Convertor conv;
14
- if (!conv(desc, descriptor)) {
15
- throw std::runtime_error("GPURenderBundleEncoder.finish(): couldn't get "
16
- "GPURenderBundleDescriptor");
17
- }
18
- auto bundle = _instance.Finish(&desc);
19
- return std::make_shared<GPURenderBundle>(
20
- bundle,
21
- descriptor.has_value() ? descriptor.value()->label.value_or("") : "");
22
- }
23
-
24
- void GPURenderBundleEncoder::setPipeline(
25
- std::shared_ptr<GPURenderPipeline> pipeline) {
26
- _instance.SetPipeline(pipeline->get());
27
- }
28
-
29
- void GPURenderBundleEncoder::draw(uint32_t vertexCount,
30
- std::optional<uint32_t> instanceCount,
31
- std::optional<uint32_t> firstVertex,
32
- std::optional<uint32_t> firstInstance) {
33
- _instance.Draw(vertexCount, instanceCount.value_or(1),
34
- firstVertex.value_or(0), firstInstance.value_or(0));
35
- }
36
-
37
- void GPURenderBundleEncoder::setVertexBuffer(
38
- uint32_t slot,
39
- std::variant<std::nullptr_t, std::shared_ptr<GPUBuffer>> buffer,
40
- std::optional<uint64_t> offset, std::optional<uint64_t> size) {
41
- Convertor conv;
42
-
43
- wgpu::Buffer b{};
44
- uint64_t s = wgpu::kWholeSize;
45
- if (!conv(b, buffer) || !conv(s, size)) {
46
- return;
47
- }
48
- _instance.SetVertexBuffer(slot, b, offset.value_or(0), s);
49
- }
50
-
51
- void GPURenderBundleEncoder::setBindGroup(
52
- uint32_t groupIndex,
53
- std::variant<std::nullptr_t, std::shared_ptr<GPUBindGroup>> bindGroup,
54
- std::optional<std::vector<uint32_t>> dynamicOffsets) {
55
- auto dynOffsets = dynamicOffsets.value_or(std::vector<uint32_t>());
56
- if (dynOffsets.size() == 0) {
57
- if (std::holds_alternative<std::nullptr_t>(bindGroup)) {
58
- _instance.SetBindGroup(groupIndex, nullptr, 0, nullptr);
59
- } else {
60
- auto group = std::get<std::shared_ptr<GPUBindGroup>>(bindGroup);
61
- _instance.SetBindGroup(groupIndex, group->get(), 0, nullptr);
62
- }
63
- } else {
64
- if (std::holds_alternative<std::nullptr_t>(bindGroup)) {
65
- _instance.SetBindGroup(groupIndex, nullptr, dynOffsets.size(),
66
- dynamicOffsets->data());
67
- } else {
68
- auto group = std::get<std::shared_ptr<GPUBindGroup>>(bindGroup);
69
- _instance.SetBindGroup(groupIndex, group->get(), dynOffsets.size(),
70
- dynamicOffsets->data());
71
- }
72
- }
73
- }
74
-
75
- void GPURenderBundleEncoder::setIndexBuffer(std::shared_ptr<GPUBuffer> buffer,
76
- wgpu::IndexFormat indexFormat,
77
- std::optional<uint64_t> offset,
78
- std::optional<uint64_t> size) {
79
- Convertor conv;
80
-
81
- wgpu::Buffer b{};
82
- wgpu::IndexFormat f{};
83
- uint64_t o = 0;
84
- uint64_t s = wgpu::kWholeSize;
85
- if (!conv(b, buffer) || //
86
- !conv(f, indexFormat) || //
87
- !conv(o, offset) || //
88
- !conv(s, size)) {
89
- return;
90
- }
91
-
92
- _instance.SetIndexBuffer(b, f, o, s);
93
- }
94
-
95
- void GPURenderBundleEncoder::drawIndexed(
96
- uint32_t indexCount, std::optional<uint32_t> instanceCount,
97
- std::optional<uint32_t> firstIndex, std::optional<double> baseVertex,
98
- std::optional<uint32_t> firstInstance) {
99
- _instance.DrawIndexed(indexCount, instanceCount.value_or(1),
100
- firstIndex.value_or(0), baseVertex.value_or(0),
101
- firstInstance.value_or(0));
102
- }
103
-
104
- void GPURenderBundleEncoder::pushDebugGroup(std::string groupLabel) {
105
- _instance.PushDebugGroup(groupLabel.c_str());
106
- }
107
-
108
- void GPURenderBundleEncoder::popDebugGroup() { _instance.PopDebugGroup(); }
109
-
110
- void GPURenderBundleEncoder::insertDebugMarker(std::string markerLabel) {
111
- _instance.InsertDebugMarker(markerLabel.c_str());
112
- }
113
- void GPURenderBundleEncoder::drawIndirect(
114
- std::shared_ptr<GPUBuffer> indirectBuffer, uint64_t indirectOffset) {
115
- Convertor conv;
116
- wgpu::Buffer b{};
117
- if (!conv(b, indirectBuffer)) {
118
- return;
119
- }
120
- _instance.DrawIndirect(b, indirectOffset);
121
- }
122
- void GPURenderBundleEncoder::drawIndexedIndirect(
123
- std::shared_ptr<GPUBuffer> indirectBuffer, uint64_t indirectOffset) {
124
- Convertor conv;
125
- wgpu::Buffer b{};
126
- if (!conv(b, indirectBuffer)) {
127
- return;
128
- }
129
- _instance.DrawIndexedIndirect(b, indirectOffset);
130
- }
131
- } // namespace rnwgpu
@@ -1,110 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <optional>
5
- #include <string>
6
- #include <variant>
7
- #include <vector>
8
-
9
- #include "descriptors/Unions.h"
10
-
11
- #include "jsi2/NativeObject.h"
12
-
13
- #include "webgpu/webgpu_cpp.h"
14
-
15
- #include "GPUBindGroup.h"
16
- #include "GPUBuffer.h"
17
- #include "GPURenderBundle.h"
18
- #include "GPURenderPipeline.h"
19
- #include "descriptors/GPURenderBundleDescriptor.h"
20
-
21
- namespace rnwgpu {
22
-
23
- namespace jsi = facebook::jsi;
24
-
25
- class GPURenderBundleEncoder : public NativeObject<GPURenderBundleEncoder> {
26
- public:
27
- static constexpr const char *CLASS_NAME = "GPURenderBundleEncoder";
28
-
29
- explicit GPURenderBundleEncoder(wgpu::RenderBundleEncoder instance,
30
- std::string label)
31
- : NativeObject(CLASS_NAME), _instance(instance), _label(label) {}
32
-
33
- public:
34
- std::string getBrand() { return CLASS_NAME; }
35
-
36
- std::shared_ptr<GPURenderBundle>
37
- finish(std::optional<std::shared_ptr<GPURenderBundleDescriptor>> descriptor);
38
- void pushDebugGroup(std::string groupLabel);
39
- void popDebugGroup();
40
- void insertDebugMarker(std::string markerLabel);
41
- void setBindGroup(
42
- uint32_t index,
43
- std::variant<std::nullptr_t, std::shared_ptr<GPUBindGroup>> bindGroup,
44
- std::optional<std::vector<uint32_t>> dynamicOffsets);
45
- void setPipeline(std::shared_ptr<GPURenderPipeline> pipeline);
46
- void setIndexBuffer(std::shared_ptr<GPUBuffer> buffer,
47
- wgpu::IndexFormat indexFormat,
48
- std::optional<uint64_t> offset,
49
- std::optional<uint64_t> size);
50
- void setVertexBuffer(
51
- uint32_t slot,
52
- std::variant<std::nullptr_t, std::shared_ptr<GPUBuffer>> buffer,
53
- std::optional<uint64_t> offset, std::optional<uint64_t> size);
54
- void draw(uint32_t vertexCount, std::optional<uint32_t> instanceCount,
55
- std::optional<uint32_t> firstVertex,
56
- std::optional<uint32_t> firstInstance);
57
- void drawIndexed(uint32_t indexCount, std::optional<uint32_t> instanceCount,
58
- std::optional<uint32_t> firstIndex,
59
- std::optional<double> baseVertex,
60
- std::optional<uint32_t> firstInstance);
61
- void drawIndirect(std::shared_ptr<GPUBuffer> indirectBuffer,
62
- uint64_t indirectOffset);
63
- void drawIndexedIndirect(std::shared_ptr<GPUBuffer> indirectBuffer,
64
- uint64_t indirectOffset);
65
-
66
- std::string getLabel() { return _label; }
67
- void setLabel(const std::string &label) {
68
- _label = label;
69
- _instance.SetLabel(_label.c_str());
70
- }
71
-
72
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
73
- installGetter(runtime, prototype, "__brand",
74
- &GPURenderBundleEncoder::getBrand);
75
- installMethod(runtime, prototype, "finish",
76
- &GPURenderBundleEncoder::finish);
77
- installMethod(runtime, prototype, "pushDebugGroup",
78
- &GPURenderBundleEncoder::pushDebugGroup);
79
- installMethod(runtime, prototype, "popDebugGroup",
80
- &GPURenderBundleEncoder::popDebugGroup);
81
- installMethod(runtime, prototype, "insertDebugMarker",
82
- &GPURenderBundleEncoder::insertDebugMarker);
83
- installMethod(runtime, prototype, "setBindGroup",
84
- &GPURenderBundleEncoder::setBindGroup);
85
- installMethod(runtime, prototype, "setPipeline",
86
- &GPURenderBundleEncoder::setPipeline);
87
- installMethod(runtime, prototype, "setIndexBuffer",
88
- &GPURenderBundleEncoder::setIndexBuffer);
89
- installMethod(runtime, prototype, "setVertexBuffer",
90
- &GPURenderBundleEncoder::setVertexBuffer);
91
- installMethod(runtime, prototype, "draw", &GPURenderBundleEncoder::draw);
92
- installMethod(runtime, prototype, "drawIndexed",
93
- &GPURenderBundleEncoder::drawIndexed);
94
- installMethod(runtime, prototype, "drawIndirect",
95
- &GPURenderBundleEncoder::drawIndirect);
96
- installMethod(runtime, prototype, "drawIndexedIndirect",
97
- &GPURenderBundleEncoder::drawIndexedIndirect);
98
- installGetterSetter(runtime, prototype, "label",
99
- &GPURenderBundleEncoder::getLabel,
100
- &GPURenderBundleEncoder::setLabel);
101
- }
102
-
103
- inline const wgpu::RenderBundleEncoder get() { return _instance; }
104
-
105
- private:
106
- wgpu::RenderBundleEncoder _instance;
107
- std::string _label;
108
- };
109
-
110
- } // namespace rnwgpu
@@ -1,165 +0,0 @@
1
- #include <memory>
2
- #include <string>
3
- #include <vector>
4
-
5
- #include "Convertors.h"
6
- #include "GPURenderPassEncoder.h"
7
-
8
- namespace rnwgpu {
9
-
10
- void GPURenderPassEncoder::end() { _instance.End(); }
11
-
12
- void GPURenderPassEncoder::setPipeline(
13
- std::shared_ptr<GPURenderPipeline> pipeline) {
14
- _instance.SetPipeline(pipeline->get());
15
- }
16
-
17
- void GPURenderPassEncoder::draw(uint32_t vertexCount,
18
- std::optional<uint32_t> instanceCount,
19
- std::optional<uint32_t> firstVertex,
20
- std::optional<uint32_t> firstInstance) {
21
- _instance.Draw(vertexCount, instanceCount.value_or(1),
22
- firstVertex.value_or(0), firstInstance.value_or(0));
23
- }
24
- void GPURenderPassEncoder::setVertexBuffer(
25
- uint32_t slot,
26
- std::variant<std::nullptr_t, std::shared_ptr<GPUBuffer>> buffer,
27
- std::optional<uint64_t> offset, std::optional<uint64_t> size) {
28
- Convertor conv;
29
-
30
- wgpu::Buffer b{};
31
- uint64_t s = wgpu::kWholeSize;
32
- if (!conv(b, buffer) || !conv(s, size)) {
33
- return;
34
- }
35
- _instance.SetVertexBuffer(slot, b, offset.value_or(0), s);
36
- }
37
-
38
- void GPURenderPassEncoder::setBindGroup(
39
- uint32_t groupIndex,
40
- std::variant<std::nullptr_t, std::shared_ptr<GPUBindGroup>> bindGroup,
41
- std::optional<std::vector<uint32_t>> dynamicOffsets) {
42
- auto dynOffsets = dynamicOffsets.value_or(std::vector<uint32_t>());
43
- if (dynOffsets.size() == 0) {
44
- if (std::holds_alternative<nullptr_t>(bindGroup)) {
45
- _instance.SetBindGroup(groupIndex, nullptr, 0, nullptr);
46
- } else {
47
- auto group = std::get<std::shared_ptr<GPUBindGroup>>(bindGroup);
48
- _instance.SetBindGroup(groupIndex, group->get(), 0, nullptr);
49
- }
50
- } else {
51
- if (std::holds_alternative<nullptr_t>(bindGroup)) {
52
- _instance.SetBindGroup(groupIndex, nullptr, dynOffsets.size(),
53
- dynamicOffsets->data());
54
- } else {
55
- auto group = std::get<std::shared_ptr<GPUBindGroup>>(bindGroup);
56
- _instance.SetBindGroup(groupIndex, group->get(), dynOffsets.size(),
57
- dynamicOffsets->data());
58
- }
59
- }
60
- }
61
-
62
- void GPURenderPassEncoder::setIndexBuffer(std::shared_ptr<GPUBuffer> buffer,
63
- wgpu::IndexFormat indexFormat,
64
- std::optional<uint64_t> offset,
65
- std::optional<uint64_t> size) {
66
- Convertor conv;
67
-
68
- wgpu::Buffer b{};
69
- wgpu::IndexFormat f{};
70
- uint64_t o = 0;
71
- uint64_t s = wgpu::kWholeSize;
72
- if (!conv(b, buffer) || //
73
- !conv(f, indexFormat) || //
74
- !conv(o, offset) || //
75
- !conv(s, size)) {
76
- return;
77
- }
78
-
79
- _instance.SetIndexBuffer(b, f, o, s);
80
- }
81
-
82
- void GPURenderPassEncoder::endOcclusionQuery() {
83
- _instance.EndOcclusionQuery();
84
- }
85
-
86
- void GPURenderPassEncoder::beginOcclusionQuery(uint32_t queryIndex) {
87
- _instance.BeginOcclusionQuery(queryIndex);
88
- }
89
-
90
- void GPURenderPassEncoder::drawIndexed(uint32_t indexCount,
91
- std::optional<uint32_t> instanceCount,
92
- std::optional<uint32_t> firstIndex,
93
- std::optional<double> baseVertex,
94
- std::optional<uint32_t> firstInstance) {
95
- _instance.DrawIndexed(indexCount, instanceCount.value_or(1),
96
- firstIndex.value_or(0), baseVertex.value_or(0),
97
- firstInstance.value_or(0));
98
- }
99
-
100
- void GPURenderPassEncoder::executeBundles(
101
- std::vector<std::shared_ptr<GPURenderBundle>> bundles_in) {
102
- Convertor conv;
103
-
104
- wgpu::RenderBundle *bundles = nullptr;
105
- size_t bundleCount = 0;
106
- if (!conv(bundles, bundleCount, bundles_in)) {
107
- return;
108
- }
109
-
110
- _instance.ExecuteBundles(bundleCount, bundles);
111
- }
112
-
113
- void GPURenderPassEncoder::setScissorRect(uint32_t x, uint32_t y,
114
- uint32_t width, uint32_t height) {
115
- _instance.SetScissorRect(x, y, width, height);
116
- }
117
-
118
- void GPURenderPassEncoder::setViewport(double x, double y, double width,
119
- double height, double minDepth,
120
- double maxDepth) {
121
- _instance.SetViewport(x, y, width, height, minDepth, maxDepth);
122
- }
123
-
124
- void GPURenderPassEncoder::setBlendConstant(std::shared_ptr<GPUColor> color) {
125
- Convertor conv;
126
- wgpu::Color c{};
127
- if (!conv(c, color)) {
128
- return;
129
- }
130
- _instance.SetBlendConstant(&c);
131
- }
132
-
133
- void GPURenderPassEncoder::setStencilReference(uint32_t reference) {
134
- _instance.SetStencilReference(reference);
135
- }
136
-
137
- void GPURenderPassEncoder::pushDebugGroup(std::string groupLabel) {
138
- _instance.PushDebugGroup(groupLabel.c_str());
139
- }
140
-
141
- void GPURenderPassEncoder::popDebugGroup() { _instance.PopDebugGroup(); }
142
-
143
- void GPURenderPassEncoder::insertDebugMarker(std::string markerLabel) {
144
- _instance.InsertDebugMarker(markerLabel.c_str());
145
- }
146
- void GPURenderPassEncoder::drawIndirect(
147
- std::shared_ptr<GPUBuffer> indirectBuffer, uint64_t indirectOffset) {
148
- Convertor conv;
149
- wgpu::Buffer b{};
150
- if (!conv(b, indirectBuffer)) {
151
- return;
152
- }
153
- _instance.DrawIndirect(b, indirectOffset);
154
- }
155
- void GPURenderPassEncoder::drawIndexedIndirect(
156
- std::shared_ptr<GPUBuffer> indirectBuffer, uint64_t indirectOffset) {
157
- Convertor conv;
158
- wgpu::Buffer b{};
159
- if (!conv(b, indirectBuffer)) {
160
- return;
161
- }
162
- _instance.DrawIndexedIndirect(b, indirectOffset);
163
- }
164
-
165
- } // namespace rnwgpu
@@ -1,130 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <optional>
5
- #include <string>
6
- #include <variant>
7
- #include <vector>
8
-
9
- #include "descriptors/Unions.h"
10
-
11
- #include "jsi2/NativeObject.h"
12
-
13
- #include "webgpu/webgpu_cpp.h"
14
-
15
- #include "GPUBindGroup.h"
16
- #include "GPUBuffer.h"
17
- #include "GPURenderBundle.h"
18
- #include "GPURenderPipeline.h"
19
- #include "descriptors/GPUColor.h"
20
-
21
- namespace rnwgpu {
22
-
23
- namespace jsi = facebook::jsi;
24
-
25
- class GPURenderPassEncoder : public NativeObject<GPURenderPassEncoder> {
26
- public:
27
- static constexpr const char *CLASS_NAME = "GPURenderPassEncoder";
28
-
29
- explicit GPURenderPassEncoder(wgpu::RenderPassEncoder instance,
30
- std::string label)
31
- : NativeObject(CLASS_NAME), _instance(instance), _label(label) {}
32
-
33
- public:
34
- std::string getBrand() { return CLASS_NAME; }
35
-
36
- void setViewport(double x, double y, double width, double height,
37
- double minDepth, double maxDepth);
38
- void setScissorRect(uint32_t x, uint32_t y, uint32_t width, uint32_t height);
39
- void setBlendConstant(std::shared_ptr<GPUColor> color);
40
- void setStencilReference(uint32_t reference);
41
- void beginOcclusionQuery(uint32_t queryIndex);
42
- void endOcclusionQuery();
43
- void executeBundles(std::vector<std::shared_ptr<GPURenderBundle>> bundles);
44
- void end();
45
- void pushDebugGroup(std::string groupLabel);
46
- void popDebugGroup();
47
- void insertDebugMarker(std::string markerLabel);
48
- void setBindGroup(
49
- uint32_t index,
50
- std::variant<std::nullptr_t, std::shared_ptr<GPUBindGroup>> bindGroup,
51
- std::optional<std::vector<uint32_t>> dynamicOffsets);
52
- void setPipeline(std::shared_ptr<GPURenderPipeline> pipeline);
53
- void setIndexBuffer(std::shared_ptr<GPUBuffer> buffer,
54
- wgpu::IndexFormat indexFormat,
55
- std::optional<uint64_t> offset,
56
- std::optional<uint64_t> size);
57
- void setVertexBuffer(
58
- uint32_t slot,
59
- std::variant<std::nullptr_t, std::shared_ptr<GPUBuffer>> buffer,
60
- std::optional<uint64_t> offset, std::optional<uint64_t> size);
61
- void draw(uint32_t vertexCount, std::optional<uint32_t> instanceCount,
62
- std::optional<uint32_t> firstVertex,
63
- std::optional<uint32_t> firstInstance);
64
- void drawIndexed(uint32_t indexCount, std::optional<uint32_t> instanceCount,
65
- std::optional<uint32_t> firstIndex,
66
- std::optional<double> baseVertex,
67
- std::optional<uint32_t> firstInstance);
68
- void drawIndirect(std::shared_ptr<GPUBuffer> indirectBuffer,
69
- uint64_t indirectOffset);
70
- void drawIndexedIndirect(std::shared_ptr<GPUBuffer> indirectBuffer,
71
- uint64_t indirectOffset);
72
-
73
- std::string getLabel() { return _label; }
74
- void setLabel(const std::string &label) {
75
- _label = label;
76
- _instance.SetLabel(_label.c_str());
77
- }
78
-
79
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
80
- installGetter(runtime, prototype, "__brand",
81
- &GPURenderPassEncoder::getBrand);
82
- installMethod(runtime, prototype, "setViewport",
83
- &GPURenderPassEncoder::setViewport);
84
- installMethod(runtime, prototype, "setScissorRect",
85
- &GPURenderPassEncoder::setScissorRect);
86
- installMethod(runtime, prototype, "setBlendConstant",
87
- &GPURenderPassEncoder::setBlendConstant);
88
- installMethod(runtime, prototype, "setStencilReference",
89
- &GPURenderPassEncoder::setStencilReference);
90
- installMethod(runtime, prototype, "beginOcclusionQuery",
91
- &GPURenderPassEncoder::beginOcclusionQuery);
92
- installMethod(runtime, prototype, "endOcclusionQuery",
93
- &GPURenderPassEncoder::endOcclusionQuery);
94
- installMethod(runtime, prototype, "executeBundles",
95
- &GPURenderPassEncoder::executeBundles);
96
- installMethod(runtime, prototype, "end", &GPURenderPassEncoder::end);
97
- installMethod(runtime, prototype, "pushDebugGroup",
98
- &GPURenderPassEncoder::pushDebugGroup);
99
- installMethod(runtime, prototype, "popDebugGroup",
100
- &GPURenderPassEncoder::popDebugGroup);
101
- installMethod(runtime, prototype, "insertDebugMarker",
102
- &GPURenderPassEncoder::insertDebugMarker);
103
- installMethod(runtime, prototype, "setBindGroup",
104
- &GPURenderPassEncoder::setBindGroup);
105
- installMethod(runtime, prototype, "setPipeline",
106
- &GPURenderPassEncoder::setPipeline);
107
- installMethod(runtime, prototype, "setIndexBuffer",
108
- &GPURenderPassEncoder::setIndexBuffer);
109
- installMethod(runtime, prototype, "setVertexBuffer",
110
- &GPURenderPassEncoder::setVertexBuffer);
111
- installMethod(runtime, prototype, "draw", &GPURenderPassEncoder::draw);
112
- installMethod(runtime, prototype, "drawIndexed",
113
- &GPURenderPassEncoder::drawIndexed);
114
- installMethod(runtime, prototype, "drawIndirect",
115
- &GPURenderPassEncoder::drawIndirect);
116
- installMethod(runtime, prototype, "drawIndexedIndirect",
117
- &GPURenderPassEncoder::drawIndexedIndirect);
118
- installGetterSetter(runtime, prototype, "label",
119
- &GPURenderPassEncoder::getLabel,
120
- &GPURenderPassEncoder::setLabel);
121
- }
122
-
123
- inline const wgpu::RenderPassEncoder get() { return _instance; }
124
-
125
- private:
126
- wgpu::RenderPassEncoder _instance;
127
- std::string _label;
128
- };
129
-
130
- } // namespace rnwgpu
@@ -1,13 +0,0 @@
1
- #include "GPURenderPipeline.h"
2
-
3
- #include <memory>
4
-
5
- namespace rnwgpu {
6
-
7
- std::shared_ptr<GPUBindGroupLayout>
8
- GPURenderPipeline::getBindGroupLayout(uint32_t groupIndex) {
9
- auto bindGroupLayout = _instance.GetBindGroupLayout(groupIndex);
10
- return std::make_shared<GPUBindGroupLayout>(bindGroupLayout, "");
11
- }
12
-
13
- } // namespace rnwgpu