@shopify/react-native-skia 2.10.0 → 2.10.2

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