@shopify/react-native-skia 2.11.0-next.2 → 2.12.0-next.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 (328) hide show
  1. package/cpp/api/recorder/Convertor.h +57 -9
  2. package/cpp/api/third_party/SkottieUtils.cpp +1 -1
  3. package/cpp/dawn/include/dawn/dawn_proc_table.h +4 -4
  4. package/cpp/dawn/include/dawn/dawn_version.h +1 -1
  5. package/cpp/dawn/include/dawn/native/D3D12Backend.h +18 -1
  6. package/cpp/dawn/include/dawn/native/DawnNative.h +1 -2
  7. package/cpp/dawn/include/dawn/platform/DawnPlatform.h +8 -11
  8. package/cpp/dawn/include/dawn/webgpu_cpp_print.h +91 -79
  9. package/cpp/dawn/include/tint/tint.h +1 -0
  10. package/cpp/dawn/include/webgpu/webgpu.h +86 -44
  11. package/cpp/dawn/include/webgpu/webgpu_cpp.h +556 -283
  12. package/cpp/dawn/include/webgpu/webgpu_cpp_chained_struct.h +1 -1
  13. package/cpp/dawn/include/webgpu/webgpu_enum_class_bitmasks.h +2 -1
  14. package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +0 -2
  15. package/cpp/skia/include/android/vk/AndroidVulkanMemoryAllocator.h +1 -1
  16. package/cpp/skia/include/codec/SkAndroidCodec.h +1 -1
  17. package/cpp/skia/include/codec/SkAvifDecoder.h +1 -1
  18. package/cpp/skia/include/codec/SkBmpDecoder.h +1 -1
  19. package/cpp/skia/include/codec/SkBmpRustDecoder.h +42 -0
  20. package/cpp/skia/include/codec/SkCodec.h +3 -2
  21. package/cpp/skia/include/codec/SkGifDecoder.h +1 -1
  22. package/cpp/skia/include/codec/SkIcoDecoder.h +1 -1
  23. package/cpp/skia/include/codec/SkJpegDecoder.h +1 -1
  24. package/cpp/skia/include/codec/SkJpegxlDecoder.h +1 -1
  25. package/cpp/skia/include/codec/SkPixmapUtils.h +1 -1
  26. package/cpp/skia/include/codec/SkPngDecoder.h +1 -1
  27. package/cpp/skia/include/codec/SkPngRustDecoder.h +1 -1
  28. package/cpp/skia/include/codec/SkRawDecoder.h +1 -1
  29. package/cpp/skia/include/codec/SkWbmpDecoder.h +1 -1
  30. package/cpp/skia/include/codec/SkWebpDecoder.h +1 -1
  31. package/cpp/skia/include/core/SkBitmap.h +3 -3
  32. package/cpp/skia/include/core/SkCPUContext.h +1 -1
  33. package/cpp/skia/include/core/SkCPURecorder.h +2 -3
  34. package/cpp/skia/include/core/SkCanvas.h +23 -15
  35. package/cpp/skia/include/core/SkColor.h +2 -2
  36. package/cpp/skia/include/core/SkColorFilter.h +1 -1
  37. package/cpp/skia/include/core/SkColorSpace.h +2 -2
  38. package/cpp/skia/include/core/SkColorTable.h +1 -1
  39. package/cpp/skia/include/core/SkContourMeasure.h +1 -1
  40. package/cpp/skia/include/core/SkData.h +1 -1
  41. package/cpp/skia/include/core/SkDataTable.h +2 -2
  42. package/cpp/skia/include/core/SkDocument.h +1 -1
  43. package/cpp/skia/include/core/SkDrawable.h +1 -1
  44. package/cpp/skia/include/core/SkFont.h +2 -2
  45. package/cpp/skia/include/core/SkFontMetrics.h +1 -1
  46. package/cpp/skia/include/core/SkFontMgr.h +1 -1
  47. package/cpp/skia/include/core/SkFontScanner.h +3 -3
  48. package/cpp/skia/include/core/SkFontStyle.h +1 -1
  49. package/cpp/skia/include/core/SkGraphics.h +1 -1
  50. package/cpp/skia/include/core/SkImage.h +1 -1
  51. package/cpp/skia/include/core/SkImageFilter.h +1 -1
  52. package/cpp/skia/include/core/SkImageGenerator.h +1 -1
  53. package/cpp/skia/include/core/SkImageInfo.h +4 -4
  54. package/cpp/skia/include/core/SkMatrix.h +3 -3
  55. package/cpp/skia/include/core/SkMesh.h +2 -2
  56. package/cpp/skia/include/core/SkMilestone.h +1 -1
  57. package/cpp/skia/include/core/SkOverdrawCanvas.h +1 -1
  58. package/cpp/skia/include/core/SkPaint.h +4 -4
  59. package/cpp/skia/include/core/SkPath.h +5 -23
  60. package/cpp/skia/include/core/SkPathBuilder.h +4 -2
  61. package/cpp/skia/include/core/SkPathMeasure.h +1 -1
  62. package/cpp/skia/include/core/SkPictureRecorder.h +1 -1
  63. package/cpp/skia/include/core/SkPixelRef.h +3 -5
  64. package/cpp/skia/include/core/SkPixmap.h +7 -2
  65. package/cpp/skia/include/core/SkPoint.h +555 -5
  66. package/cpp/skia/include/core/SkPoint3.h +2 -2
  67. package/cpp/skia/include/core/SkRRect.h +9 -1
  68. package/cpp/skia/include/core/SkRSXform.h +1 -1
  69. package/cpp/skia/include/core/SkRecorder.h +2 -3
  70. package/cpp/skia/include/core/SkRect.h +3 -3
  71. package/cpp/skia/include/core/SkRefCnt.h +1 -1
  72. package/cpp/skia/include/core/SkRegion.h +4 -4
  73. package/cpp/skia/include/core/SkScalar.h +2 -3
  74. package/cpp/skia/include/core/SkSerialProcs.h +1 -1
  75. package/cpp/skia/include/core/SkShader.h +1 -1
  76. package/cpp/skia/include/core/SkSize.h +1 -1
  77. package/cpp/skia/include/core/SkSpan.h +165 -4
  78. package/cpp/skia/include/core/SkStream.h +2 -2
  79. package/cpp/skia/include/core/SkStrikeRef.h +16 -0
  80. package/cpp/skia/include/core/SkString.h +2 -2
  81. package/cpp/skia/include/core/SkStrokeRec.h +1 -1
  82. package/cpp/skia/include/core/SkSurfaceProps.h +1 -1
  83. package/cpp/skia/include/core/SkSwizzle.h +1 -1
  84. package/cpp/skia/include/core/SkTextBlob.h +2 -2
  85. package/cpp/skia/include/core/SkTiledImageUtils.h +1 -1
  86. package/cpp/skia/include/core/SkTypeface.h +8 -2
  87. package/cpp/skia/include/core/SkTypes.h +6 -6
  88. package/cpp/skia/include/core/SkUnPreMultiply.h +1 -1
  89. package/cpp/skia/include/core/SkVertices.h +1 -1
  90. package/cpp/skia/include/core/SkYUVAPixmaps.h +1 -1
  91. package/cpp/skia/include/docs/SkPDFDocument.h +9 -3
  92. package/cpp/skia/include/effects/SkGradient.h +1 -1
  93. package/cpp/skia/include/effects/SkPerlinNoiseShader.h +1 -1
  94. package/cpp/skia/include/effects/SkRuntimeEffect.h +4 -4
  95. package/cpp/skia/include/encode/SkEncoder.h +3 -3
  96. package/cpp/skia/include/encode/SkICC.h +1 -1
  97. package/cpp/skia/include/encode/SkJpegEncoder.h +1 -1
  98. package/cpp/skia/include/encode/SkPngEncoder.h +1 -1
  99. package/cpp/skia/include/encode/SkPngRustEncoder.h +16 -1
  100. package/cpp/skia/include/encode/SkWebpEncoder.h +1 -1
  101. package/cpp/skia/include/gpu/GpuTypes.h +1 -1
  102. package/cpp/skia/include/gpu/MutableTextureState.h +1 -1
  103. package/cpp/skia/include/gpu/ganesh/GrBackendSemaphore.h +2 -2
  104. package/cpp/skia/include/gpu/ganesh/GrBackendSurface.h +3 -3
  105. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +39 -37
  106. package/cpp/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +1 -1
  107. package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +3 -2
  108. package/cpp/skia/include/gpu/ganesh/GrTypes.h +1 -1
  109. package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +1 -1
  110. package/cpp/skia/include/gpu/ganesh/SkMeshGanesh.h +1 -1
  111. package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +1 -1
  112. package/cpp/skia/include/gpu/ganesh/d3d/GrD3DBackendSemaphore.h +1 -1
  113. package/cpp/skia/include/gpu/ganesh/d3d/GrD3DBackendSurface.h +1 -1
  114. package/cpp/skia/include/gpu/ganesh/d3d/GrD3DDirectContext.h +1 -1
  115. package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleInterface.h +1 -1
  116. package/cpp/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +1 -1
  117. package/cpp/skia/include/gpu/ganesh/gl/GrGLConfig.h +1 -1
  118. package/cpp/skia/include/gpu/ganesh/gl/GrGLDirectContext.h +1 -1
  119. package/cpp/skia/include/gpu/ganesh/gl/GrGLExtensions.h +2 -2
  120. package/cpp/skia/include/gpu/ganesh/gl/GrGLFunctions.h +1 -1
  121. package/cpp/skia/include/gpu/ganesh/gl/GrGLMakeWebGLInterface.h +1 -1
  122. package/cpp/skia/include/gpu/ganesh/gl/epoxy/GrGLMakeEpoxyEGLInterface.h +1 -1
  123. package/cpp/skia/include/gpu/ganesh/gl/glx/GrGLMakeGLXInterface.h +1 -1
  124. package/cpp/skia/include/gpu/ganesh/gl/ios/GrGLMakeIOSInterface.h +1 -1
  125. package/cpp/skia/include/gpu/ganesh/gl/mac/GrGLMakeMacInterface.h +1 -1
  126. package/cpp/skia/include/gpu/ganesh/gl/win/GrGLMakeWinInterface.h +1 -1
  127. package/cpp/skia/include/gpu/ganesh/mock/GrMockBackendSurface.h +1 -1
  128. package/cpp/skia/include/gpu/ganesh/mock/GrMockTypes.h +1 -1
  129. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSemaphore.h +1 -1
  130. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSurface.h +1 -1
  131. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlDirectContext.h +1 -1
  132. package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSemaphore.h +1 -1
  133. package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +1 -1
  134. package/cpp/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +1 -1
  135. package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +2 -2
  136. package/cpp/skia/include/gpu/graphite/BackendTexture.h +2 -2
  137. package/cpp/skia/include/gpu/graphite/Context.h +3 -3
  138. package/cpp/skia/include/gpu/graphite/ContextOptions.h +8 -2
  139. package/cpp/skia/include/gpu/graphite/PersistentPipelineStorage.h +1 -1
  140. package/cpp/skia/include/gpu/graphite/PrecompileContext.h +16 -2
  141. package/cpp/skia/include/gpu/graphite/Recorder.h +8 -7
  142. package/cpp/skia/include/gpu/graphite/Recording.h +6 -4
  143. package/cpp/skia/include/gpu/graphite/TextureInfo.h +2 -2
  144. package/cpp/skia/include/gpu/graphite/dawn/DawnGraphiteTypes.h +1 -1
  145. package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +1 -1
  146. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +1 -1
  147. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes_cpp.h +1 -1
  148. package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +2 -2
  149. package/cpp/skia/include/gpu/graphite/precompile/PrecompileImageFilter.h +1 -1
  150. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteContext.h +1 -1
  151. package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +1 -1
  152. package/cpp/skia/include/gpu/vk/VulkanExtensions.h +3 -3
  153. package/cpp/skia/include/gpu/vk/VulkanMutableTextureState.h +1 -1
  154. package/cpp/skia/include/gpu/vk/VulkanPreferredFeatures.h +1 -1
  155. package/cpp/skia/include/gpu/vk/VulkanTypes.h +1 -1
  156. package/cpp/skia/include/pathops/SkPathOps.h +2 -2
  157. package/cpp/skia/include/ports/SkImageGeneratorCG.h +2 -2
  158. package/cpp/skia/include/ports/SkImageGeneratorWIC.h +2 -2
  159. package/cpp/skia/include/private/{base/SingleOwner.h → SingleOwner.h} +5 -5
  160. package/cpp/skia/include/private/{base/SkAPI.h → SkAPI.h} +1 -1
  161. package/cpp/skia/include/private/{base/SkAlign.h → SkAlign.h} +1 -1
  162. package/cpp/skia/include/private/{base/SkAnySubclass.h → SkAnySubclass.h} +1 -1
  163. package/cpp/skia/include/private/{base/SkAssert.h → SkAssert.h} +4 -4
  164. package/cpp/skia/include/private/{base/SkAttributes.h → SkAttributes.h} +2 -2
  165. package/cpp/skia/include/private/{base/SkContainers.h → SkContainers.h} +3 -3
  166. package/cpp/skia/include/private/{base/SkDebug.h → SkDebug.h} +3 -3
  167. package/cpp/skia/include/private/{base/SkDeque.h → SkDeque.h} +1 -1
  168. package/cpp/skia/include/private/SkEncodedInfo.h +2 -2
  169. package/cpp/skia/include/private/SkEnumBitMask.h +92 -0
  170. package/cpp/skia/include/private/SkExif.h +1 -1
  171. package/cpp/skia/include/private/{base/SkFixed.h → SkFixed.h} +4 -4
  172. package/cpp/skia/include/private/{base/SkFloatingPoint.h → SkFloatingPoint.h} +2 -2
  173. package/cpp/skia/include/private/SkGainmapShader.h +1 -1
  174. package/cpp/skia/include/private/SkHdrMetadata.h +1 -1
  175. package/cpp/skia/include/private/SkIDChangeListener.h +3 -3
  176. package/cpp/skia/include/private/{base/SkLoadUserConfig.h → SkLoadUserConfig.h} +2 -2
  177. package/cpp/skia/include/private/{base/SkLog.h → SkLog.h} +4 -4
  178. package/cpp/skia/include/private/{base/SkMacros.h → SkMacros.h} +1 -1
  179. package/cpp/skia/include/private/{base/SkMalloc.h → SkMalloc.h} +1 -1
  180. package/cpp/skia/include/private/{base/SkMath.h → SkMath.h} +2 -2
  181. package/cpp/skia/include/private/{base/SkMutex.h → SkMutex.h} +5 -5
  182. package/cpp/skia/include/private/{base/SkNoncopyable.h → SkNoncopyable.h} +1 -1
  183. package/cpp/skia/include/private/{base/SkOnce.h → SkOnce.h} +1 -1
  184. package/cpp/skia/include/private/SkPathRef.h +4 -4
  185. package/cpp/skia/include/private/SkPixelStorage.h +20 -5
  186. package/cpp/skia/include/private/{base/SkSafe32.h → SkSafe32.h} +2 -2
  187. package/cpp/skia/include/private/{base/SkSemaphore.h → SkSemaphore.h} +3 -3
  188. package/cpp/skia/include/private/{base/SkTArray.h → SkTArray.h} +10 -11
  189. package/cpp/skia/include/private/{base/SkTDArray.h → SkTDArray.h} +4 -4
  190. package/cpp/skia/include/private/{base/SkTFitsIn.h → SkTFitsIn.h} +0 -2
  191. package/cpp/skia/include/private/{base/SkTLogic.h → SkTLogic.h} +1 -1
  192. package/cpp/skia/include/private/{base/SkTemplates.h → SkTemplates.h} +5 -6
  193. package/cpp/skia/include/private/{base/SkThreadAnnotations.h → SkThreadAnnotations.h} +1 -1
  194. package/cpp/skia/include/private/{base/SkThreadID.h → SkThreadID.h} +2 -2
  195. package/cpp/skia/include/private/{base/SkTo.h → SkTo.h} +2 -2
  196. package/cpp/skia/include/private/{base/SkTypeTraits.h → SkTypeTraits.h} +20 -0
  197. package/cpp/skia/include/private/SkXmp.h +1 -1
  198. package/cpp/skia/include/private/chromium/GrDeferredDisplayList.h +1 -1
  199. package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +1 -1
  200. package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +1 -1
  201. package/cpp/skia/include/private/chromium/SkCodecsICCProfileChromium.h +1 -1
  202. package/cpp/skia/include/private/chromium/SkExifChromium.h +1 -1
  203. package/cpp/skia/include/private/chromium/SkImageChromium.h +1 -1
  204. package/cpp/skia/include/private/chromium/SkPMColor.h +1 -1
  205. package/cpp/skia/include/private/chromium/Slug.h +1 -1
  206. package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +1 -1
  207. package/cpp/skia/include/private/gpu/ganesh/GrImageContext.h +2 -2
  208. package/cpp/skia/include/private/gpu/ganesh/GrTextureGenerator.h +1 -1
  209. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +4 -4
  210. package/cpp/skia/include/utils/SkCamera.h +1 -1
  211. package/cpp/skia/include/utils/SkNWayCanvas.h +1 -1
  212. package/cpp/skia/include/utils/SkPaintFilterCanvas.h +1 -1
  213. package/cpp/skia/modules/jsonreader/SkJSONReader.cpp +6 -6
  214. package/cpp/skia/modules/jsonreader/SkJSONReader.h +2 -2
  215. package/cpp/skia/modules/skottie/include/SkottieProperty.h +1 -1
  216. package/cpp/skia/modules/skottie/include/SlotManager.h +2 -2
  217. package/cpp/skia/modules/skottie/include/TextShaper.h +1 -1
  218. package/cpp/skia/modules/skottie/src/text/Font.h +1 -1
  219. package/cpp/skia/modules/skparagraph/include/ParagraphCache.h +1 -1
  220. package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +1 -1
  221. package/cpp/skia/modules/skresources/include/SkResources.h +1 -1
  222. package/cpp/skia/modules/sksg/include/SkSGNode.h +1 -1
  223. package/cpp/skia/modules/sksg/include/SkSGRect.h +1 -1
  224. package/cpp/skia/modules/sksg/include/SkSGRenderEffect.h +1 -1
  225. package/cpp/skia/modules/skunicode/include/SkUnicode.h +3 -3
  226. package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +1 -1
  227. package/cpp/skia/modules/svg/include/SkSVGCircle.h +1 -1
  228. package/cpp/skia/modules/svg/include/SkSVGClipPath.h +1 -1
  229. package/cpp/skia/modules/svg/include/SkSVGContainer.h +2 -2
  230. package/cpp/skia/modules/svg/include/SkSVGDOM.h +1 -1
  231. package/cpp/skia/modules/svg/include/SkSVGEllipse.h +1 -1
  232. package/cpp/skia/modules/svg/include/SkSVGFe.h +1 -1
  233. package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +1 -1
  234. package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +1 -1
  235. package/cpp/skia/modules/svg/include/SkSVGFeComponentTransfer.h +1 -1
  236. package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +1 -1
  237. package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +1 -1
  238. package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +1 -1
  239. package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +1 -1
  240. package/cpp/skia/modules/svg/include/SkSVGFeImage.h +1 -1
  241. package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +2 -2
  242. package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +1 -1
  243. package/cpp/skia/modules/svg/include/SkSVGFeMerge.h +1 -1
  244. package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +1 -1
  245. package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +1 -1
  246. package/cpp/skia/modules/svg/include/SkSVGFilter.h +1 -1
  247. package/cpp/skia/modules/svg/include/SkSVGGradient.h +2 -2
  248. package/cpp/skia/modules/svg/include/SkSVGImage.h +2 -2
  249. package/cpp/skia/modules/svg/include/SkSVGLine.h +1 -1
  250. package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +1 -1
  251. package/cpp/skia/modules/svg/include/SkSVGMask.h +1 -1
  252. package/cpp/skia/modules/svg/include/SkSVGNode.h +1 -1
  253. package/cpp/skia/modules/svg/include/SkSVGPath.h +1 -1
  254. package/cpp/skia/modules/svg/include/SkSVGPattern.h +1 -1
  255. package/cpp/skia/modules/svg/include/SkSVGPoly.h +1 -1
  256. package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +1 -1
  257. package/cpp/skia/modules/svg/include/SkSVGRect.h +1 -1
  258. package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +1 -1
  259. package/cpp/skia/modules/svg/include/SkSVGSVG.h +1 -1
  260. package/cpp/skia/modules/svg/include/SkSVGShape.h +1 -1
  261. package/cpp/skia/modules/svg/include/SkSVGStop.h +1 -1
  262. package/cpp/skia/modules/svg/include/SkSVGText.h +1 -1
  263. package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +1 -1
  264. package/cpp/skia/modules/svg/include/SkSVGUse.h +1 -1
  265. package/cpp/skia/modules/svg/include/SkSVGValue.h +1 -1
  266. package/cpp/skia/src/{base → core}/SkArenaAlloc.h +5 -5
  267. package/cpp/skia/src/{base → core}/SkAutoLocaleSetter.h +1 -1
  268. package/cpp/skia/src/core/SkChecksum.h +1 -1
  269. package/cpp/skia/src/core/SkLRUCache.h +1 -1
  270. package/cpp/skia/src/{base → core}/SkMathPriv.h +3 -3
  271. package/cpp/skia/src/core/SkTHash.h +1 -1
  272. package/cpp/skia/src/{base → core}/SkTInternalLList.h +3 -3
  273. package/cpp/skia/src/{base → core}/SkTLazy.h +1 -1
  274. package/cpp/skia/src/{base → core}/SkUTF.h +1 -1
  275. package/cpp/skia/src/gpu/graphite/ContextOptionsPriv.h +1 -1
  276. package/cpp/skia/src/gpu/graphite/ResourceTypes.h +3 -3
  277. package/lib/commonjs/renderer/processors/Animations/Animations.d.ts +27 -1
  278. package/lib/commonjs/renderer/processors/Animations/Animations.js +28 -0
  279. package/lib/commonjs/renderer/processors/Animations/Animations.js.map +1 -1
  280. package/lib/commonjs/sksg/Recorder/Core.js +8 -1
  281. package/lib/commonjs/sksg/Recorder/Core.js.map +1 -1
  282. package/lib/commonjs/sksg/Recorder/ReanimatedRecorder.js +8 -0
  283. package/lib/commonjs/sksg/Recorder/ReanimatedRecorder.js.map +1 -1
  284. package/lib/commonjs/sksg/Recorder/Recorder.d.ts +1 -1
  285. package/lib/commonjs/sksg/Recorder/Recorder.js +4 -0
  286. package/lib/commonjs/sksg/Recorder/Recorder.js.map +1 -1
  287. package/lib/commonjs/sksg/utils.d.ts +4 -0
  288. package/lib/commonjs/sksg/utils.js +14 -1
  289. package/lib/commonjs/sksg/utils.js.map +1 -1
  290. package/lib/module/renderer/processors/Animations/Animations.d.ts +27 -1
  291. package/lib/module/renderer/processors/Animations/Animations.js +21 -0
  292. package/lib/module/renderer/processors/Animations/Animations.js.map +1 -1
  293. package/lib/module/sksg/Recorder/Core.js +8 -1
  294. package/lib/module/sksg/Recorder/Core.js.map +1 -1
  295. package/lib/module/sksg/Recorder/ReanimatedRecorder.js +9 -1
  296. package/lib/module/sksg/Recorder/ReanimatedRecorder.js.map +1 -1
  297. package/lib/module/sksg/Recorder/Recorder.d.ts +1 -1
  298. package/lib/module/sksg/Recorder/Recorder.js +5 -1
  299. package/lib/module/sksg/Recorder/Recorder.js.map +1 -1
  300. package/lib/module/sksg/utils.d.ts +4 -0
  301. package/lib/module/sksg/utils.js +12 -0
  302. package/lib/module/sksg/utils.js.map +1 -1
  303. package/lib/typescript/lib/commonjs/renderer/processors/Animations/Animations.d.ts +22 -0
  304. package/lib/typescript/lib/commonjs/sksg/utils.d.ts +1 -0
  305. package/lib/typescript/lib/module/mock/index.d.ts +4 -0
  306. package/lib/typescript/lib/module/renderer/processors/Animations/Animations.d.ts +4 -0
  307. package/lib/typescript/lib/module/renderer/processors/Animations/index.d.ts +1 -1
  308. package/lib/typescript/lib/module/sksg/utils.d.ts +1 -0
  309. package/lib/typescript/src/renderer/processors/Animations/Animations.d.ts +27 -1
  310. package/lib/typescript/src/sksg/Recorder/Recorder.d.ts +1 -1
  311. package/lib/typescript/src/sksg/utils.d.ts +4 -0
  312. package/libs/.graphite +1 -1
  313. package/package.json +7 -7
  314. package/src/renderer/processors/Animations/Animations.ts +34 -1
  315. package/src/sksg/Recorder/Core.ts +11 -1
  316. package/src/sksg/Recorder/ReanimatedRecorder.ts +10 -1
  317. package/src/sksg/Recorder/Recorder.ts +7 -3
  318. package/src/sksg/utils.ts +18 -0
  319. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteUtils.h +0 -10
  320. package/cpp/skia/include/private/base/README.md +0 -4
  321. package/cpp/skia/include/private/base/SkPoint_impl.h +0 -560
  322. package/cpp/skia/include/private/base/SkSpan_impl.h +0 -158
  323. /package/cpp/skia/include/private/{base/SkASAN.h → SkASAN.h} +0 -0
  324. /package/cpp/skia/include/private/{base/SkAlignedStorage.h → SkAlignedStorage.h} +0 -0
  325. /package/cpp/skia/include/private/{base/SkCPUTypes.h → SkCPUTypes.h} +0 -0
  326. /package/cpp/skia/include/private/{base/SkFeatures.h → SkFeatures.h} +0 -0
  327. /package/cpp/skia/include/private/{base/SkLogPriority.h → SkLogPriority.h} +0 -0
  328. /package/cpp/skia/include/private/{base/SkTPin.h → SkTPin.h} +0 -0
@@ -27,7 +27,7 @@
27
27
 
28
28
 
29
29
  #ifdef __EMSCRIPTEN__
30
- #error "Do not include this header. Emscripten already provides headers needed for WebGPU."
30
+ #error "Do not include this header. Use the headers provided by Emdawnwebgpu instead."
31
31
  #endif
32
32
 
33
33
  #ifndef WEBGPU_CPP_H_
@@ -40,6 +40,7 @@
40
40
  #include <memory>
41
41
  #include <optional>
42
42
  #include <functional>
43
+ #include <span>
43
44
  #include <string_view>
44
45
  #include <type_traits>
45
46
  #include <utility>
@@ -50,18 +51,18 @@
50
51
 
51
52
  namespace wgpu {
52
53
 
53
- static constexpr uint32_t kArrayLayerCountUndefined = WGPU_ARRAY_LAYER_COUNT_UNDEFINED;
54
- static constexpr uint32_t kCopyStrideUndefined = WGPU_COPY_STRIDE_UNDEFINED;
55
- static constexpr float kDepthClearValueUndefined = std::numeric_limits<float>::quiet_NaN();
56
- static constexpr uint32_t kDepthSliceUndefined = WGPU_DEPTH_SLICE_UNDEFINED;
57
- static constexpr uint32_t kInvalidBinding = WGPU_INVALID_BINDING;
58
- static constexpr uint32_t kLimitU32Undefined = WGPU_LIMIT_U32_UNDEFINED;
59
- static constexpr uint64_t kLimitU64Undefined = WGPU_LIMIT_U64_UNDEFINED;
60
- static constexpr uint32_t kMipLevelCountUndefined = WGPU_MIP_LEVEL_COUNT_UNDEFINED;
61
- static constexpr uint32_t kQuerySetIndexUndefined = WGPU_QUERY_SET_INDEX_UNDEFINED;
62
- static constexpr size_t kStrlen = WGPU_STRLEN;
63
- static constexpr size_t kWholeMapSize = WGPU_WHOLE_MAP_SIZE;
64
- static constexpr uint64_t kWholeSize = WGPU_WHOLE_SIZE;
54
+ inline constexpr uint32_t kArrayLayerCountUndefined = WGPU_ARRAY_LAYER_COUNT_UNDEFINED;
55
+ inline constexpr uint32_t kCopyStrideUndefined = WGPU_COPY_STRIDE_UNDEFINED;
56
+ inline constexpr float kDepthClearValueUndefined = std::numeric_limits<float>::quiet_NaN();
57
+ inline constexpr uint32_t kDepthSliceUndefined = WGPU_DEPTH_SLICE_UNDEFINED;
58
+ inline constexpr uint32_t kInvalidBinding = WGPU_INVALID_BINDING;
59
+ inline constexpr uint32_t kLimitU32Undefined = WGPU_LIMIT_U32_UNDEFINED;
60
+ inline constexpr uint64_t kLimitU64Undefined = WGPU_LIMIT_U64_UNDEFINED;
61
+ inline constexpr uint32_t kMipLevelCountUndefined = WGPU_MIP_LEVEL_COUNT_UNDEFINED;
62
+ inline constexpr uint32_t kQuerySetIndexUndefined = WGPU_QUERY_SET_INDEX_UNDEFINED;
63
+ inline constexpr size_t kStrlen = WGPU_STRLEN;
64
+ inline constexpr size_t kWholeMapSize = WGPU_WHOLE_MAP_SIZE;
65
+ inline constexpr uint64_t kWholeSize = WGPU_WHOLE_SIZE;
65
66
 
66
67
  enum class AdapterType : uint32_t {
67
68
  DiscreteGPU = WGPUAdapterType_DiscreteGPU,
@@ -337,6 +338,7 @@ enum class FeatureName : uint32_t {
337
338
  TextureFormatsTier2 = WGPUFeatureName_TextureFormatsTier2,
338
339
  PrimitiveIndex = WGPUFeatureName_PrimitiveIndex,
339
340
  TextureComponentSwizzle = WGPUFeatureName_TextureComponentSwizzle,
341
+ SubgroupSizeControl = WGPUFeatureName_SubgroupSizeControl,
340
342
  DawnInternalUsages = WGPUFeatureName_DawnInternalUsages,
341
343
  DawnMultiPlanarFormats = WGPUFeatureName_DawnMultiPlanarFormats,
342
344
  DawnNative = WGPUFeatureName_DawnNative,
@@ -392,16 +394,17 @@ enum class FeatureName : uint32_t {
392
394
  SharedFenceEGLSync = WGPUFeatureName_SharedFenceEGLSync,
393
395
  DawnDeviceAllocatorControl = WGPUFeatureName_DawnDeviceAllocatorControl,
394
396
  AdapterPropertiesWGPU = WGPUFeatureName_AdapterPropertiesWGPU,
395
- SharedBufferMemoryD3D12SharedMemoryFileMappingHandle = WGPUFeatureName_SharedBufferMemoryD3D12SharedMemoryFileMappingHandle,
397
+ SharedBufferMemoryFromWindowsHandle = WGPUFeatureName_SharedBufferMemoryFromWindowsHandle,
396
398
  SharedTextureMemoryD3D12Resource = WGPUFeatureName_SharedTextureMemoryD3D12Resource,
397
399
  ChromiumExperimentalSamplingResourceTable = WGPUFeatureName_ChromiumExperimentalSamplingResourceTable,
398
- SubgroupSizeControl = WGPUFeatureName_SubgroupSizeControl,
399
400
  AtomicVec2uMinMax = WGPUFeatureName_AtomicVec2uMinMax,
400
401
  Unorm16FormatsForExternalTexture = WGPUFeatureName_Unorm16FormatsForExternalTexture,
401
402
  OpaqueYCbCrAndroidForExternalTexture = WGPUFeatureName_OpaqueYCbCrAndroidForExternalTexture,
402
403
  Unorm16Filterable = WGPUFeatureName_Unorm16Filterable,
403
404
  RenderPassRenderArea = WGPUFeatureName_RenderPassRenderArea,
404
405
  AdapterPropertiesDrm = WGPUFeatureName_AdapterPropertiesDrm,
406
+ TextureCompressionUnaligned = WGPUFeatureName_TextureCompressionUnaligned,
407
+ DawnAllowUndefinedLoadStoreOp = WGPUFeatureName_DawnAllowUndefinedLoadStoreOp,
405
408
  };
406
409
  static_assert(sizeof(FeatureName) == sizeof(WGPUFeatureName), "sizeof mismatch for FeatureName");
407
410
  static_assert(alignof(FeatureName) == alignof(WGPUFeatureName), "alignof mismatch for FeatureName");
@@ -494,6 +497,7 @@ enum class PredefinedColorSpace : uint32_t {
494
497
  DisplayP3 = WGPUPredefinedColorSpace_DisplayP3,
495
498
  SRGBLinear = WGPUPredefinedColorSpace_SRGBLinear,
496
499
  DisplayP3Linear = WGPUPredefinedColorSpace_DisplayP3Linear,
500
+ Rec2020Linear = WGPUPredefinedColorSpace_Rec2020Linear,
497
501
  };
498
502
  static_assert(sizeof(PredefinedColorSpace) == sizeof(WGPUPredefinedColorSpace), "sizeof mismatch for PredefinedColorSpace");
499
503
  static_assert(alignof(PredefinedColorSpace) == alignof(WGPUPredefinedColorSpace), "alignof mismatch for PredefinedColorSpace");
@@ -703,7 +707,7 @@ enum class SType : uint32_t {
703
707
  TexelBufferBindingLayout = WGPUSType_TexelBufferBindingLayout,
704
708
  SharedTextureMemoryMetalEndAccessState = WGPUSType_SharedTextureMemoryMetalEndAccessState,
705
709
  AdapterPropertiesWGPU = WGPUSType_AdapterPropertiesWGPU,
706
- SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor = WGPUSType_SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor,
710
+ SharedBufferMemoryFromWindowsHandleDescriptor = WGPUSType_SharedBufferMemoryFromWindowsHandleDescriptor,
707
711
  SharedTextureMemoryD3D12ResourceDescriptor = WGPUSType_SharedTextureMemoryD3D12ResourceDescriptor,
708
712
  RequestAdapterOptionsAngleVirtualizationGroup = WGPUSType_RequestAdapterOptionsAngleVirtualizationGroup,
709
713
  PipelineLayoutResourceTable = WGPUSType_PipelineLayoutResourceTable,
@@ -951,6 +955,7 @@ enum class VertexFormat : uint32_t {
951
955
  Sint32x4 = WGPUVertexFormat_Sint32x4,
952
956
  Unorm10_10_10_2 = WGPUVertexFormat_Unorm10_10_10_2,
953
957
  Unorm8x4BGRA = WGPUVertexFormat_Unorm8x4BGRA,
958
+ Snorm10_10_10_2 = WGPUVertexFormat_Snorm10_10_10_2,
954
959
  };
955
960
  static_assert(sizeof(VertexFormat) == sizeof(WGPUVertexFormat), "sizeof mismatch for VertexFormat");
956
961
  static_assert(alignof(VertexFormat) == alignof(WGPUVertexFormat), "alignof mismatch for VertexFormat");
@@ -982,6 +987,7 @@ enum class WGSLLanguageFeatureName : uint32_t {
982
987
  SubgroupUniformity = WGPUWGSLLanguageFeatureName_SubgroupUniformity,
983
988
  TextureFormatsTier1 = WGPUWGSLLanguageFeatureName_TextureFormatsTier1,
984
989
  LinearIndexing = WGPUWGSLLanguageFeatureName_LinearIndexing,
990
+ ImmediateAddressSpace = WGPUWGSLLanguageFeatureName_ImmediateAddressSpace,
985
991
  ChromiumTestingUnimplemented = WGPUWGSLLanguageFeatureName_ChromiumTestingUnimplemented,
986
992
  ChromiumTestingUnsafeExperimental = WGPUWGSLLanguageFeatureName_ChromiumTestingUnsafeExperimental,
987
993
  ChromiumTestingExperimental = WGPUWGSLLanguageFeatureName_ChromiumTestingExperimental,
@@ -991,7 +997,6 @@ enum class WGSLLanguageFeatureName : uint32_t {
991
997
  TexelBuffers = WGPUWGSLLanguageFeatureName_TexelBuffers,
992
998
  ChromiumPrint = WGPUWGSLLanguageFeatureName_ChromiumPrint,
993
999
  FragmentDepth = WGPUWGSLLanguageFeatureName_FragmentDepth,
994
- ImmediateAddressSpace = WGPUWGSLLanguageFeatureName_ImmediateAddressSpace,
995
1000
  BufferView = WGPUWGSLLanguageFeatureName_BufferView,
996
1001
  SwizzleAssignment = WGPUWGSLLanguageFeatureName_SwizzleAssignment,
997
1002
  };
@@ -1082,11 +1087,10 @@ using Proc = WGPUProc;
1082
1087
  class Bool {
1083
1088
  public:
1084
1089
  constexpr Bool() = default;
1085
- // NOLINTNEXTLINE(runtime/explicit) allow implicit construction
1086
- constexpr Bool(bool value) : mValue(static_cast<WGPUBool>(value)) {}
1087
- // NOLINTNEXTLINE(runtime/explicit) allow implicit construction
1088
- Bool(WGPUBool value): mValue(value) {}
1090
+ explicit(false) constexpr Bool(bool value) : mValue(static_cast<WGPUBool>(value)) {}
1091
+ explicit(false) Bool(WGPUBool value): mValue(value) {}
1089
1092
 
1093
+ // NOLINTNEXTLINE(google-explicit-constructor)
1090
1094
  constexpr operator bool() const { return static_cast<bool>(mValue); }
1091
1095
 
1092
1096
  private:
@@ -1099,13 +1103,10 @@ class Bool {
1099
1103
  class OptionalBool {
1100
1104
  public:
1101
1105
  constexpr OptionalBool() = default;
1102
- // NOLINTNEXTLINE(runtime/explicit) allow implicit construction
1103
- constexpr OptionalBool(bool value) : mValue(static_cast<WGPUOptionalBool>(value)) {}
1104
- // NOLINTNEXTLINE(runtime/explicit) allow implicit construction
1105
- constexpr OptionalBool(std::optional<bool> value) :
1106
+ explicit(false) constexpr OptionalBool(bool value) : mValue(static_cast<WGPUOptionalBool>(value)) {}
1107
+ explicit(false) constexpr OptionalBool(std::optional<bool> value) :
1106
1108
  mValue(value ? static_cast<WGPUOptionalBool>(*value) : WGPUOptionalBool_Undefined) {}
1107
- // NOLINTNEXTLINE(runtime/explicit) allow implicit construction
1108
- constexpr OptionalBool(WGPUOptionalBool value): mValue(value) {}
1109
+ explicit(false) constexpr OptionalBool(WGPUOptionalBool value): mValue(value) {}
1109
1110
 
1110
1111
  // Define the values that are equivalent to the enums.
1111
1112
  static const OptionalBool False;
@@ -1127,7 +1128,9 @@ class OptionalBool {
1127
1128
  }
1128
1129
 
1129
1130
  // Conversion functions.
1131
+ // NOLINTNEXTLINE(google-explicit-constructor)
1130
1132
  operator WGPUOptionalBool() const { return mValue; }
1133
+ // NOLINTNEXTLINE(google-explicit-constructor)
1131
1134
  operator std::optional<bool>() const {
1132
1135
  if (mValue == WGPUOptionalBool_Undefined) {
1133
1136
  return std::nullopt;
@@ -1156,13 +1159,12 @@ inline const OptionalBool OptionalBool::Undefined = OptionalBool(WGPUOptionalBoo
1156
1159
  // Used while callers switch to checking the Status enum instead of booleans.
1157
1160
  // TODO(crbug.com/42241199): Remove when all callers check the enum.
1158
1161
  struct ConvertibleStatus {
1159
- // NOLINTNEXTLINE(runtime/explicit) allow implicit construction
1160
- constexpr ConvertibleStatus(Status status) : status(status) {}
1161
- // NOLINTNEXTLINE(runtime/explicit) allow implicit conversion
1162
+ explicit(false) constexpr ConvertibleStatus(Status status) : status(status) {}
1163
+ // NOLINTNEXTLINE(google-explicit-constructor)
1162
1164
  constexpr operator bool() const {
1163
1165
  return status == Status::Success;
1164
1166
  }
1165
- // NOLINTNEXTLINE(runtime/explicit) allow implicit conversion
1167
+ // NOLINTNEXTLINE(google-explicit-constructor)
1166
1168
  constexpr operator Status() const {
1167
1169
  return status;
1168
1170
  }
@@ -1173,7 +1175,7 @@ template<typename Derived, typename CType>
1173
1175
  class ObjectBase {
1174
1176
  public:
1175
1177
  ObjectBase() = default;
1176
- ObjectBase(CType handle): mHandle(handle) {
1178
+ explicit(false) ObjectBase(CType handle): mHandle(handle) {
1177
1179
  if (mHandle) Derived::WGPUAddRef(mHandle);
1178
1180
  }
1179
1181
  ~ObjectBase() {
@@ -1195,19 +1197,19 @@ class ObjectBase {
1195
1197
 
1196
1198
  ObjectBase(ObjectBase&& other) {
1197
1199
  mHandle = other.mHandle;
1198
- other.mHandle = 0;
1200
+ other.mHandle = nullptr;
1199
1201
  }
1200
1202
  Derived& operator=(ObjectBase&& other) {
1201
1203
  if (&other != this) {
1202
1204
  if (mHandle) Derived::WGPURelease(mHandle);
1203
1205
  mHandle = other.mHandle;
1204
- other.mHandle = 0;
1206
+ other.mHandle = nullptr;
1205
1207
  }
1206
1208
 
1207
1209
  return static_cast<Derived&>(*this);
1208
1210
  }
1209
1211
 
1210
- ObjectBase(std::nullptr_t) {}
1212
+ explicit(false) ObjectBase(std::nullptr_t) {}
1211
1213
  Derived& operator=(std::nullptr_t) {
1212
1214
  if (mHandle != nullptr) {
1213
1215
  Derived::WGPURelease(mHandle);
@@ -1231,7 +1233,7 @@ class ObjectBase {
1231
1233
  }
1232
1234
  CType MoveToCHandle() {
1233
1235
  CType result = mHandle;
1234
- mHandle = 0;
1236
+ mHandle = nullptr;
1235
1237
  return result;
1236
1238
  }
1237
1239
  static Derived Acquire(CType handle) {
@@ -1339,8 +1341,8 @@ struct ShaderModuleCompilationOptions;
1339
1341
  struct ShaderSourceSPIRV;
1340
1342
  struct ShaderSourceWGSL;
1341
1343
  struct SharedBufferMemoryBeginAccessDescriptor;
1342
- struct SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor;
1343
1344
  struct SharedBufferMemoryEndAccessState;
1345
+ struct SharedBufferMemoryFromWindowsHandleDescriptor;
1344
1346
  struct SharedBufferMemoryProperties;
1345
1347
  struct SharedFenceDXGISharedHandleDescriptor;
1346
1348
  struct SharedFenceDXGISharedHandleExportInfo;
@@ -1452,33 +1454,23 @@ struct FragmentState;
1452
1454
  struct RenderPassDescriptor;
1453
1455
  struct RenderPipelineDescriptor;
1454
1456
 
1455
- // TODO(42241188): Remove once all clients use StringView versions of the callbacks.
1456
- // To make MSVC happy we need a StringView constructor from the adapter, so we first need to
1457
- // forward declare StringViewAdapter here. Otherwise MSVC complains about an ambiguous conversion.
1458
- namespace detail {
1459
- struct StringViewAdapter;
1460
- } // namespace detail
1461
-
1462
1457
  struct StringView {
1463
1458
  char const * data = nullptr;
1464
1459
  size_t length = WGPU_STRLEN;
1465
1460
 
1466
1461
  inline constexpr StringView() noexcept = default;
1467
1462
 
1468
- // NOLINTNEXTLINE(runtime/explicit) allow implicit construction
1469
- inline constexpr StringView(const std::string_view& sv) noexcept {
1463
+ explicit(false) inline constexpr StringView(const std::string_view& sv) noexcept {
1470
1464
  this->data = sv.data();
1471
1465
  this->length = sv.length();
1472
1466
  }
1473
1467
 
1474
- // NOLINTNEXTLINE(runtime/explicit) allow implicit construction
1475
- inline constexpr StringView(const char* s) {
1468
+ explicit(false) inline constexpr StringView(const char* s) {
1476
1469
  this->data = s;
1477
1470
  this->length = WGPU_STRLEN; // use strlen
1478
1471
  }
1479
1472
 
1480
- // NOLINTNEXTLINE(runtime/explicit) allow implicit construction
1481
- inline constexpr StringView(WGPUStringView s) {
1473
+ explicit(false) inline constexpr StringView(WGPUStringView s) {
1482
1474
  this->data = s.data;
1483
1475
  this->length = s.length;
1484
1476
  }
@@ -1488,14 +1480,12 @@ struct StringView {
1488
1480
  this->length = length;
1489
1481
  }
1490
1482
 
1491
- // NOLINTNEXTLINE(runtime/explicit) allow implicit construction
1492
- inline constexpr StringView(std::nullptr_t) {
1483
+ explicit(false) inline constexpr StringView(std::nullptr_t) {
1493
1484
  this->data = nullptr;
1494
1485
  this->length = WGPU_STRLEN;
1495
1486
  }
1496
1487
 
1497
- // NOLINTNEXTLINE(runtime/explicit) allow implicit construction
1498
- inline constexpr StringView(std::nullopt_t) {
1488
+ explicit(false) inline constexpr StringView(std::nullopt_t) {
1499
1489
  this->data = nullptr;
1500
1490
  this->length = WGPU_STRLEN;
1501
1491
  }
@@ -1504,7 +1494,7 @@ struct StringView {
1504
1494
  return this->data == nullptr && this->length == wgpu::kStrlen;
1505
1495
  }
1506
1496
 
1507
- // NOLINTNEXTLINE(runtime/explicit) allow implicit conversion
1497
+ // NOLINTNEXTLINE(google-explicit-constructor)
1508
1498
  operator std::string_view() const {
1509
1499
  if (this->length == wgpu::kStrlen) {
1510
1500
  if (IsUndefined()) {
@@ -1527,8 +1517,6 @@ struct StringView {
1527
1517
  return {this->data, this->length};
1528
1518
  }
1529
1519
 
1530
-
1531
- StringView(const detail::StringViewAdapter& s);
1532
1520
  };
1533
1521
 
1534
1522
  namespace detail {
@@ -1537,77 +1525,92 @@ constexpr size_t ConstexprMax(size_t a, size_t b) {
1537
1525
  }
1538
1526
 
1539
1527
  template <typename T>
1540
- static T& AsNonConstReference(const T& value) {
1528
+ inline T& AsNonConstReference(const T& value) {
1541
1529
  return const_cast<T&>(value);
1542
1530
  }
1543
-
1544
- // A wrapper around StringView that can be implicitly converted to const char* with temporary
1545
- // storage that adds the \0 for output strings that are all explicitly-sized.
1546
- // TODO(42241188): Remove once all clients use StringView versions of the callbacks.
1547
- struct StringViewAdapter {
1548
- WGPUStringView sv;
1549
- char* nullTerminated = nullptr;
1550
-
1551
- StringViewAdapter(WGPUStringView sv) : sv(sv) {}
1552
- ~StringViewAdapter() { delete[] nullTerminated; }
1553
- operator ::WGPUStringView() { return sv; }
1554
- operator StringView() { return {sv.data, sv.length}; }
1555
- operator const char*() {
1556
- assert(sv.length != WGPU_STRLEN);
1557
- assert(nullTerminated == nullptr);
1558
- nullTerminated = new char[sv.length + 1];
1559
- for (size_t i = 0; i < sv.length; i++) {
1560
- nullTerminated[i] = sv.data[i];
1561
- }
1562
- nullTerminated[sv.length] = 0;
1563
- return nullTerminated;
1564
- }
1565
- };
1566
1531
  } // namespace detail
1567
1532
 
1568
- inline StringView::StringView(const detail::StringViewAdapter& s): data(s.sv.data), length(s.sv.length) {}
1569
-
1570
1533
  namespace detail {
1571
1534
  // For callbacks, we support two modes:
1572
1535
  // 1) No userdata where we allow a std::function type that can include argument captures.
1573
1536
  // 2) Explicit typed userdata where we only allow non-capturing lambdas or function pointers.
1574
- template <typename... Args>
1537
+ template <typename R, typename... Args>
1575
1538
  struct CallbackTypeBase;
1576
- template <typename... Args>
1577
- struct CallbackTypeBase<std::tuple<Args...>> {
1578
- using Callback = std::function<void(Args...)>;
1539
+ template <typename R, typename... Args>
1540
+ struct CallbackTypeBase<R, std::tuple<Args...>> {
1541
+ using Callback = std::function<R(Args...)>;
1542
+ };
1543
+ template <typename R, typename... Args>
1544
+ struct CallbackTypeBase<R, std::tuple<Args...>, void> {
1545
+ using Callback = R (Args...);
1579
1546
  };
1580
- template <typename... Args>
1581
- struct CallbackTypeBase<std::tuple<Args...>, void> {
1582
- using Callback = void (Args...);
1547
+ template <typename R, typename... Args, typename T>
1548
+ struct CallbackTypeBase<R, std::tuple<Args...>, T> {
1549
+ using Callback = R (Args..., T);
1583
1550
  };
1584
- template <typename... Args, typename T>
1585
- struct CallbackTypeBase<std::tuple<Args...>, T> {
1586
- using Callback = void (Args..., T);
1551
+
1552
+ // Noexcept specializations of CallbackTypeBase.
1553
+ template <typename R, typename... Args>
1554
+ struct CallbackTypeBase<R, std::tuple<Args...>, std::true_type> {
1555
+ using Callback = R (Args...) noexcept;
1556
+ };
1557
+ template <typename R, typename... Args>
1558
+ struct CallbackTypeBase<R, std::tuple<Args...>, void, std::true_type> {
1559
+ using Callback = R (Args...) noexcept;
1560
+ };
1561
+ template <typename R, typename... Args, typename T>
1562
+ struct CallbackTypeBase<R, std::tuple<Args...>, T, std::true_type> {
1563
+ using Callback = R (Args..., T) noexcept;
1587
1564
  };
1588
1565
  } // namespace detail
1589
1566
  template <typename... T>
1590
- using BufferMapCallback = typename detail::CallbackTypeBase<std::tuple<MapAsyncStatus, StringView>, T...>::Callback;
1567
+ using BufferMapCallback = detail::CallbackTypeBase<
1568
+ void,
1569
+ std::tuple<MapAsyncStatus, StringView>, T...>::Callback;
1570
+ template <typename... T>
1571
+ using CompilationInfoCallback = detail::CallbackTypeBase<
1572
+ void,
1573
+ std::tuple<CompilationInfoRequestStatus, CompilationInfo const *>, T...>::Callback;
1591
1574
  template <typename... T>
1592
- using CompilationInfoCallback = typename detail::CallbackTypeBase<std::tuple<CompilationInfoRequestStatus, CompilationInfo const *>, T...>::Callback;
1575
+ using CreateComputePipelineAsyncCallback = detail::CallbackTypeBase<
1576
+ void,
1577
+ std::tuple<CreatePipelineAsyncStatus, ComputePipeline, StringView>, T...>::Callback;
1593
1578
  template <typename... T>
1594
- using CreateComputePipelineAsyncCallback = typename detail::CallbackTypeBase<std::tuple<CreatePipelineAsyncStatus, ComputePipeline, StringView>, T...>::Callback;
1579
+ using CreateRenderPipelineAsyncCallback = detail::CallbackTypeBase<
1580
+ void,
1581
+ std::tuple<CreatePipelineAsyncStatus, RenderPipeline, StringView>, T...>::Callback;
1595
1582
  template <typename... T>
1596
- using CreateRenderPipelineAsyncCallback = typename detail::CallbackTypeBase<std::tuple<CreatePipelineAsyncStatus, RenderPipeline, StringView>, T...>::Callback;
1583
+ using DawnLoadCacheDataCallback = detail::CallbackTypeBase<
1584
+ size_t,
1585
+ std::tuple<size_t, uint8_t const *, size_t, uint8_t *>, T...>::Callback;
1597
1586
  template <typename... T>
1598
- using LoggingCallback = typename detail::CallbackTypeBase<std::tuple<LoggingType, StringView>, T...>::Callback;
1587
+ using DawnStoreCacheDataCallback = detail::CallbackTypeBase<
1588
+ void,
1589
+ std::tuple<size_t, uint8_t const *, size_t, uint8_t const *>, T...>::Callback;
1599
1590
  template <typename... T>
1600
- using PopErrorScopeCallback = typename detail::CallbackTypeBase<std::tuple<PopErrorScopeStatus, ErrorType, StringView>, T...>::Callback;
1591
+ using LoggingCallback = detail::CallbackTypeBase<
1592
+ void,
1593
+ std::tuple<LoggingType, StringView>, T...>::Callback;
1601
1594
  template <typename... T>
1602
- using QueueWorkDoneCallback = typename detail::CallbackTypeBase<std::tuple<QueueWorkDoneStatus, StringView>, T...>::Callback;
1595
+ using PopErrorScopeCallback = detail::CallbackTypeBase<
1596
+ void,
1597
+ std::tuple<PopErrorScopeStatus, ErrorType, StringView>, T...>::Callback;
1603
1598
  template <typename... T>
1604
- using RequestAdapterCallback = typename detail::CallbackTypeBase<std::tuple<RequestAdapterStatus, Adapter, StringView>, T...>::Callback;
1599
+ using QueueWorkDoneCallback = detail::CallbackTypeBase<
1600
+ void,
1601
+ std::tuple<QueueWorkDoneStatus, StringView>, T...>::Callback;
1605
1602
  template <typename... T>
1606
- using RequestDeviceCallback = typename detail::CallbackTypeBase<std::tuple<RequestDeviceStatus, Device, StringView>, T...>::Callback;
1603
+ using RequestAdapterCallback = detail::CallbackTypeBase<
1604
+ void,
1605
+ std::tuple<RequestAdapterStatus, Adapter, StringView>, T...>::Callback;
1607
1606
  template <typename... T>
1608
- using DeviceLostCallback = typename detail::CallbackTypeBase<std::tuple<const Device&, DeviceLostReason, StringView>, T...>::Callback;
1607
+ using RequestDeviceCallback = detail::CallbackTypeBase<
1608
+ void,
1609
+ std::tuple<RequestDeviceStatus, Device, StringView>, T...>::Callback;
1609
1610
  template <typename... T>
1610
- using UncapturedErrorCallback = typename detail::CallbackTypeBase<std::tuple<const Device&, ErrorType, StringView>, T...>::Callback;
1611
+ using DeviceLostCallback = detail::CallbackTypeBase<void, std::tuple<const Device&, DeviceLostReason, StringView>, T...>::Callback;
1612
+ template <typename... T>
1613
+ using UncapturedErrorCallback = detail::CallbackTypeBase<void, std::tuple<const Device&, ErrorType, StringView>, T...>::Callback;
1611
1614
 
1612
1615
  class Adapter : public ObjectBase<Adapter, WGPUAdapter> {
1613
1616
  public:
@@ -1762,7 +1765,9 @@ class Device : public ObjectBase<Device, WGPUDevice> {
1762
1765
  template <typename F>
1763
1766
  Future CreateComputePipelineAsync(ComputePipelineDescriptor const * descriptor, CallbackMode callbackMode, F callback) const;
1764
1767
  inline Buffer CreateErrorBuffer(BufferDescriptor const * descriptor) const;
1768
+ inline ComputePipeline CreateErrorComputePipeline(StringView label) const;
1765
1769
  inline ExternalTexture CreateErrorExternalTexture() const;
1770
+ inline RenderPipeline CreateErrorRenderPipeline(StringView label) const;
1766
1771
  inline ShaderModule CreateErrorShaderModule(ShaderModuleDescriptor const * descriptor, StringView errorMessage) const;
1767
1772
  inline Texture CreateErrorTexture(TextureDescriptor const * descriptor) const;
1768
1773
  inline ExternalTexture CreateExternalTexture(ExternalTextureDescriptor const * externalTextureDescriptor) const;
@@ -1942,8 +1947,8 @@ class ResourceTable : public ObjectBase<ResourceTable, WGPUResourceTable> {
1942
1947
 
1943
1948
  inline void Destroy() const;
1944
1949
  inline uint32_t GetSize() const;
1945
- inline uint32_t InsertBinding(BindingResource const * resource) const;
1946
- inline ConvertibleStatus RemoveBinding(uint32_t slot) const;
1950
+ inline uint32_t Insert(BindingResource const * resource) const;
1951
+ inline ConvertibleStatus Remove(uint32_t slot) const;
1947
1952
  inline void SetLabel(StringView label) const;
1948
1953
  inline ConvertibleStatus Update(uint32_t slot, BindingResource const * resource) const;
1949
1954
 
@@ -2089,10 +2094,8 @@ class Texture : public ObjectBase<Texture, WGPUTexture> {
2089
2094
  inline TextureViewDimension GetTextureBindingViewDimension() const;
2090
2095
  inline TextureUsage GetUsage() const;
2091
2096
  inline uint32_t GetWidth() const;
2092
- inline void Pin(TextureUsage usage) const;
2093
2097
  inline void SetLabel(StringView label) const;
2094
2098
  inline void SetOwnershipForMemoryDump(uint64_t ownerGuid = 0) const;
2095
- inline void Unpin() const;
2096
2099
 
2097
2100
 
2098
2101
  private:
@@ -2218,11 +2221,14 @@ static_assert(offsetof(ChainedStruct, nextInChain) == offsetof(WGPUChainedStruct
2218
2221
  static_assert(offsetof(ChainedStruct, sType) == offsetof(WGPUChainedStruct, sType),
2219
2222
  "offsetof mismatch for ChainedStruct::sType");
2220
2223
 
2224
+ // NOLINTBEGIN(bugprone-invalid-enum-default-initialization)
2225
+
2221
2226
  // Can be chained in AdapterInfo
2222
2227
  struct AdapterPropertiesD3D : ChainedStructOut {
2223
2228
  inline AdapterPropertiesD3D();
2224
2229
  struct Init;
2225
- inline AdapterPropertiesD3D(Init&& init);
2230
+ explicit(false) inline AdapterPropertiesD3D(Init&& init);
2231
+ // NOLINTNEXTLINE(google-explicit-constructor)
2226
2232
  inline operator const WGPUAdapterPropertiesD3D&() const noexcept;
2227
2233
 
2228
2234
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(uint32_t));
@@ -2233,7 +2239,8 @@ struct AdapterPropertiesD3D : ChainedStructOut {
2233
2239
  struct AdapterPropertiesDrm : ChainedStructOut {
2234
2240
  inline AdapterPropertiesDrm();
2235
2241
  struct Init;
2236
- inline AdapterPropertiesDrm(Init&& init);
2242
+ explicit(false) inline AdapterPropertiesDrm(Init&& init);
2243
+ // NOLINTNEXTLINE(google-explicit-constructor)
2237
2244
  inline operator const WGPUAdapterPropertiesDrm&() const noexcept;
2238
2245
 
2239
2246
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(Bool));
@@ -2249,7 +2256,8 @@ struct AdapterPropertiesDrm : ChainedStructOut {
2249
2256
  struct AdapterPropertiesVk : ChainedStructOut {
2250
2257
  inline AdapterPropertiesVk();
2251
2258
  struct Init;
2252
- inline AdapterPropertiesVk(Init&& init);
2259
+ explicit(false) inline AdapterPropertiesVk(Init&& init);
2260
+ // NOLINTNEXTLINE(google-explicit-constructor)
2253
2261
  inline operator const WGPUAdapterPropertiesVk&() const noexcept;
2254
2262
 
2255
2263
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(uint32_t));
@@ -2260,7 +2268,8 @@ struct AdapterPropertiesVk : ChainedStructOut {
2260
2268
  struct AdapterPropertiesWGPU : ChainedStructOut {
2261
2269
  inline AdapterPropertiesWGPU();
2262
2270
  struct Init;
2263
- inline AdapterPropertiesWGPU(Init&& init);
2271
+ explicit(false) inline AdapterPropertiesWGPU(Init&& init);
2272
+ // NOLINTNEXTLINE(google-explicit-constructor)
2264
2273
  inline operator const WGPUAdapterPropertiesWGPU&() const noexcept;
2265
2274
 
2266
2275
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(BackendType));
@@ -2268,6 +2277,7 @@ struct AdapterPropertiesWGPU : ChainedStructOut {
2268
2277
  };
2269
2278
 
2270
2279
  struct BindingResource {
2280
+ // NOLINTNEXTLINE(google-explicit-constructor)
2271
2281
  inline operator const WGPUBindingResource&() const noexcept;
2272
2282
 
2273
2283
  ChainedStruct const * nextInChain = nullptr;
@@ -2279,6 +2289,7 @@ struct BindingResource {
2279
2289
  };
2280
2290
 
2281
2291
  struct BlendComponent {
2292
+ // NOLINTNEXTLINE(google-explicit-constructor)
2282
2293
  inline operator const WGPUBlendComponent&() const noexcept;
2283
2294
 
2284
2295
  BlendOperation operation = BlendOperation::Undefined;
@@ -2287,6 +2298,7 @@ struct BlendComponent {
2287
2298
  };
2288
2299
 
2289
2300
  struct BufferBindingLayout {
2301
+ // NOLINTNEXTLINE(google-explicit-constructor)
2290
2302
  inline operator const WGPUBufferBindingLayout&() const noexcept;
2291
2303
 
2292
2304
  ChainedStruct const * nextInChain = nullptr;
@@ -2299,7 +2311,8 @@ struct BufferBindingLayout {
2299
2311
  struct BufferHostMappedPointer : ChainedStruct {
2300
2312
  inline BufferHostMappedPointer();
2301
2313
  struct Init;
2302
- inline BufferHostMappedPointer(Init&& init);
2314
+ explicit(false) inline BufferHostMappedPointer(Init&& init);
2315
+ // NOLINTNEXTLINE(google-explicit-constructor)
2303
2316
  inline operator const WGPUBufferHostMappedPointer&() const noexcept;
2304
2317
 
2305
2318
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -2309,6 +2322,7 @@ struct BufferHostMappedPointer : ChainedStruct {
2309
2322
  };
2310
2323
 
2311
2324
  struct Color {
2325
+ // NOLINTNEXTLINE(google-explicit-constructor)
2312
2326
  inline operator const WGPUColor&() const noexcept;
2313
2327
 
2314
2328
  double r;
@@ -2318,6 +2332,7 @@ struct Color {
2318
2332
  };
2319
2333
 
2320
2334
  struct ColorSpaceDawn {
2335
+ // NOLINTNEXTLINE(google-explicit-constructor)
2321
2336
  inline operator const WGPUColorSpaceDawn&() const noexcept;
2322
2337
 
2323
2338
  ChainedStruct const * nextInChain = nullptr;
@@ -2325,13 +2340,15 @@ struct ColorSpaceDawn {
2325
2340
  ColorSpaceTransferDawn transfer = ColorSpaceTransferDawn::Identity;
2326
2341
  ColorSpaceYCbCrRangeDawn yCbCrRange = ColorSpaceYCbCrRangeDawn::Identity;
2327
2342
  ColorSpaceYCbCrMatrixDawn yCbCrMatrix = ColorSpaceYCbCrMatrixDawn::Identity;
2343
+ float hdrReferenceWhiteLuminance = 0;
2328
2344
  };
2329
2345
 
2330
2346
  // Can be chained in ColorTargetState
2331
2347
  struct ColorTargetStateExpandResolveTextureDawn : ChainedStruct {
2332
2348
  inline ColorTargetStateExpandResolveTextureDawn();
2333
2349
  struct Init;
2334
- inline ColorTargetStateExpandResolveTextureDawn(Init&& init);
2350
+ explicit(false) inline ColorTargetStateExpandResolveTextureDawn(Init&& init);
2351
+ // NOLINTNEXTLINE(google-explicit-constructor)
2335
2352
  inline operator const WGPUColorTargetStateExpandResolveTextureDawn&() const noexcept;
2336
2353
 
2337
2354
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
@@ -2339,6 +2356,7 @@ struct ColorTargetStateExpandResolveTextureDawn : ChainedStruct {
2339
2356
  };
2340
2357
 
2341
2358
  struct CommandBufferDescriptor {
2359
+ // NOLINTNEXTLINE(google-explicit-constructor)
2342
2360
  inline operator const WGPUCommandBufferDescriptor&() const noexcept;
2343
2361
 
2344
2362
  ChainedStruct const * nextInChain = nullptr;
@@ -2349,7 +2367,8 @@ struct CommandBufferDescriptor {
2349
2367
  struct CompatibilityModeLimits : ChainedStructOut {
2350
2368
  inline CompatibilityModeLimits();
2351
2369
  struct Init;
2352
- inline CompatibilityModeLimits(Init&& init);
2370
+ explicit(false) inline CompatibilityModeLimits(Init&& init);
2371
+ // NOLINTNEXTLINE(google-explicit-constructor)
2353
2372
  inline operator const WGPUCompatibilityModeLimits&() const noexcept;
2354
2373
 
2355
2374
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(uint32_t));
@@ -2360,6 +2379,7 @@ struct CompatibilityModeLimits : ChainedStructOut {
2360
2379
  };
2361
2380
 
2362
2381
  struct ConstantEntry {
2382
+ // NOLINTNEXTLINE(google-explicit-constructor)
2363
2383
  inline operator const WGPUConstantEntry&() const noexcept;
2364
2384
 
2365
2385
  ChainedStruct const * nextInChain = nullptr;
@@ -2368,6 +2388,7 @@ struct ConstantEntry {
2368
2388
  };
2369
2389
 
2370
2390
  struct CopyTextureForBrowserOptions {
2391
+ // NOLINTNEXTLINE(google-explicit-constructor)
2371
2392
  inline operator const WGPUCopyTextureForBrowserOptions&() const noexcept;
2372
2393
 
2373
2394
  ChainedStruct const * nextInChain = nullptr;
@@ -2385,7 +2406,8 @@ struct CopyTextureForBrowserOptions {
2385
2406
  struct DawnAdapterPropertiesPowerPreference : ChainedStructOut {
2386
2407
  inline DawnAdapterPropertiesPowerPreference();
2387
2408
  struct Init;
2388
- inline DawnAdapterPropertiesPowerPreference(Init&& init);
2409
+ explicit(false) inline DawnAdapterPropertiesPowerPreference(Init&& init);
2410
+ // NOLINTNEXTLINE(google-explicit-constructor)
2389
2411
  inline operator const WGPUDawnAdapterPropertiesPowerPreference&() const noexcept;
2390
2412
 
2391
2413
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(PowerPreference));
@@ -2396,32 +2418,49 @@ struct DawnAdapterPropertiesPowerPreference : ChainedStructOut {
2396
2418
  struct DawnBufferDescriptorErrorInfoFromWireClient : ChainedStruct {
2397
2419
  inline DawnBufferDescriptorErrorInfoFromWireClient();
2398
2420
  struct Init;
2399
- inline DawnBufferDescriptorErrorInfoFromWireClient(Init&& init);
2421
+ explicit(false) inline DawnBufferDescriptorErrorInfoFromWireClient(Init&& init);
2422
+ // NOLINTNEXTLINE(google-explicit-constructor)
2400
2423
  inline operator const WGPUDawnBufferDescriptorErrorInfoFromWireClient&() const noexcept;
2401
2424
 
2402
2425
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
2403
2426
  alignas(kFirstMemberAlignment) Bool outOfMemory = false;
2404
2427
  };
2405
2428
 
2429
+ namespace detail {
2430
+ struct DawnCacheDeviceDescriptor {
2431
+ static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(StringView));
2432
+ alignas(kFirstMemberAlignment) StringView isolationKey = {};
2433
+ WGPUDawnLoadCacheDataCallbackInfo dawnLoadCacheDataCallbackInfo = WGPU_DAWN_LOAD_CACHE_DATA_CALLBACK_INFO_INIT;
2434
+ WGPUDawnStoreCacheDataCallbackInfo dawnStoreCacheDataCallbackInfo = WGPU_DAWN_STORE_CACHE_DATA_CALLBACK_INFO_INIT;
2435
+ };
2436
+ } // namespace detail
2406
2437
  // Can be chained in DeviceDescriptor
2407
- struct DawnCacheDeviceDescriptor : ChainedStruct {
2438
+ struct DawnCacheDeviceDescriptor : ChainedStruct, protected detail::DawnCacheDeviceDescriptor {
2408
2439
  inline DawnCacheDeviceDescriptor();
2409
2440
  struct Init;
2410
- inline DawnCacheDeviceDescriptor(Init&& init);
2441
+ explicit(false) inline DawnCacheDeviceDescriptor(Init&& init);
2442
+ // NOLINTNEXTLINE(google-explicit-constructor)
2411
2443
  inline operator const WGPUDawnCacheDeviceDescriptor&() const noexcept;
2412
2444
 
2413
- static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(StringView));
2414
- alignas(kFirstMemberAlignment) StringView isolationKey = {};
2415
- DawnLoadCacheDataFunction loadDataFunction = nullptr;
2416
- DawnStoreCacheDataFunction storeDataFunction = nullptr;
2417
- void * functionUserdata = nullptr;
2445
+ using detail::DawnCacheDeviceDescriptor::kFirstMemberAlignment;
2446
+ using detail::DawnCacheDeviceDescriptor::isolationKey;
2447
+
2448
+ template <typename F, typename T>
2449
+ void SetDawnLoadCacheDataCallback(F callback, T userdata);
2450
+ template <typename F>
2451
+ void SetDawnLoadCacheDataCallback(F callback);
2452
+ template <typename F, typename T>
2453
+ void SetDawnStoreCacheDataCallback(F callback, T userdata);
2454
+ template <typename F>
2455
+ void SetDawnStoreCacheDataCallback(F callback);
2418
2456
  };
2419
2457
 
2420
2458
  // Can be chained in CompilationMessage
2421
2459
  struct DawnCompilationMessageUtf16 : ChainedStruct {
2422
2460
  inline DawnCompilationMessageUtf16();
2423
2461
  struct Init;
2424
- inline DawnCompilationMessageUtf16(Init&& init);
2462
+ explicit(false) inline DawnCompilationMessageUtf16(Init&& init);
2463
+ // NOLINTNEXTLINE(google-explicit-constructor)
2425
2464
  inline operator const WGPUDawnCompilationMessageUtf16&() const noexcept;
2426
2465
 
2427
2466
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint64_t));
@@ -2434,7 +2473,8 @@ struct DawnCompilationMessageUtf16 : ChainedStruct {
2434
2473
  struct DawnConsumeAdapterDescriptor : ChainedStruct {
2435
2474
  inline DawnConsumeAdapterDescriptor();
2436
2475
  struct Init;
2437
- inline DawnConsumeAdapterDescriptor(Init&& init);
2476
+ explicit(false) inline DawnConsumeAdapterDescriptor(Init&& init);
2477
+ // NOLINTNEXTLINE(google-explicit-constructor)
2438
2478
  inline operator const WGPUDawnConsumeAdapterDescriptor&() const noexcept;
2439
2479
 
2440
2480
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
@@ -2445,7 +2485,8 @@ struct DawnConsumeAdapterDescriptor : ChainedStruct {
2445
2485
  struct DawnDeviceAllocatorControl : ChainedStruct {
2446
2486
  inline DawnDeviceAllocatorControl();
2447
2487
  struct Init;
2448
- inline DawnDeviceAllocatorControl(Init&& init);
2488
+ explicit(false) inline DawnDeviceAllocatorControl(Init&& init);
2489
+ // NOLINTNEXTLINE(google-explicit-constructor)
2449
2490
  inline operator const WGPUDawnDeviceAllocatorControl&() const noexcept;
2450
2491
 
2451
2492
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(size_t));
@@ -2453,6 +2494,7 @@ struct DawnDeviceAllocatorControl : ChainedStruct {
2453
2494
  };
2454
2495
 
2455
2496
  struct DawnDrmFormatProperties {
2497
+ // NOLINTNEXTLINE(google-explicit-constructor)
2456
2498
  inline operator const WGPUDawnDrmFormatProperties&() const noexcept;
2457
2499
 
2458
2500
  uint64_t modifier;
@@ -2463,7 +2505,8 @@ struct DawnDrmFormatProperties {
2463
2505
  struct DawnEncoderInternalUsageDescriptor : ChainedStruct {
2464
2506
  inline DawnEncoderInternalUsageDescriptor();
2465
2507
  struct Init;
2466
- inline DawnEncoderInternalUsageDescriptor(Init&& init);
2508
+ explicit(false) inline DawnEncoderInternalUsageDescriptor(Init&& init);
2509
+ // NOLINTNEXTLINE(google-explicit-constructor)
2467
2510
  inline operator const WGPUDawnEncoderInternalUsageDescriptor&() const noexcept;
2468
2511
 
2469
2512
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
@@ -2474,7 +2517,8 @@ struct DawnEncoderInternalUsageDescriptor : ChainedStruct {
2474
2517
  struct DawnFakeBufferOOMForTesting : ChainedStruct {
2475
2518
  inline DawnFakeBufferOOMForTesting();
2476
2519
  struct Init;
2477
- inline DawnFakeBufferOOMForTesting(Init&& init);
2520
+ explicit(false) inline DawnFakeBufferOOMForTesting(Init&& init);
2521
+ // NOLINTNEXTLINE(google-explicit-constructor)
2478
2522
  inline operator const WGPUDawnFakeBufferOOMForTesting&() const noexcept;
2479
2523
 
2480
2524
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
@@ -2487,7 +2531,8 @@ struct DawnFakeBufferOOMForTesting : ChainedStruct {
2487
2531
  struct DawnFakeDeviceInitializeErrorForTesting : ChainedStruct {
2488
2532
  inline DawnFakeDeviceInitializeErrorForTesting();
2489
2533
  struct Init;
2490
- inline DawnFakeDeviceInitializeErrorForTesting(Init&& init);
2534
+ explicit(false) inline DawnFakeDeviceInitializeErrorForTesting(Init&& init);
2535
+ // NOLINTNEXTLINE(google-explicit-constructor)
2491
2536
  inline operator const WGPUDawnFakeDeviceInitializeErrorForTesting&() const noexcept;
2492
2537
 
2493
2538
  };
@@ -2496,7 +2541,8 @@ struct DawnFakeDeviceInitializeErrorForTesting : ChainedStruct {
2496
2541
  struct DawnHostMappedPointerLimits : ChainedStructOut {
2497
2542
  inline DawnHostMappedPointerLimits();
2498
2543
  struct Init;
2499
- inline DawnHostMappedPointerLimits(Init&& init);
2544
+ explicit(false) inline DawnHostMappedPointerLimits(Init&& init);
2545
+ // NOLINTNEXTLINE(google-explicit-constructor)
2500
2546
  inline operator const WGPUDawnHostMappedPointerLimits&() const noexcept;
2501
2547
 
2502
2548
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(uint32_t));
@@ -2506,7 +2552,8 @@ struct DawnHostMappedPointerLimits : ChainedStructOut {
2506
2552
  struct DawnInjectedInvalidSType : ChainedStruct {
2507
2553
  inline DawnInjectedInvalidSType();
2508
2554
  struct Init;
2509
- inline DawnInjectedInvalidSType(Init&& init);
2555
+ explicit(false) inline DawnInjectedInvalidSType(Init&& init);
2556
+ // NOLINTNEXTLINE(google-explicit-constructor)
2510
2557
  inline operator const WGPUDawnInjectedInvalidSType&() const noexcept;
2511
2558
 
2512
2559
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(SType));
@@ -2517,7 +2564,8 @@ struct DawnInjectedInvalidSType : ChainedStruct {
2517
2564
  struct DawnRenderPassSampleCount : ChainedStruct {
2518
2565
  inline DawnRenderPassSampleCount();
2519
2566
  struct Init;
2520
- inline DawnRenderPassSampleCount(Init&& init);
2567
+ explicit(false) inline DawnRenderPassSampleCount(Init&& init);
2568
+ // NOLINTNEXTLINE(google-explicit-constructor)
2521
2569
  inline operator const WGPUDawnRenderPassSampleCount&() const noexcept;
2522
2570
 
2523
2571
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint32_t));
@@ -2528,7 +2576,8 @@ struct DawnRenderPassSampleCount : ChainedStruct {
2528
2576
  struct DawnShaderModuleSPIRVOptionsDescriptor : ChainedStruct {
2529
2577
  inline DawnShaderModuleSPIRVOptionsDescriptor();
2530
2578
  struct Init;
2531
- inline DawnShaderModuleSPIRVOptionsDescriptor(Init&& init);
2579
+ explicit(false) inline DawnShaderModuleSPIRVOptionsDescriptor(Init&& init);
2580
+ // NOLINTNEXTLINE(google-explicit-constructor)
2532
2581
  inline operator const WGPUDawnShaderModuleSPIRVOptionsDescriptor&() const noexcept;
2533
2582
 
2534
2583
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
@@ -2539,7 +2588,8 @@ struct DawnShaderModuleSPIRVOptionsDescriptor : ChainedStruct {
2539
2588
  struct DawnTexelCopyBufferRowAlignmentLimits : ChainedStructOut {
2540
2589
  inline DawnTexelCopyBufferRowAlignmentLimits();
2541
2590
  struct Init;
2542
- inline DawnTexelCopyBufferRowAlignmentLimits(Init&& init);
2591
+ explicit(false) inline DawnTexelCopyBufferRowAlignmentLimits(Init&& init);
2592
+ // NOLINTNEXTLINE(google-explicit-constructor)
2543
2593
  inline operator const WGPUDawnTexelCopyBufferRowAlignmentLimits&() const noexcept;
2544
2594
 
2545
2595
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(uint32_t));
@@ -2550,7 +2600,8 @@ struct DawnTexelCopyBufferRowAlignmentLimits : ChainedStructOut {
2550
2600
  struct DawnTextureInternalUsageDescriptor : ChainedStruct {
2551
2601
  inline DawnTextureInternalUsageDescriptor();
2552
2602
  struct Init;
2553
- inline DawnTextureInternalUsageDescriptor(Init&& init);
2603
+ explicit(false) inline DawnTextureInternalUsageDescriptor(Init&& init);
2604
+ // NOLINTNEXTLINE(google-explicit-constructor)
2554
2605
  inline operator const WGPUDawnTextureInternalUsageDescriptor&() const noexcept;
2555
2606
 
2556
2607
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(TextureUsage));
@@ -2563,7 +2614,8 @@ struct DawnTextureInternalUsageDescriptor : ChainedStruct {
2563
2614
  struct DawnTogglesDescriptor : ChainedStruct {
2564
2615
  inline DawnTogglesDescriptor();
2565
2616
  struct Init;
2566
- inline DawnTogglesDescriptor(Init&& init);
2617
+ explicit(false) inline DawnTogglesDescriptor(Init&& init);
2618
+ // NOLINTNEXTLINE(google-explicit-constructor)
2567
2619
  inline operator const WGPUDawnTogglesDescriptor&() const noexcept;
2568
2620
 
2569
2621
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(size_t));
@@ -2577,7 +2629,8 @@ struct DawnTogglesDescriptor : ChainedStruct {
2577
2629
  struct DawnWGSLBlocklist : ChainedStruct {
2578
2630
  inline DawnWGSLBlocklist();
2579
2631
  struct Init;
2580
- inline DawnWGSLBlocklist(Init&& init);
2632
+ explicit(false) inline DawnWGSLBlocklist(Init&& init);
2633
+ // NOLINTNEXTLINE(google-explicit-constructor)
2581
2634
  inline operator const WGPUDawnWGSLBlocklist&() const noexcept;
2582
2635
 
2583
2636
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(size_t));
@@ -2589,7 +2642,8 @@ struct DawnWGSLBlocklist : ChainedStruct {
2589
2642
  struct DawnWireWGSLControl : ChainedStruct {
2590
2643
  inline DawnWireWGSLControl();
2591
2644
  struct Init;
2592
- inline DawnWireWGSLControl(Init&& init);
2645
+ explicit(false) inline DawnWireWGSLControl(Init&& init);
2646
+ // NOLINTNEXTLINE(google-explicit-constructor)
2593
2647
  inline operator const WGPUDawnWireWGSLControl&() const noexcept;
2594
2648
 
2595
2649
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
@@ -2602,7 +2656,8 @@ struct DawnWireWGSLControl : ChainedStruct {
2602
2656
  struct EmscriptenSurfaceSourceCanvasHTMLSelector : ChainedStruct {
2603
2657
  inline EmscriptenSurfaceSourceCanvasHTMLSelector();
2604
2658
  struct Init;
2605
- inline EmscriptenSurfaceSourceCanvasHTMLSelector(Init&& init);
2659
+ explicit(false) inline EmscriptenSurfaceSourceCanvasHTMLSelector(Init&& init);
2660
+ // NOLINTNEXTLINE(google-explicit-constructor)
2606
2661
  inline operator const WGPUEmscriptenSurfaceSourceCanvasHTMLSelector&() const noexcept;
2607
2662
 
2608
2663
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(StringView));
@@ -2610,6 +2665,7 @@ struct EmscriptenSurfaceSourceCanvasHTMLSelector : ChainedStruct {
2610
2665
  };
2611
2666
 
2612
2667
  struct Extent2D {
2668
+ // NOLINTNEXTLINE(google-explicit-constructor)
2613
2669
  inline operator const WGPUExtent2D&() const noexcept;
2614
2670
 
2615
2671
  uint32_t width;
@@ -2617,6 +2673,7 @@ struct Extent2D {
2617
2673
  };
2618
2674
 
2619
2675
  struct Extent3D {
2676
+ // NOLINTNEXTLINE(google-explicit-constructor)
2620
2677
  inline operator const WGPUExtent3D&() const noexcept;
2621
2678
 
2622
2679
  uint32_t width;
@@ -2628,7 +2685,8 @@ struct Extent3D {
2628
2685
  struct ExternalTextureBindingEntry : ChainedStruct {
2629
2686
  inline ExternalTextureBindingEntry();
2630
2687
  struct Init;
2631
- inline ExternalTextureBindingEntry(Init&& init);
2688
+ explicit(false) inline ExternalTextureBindingEntry(Init&& init);
2689
+ // NOLINTNEXTLINE(google-explicit-constructor)
2632
2690
  inline operator const WGPUExternalTextureBindingEntry&() const noexcept;
2633
2691
 
2634
2692
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(ExternalTexture));
@@ -2639,18 +2697,21 @@ struct ExternalTextureBindingEntry : ChainedStruct {
2639
2697
  struct ExternalTextureBindingLayout : ChainedStruct {
2640
2698
  inline ExternalTextureBindingLayout();
2641
2699
  struct Init;
2642
- inline ExternalTextureBindingLayout(Init&& init);
2700
+ explicit(false) inline ExternalTextureBindingLayout(Init&& init);
2701
+ // NOLINTNEXTLINE(google-explicit-constructor)
2643
2702
  inline operator const WGPUExternalTextureBindingLayout&() const noexcept;
2644
2703
 
2645
2704
  };
2646
2705
 
2647
2706
  struct Future {
2707
+ // NOLINTNEXTLINE(google-explicit-constructor)
2648
2708
  inline operator const WGPUFuture&() const noexcept;
2649
2709
 
2650
2710
  uint64_t id;
2651
2711
  };
2652
2712
 
2653
2713
  struct InstanceLimits {
2714
+ // NOLINTNEXTLINE(google-explicit-constructor)
2654
2715
  inline operator const WGPUInstanceLimits&() const noexcept;
2655
2716
 
2656
2717
  ChainedStructOut * nextInChain = nullptr;
@@ -2658,12 +2719,14 @@ struct InstanceLimits {
2658
2719
  };
2659
2720
 
2660
2721
  struct INTERNAL_HAVE_EMDAWNWEBGPU_HEADER {
2722
+ // NOLINTNEXTLINE(google-explicit-constructor)
2661
2723
  inline operator const WGPUINTERNAL_HAVE_EMDAWNWEBGPU_HEADER&() const noexcept;
2662
2724
 
2663
2725
  Bool unused = false;
2664
2726
  };
2665
2727
 
2666
2728
  struct MemoryHeapInfo {
2729
+ // NOLINTNEXTLINE(google-explicit-constructor)
2667
2730
  inline operator const WGPUMemoryHeapInfo&() const noexcept;
2668
2731
 
2669
2732
  HeapProperty properties = HeapProperty::None;
@@ -2671,6 +2734,7 @@ struct MemoryHeapInfo {
2671
2734
  };
2672
2735
 
2673
2736
  struct MultisampleState {
2737
+ // NOLINTNEXTLINE(google-explicit-constructor)
2674
2738
  inline operator const WGPUMultisampleState&() const noexcept;
2675
2739
 
2676
2740
  ChainedStruct const * nextInChain = nullptr;
@@ -2680,6 +2744,7 @@ struct MultisampleState {
2680
2744
  };
2681
2745
 
2682
2746
  struct Origin2D {
2747
+ // NOLINTNEXTLINE(google-explicit-constructor)
2683
2748
  inline operator const WGPUOrigin2D&() const noexcept;
2684
2749
 
2685
2750
  uint32_t x = 0;
@@ -2687,6 +2752,7 @@ struct Origin2D {
2687
2752
  };
2688
2753
 
2689
2754
  struct Origin3D {
2755
+ // NOLINTNEXTLINE(google-explicit-constructor)
2690
2756
  inline operator const WGPUOrigin3D&() const noexcept;
2691
2757
 
2692
2758
  uint32_t x = 0;
@@ -2695,6 +2761,7 @@ struct Origin3D {
2695
2761
  };
2696
2762
 
2697
2763
  struct PassTimestampWrites {
2764
+ // NOLINTNEXTLINE(google-explicit-constructor)
2698
2765
  inline operator const WGPUPassTimestampWrites&() const noexcept;
2699
2766
 
2700
2767
  ChainedStruct const * nextInChain = nullptr;
@@ -2707,7 +2774,8 @@ struct PassTimestampWrites {
2707
2774
  struct PipelineLayoutResourceTable : ChainedStruct {
2708
2775
  inline PipelineLayoutResourceTable();
2709
2776
  struct Init;
2710
- inline PipelineLayoutResourceTable(Init&& init);
2777
+ explicit(false) inline PipelineLayoutResourceTable(Init&& init);
2778
+ // NOLINTNEXTLINE(google-explicit-constructor)
2711
2779
  inline operator const WGPUPipelineLayoutResourceTable&() const noexcept;
2712
2780
 
2713
2781
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
@@ -2715,6 +2783,7 @@ struct PipelineLayoutResourceTable : ChainedStruct {
2715
2783
  };
2716
2784
 
2717
2785
  struct PipelineLayoutStorageAttachment {
2786
+ // NOLINTNEXTLINE(google-explicit-constructor)
2718
2787
  inline operator const WGPUPipelineLayoutStorageAttachment&() const noexcept;
2719
2788
 
2720
2789
  ChainedStruct const * nextInChain = nullptr;
@@ -2723,6 +2792,7 @@ struct PipelineLayoutStorageAttachment {
2723
2792
  };
2724
2793
 
2725
2794
  struct PrimitiveState {
2795
+ // NOLINTNEXTLINE(google-explicit-constructor)
2726
2796
  inline operator const WGPUPrimitiveState&() const noexcept;
2727
2797
 
2728
2798
  ChainedStruct const * nextInChain = nullptr;
@@ -2734,6 +2804,7 @@ struct PrimitiveState {
2734
2804
  };
2735
2805
 
2736
2806
  struct QuerySetDescriptor {
2807
+ // NOLINTNEXTLINE(google-explicit-constructor)
2737
2808
  inline operator const WGPUQuerySetDescriptor&() const noexcept;
2738
2809
 
2739
2810
  ChainedStruct const * nextInChain = nullptr;
@@ -2743,6 +2814,7 @@ struct QuerySetDescriptor {
2743
2814
  };
2744
2815
 
2745
2816
  struct QueueDescriptor {
2817
+ // NOLINTNEXTLINE(google-explicit-constructor)
2746
2818
  inline operator const WGPUQueueDescriptor&() const noexcept;
2747
2819
 
2748
2820
  ChainedStruct const * nextInChain = nullptr;
@@ -2750,6 +2822,7 @@ struct QueueDescriptor {
2750
2822
  };
2751
2823
 
2752
2824
  struct RenderBundleDescriptor {
2825
+ // NOLINTNEXTLINE(google-explicit-constructor)
2753
2826
  inline operator const WGPURenderBundleDescriptor&() const noexcept;
2754
2827
 
2755
2828
  ChainedStruct const * nextInChain = nullptr;
@@ -2757,6 +2830,7 @@ struct RenderBundleDescriptor {
2757
2830
  };
2758
2831
 
2759
2832
  struct RenderBundleEncoderDescriptor {
2833
+ // NOLINTNEXTLINE(google-explicit-constructor)
2760
2834
  inline operator const WGPURenderBundleEncoderDescriptor&() const noexcept;
2761
2835
 
2762
2836
  ChainedStruct const * nextInChain = nullptr;
@@ -2770,6 +2844,7 @@ struct RenderBundleEncoderDescriptor {
2770
2844
  };
2771
2845
 
2772
2846
  struct RenderPassDepthStencilAttachment {
2847
+ // NOLINTNEXTLINE(google-explicit-constructor)
2773
2848
  inline operator const WGPURenderPassDepthStencilAttachment&() const noexcept;
2774
2849
 
2775
2850
  ChainedStruct const * nextInChain = nullptr;
@@ -2788,7 +2863,8 @@ struct RenderPassDepthStencilAttachment {
2788
2863
  struct RenderPassDescriptorResolveRect : ChainedStruct {
2789
2864
  inline RenderPassDescriptorResolveRect();
2790
2865
  struct Init;
2791
- inline RenderPassDescriptorResolveRect(Init&& init);
2866
+ explicit(false) inline RenderPassDescriptorResolveRect(Init&& init);
2867
+ // NOLINTNEXTLINE(google-explicit-constructor)
2792
2868
  inline operator const WGPURenderPassDescriptorResolveRect&() const noexcept;
2793
2869
 
2794
2870
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint32_t));
@@ -2804,7 +2880,8 @@ struct RenderPassDescriptorResolveRect : ChainedStruct {
2804
2880
  struct RenderPassMaxDrawCount : ChainedStruct {
2805
2881
  inline RenderPassMaxDrawCount();
2806
2882
  struct Init;
2807
- inline RenderPassMaxDrawCount(Init&& init);
2883
+ explicit(false) inline RenderPassMaxDrawCount(Init&& init);
2884
+ // NOLINTNEXTLINE(google-explicit-constructor)
2808
2885
  inline operator const WGPURenderPassMaxDrawCount&() const noexcept;
2809
2886
 
2810
2887
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint64_t));
@@ -2815,7 +2892,8 @@ struct RenderPassMaxDrawCount : ChainedStruct {
2815
2892
  struct RequestAdapterWebGPUBackendOptions : ChainedStruct {
2816
2893
  inline RequestAdapterWebGPUBackendOptions();
2817
2894
  struct Init;
2818
- inline RequestAdapterWebGPUBackendOptions(Init&& init);
2895
+ explicit(false) inline RequestAdapterWebGPUBackendOptions(Init&& init);
2896
+ // NOLINTNEXTLINE(google-explicit-constructor)
2819
2897
  inline operator const WGPURequestAdapterWebGPUBackendOptions&() const noexcept;
2820
2898
 
2821
2899
  };
@@ -2824,7 +2902,8 @@ struct RequestAdapterWebGPUBackendOptions : ChainedStruct {
2824
2902
  struct RequestAdapterWebXROptions : ChainedStruct {
2825
2903
  inline RequestAdapterWebXROptions();
2826
2904
  struct Init;
2827
- inline RequestAdapterWebXROptions(Init&& init);
2905
+ explicit(false) inline RequestAdapterWebXROptions(Init&& init);
2906
+ // NOLINTNEXTLINE(google-explicit-constructor)
2828
2907
  inline operator const WGPURequestAdapterWebXROptions&() const noexcept;
2829
2908
 
2830
2909
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
@@ -2832,6 +2911,7 @@ struct RequestAdapterWebXROptions : ChainedStruct {
2832
2911
  };
2833
2912
 
2834
2913
  struct ResourceTableDescriptor {
2914
+ // NOLINTNEXTLINE(google-explicit-constructor)
2835
2915
  inline operator const WGPUResourceTableDescriptor&() const noexcept;
2836
2916
 
2837
2917
  ChainedStruct const * nextInChain = nullptr;
@@ -2840,6 +2920,7 @@ struct ResourceTableDescriptor {
2840
2920
  };
2841
2921
 
2842
2922
  struct SamplerBindingLayout {
2923
+ // NOLINTNEXTLINE(google-explicit-constructor)
2843
2924
  inline operator const WGPUSamplerBindingLayout&() const noexcept;
2844
2925
 
2845
2926
  ChainedStruct const * nextInChain = nullptr;
@@ -2850,7 +2931,8 @@ struct SamplerBindingLayout {
2850
2931
  struct ShaderModuleCompilationOptions : ChainedStruct {
2851
2932
  inline ShaderModuleCompilationOptions();
2852
2933
  struct Init;
2853
- inline ShaderModuleCompilationOptions(Init&& init);
2934
+ explicit(false) inline ShaderModuleCompilationOptions(Init&& init);
2935
+ // NOLINTNEXTLINE(google-explicit-constructor)
2854
2936
  inline operator const WGPUShaderModuleCompilationOptions&() const noexcept;
2855
2937
 
2856
2938
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
@@ -2861,7 +2943,8 @@ struct ShaderModuleCompilationOptions : ChainedStruct {
2861
2943
  struct ShaderSourceSPIRV : ChainedStruct {
2862
2944
  inline ShaderSourceSPIRV();
2863
2945
  struct Init;
2864
- inline ShaderSourceSPIRV(Init&& init);
2946
+ explicit(false) inline ShaderSourceSPIRV(Init&& init);
2947
+ // NOLINTNEXTLINE(google-explicit-constructor)
2865
2948
  inline operator const WGPUShaderSourceSPIRV&() const noexcept;
2866
2949
 
2867
2950
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint32_t));
@@ -2873,7 +2956,8 @@ struct ShaderSourceSPIRV : ChainedStruct {
2873
2956
  struct ShaderSourceWGSL : ChainedStruct {
2874
2957
  inline ShaderSourceWGSL();
2875
2958
  struct Init;
2876
- inline ShaderSourceWGSL(Init&& init);
2959
+ explicit(false) inline ShaderSourceWGSL(Init&& init);
2960
+ // NOLINTNEXTLINE(google-explicit-constructor)
2877
2961
  inline operator const WGPUShaderSourceWGSL&() const noexcept;
2878
2962
 
2879
2963
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(StringView));
@@ -2881,6 +2965,7 @@ struct ShaderSourceWGSL : ChainedStruct {
2881
2965
  };
2882
2966
 
2883
2967
  struct SharedBufferMemoryBeginAccessDescriptor {
2968
+ // NOLINTNEXTLINE(google-explicit-constructor)
2884
2969
  inline operator const WGPUSharedBufferMemoryBeginAccessDescriptor&() const noexcept;
2885
2970
 
2886
2971
  ChainedStruct const * nextInChain = nullptr;
@@ -2891,18 +2976,6 @@ struct SharedBufferMemoryBeginAccessDescriptor {
2891
2976
  uint64_t const * signaledValues = nullptr;
2892
2977
  };
2893
2978
 
2894
- // Can be chained in SharedBufferMemoryDescriptor
2895
- struct SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor : ChainedStruct {
2896
- inline SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor();
2897
- struct Init;
2898
- inline SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor(Init&& init);
2899
- inline operator const WGPUSharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor&() const noexcept;
2900
-
2901
- static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
2902
- alignas(kFirstMemberAlignment) void * handle;
2903
- uint64_t size;
2904
- };
2905
-
2906
2979
  struct SharedBufferMemoryEndAccessState {
2907
2980
  inline SharedBufferMemoryEndAccessState();
2908
2981
  inline ~SharedBufferMemoryEndAccessState();
@@ -2910,6 +2983,7 @@ struct SharedBufferMemoryEndAccessState {
2910
2983
  SharedBufferMemoryEndAccessState& operator=(const SharedBufferMemoryEndAccessState&) = delete;
2911
2984
  inline SharedBufferMemoryEndAccessState(SharedBufferMemoryEndAccessState&&);
2912
2985
  inline SharedBufferMemoryEndAccessState& operator=(SharedBufferMemoryEndAccessState&&);
2986
+ // NOLINTNEXTLINE(google-explicit-constructor)
2913
2987
  inline operator const WGPUSharedBufferMemoryEndAccessState&() const noexcept;
2914
2988
 
2915
2989
  ChainedStructOut * nextInChain = nullptr;
@@ -2924,7 +2998,21 @@ struct SharedBufferMemoryEndAccessState {
2924
2998
  static inline void Reset(SharedBufferMemoryEndAccessState& value);
2925
2999
  };
2926
3000
 
3001
+ // Can be chained in SharedBufferMemoryDescriptor
3002
+ struct SharedBufferMemoryFromWindowsHandleDescriptor : ChainedStruct {
3003
+ inline SharedBufferMemoryFromWindowsHandleDescriptor();
3004
+ struct Init;
3005
+ explicit(false) inline SharedBufferMemoryFromWindowsHandleDescriptor(Init&& init);
3006
+ // NOLINTNEXTLINE(google-explicit-constructor)
3007
+ inline operator const WGPUSharedBufferMemoryFromWindowsHandleDescriptor&() const noexcept;
3008
+
3009
+ static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
3010
+ alignas(kFirstMemberAlignment) void * handle;
3011
+ uint64_t size;
3012
+ };
3013
+
2927
3014
  struct SharedBufferMemoryProperties {
3015
+ // NOLINTNEXTLINE(google-explicit-constructor)
2928
3016
  inline operator const WGPUSharedBufferMemoryProperties&() const noexcept;
2929
3017
 
2930
3018
  ChainedStructOut * nextInChain = nullptr;
@@ -2936,7 +3024,8 @@ struct SharedBufferMemoryProperties {
2936
3024
  struct SharedFenceDXGISharedHandleDescriptor : ChainedStruct {
2937
3025
  inline SharedFenceDXGISharedHandleDescriptor();
2938
3026
  struct Init;
2939
- inline SharedFenceDXGISharedHandleDescriptor(Init&& init);
3027
+ explicit(false) inline SharedFenceDXGISharedHandleDescriptor(Init&& init);
3028
+ // NOLINTNEXTLINE(google-explicit-constructor)
2940
3029
  inline operator const WGPUSharedFenceDXGISharedHandleDescriptor&() const noexcept;
2941
3030
 
2942
3031
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -2947,7 +3036,8 @@ struct SharedFenceDXGISharedHandleDescriptor : ChainedStruct {
2947
3036
  struct SharedFenceDXGISharedHandleExportInfo : ChainedStructOut {
2948
3037
  inline SharedFenceDXGISharedHandleExportInfo();
2949
3038
  struct Init;
2950
- inline SharedFenceDXGISharedHandleExportInfo(Init&& init);
3039
+ explicit(false) inline SharedFenceDXGISharedHandleExportInfo(Init&& init);
3040
+ // NOLINTNEXTLINE(google-explicit-constructor)
2951
3041
  inline operator const WGPUSharedFenceDXGISharedHandleExportInfo&() const noexcept;
2952
3042
 
2953
3043
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(void *));
@@ -2958,7 +3048,8 @@ struct SharedFenceDXGISharedHandleExportInfo : ChainedStructOut {
2958
3048
  struct SharedFenceEGLSyncDescriptor : ChainedStruct {
2959
3049
  inline SharedFenceEGLSyncDescriptor();
2960
3050
  struct Init;
2961
- inline SharedFenceEGLSyncDescriptor(Init&& init);
3051
+ explicit(false) inline SharedFenceEGLSyncDescriptor(Init&& init);
3052
+ // NOLINTNEXTLINE(google-explicit-constructor)
2962
3053
  inline operator const WGPUSharedFenceEGLSyncDescriptor&() const noexcept;
2963
3054
 
2964
3055
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -2969,7 +3060,8 @@ struct SharedFenceEGLSyncDescriptor : ChainedStruct {
2969
3060
  struct SharedFenceEGLSyncExportInfo : ChainedStructOut {
2970
3061
  inline SharedFenceEGLSyncExportInfo();
2971
3062
  struct Init;
2972
- inline SharedFenceEGLSyncExportInfo(Init&& init);
3063
+ explicit(false) inline SharedFenceEGLSyncExportInfo(Init&& init);
3064
+ // NOLINTNEXTLINE(google-explicit-constructor)
2973
3065
  inline operator const WGPUSharedFenceEGLSyncExportInfo&() const noexcept;
2974
3066
 
2975
3067
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(void *));
@@ -2980,7 +3072,8 @@ struct SharedFenceEGLSyncExportInfo : ChainedStructOut {
2980
3072
  struct SharedFenceMTLSharedEventDescriptor : ChainedStruct {
2981
3073
  inline SharedFenceMTLSharedEventDescriptor();
2982
3074
  struct Init;
2983
- inline SharedFenceMTLSharedEventDescriptor(Init&& init);
3075
+ explicit(false) inline SharedFenceMTLSharedEventDescriptor(Init&& init);
3076
+ // NOLINTNEXTLINE(google-explicit-constructor)
2984
3077
  inline operator const WGPUSharedFenceMTLSharedEventDescriptor&() const noexcept;
2985
3078
 
2986
3079
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -2991,7 +3084,8 @@ struct SharedFenceMTLSharedEventDescriptor : ChainedStruct {
2991
3084
  struct SharedFenceMTLSharedEventExportInfo : ChainedStructOut {
2992
3085
  inline SharedFenceMTLSharedEventExportInfo();
2993
3086
  struct Init;
2994
- inline SharedFenceMTLSharedEventExportInfo(Init&& init);
3087
+ explicit(false) inline SharedFenceMTLSharedEventExportInfo(Init&& init);
3088
+ // NOLINTNEXTLINE(google-explicit-constructor)
2995
3089
  inline operator const WGPUSharedFenceMTLSharedEventExportInfo&() const noexcept;
2996
3090
 
2997
3091
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(void *));
@@ -3002,7 +3096,8 @@ struct SharedFenceMTLSharedEventExportInfo : ChainedStructOut {
3002
3096
  struct SharedFenceSyncFDDescriptor : ChainedStruct {
3003
3097
  inline SharedFenceSyncFDDescriptor();
3004
3098
  struct Init;
3005
- inline SharedFenceSyncFDDescriptor(Init&& init);
3099
+ explicit(false) inline SharedFenceSyncFDDescriptor(Init&& init);
3100
+ // NOLINTNEXTLINE(google-explicit-constructor)
3006
3101
  inline operator const WGPUSharedFenceSyncFDDescriptor&() const noexcept;
3007
3102
 
3008
3103
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(int));
@@ -3013,7 +3108,8 @@ struct SharedFenceSyncFDDescriptor : ChainedStruct {
3013
3108
  struct SharedFenceSyncFDExportInfo : ChainedStructOut {
3014
3109
  inline SharedFenceSyncFDExportInfo();
3015
3110
  struct Init;
3016
- inline SharedFenceSyncFDExportInfo(Init&& init);
3111
+ explicit(false) inline SharedFenceSyncFDExportInfo(Init&& init);
3112
+ // NOLINTNEXTLINE(google-explicit-constructor)
3017
3113
  inline operator const WGPUSharedFenceSyncFDExportInfo&() const noexcept;
3018
3114
 
3019
3115
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(int));
@@ -3024,7 +3120,8 @@ struct SharedFenceSyncFDExportInfo : ChainedStructOut {
3024
3120
  struct SharedFenceVkSemaphoreOpaqueFDDescriptor : ChainedStruct {
3025
3121
  inline SharedFenceVkSemaphoreOpaqueFDDescriptor();
3026
3122
  struct Init;
3027
- inline SharedFenceVkSemaphoreOpaqueFDDescriptor(Init&& init);
3123
+ explicit(false) inline SharedFenceVkSemaphoreOpaqueFDDescriptor(Init&& init);
3124
+ // NOLINTNEXTLINE(google-explicit-constructor)
3028
3125
  inline operator const WGPUSharedFenceVkSemaphoreOpaqueFDDescriptor&() const noexcept;
3029
3126
 
3030
3127
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(int));
@@ -3035,7 +3132,8 @@ struct SharedFenceVkSemaphoreOpaqueFDDescriptor : ChainedStruct {
3035
3132
  struct SharedFenceVkSemaphoreOpaqueFDExportInfo : ChainedStructOut {
3036
3133
  inline SharedFenceVkSemaphoreOpaqueFDExportInfo();
3037
3134
  struct Init;
3038
- inline SharedFenceVkSemaphoreOpaqueFDExportInfo(Init&& init);
3135
+ explicit(false) inline SharedFenceVkSemaphoreOpaqueFDExportInfo(Init&& init);
3136
+ // NOLINTNEXTLINE(google-explicit-constructor)
3039
3137
  inline operator const WGPUSharedFenceVkSemaphoreOpaqueFDExportInfo&() const noexcept;
3040
3138
 
3041
3139
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(int));
@@ -3046,7 +3144,8 @@ struct SharedFenceVkSemaphoreOpaqueFDExportInfo : ChainedStructOut {
3046
3144
  struct SharedFenceVkSemaphoreZirconHandleDescriptor : ChainedStruct {
3047
3145
  inline SharedFenceVkSemaphoreZirconHandleDescriptor();
3048
3146
  struct Init;
3049
- inline SharedFenceVkSemaphoreZirconHandleDescriptor(Init&& init);
3147
+ explicit(false) inline SharedFenceVkSemaphoreZirconHandleDescriptor(Init&& init);
3148
+ // NOLINTNEXTLINE(google-explicit-constructor)
3050
3149
  inline operator const WGPUSharedFenceVkSemaphoreZirconHandleDescriptor&() const noexcept;
3051
3150
 
3052
3151
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint32_t));
@@ -3057,7 +3156,8 @@ struct SharedFenceVkSemaphoreZirconHandleDescriptor : ChainedStruct {
3057
3156
  struct SharedFenceVkSemaphoreZirconHandleExportInfo : ChainedStructOut {
3058
3157
  inline SharedFenceVkSemaphoreZirconHandleExportInfo();
3059
3158
  struct Init;
3060
- inline SharedFenceVkSemaphoreZirconHandleExportInfo(Init&& init);
3159
+ explicit(false) inline SharedFenceVkSemaphoreZirconHandleExportInfo(Init&& init);
3160
+ // NOLINTNEXTLINE(google-explicit-constructor)
3061
3161
  inline operator const WGPUSharedFenceVkSemaphoreZirconHandleExportInfo&() const noexcept;
3062
3162
 
3063
3163
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(uint32_t));
@@ -3068,7 +3168,8 @@ struct SharedFenceVkSemaphoreZirconHandleExportInfo : ChainedStructOut {
3068
3168
  struct SharedTextureMemoryAHardwareBufferDescriptor : ChainedStruct {
3069
3169
  inline SharedTextureMemoryAHardwareBufferDescriptor();
3070
3170
  struct Init;
3071
- inline SharedTextureMemoryAHardwareBufferDescriptor(Init&& init);
3171
+ explicit(false) inline SharedTextureMemoryAHardwareBufferDescriptor(Init&& init);
3172
+ // NOLINTNEXTLINE(google-explicit-constructor)
3072
3173
  inline operator const WGPUSharedTextureMemoryAHardwareBufferDescriptor&() const noexcept;
3073
3174
 
3074
3175
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -3079,7 +3180,8 @@ struct SharedTextureMemoryAHardwareBufferDescriptor : ChainedStruct {
3079
3180
  struct SharedTextureMemoryD3D11BeginState : ChainedStruct {
3080
3181
  inline SharedTextureMemoryD3D11BeginState();
3081
3182
  struct Init;
3082
- inline SharedTextureMemoryD3D11BeginState(Init&& init);
3183
+ explicit(false) inline SharedTextureMemoryD3D11BeginState(Init&& init);
3184
+ // NOLINTNEXTLINE(google-explicit-constructor)
3083
3185
  inline operator const WGPUSharedTextureMemoryD3D11BeginState&() const noexcept;
3084
3186
 
3085
3187
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
@@ -3090,7 +3192,8 @@ struct SharedTextureMemoryD3D11BeginState : ChainedStruct {
3090
3192
  struct SharedTextureMemoryD3DSwapchainBeginState : ChainedStruct {
3091
3193
  inline SharedTextureMemoryD3DSwapchainBeginState();
3092
3194
  struct Init;
3093
- inline SharedTextureMemoryD3DSwapchainBeginState(Init&& init);
3195
+ explicit(false) inline SharedTextureMemoryD3DSwapchainBeginState(Init&& init);
3196
+ // NOLINTNEXTLINE(google-explicit-constructor)
3094
3197
  inline operator const WGPUSharedTextureMemoryD3DSwapchainBeginState&() const noexcept;
3095
3198
 
3096
3199
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
@@ -3098,6 +3201,7 @@ struct SharedTextureMemoryD3DSwapchainBeginState : ChainedStruct {
3098
3201
  };
3099
3202
 
3100
3203
  struct SharedTextureMemoryDmaBufPlane {
3204
+ // NOLINTNEXTLINE(google-explicit-constructor)
3101
3205
  inline operator const WGPUSharedTextureMemoryDmaBufPlane&() const noexcept;
3102
3206
 
3103
3207
  int fd;
@@ -3109,7 +3213,8 @@ struct SharedTextureMemoryDmaBufPlane {
3109
3213
  struct SharedTextureMemoryDXGISharedHandleDescriptor : ChainedStruct {
3110
3214
  inline SharedTextureMemoryDXGISharedHandleDescriptor();
3111
3215
  struct Init;
3112
- inline SharedTextureMemoryDXGISharedHandleDescriptor(Init&& init);
3216
+ explicit(false) inline SharedTextureMemoryDXGISharedHandleDescriptor(Init&& init);
3217
+ // NOLINTNEXTLINE(google-explicit-constructor)
3113
3218
  inline operator const WGPUSharedTextureMemoryDXGISharedHandleDescriptor&() const noexcept;
3114
3219
 
3115
3220
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -3121,7 +3226,8 @@ struct SharedTextureMemoryDXGISharedHandleDescriptor : ChainedStruct {
3121
3226
  struct SharedTextureMemoryEGLImageDescriptor : ChainedStruct {
3122
3227
  inline SharedTextureMemoryEGLImageDescriptor();
3123
3228
  struct Init;
3124
- inline SharedTextureMemoryEGLImageDescriptor(Init&& init);
3229
+ explicit(false) inline SharedTextureMemoryEGLImageDescriptor(Init&& init);
3230
+ // NOLINTNEXTLINE(google-explicit-constructor)
3125
3231
  inline operator const WGPUSharedTextureMemoryEGLImageDescriptor&() const noexcept;
3126
3232
 
3127
3233
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -3132,7 +3238,8 @@ struct SharedTextureMemoryEGLImageDescriptor : ChainedStruct {
3132
3238
  struct SharedTextureMemoryIOSurfaceDescriptor : ChainedStruct {
3133
3239
  inline SharedTextureMemoryIOSurfaceDescriptor();
3134
3240
  struct Init;
3135
- inline SharedTextureMemoryIOSurfaceDescriptor(Init&& init);
3241
+ explicit(false) inline SharedTextureMemoryIOSurfaceDescriptor(Init&& init);
3242
+ // NOLINTNEXTLINE(google-explicit-constructor)
3136
3243
  inline operator const WGPUSharedTextureMemoryIOSurfaceDescriptor&() const noexcept;
3137
3244
 
3138
3245
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -3144,7 +3251,8 @@ struct SharedTextureMemoryIOSurfaceDescriptor : ChainedStruct {
3144
3251
  struct SharedTextureMemoryOpaqueFDDescriptor : ChainedStruct {
3145
3252
  inline SharedTextureMemoryOpaqueFDDescriptor();
3146
3253
  struct Init;
3147
- inline SharedTextureMemoryOpaqueFDDescriptor(Init&& init);
3254
+ explicit(false) inline SharedTextureMemoryOpaqueFDDescriptor(Init&& init);
3255
+ // NOLINTNEXTLINE(google-explicit-constructor)
3148
3256
  inline operator const WGPUSharedTextureMemoryOpaqueFDDescriptor&() const noexcept;
3149
3257
 
3150
3258
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void const *));
@@ -3159,7 +3267,8 @@ struct SharedTextureMemoryOpaqueFDDescriptor : ChainedStruct {
3159
3267
  struct SharedTextureMemoryVkDedicatedAllocationDescriptor : ChainedStruct {
3160
3268
  inline SharedTextureMemoryVkDedicatedAllocationDescriptor();
3161
3269
  struct Init;
3162
- inline SharedTextureMemoryVkDedicatedAllocationDescriptor(Init&& init);
3270
+ explicit(false) inline SharedTextureMemoryVkDedicatedAllocationDescriptor(Init&& init);
3271
+ // NOLINTNEXTLINE(google-explicit-constructor)
3163
3272
  inline operator const WGPUSharedTextureMemoryVkDedicatedAllocationDescriptor&() const noexcept;
3164
3273
 
3165
3274
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Bool));
@@ -3170,7 +3279,8 @@ struct SharedTextureMemoryVkDedicatedAllocationDescriptor : ChainedStruct {
3170
3279
  struct SharedTextureMemoryVkImageLayoutBeginState : ChainedStruct {
3171
3280
  inline SharedTextureMemoryVkImageLayoutBeginState();
3172
3281
  struct Init;
3173
- inline SharedTextureMemoryVkImageLayoutBeginState(Init&& init);
3282
+ explicit(false) inline SharedTextureMemoryVkImageLayoutBeginState(Init&& init);
3283
+ // NOLINTNEXTLINE(google-explicit-constructor)
3174
3284
  inline operator const WGPUSharedTextureMemoryVkImageLayoutBeginState&() const noexcept;
3175
3285
 
3176
3286
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(int32_t));
@@ -3182,7 +3292,8 @@ struct SharedTextureMemoryVkImageLayoutBeginState : ChainedStruct {
3182
3292
  struct SharedTextureMemoryVkImageLayoutEndState : ChainedStructOut {
3183
3293
  inline SharedTextureMemoryVkImageLayoutEndState();
3184
3294
  struct Init;
3185
- inline SharedTextureMemoryVkImageLayoutEndState(Init&& init);
3295
+ explicit(false) inline SharedTextureMemoryVkImageLayoutEndState(Init&& init);
3296
+ // NOLINTNEXTLINE(google-explicit-constructor)
3186
3297
  inline operator const WGPUSharedTextureMemoryVkImageLayoutEndState&() const noexcept;
3187
3298
 
3188
3299
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(int32_t));
@@ -3194,7 +3305,8 @@ struct SharedTextureMemoryVkImageLayoutEndState : ChainedStructOut {
3194
3305
  struct SharedTextureMemoryZirconHandleDescriptor : ChainedStruct {
3195
3306
  inline SharedTextureMemoryZirconHandleDescriptor();
3196
3307
  struct Init;
3197
- inline SharedTextureMemoryZirconHandleDescriptor(Init&& init);
3308
+ explicit(false) inline SharedTextureMemoryZirconHandleDescriptor(Init&& init);
3309
+ // NOLINTNEXTLINE(google-explicit-constructor)
3198
3310
  inline operator const WGPUSharedTextureMemoryZirconHandleDescriptor&() const noexcept;
3199
3311
 
3200
3312
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint32_t));
@@ -3206,7 +3318,8 @@ struct SharedTextureMemoryZirconHandleDescriptor : ChainedStruct {
3206
3318
  struct StaticSamplerBindingLayout : ChainedStruct {
3207
3319
  inline StaticSamplerBindingLayout();
3208
3320
  struct Init;
3209
- inline StaticSamplerBindingLayout(Init&& init);
3321
+ explicit(false) inline StaticSamplerBindingLayout(Init&& init);
3322
+ // NOLINTNEXTLINE(google-explicit-constructor)
3210
3323
  inline operator const WGPUStaticSamplerBindingLayout&() const noexcept;
3211
3324
 
3212
3325
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Sampler));
@@ -3215,6 +3328,7 @@ struct StaticSamplerBindingLayout : ChainedStruct {
3215
3328
  };
3216
3329
 
3217
3330
  struct StencilFaceState {
3331
+ // NOLINTNEXTLINE(google-explicit-constructor)
3218
3332
  inline operator const WGPUStencilFaceState&() const noexcept;
3219
3333
 
3220
3334
  CompareFunction compare = CompareFunction::Undefined;
@@ -3224,6 +3338,7 @@ struct StencilFaceState {
3224
3338
  };
3225
3339
 
3226
3340
  struct StorageTextureBindingLayout {
3341
+ // NOLINTNEXTLINE(google-explicit-constructor)
3227
3342
  inline operator const WGPUStorageTextureBindingLayout&() const noexcept;
3228
3343
 
3229
3344
  ChainedStruct const * nextInChain = nullptr;
@@ -3233,6 +3348,7 @@ struct StorageTextureBindingLayout {
3233
3348
  };
3234
3349
 
3235
3350
  struct SubgroupMatrixConfig {
3351
+ // NOLINTNEXTLINE(google-explicit-constructor)
3236
3352
  inline operator const WGPUSubgroupMatrixConfig&() const noexcept;
3237
3353
 
3238
3354
  SubgroupMatrixComponentType componentType = {};
@@ -3249,6 +3365,7 @@ struct SupportedFeatures {
3249
3365
  SupportedFeatures& operator=(const SupportedFeatures&) = delete;
3250
3366
  inline SupportedFeatures(SupportedFeatures&&);
3251
3367
  inline SupportedFeatures& operator=(SupportedFeatures&&);
3368
+ // NOLINTNEXTLINE(google-explicit-constructor)
3252
3369
  inline operator const WGPUSupportedFeatures&() const noexcept;
3253
3370
 
3254
3371
  size_t const featureCount = {};
@@ -3266,6 +3383,7 @@ struct SupportedInstanceFeatures {
3266
3383
  SupportedInstanceFeatures& operator=(const SupportedInstanceFeatures&) = delete;
3267
3384
  inline SupportedInstanceFeatures(SupportedInstanceFeatures&&);
3268
3385
  inline SupportedInstanceFeatures& operator=(SupportedInstanceFeatures&&);
3386
+ // NOLINTNEXTLINE(google-explicit-constructor)
3269
3387
  inline operator const WGPUSupportedInstanceFeatures&() const noexcept;
3270
3388
 
3271
3389
  size_t const featureCount = {};
@@ -3283,6 +3401,7 @@ struct SupportedWGSLLanguageFeatures {
3283
3401
  SupportedWGSLLanguageFeatures& operator=(const SupportedWGSLLanguageFeatures&) = delete;
3284
3402
  inline SupportedWGSLLanguageFeatures(SupportedWGSLLanguageFeatures&&);
3285
3403
  inline SupportedWGSLLanguageFeatures& operator=(SupportedWGSLLanguageFeatures&&);
3404
+ // NOLINTNEXTLINE(google-explicit-constructor)
3286
3405
  inline operator const WGPUSupportedWGSLLanguageFeatures&() const noexcept;
3287
3406
 
3288
3407
  size_t const featureCount = {};
@@ -3300,6 +3419,7 @@ struct SurfaceCapabilities {
3300
3419
  SurfaceCapabilities& operator=(const SurfaceCapabilities&) = delete;
3301
3420
  inline SurfaceCapabilities(SurfaceCapabilities&&);
3302
3421
  inline SurfaceCapabilities& operator=(SurfaceCapabilities&&);
3422
+ // NOLINTNEXTLINE(google-explicit-constructor)
3303
3423
  inline operator const WGPUSurfaceCapabilities&() const noexcept;
3304
3424
 
3305
3425
  ChainedStructOut * nextInChain = nullptr;
@@ -3320,7 +3440,8 @@ struct SurfaceCapabilities {
3320
3440
  struct SurfaceColorManagement : ChainedStruct {
3321
3441
  inline SurfaceColorManagement();
3322
3442
  struct Init;
3323
- inline SurfaceColorManagement(Init&& init);
3443
+ explicit(false) inline SurfaceColorManagement(Init&& init);
3444
+ // NOLINTNEXTLINE(google-explicit-constructor)
3324
3445
  inline operator const WGPUSurfaceColorManagement&() const noexcept;
3325
3446
 
3326
3447
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(PredefinedColorSpace));
@@ -3329,6 +3450,7 @@ struct SurfaceColorManagement : ChainedStruct {
3329
3450
  };
3330
3451
 
3331
3452
  struct SurfaceConfiguration {
3453
+ // NOLINTNEXTLINE(google-explicit-constructor)
3332
3454
  inline operator const WGPUSurfaceConfiguration&() const noexcept;
3333
3455
 
3334
3456
  ChainedStruct const * nextInChain = nullptr;
@@ -3347,7 +3469,8 @@ struct SurfaceConfiguration {
3347
3469
  struct SurfaceDescriptorFromWindowsCoreWindow : ChainedStruct {
3348
3470
  inline SurfaceDescriptorFromWindowsCoreWindow();
3349
3471
  struct Init;
3350
- inline SurfaceDescriptorFromWindowsCoreWindow(Init&& init);
3472
+ explicit(false) inline SurfaceDescriptorFromWindowsCoreWindow(Init&& init);
3473
+ // NOLINTNEXTLINE(google-explicit-constructor)
3351
3474
  inline operator const WGPUSurfaceDescriptorFromWindowsCoreWindow&() const noexcept;
3352
3475
 
3353
3476
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -3358,7 +3481,8 @@ struct SurfaceDescriptorFromWindowsCoreWindow : ChainedStruct {
3358
3481
  struct SurfaceDescriptorFromWindowsUWPSwapChainPanel : ChainedStruct {
3359
3482
  inline SurfaceDescriptorFromWindowsUWPSwapChainPanel();
3360
3483
  struct Init;
3361
- inline SurfaceDescriptorFromWindowsUWPSwapChainPanel(Init&& init);
3484
+ explicit(false) inline SurfaceDescriptorFromWindowsUWPSwapChainPanel(Init&& init);
3485
+ // NOLINTNEXTLINE(google-explicit-constructor)
3362
3486
  inline operator const WGPUSurfaceDescriptorFromWindowsUWPSwapChainPanel&() const noexcept;
3363
3487
 
3364
3488
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -3369,7 +3493,8 @@ struct SurfaceDescriptorFromWindowsUWPSwapChainPanel : ChainedStruct {
3369
3493
  struct SurfaceDescriptorFromWindowsWinUISwapChainPanel : ChainedStruct {
3370
3494
  inline SurfaceDescriptorFromWindowsWinUISwapChainPanel();
3371
3495
  struct Init;
3372
- inline SurfaceDescriptorFromWindowsWinUISwapChainPanel(Init&& init);
3496
+ explicit(false) inline SurfaceDescriptorFromWindowsWinUISwapChainPanel(Init&& init);
3497
+ // NOLINTNEXTLINE(google-explicit-constructor)
3373
3498
  inline operator const WGPUSurfaceDescriptorFromWindowsWinUISwapChainPanel&() const noexcept;
3374
3499
 
3375
3500
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -3380,7 +3505,8 @@ struct SurfaceDescriptorFromWindowsWinUISwapChainPanel : ChainedStruct {
3380
3505
  struct SurfaceSourceAndroidNativeWindow : ChainedStruct {
3381
3506
  inline SurfaceSourceAndroidNativeWindow();
3382
3507
  struct Init;
3383
- inline SurfaceSourceAndroidNativeWindow(Init&& init);
3508
+ explicit(false) inline SurfaceSourceAndroidNativeWindow(Init&& init);
3509
+ // NOLINTNEXTLINE(google-explicit-constructor)
3384
3510
  inline operator const WGPUSurfaceSourceAndroidNativeWindow&() const noexcept;
3385
3511
 
3386
3512
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -3391,7 +3517,8 @@ struct SurfaceSourceAndroidNativeWindow : ChainedStruct {
3391
3517
  struct SurfaceSourceMetalLayer : ChainedStruct {
3392
3518
  inline SurfaceSourceMetalLayer();
3393
3519
  struct Init;
3394
- inline SurfaceSourceMetalLayer(Init&& init);
3520
+ explicit(false) inline SurfaceSourceMetalLayer(Init&& init);
3521
+ // NOLINTNEXTLINE(google-explicit-constructor)
3395
3522
  inline operator const WGPUSurfaceSourceMetalLayer&() const noexcept;
3396
3523
 
3397
3524
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -3402,7 +3529,8 @@ struct SurfaceSourceMetalLayer : ChainedStruct {
3402
3529
  struct SurfaceSourceWaylandSurface : ChainedStruct {
3403
3530
  inline SurfaceSourceWaylandSurface();
3404
3531
  struct Init;
3405
- inline SurfaceSourceWaylandSurface(Init&& init);
3532
+ explicit(false) inline SurfaceSourceWaylandSurface(Init&& init);
3533
+ // NOLINTNEXTLINE(google-explicit-constructor)
3406
3534
  inline operator const WGPUSurfaceSourceWaylandSurface&() const noexcept;
3407
3535
 
3408
3536
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -3414,7 +3542,8 @@ struct SurfaceSourceWaylandSurface : ChainedStruct {
3414
3542
  struct SurfaceSourceWindowsHWND : ChainedStruct {
3415
3543
  inline SurfaceSourceWindowsHWND();
3416
3544
  struct Init;
3417
- inline SurfaceSourceWindowsHWND(Init&& init);
3545
+ explicit(false) inline SurfaceSourceWindowsHWND(Init&& init);
3546
+ // NOLINTNEXTLINE(google-explicit-constructor)
3418
3547
  inline operator const WGPUSurfaceSourceWindowsHWND&() const noexcept;
3419
3548
 
3420
3549
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -3426,7 +3555,8 @@ struct SurfaceSourceWindowsHWND : ChainedStruct {
3426
3555
  struct SurfaceSourceXCBWindow : ChainedStruct {
3427
3556
  inline SurfaceSourceXCBWindow();
3428
3557
  struct Init;
3429
- inline SurfaceSourceXCBWindow(Init&& init);
3558
+ explicit(false) inline SurfaceSourceXCBWindow(Init&& init);
3559
+ // NOLINTNEXTLINE(google-explicit-constructor)
3430
3560
  inline operator const WGPUSurfaceSourceXCBWindow&() const noexcept;
3431
3561
 
3432
3562
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -3438,7 +3568,8 @@ struct SurfaceSourceXCBWindow : ChainedStruct {
3438
3568
  struct SurfaceSourceXlibWindow : ChainedStruct {
3439
3569
  inline SurfaceSourceXlibWindow();
3440
3570
  struct Init;
3441
- inline SurfaceSourceXlibWindow(Init&& init);
3571
+ explicit(false) inline SurfaceSourceXlibWindow(Init&& init);
3572
+ // NOLINTNEXTLINE(google-explicit-constructor)
3442
3573
  inline operator const WGPUSurfaceSourceXlibWindow&() const noexcept;
3443
3574
 
3444
3575
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(void *));
@@ -3447,6 +3578,7 @@ struct SurfaceSourceXlibWindow : ChainedStruct {
3447
3578
  };
3448
3579
 
3449
3580
  struct SurfaceTexture {
3581
+ // NOLINTNEXTLINE(google-explicit-constructor)
3450
3582
  inline operator const WGPUSurfaceTexture&() const noexcept;
3451
3583
 
3452
3584
  ChainedStructOut * nextInChain = nullptr;
@@ -3458,7 +3590,8 @@ struct SurfaceTexture {
3458
3590
  struct TexelBufferBindingEntry : ChainedStruct {
3459
3591
  inline TexelBufferBindingEntry();
3460
3592
  struct Init;
3461
- inline TexelBufferBindingEntry(Init&& init);
3593
+ explicit(false) inline TexelBufferBindingEntry(Init&& init);
3594
+ // NOLINTNEXTLINE(google-explicit-constructor)
3462
3595
  inline operator const WGPUTexelBufferBindingEntry&() const noexcept;
3463
3596
 
3464
3597
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(TexelBufferView));
@@ -3469,7 +3602,8 @@ struct TexelBufferBindingEntry : ChainedStruct {
3469
3602
  struct TexelBufferBindingLayout : ChainedStruct {
3470
3603
  inline TexelBufferBindingLayout();
3471
3604
  struct Init;
3472
- inline TexelBufferBindingLayout(Init&& init);
3605
+ explicit(false) inline TexelBufferBindingLayout(Init&& init);
3606
+ // NOLINTNEXTLINE(google-explicit-constructor)
3473
3607
  inline operator const WGPUTexelBufferBindingLayout&() const noexcept;
3474
3608
 
3475
3609
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(TexelBufferAccess));
@@ -3478,6 +3612,7 @@ struct TexelBufferBindingLayout : ChainedStruct {
3478
3612
  };
3479
3613
 
3480
3614
  struct TexelBufferViewDescriptor {
3615
+ // NOLINTNEXTLINE(google-explicit-constructor)
3481
3616
  inline operator const WGPUTexelBufferViewDescriptor&() const noexcept;
3482
3617
 
3483
3618
  ChainedStruct const * nextInChain = nullptr;
@@ -3488,6 +3623,7 @@ struct TexelBufferViewDescriptor {
3488
3623
  };
3489
3624
 
3490
3625
  struct TexelCopyBufferLayout {
3626
+ // NOLINTNEXTLINE(google-explicit-constructor)
3491
3627
  inline operator const WGPUTexelCopyBufferLayout&() const noexcept;
3492
3628
 
3493
3629
  uint64_t offset = 0;
@@ -3496,6 +3632,7 @@ struct TexelCopyBufferLayout {
3496
3632
  };
3497
3633
 
3498
3634
  struct TextureBindingLayout {
3635
+ // NOLINTNEXTLINE(google-explicit-constructor)
3499
3636
  inline operator const WGPUTextureBindingLayout&() const noexcept;
3500
3637
 
3501
3638
  ChainedStruct const * nextInChain = nullptr;
@@ -3508,7 +3645,8 @@ struct TextureBindingLayout {
3508
3645
  struct TextureBindingViewDimension : ChainedStruct {
3509
3646
  inline TextureBindingViewDimension();
3510
3647
  struct Init;
3511
- inline TextureBindingViewDimension(Init&& init);
3648
+ explicit(false) inline TextureBindingViewDimension(Init&& init);
3649
+ // NOLINTNEXTLINE(google-explicit-constructor)
3512
3650
  inline operator const WGPUTextureBindingViewDimension&() const noexcept;
3513
3651
 
3514
3652
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(TextureViewDimension));
@@ -3516,6 +3654,7 @@ struct TextureBindingViewDimension : ChainedStruct {
3516
3654
  };
3517
3655
 
3518
3656
  struct TextureComponentSwizzle {
3657
+ // NOLINTNEXTLINE(google-explicit-constructor)
3519
3658
  inline operator const WGPUTextureComponentSwizzle&() const noexcept;
3520
3659
 
3521
3660
  ComponentSwizzle r = ComponentSwizzle::Undefined;
@@ -3525,6 +3664,7 @@ struct TextureComponentSwizzle {
3525
3664
  };
3526
3665
 
3527
3666
  struct VertexAttribute {
3667
+ // NOLINTNEXTLINE(google-explicit-constructor)
3528
3668
  inline operator const WGPUVertexAttribute&() const noexcept;
3529
3669
 
3530
3670
  ChainedStruct const * nextInChain = nullptr;
@@ -3538,7 +3678,8 @@ struct VertexAttribute {
3538
3678
  struct YCbCrVkDescriptor : ChainedStruct {
3539
3679
  inline YCbCrVkDescriptor();
3540
3680
  struct Init;
3541
- inline YCbCrVkDescriptor(Init&& init);
3681
+ explicit(false) inline YCbCrVkDescriptor(Init&& init);
3682
+ // NOLINTNEXTLINE(google-explicit-constructor)
3542
3683
  inline operator const WGPUYCbCrVkDescriptor&() const noexcept;
3543
3684
 
3544
3685
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint32_t));
@@ -3560,12 +3701,13 @@ struct YCbCrVkDescriptor : ChainedStruct {
3560
3701
  struct AdapterPropertiesMemoryHeaps : ChainedStructOut {
3561
3702
  inline AdapterPropertiesMemoryHeaps();
3562
3703
  struct Init;
3563
- inline AdapterPropertiesMemoryHeaps(Init&& init);
3704
+ explicit(false) inline AdapterPropertiesMemoryHeaps(Init&& init);
3564
3705
  inline ~AdapterPropertiesMemoryHeaps();
3565
3706
  AdapterPropertiesMemoryHeaps(const AdapterPropertiesMemoryHeaps&) = delete;
3566
3707
  AdapterPropertiesMemoryHeaps& operator=(const AdapterPropertiesMemoryHeaps&) = delete;
3567
3708
  inline AdapterPropertiesMemoryHeaps(AdapterPropertiesMemoryHeaps&&);
3568
3709
  inline AdapterPropertiesMemoryHeaps& operator=(AdapterPropertiesMemoryHeaps&&);
3710
+ // NOLINTNEXTLINE(google-explicit-constructor)
3569
3711
  inline operator const WGPUAdapterPropertiesMemoryHeaps&() const noexcept;
3570
3712
 
3571
3713
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(size_t));
@@ -3581,12 +3723,13 @@ struct AdapterPropertiesMemoryHeaps : ChainedStructOut {
3581
3723
  struct AdapterPropertiesSubgroupMatrixConfigs : ChainedStructOut {
3582
3724
  inline AdapterPropertiesSubgroupMatrixConfigs();
3583
3725
  struct Init;
3584
- inline AdapterPropertiesSubgroupMatrixConfigs(Init&& init);
3726
+ explicit(false) inline AdapterPropertiesSubgroupMatrixConfigs(Init&& init);
3585
3727
  inline ~AdapterPropertiesSubgroupMatrixConfigs();
3586
3728
  AdapterPropertiesSubgroupMatrixConfigs(const AdapterPropertiesSubgroupMatrixConfigs&) = delete;
3587
3729
  AdapterPropertiesSubgroupMatrixConfigs& operator=(const AdapterPropertiesSubgroupMatrixConfigs&) = delete;
3588
3730
  inline AdapterPropertiesSubgroupMatrixConfigs(AdapterPropertiesSubgroupMatrixConfigs&&);
3589
3731
  inline AdapterPropertiesSubgroupMatrixConfigs& operator=(AdapterPropertiesSubgroupMatrixConfigs&&);
3732
+ // NOLINTNEXTLINE(google-explicit-constructor)
3590
3733
  inline operator const WGPUAdapterPropertiesSubgroupMatrixConfigs&() const noexcept;
3591
3734
 
3592
3735
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(size_t));
@@ -3599,12 +3742,14 @@ struct AdapterPropertiesSubgroupMatrixConfigs : ChainedStructOut {
3599
3742
  };
3600
3743
 
3601
3744
  struct AHardwareBufferProperties {
3745
+ // NOLINTNEXTLINE(google-explicit-constructor)
3602
3746
  inline operator const WGPUAHardwareBufferProperties&() const noexcept;
3603
3747
 
3604
3748
  YCbCrVkDescriptor yCbCrInfo = {};
3605
3749
  };
3606
3750
 
3607
3751
  struct BindGroupEntry {
3752
+ // NOLINTNEXTLINE(google-explicit-constructor)
3608
3753
  inline operator const WGPUBindGroupEntry&() const noexcept;
3609
3754
 
3610
3755
  ChainedStruct const * nextInChain = nullptr;
@@ -3617,6 +3762,7 @@ struct BindGroupEntry {
3617
3762
  };
3618
3763
 
3619
3764
  struct BindGroupLayoutEntry {
3765
+ // NOLINTNEXTLINE(google-explicit-constructor)
3620
3766
  inline operator const WGPUBindGroupLayoutEntry&() const noexcept;
3621
3767
 
3622
3768
  ChainedStruct const * nextInChain = nullptr;
@@ -3630,6 +3776,7 @@ struct BindGroupLayoutEntry {
3630
3776
  };
3631
3777
 
3632
3778
  struct BlendState {
3779
+ // NOLINTNEXTLINE(google-explicit-constructor)
3633
3780
  inline operator const WGPUBlendState&() const noexcept;
3634
3781
 
3635
3782
  BlendComponent color = {};
@@ -3637,6 +3784,7 @@ struct BlendState {
3637
3784
  };
3638
3785
 
3639
3786
  struct BufferDescriptor {
3787
+ // NOLINTNEXTLINE(google-explicit-constructor)
3640
3788
  inline operator const WGPUBufferDescriptor&() const noexcept;
3641
3789
 
3642
3790
  ChainedStruct const * nextInChain = nullptr;
@@ -3647,6 +3795,7 @@ struct BufferDescriptor {
3647
3795
  };
3648
3796
 
3649
3797
  struct CommandEncoderDescriptor {
3798
+ // NOLINTNEXTLINE(google-explicit-constructor)
3650
3799
  inline operator const WGPUCommandEncoderDescriptor&() const noexcept;
3651
3800
 
3652
3801
  ChainedStruct const * nextInChain = nullptr;
@@ -3654,6 +3803,7 @@ struct CommandEncoderDescriptor {
3654
3803
  };
3655
3804
 
3656
3805
  struct CompilationMessage {
3806
+ // NOLINTNEXTLINE(google-explicit-constructor)
3657
3807
  inline operator const WGPUCompilationMessage&() const noexcept;
3658
3808
 
3659
3809
  ChainedStruct const * nextInChain = nullptr;
@@ -3666,6 +3816,7 @@ struct CompilationMessage {
3666
3816
  };
3667
3817
 
3668
3818
  struct ComputePassDescriptor {
3819
+ // NOLINTNEXTLINE(google-explicit-constructor)
3669
3820
  inline operator const WGPUComputePassDescriptor&() const noexcept;
3670
3821
 
3671
3822
  ChainedStruct const * nextInChain = nullptr;
@@ -3674,6 +3825,7 @@ struct ComputePassDescriptor {
3674
3825
  };
3675
3826
 
3676
3827
  struct ComputeState {
3828
+ // NOLINTNEXTLINE(google-explicit-constructor)
3677
3829
  inline operator const WGPUComputeState&() const noexcept;
3678
3830
 
3679
3831
  ChainedStruct const * nextInChain = nullptr;
@@ -3687,12 +3839,13 @@ struct ComputeState {
3687
3839
  struct DawnDrmFormatCapabilities : ChainedStructOut {
3688
3840
  inline DawnDrmFormatCapabilities();
3689
3841
  struct Init;
3690
- inline DawnDrmFormatCapabilities(Init&& init);
3842
+ explicit(false) inline DawnDrmFormatCapabilities(Init&& init);
3691
3843
  inline ~DawnDrmFormatCapabilities();
3692
3844
  DawnDrmFormatCapabilities(const DawnDrmFormatCapabilities&) = delete;
3693
3845
  DawnDrmFormatCapabilities& operator=(const DawnDrmFormatCapabilities&) = delete;
3694
3846
  inline DawnDrmFormatCapabilities(DawnDrmFormatCapabilities&&);
3695
3847
  inline DawnDrmFormatCapabilities& operator=(DawnDrmFormatCapabilities&&);
3848
+ // NOLINTNEXTLINE(google-explicit-constructor)
3696
3849
  inline operator const WGPUDawnDrmFormatCapabilities&() const noexcept;
3697
3850
 
3698
3851
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(size_t));
@@ -3705,6 +3858,7 @@ struct DawnDrmFormatCapabilities : ChainedStructOut {
3705
3858
  };
3706
3859
 
3707
3860
  struct DepthStencilState {
3861
+ // NOLINTNEXTLINE(google-explicit-constructor)
3708
3862
  inline operator const WGPUDepthStencilState&() const noexcept;
3709
3863
 
3710
3864
  ChainedStruct const * nextInChain = nullptr;
@@ -3721,6 +3875,7 @@ struct DepthStencilState {
3721
3875
  };
3722
3876
 
3723
3877
  struct ExternalTextureDescriptor {
3878
+ // NOLINTNEXTLINE(google-explicit-constructor)
3724
3879
  inline operator const WGPUExternalTextureDescriptor&() const noexcept;
3725
3880
 
3726
3881
  ChainedStruct const * nextInChain = nullptr;
@@ -3740,6 +3895,7 @@ struct ExternalTextureDescriptor {
3740
3895
  };
3741
3896
 
3742
3897
  struct FutureWaitInfo {
3898
+ // NOLINTNEXTLINE(google-explicit-constructor)
3743
3899
  inline operator const WGPUFutureWaitInfo&() const noexcept;
3744
3900
 
3745
3901
  Future future = {};
@@ -3747,6 +3903,7 @@ struct FutureWaitInfo {
3747
3903
  };
3748
3904
 
3749
3905
  struct ImageCopyExternalTexture {
3906
+ // NOLINTNEXTLINE(google-explicit-constructor)
3750
3907
  inline operator const WGPUImageCopyExternalTexture&() const noexcept;
3751
3908
 
3752
3909
  ChainedStruct const * nextInChain = nullptr;
@@ -3756,6 +3913,7 @@ struct ImageCopyExternalTexture {
3756
3913
  };
3757
3914
 
3758
3915
  struct InstanceDescriptor {
3916
+ // NOLINTNEXTLINE(google-explicit-constructor)
3759
3917
  inline operator const WGPUInstanceDescriptor&() const noexcept;
3760
3918
 
3761
3919
  ChainedStruct const * nextInChain = nullptr;
@@ -3765,6 +3923,7 @@ struct InstanceDescriptor {
3765
3923
  };
3766
3924
 
3767
3925
  struct Limits {
3926
+ // NOLINTNEXTLINE(google-explicit-constructor)
3768
3927
  inline operator const WGPULimits&() const noexcept;
3769
3928
 
3770
3929
  ChainedStructOut * nextInChain = nullptr;
@@ -3806,7 +3965,8 @@ struct Limits {
3806
3965
  struct PipelineLayoutPixelLocalStorage : ChainedStruct {
3807
3966
  inline PipelineLayoutPixelLocalStorage();
3808
3967
  struct Init;
3809
- inline PipelineLayoutPixelLocalStorage(Init&& init);
3968
+ explicit(false) inline PipelineLayoutPixelLocalStorage(Init&& init);
3969
+ // NOLINTNEXTLINE(google-explicit-constructor)
3810
3970
  inline operator const WGPUPipelineLayoutPixelLocalStorage&() const noexcept;
3811
3971
 
3812
3972
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint64_t));
@@ -3816,6 +3976,7 @@ struct PipelineLayoutPixelLocalStorage : ChainedStruct {
3816
3976
  };
3817
3977
 
3818
3978
  struct RenderPassColorAttachment {
3979
+ // NOLINTNEXTLINE(google-explicit-constructor)
3819
3980
  inline operator const WGPURenderPassColorAttachment&() const noexcept;
3820
3981
 
3821
3982
  ChainedStruct const * nextInChain = nullptr;
@@ -3831,7 +3992,8 @@ struct RenderPassColorAttachment {
3831
3992
  struct RenderPassRenderAreaRect : ChainedStruct {
3832
3993
  inline RenderPassRenderAreaRect();
3833
3994
  struct Init;
3834
- inline RenderPassRenderAreaRect(Init&& init);
3995
+ explicit(false) inline RenderPassRenderAreaRect(Init&& init);
3996
+ // NOLINTNEXTLINE(google-explicit-constructor)
3835
3997
  inline operator const WGPURenderPassRenderAreaRect&() const noexcept;
3836
3998
 
3837
3999
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Origin2D));
@@ -3840,6 +4002,7 @@ struct RenderPassRenderAreaRect : ChainedStruct {
3840
4002
  };
3841
4003
 
3842
4004
  struct RenderPassStorageAttachment {
4005
+ // NOLINTNEXTLINE(google-explicit-constructor)
3843
4006
  inline operator const WGPURenderPassStorageAttachment&() const noexcept;
3844
4007
 
3845
4008
  ChainedStruct const * nextInChain = nullptr;
@@ -3851,6 +4014,7 @@ struct RenderPassStorageAttachment {
3851
4014
  };
3852
4015
 
3853
4016
  struct RequestAdapterOptions {
4017
+ // NOLINTNEXTLINE(google-explicit-constructor)
3854
4018
  inline operator const WGPURequestAdapterOptions&() const noexcept;
3855
4019
 
3856
4020
  ChainedStruct const * nextInChain = nullptr;
@@ -3862,6 +4026,7 @@ struct RequestAdapterOptions {
3862
4026
  };
3863
4027
 
3864
4028
  struct SamplerDescriptor {
4029
+ // NOLINTNEXTLINE(google-explicit-constructor)
3865
4030
  inline operator const WGPUSamplerDescriptor&() const noexcept;
3866
4031
 
3867
4032
  ChainedStruct const * nextInChain = nullptr;
@@ -3879,6 +4044,7 @@ struct SamplerDescriptor {
3879
4044
  };
3880
4045
 
3881
4046
  struct ShaderModuleDescriptor {
4047
+ // NOLINTNEXTLINE(google-explicit-constructor)
3882
4048
  inline operator const WGPUShaderModuleDescriptor&() const noexcept;
3883
4049
 
3884
4050
  ChainedStruct const * nextInChain = nullptr;
@@ -3886,6 +4052,7 @@ struct ShaderModuleDescriptor {
3886
4052
  };
3887
4053
 
3888
4054
  struct SharedBufferMemoryDescriptor {
4055
+ // NOLINTNEXTLINE(google-explicit-constructor)
3889
4056
  inline operator const WGPUSharedBufferMemoryDescriptor&() const noexcept;
3890
4057
 
3891
4058
  ChainedStruct const * nextInChain = nullptr;
@@ -3893,6 +4060,7 @@ struct SharedBufferMemoryDescriptor {
3893
4060
  };
3894
4061
 
3895
4062
  struct SharedFenceDescriptor {
4063
+ // NOLINTNEXTLINE(google-explicit-constructor)
3896
4064
  inline operator const WGPUSharedFenceDescriptor&() const noexcept;
3897
4065
 
3898
4066
  ChainedStruct const * nextInChain = nullptr;
@@ -3900,6 +4068,7 @@ struct SharedFenceDescriptor {
3900
4068
  };
3901
4069
 
3902
4070
  struct SharedFenceExportInfo {
4071
+ // NOLINTNEXTLINE(google-explicit-constructor)
3903
4072
  inline operator const WGPUSharedFenceExportInfo&() const noexcept;
3904
4073
 
3905
4074
  ChainedStructOut * nextInChain = nullptr;
@@ -3910,7 +4079,8 @@ struct SharedFenceExportInfo {
3910
4079
  struct SharedTextureMemoryAHardwareBufferProperties : ChainedStructOut {
3911
4080
  inline SharedTextureMemoryAHardwareBufferProperties();
3912
4081
  struct Init;
3913
- inline SharedTextureMemoryAHardwareBufferProperties(Init&& init);
4082
+ explicit(false) inline SharedTextureMemoryAHardwareBufferProperties(Init&& init);
4083
+ // NOLINTNEXTLINE(google-explicit-constructor)
3914
4084
  inline operator const WGPUSharedTextureMemoryAHardwareBufferProperties&() const noexcept;
3915
4085
 
3916
4086
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(YCbCrVkDescriptor));
@@ -3918,6 +4088,7 @@ struct SharedTextureMemoryAHardwareBufferProperties : ChainedStructOut {
3918
4088
  };
3919
4089
 
3920
4090
  struct SharedTextureMemoryBeginAccessDescriptor {
4091
+ // NOLINTNEXTLINE(google-explicit-constructor)
3921
4092
  inline operator const WGPUSharedTextureMemoryBeginAccessDescriptor&() const noexcept;
3922
4093
 
3923
4094
  ChainedStruct const * nextInChain = nullptr;
@@ -3933,7 +4104,8 @@ struct SharedTextureMemoryBeginAccessDescriptor {
3933
4104
  struct SharedTextureMemoryDmaBufDescriptor : ChainedStruct {
3934
4105
  inline SharedTextureMemoryDmaBufDescriptor();
3935
4106
  struct Init;
3936
- inline SharedTextureMemoryDmaBufDescriptor(Init&& init);
4107
+ explicit(false) inline SharedTextureMemoryDmaBufDescriptor(Init&& init);
4108
+ // NOLINTNEXTLINE(google-explicit-constructor)
3937
4109
  inline operator const WGPUSharedTextureMemoryDmaBufDescriptor&() const noexcept;
3938
4110
 
3939
4111
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(Extent3D));
@@ -3948,7 +4120,8 @@ struct SharedTextureMemoryDmaBufDescriptor : ChainedStruct {
3948
4120
  struct SharedTextureMemoryMetalEndAccessState : ChainedStructOut {
3949
4121
  inline SharedTextureMemoryMetalEndAccessState();
3950
4122
  struct Init;
3951
- inline SharedTextureMemoryMetalEndAccessState(Init&& init);
4123
+ explicit(false) inline SharedTextureMemoryMetalEndAccessState(Init&& init);
4124
+ // NOLINTNEXTLINE(google-explicit-constructor)
3952
4125
  inline operator const WGPUSharedTextureMemoryMetalEndAccessState&() const noexcept;
3953
4126
 
3954
4127
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStructOut), alignof(Future));
@@ -3956,6 +4129,7 @@ struct SharedTextureMemoryMetalEndAccessState : ChainedStructOut {
3956
4129
  };
3957
4130
 
3958
4131
  struct SurfaceDescriptor {
4132
+ // NOLINTNEXTLINE(google-explicit-constructor)
3959
4133
  inline operator const WGPUSurfaceDescriptor&() const noexcept;
3960
4134
 
3961
4135
  ChainedStruct const * nextInChain = nullptr;
@@ -3963,6 +4137,7 @@ struct SurfaceDescriptor {
3963
4137
  };
3964
4138
 
3965
4139
  struct TexelCopyBufferInfo {
4140
+ // NOLINTNEXTLINE(google-explicit-constructor)
3966
4141
  inline operator const WGPUTexelCopyBufferInfo&() const noexcept;
3967
4142
 
3968
4143
  TexelCopyBufferLayout layout = {};
@@ -3970,6 +4145,7 @@ struct TexelCopyBufferInfo {
3970
4145
  };
3971
4146
 
3972
4147
  struct TexelCopyTextureInfo {
4148
+ // NOLINTNEXTLINE(google-explicit-constructor)
3973
4149
  inline operator const WGPUTexelCopyTextureInfo&() const noexcept;
3974
4150
 
3975
4151
  Texture texture = nullptr;
@@ -3982,7 +4158,8 @@ struct TexelCopyTextureInfo {
3982
4158
  struct TextureComponentSwizzleDescriptor : ChainedStruct {
3983
4159
  inline TextureComponentSwizzleDescriptor();
3984
4160
  struct Init;
3985
- inline TextureComponentSwizzleDescriptor(Init&& init);
4161
+ explicit(false) inline TextureComponentSwizzleDescriptor(Init&& init);
4162
+ // NOLINTNEXTLINE(google-explicit-constructor)
3986
4163
  inline operator const WGPUTextureComponentSwizzleDescriptor&() const noexcept;
3987
4164
 
3988
4165
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(TextureComponentSwizzle));
@@ -3990,6 +4167,7 @@ struct TextureComponentSwizzleDescriptor : ChainedStruct {
3990
4167
  };
3991
4168
 
3992
4169
  struct TextureDescriptor {
4170
+ // NOLINTNEXTLINE(google-explicit-constructor)
3993
4171
  inline operator const WGPUTextureDescriptor&() const noexcept;
3994
4172
 
3995
4173
  ChainedStruct const * nextInChain = nullptr;
@@ -4005,6 +4183,7 @@ struct TextureDescriptor {
4005
4183
  };
4006
4184
 
4007
4185
  struct VertexBufferLayout {
4186
+ // NOLINTNEXTLINE(google-explicit-constructor)
4008
4187
  inline operator const WGPUVertexBufferLayout&() const noexcept;
4009
4188
 
4010
4189
  ChainedStruct const * nextInChain = nullptr;
@@ -4021,6 +4200,7 @@ struct AdapterInfo {
4021
4200
  AdapterInfo& operator=(const AdapterInfo&) = delete;
4022
4201
  inline AdapterInfo(AdapterInfo&&);
4023
4202
  inline AdapterInfo& operator=(AdapterInfo&&);
4203
+ // NOLINTNEXTLINE(google-explicit-constructor)
4024
4204
  inline operator const WGPUAdapterInfo&() const noexcept;
4025
4205
 
4026
4206
  ChainedStructOut * nextInChain = nullptr;
@@ -4041,6 +4221,7 @@ struct AdapterInfo {
4041
4221
  };
4042
4222
 
4043
4223
  struct BindGroupDescriptor {
4224
+ // NOLINTNEXTLINE(google-explicit-constructor)
4044
4225
  inline operator const WGPUBindGroupDescriptor&() const noexcept;
4045
4226
 
4046
4227
  ChainedStruct const * nextInChain = nullptr;
@@ -4051,6 +4232,7 @@ struct BindGroupDescriptor {
4051
4232
  };
4052
4233
 
4053
4234
  struct BindGroupLayoutDescriptor {
4235
+ // NOLINTNEXTLINE(google-explicit-constructor)
4054
4236
  inline operator const WGPUBindGroupLayoutDescriptor&() const noexcept;
4055
4237
 
4056
4238
  ChainedStruct const * nextInChain = nullptr;
@@ -4060,6 +4242,7 @@ struct BindGroupLayoutDescriptor {
4060
4242
  };
4061
4243
 
4062
4244
  struct ColorTargetState {
4245
+ // NOLINTNEXTLINE(google-explicit-constructor)
4063
4246
  inline operator const WGPUColorTargetState&() const noexcept;
4064
4247
 
4065
4248
  ChainedStruct const * nextInChain = nullptr;
@@ -4069,6 +4252,7 @@ struct ColorTargetState {
4069
4252
  };
4070
4253
 
4071
4254
  struct CompilationInfo {
4255
+ // NOLINTNEXTLINE(google-explicit-constructor)
4072
4256
  inline operator const WGPUCompilationInfo&() const noexcept;
4073
4257
 
4074
4258
  ChainedStruct const * nextInChain = nullptr;
@@ -4077,6 +4261,7 @@ struct CompilationInfo {
4077
4261
  };
4078
4262
 
4079
4263
  struct ComputePipelineDescriptor {
4264
+ // NOLINTNEXTLINE(google-explicit-constructor)
4080
4265
  inline operator const WGPUComputePipelineDescriptor&() const noexcept;
4081
4266
 
4082
4267
  ChainedStruct const * nextInChain = nullptr;
@@ -4086,6 +4271,7 @@ struct ComputePipelineDescriptor {
4086
4271
  };
4087
4272
 
4088
4273
  struct DawnFormatCapabilities {
4274
+ // NOLINTNEXTLINE(google-explicit-constructor)
4089
4275
  inline operator const WGPUDawnFormatCapabilities&() const noexcept;
4090
4276
 
4091
4277
  ChainedStructOut * nextInChain = nullptr;
@@ -4106,7 +4292,8 @@ struct DeviceDescriptor {
4106
4292
  struct DeviceDescriptor : protected detail::DeviceDescriptor {
4107
4293
  inline DeviceDescriptor();
4108
4294
  struct Init;
4109
- inline DeviceDescriptor(Init&& init);
4295
+ explicit(false) inline DeviceDescriptor(Init&& init);
4296
+ // NOLINTNEXTLINE(google-explicit-constructor)
4110
4297
  inline operator const WGPUDeviceDescriptor&() const noexcept;
4111
4298
 
4112
4299
  using detail::DeviceDescriptor::nextInChain;
@@ -4127,6 +4314,7 @@ struct DeviceDescriptor : protected detail::DeviceDescriptor {
4127
4314
  };
4128
4315
 
4129
4316
  struct PipelineLayoutDescriptor {
4317
+ // NOLINTNEXTLINE(google-explicit-constructor)
4130
4318
  inline operator const WGPUPipelineLayoutDescriptor&() const noexcept;
4131
4319
 
4132
4320
  ChainedStruct const * nextInChain = nullptr;
@@ -4140,7 +4328,8 @@ struct PipelineLayoutDescriptor {
4140
4328
  struct RenderPassPixelLocalStorage : ChainedStruct {
4141
4329
  inline RenderPassPixelLocalStorage();
4142
4330
  struct Init;
4143
- inline RenderPassPixelLocalStorage(Init&& init);
4331
+ explicit(false) inline RenderPassPixelLocalStorage(Init&& init);
4332
+ // NOLINTNEXTLINE(google-explicit-constructor)
4144
4333
  inline operator const WGPURenderPassPixelLocalStorage&() const noexcept;
4145
4334
 
4146
4335
  static constexpr size_t kFirstMemberAlignment = detail::ConstexprMax(alignof(ChainedStruct), alignof(uint64_t));
@@ -4150,6 +4339,7 @@ struct RenderPassPixelLocalStorage : ChainedStruct {
4150
4339
  };
4151
4340
 
4152
4341
  struct SharedTextureMemoryDescriptor {
4342
+ // NOLINTNEXTLINE(google-explicit-constructor)
4153
4343
  inline operator const WGPUSharedTextureMemoryDescriptor&() const noexcept;
4154
4344
 
4155
4345
  ChainedStruct const * nextInChain = nullptr;
@@ -4163,6 +4353,7 @@ struct SharedTextureMemoryEndAccessState {
4163
4353
  SharedTextureMemoryEndAccessState& operator=(const SharedTextureMemoryEndAccessState&) = delete;
4164
4354
  inline SharedTextureMemoryEndAccessState(SharedTextureMemoryEndAccessState&&);
4165
4355
  inline SharedTextureMemoryEndAccessState& operator=(SharedTextureMemoryEndAccessState&&);
4356
+ // NOLINTNEXTLINE(google-explicit-constructor)
4166
4357
  inline operator const WGPUSharedTextureMemoryEndAccessState&() const noexcept;
4167
4358
 
4168
4359
  ChainedStructOut * nextInChain = nullptr;
@@ -4178,6 +4369,7 @@ struct SharedTextureMemoryEndAccessState {
4178
4369
  };
4179
4370
 
4180
4371
  struct SharedTextureMemoryProperties {
4372
+ // NOLINTNEXTLINE(google-explicit-constructor)
4181
4373
  inline operator const WGPUSharedTextureMemoryProperties&() const noexcept;
4182
4374
 
4183
4375
  ChainedStructOut * nextInChain = nullptr;
@@ -4187,6 +4379,7 @@ struct SharedTextureMemoryProperties {
4187
4379
  };
4188
4380
 
4189
4381
  struct TextureViewDescriptor {
4382
+ // NOLINTNEXTLINE(google-explicit-constructor)
4190
4383
  inline operator const WGPUTextureViewDescriptor&() const noexcept;
4191
4384
 
4192
4385
  ChainedStruct const * nextInChain = nullptr;
@@ -4202,6 +4395,7 @@ struct TextureViewDescriptor {
4202
4395
  };
4203
4396
 
4204
4397
  struct VertexState {
4398
+ // NOLINTNEXTLINE(google-explicit-constructor)
4205
4399
  inline operator const WGPUVertexState&() const noexcept;
4206
4400
 
4207
4401
  ChainedStruct const * nextInChain = nullptr;
@@ -4214,6 +4408,7 @@ struct VertexState {
4214
4408
  };
4215
4409
 
4216
4410
  struct FragmentState {
4411
+ // NOLINTNEXTLINE(google-explicit-constructor)
4217
4412
  inline operator const WGPUFragmentState&() const noexcept;
4218
4413
 
4219
4414
  ChainedStruct const * nextInChain = nullptr;
@@ -4226,6 +4421,7 @@ struct FragmentState {
4226
4421
  };
4227
4422
 
4228
4423
  struct RenderPassDescriptor {
4424
+ // NOLINTNEXTLINE(google-explicit-constructor)
4229
4425
  inline operator const WGPURenderPassDescriptor&() const noexcept;
4230
4426
 
4231
4427
  ChainedStruct const * nextInChain = nullptr;
@@ -4238,6 +4434,7 @@ struct RenderPassDescriptor {
4238
4434
  };
4239
4435
 
4240
4436
  struct RenderPipelineDescriptor {
4437
+ // NOLINTNEXTLINE(google-explicit-constructor)
4241
4438
  inline operator const WGPURenderPipelineDescriptor&() const noexcept;
4242
4439
 
4243
4440
  ChainedStruct const * nextInChain = nullptr;
@@ -4250,6 +4447,7 @@ struct RenderPipelineDescriptor {
4250
4447
  FragmentState const * fragment = nullptr;
4251
4448
  };
4252
4449
 
4450
+ // NOLINTEND(bugprone-invalid-enum-default-initialization)
4253
4451
 
4254
4452
  // Callback info handling is generated and/or custom implemented here to convert the types between C and C++.
4255
4453
  namespace detail {
@@ -4259,6 +4457,7 @@ struct Untyped {};
4259
4457
  // - CppFTraits::capturing: true if the callback is a capturing callback (i.e. a lambda that
4260
4458
  // captures its environment).
4261
4459
  // - CppFTraits::PtrT: The C++ callback function pointer type.
4460
+ // - CppFTraits::ReturnT: The return type of the C++ callback function pointer.
4262
4461
  // - CppFTraits::BaseArgsTuple: A tuple of the C++ arguments minus the user specified typed
4263
4462
  // parameter.
4264
4463
  //
@@ -4272,10 +4471,24 @@ struct CppFTraitsImpl;
4272
4471
  template <typename CppFT, typename R, typename... CppArgs, typename T>
4273
4472
  struct CppFTraitsImpl<CppFT, R(*)(CppArgs...), T> {
4274
4473
  using PtrT = R(*)(CppArgs...);
4474
+ using ReturnT = R;
4275
4475
  static constexpr bool capturing = false;
4276
4476
 
4277
4477
  static constexpr size_t NumCppArgs = sizeof...(CppArgs);
4278
- using BaseArgsTuple = typename decltype([]<std::size_t... Is>(std::index_sequence<Is...>) {
4478
+ using BaseArgsTuple = decltype([]<std::size_t... Is>(std::index_sequence<Is...>) {
4479
+ return std::type_identity<std::tuple<std::tuple_element_t<Is, std::tuple<CppArgs...>>...>>{};
4480
+ }(std::make_index_sequence<std::is_same_v<T, Untyped> ? NumCppArgs : NumCppArgs - 1>{})
4481
+ )::type;
4482
+ };
4483
+ // Specialization for noexcept raw function pointers.
4484
+ template <typename CppFT, typename R, typename... CppArgs, typename T>
4485
+ struct CppFTraitsImpl<CppFT, R(*)(CppArgs...) noexcept, T> {
4486
+ using PtrT = R(*)(CppArgs...) noexcept;
4487
+ using ReturnT = R;
4488
+ static constexpr bool capturing = false;
4489
+
4490
+ static constexpr size_t NumCppArgs = sizeof...(CppArgs);
4491
+ using BaseArgsTuple = decltype([]<std::size_t... Is>(std::index_sequence<Is...>) {
4279
4492
  return std::type_identity<std::tuple<std::tuple_element_t<Is, std::tuple<CppArgs...>>...>>{};
4280
4493
  }(std::make_index_sequence<std::is_same_v<T, Untyped> ? NumCppArgs : NumCppArgs - 1>{})
4281
4494
  )::type;
@@ -4284,10 +4497,24 @@ struct CppFTraitsImpl<CppFT, R(*)(CppArgs...), T> {
4284
4497
  template <typename CppFT, typename R, typename C, typename... CppArgs, typename T>
4285
4498
  struct CppFTraitsImpl<CppFT, R(C::*)(CppArgs...) const, T> {
4286
4499
  using PtrT = R(*)(CppArgs...);
4500
+ using ReturnT = R;
4501
+ static constexpr bool capturing = !std::is_convertible_v<CppFT, PtrT>;
4502
+
4503
+ static constexpr size_t NumCppArgs = sizeof...(CppArgs);
4504
+ using BaseArgsTuple = decltype([]<std::size_t... Is>(std::index_sequence<Is...>) {
4505
+ return std::type_identity<std::tuple<std::tuple_element_t<Is, std::tuple<CppArgs...>>...>>{};
4506
+ }(std::make_index_sequence<std::is_same_v<T, Untyped> ? NumCppArgs : NumCppArgs - 1>{})
4507
+ )::type;
4508
+ };
4509
+ // Specialization for noexcept member function pointers (noexcept lambdas);
4510
+ template <typename CppFT, typename R, typename C, typename... CppArgs, typename T>
4511
+ struct CppFTraitsImpl<CppFT, R(C::*)(CppArgs...) const noexcept, T> {
4512
+ using PtrT = R(*)(CppArgs...) noexcept;
4513
+ using ReturnT = R;
4287
4514
  static constexpr bool capturing = !std::is_convertible_v<CppFT, PtrT>;
4288
4515
 
4289
4516
  static constexpr size_t NumCppArgs = sizeof...(CppArgs);
4290
- using BaseArgsTuple = typename decltype([]<std::size_t... Is>(std::index_sequence<Is...>) {
4517
+ using BaseArgsTuple = decltype([]<std::size_t... Is>(std::index_sequence<Is...>) {
4291
4518
  return std::type_identity<std::tuple<std::tuple_element_t<Is, std::tuple<CppArgs...>>...>>{};
4292
4519
  }(std::make_index_sequence<std::is_same_v<T, Untyped> ? NumCppArgs : NumCppArgs - 1>{})
4293
4520
  )::type;
@@ -4297,6 +4524,9 @@ struct CppFTraits : CppFTraitsImpl<CppFT, decltype(&CppFT::operator()), T> {};
4297
4524
  template <typename R, typename... CppArgs, typename T>
4298
4525
  struct CppFTraits<R(*)(CppArgs...), T> :
4299
4526
  CppFTraitsImpl<R(*)(CppArgs...), R(*)(CppArgs...), T> {};
4527
+ template <typename R, typename... CppArgs, typename T>
4528
+ struct CppFTraits<R(*)(CppArgs...) noexcept, T> :
4529
+ CppFTraitsImpl<R(*)(CppArgs...) noexcept, R(*)(CppArgs...) noexcept, T> {};
4300
4530
 
4301
4531
  // CArgConverter are specialization structs that specialize a conversion from a C CallbackInfo's
4302
4532
  // callback argument types to a set of valid C++ types. These specializations provide us a way to
@@ -4411,28 +4641,50 @@ struct CArgConverter<WGPUUncapturedErrorCallbackInfo,
4411
4641
  static_cast<ErrorType>(type), message);
4412
4642
  }
4413
4643
  };
4644
+ template <>
4645
+ struct CArgConverter<WGPUDawnLoadCacheDataCallbackInfo,
4646
+ std::tuple<std::span<const std::byte>, std::span<std::byte>>> {
4647
+ using Result = std::tuple<std::span<const std::byte>, std::span<std::byte>>;
4648
+ static Result Convert(size_t keySize, uint8_t const* key, size_t valueSize, uint8_t* value) {
4649
+ return std::make_tuple(
4650
+ std::span<const std::byte>(reinterpret_cast<const std::byte*>(key), keySize),
4651
+ std::span<std::byte>(reinterpret_cast<std::byte*>(value), valueSize)
4652
+ );
4653
+ }
4654
+ };
4655
+ template <>
4656
+ struct CArgConverter<WGPUDawnStoreCacheDataCallbackInfo,
4657
+ std::tuple<std::span<const std::byte>, std::span<const std::byte>>> {
4658
+ using Result = std::tuple<std::span<const std::byte>, std::span<const std::byte>>;
4659
+ static Result Convert(size_t keySize, uint8_t const* key, size_t valueSize, uint8_t const* value) {
4660
+ return std::make_tuple(
4661
+ std::span<const std::byte>(reinterpret_cast<const std::byte*>(key), keySize),
4662
+ std::span<const std::byte>(reinterpret_cast<const std::byte*>(value), valueSize)
4663
+ );
4664
+ }
4665
+ };
4414
4666
 
4415
4667
  // The CallbackHelper struct implements the static functions needed to convert the base C callbacks
4416
4668
  // into the user provided C++ callbacks. More than anything, it handles converting the real C
4417
4669
  // callback arguments (i.e. not the userdata pointers we use internally) to C++ arguments, and
4418
4670
  // casts the userdata pointers appropriately to ensure that everything is typed.
4419
- template <typename CInfoT, typename CppF, typename CArgsTuple, typename Indices>
4671
+ template <typename R, typename CInfoT, typename CppF, typename CArgsTuple, typename Indices>
4420
4672
  struct CallbackHelperImpl;
4421
- template <typename CInfoT, typename CppF, typename... CArgs, std::size_t... Is>
4422
- struct CallbackHelperImpl<CInfoT, CppF, std::tuple<CArgs...>, std::index_sequence<Is...>> {
4673
+ template <typename R, typename CInfoT, typename CppF, typename... CArgs, std::size_t... Is>
4674
+ struct CallbackHelperImpl<R, CInfoT, CppF, std::tuple<CArgs...>, std::index_sequence<Is...>> {
4423
4675
  // Implementation for callbacks without an additional typed argument. We support capturing
4424
4676
  // lambdas if users can specify a callback mode in this case and make an allocation.
4425
- static void Call(std::tuple_element_t<Is, std::tuple<CArgs...>>... cArgs,
4677
+ static R Call(std::tuple_element_t<Is, std::tuple<CArgs...>>... cArgs,
4426
4678
  void* callbackParam, void*) {
4427
4679
  using CppFTraits = CppFTraits<CppF>;
4428
4680
  using Converter = CArgConverter<CInfoT, typename CppFTraits::BaseArgsTuple>;
4429
4681
 
4430
4682
  if constexpr (CppFTraits::capturing) {
4431
4683
  std::unique_ptr<CppF> callback(reinterpret_cast<CppF*>(callbackParam));
4432
- std::apply(*callback, Converter::Convert(cArgs...));
4684
+ return std::apply(*callback, Converter::Convert(cArgs...));
4433
4685
  } else {
4434
- auto callback = reinterpret_cast<typename CppFTraits::PtrT>(callbackParam);
4435
- std::apply(callback, Converter::Convert(cArgs...));
4686
+ auto callback = reinterpret_cast<CppFTraits::PtrT>(callbackParam);
4687
+ return std::apply(callback, Converter::Convert(cArgs...));
4436
4688
  }
4437
4689
  }
4438
4690
 
@@ -4441,20 +4693,20 @@ struct CallbackHelperImpl<CInfoT, CppF, std::tuple<CArgs...>, std::index_sequenc
4441
4693
  // argument and would make more sense for any other state to be capturing by that argument
4442
4694
  // instead.
4443
4695
  template <typename T>
4444
- static void Call(std::tuple_element_t<Is, std::tuple<CArgs...>>... cArgs,
4696
+ static R Call(std::tuple_element_t<Is, std::tuple<CArgs...>>... cArgs,
4445
4697
  void* callbackParam, void* userdataParam) {
4446
4698
  using CppFTraits = CppFTraits<CppF, T>;
4447
4699
  using Converter = CArgConverter<CInfoT, typename CppFTraits::BaseArgsTuple>;
4448
4700
 
4449
- auto callback = reinterpret_cast<typename CppFTraits::PtrT>(callbackParam);
4701
+ auto callback = reinterpret_cast<CppFTraits::PtrT>(callbackParam);
4450
4702
  auto param = std::make_tuple(static_cast<T>(userdataParam));
4451
- std::apply(callback, std::tuple_cat(Converter::Convert(cArgs...), param));
4703
+ return std::apply(callback, std::tuple_cat(Converter::Convert(cArgs...), param));
4452
4704
  }
4453
4705
  };
4454
4706
  template <typename CInfoT, typename F, typename CbT>
4455
4707
  struct CallbackHelper;
4456
- template <typename CInfoT, typename F, typename... CArgs>
4457
- struct CallbackHelper<CInfoT, F, void(*)(CArgs...)> {
4708
+ template <typename CInfoT, typename F, typename R, typename... CArgs>
4709
+ struct CallbackHelper<CInfoT, F, R(*)(CArgs...)> {
4458
4710
  static constexpr size_t NumCArgs = sizeof...(CArgs);
4459
4711
  using CArgsTuple = std::tuple<CArgs...>;
4460
4712
  static_assert(NumCArgs >= 2, "C Function pointers must have two void* trailing arguments.");
@@ -4467,13 +4719,13 @@ struct CallbackHelper<CInfoT, F, void(*)(CArgs...)> {
4467
4719
  "C Function pointer's second to last argument must be void*."
4468
4720
  );
4469
4721
 
4470
- using Impl = CallbackHelperImpl<CInfoT, F, CArgsTuple, std::make_index_sequence<NumCArgs - 2>>;
4471
- static void Call(CArgs... args) {
4472
- Impl::Call(std::forward<CArgs>(args)...);
4722
+ using Impl = CallbackHelperImpl<R, CInfoT, F, CArgsTuple, std::make_index_sequence<NumCArgs - 2>>;
4723
+ static R Call(CArgs... args) {
4724
+ return Impl::Call(std::forward<CArgs>(args)...);
4473
4725
  }
4474
4726
  template <typename T>
4475
- static void Call(CArgs... args) {
4476
- Impl::template Call<T>(std::forward<CArgs>(args)...);
4727
+ static R Call(CArgs... args) {
4728
+ return Impl::template Call<T>(std::forward<CArgs>(args)...);
4477
4729
  }
4478
4730
  };
4479
4731
 
@@ -4526,6 +4778,7 @@ struct CallbackInfoHelper {
4526
4778
  // error: 'offsetof' within non-standard-layout type 'wgpu::XXX' is conditionally-supported
4527
4779
  #pragma GCC diagnostic ignored "-Winvalid-offsetof"
4528
4780
  #endif
4781
+ // NOLINTBEGIN(bugprone-invalid-enum-default-initialization)
4529
4782
 
4530
4783
  // AdapterPropertiesD3D implementation
4531
4784
  AdapterPropertiesD3D::AdapterPropertiesD3D()
@@ -4743,6 +4996,8 @@ static_assert(offsetof(ColorSpaceDawn, yCbCrRange) == offsetof(WGPUColorSpaceDaw
4743
4996
  "offsetof mismatch for ColorSpaceDawn::yCbCrRange");
4744
4997
  static_assert(offsetof(ColorSpaceDawn, yCbCrMatrix) == offsetof(WGPUColorSpaceDawn, yCbCrMatrix),
4745
4998
  "offsetof mismatch for ColorSpaceDawn::yCbCrMatrix");
4999
+ static_assert(offsetof(ColorSpaceDawn, hdrReferenceWhiteLuminance) == offsetof(WGPUColorSpaceDawn, hdrReferenceWhiteLuminance),
5000
+ "offsetof mismatch for ColorSpaceDawn::hdrReferenceWhiteLuminance");
4746
5001
 
4747
5002
  // ColorTargetStateExpandResolveTextureDawn implementation
4748
5003
  ColorTargetStateExpandResolveTextureDawn::ColorTargetStateExpandResolveTextureDawn()
@@ -4897,16 +5152,38 @@ DawnCacheDeviceDescriptor::DawnCacheDeviceDescriptor()
4897
5152
  struct DawnCacheDeviceDescriptor::Init {
4898
5153
  ChainedStruct * const nextInChain;
4899
5154
  StringView isolationKey = {};
4900
- DawnLoadCacheDataFunction loadDataFunction = nullptr;
4901
- DawnStoreCacheDataFunction storeDataFunction = nullptr;
4902
- void * functionUserdata = nullptr;
4903
5155
  };
4904
5156
  DawnCacheDeviceDescriptor::DawnCacheDeviceDescriptor(DawnCacheDeviceDescriptor::Init&& init) :
4905
5157
  ChainedStruct { init.nextInChain, SType::DawnCacheDeviceDescriptor },
4906
- isolationKey(std::move(init.isolationKey)),
4907
- loadDataFunction(std::move(init.loadDataFunction)),
4908
- storeDataFunction(std::move(init.storeDataFunction)),
4909
- functionUserdata(std::move(init.functionUserdata)) {}
5158
+ detail::DawnCacheDeviceDescriptor {
5159
+ std::move(init.isolationKey),
5160
+ } {}
5161
+ template <typename F, typename T>
5162
+ void DawnCacheDeviceDescriptor::SetDawnLoadCacheDataCallback(F callback, T userdata) {
5163
+ static_assert(offsetof(DawnCacheDeviceDescriptor, dawnLoadCacheDataCallbackInfo) == offsetof(WGPUDawnCacheDeviceDescriptor, dawnLoadCacheDataCallbackInfo),
5164
+ "offsetof mismatch for DawnCacheDeviceDescriptor::dawnLoadCacheDataCallbackInfo");
5165
+
5166
+ assert(dawnLoadCacheDataCallbackInfo.callback == nullptr);
5167
+ dawnLoadCacheDataCallbackInfo = detail::CallbackInfoHelper<WGPUDawnLoadCacheDataCallbackInfo, F>::Create(std::move(callback), userdata);
5168
+ }
5169
+ template <typename F>
5170
+ void DawnCacheDeviceDescriptor::SetDawnLoadCacheDataCallback(F callback) {
5171
+ assert(dawnLoadCacheDataCallbackInfo.callback == nullptr);
5172
+ dawnLoadCacheDataCallbackInfo = detail::CallbackInfoHelper<WGPUDawnLoadCacheDataCallbackInfo, F>::Create(std::move(callback));
5173
+ }
5174
+ template <typename F, typename T>
5175
+ void DawnCacheDeviceDescriptor::SetDawnStoreCacheDataCallback(F callback, T userdata) {
5176
+ static_assert(offsetof(DawnCacheDeviceDescriptor, dawnStoreCacheDataCallbackInfo) == offsetof(WGPUDawnCacheDeviceDescriptor, dawnStoreCacheDataCallbackInfo),
5177
+ "offsetof mismatch for DawnCacheDeviceDescriptor::dawnStoreCacheDataCallbackInfo");
5178
+
5179
+ assert(dawnStoreCacheDataCallbackInfo.callback == nullptr);
5180
+ dawnStoreCacheDataCallbackInfo = detail::CallbackInfoHelper<WGPUDawnStoreCacheDataCallbackInfo, F>::Create(std::move(callback), userdata);
5181
+ }
5182
+ template <typename F>
5183
+ void DawnCacheDeviceDescriptor::SetDawnStoreCacheDataCallback(F callback) {
5184
+ assert(dawnStoreCacheDataCallbackInfo.callback == nullptr);
5185
+ dawnStoreCacheDataCallbackInfo = detail::CallbackInfoHelper<WGPUDawnStoreCacheDataCallbackInfo, F>::Create(std::move(callback));
5186
+ }
4910
5187
 
4911
5188
  DawnCacheDeviceDescriptor::operator const WGPUDawnCacheDeviceDescriptor&() const noexcept {
4912
5189
  return *reinterpret_cast<const WGPUDawnCacheDeviceDescriptor*>(this);
@@ -4916,12 +5193,6 @@ static_assert(sizeof(DawnCacheDeviceDescriptor) == sizeof(WGPUDawnCacheDeviceDes
4916
5193
  static_assert(alignof(DawnCacheDeviceDescriptor) == alignof(WGPUDawnCacheDeviceDescriptor), "alignof mismatch for DawnCacheDeviceDescriptor");
4917
5194
  static_assert(offsetof(DawnCacheDeviceDescriptor, isolationKey) == offsetof(WGPUDawnCacheDeviceDescriptor, isolationKey),
4918
5195
  "offsetof mismatch for DawnCacheDeviceDescriptor::isolationKey");
4919
- static_assert(offsetof(DawnCacheDeviceDescriptor, loadDataFunction) == offsetof(WGPUDawnCacheDeviceDescriptor, loadDataFunction),
4920
- "offsetof mismatch for DawnCacheDeviceDescriptor::loadDataFunction");
4921
- static_assert(offsetof(DawnCacheDeviceDescriptor, storeDataFunction) == offsetof(WGPUDawnCacheDeviceDescriptor, storeDataFunction),
4922
- "offsetof mismatch for DawnCacheDeviceDescriptor::storeDataFunction");
4923
- static_assert(offsetof(DawnCacheDeviceDescriptor, functionUserdata) == offsetof(WGPUDawnCacheDeviceDescriptor, functionUserdata),
4924
- "offsetof mismatch for DawnCacheDeviceDescriptor::functionUserdata");
4925
5196
 
4926
5197
  // DawnCompilationMessageUtf16 implementation
4927
5198
  DawnCompilationMessageUtf16::DawnCompilationMessageUtf16()
@@ -5828,30 +6099,6 @@ static_assert(offsetof(SharedBufferMemoryBeginAccessDescriptor, signaledValueCou
5828
6099
  static_assert(offsetof(SharedBufferMemoryBeginAccessDescriptor, signaledValues) == offsetof(WGPUSharedBufferMemoryBeginAccessDescriptor, signaledValues),
5829
6100
  "offsetof mismatch for SharedBufferMemoryBeginAccessDescriptor::signaledValues");
5830
6101
 
5831
- // SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor implementation
5832
- SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor::SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor()
5833
- : ChainedStruct { nullptr, SType::SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor } {}
5834
- struct SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor::Init {
5835
- ChainedStruct * const nextInChain;
5836
- void * handle;
5837
- uint64_t size;
5838
- };
5839
- SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor::SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor(SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor::Init&& init) :
5840
- ChainedStruct { init.nextInChain, SType::SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor },
5841
- handle(std::move(init.handle)),
5842
- size(std::move(init.size)) {}
5843
-
5844
- SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor::operator const WGPUSharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor&() const noexcept {
5845
- return *reinterpret_cast<const WGPUSharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor*>(this);
5846
- }
5847
-
5848
- static_assert(sizeof(SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor) == sizeof(WGPUSharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor), "sizeof mismatch for SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor");
5849
- static_assert(alignof(SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor) == alignof(WGPUSharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor), "alignof mismatch for SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor");
5850
- static_assert(offsetof(SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor, handle) == offsetof(WGPUSharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor, handle),
5851
- "offsetof mismatch for SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor::handle");
5852
- static_assert(offsetof(SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor, size) == offsetof(WGPUSharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor, size),
5853
- "offsetof mismatch for SharedBufferMemoryD3D12SharedMemoryFileMappingHandleDescriptor::size");
5854
-
5855
6102
  // SharedBufferMemoryEndAccessState implementation
5856
6103
  SharedBufferMemoryEndAccessState::SharedBufferMemoryEndAccessState() = default;
5857
6104
  SharedBufferMemoryEndAccessState::~SharedBufferMemoryEndAccessState() {
@@ -5917,6 +6164,30 @@ static_assert(offsetof(SharedBufferMemoryEndAccessState, signaledValueCount) ==
5917
6164
  static_assert(offsetof(SharedBufferMemoryEndAccessState, signaledValues) == offsetof(WGPUSharedBufferMemoryEndAccessState, signaledValues),
5918
6165
  "offsetof mismatch for SharedBufferMemoryEndAccessState::signaledValues");
5919
6166
 
6167
+ // SharedBufferMemoryFromWindowsHandleDescriptor implementation
6168
+ SharedBufferMemoryFromWindowsHandleDescriptor::SharedBufferMemoryFromWindowsHandleDescriptor()
6169
+ : ChainedStruct { nullptr, SType::SharedBufferMemoryFromWindowsHandleDescriptor } {}
6170
+ struct SharedBufferMemoryFromWindowsHandleDescriptor::Init {
6171
+ ChainedStruct * const nextInChain;
6172
+ void * handle;
6173
+ uint64_t size;
6174
+ };
6175
+ SharedBufferMemoryFromWindowsHandleDescriptor::SharedBufferMemoryFromWindowsHandleDescriptor(SharedBufferMemoryFromWindowsHandleDescriptor::Init&& init) :
6176
+ ChainedStruct { init.nextInChain, SType::SharedBufferMemoryFromWindowsHandleDescriptor },
6177
+ handle(std::move(init.handle)),
6178
+ size(std::move(init.size)) {}
6179
+
6180
+ SharedBufferMemoryFromWindowsHandleDescriptor::operator const WGPUSharedBufferMemoryFromWindowsHandleDescriptor&() const noexcept {
6181
+ return *reinterpret_cast<const WGPUSharedBufferMemoryFromWindowsHandleDescriptor*>(this);
6182
+ }
6183
+
6184
+ static_assert(sizeof(SharedBufferMemoryFromWindowsHandleDescriptor) == sizeof(WGPUSharedBufferMemoryFromWindowsHandleDescriptor), "sizeof mismatch for SharedBufferMemoryFromWindowsHandleDescriptor");
6185
+ static_assert(alignof(SharedBufferMemoryFromWindowsHandleDescriptor) == alignof(WGPUSharedBufferMemoryFromWindowsHandleDescriptor), "alignof mismatch for SharedBufferMemoryFromWindowsHandleDescriptor");
6186
+ static_assert(offsetof(SharedBufferMemoryFromWindowsHandleDescriptor, handle) == offsetof(WGPUSharedBufferMemoryFromWindowsHandleDescriptor, handle),
6187
+ "offsetof mismatch for SharedBufferMemoryFromWindowsHandleDescriptor::handle");
6188
+ static_assert(offsetof(SharedBufferMemoryFromWindowsHandleDescriptor, size) == offsetof(WGPUSharedBufferMemoryFromWindowsHandleDescriptor, size),
6189
+ "offsetof mismatch for SharedBufferMemoryFromWindowsHandleDescriptor::size");
6190
+
5920
6191
  // SharedBufferMemoryProperties implementation
5921
6192
 
5922
6193
  SharedBufferMemoryProperties::operator const WGPUSharedBufferMemoryProperties&() const noexcept {
@@ -8671,7 +8942,7 @@ static_assert(offsetof(RenderPipelineDescriptor, multisample) == offsetof(WGPURe
8671
8942
  static_assert(offsetof(RenderPipelineDescriptor, fragment) == offsetof(WGPURenderPipelineDescriptor, fragment),
8672
8943
  "offsetof mismatch for RenderPipelineDescriptor::fragment");
8673
8944
 
8674
-
8945
+ // NOLINTEND(bugprone-invalid-enum-default-initialization)
8675
8946
  #if defined(__GNUC__) || defined(__clang__)
8676
8947
  #pragma GCC diagnostic pop
8677
8948
  #endif
@@ -9012,10 +9283,18 @@ Buffer Device::CreateErrorBuffer(BufferDescriptor const * descriptor) const {
9012
9283
  auto result = wgpuDeviceCreateErrorBuffer(Get(), reinterpret_cast<WGPUBufferDescriptor const *>(descriptor));
9013
9284
  return Buffer::Acquire(result);
9014
9285
  }
9286
+ ComputePipeline Device::CreateErrorComputePipeline(StringView label) const {
9287
+ auto result = wgpuDeviceCreateErrorComputePipeline(Get(), *reinterpret_cast<WGPUStringView const*>(&label));
9288
+ return ComputePipeline::Acquire(result);
9289
+ }
9015
9290
  ExternalTexture Device::CreateErrorExternalTexture() const {
9016
9291
  auto result = wgpuDeviceCreateErrorExternalTexture(Get());
9017
9292
  return ExternalTexture::Acquire(result);
9018
9293
  }
9294
+ RenderPipeline Device::CreateErrorRenderPipeline(StringView label) const {
9295
+ auto result = wgpuDeviceCreateErrorRenderPipeline(Get(), *reinterpret_cast<WGPUStringView const*>(&label));
9296
+ return RenderPipeline::Acquire(result);
9297
+ }
9019
9298
  ShaderModule Device::CreateErrorShaderModule(ShaderModuleDescriptor const * descriptor, StringView errorMessage) const {
9020
9299
  auto result = wgpuDeviceCreateErrorShaderModule(Get(), reinterpret_cast<WGPUShaderModuleDescriptor const *>(descriptor), *reinterpret_cast<WGPUStringView const*>(&errorMessage));
9021
9300
  return ShaderModule::Acquire(result);
@@ -9433,12 +9712,12 @@ uint32_t ResourceTable::GetSize() const {
9433
9712
  auto result = wgpuResourceTableGetSize(Get());
9434
9713
  return result;
9435
9714
  }
9436
- uint32_t ResourceTable::InsertBinding(BindingResource const * resource) const {
9437
- auto result = wgpuResourceTableInsertBinding(Get(), reinterpret_cast<WGPUBindingResource const *>(resource));
9715
+ uint32_t ResourceTable::Insert(BindingResource const * resource) const {
9716
+ auto result = wgpuResourceTableInsert(Get(), reinterpret_cast<WGPUBindingResource const *>(resource));
9438
9717
  return result;
9439
9718
  }
9440
- ConvertibleStatus ResourceTable::RemoveBinding(uint32_t slot) const {
9441
- auto result = wgpuResourceTableRemoveBinding(Get(), slot);
9719
+ ConvertibleStatus ResourceTable::Remove(uint32_t slot) const {
9720
+ auto result = wgpuResourceTableRemove(Get(), slot);
9442
9721
  return static_cast<Status>(result);
9443
9722
  }
9444
9723
  void ResourceTable::SetLabel(StringView label) const {
@@ -9733,18 +10012,12 @@ uint32_t Texture::GetWidth() const {
9733
10012
  auto result = wgpuTextureGetWidth(Get());
9734
10013
  return result;
9735
10014
  }
9736
- void Texture::Pin(TextureUsage usage) const {
9737
- wgpuTexturePin(Get(), static_cast<WGPUTextureUsage>(usage));
9738
- }
9739
10015
  void Texture::SetLabel(StringView label) const {
9740
10016
  wgpuTextureSetLabel(Get(), *reinterpret_cast<WGPUStringView const*>(&label));
9741
10017
  }
9742
10018
  void Texture::SetOwnershipForMemoryDump(uint64_t ownerGuid) const {
9743
10019
  wgpuTextureSetOwnershipForMemoryDump(Get(), ownerGuid);
9744
10020
  }
9745
- void Texture::Unpin() const {
9746
- wgpuTextureUnpin(Get());
9747
- }
9748
10021
 
9749
10022
 
9750
10023
  void Texture::WGPUAddRef(WGPUTexture handle) {
@@ -9995,22 +10268,22 @@ static_assert(alignof(RenderPassEncoder) == alignof(WGPURenderPassEncoder), "ali
9995
10268
 
9996
10269
 
9997
10270
  // Free Functions
9998
- static inline Instance CreateInstance(InstanceDescriptor const * descriptor = nullptr) {
10271
+ inline Instance CreateInstance(InstanceDescriptor const * descriptor = nullptr) {
9999
10272
  auto result = wgpuCreateInstance(reinterpret_cast<WGPUInstanceDescriptor const *>(descriptor));
10000
10273
  return Instance::Acquire(result);
10001
10274
  }
10002
- static inline void GetInstanceFeatures(SupportedInstanceFeatures * features) {
10275
+ inline void GetInstanceFeatures(SupportedInstanceFeatures * features) {
10003
10276
  wgpuGetInstanceFeatures(reinterpret_cast<WGPUSupportedInstanceFeatures *>(features));
10004
10277
  }
10005
- static inline Status GetInstanceLimits(InstanceLimits * limits) {
10278
+ inline Status GetInstanceLimits(InstanceLimits * limits) {
10006
10279
  auto result = wgpuGetInstanceLimits(reinterpret_cast<WGPUInstanceLimits *>(limits));
10007
10280
  return static_cast<Status>(result);
10008
10281
  }
10009
- static inline Bool HasInstanceFeature(InstanceFeatureName feature) {
10282
+ inline Bool HasInstanceFeature(InstanceFeatureName feature) {
10010
10283
  auto result = wgpuHasInstanceFeature(static_cast<WGPUInstanceFeatureName>(feature));
10011
10284
  return result;
10012
10285
  }
10013
- static inline Proc GetProcAddress(StringView procName) {
10286
+ inline Proc GetProcAddress(StringView procName) {
10014
10287
  auto result = wgpuGetProcAddress(*reinterpret_cast<WGPUStringView const*>(&procName));
10015
10288
  return reinterpret_cast<Proc>(result);
10016
10289
  }