tangram-core 0.3.0__cp310-cp310-manylinux_2_28_aarch64.whl

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 (162) hide show
  1. tangram_core/App.vue +441 -0
  2. tangram_core/CommandPalette.vue +200 -0
  3. tangram_core/HighlightText.vue +32 -0
  4. tangram_core/__Timeline.vue +300 -0
  5. tangram_core/__init__.py +5 -0
  6. tangram_core/__main__.py +331 -0
  7. tangram_core/_core.cpython-310-aarch64-linux-gnu.so +0 -0
  8. tangram_core/_core.pyi +38 -0
  9. tangram_core/api.ts +652 -0
  10. tangram_core/backend.py +458 -0
  11. tangram_core/components.ts +2 -0
  12. tangram_core/config.py +167 -0
  13. tangram_core/dist-frontend/aggregation-layers.js +521 -0
  14. tangram_core/dist-frontend/aggregation-layers.js.map +1 -0
  15. tangram_core/dist-frontend/assets/_commonjsHelpers-CqkleIqs.js +2 -0
  16. tangram_core/dist-frontend/assets/_commonjsHelpers-CqkleIqs.js.map +1 -0
  17. tangram_core/dist-frontend/assets/array-utils-flat-BBMak426.js +11 -0
  18. tangram_core/dist-frontend/assets/array-utils-flat-BBMak426.js.map +1 -0
  19. tangram_core/dist-frontend/assets/assert-cyW4mg7q.js +3 -0
  20. tangram_core/dist-frontend/assets/assert-cyW4mg7q.js.map +1 -0
  21. tangram_core/dist-frontend/assets/b612-latin-400-italic-DePNXA0a.woff +0 -0
  22. tangram_core/dist-frontend/assets/b612-latin-400-italic-a-4GLPtl.woff2 +0 -0
  23. tangram_core/dist-frontend/assets/b612-latin-400-normal-CC98FVm_.woff2 +0 -0
  24. tangram_core/dist-frontend/assets/b612-latin-400-normal-JbZ7xwUX.woff +0 -0
  25. tangram_core/dist-frontend/assets/b612-latin-700-normal-B_Snq1wd.woff +0 -0
  26. tangram_core/dist-frontend/assets/b612-latin-700-normal-BinQrnoB.woff2 +0 -0
  27. tangram_core/dist-frontend/assets/clip-extension-D-rbmFPj.js +26 -0
  28. tangram_core/dist-frontend/assets/clip-extension-D-rbmFPj.js.map +1 -0
  29. tangram_core/dist-frontend/assets/color-CUNNsFV-.js +17 -0
  30. tangram_core/dist-frontend/assets/color-CUNNsFV-.js.map +1 -0
  31. tangram_core/dist-frontend/assets/cube-geometry-v0HQ793i.js +2 -0
  32. tangram_core/dist-frontend/assets/cube-geometry-v0HQ793i.js.map +1 -0
  33. tangram_core/dist-frontend/assets/deep-equal-BTW2ZN6S.js +2 -0
  34. tangram_core/dist-frontend/assets/deep-equal-BTW2ZN6S.js.map +1 -0
  35. tangram_core/dist-frontend/assets/fly-to-interpolator-CIXGjOdo.js +2 -0
  36. tangram_core/dist-frontend/assets/fly-to-interpolator-CIXGjOdo.js.map +1 -0
  37. tangram_core/dist-frontend/assets/geojson-layer-DgMOQ4Qu.js +1010 -0
  38. tangram_core/dist-frontend/assets/geojson-layer-DgMOQ4Qu.js.map +1 -0
  39. tangram_core/dist-frontend/assets/globe-view-Day_n1iB.js +94 -0
  40. tangram_core/dist-frontend/assets/globe-view-Day_n1iB.js.map +1 -0
  41. tangram_core/dist-frontend/assets/globe-viewport-tqhQW7C4.js +2 -0
  42. tangram_core/dist-frontend/assets/globe-viewport-tqhQW7C4.js.map +1 -0
  43. tangram_core/dist-frontend/assets/image-loader-hHJsndO6.js +2 -0
  44. tangram_core/dist-frontend/assets/image-loader-hHJsndO6.js.map +1 -0
  45. tangram_core/dist-frontend/assets/inconsolata-latin-400-normal-DTZQ6lD6.woff2 +0 -0
  46. tangram_core/dist-frontend/assets/inconsolata-latin-400-normal-HYADljCo.woff +0 -0
  47. tangram_core/dist-frontend/assets/inconsolata-latin-700-normal-ByjKuJjN.woff2 +0 -0
  48. tangram_core/dist-frontend/assets/inconsolata-latin-700-normal-DzgUY3Rl.woff +0 -0
  49. tangram_core/dist-frontend/assets/inconsolata-latin-ext-400-normal-BaHVOdFB.woff2 +0 -0
  50. tangram_core/dist-frontend/assets/inconsolata-latin-ext-400-normal-yvPjCxxx.woff +0 -0
  51. tangram_core/dist-frontend/assets/inconsolata-latin-ext-700-normal-D0Kpgs_9.woff2 +0 -0
  52. tangram_core/dist-frontend/assets/inconsolata-latin-ext-700-normal-Dlt-daqV.woff +0 -0
  53. tangram_core/dist-frontend/assets/inconsolata-vietnamese-400-normal-ByiM2lek.woff +0 -0
  54. tangram_core/dist-frontend/assets/inconsolata-vietnamese-400-normal-DfC_iMic.woff2 +0 -0
  55. tangram_core/dist-frontend/assets/inconsolata-vietnamese-700-normal-DLCFFAUf.woff +0 -0
  56. tangram_core/dist-frontend/assets/inconsolata-vietnamese-700-normal-DuasYmn8.woff2 +0 -0
  57. tangram_core/dist-frontend/assets/index-CcogpxdD.js +824 -0
  58. tangram_core/dist-frontend/assets/index-CcogpxdD.js.map +1 -0
  59. tangram_core/dist-frontend/assets/index-SSLdizTv.css +1 -0
  60. tangram_core/dist-frontend/assets/layer-DPcO4AXQ.js +555 -0
  61. tangram_core/dist-frontend/assets/layer-DPcO4AXQ.js.map +1 -0
  62. tangram_core/dist-frontend/assets/layer-extension-CYwTXf73.js +2 -0
  63. tangram_core/dist-frontend/assets/layer-extension-CYwTXf73.js.map +1 -0
  64. tangram_core/dist-frontend/assets/mesh-layers-wiqredoy.js +1123 -0
  65. tangram_core/dist-frontend/assets/mesh-layers-wiqredoy.js.map +1 -0
  66. tangram_core/dist-frontend/assets/orthographic-viewport-B4nCj5tn.js +2 -0
  67. tangram_core/dist-frontend/assets/orthographic-viewport-B4nCj5tn.js.map +1 -0
  68. tangram_core/dist-frontend/assets/pick-layers-pass-C-3k0wbN.js +2 -0
  69. tangram_core/dist-frontend/assets/pick-layers-pass-C-3k0wbN.js.map +1 -0
  70. tangram_core/dist-frontend/assets/project-BTjD2Imj.js +760 -0
  71. tangram_core/dist-frontend/assets/project-BTjD2Imj.js.map +1 -0
  72. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-italic-4qS3_zkX.woff2 +0 -0
  73. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-italic-CDK-EZBY.woff +0 -0
  74. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-normal-Bgns473E.woff +0 -0
  75. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-400-normal-_T2aQlWs.woff2 +0 -0
  76. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-500-normal-CvEVpWxD.woff +0 -0
  77. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-500-normal-s4PklZE0.woff2 +0 -0
  78. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-700-normal-9RN-Z7cI.woff2 +0 -0
  79. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-700-normal-BGMkBBYx.woff +0 -0
  80. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-italic-C7erd-g8.woff +0 -0
  81. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-italic-DR5R5TWx.woff2 +0 -0
  82. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-normal-DGo1Ayjq.woff2 +0 -0
  83. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-400-normal-WtM1l1qc.woff +0 -0
  84. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-500-normal-C8FNIdXm.woff2 +0 -0
  85. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-500-normal-TLDmfi3Q.woff +0 -0
  86. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-700-normal-CTXjXnze.woff2 +0 -0
  87. tangram_core/dist-frontend/assets/roboto-condensed-cyrillic-ext-700-normal-CWPRiRXS.woff +0 -0
  88. tangram_core/dist-frontend/assets/roboto-condensed-greek-400-italic-CR6qj4Z4.woff2 +0 -0
  89. tangram_core/dist-frontend/assets/roboto-condensed-greek-400-italic-DHRaIs10.woff +0 -0
  90. tangram_core/dist-frontend/assets/roboto-condensed-greek-400-normal-D5vBSIyg.woff2 +0 -0
  91. tangram_core/dist-frontend/assets/roboto-condensed-greek-400-normal-FabMgVmk.woff +0 -0
  92. tangram_core/dist-frontend/assets/roboto-condensed-greek-500-normal-BIN62cw9.woff +0 -0
  93. tangram_core/dist-frontend/assets/roboto-condensed-greek-500-normal-Hsn-wDIp.woff2 +0 -0
  94. tangram_core/dist-frontend/assets/roboto-condensed-greek-700-normal-89Up2Xly.woff +0 -0
  95. tangram_core/dist-frontend/assets/roboto-condensed-greek-700-normal-DWMOA2VK.woff2 +0 -0
  96. tangram_core/dist-frontend/assets/roboto-condensed-latin-400-italic-D_BR-3LG.woff2 +0 -0
  97. tangram_core/dist-frontend/assets/roboto-condensed-latin-400-italic-om57GXsO.woff +0 -0
  98. tangram_core/dist-frontend/assets/roboto-condensed-latin-400-normal-BICmKrXV.woff2 +0 -0
  99. tangram_core/dist-frontend/assets/roboto-condensed-latin-400-normal-D2e7XwB1.woff +0 -0
  100. tangram_core/dist-frontend/assets/roboto-condensed-latin-500-normal-3p2daRJW.woff2 +0 -0
  101. tangram_core/dist-frontend/assets/roboto-condensed-latin-500-normal-Dc9bsamC.woff +0 -0
  102. tangram_core/dist-frontend/assets/roboto-condensed-latin-700-normal-BOl6B_hI.woff +0 -0
  103. tangram_core/dist-frontend/assets/roboto-condensed-latin-700-normal-DRbp0YnP.woff2 +0 -0
  104. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-italic-BXrkWnoY.woff +0 -0
  105. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-italic-Bhem1d5z.woff2 +0 -0
  106. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-normal-DT8nEsYA.woff +0 -0
  107. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-400-normal-OHaX69iP.woff2 +0 -0
  108. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-500-normal-CcSTXKtO.woff2 +0 -0
  109. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-500-normal-JgPl2bDS.woff +0 -0
  110. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-700-normal-B004qtqu.woff2 +0 -0
  111. tangram_core/dist-frontend/assets/roboto-condensed-latin-ext-700-normal-O6H_RRvN.woff +0 -0
  112. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-italic-BwUYFJ2t.woff2 +0 -0
  113. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-italic-DV8QogUk.woff +0 -0
  114. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-normal-0o1laQ-g.woff2 +0 -0
  115. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-400-normal-CPsdS8_S.woff +0 -0
  116. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-500-normal-G9shSJ2z.woff +0 -0
  117. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-500-normal-TFWhjk13.woff2 +0 -0
  118. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-700-normal-BtNeb9D6.woff +0 -0
  119. tangram_core/dist-frontend/assets/roboto-condensed-vietnamese-700-normal-D35V1G0s.woff2 +0 -0
  120. tangram_core/dist-frontend/assets/shader-Cbdysp2j.js +843 -0
  121. tangram_core/dist-frontend/assets/shader-Cbdysp2j.js.map +1 -0
  122. tangram_core/dist-frontend/assets/solid-polygon-layer-DJFl_7Ca.js +392 -0
  123. tangram_core/dist-frontend/assets/solid-polygon-layer-DJFl_7Ca.js.map +1 -0
  124. tangram_core/dist-frontend/assets/tesselator-CENyUZ2p.js +2 -0
  125. tangram_core/dist-frontend/assets/tesselator-CENyUZ2p.js.map +1 -0
  126. tangram_core/dist-frontend/assets/webgl-developer-tools-utTNOsNf.js +7 -0
  127. tangram_core/dist-frontend/assets/webgl-developer-tools-utTNOsNf.js.map +1 -0
  128. tangram_core/dist-frontend/assets/webgl-device-BYRB-GQX.js +3 -0
  129. tangram_core/dist-frontend/assets/webgl-device-BYRB-GQX.js.map +1 -0
  130. tangram_core/dist-frontend/assets/widget-BjgEeHAL.js +2 -0
  131. tangram_core/dist-frontend/assets/widget-BjgEeHAL.js.map +1 -0
  132. tangram_core/dist-frontend/core.js +60 -0
  133. tangram_core/dist-frontend/core.js.map +1 -0
  134. tangram_core/dist-frontend/extensions.js +609 -0
  135. tangram_core/dist-frontend/extensions.js.map +1 -0
  136. tangram_core/dist-frontend/favicon.ico +0 -0
  137. tangram_core/dist-frontend/favicon.png +0 -0
  138. tangram_core/dist-frontend/geo-layers.js +115 -0
  139. tangram_core/dist-frontend/geo-layers.js.map +1 -0
  140. tangram_core/dist-frontend/index.html +39 -0
  141. tangram_core/dist-frontend/json.js +3 -0
  142. tangram_core/dist-frontend/json.js.map +1 -0
  143. tangram_core/dist-frontend/layers.js +268 -0
  144. tangram_core/dist-frontend/layers.js.map +1 -0
  145. tangram_core/dist-frontend/mapbox.js +2 -0
  146. tangram_core/dist-frontend/mapbox.js.map +1 -0
  147. tangram_core/dist-frontend/mesh-layers.js +2 -0
  148. tangram_core/dist-frontend/mesh-layers.js.map +1 -0
  149. tangram_core/dist-frontend/widgets.js +3 -0
  150. tangram_core/dist-frontend/widgets.js.map +1 -0
  151. tangram_core/main.ts +28 -0
  152. tangram_core/package.json +62 -0
  153. tangram_core/plugin.py +109 -0
  154. tangram_core/plugin.ts +47 -0
  155. tangram_core/redis.py +89 -0
  156. tangram_core/user.css +114 -0
  157. tangram_core/utils.ts +143 -0
  158. tangram_core/vite-plugin-tangram.mjs +155 -0
  159. tangram_core-0.3.0.dist-info/METADATA +101 -0
  160. tangram_core-0.3.0.dist-info/RECORD +162 -0
  161. tangram_core-0.3.0.dist-info/WHEEL +4 -0
  162. tangram_core-0.3.0.dist-info/entry_points.txt +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader-Cbdysp2j.js","sources":["../../../../node_modules/.pnpm/@luma.gl+core@9.2.6/node_modules/@luma.gl/core/dist/adapter/resources/compute-pipeline.js","../../../../node_modules/.pnpm/@luma.gl+core@9.2.6/node_modules/@luma.gl/core/dist/utils/is-array.js","../../../../node_modules/.pnpm/@luma.gl+core@9.2.6/node_modules/@luma.gl/core/dist/portable/uniform-buffer-layout.js","../../../../node_modules/.pnpm/@luma.gl+core@9.2.6/node_modules/@luma.gl/core/dist/utils/array-equal.js","../../../../node_modules/.pnpm/@luma.gl+core@9.2.6/node_modules/@luma.gl/core/dist/portable/uniform-block.js","../../../../node_modules/.pnpm/@luma.gl+core@9.2.6/node_modules/@luma.gl/core/dist/portable/uniform-store.js","../../../../node_modules/.pnpm/wgsl_reflect@1.2.3/node_modules/wgsl_reflect/wgsl_reflect.module.js","../../../../node_modules/.pnpm/@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6/node_modules/@luma.gl/shadertools/dist/lib/wgsl/get-shader-layout-wgsl.js","../../../../node_modules/.pnpm/@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6/node_modules/@luma.gl/shadertools/dist/modules/math/fp64/fp64-utils.js","../../../../node_modules/.pnpm/@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6/node_modules/@luma.gl/shadertools/dist/modules/math/fp64/fp64-arithmetic-glsl.js","../../../../node_modules/.pnpm/@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6/node_modules/@luma.gl/shadertools/dist/modules/math/fp64/fp64-functions-glsl.js","../../../../node_modules/.pnpm/@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6/node_modules/@luma.gl/shadertools/dist/modules/math/fp64/fp64.js","../../../../node_modules/.pnpm/@luma.gl+engine@9.2.6_@luma.gl+core@9.2.6_@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6_/node_modules/@luma.gl/engine/dist/utils/uid.js","../../../../node_modules/.pnpm/@luma.gl+engine@9.2.6_@luma.gl+core@9.2.6_@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6_/node_modules/@luma.gl/engine/dist/geometry/gpu-geometry.js","../../../../node_modules/.pnpm/@luma.gl+engine@9.2.6_@luma.gl+core@9.2.6_@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6_/node_modules/@luma.gl/engine/dist/factories/pipeline-factory.js","../../../../node_modules/.pnpm/@luma.gl+engine@9.2.6_@luma.gl+core@9.2.6_@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6_/node_modules/@luma.gl/engine/dist/factories/shader-factory.js","../../../../node_modules/.pnpm/@luma.gl+engine@9.2.6_@luma.gl+core@9.2.6_@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6_/node_modules/@luma.gl/engine/dist/debug/debug-shader-layout.js","../../../../node_modules/.pnpm/@luma.gl+engine@9.2.6_@luma.gl+core@9.2.6_@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6_/node_modules/@luma.gl/engine/dist/debug/debug-framebuffer.js","../../../../node_modules/.pnpm/@luma.gl+engine@9.2.6_@luma.gl+core@9.2.6_@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6_/node_modules/@luma.gl/engine/dist/utils/deep-equal.js","../../../../node_modules/.pnpm/@luma.gl+engine@9.2.6_@luma.gl+core@9.2.6_@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6_/node_modules/@luma.gl/engine/dist/utils/buffer-layout-helper.js","../../../../node_modules/.pnpm/@luma.gl+engine@9.2.6_@luma.gl+core@9.2.6_@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6_/node_modules/@luma.gl/engine/dist/utils/buffer-layout-order.js","../../../../node_modules/.pnpm/@math.gl+types@4.1.0/node_modules/@math.gl/types/dist/is-array.js","../../../../node_modules/.pnpm/@luma.gl+engine@9.2.6_@luma.gl+core@9.2.6_@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6_/node_modules/@luma.gl/engine/dist/model/split-uniforms-and-bindings.js","../../../../node_modules/.pnpm/@luma.gl+engine@9.2.6_@luma.gl+core@9.2.6_@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6_/node_modules/@luma.gl/engine/dist/shader-inputs.js","../../../../node_modules/.pnpm/@luma.gl+engine@9.2.6_@luma.gl+core@9.2.6_@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6_/node_modules/@luma.gl/engine/dist/application-utils/load-file.js","../../../../node_modules/.pnpm/@luma.gl+engine@9.2.6_@luma.gl+core@9.2.6_@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6_/node_modules/@luma.gl/engine/dist/async-texture/async-texture.js","../../../../node_modules/.pnpm/@luma.gl+engine@9.2.6_@luma.gl+core@9.2.6_@luma.gl+shadertools@9.2.6_@luma.gl+core@9.2.6_/node_modules/@luma.gl/engine/dist/model/model.js","../../../../node_modules/.pnpm/@deck.gl+core@9.2.6/node_modules/@deck.gl/core/dist/utils/shader.js"],"sourcesContent":["// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Resource } from \"./resource.js\";\n/**\n * A compiled and linked shader program for compute\n */\nexport class ComputePipeline extends Resource {\n get [Symbol.toStringTag]() {\n return 'ComputePipeline';\n }\n hash = '';\n /** The merged shader layout */\n shaderLayout;\n constructor(device, props) {\n super(device, props, ComputePipeline.defaultProps);\n this.shaderLayout = props.shaderLayout;\n }\n static defaultProps = {\n ...Resource.defaultProps,\n shader: undefined,\n entryPoint: undefined,\n constants: {},\n shaderLayout: undefined\n };\n}\n//# sourceMappingURL=compute-pipeline.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n * Check is an array is a typed array\n * @param value value to be tested\n * @returns input as TypedArray, or null\n * @todo this should be provided by @math.gl/types\n */\nexport function isTypedArray(value) {\n return ArrayBuffer.isView(value) && !(value instanceof DataView);\n}\n/**\n * Check is an array is a numeric array (typed array or array of numbers)\n * @param value value to be tested\n * @returns input as NumberArray, or null\n * @todo this should be provided by @math.gl/types\n */\nexport function isNumberArray(value) {\n if (Array.isArray(value)) {\n return value.length === 0 || typeof value[0] === 'number';\n }\n return isTypedArray(value);\n}\n//# sourceMappingURL=is-array.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { alignTo } from \"../shadertypes/data-types/decode-data-types.js\";\nimport { getVariableShaderTypeInfo } from \"../shadertypes/data-types/decode-shader-types.js\";\nimport { getScratchArrayBuffer } from \"../utils/array-utils-flat.js\";\nimport { isNumberArray } from \"../utils/is-array.js\";\nimport { log } from \"../utils/log.js\";\n/**\n * Smallest buffer size that can be used for uniform buffers.\n * TODO - does this depend on device?\n */\nconst minBufferSize = 1024;\n/**\n * Std140 layout for uniform buffers\n * Supports manual listing of uniforms\n */\nexport class UniformBufferLayout {\n layout = {};\n /** number of bytes needed for buffer allocation */\n byteLength;\n /** Create a new UniformBufferLayout given a map of attributes. */\n constructor(uniformTypes, uniformSizes = {}) {\n /** number of 4 byte slots taken */\n let size = 0;\n // Add layout (type, size and offset) definitions for each uniform in the layout\n for (const [key, uniformType] of Object.entries(uniformTypes)) {\n const typeAndComponents = getVariableShaderTypeInfo(uniformType);\n const { type, components } = typeAndComponents;\n // Calculate total count for uniform arrays.\n const count = components * (uniformSizes?.[key] ?? 1);\n // First, align (bump) current offset to an even multiple of current object (1, 2, 4)\n size = alignTo(size, count);\n // Use the aligned size as the offset of the current uniform.\n const offset = size;\n // Then, add our object's padded size ((1, 2, multiple of 4) to the current offset\n size += count;\n this.layout[key] = { type, size: count, offset };\n }\n size += (4 - (size % 4)) % 4;\n const actualByteLength = size * 4;\n this.byteLength = Math.max(actualByteLength, minBufferSize);\n }\n /** Get the data for the complete buffer */\n getData(uniformValues) {\n // Allocate three typed arrays pointing at same memory\n const arrayBuffer = getScratchArrayBuffer(this.byteLength);\n const typedArrays = {\n i32: new Int32Array(arrayBuffer),\n u32: new Uint32Array(arrayBuffer),\n f32: new Float32Array(arrayBuffer),\n // TODO not implemented\n f16: new Uint16Array(arrayBuffer)\n };\n for (const [name, value] of Object.entries(uniformValues)) {\n const uniformLayout = this.layout[name];\n if (!uniformLayout) {\n log.warn(`Supplied uniform value ${name} not present in uniform block layout`)();\n // eslint-disable-next-line no-continue\n continue;\n }\n const { type, size, offset } = uniformLayout;\n const typedArray = typedArrays[type];\n if (size === 1) {\n if (typeof value !== 'number' && typeof value !== 'boolean') {\n log.warn(`Supplied value for single component uniform ${name} is not a number: ${value}`)();\n // eslint-disable-next-line no-continue\n continue;\n }\n // single value -> just set it\n typedArray[offset] = Number(value);\n }\n else {\n if (!isNumberArray(value)) {\n log.warn(`Supplied value for multi component / array uniform ${name} is not a numeric array: ${value}`)();\n // eslint-disable-next-line no-continue\n continue;\n }\n // vector/matrix -> copy the supplied (typed) array, starting from offset\n // TODO: we should limit or check size in case the supplied data overflows\n typedArray.set(value, offset);\n }\n }\n return new Uint8Array(arrayBuffer, 0, this.byteLength);\n }\n /** Does this layout have a field with specified name */\n has(name) {\n return Boolean(this.layout[name]);\n }\n /** Get offset and size for a field with specified name */\n get(name) {\n const layout = this.layout[name];\n return layout;\n }\n}\n//# sourceMappingURL=uniform-buffer-layout.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { isNumberArray } from \"./is-array.js\";\n/** Test if two arrays are deep equal, with a length limit that defaults to 16 */\nexport function arrayEqual(a, b, limit = 16) {\n if (a !== b) {\n return false;\n }\n const arrayA = a;\n const arrayB = b;\n if (!isNumberArray(arrayA)) {\n return false;\n }\n if (isNumberArray(arrayB) && arrayA.length === arrayB.length) {\n for (let i = 0; i < arrayA.length; ++i) {\n if (arrayB[i] !== arrayA[i]) {\n return false;\n }\n }\n }\n return true;\n}\n/** Copy a value */\nexport function arrayCopy(a) {\n if (isNumberArray(a)) {\n return a.slice();\n }\n return a;\n}\n//# sourceMappingURL=array-equal.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { arrayEqual, arrayCopy } from \"../utils/array-equal.js\";\n/**\n * A uniform block holds values of the of uniform values for one uniform block / buffer.\n * It also does some book keeping on what has changed, to minimize unnecessary writes to uniform buffers.\n */\nexport class UniformBlock {\n name;\n uniforms = {};\n modifiedUniforms = {};\n modified = true;\n bindingLayout = {};\n needsRedraw = 'initialized';\n constructor(props) {\n this.name = props?.name || 'unnamed';\n // TODO - Extract uniform layout from the shaderLayout object\n if (props?.name && props?.shaderLayout) {\n const binding = props?.shaderLayout.bindings?.find(binding_ => binding_.type === 'uniform' && binding_.name === props?.name);\n if (!binding) {\n throw new Error(props?.name);\n }\n const uniformBlock = binding;\n for (const uniform of uniformBlock.uniforms || []) {\n this.bindingLayout[uniform.name] = uniform;\n }\n }\n }\n /** Set a map of uniforms */\n setUniforms(uniforms) {\n for (const [key, value] of Object.entries(uniforms)) {\n this._setUniform(key, value);\n if (!this.needsRedraw) {\n this.setNeedsRedraw(`${this.name}.${key}=${value}`);\n }\n }\n }\n setNeedsRedraw(reason) {\n this.needsRedraw = this.needsRedraw || reason;\n }\n /** Returns all uniforms */\n getAllUniforms() {\n // @ts-expect-error\n this.modifiedUniforms = {};\n this.needsRedraw = false;\n return (this.uniforms || {});\n }\n /** Set a single uniform */\n _setUniform(key, value) {\n if (arrayEqual(this.uniforms[key], value)) {\n return;\n }\n this.uniforms[key] = arrayCopy(value);\n this.modifiedUniforms[key] = true;\n this.modified = true;\n }\n}\n//# sourceMappingURL=uniform-block.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Buffer } from \"../adapter/resources/buffer.js\";\nimport { log } from \"../utils/log.js\";\nimport { UniformBlock } from \"./uniform-block.js\";\nimport { UniformBufferLayout } from \"./uniform-buffer-layout.js\";\n/**\n * A uniform store holds a uniform values for one or more uniform blocks,\n * - It can generate binary data for any uniform buffer\n * - It can manage a uniform buffer for each block\n * - It can update managed uniform buffers with a single call\n * - It performs some book keeping on what has changed to minimize unnecessary writes to uniform buffers.\n */\nexport class UniformStore {\n /** Stores the uniform values for each uniform block */\n uniformBlocks = new Map();\n /** Can generate data for a uniform buffer for each block from data */\n uniformBufferLayouts = new Map();\n /** Actual buffer for the blocks */\n uniformBuffers = new Map();\n /**\n * Create a new UniformStore instance\n * @param blocks\n */\n constructor(blocks) {\n for (const [bufferName, block] of Object.entries(blocks)) {\n const uniformBufferName = bufferName;\n // Create a layout object to help us generate correctly formatted binary uniform buffers\n const uniformBufferLayout = new UniformBufferLayout(block.uniformTypes ?? {}, block.uniformSizes ?? {});\n this.uniformBufferLayouts.set(uniformBufferName, uniformBufferLayout);\n // Create a Uniform block to store the uniforms for each buffer.\n const uniformBlock = new UniformBlock({ name: bufferName });\n uniformBlock.setUniforms(block.defaultUniforms || {});\n this.uniformBlocks.set(uniformBufferName, uniformBlock);\n }\n }\n /** Destroy any managed uniform buffers */\n destroy() {\n for (const uniformBuffer of this.uniformBuffers.values()) {\n uniformBuffer.destroy();\n }\n }\n /**\n * Set uniforms\n * Makes all properties partial\n */\n setUniforms(uniforms) {\n for (const [blockName, uniformValues] of Object.entries(uniforms)) {\n this.uniformBlocks.get(blockName)?.setUniforms(uniformValues);\n // We leverage logging in updateUniformBuffers(), even though slightly less efficient\n // this.updateUniformBuffer(blockName);\n }\n this.updateUniformBuffers();\n }\n /** Get the required minimum length of the uniform buffer */\n getUniformBufferByteLength(uniformBufferName) {\n return this.uniformBufferLayouts.get(uniformBufferName)?.byteLength || 0;\n }\n /** Get formatted binary memory that can be uploaded to a buffer */\n getUniformBufferData(uniformBufferName) {\n const uniformValues = this.uniformBlocks.get(uniformBufferName)?.getAllUniforms() || {};\n // @ts-ignore\n return this.uniformBufferLayouts.get(uniformBufferName)?.getData(uniformValues);\n }\n /**\n * Creates an unmanaged uniform buffer (umnanaged means that application is responsible for destroying it)\n * The new buffer is initialized with current / supplied values\n */\n createUniformBuffer(device, uniformBufferName, uniforms) {\n if (uniforms) {\n this.setUniforms(uniforms);\n }\n const byteLength = this.getUniformBufferByteLength(uniformBufferName);\n const uniformBuffer = device.createBuffer({\n usage: Buffer.UNIFORM | Buffer.COPY_DST,\n byteLength\n });\n // Note that this clears the needs redraw flag\n const uniformBufferData = this.getUniformBufferData(uniformBufferName);\n uniformBuffer.write(uniformBufferData);\n return uniformBuffer;\n }\n /** Get the managed uniform buffer. \"managed\" resources are destroyed when the uniformStore is destroyed. */\n getManagedUniformBuffer(device, uniformBufferName) {\n if (!this.uniformBuffers.get(uniformBufferName)) {\n const byteLength = this.getUniformBufferByteLength(uniformBufferName);\n const uniformBuffer = device.createBuffer({\n usage: Buffer.UNIFORM | Buffer.COPY_DST,\n byteLength\n });\n this.uniformBuffers.set(uniformBufferName, uniformBuffer);\n }\n // this.updateUniformBuffers();\n // @ts-ignore\n return this.uniformBuffers.get(uniformBufferName);\n }\n /** Updates all uniform buffers where values have changed */\n updateUniformBuffers() {\n let reason = false;\n for (const uniformBufferName of this.uniformBlocks.keys()) {\n const bufferReason = this.updateUniformBuffer(uniformBufferName);\n reason ||= bufferReason;\n }\n if (reason) {\n log.log(3, `UniformStore.updateUniformBuffers(): ${reason}`)();\n }\n return reason;\n }\n /** Update one uniform buffer. Only updates if values have changed */\n updateUniformBuffer(uniformBufferName) {\n const uniformBlock = this.uniformBlocks.get(uniformBufferName);\n let uniformBuffer = this.uniformBuffers.get(uniformBufferName);\n let reason = false;\n if (uniformBuffer && uniformBlock?.needsRedraw) {\n reason ||= uniformBlock.needsRedraw;\n // This clears the needs redraw flag\n const uniformBufferData = this.getUniformBufferData(uniformBufferName);\n uniformBuffer = this.uniformBuffers.get(uniformBufferName);\n uniformBuffer?.write(uniformBufferData);\n // logging - TODO - don't query the values unnecessarily\n const uniformValues = this.uniformBlocks.get(uniformBufferName)?.getAllUniforms();\n log.log(4, `Writing to uniform buffer ${String(uniformBufferName)}`, uniformBufferData, uniformValues)();\n }\n return reason;\n }\n}\n//# sourceMappingURL=uniform-store.js.map","class e{constructor(e,t){this.name=e,this.attributes=t,this.size=0}get isArray(){return!1}get isStruct(){return!1}get isTemplate(){return!1}get isPointer(){return!1}getTypeName(){return this.name}}class t{constructor(e,t,n){this.name=e,this.type=t,this.attributes=n,this.offset=0,this.size=0}get isArray(){return this.type.isArray}get isStruct(){return this.type.isStruct}get isTemplate(){return this.type.isTemplate}get align(){return this.type.isStruct?this.type.align:0}get members(){return this.type.isStruct?this.type.members:null}get format(){return this.type.isArray||this.type.isTemplate?this.type.format:null}get count(){return this.type.isArray?this.type.count:0}get stride(){return this.type.isArray?this.type.stride:this.size}}class n extends e{constructor(e,t){super(e,t),this.members=[],this.align=0,this.startLine=-1,this.endLine=-1,this.inUse=!1}get isStruct(){return!0}}class s extends e{constructor(e,t){super(e,t),this.count=0,this.stride=0}get isArray(){return!0}getTypeName(){return`array<${this.format.getTypeName()}, ${this.count}>`}}class r extends e{constructor(e,t,n){super(e,n),this.format=t}get isPointer(){return!0}getTypeName(){return`&${this.format.getTypeName()}`}}class a extends e{constructor(e,t,n,s){super(e,n),this.format=t,this.access=s}get isTemplate(){return!0}getTypeName(){let e=this.name;if(null!==this.format){if('vec2'===e||'vec3'===e||'vec4'===e||'mat2x2'===e||'mat2x3'===e||'mat2x4'===e||'mat3x2'===e||'mat3x3'===e||'mat3x4'===e||'mat4x2'===e||'mat4x3'===e||'mat4x4'===e){if('f32'===this.format.name)return e+='f',e;if('i32'===this.format.name)return e+='i',e;if('u32'===this.format.name)return e+='u',e;if('bool'===this.format.name)return e+='b',e;if('f16'===this.format.name)return e+='h',e}e+=`<${this.format.name}>`}else if('vec2'===e||'vec3'===e||'vec4'===e)return e;return e}}var i;(e=>{e[e.Uniform=0]='Uniform',e[e.Storage=1]='Storage',e[e.Texture=2]='Texture',e[e.Sampler=3]='Sampler',e[e.StorageTexture=4]='StorageTexture'})(i||(i={}));class o{constructor(e,t,n,s,r,a,i){this.name=e,this.type=t,this.group=n,this.binding=s,this.attributes=r,this.resourceType=a,this.access=i}get isArray(){return this.type.isArray}get isStruct(){return this.type.isStruct}get isTemplate(){return this.type.isTemplate}get size(){return this.type.size}get align(){return this.type.isStruct?this.type.align:0}get members(){return this.type.isStruct?this.type.members:null}get format(){return this.type.isArray||this.type.isTemplate?this.type.format:null}get count(){return this.type.isArray?this.type.count:0}get stride(){return this.type.isArray?this.type.stride:this.size}}class c{constructor(e,t){this.name=e,this.type=t}}class l{constructor(e,t,n,s){this.name=e,this.type=t,this.locationType=n,this.location=s,this.interpolation=null}}class u{constructor(e,t,n,s){this.name=e,this.type=t,this.locationType=n,this.location=s}}class h{constructor(e,t,n,s){this.name=e,this.type=t,this.attributes=n,this.id=s}}class f{constructor(e,t,n){this.name=e,this.type=t,this.attributes=n}}class p{constructor(e,t=null,n){this.stage=null,this.inputs=[],this.outputs=[],this.arguments=[],this.returnType=null,this.resources=[],this.overrides=[],this.startLine=-1,this.endLine=-1,this.inUse=!1,this.calls=new Set,this.name=e,this.stage=t,this.attributes=n}}class d{constructor(){this.vertex=[],this.fragment=[],this.compute=[]}}function m(e){var t=(32768&e)>>15,n=(31744&e)>>10,s=1023&e;return 0==n?(t?-1:1)*Math.pow(2,-14)*(s/Math.pow(2,10)):31==n?s?NaN:1/0*(t?-1:1):(t?-1:1)*Math.pow(2,n-15)*(1+s/Math.pow(2,10))}const g=new Float32Array(1),_=new Int32Array(g.buffer),x=new Uint16Array(1);function y(e){g[0]=e;const t=_[0],n=t>>31&1;let s=t>>23&255,r=8388607&t;if(255===s)return x[0]=n<<15|31744|(0!==r?512:0),x[0];if(0===s){if(0===r)return x[0]=n<<15,x[0];r|=8388608;let e=113;for(;!(8388608&r);)r<<=1,e--;return s=127-e,r&=8388607,s>0?(r=(r>>126-s)+(r>>127-s&1),x[0]=n<<15|s<<10|r>>13,x[0]):(x[0]=n<<15,x[0])}return s=s-127+15,s>=31?(x[0]=n<<15|31744,x[0]):s<=0?s<-10?(x[0]=n<<15,x[0]):(r=(8388608|r)>>1-s,x[0]=n<<15|r>>13,x[0]):(r>>=13,x[0]=n<<15|s<<10|r,x[0])}const b=new Uint32Array(1),v=new Float32Array(b.buffer,0,1);function w(e){const t=112+(e>>6&31)<<23|(63&e)<<17;return b[0]=t,v[0]}function k(e,t,n,s,r,a,i,o,c){const l=s*(i>>=r)*(a>>=r)+n*i+t*o;switch(c){case'r8unorm':return[I(e,l,'8unorm',1)[0]];case'r8snorm':return[I(e,l,'8snorm',1)[0]];case'r8uint':return[I(e,l,'8uint',1)[0]];case'r8sint':return[I(e,l,'8sint',1)[0]];case'rg8unorm':{const t=I(e,l,'8unorm',2);return[t[0],t[1]]}case'rg8snorm':{const t=I(e,l,'8snorm',2);return[t[0],t[1]]}case'rg8uint':{const t=I(e,l,'8uint',2);return[t[0],t[1]]}case'rg8sint':{const t=I(e,l,'8sint',2);return[t[0],t[1]]}case'rgba8unorm-srgb':case'rgba8unorm':{const t=I(e,l,'8unorm',4);return[t[0],t[1],t[2],t[3]]}case'rgba8snorm':{const t=I(e,l,'8snorm',4);return[t[0],t[1],t[2],t[3]]}case'rgba8uint':{const t=I(e,l,'8uint',4);return[t[0],t[1],t[2],t[3]]}case'rgba8sint':{const t=I(e,l,'8sint',4);return[t[0],t[1],t[2],t[3]]}case'bgra8unorm-srgb':case'bgra8unorm':{const t=I(e,l,'8unorm',4);return[t[2],t[1],t[0],t[3]]}case'r16uint':return[I(e,l,'16uint',1)[0]];case'r16sint':return[I(e,l,'16sint',1)[0]];case'r16float':return[I(e,l,'16float',1)[0]];case'rg16uint':{const t=I(e,l,'16uint',2);return[t[0],t[1]]}case'rg16sint':{const t=I(e,l,'16sint',2);return[t[0],t[1]]}case'rg16float':{const t=I(e,l,'16float',2);return[t[0],t[1]]}case'rgba16uint':{const t=I(e,l,'16uint',4);return[t[0],t[1],t[2],t[3]]}case'rgba16sint':{const t=I(e,l,'16sint',4);return[t[0],t[1],t[2],t[3]]}case'rgba16float':{const t=I(e,l,'16float',4);return[t[0],t[1],t[2],t[3]]}case'r32uint':return[I(e,l,'32uint',1)[0]];case'r32sint':return[I(e,l,'32sint',1)[0]];case'depth16unorm':case'depth24plus':case'depth24plus-stencil8':case'depth32float':case'depth32float-stencil8':case'r32float':return[I(e,l,'32float',1)[0]];case'rg32uint':{const t=I(e,l,'32uint',2);return[t[0],t[1]]}case'rg32sint':{const t=I(e,l,'32sint',2);return[t[0],t[1]]}case'rg32float':{const t=I(e,l,'32float',2);return[t[0],t[1]]}case'rgba32uint':{const t=I(e,l,'32uint',4);return[t[0],t[1],t[2],t[3]]}case'rgba32sint':{const t=I(e,l,'32sint',4);return[t[0],t[1],t[2],t[3]]}case'rgba32float':{const t=I(e,l,'32float',4);return[t[0],t[1],t[2],t[3]]}case'rg11b10ufloat':{const t=new Uint32Array(e.buffer,l,1)[0],n=(4192256&t)>>11,s=(4290772992&t)>>22;return[w(2047&t),w(n),function(e){const t=112+(e>>5&31)<<23|(31&e)<<18;return b[0]=t,v[0]}(s),1]}}return null}function I(e,t,n,s){const r=[0,0,0,0];for(let a=0;a<s;++a)switch(n){case'8unorm':r[a]=e[t]/255,t++;break;case'8snorm':r[a]=e[t]/255*2-1,t++;break;case'8uint':r[a]=e[t],t++;break;case'8sint':r[a]=e[t]-127,t++;break;case'16uint':r[a]=e[t]|e[t+1]<<8,t+=2;break;case'16sint':r[a]=(e[t]|e[t+1]<<8)-32768,t+=2;break;case'16float':r[a]=m(e[t]|e[t+1]<<8),t+=2;break;case'32uint':case'32sint':r[a]=e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24,t+=4;break;case'32float':r[a]=new Float32Array(e.buffer,t,1)[0],t+=4}return r}function T(e,t,n,s,r){for(let a=0;a<s;++a)switch(n){case'8unorm':e[t]=255*r[a],t++;break;case'8snorm':e[t]=.5*(r[a]+1)*255,t++;break;case'8uint':e[t]=r[a],t++;break;case'8sint':e[t]=r[a]+127,t++;break;case'16uint':new Uint16Array(e.buffer,t,1)[0]=r[a],t+=2;break;case'16sint':new Int16Array(e.buffer,t,1)[0]=r[a],t+=2;break;case'16float':{const n=y(r[a]);new Uint16Array(e.buffer,t,1)[0]=n,t+=2;break}case'32uint':new Uint32Array(e.buffer,t,1)[0]=r[a],t+=4;break;case'32sint':new Int32Array(e.buffer,t,1)[0]=r[a],t+=4;break;case'32float':new Float32Array(e.buffer,t,1)[0]=r[a],t+=4}return r}const S={r8unorm:{bytesPerBlock:1,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},r8snorm:{bytesPerBlock:1,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},r8uint:{bytesPerBlock:1,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},r8sint:{bytesPerBlock:1,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},rg8unorm:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rg8snorm:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rg8uint:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rg8sint:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rgba8unorm:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},'rgba8unorm-srgb':{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgba8snorm:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgba8uint:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgba8sint:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},bgra8unorm:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},'bgra8unorm-srgb':{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},r16uint:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},r16sint:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},r16float:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},rg16uint:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rg16sint:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rg16float:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rgba16uint:{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgba16sint:{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgba16float:{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},r32uint:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},r32sint:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},r32float:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},rg32uint:{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rg32sint:{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rg32float:{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rgba32uint:{bytesPerBlock:16,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgba32sint:{bytesPerBlock:16,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgba32float:{bytesPerBlock:16,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgb10a2uint:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgb10a2unorm:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rg11b10ufloat:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},stencil8:{bytesPerBlock:1,blockWidth:1,blockHeight:1,isCompressed:!1,isDepthStencil:!0,hasDepth:!1,hasStencil:!0,channels:1},depth16unorm:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,isDepthStencil:!0,hasDepth:!0,hasStencil:!1,channels:1},depth24plus:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,isDepthStencil:!0,hasDepth:!0,hasStencil:!1,depthOnlyFormat:'depth32float',channels:1},'depth24plus-stencil8':{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,isDepthStencil:!0,hasDepth:!0,hasStencil:!0,depthOnlyFormat:'depth32float',channels:1},depth32float:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,isDepthStencil:!0,hasDepth:!0,hasStencil:!1,channels:1},'depth32float-stencil8':{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,isDepthStencil:!0,hasDepth:!0,hasStencil:!0,stencilOnlyFormat:'depth32float',channels:1},rgb9e5ufloat:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},'bc1-rgba-unorm':{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'bc1-rgba-unorm-srgb':{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'bc2-rgba-unorm':{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'bc2-rgba-unorm-srgb':{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'bc3-rgba-unorm':{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'bc3-rgba-unorm-srgb':{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'bc4-r-unorm':{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:1},'bc4-r-snorm':{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:1},'bc5-rg-unorm':{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:2},'bc5-rg-snorm':{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:2},'bc6h-rgb-ufloat':{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'bc6h-rgb-float':{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'bc7-rgba-unorm':{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'bc7-rgba-unorm-srgb':{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'etc2-rgb8unorm':{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'etc2-rgb8unorm-srgb':{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'etc2-rgb8a1unorm':{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'etc2-rgb8a1unorm-srgb':{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'etc2-rgba8unorm':{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'etc2-rgba8unorm-srgb':{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'eac-r11unorm':{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!0,channels:1},'eac-r11snorm':{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!0,channels:1},'eac-rg11unorm':{bytesPerBlock:16,blockWidth:1,blockHeight:1,isCompressed:!0,channels:2},'eac-rg11snorm':{bytesPerBlock:16,blockWidth:1,blockHeight:1,isCompressed:!0,channels:2},'astc-4x4-unorm':{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'astc-4x4-unorm-srgb':{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},'astc-5x4-unorm':{bytesPerBlock:16,blockWidth:5,blockHeight:4,isCompressed:!0,channels:4},'astc-5x4-unorm-srgb':{bytesPerBlock:16,blockWidth:5,blockHeight:4,isCompressed:!0,channels:4},'astc-5x5-unorm':{bytesPerBlock:16,blockWidth:5,blockHeight:5,isCompressed:!0,channels:4},'astc-5x5-unorm-srgb':{bytesPerBlock:16,blockWidth:5,blockHeight:5,isCompressed:!0,channels:4},'astc-6x5-unorm':{bytesPerBlock:16,blockWidth:6,blockHeight:5,isCompressed:!0,channels:4},'astc-6x5-unorm-srgb':{bytesPerBlock:16,blockWidth:6,blockHeight:5,isCompressed:!0,channels:4},'astc-6x6-unorm':{bytesPerBlock:16,blockWidth:6,blockHeight:6,isCompressed:!0,channels:4},'astc-6x6-unorm-srgb':{bytesPerBlock:16,blockWidth:6,blockHeight:6,isCompressed:!0,channels:4},'astc-8x5-unorm':{bytesPerBlock:16,blockWidth:8,blockHeight:5,isCompressed:!0,channels:4},'astc-8x5-unorm-srgb':{bytesPerBlock:16,blockWidth:8,blockHeight:5,isCompressed:!0,channels:4},'astc-8x6-unorm':{bytesPerBlock:16,blockWidth:8,blockHeight:6,isCompressed:!0,channels:4},'astc-8x6-unorm-srgb':{bytesPerBlock:16,blockWidth:8,blockHeight:6,isCompressed:!0,channels:4},'astc-8x8-unorm':{bytesPerBlock:16,blockWidth:8,blockHeight:8,isCompressed:!0,channels:4},'astc-8x8-unorm-srgb':{bytesPerBlock:16,blockWidth:8,blockHeight:8,isCompressed:!0,channels:4},'astc-10x5-unorm':{bytesPerBlock:16,blockWidth:10,blockHeight:5,isCompressed:!0,channels:4},'astc-10x5-unorm-srgb':{bytesPerBlock:16,blockWidth:10,blockHeight:5,isCompressed:!0,channels:4},'astc-10x6-unorm':{bytesPerBlock:16,blockWidth:10,blockHeight:6,isCompressed:!0,channels:4},'astc-10x6-unorm-srgb':{bytesPerBlock:16,blockWidth:10,blockHeight:6,isCompressed:!0,channels:4},'astc-10x8-unorm':{bytesPerBlock:16,blockWidth:10,blockHeight:8,isCompressed:!0,channels:4},'astc-10x8-unorm-srgb':{bytesPerBlock:16,blockWidth:10,blockHeight:8,isCompressed:!0,channels:4},'astc-10x10-unorm':{bytesPerBlock:16,blockWidth:10,blockHeight:10,isCompressed:!0,channels:4},'astc-10x10-unorm-srgb':{bytesPerBlock:16,blockWidth:10,blockHeight:10,isCompressed:!0,channels:4},'astc-12x10-unorm':{bytesPerBlock:16,blockWidth:12,blockHeight:10,isCompressed:!0,channels:4},'astc-12x10-unorm-srgb':{bytesPerBlock:16,blockWidth:12,blockHeight:10,isCompressed:!0,channels:4},'astc-12x12-unorm':{bytesPerBlock:16,blockWidth:12,blockHeight:12,isCompressed:!0,channels:4},'astc-12x12-unorm-srgb':{bytesPerBlock:16,blockWidth:12,blockHeight:12,isCompressed:!0,channels:4}};class A{constructor(){this.id=A._id++,this.line=0}get isAstNode(){return!0}get astNodeType(){return''}search(e){e(this)}searchBlock(e,t){if(e){t(E.instance);for(const n of e)n instanceof Array?this.searchBlock(n,t):n.search(t);t($.instance)}}constEvaluate(e,t){throw new Error('Cannot evaluate node')}constEvaluateString(e){return this.constEvaluate(e).toString()}}A._id=0;class E extends A{}E.instance=new E;class $ extends A{}$.instance=new $;const L=new Set(['all','all','any','select','arrayLength','abs','acos','acosh','asin','asinh','atan','atanh','atan2','ceil','clamp','cos','cosh','countLeadingZeros','countOneBits','countTrailingZeros','cross','degrees','determinant','distance','dot','dot4U8Packed','dot4I8Packed','exp','exp2','extractBits','faceForward','firstLeadingBit','firstTrailingBit','floor','fma','fract','frexp','insertBits','inverseSqrt','ldexp','length','log','log2','max','min','mix','modf','normalize','pow','quantizeToF16','radians','reflect','refract','reverseBits','round','saturate','sign','sin','sinh','smoothStep','sqrt','step','tan','tanh','transpose','trunc','dpdx','dpdxCoarse','dpdxFine','dpdy','dpdyCoarse','dpdyFine','fwidth','fwidthCoarse','fwidthFine','textureDimensions','textureGather','textureGatherCompare','textureLoad','textureNumLayers','textureNumLevels','textureNumSamples','textureSample','textureSampleBias','textureSampleCompare','textureSampleCompareLevel','textureSampleGrad','textureSampleLevel','textureSampleBaseClampToEdge','textureStore','atomicLoad','atomicStore','atomicAdd','atomicSub','atomicMax','atomicMin','atomicAnd','atomicOr','atomicXor','atomicExchange','atomicCompareExchangeWeak','pack4x8snorm','pack4x8unorm','pack4xI8','pack4xU8','pack4x8Clamp','pack4xU8Clamp','pack2x16snorm','pack2x16unorm','pack2x16float','unpack4x8snorm','unpack4x8unorm','unpack4xI8','unpack4xU8','unpack2x16snorm','unpack2x16unorm','unpack2x16float','storageBarrier','textureBarrier','workgroupBarrier','workgroupUniformLoad','subgroupAdd','subgroupExclusiveAdd','subgroupInclusiveAdd','subgroupAll','subgroupAnd','subgroupAny','subgroupBallot','subgroupBroadcast','subgroupBroadcastFirst','subgroupElect','subgroupMax','subgroupMin','subgroupMul','subgroupExclusiveMul','subgroupInclusiveMul','subgroupOr','subgroupShuffle','subgroupShuffleDown','subgroupShuffleUp','subgroupShuffleXor','subgroupXor','quadBroadcast','quadSwapDiagonal','quadSwapX','quadSwapY']);class C extends A{constructor(){super()}}class D extends C{constructor(e,t,n,s,r,a){super(),this.calls=new Set,this.name=e,this.args=t,this.returnType=n,this.body=s,this.startLine=r,this.endLine=a}get astNodeType(){return'function'}search(e){if(this.attributes)for(const t of this.attributes)e(t);e(this);for(const t of this.args)e(t);this.searchBlock(this.body,e)}}class N extends C{constructor(e){super(),this.expression=e}get astNodeType(){return'staticAssert'}search(e){this.expression.search(e)}}class V extends C{constructor(e,t){super(),this.condition=e,this.body=t}get astNodeType(){return'while'}search(e){this.condition.search(e),this.searchBlock(this.body,e)}}class O extends C{constructor(e,t){super(),this.body=e,this.loopId=t}get astNodeType(){return'continuing'}search(e){this.searchBlock(this.body,e)}}class B extends C{constructor(e,t,n,s){super(),this.init=e,this.condition=t,this.increment=n,this.body=s}get astNodeType(){return'for'}search(e){var t,n,s;null===(t=this.init)||void 0===t||t.search(e),null===(n=this.condition)||void 0===n||n.search(e),null===(s=this.increment)||void 0===s||s.search(e),this.searchBlock(this.body,e)}}class F extends C{constructor(e,t,n,s,r){super(),this.attributes=null,this.name=e,this.type=t,this.storage=n,this.access=s,this.value=r}get astNodeType(){return'var'}search(e){var t;e(this),null===(t=this.value)||void 0===t||t.search(e)}}class M extends C{constructor(e,t,n){super(),this.attributes=null,this.name=e,this.type=t,this.value=n}get astNodeType(){return'override'}search(e){var t;null===(t=this.value)||void 0===t||t.search(e)}}class U extends C{constructor(e,t,n,s,r){super(),this.attributes=null,this.name=e,this.type=t,this.storage=n,this.access=s,this.value=r}get astNodeType(){return'let'}search(e){var t;e(this),null===(t=this.value)||void 0===t||t.search(e)}}class P extends C{constructor(e,t,n,s,r){super(),this.attributes=null,this.name=e,this.type=t,this.storage=n,this.access=s,this.value=r}get astNodeType(){return'const'}constEvaluate(e,t){return this.value.constEvaluate(e,t)}search(e){var t;e(this),null===(t=this.value)||void 0===t||t.search(e)}}var W,q,H,z;(e=>{e.increment='++',e.decrement='--'})(W||(W={})),(e=>{e.parse=function(t){const n=t;if('parse'==n)throw new Error('Invalid value for IncrementOperator');return e[n]}})(W||(W={}));class R extends C{constructor(e,t){super(),this.operator=e,this.variable=t}get astNodeType(){return'increment'}search(e){this.variable.search(e)}}(e=>{e.assign='=',e.addAssign='+=',e.subtractAssin='-=',e.multiplyAssign='*=',e.divideAssign='/=',e.moduloAssign='%=',e.andAssign='&=',e.orAssign='|=',e.xorAssign='^=',e.shiftLeftAssign='<<=',e.shiftRightAssign='>>='})(q||(q={})),(e=>{e.parse=function(e){const t=e;if('parse'==t)throw new Error('Invalid value for AssignOperator');return t}})(q||(q={}));class G extends C{constructor(e,t,n){super(),this.operator=e,this.variable=t,this.value=n}get astNodeType(){return'assign'}search(e){this.variable.search(e),this.value.search(e)}}class X extends C{constructor(e,t){super(),this.name=e,this.args=t}get astNodeType(){return'call'}isBuiltin(){return L.has(this.name)}search(e){for(const t of this.args)t.search(e);e(this)}}class j extends C{constructor(e,t){super(),this.body=e,this.continuing=t}get astNodeType(){return'loop'}search(e){var t;this.searchBlock(this.body,e),null===(t=this.continuing)||void 0===t||t.search(e)}}class Z extends C{constructor(e,t){super(),this.condition=e,this.cases=t}get astNodeType(){return'switch'}search(e){e(this);for(const t of this.cases)t.search(e)}}class Q extends C{constructor(e,t,n,s){super(),this.condition=e,this.body=t,this.elseif=n,this.else=s}get astNodeType(){return'if'}search(e){this.condition.search(e),this.searchBlock(this.body,e),this.searchBlock(this.elseif,e),this.searchBlock(this.else,e)}}class Y extends C{constructor(e){super(),this.value=e}get astNodeType(){return'return'}search(e){var t;null===(t=this.value)||void 0===t||t.search(e)}}class K extends C{constructor(e){super(),this.name=e}get astNodeType(){return'enable'}}class J extends C{constructor(e){super(),this.extensions=e}get astNodeType(){return'requires'}}class ee extends C{constructor(e,t){super(),this.severity=e,this.rule=t}get astNodeType(){return'diagnostic'}}class te extends C{constructor(e,t){super(),this.name=e,this.type=t}get astNodeType(){return'alias'}}class ne extends C{constructor(){super()}get astNodeType(){return'discard'}}class se extends C{constructor(){super(),this.condition=null,this.loopId=-1}get astNodeType(){return'break'}}class re extends C{constructor(){super(),this.loopId=-1}get astNodeType(){return'continue'}}class ae extends C{constructor(e){super(),this.attributes=null,this.name=e}get astNodeType(){return'type'}get isStruct(){return!1}get isArray(){return!1}static maxFormatType(e){let t=e[0];if('f32'===t.name)return t;for(let n=1;n<e.length;++n){const s=ae._priority.get(t.name);ae._priority.get(e[n].name)<s&&(t=e[n])}return'x32'===t.name?ae.i32:t}getTypeName(){return this.name}}ae.x32=new ae('x32'),ae.f32=new ae('f32'),ae.i32=new ae('i32'),ae.u32=new ae('u32'),ae.f16=new ae('f16'),ae.bool=new ae('bool'),ae.void=new ae('void'),ae._priority=new Map([['f32',0],['f16',1],['u32',2],['i32',3],['x32',3]]);class ie extends ae{constructor(e){super(e)}}class oe extends ae{constructor(e,t,n,s){super(e),this.members=t,this.startLine=n,this.endLine=s}get astNodeType(){return'struct'}get isStruct(){return!0}getMemberIndex(e){for(let t=0;t<this.members.length;t++)if(this.members[t].name==e)return t;return-1}search(e){for(const t of this.members)e(t)}}class ce extends ae{constructor(e,t,n){super(e),this.format=t,this.access=n}get astNodeType(){return'template'}getTypeName(){let e=this.name;if(null!==this.format){if('vec2'===e||'vec3'===e||'vec4'===e||'mat2x2'===e||'mat2x3'===e||'mat2x4'===e||'mat3x2'===e||'mat3x3'===e||'mat3x4'===e||'mat4x2'===e||'mat4x3'===e||'mat4x4'===e){if('f32'===this.format.name)return e+='f',e;if('i32'===this.format.name)return e+='i',e;if('u32'===this.format.name)return e+='u',e;if('bool'===this.format.name)return e+='b',e;if('f16'===this.format.name)return e+='h',e}e+=`<${this.format.name}>`}else if('vec2'===e||'vec3'===e||'vec4'===e)return e;return e}}ce.vec2f=new ce('vec2',ae.f32,null),ce.vec3f=new ce('vec3',ae.f32,null),ce.vec4f=new ce('vec4',ae.f32,null),ce.vec2i=new ce('vec2',ae.i32,null),ce.vec3i=new ce('vec3',ae.i32,null),ce.vec4i=new ce('vec4',ae.i32,null),ce.vec2u=new ce('vec2',ae.u32,null),ce.vec3u=new ce('vec3',ae.u32,null),ce.vec4u=new ce('vec4',ae.u32,null),ce.vec2h=new ce('vec2',ae.f16,null),ce.vec3h=new ce('vec3',ae.f16,null),ce.vec4h=new ce('vec4',ae.f16,null),ce.vec2b=new ce('vec2',ae.bool,null),ce.vec3b=new ce('vec3',ae.bool,null),ce.vec4b=new ce('vec4',ae.bool,null),ce.mat2x2f=new ce('mat2x2',ae.f32,null),ce.mat2x3f=new ce('mat2x3',ae.f32,null),ce.mat2x4f=new ce('mat2x4',ae.f32,null),ce.mat3x2f=new ce('mat3x2',ae.f32,null),ce.mat3x3f=new ce('mat3x3',ae.f32,null),ce.mat3x4f=new ce('mat3x4',ae.f32,null),ce.mat4x2f=new ce('mat4x2',ae.f32,null),ce.mat4x3f=new ce('mat4x3',ae.f32,null),ce.mat4x4f=new ce('mat4x4',ae.f32,null),ce.mat2x2h=new ce('mat2x2',ae.f16,null),ce.mat2x3h=new ce('mat2x3',ae.f16,null),ce.mat2x4h=new ce('mat2x4',ae.f16,null),ce.mat3x2h=new ce('mat3x2',ae.f16,null),ce.mat3x3h=new ce('mat3x3',ae.f16,null),ce.mat3x4h=new ce('mat3x4',ae.f16,null),ce.mat4x2h=new ce('mat4x2',ae.f16,null),ce.mat4x3h=new ce('mat4x3',ae.f16,null),ce.mat4x4h=new ce('mat4x4',ae.f16,null),ce.mat2x2i=new ce('mat2x2',ae.i32,null),ce.mat2x3i=new ce('mat2x3',ae.i32,null),ce.mat2x4i=new ce('mat2x4',ae.i32,null),ce.mat3x2i=new ce('mat3x2',ae.i32,null),ce.mat3x3i=new ce('mat3x3',ae.i32,null),ce.mat3x4i=new ce('mat3x4',ae.i32,null),ce.mat4x2i=new ce('mat4x2',ae.i32,null),ce.mat4x3i=new ce('mat4x3',ae.i32,null),ce.mat4x4i=new ce('mat4x4',ae.i32,null),ce.mat2x2u=new ce('mat2x2',ae.u32,null),ce.mat2x3u=new ce('mat2x3',ae.u32,null),ce.mat2x4u=new ce('mat2x4',ae.u32,null),ce.mat3x2u=new ce('mat3x2',ae.u32,null),ce.mat3x3u=new ce('mat3x3',ae.u32,null),ce.mat3x4u=new ce('mat3x4',ae.u32,null),ce.mat4x2u=new ce('mat4x2',ae.u32,null),ce.mat4x3u=new ce('mat4x3',ae.u32,null),ce.mat4x4u=new ce('mat4x4',ae.u32,null);class le extends ae{constructor(e,t,n,s){super(e),this.storage=t,this.type=n,this.access=s}get astNodeType(){return'pointer'}}class ue extends ae{constructor(e,t,n,s){super(e),this.attributes=t,this.format=n,this.count=s}get astNodeType(){return'array'}get isArray(){return!0}}class he extends ae{constructor(e,t,n){super(e),this.format=t,this.access=n}get astNodeType(){return'sampler'}}class fe extends A{constructor(){super(),this.postfix=null}}class pe extends fe{constructor(e){super(),this.value=e}get astNodeType(){return'stringExpr'}toString(){return this.value}constEvaluateString(){return this.value}}class de extends fe{constructor(e,t){super(),this.type=e,this.args=t}get astNodeType(){return'createExpr'}search(e){if(e(this),this.args)for(const t of this.args)t.search(e)}constEvaluate(e,t){return t&&(t[0]=this.type),e.evalExpression(this,e.context)}}class me extends fe{constructor(e,t){super(),this.cachedReturnValue=null,this.name=e,this.args=t}get astNodeType(){return'callExpr'}setCachedReturnValue(e){this.cachedReturnValue=e}get isBuiltin(){return L.has(this.name)}constEvaluate(e,t){return e.evalExpression(this,e.context)}search(e){for(const t of this.args)t.search(e);e(this)}}class ge extends fe{constructor(e){super(),this.name=e}get astNodeType(){return'varExpr'}search(e){e(this),this.postfix&&this.postfix.search(e)}constEvaluate(e,t){return e.evalExpression(this,e.context)}}class _e extends fe{constructor(e,t){super(),this.name=e,this.initializer=t}get astNodeType(){return'constExpr'}constEvaluate(e,t){if(this.initializer){const t=e.evalExpression(this.initializer,e.context);return null!==t&&this.postfix?t.getSubData(e,this.postfix,e.context):t}return null}search(e){this.initializer.search(e)}}class xe extends fe{constructor(e,t){super(),this.value=e,this.type=t}get astNodeType(){return'literalExpr'}constEvaluate(e,t){return void 0!==t&&(t[0]=this.type),this.value}get isScalar(){return this.value instanceof Be}get isVector(){return this.value instanceof Me||this.value instanceof Ue}get scalarValue(){return this.value instanceof Be?this.value.value:(console.error('Value is not scalar.'),0)}get vectorValue(){return this.value instanceof Me||this.value instanceof Ue?this.value.data:(console.error('Value is not a vector or matrix.'),new Float32Array(0))}}class ye extends fe{constructor(e,t){super(),this.type=e,this.value=t}get astNodeType(){return'bitcastExpr'}search(e){this.value.search(e)}}class be extends fe{constructor(e,t){super(),this.type=e,this.args=t}get astNodeType(){return'typecastExpr'}constEvaluate(e,t){return e.evalExpression(this,e.context)}search(e){this.searchBlock(this.args,e)}}class ve extends fe{constructor(e){super(),this.index=e}search(e){this.index.search(e)}}class we extends fe{constructor(){super()}}class ke extends we{constructor(e,t){super(),this.operator=e,this.right=t}get astNodeType(){return'unaryOp'}constEvaluate(e,t){return e.evalExpression(this,e.context)}search(e){this.right.search(e)}}class Ie extends we{constructor(e,t,n){super(),this.operator=e,this.left=t,this.right=n}get astNodeType(){return'binaryOp'}_getPromotedType(e,t){return e.name===t.name?e:'f32'===e.name||'f32'===t.name?ae.f32:'u32'===e.name||'u32'===t.name?ae.u32:ae.i32}constEvaluate(e,t){return e.evalExpression(this,e.context)}search(e){this.left.search(e),this.right.search(e)}}class Te extends A{constructor(e){super(),this.body=e}search(e){e(this),this.searchBlock(this.body,e)}}class Se extends fe{constructor(){super()}get astNodeType(){return'default'}}class Ae extends Te{constructor(e,t){super(t),this.selectors=e}get astNodeType(){return'case'}search(e){this.searchBlock(this.body,e)}}class Ee extends Te{constructor(e){super(e)}get astNodeType(){return'default'}search(e){this.searchBlock(this.body,e)}}class $e extends A{constructor(e,t,n){super(),this.name=e,this.type=t,this.attributes=n}get astNodeType(){return'argument'}}class Le extends A{constructor(e,t){super(),this.condition=e,this.body=t}get astNodeType(){return'elseif'}search(e){this.condition.search(e),this.searchBlock(this.body,e)}}class Ce extends A{constructor(e,t,n){super(),this.name=e,this.type=t,this.attributes=n}get astNodeType(){return'member'}}class De extends A{constructor(e,t){super(),this.name=e,this.value=t}get astNodeType(){return'attribute'}}class Ne{constructor(e,t){this.parent=null,this.typeInfo=e,this.parent=t,this.id=Ne._id++}clone(){throw`Clone: Not implemented for ${this.constructor.name}`}setDataValue(e,t,n,s){console.error(`SetDataValue: Not implemented for ${this.constructor.name}`)}getSubData(e,t,n){return console.error(`GetDataValue: Not implemented for ${this.constructor.name}`),null}toString(){return`<${this.typeInfo.getTypeName()}>`}}Ne._id=0;class Ve extends Ne{constructor(){super(new e('void',null),null)}toString(){return'void'}}Ve.void=new Ve;class Oe extends Ne{constructor(e){super(new r('pointer',e.typeInfo,null),null),this.reference=e}clone(){return this}setDataValue(e,t,n,s){this.reference.setDataValue(e,t,n,s)}getSubData(e,t,n){return t?this.reference.getSubData(e,t,n):this}toString(){return`&${this.reference.toString()}`}}class Be extends Ne{constructor(e,t,n=null){super(t,n),e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array?this.data=e:'x32'===this.typeInfo.name?e-Math.floor(e)!==0?this.data=new Float32Array([e]):this.data=e>=0?new Uint32Array([e]):new Int32Array([e]):'i32'===this.typeInfo.name||'bool'===this.typeInfo.name?this.data=new Int32Array([e]):'u32'===this.typeInfo.name?this.data=new Uint32Array([e]):'f32'===this.typeInfo.name||'f16'===this.typeInfo.name?this.data=new Float32Array([e]):console.error('ScalarData2: Invalid type',t)}clone(){if(this.data instanceof Float32Array)return new Be(new Float32Array(this.data),this.typeInfo,null);if(this.data instanceof Int32Array)return new Be(new Int32Array(this.data),this.typeInfo,null);if(this.data instanceof Uint32Array)return new Be(new Uint32Array(this.data),this.typeInfo,null);throw'ScalarData: Invalid data type'}get value(){return this.data[0]}set value(e){this.data[0]=e}setDataValue(e,t,n,s){if(n)return void console.error('SetDataValue: Scalar data does not support postfix',n);if(!(t instanceof Be))return void console.error('SetDataValue: Invalid value',t);let r=t.data[0];'i32'===this.typeInfo.name||'u32'===this.typeInfo.name?r=Math.floor(r):'bool'===this.typeInfo.name&&(r=r?1:0),this.data[0]=r}getSubData(e,t,n){return t?(console.error('getSubData: Scalar data does not support postfix',t),null):this}toString(){return`${this.value}`}}function Fe(e,t,n){const s=t.length;return 2===s?'f32'===n?new Me(new Float32Array(t),e.getTypeInfo('vec2f')):'i32'===n||'bool'===n?new Me(new Int32Array(t),e.getTypeInfo('vec2i')):'u32'===n?new Me(new Uint32Array(t),e.getTypeInfo('vec2u')):'f16'===n?new Me(new Float32Array(t),e.getTypeInfo('vec2h')):(console.error(`getSubData: Unknown format ${n}`),null):3===s?'f32'===n?new Me(new Float32Array(t),e.getTypeInfo('vec3f')):'i32'===n||'bool'===n?new Me(new Int32Array(t),e.getTypeInfo('vec3i')):'u32'===n?new Me(new Uint32Array(t),e.getTypeInfo('vec3u')):'f16'===n?new Me(new Float32Array(t),e.getTypeInfo('vec3h')):(console.error(`getSubData: Unknown format ${n}`),null):4===s?'f32'===n?new Me(new Float32Array(t),e.getTypeInfo('vec4f')):'i32'===n||'bool'===n?new Me(new Int32Array(t),e.getTypeInfo('vec4i')):'u32'===n?new Me(new Uint32Array(t),e.getTypeInfo('vec4u')):'f16'===n?new Me(new Float32Array(t),e.getTypeInfo('vec4h')):(console.error(`getSubData: Unknown format ${n}`),null):(console.error(`getSubData: Invalid vector size ${t.length}`),null)}class Me extends Ne{constructor(e,t,n=null){if(super(t,n),e instanceof Float32Array||e instanceof Uint32Array||e instanceof Int32Array)this.data=e;else{const t=this.typeInfo.name;'vec2f'===t||'vec3f'===t||'vec4f'===t?this.data=new Float32Array(e):'vec2i'===t||'vec3i'===t||'vec4i'===t?this.data=new Int32Array(e):'vec2u'===t||'vec3u'===t||'vec4u'===t?this.data=new Uint32Array(e):'vec2h'===t||'vec3h'===t||'vec4h'===t?this.data=new Float32Array(e):'vec2b'===t||'vec3b'===t||'vec4b'===t?this.data=new Int32Array(e):'vec2'===t||'vec3'===t||'vec4'===t?this.data=new Float32Array(e):console.error(`VectorData: Invalid type ${t}`)}}clone(){if(this.data instanceof Float32Array)return new Me(new Float32Array(this.data),this.typeInfo,null);if(this.data instanceof Int32Array)return new Me(new Int32Array(this.data),this.typeInfo,null);if(this.data instanceof Uint32Array)return new Me(new Uint32Array(this.data),this.typeInfo,null);throw'VectorData: Invalid data type'}setDataValue(e,t,n,s){n instanceof pe?console.error('TODO: Set vector postfix'):t instanceof Me?this.data=t.data:console.error('SetDataValue: Invalid value',t)}getSubData(e,t,n){if(null===t)return this;let s=e.getTypeInfo('f32');if(this.typeInfo instanceof a)s=this.typeInfo.format||s;else{const t=this.typeInfo.name;'vec2f'===t||'vec3f'===t||'vec4f'===t?s=e.getTypeInfo('f32'):'vec2i'===t||'vec3i'===t||'vec4i'===t?s=e.getTypeInfo('i32'):'vec2b'===t||'vec3b'===t||'vec4b'===t?s=e.getTypeInfo('bool'):'vec2u'===t||'vec3u'===t||'vec4u'===t?s=e.getTypeInfo('u32'):'vec2h'===t||'vec3h'===t||'vec4h'===t?s=e.getTypeInfo('f16'):console.error(`GetSubData: Unknown type ${t}`)}let r=this;for(;null!==t&&null!==r;){if(t instanceof ve){const a=t.index;let i=-1;if(a instanceof xe){if(!(a.value instanceof Be))return console.error(`GetSubData: Invalid array index ${a.value}`),null;i=a.value.value}else{const t=e.evalExpression(a,n);if(!(t instanceof Be))return console.error('GetSubData: Unknown index type',a),null;i=t.value}if(i<0||i>=r.data.length)return console.error('GetSubData: Index out of range',i),null;if(r.data instanceof Float32Array){const e=new Float32Array(r.data.buffer,r.data.byteOffset+4*i,1);return new Be(e,s)}if(r.data instanceof Int32Array){const e=new Int32Array(r.data.buffer,r.data.byteOffset+4*i,1);return new Be(e,s)}if(r.data instanceof Uint32Array){const e=new Uint32Array(r.data.buffer,r.data.byteOffset+4*i,1);return new Be(e,s)}throw'GetSubData: Invalid data type'}if(!(t instanceof pe))return console.error('GetSubData: Unknown postfix',t),null;{const n=t.value.toLowerCase();if(1===n.length){let e=0;if('x'===n||'r'===n)e=0;else if('y'===n||'g'===n)e=1;else if('z'===n||'b'===n)e=2;else{if('w'!==n&&'a'!==n)return console.error(`GetSubData: Unknown member ${n}`),null;e=3}if(this.data instanceof Float32Array){let t=new Float32Array(this.data.buffer,this.data.byteOffset+4*e,1);return new Be(t,s,this)}if(this.data instanceof Int32Array){let t=new Int32Array(this.data.buffer,this.data.byteOffset+4*e,1);return new Be(t,s,this)}if(this.data instanceof Uint32Array){let t=new Uint32Array(this.data.buffer,this.data.byteOffset+4*e,1);return new Be(t,s,this)}}const a=[];for(const e of n)'x'===e||'r'===e?a.push(this.data[0]):'y'===e||'g'===e?a.push(this.data[1]):'z'===e||'b'===e?a.push(this.data[2]):'w'===e||'a'===e?a.push(this.data[3]):console.error(`GetDataValue: Unknown member ${e}`);r=Fe(e,a,s.name)}t=t.postfix}return r}toString(){let e=`${this.data[0]}`;for(let t=1;t<this.data.length;++t)e+=`, ${this.data[t]}`;return e}}class Ue extends Ne{constructor(e,t,n=null){super(t,n),e instanceof Float32Array?this.data=e:this.data=new Float32Array(e)}clone(){return new Ue(new Float32Array(this.data),this.typeInfo,null)}setDataValue(e,t,n,s){n instanceof pe?console.error('TODO: Set matrix postfix'):t instanceof Ue?this.data=t.data:console.error('SetDataValue: Invalid value',t)}getSubData(e,t,n){if(null===t)return this;const s=this.typeInfo.name;if(e.getTypeInfo('f32'),this.typeInfo instanceof a)this.typeInfo.format;else if(s.endsWith('f'))e.getTypeInfo('f32');else if(s.endsWith('i'))e.getTypeInfo('i32');else if(s.endsWith('u'))e.getTypeInfo('u32');else{if(!s.endsWith('h'))return console.error(`GetDataValue: Unknown type ${s}`),null;e.getTypeInfo('f16')}if(t instanceof ve){const r=t.index;let a=-1;if(r instanceof xe){if(!(r.value instanceof Be))return console.error(`GetDataValue: Invalid array index ${r.value}`),null;a=r.value.value}else{const t=e.evalExpression(r,n);if(!(t instanceof Be))return console.error('GetDataValue: Unknown index type',r),null;a=t.value}if(a<0||a>=this.data.length)return console.error('GetDataValue: Index out of range',a),null;const i=s.endsWith('h')?'h':'f';let o;if('mat2x2'===s||'mat2x2f'===s||'mat2x2h'===s||'mat3x2'===s||'mat3x2f'===s||'mat3x2h'===s||'mat4x2'===s||'mat4x2f'===s||'mat4x2h'===s)o=new Me(new Float32Array(this.data.buffer,this.data.byteOffset+2*a*4,2),e.getTypeInfo(`vec2${i}`));else if('mat2x3'===s||'mat2x3f'===s||'mat2x3h'===s||'mat3x3'===s||'mat3x3f'===s||'mat3x3h'===s||'mat4x3'===s||'mat4x3f'===s||'mat4x3h'===s)o=new Me(new Float32Array(this.data.buffer,this.data.byteOffset+3*a*4,3),e.getTypeInfo(`vec3${i}`));else{if('mat2x4'!==s&&'mat2x4f'!==s&&'mat2x4h'!==s&&'mat3x4'!==s&&'mat3x4f'!==s&&'mat3x4h'!==s&&'mat4x4'!==s&&'mat4x4f'!==s&&'mat4x4h'!==s)return console.error(`GetDataValue: Unknown type ${s}`),null;o=new Me(new Float32Array(this.data.buffer,this.data.byteOffset+4*a*4,4),e.getTypeInfo(`vec4${i}`))}return t.postfix?o.getSubData(e,t.postfix,n):o}return console.error('GetDataValue: Invalid postfix',t),null}toString(){let e=`${this.data[0]}`;for(let t=1;t<this.data.length;++t)e+=`, ${this.data[t]}`;return e}}class Pe extends Ne{constructor(e,t,n=0,s=null){super(t,s),this.buffer=e instanceof ArrayBuffer?e:e.buffer,this.offset=n}clone(){const e=new Uint8Array(new Uint8Array(this.buffer,this.offset,this.typeInfo.size));return new Pe(e.buffer,this.typeInfo,0,null)}setDataValue(t,r,a,i){if(null===r)return void console.log('setDataValue: NULL data.');let o=this.offset,c=this.typeInfo;for(;a;){if(a instanceof ve)if(c instanceof s){const e=a.index;if(e instanceof xe){if(!(e.value instanceof Be))return void console.error(`SetDataValue: Invalid index type ${e.value}`);o+=e.value.value*c.stride}else{const n=t.evalExpression(e,i);if(!(n instanceof Be))return void console.error('SetDataValue: Unknown index type',e);o+=n.value*c.stride}c=c.format}else console.error(`SetDataValue: Type ${c.getTypeName()} is not an array`);else{if(!(a instanceof pe))return void console.error('SetDataValue: Unknown postfix type',a);{const t=a.value;if(c instanceof n){let e=!1;for(const n of c.members)if(n.name===t){o+=n.offset,c=n.type,e=!0;break}if(!e)return void console.error(`SetDataValue: Member ${t} not found`)}else if(c instanceof e){const e=c.getTypeName();let n=0;if('x'===t||'r'===t)n=0;else if('y'===t||'g'===t)n=1;else if('z'===t||'b'===t)n=2;else{if('w'!==t&&'a'!==t)return void console.error(`SetDataValue: Unknown member ${t}`);n=3}if(!(r instanceof Be))return void console.error('SetDataValue: Invalid value',r);const s=r.value;return'vec2f'===e?void(new Float32Array(this.buffer,o,2)[n]=s):'vec3f'===e?void(new Float32Array(this.buffer,o,3)[n]=s):'vec4f'===e?void(new Float32Array(this.buffer,o,4)[n]=s):'vec2i'===e?void(new Int32Array(this.buffer,o,2)[n]=s):'vec3i'===e?void(new Int32Array(this.buffer,o,3)[n]=s):'vec4i'===e?void(new Int32Array(this.buffer,o,4)[n]=s):'vec2u'===e?void(new Uint32Array(this.buffer,o,2)[n]=s):'vec3u'===e?void(new Uint32Array(this.buffer,o,3)[n]=s):'vec4u'===e?void(new Uint32Array(this.buffer,o,4)[n]=s):void console.error(`SetDataValue: Type ${e} is not a struct`)}}}a=a.postfix}this.setData(t,r,c,o,i)}setData(e,t,n,s,r){const a=n.getTypeName();if('f32'!==a&&'f16'!==a)if('i32'!==a&&'atomic<i32>'!==a&&'x32'!==a)if('u32'!==a&&'atomic<u32>'!==a)if('bool'!==a){if('vec2f'===a||'vec2h'===a){const e=new Float32Array(this.buffer,s,2);return void(t instanceof Me?(e[0]=t.data[0],e[1]=t.data[1]):(e[0]=t[0],e[1]=t[1]))}if('vec3f'===a||'vec3h'===a){const e=new Float32Array(this.buffer,s,3);return void(t instanceof Me?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2]):(e[0]=t[0],e[1]=t[1],e[2]=t[2]))}if('vec4f'===a||'vec4h'===a){const e=new Float32Array(this.buffer,s,4);return void(t instanceof Me?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2],e[3]=t.data[3]):(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3]))}if('vec2i'===a){const e=new Int32Array(this.buffer,s,2);return void(t instanceof Me?(e[0]=t.data[0],e[1]=t.data[1]):(e[0]=t[0],e[1]=t[1]))}if('vec3i'===a){const e=new Int32Array(this.buffer,s,3);return void(t instanceof Me?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2]):(e[0]=t[0],e[1]=t[1],e[2]=t[2]))}if('vec4i'===a){const e=new Int32Array(this.buffer,s,4);return void(t instanceof Me?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2],e[3]=t.data[3]):(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3]))}if('vec2u'===a){const e=new Uint32Array(this.buffer,s,2);return void(t instanceof Me?(e[0]=t.data[0],e[1]=t.data[1]):(e[0]=t[0],e[1]=t[1]))}if('vec3u'===a){const e=new Uint32Array(this.buffer,s,3);return void(t instanceof Me?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2]):(e[0]=t[0],e[1]=t[1],e[2]=t[2]))}if('vec4u'===a){const e=new Uint32Array(this.buffer,s,4);return void(t instanceof Me?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2],e[3]=t.data[3]):(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3]))}if('vec2b'===a){const e=new Uint32Array(this.buffer,s,2);return void(t instanceof Me?(e[0]=t.data[0],e[1]=t.data[1]):(e[0]=t[0],e[1]=t[1]))}if('vec3b'===a){const e=new Uint32Array(this.buffer,s,3);return void(t instanceof Me?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2]):(e[0]=t[0],e[1]=t[1],e[2]=t[2]))}if('vec4b'===a){const e=new Uint32Array(this.buffer,s,4);return void(t instanceof Me?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2],e[3]=t.data[3]):(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3]))}if('mat2x2f'===a||'mat2x2h'===a){const e=new Float32Array(this.buffer,s,4);return void(t instanceof Ue?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2],e[3]=t.data[3]):(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3]))}if('mat2x3f'===a||'mat2x3h'===a){const e=new Float32Array(this.buffer,s,6);return void(t instanceof Ue?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2],e[3]=t.data[3],e[4]=t.data[4],e[5]=t.data[5]):(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5]))}if('mat2x4f'===a||'mat2x4h'===a){const e=new Float32Array(this.buffer,s,8);return void(t instanceof Ue?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2],e[3]=t.data[3],e[4]=t.data[4],e[5]=t.data[5],e[6]=t.data[6],e[7]=t.data[7]):(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7]))}if('mat3x2f'===a||'mat3x2h'===a){const e=new Float32Array(this.buffer,s,6);return void(t instanceof Ue?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2],e[3]=t.data[3],e[4]=t.data[4],e[5]=t.data[5]):(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5]))}if('mat3x3f'===a||'mat3x3h'===a){const e=new Float32Array(this.buffer,s,9);return void(t instanceof Ue?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2],e[3]=t.data[3],e[4]=t.data[4],e[5]=t.data[5],e[6]=t.data[6],e[7]=t.data[7],e[8]=t.data[8]):(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8]))}if('mat3x4f'===a||'mat3x4h'===a){const e=new Float32Array(this.buffer,s,12);return void(t instanceof Ue?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2],e[3]=t.data[3],e[4]=t.data[4],e[5]=t.data[5],e[6]=t.data[6],e[7]=t.data[7],e[8]=t.data[8],e[9]=t.data[9],e[10]=t.data[10],e[11]=t.data[11]):(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11]))}if('mat4x2f'===a||'mat4x2h'===a){const e=new Float32Array(this.buffer,s,8);return void(t instanceof Ue?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2],e[3]=t.data[3],e[4]=t.data[4],e[5]=t.data[5],e[6]=t.data[6],e[7]=t.data[7]):(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7]))}if('mat4x3f'===a||'mat4x3h'===a){const e=new Float32Array(this.buffer,s,12);return void(t instanceof Ue?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2],e[3]=t.data[3],e[4]=t.data[4],e[5]=t.data[5],e[6]=t.data[6],e[7]=t.data[7],e[8]=t.data[8],e[9]=t.data[9],e[10]=t.data[10],e[11]=t.data[11]):(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11]))}if('mat4x4f'===a||'mat4x4h'===a){const e=new Float32Array(this.buffer,s,16);return void(t instanceof Ue?(e[0]=t.data[0],e[1]=t.data[1],e[2]=t.data[2],e[3]=t.data[3],e[4]=t.data[4],e[5]=t.data[5],e[6]=t.data[6],e[7]=t.data[7],e[8]=t.data[8],e[9]=t.data[9],e[10]=t.data[10],e[11]=t.data[11],e[12]=t.data[12],e[13]=t.data[13],e[14]=t.data[14],e[15]=t.data[15]):(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]))}if(t instanceof Pe){if(n===t.typeInfo){return void new Uint8Array(this.buffer,s,t.buffer.byteLength).set(new Uint8Array(t.buffer))}console.error('SetDataValue: Type mismatch',a,t.typeInfo.getTypeName())}else console.error(`SetData: Unknown type ${a}`)}else t instanceof Be&&(new Int32Array(this.buffer,s,1)[0]=t.value);else t instanceof Be&&(new Uint32Array(this.buffer,s,1)[0]=t.value);else t instanceof Be&&(new Int32Array(this.buffer,s,1)[0]=t.value);else t instanceof Be&&(new Float32Array(this.buffer,s,1)[0]=t.value)}getSubData(t,r,i){var o,c,l;if(null===r)return this;let u=this.offset,h=this.typeInfo;for(;r;){if(r instanceof ve){const e=r.index,n=e instanceof fe?t.evalExpression(e,i):e;let a=0;if(n instanceof Be?a=n.value:'number'==typeof n?a=n:console.error('GetDataValue: Invalid index type',e),h instanceof s)u+=a*h.stride,h=h.format;else{const e=h.getTypeName();'mat4x4'===e||'mat4x4f'===e||'mat4x4h'===e?(u+=16*a,h=t.getTypeInfo('vec4f')):console.error(`getDataValue: Type ${h.getTypeName()} is not an array`)}}else{if(!(r instanceof pe))return console.error('GetDataValue: Unknown postfix type',r),null;{const s=r.value;if(h instanceof n){let e=!1;for(const t of h.members)if(t.name===s){u+=t.offset,h=t.type,e=!0;break}if(!e)return console.error(`GetDataValue: Member ${s} not found`),null}else if(h instanceof e){const e=h.getTypeName();if('vec2f'===e||'vec3f'===e||'vec4f'===e||'vec2i'===e||'vec3i'===e||'vec4i'===e||'vec2u'===e||'vec3u'===e||'vec4u'===e||'vec2b'===e||'vec3b'===e||'vec4b'===e||'vec2h'===e||'vec3h'===e||'vec4h'===e||'vec2'===e||'vec3'===e||'vec4'===e){if(s.length>0&&s.length<5){let n='f';const r=[];for(let a=0;a<s.length;++a){const i=s[a].toLowerCase();let o=0;if('x'===i||'r'===i)o=0;else if('y'===i||'g'===i)o=1;else if('z'===i||'b'===i)o=2;else{if('w'!==i&&'a'!==i)return console.error(`Unknown member ${s}`),null;o=3}if(1===s.length){if(e.endsWith('f'))return this.buffer.byteLength<u+4*o+4?(console.log('Insufficient buffer data'),null):new Be(new Float32Array(this.buffer,u+4*o,1),t.getTypeInfo('f32'),this);if(e.endsWith('h'))return new Be(new Float32Array(this.buffer,u+4*o,1),t.getTypeInfo('f16'),this);if(e.endsWith('i'))return new Be(new Int32Array(this.buffer,u+4*o,1),t.getTypeInfo('i32'),this);if(e.endsWith('b'))return new Be(new Int32Array(this.buffer,u+4*o,1),t.getTypeInfo('bool'),this);if(e.endsWith('u'))return new Be(new Uint32Array(this.buffer,u+4*o,1),t.getTypeInfo('i32'),this)}if('vec2f'===e)r.push(new Float32Array(this.buffer,u,2)[o]);else if('vec3f'===e){if(u+12>=this.buffer.byteLength)return console.log('Insufficient buffer data'),null;const e=new Float32Array(this.buffer,u,3);r.push(e[o])}else if('vec4f'===e)r.push(new Float32Array(this.buffer,u,4)[o]);else if('vec2i'===e)n='i',r.push(new Int32Array(this.buffer,u,2)[o]);else if('vec3i'===e)n='i',r.push(new Int32Array(this.buffer,u,3)[o]);else if('vec4i'===e)n='i',r.push(new Int32Array(this.buffer,u,4)[o]);else if('vec2u'===e){n='u';const e=new Uint32Array(this.buffer,u,2);r.push(e[o])}else'vec3u'===e?(n='u',r.push(new Uint32Array(this.buffer,u,3)[o])):'vec4u'===e&&(n='u',r.push(new Uint32Array(this.buffer,u,4)[o]))}return 2===r.length?h=t.getTypeInfo(`vec2${n}`):3===r.length?h=t.getTypeInfo(`vec3${n}`):4===r.length?h=t.getTypeInfo(`vec4${n}`):console.error(`GetDataValue: Invalid vector length ${r.length}`),new Me(r,h,null)}return console.error(`GetDataValue: Unknown member ${s}`),null}return console.error(`GetDataValue: Type ${e} is not a struct`),null}}}r=r.postfix}const f=h.getTypeName();return'f32'===f?new Be(new Float32Array(this.buffer,u,1),h,this):'i32'===f?new Be(new Int32Array(this.buffer,u,1),h,this):'u32'===f?new Be(new Uint32Array(this.buffer,u,1),h,this):'vec2f'===f?new Me(new Float32Array(this.buffer,u,2),h,this):'vec3f'===f?new Me(new Float32Array(this.buffer,u,3),h,this):'vec4f'===f?new Me(new Float32Array(this.buffer,u,4),h,this):'vec2i'===f?new Me(new Int32Array(this.buffer,u,2),h,this):'vec3i'===f?new Me(new Int32Array(this.buffer,u,3),h,this):'vec4i'===f?new Me(new Int32Array(this.buffer,u,4),h,this):'vec2u'===f?new Me(new Uint32Array(this.buffer,u,2),h,this):'vec3u'===f?new Me(new Uint32Array(this.buffer,u,3),h,this):'vec4u'===f?new Me(new Uint32Array(this.buffer,u,4),h,this):h instanceof a&&'atomic'===h.name?'u32'===(null===(o=h.format)||void 0===o?void 0:o.name)?new Be(new Uint32Array(this.buffer,u,1)[0],h.format,this):'i32'===(null===(c=h.format)||void 0===c?void 0:c.name)?new Be(new Int32Array(this.buffer,u,1)[0],h.format,this):(console.error(`GetDataValue: Invalid atomic format ${null===(l=h.format)||void 0===l?void 0:l.name}`),null):new Pe(this.buffer,h,u,this)}toString(){let e='';if(this.typeInfo instanceof s)if('f32'===this.typeInfo.format.name){const t=new Float32Array(this.buffer,this.offset);e=`[${t[0]}`;for(let n=1;n<t.length;++n)e+=`, ${t[n]}`}else if('i32'===this.typeInfo.format.name){const t=new Int32Array(this.buffer,this.offset);e=`[${t[0]}`;for(let n=1;n<t.length;++n)e+=`, ${t[n]}`}else if('u32'===this.typeInfo.format.name){const t=new Uint32Array(this.buffer,this.offset);e=`[${t[0]}`;for(let n=1;n<t.length;++n)e+=`, ${t[n]}`}else if('vec2f'===this.typeInfo.format.name){const t=new Float32Array(this.buffer,this.offset);e=`[${t[0]}, ${t[1]}]`;for(let n=1;n<t.length/2;++n)e+=`, [${t[2*n]}, ${t[2*n+1]}]`}else if('vec3f'===this.typeInfo.format.name){const t=new Float32Array(this.buffer,this.offset);e=`[${t[0]}, ${t[1]}, ${t[2]}]`;for(let n=4;n<t.length;n+=4)e+=`, [${t[n]}, ${t[n+1]}, ${t[n+2]}]`}else if('vec4f'===this.typeInfo.format.name){const t=new Float32Array(this.buffer,this.offset);e=`[${t[0]}, ${t[1]}, ${t[2]}, ${t[3]}]`;for(let n=4;n<t.length;n+=4)e+=`, [${t[n]}, ${t[n+1]}, ${t[n+2]}, ${t[n+3]}]`}else e='[...]';else this.typeInfo instanceof n?e+='{...}':e='[...]';return e}}class We extends Ne{constructor(e,t,n,s){super(t,null),this.data=e,this.descriptor=n,this.view=s}clone(){return new We(this.data,this.typeInfo,this.descriptor,this.view)}get width(){var e,t;const n=this.descriptor.size;return n instanceof Array&&n.length>0?null!==(e=n[0])&&void 0!==e?e:0:n instanceof Object&&null!==(t=n.width)&&void 0!==t?t:0}get height(){var e,t;const n=this.descriptor.size;return n instanceof Array&&n.length>1?null!==(e=n[1])&&void 0!==e?e:0:n instanceof Object&&null!==(t=n.height)&&void 0!==t?t:0}get depthOrArrayLayers(){var e,t;const n=this.descriptor.size;return n instanceof Array&&n.length>2?null!==(e=n[2])&&void 0!==e?e:0:n instanceof Object&&null!==(t=n.depthOrArrayLayers)&&void 0!==t?t:0}get format(){var e;return this.descriptor&&null!==(e=this.descriptor.format)&&void 0!==e?e:'rgba8unorm'}get sampleCount(){var e;return this.descriptor&&null!==(e=this.descriptor.sampleCount)&&void 0!==e?e:1}get mipLevelCount(){var e;return this.descriptor&&null!==(e=this.descriptor.mipLevelCount)&&void 0!==e?e:1}get dimension(){var e;return this.descriptor&&null!==(e=this.descriptor.dimension)&&void 0!==e?e:'2d'}getMipLevelSize(e){if(e>=this.mipLevelCount)return[0,0,0];const t=[this.width,this.height,this.depthOrArrayLayers];for(let n=0;n<t.length;++n)t[n]=Math.max(1,t[n]>>e);return t}get texelByteSize(){const e=this.format,t=S[e];return t?t.isDepthStencil?4:t.bytesPerBlock:0}get bytesPerRow(){return this.width*this.texelByteSize}get isDepthStencil(){const e=this.format,t=S[e];return!!t&&t.isDepthStencil}getGpuSize(){const e=this.format,t=S[e],n=this.width;if(!e||n<=0||!t)return-1;const s=this.height,r=this.depthOrArrayLayers,a=this.dimension;return n/t.blockWidth*('1d'===a?1:s/t.blockHeight)*t.bytesPerBlock*r}getPixel(e,t,n=0,s=0){const r=this.texelByteSize,a=this.bytesPerRow,i=this.height,o=this.data[s];return k(new Uint8Array(o),e,t,n,s,i,a,r,this.format)}setPixel(e,t,n,s,r){const a=this.texelByteSize,i=this.bytesPerRow,o=this.height,c=this.data[s];!function(e,t,n,s,r,a,i,o,c,l){const u=s*(i>>=r)*(a>>=r)+n*i+t*o;switch(c){case'r8unorm':return void T(e,u,'8unorm',1,l);case'r8snorm':return void T(e,u,'8snorm',1,l);case'r8uint':return void T(e,u,'8uint',1,l);case'r8sint':return void T(e,u,'8sint',1,l);case'rg8unorm':return void T(e,u,'8unorm',2,l);case'rg8snorm':return void T(e,u,'8snorm',2,l);case'rg8uint':return void T(e,u,'8uint',2,l);case'rg8sint':return void T(e,u,'8sint',2,l);case'rgba8unorm-srgb':case'rgba8unorm':case'bgra8unorm-srgb':case'bgra8unorm':return void T(e,u,'8unorm',4,l);case'rgba8snorm':return void T(e,u,'8snorm',4,l);case'rgba8uint':return void T(e,u,'8uint',4,l);case'rgba8sint':return void T(e,u,'8sint',4,l);case'r16uint':return void T(e,u,'16uint',1,l);case'r16sint':return void T(e,u,'16sint',1,l);case'r16float':return void T(e,u,'16float',1,l);case'rg16uint':return void T(e,u,'16uint',2,l);case'rg16sint':return void T(e,u,'16sint',2,l);case'rg16float':return void T(e,u,'16float',2,l);case'rgba16uint':return void T(e,u,'16uint',4,l);case'rgba16sint':return void T(e,u,'16sint',4,l);case'rgba16float':return void T(e,u,'16float',4,l);case'r32uint':return void T(e,u,'32uint',1,l);case'r32sint':return void T(e,u,'32sint',1,l);case'depth16unorm':case'depth24plus':case'depth24plus-stencil8':case'depth32float':case'depth32float-stencil8':case'r32float':return void T(e,u,'32float',1,l);case'rg32uint':return void T(e,u,'32uint',2,l);case'rg32sint':return void T(e,u,'32sint',2,l);case'rg32float':return void T(e,u,'32float',2,l);case'rgba32uint':return void T(e,u,'32uint',4,l);case'rgba32sint':return void T(e,u,'32sint',4,l);case'rgba32float':return void T(e,u,'32float',4,l);case'rg11b10ufloat':console.error('TODO: rg11b10ufloat not supported for writing')}}(new Uint8Array(c),e,t,n,s,o,i,a,this.format,r)}}(e=>{e[e.token=0]='token',e[e.keyword=1]='keyword',e[e.reserved=2]='reserved'})(z||(z={}));class qe{constructor(e,t,n){this.name=e,this.type=t,this.rule=n}toString(){return this.name}}class He{}H=He,He.none=new qe('',z.reserved,''),He.eof=new qe('EOF',z.token,''),He.reserved={asm:new qe('asm',z.reserved,'asm'),bf16:new qe('bf16',z.reserved,'bf16'),do:new qe('do',z.reserved,'do'),enum:new qe('enum',z.reserved,'enum'),f16:new qe('f16',z.reserved,'f16'),f64:new qe('f64',z.reserved,'f64'),handle:new qe('handle',z.reserved,'handle'),i8:new qe('i8',z.reserved,'i8'),i16:new qe('i16',z.reserved,'i16'),i64:new qe('i64',z.reserved,'i64'),mat:new qe('mat',z.reserved,'mat'),premerge:new qe('premerge',z.reserved,'premerge'),regardless:new qe('regardless',z.reserved,'regardless'),typedef:new qe('typedef',z.reserved,'typedef'),u8:new qe('u8',z.reserved,'u8'),u16:new qe('u16',z.reserved,'u16'),u64:new qe('u64',z.reserved,'u64'),unless:new qe('unless',z.reserved,'unless'),using:new qe('using',z.reserved,'using'),vec:new qe('vec',z.reserved,'vec'),void:new qe('void',z.reserved,'void')},He.keywords={array:new qe('array',z.keyword,'array'),atomic:new qe('atomic',z.keyword,'atomic'),bool:new qe('bool',z.keyword,'bool'),f32:new qe('f32',z.keyword,'f32'),i32:new qe('i32',z.keyword,'i32'),mat2x2:new qe('mat2x2',z.keyword,'mat2x2'),mat2x3:new qe('mat2x3',z.keyword,'mat2x3'),mat2x4:new qe('mat2x4',z.keyword,'mat2x4'),mat3x2:new qe('mat3x2',z.keyword,'mat3x2'),mat3x3:new qe('mat3x3',z.keyword,'mat3x3'),mat3x4:new qe('mat3x4',z.keyword,'mat3x4'),mat4x2:new qe('mat4x2',z.keyword,'mat4x2'),mat4x3:new qe('mat4x3',z.keyword,'mat4x3'),mat4x4:new qe('mat4x4',z.keyword,'mat4x4'),ptr:new qe('ptr',z.keyword,'ptr'),sampler:new qe('sampler',z.keyword,'sampler'),sampler_comparison:new qe('sampler_comparison',z.keyword,'sampler_comparison'),struct:new qe('struct',z.keyword,'struct'),texture_1d:new qe('texture_1d',z.keyword,'texture_1d'),texture_2d:new qe('texture_2d',z.keyword,'texture_2d'),texture_2d_array:new qe('texture_2d_array',z.keyword,'texture_2d_array'),texture_3d:new qe('texture_3d',z.keyword,'texture_3d'),texture_cube:new qe('texture_cube',z.keyword,'texture_cube'),texture_cube_array:new qe('texture_cube_array',z.keyword,'texture_cube_array'),texture_multisampled_2d:new qe('texture_multisampled_2d',z.keyword,'texture_multisampled_2d'),texture_storage_1d:new qe('texture_storage_1d',z.keyword,'texture_storage_1d'),texture_storage_2d:new qe('texture_storage_2d',z.keyword,'texture_storage_2d'),texture_storage_2d_array:new qe('texture_storage_2d_array',z.keyword,'texture_storage_2d_array'),texture_storage_3d:new qe('texture_storage_3d',z.keyword,'texture_storage_3d'),texture_depth_2d:new qe('texture_depth_2d',z.keyword,'texture_depth_2d'),texture_depth_2d_array:new qe('texture_depth_2d_array',z.keyword,'texture_depth_2d_array'),texture_depth_cube:new qe('texture_depth_cube',z.keyword,'texture_depth_cube'),texture_depth_cube_array:new qe('texture_depth_cube_array',z.keyword,'texture_depth_cube_array'),texture_depth_multisampled_2d:new qe('texture_depth_multisampled_2d',z.keyword,'texture_depth_multisampled_2d'),texture_external:new qe('texture_external',z.keyword,'texture_external'),u32:new qe('u32',z.keyword,'u32'),vec2:new qe('vec2',z.keyword,'vec2'),vec3:new qe('vec3',z.keyword,'vec3'),vec4:new qe('vec4',z.keyword,'vec4'),bitcast:new qe('bitcast',z.keyword,'bitcast'),block:new qe('block',z.keyword,'block'),break:new qe('break',z.keyword,'break'),case:new qe('case',z.keyword,'case'),continue:new qe('continue',z.keyword,'continue'),continuing:new qe('continuing',z.keyword,'continuing'),default:new qe('default',z.keyword,'default'),diagnostic:new qe('diagnostic',z.keyword,'diagnostic'),discard:new qe('discard',z.keyword,'discard'),else:new qe('else',z.keyword,'else'),enable:new qe('enable',z.keyword,'enable'),fallthrough:new qe('fallthrough',z.keyword,'fallthrough'),false:new qe('false',z.keyword,'false'),fn:new qe('fn',z.keyword,'fn'),for:new qe('for',z.keyword,'for'),function:new qe('function',z.keyword,'function'),if:new qe('if',z.keyword,'if'),let:new qe('let',z.keyword,'let'),const:new qe('const',z.keyword,'const'),loop:new qe('loop',z.keyword,'loop'),while:new qe('while',z.keyword,'while'),private:new qe('private',z.keyword,'private'),read:new qe('read',z.keyword,'read'),read_write:new qe('read_write',z.keyword,'read_write'),return:new qe('return',z.keyword,'return'),requires:new qe('requires',z.keyword,'requires'),storage:new qe('storage',z.keyword,'storage'),switch:new qe('switch',z.keyword,'switch'),true:new qe('true',z.keyword,'true'),alias:new qe('alias',z.keyword,'alias'),type:new qe('type',z.keyword,'type'),uniform:new qe('uniform',z.keyword,'uniform'),var:new qe('var',z.keyword,'var'),override:new qe('override',z.keyword,'override'),workgroup:new qe('workgroup',z.keyword,'workgroup'),write:new qe('write',z.keyword,'write'),r8unorm:new qe('r8unorm',z.keyword,'r8unorm'),r8snorm:new qe('r8snorm',z.keyword,'r8snorm'),r8uint:new qe('r8uint',z.keyword,'r8uint'),r8sint:new qe('r8sint',z.keyword,'r8sint'),r16uint:new qe('r16uint',z.keyword,'r16uint'),r16sint:new qe('r16sint',z.keyword,'r16sint'),r16float:new qe('r16float',z.keyword,'r16float'),rg8unorm:new qe('rg8unorm',z.keyword,'rg8unorm'),rg8snorm:new qe('rg8snorm',z.keyword,'rg8snorm'),rg8uint:new qe('rg8uint',z.keyword,'rg8uint'),rg8sint:new qe('rg8sint',z.keyword,'rg8sint'),r32uint:new qe('r32uint',z.keyword,'r32uint'),r32sint:new qe('r32sint',z.keyword,'r32sint'),r32float:new qe('r32float',z.keyword,'r32float'),rg16uint:new qe('rg16uint',z.keyword,'rg16uint'),rg16sint:new qe('rg16sint',z.keyword,'rg16sint'),rg16float:new qe('rg16float',z.keyword,'rg16float'),rgba8unorm:new qe('rgba8unorm',z.keyword,'rgba8unorm'),rgba8unorm_srgb:new qe('rgba8unorm_srgb',z.keyword,'rgba8unorm_srgb'),rgba8snorm:new qe('rgba8snorm',z.keyword,'rgba8snorm'),rgba8uint:new qe('rgba8uint',z.keyword,'rgba8uint'),rgba8sint:new qe('rgba8sint',z.keyword,'rgba8sint'),bgra8unorm:new qe('bgra8unorm',z.keyword,'bgra8unorm'),bgra8unorm_srgb:new qe('bgra8unorm_srgb',z.keyword,'bgra8unorm_srgb'),rgb10a2unorm:new qe('rgb10a2unorm',z.keyword,'rgb10a2unorm'),rg11b10float:new qe('rg11b10float',z.keyword,'rg11b10float'),rg32uint:new qe('rg32uint',z.keyword,'rg32uint'),rg32sint:new qe('rg32sint',z.keyword,'rg32sint'),rg32float:new qe('rg32float',z.keyword,'rg32float'),rgba16uint:new qe('rgba16uint',z.keyword,'rgba16uint'),rgba16sint:new qe('rgba16sint',z.keyword,'rgba16sint'),rgba16float:new qe('rgba16float',z.keyword,'rgba16float'),rgba32uint:new qe('rgba32uint',z.keyword,'rgba32uint'),rgba32sint:new qe('rgba32sint',z.keyword,'rgba32sint'),rgba32float:new qe('rgba32float',z.keyword,'rgba32float'),static_assert:new qe('static_assert',z.keyword,'static_assert')},He.tokens={decimal_float_literal:new qe('decimal_float_literal',z.token,/((-?[0-9]*\\.[0-9]+|-?[0-9]+\\.[0-9]*)((e|E)(\\+|-)?[0-9]+)?[fh]?)|(-?[0-9]+(e|E)(\\+|-)?[0-9]+[fh]?)|(-?[0-9]+[fh])/),hex_float_literal:new qe('hex_float_literal',z.token,/-?0x((([0-9a-fA-F]*\\.[0-9a-fA-F]+|[0-9a-fA-F]+\\.[0-9a-fA-F]*)((p|P)(\\+|-)?[0-9]+[fh]?)?)|([0-9a-fA-F]+(p|P)(\\+|-)?[0-9]+[fh]?))/),int_literal:new qe('int_literal',z.token,/-?0x[0-9a-fA-F]+|0i?|-?[1-9][0-9]*i?/),uint_literal:new qe('uint_literal',z.token,/0x[0-9a-fA-F]+u|0u|[1-9][0-9]*u/),name:new qe('name',z.token,/([_\\p{XID_Start}][\\p{XID_Continue}]+)|([\\p{XID_Start}])/u),ident:new qe('ident',z.token,/[_a-zA-Z][0-9a-zA-Z_]*/),and:new qe('and',z.token,'&'),and_and:new qe('and_and',z.token,'&&'),arrow:new qe('arrow ',z.token,'->'),attr:new qe('attr',z.token,'@'),forward_slash:new qe('forward_slash',z.token,'/'),bang:new qe('bang',z.token,'!'),bracket_left:new qe('bracket_left',z.token,'['),bracket_right:new qe('bracket_right',z.token,']'),brace_left:new qe('brace_left',z.token,'{'),brace_right:new qe('brace_right',z.token,'}'),colon:new qe('colon',z.token,':'),comma:new qe('comma',z.token,','),equal:new qe('equal',z.token,'='),equal_equal:new qe('equal_equal',z.token,'=='),not_equal:new qe('not_equal',z.token,'!='),greater_than:new qe('greater_than',z.token,'>'),greater_than_equal:new qe('greater_than_equal',z.token,'>='),shift_right:new qe('shift_right',z.token,'>>'),less_than:new qe('less_than',z.token,'<'),less_than_equal:new qe('less_than_equal',z.token,'<='),shift_left:new qe('shift_left',z.token,'<<'),modulo:new qe('modulo',z.token,'%'),minus:new qe('minus',z.token,'-'),minus_minus:new qe('minus_minus',z.token,'--'),period:new qe('period',z.token,'.'),plus:new qe('plus',z.token,'+'),plus_plus:new qe('plus_plus',z.token,'++'),or:new qe('or',z.token,'|'),or_or:new qe('or_or',z.token,'||'),paren_left:new qe('paren_left',z.token,'('),paren_right:new qe('paren_right',z.token,')'),semicolon:new qe('semicolon',z.token,';'),star:new qe('star',z.token,'*'),tilde:new qe('tilde',z.token,'~'),underscore:new qe('underscore',z.token,'_'),xor:new qe('xor',z.token,'^'),plus_equal:new qe('plus_equal',z.token,'+='),minus_equal:new qe('minus_equal',z.token,'-='),times_equal:new qe('times_equal',z.token,'*='),division_equal:new qe('division_equal',z.token,'/='),modulo_equal:new qe('modulo_equal',z.token,'%='),and_equal:new qe('and_equal',z.token,'&='),or_equal:new qe('or_equal',z.token,'|='),xor_equal:new qe('xor_equal',z.token,'^='),shift_right_equal:new qe('shift_right_equal',z.token,'>>='),shift_left_equal:new qe('shift_left_equal',z.token,'<<=')},He.simpleTokens={'@':H.tokens.attr,'{':H.tokens.brace_left,'}':H.tokens.brace_right,':':H.tokens.colon,',':H.tokens.comma,'(':H.tokens.paren_left,')':H.tokens.paren_right,';':H.tokens.semicolon},He.literalTokens={'&':H.tokens.and,'&&':H.tokens.and_and,'->':H.tokens.arrow,'/':H.tokens.forward_slash,'!':H.tokens.bang,'[':H.tokens.bracket_left,']':H.tokens.bracket_right,'=':H.tokens.equal,'==':H.tokens.equal_equal,'!=':H.tokens.not_equal,'>':H.tokens.greater_than,'>=':H.tokens.greater_than_equal,'>>':H.tokens.shift_right,'<':H.tokens.less_than,'<=':H.tokens.less_than_equal,'<<':H.tokens.shift_left,'%':H.tokens.modulo,'-':H.tokens.minus,'--':H.tokens.minus_minus,'.':H.tokens.period,'+':H.tokens.plus,'++':H.tokens.plus_plus,'|':H.tokens.or,'||':H.tokens.or_or,'*':H.tokens.star,'~':H.tokens.tilde,_:H.tokens.underscore,'^':H.tokens.xor,'+=':H.tokens.plus_equal,'-=':H.tokens.minus_equal,'*=':H.tokens.times_equal,'/=':H.tokens.division_equal,'%=':H.tokens.modulo_equal,'&=':H.tokens.and_equal,'|=':H.tokens.or_equal,'^=':H.tokens.xor_equal,'>>=':H.tokens.shift_right_equal,'<<=':H.tokens.shift_left_equal},He.regexTokens={decimal_float_literal:H.tokens.decimal_float_literal,hex_float_literal:H.tokens.hex_float_literal,int_literal:H.tokens.int_literal,uint_literal:H.tokens.uint_literal,ident:H.tokens.ident},He.storage_class=[H.keywords.function,H.keywords.private,H.keywords.workgroup,H.keywords.uniform,H.keywords.storage],He.access_mode=[H.keywords.read,H.keywords.write,H.keywords.read_write],He.sampler_type=[H.keywords.sampler,H.keywords.sampler_comparison],He.sampled_texture_type=[H.keywords.texture_1d,H.keywords.texture_2d,H.keywords.texture_2d_array,H.keywords.texture_3d,H.keywords.texture_cube,H.keywords.texture_cube_array],He.multisampled_texture_type=[H.keywords.texture_multisampled_2d],He.storage_texture_type=[H.keywords.texture_storage_1d,H.keywords.texture_storage_2d,H.keywords.texture_storage_2d_array,H.keywords.texture_storage_3d],He.depth_texture_type=[H.keywords.texture_depth_2d,H.keywords.texture_depth_2d_array,H.keywords.texture_depth_cube,H.keywords.texture_depth_cube_array,H.keywords.texture_depth_multisampled_2d],He.texture_external_type=[H.keywords.texture_external],He.any_texture_type=[...H.sampled_texture_type,...H.multisampled_texture_type,...H.storage_texture_type,...H.depth_texture_type,...H.texture_external_type],He.texel_format=[H.keywords.r8unorm,H.keywords.r8snorm,H.keywords.r8uint,H.keywords.r8sint,H.keywords.r16uint,H.keywords.r16sint,H.keywords.r16float,H.keywords.rg8unorm,H.keywords.rg8snorm,H.keywords.rg8uint,H.keywords.rg8sint,H.keywords.r32uint,H.keywords.r32sint,H.keywords.r32float,H.keywords.rg16uint,H.keywords.rg16sint,H.keywords.rg16float,H.keywords.rgba8unorm,H.keywords.rgba8unorm_srgb,H.keywords.rgba8snorm,H.keywords.rgba8uint,H.keywords.rgba8sint,H.keywords.bgra8unorm,H.keywords.bgra8unorm_srgb,H.keywords.rgb10a2unorm,H.keywords.rg11b10float,H.keywords.rg32uint,H.keywords.rg32sint,H.keywords.rg32float,H.keywords.rgba16uint,H.keywords.rgba16sint,H.keywords.rgba16float,H.keywords.rgba32uint,H.keywords.rgba32sint,H.keywords.rgba32float],He.const_literal=[H.tokens.int_literal,H.tokens.uint_literal,H.tokens.decimal_float_literal,H.tokens.hex_float_literal,H.keywords.true,H.keywords.false],He.literal_or_ident=[H.tokens.ident,H.tokens.int_literal,H.tokens.uint_literal,H.tokens.decimal_float_literal,H.tokens.hex_float_literal,H.tokens.name],He.element_count_expression=[H.tokens.int_literal,H.tokens.uint_literal,H.tokens.ident],He.template_types=[H.keywords.vec2,H.keywords.vec3,H.keywords.vec4,H.keywords.mat2x2,H.keywords.mat2x3,H.keywords.mat2x4,H.keywords.mat3x2,H.keywords.mat3x3,H.keywords.mat3x4,H.keywords.mat4x2,H.keywords.mat4x3,H.keywords.mat4x4,H.keywords.atomic,H.keywords.bitcast,...H.any_texture_type],He.attribute_name=[H.tokens.ident,H.keywords.block,H.keywords.diagnostic],He.assignment_operators=[H.tokens.equal,H.tokens.plus_equal,H.tokens.minus_equal,H.tokens.times_equal,H.tokens.division_equal,H.tokens.modulo_equal,H.tokens.and_equal,H.tokens.or_equal,H.tokens.xor_equal,H.tokens.shift_right_equal,H.tokens.shift_left_equal],He.increment_operators=[H.tokens.plus_plus,H.tokens.minus_minus];class ze{constructor(e,t,n,s,r){this.type=e,this.lexeme=t,this.line=n,this.start=s,this.end=r}toString(){return this.lexeme}isTemplateType(){return-1!=He.template_types.indexOf(this.type)}isArrayType(){return this.type==He.keywords.array}isArrayOrTemplateType(){return this.isArrayType()||this.isTemplateType()}}class Re{constructor(e){this._tokens=[],this._start=0,this._current=0,this._line=1,this._source=null!=e?e:''}scanTokens(){for(;!this._isAtEnd();)if(this._start=this._current,!this.scanToken())throw`Invalid syntax at line ${this._line}`;return this._tokens.push(new ze(He.eof,'',this._line,this._current,this._current)),this._tokens}scanToken(){let e=this._advance();if('\\n'==e)return this._line++,!0;if(this._isWhitespace(e))return!0;if('/'==e){if('/'==this._peekAhead()){for(;'\\n'!=e;){if(this._isAtEnd())return!0;e=this._advance()}return this._line++,!0}if('*'==this._peekAhead()){this._advance();let t=1;for(;t>0;){if(this._isAtEnd())return!0;if(e=this._advance(),'\\n'==e)this._line++;else if('*'==e){if('/'==this._peekAhead()&&(this._advance(),t--,0==t))return!0}else'/'==e&&'*'==this._peekAhead()&&(this._advance(),t++)}return!0}}const t=He.simpleTokens[e];if(t)return this._addToken(t),!0;let n=He.none;const s=this._isAlpha(e),r='_'===e;if(this._isAlphaNumeric(e)){let t=this._peekAhead();for(;this._isAlphaNumeric(t);)e+=this._advance(),t=this._peekAhead()}if(s){const t=He.keywords[e];if(t)return this._addToken(t),!0}if(s||r)return this._addToken(He.tokens.ident),!0;for(;;){let t=this._findType(e);const s=this._peekAhead();if('-'==e&&this._tokens.length>0){if('='==s)return this._current++,e+=s,this._addToken(He.tokens.minus_equal),!0;if('-'==s)return this._current++,e+=s,this._addToken(He.tokens.minus_minus),!0;const n=this._tokens.length-1;if((-1!=He.literal_or_ident.indexOf(this._tokens[n].type)||this._tokens[n].type==He.tokens.paren_right)&&'>'!=s)return this._addToken(t),!0}if('>'==e&&('>'==s||'='==s)){let e=!1,n=this._tokens.length-1;for(let t=0;t<5&&n>=0&&-1===He.assignment_operators.indexOf(this._tokens[n].type);++t,--n)if(this._tokens[n].type===He.tokens.less_than){n>0&&this._tokens[n-1].isArrayOrTemplateType()&&(e=!0);break}if(e)return this._addToken(t),!0}if(t===He.none){let s=e,r=0;const a=2;for(let e=0;e<a;++e)if(s+=this._peekAhead(e),t=this._findType(s),t!==He.none){r=e;break}if(t===He.none)return n!==He.none&&(this._current--,this._addToken(n),!0);e=s,this._current+=r+1}if(n=t,this._isAtEnd())break;e+=this._advance()}return n!==He.none&&(this._addToken(n),!0)}_findType(e){for(const t in He.regexTokens){const n=He.regexTokens[t];if(this._match(e,n.rule))return n}const t=He.literalTokens[e];return t||He.none}_match(e,t){const n=t.exec(e);return n&&0==n.index&&n[0]==e}_isAtEnd(){return this._current>=this._source.length}_isAlpha(e){return!this._isNumeric(e)&&!this._isWhitespace(e)&&'_'!==e&&'.'!==e&&'('!==e&&')'!==e&&'['!==e&&']'!==e&&'{'!==e&&'}'!==e&&','!==e&&';'!==e&&':'!==e&&'='!==e&&'!'!==e&&'<'!==e&&'>'!==e&&'+'!==e&&'-'!==e&&'*'!==e&&'/'!==e&&'%'!==e&&'&'!==e&&'|'!==e&&'^'!==e&&'~'!==e&&'@'!==e&&'#'!==e&&'?'!==e&&'\\''!==e&&'`'!==e&&'\"'!==e&&'\\\\'!==e&&'\\n'!==e&&'\\r'!==e&&'\\t'!==e&&'\\0'!==e}_isNumeric(e){return e>='0'&&e<='9'}_isAlphaNumeric(e){return this._isAlpha(e)||this._isNumeric(e)||'_'===e}_isWhitespace(e){return' '==e||'\\t'==e||'\\r'==e}_advance(e=0){let t=this._source[this._current];return e=e||0,e++,this._current+=e,t}_peekAhead(e=0){return e=e||0,this._current+e>=this._source.length?'\\0':this._source[this._current+e]}_addToken(e){const t=this._source.substring(this._start,this._current);this._tokens.push(new ze(e,t,this._line,this._start,this._current))}}function Ge(e){return Array.isArray(e)||(null==e?void 0:e.buffer)instanceof ArrayBuffer}const Xe=new Float32Array(1),je=new Uint32Array(Xe.buffer),Ze=new Uint32Array(Xe.buffer),Qe=new Int32Array(1),Ye=new Float32Array(Qe.buffer),Ke=new Uint32Array(Qe.buffer),Je=new Uint32Array(1),et=new Float32Array(Je.buffer),tt=new Int32Array(Je.buffer);function nt(e,t,n){if(t===n)return e;if('f32'===t){if('i32'===n||'x32'===n)return Xe[0]=e,je[0];if('u32'===n)return Xe[0]=e,Ze[0]}else if('i32'===t||'x32'===t){if('f32'===n)return Qe[0]=e,Ye[0];if('u32'===n)return Qe[0]=e,Ke[0]}else if('u32'===t){if('f32'===n)return Je[0]=e,et[0];if('i32'===n||'x32'===n)return Je[0]=e,tt[0]}return console.error(`Unsupported cast from ${t} to ${n}`),e}class st{constructor(e){this.resources=null,this.inUse=!1,this.info=null,this.node=e}}class rt{constructor(e,t){this.align=e,this.size=t}}class at{constructor(){this.uniforms=[],this.storage=[],this.textures=[],this.samplers=[],this.aliases=[],this.overrides=[],this.structs=[],this.entry=new d,this.functions=[],this._types=new Map,this._functions=new Map}_isStorageTexture(e){return'texture_storage_1d'==e.name||'texture_storage_2d'==e.name||'texture_storage_2d_array'==e.name||'texture_storage_3d'==e.name}updateAST(e){for(const t of e)t instanceof D&&this._functions.set(t.name,new st(t));for(const t of e)if(t instanceof oe){const e=this.getTypeInfo(t,null);e instanceof n&&this.structs.push(e)}for(const t of e)if(t instanceof te)this.aliases.push(this._getAliasInfo(t));else{if(t instanceof M){const e=t,n=this._getAttributeNum(e.attributes,'id',0),s=null!=e.type?this.getTypeInfo(e.type,e.attributes):null;this.overrides.push(new h(e.name,s,e.attributes,n));continue}if(this._isUniformVar(t)){const e=t,n=this._getAttributeNum(e.attributes,'group',0),s=this._getAttributeNum(e.attributes,'binding',0),r=this.getTypeInfo(e.type,e.attributes),a=new o(e.name,r,n,s,e.attributes,i.Uniform,e.access);a.access||(a.access='read'),this.uniforms.push(a);continue}if(this._isStorageVar(t)){const e=t,n=this._getAttributeNum(e.attributes,'group',0),s=this._getAttributeNum(e.attributes,'binding',0),r=this.getTypeInfo(e.type,e.attributes),a=this._isStorageTexture(r),c=new o(e.name,r,n,s,e.attributes,a?i.StorageTexture:i.Storage,e.access);c.access||(c.access='read'),this.storage.push(c);continue}if(this._isTextureVar(t)){const e=t,n=this._getAttributeNum(e.attributes,'group',0),s=this._getAttributeNum(e.attributes,'binding',0),r=this.getTypeInfo(e.type,e.attributes),a=this._isStorageTexture(r),c=new o(e.name,r,n,s,e.attributes,a?i.StorageTexture:i.Texture,e.access);c.access||(c.access='read'),a?this.storage.push(c):this.textures.push(c);continue}if(this._isSamplerVar(t)){const e=t,n=this._getAttributeNum(e.attributes,'group',0),s=this._getAttributeNum(e.attributes,'binding',0),r=this.getTypeInfo(e.type,e.attributes),a=new o(e.name,r,n,s,e.attributes,i.Sampler,e.access);this.samplers.push(a);continue}}for(const t of e)if(t instanceof D){const e=this._getAttribute(t,'vertex'),n=this._getAttribute(t,'fragment'),s=this._getAttribute(t,'compute'),r=e||n||s,a=new p(t.name,null==r?void 0:r.name,t.attributes);a.attributes=t.attributes,a.startLine=t.startLine,a.endLine=t.endLine,this.functions.push(a),this._functions.get(t.name).info=a,r&&(this._functions.get(t.name).inUse=!0,a.inUse=!0,a.resources=this._findResources(t,!!r),a.inputs=this._getInputs(t.args),a.outputs=this._getOutputs(t.returnType),this.entry[r.name].push(a)),a.arguments=t.args.map(e=>new f(e.name,this.getTypeInfo(e.type,e.attributes),e.attributes)),a.returnType=t.returnType?this.getTypeInfo(t.returnType,t.attributes):null;continue}for(const e of this._functions.values())e.info&&(e.info.inUse=e.inUse,this._addCalls(e.node,e.info.calls));for(const e of this._functions.values())e.node.search(t=>{var n,s,r;if(t instanceof De){if(t.value)if(Ge(t.value))for(const s of t.value)for(const t of this.overrides)s===t.name&&(null===(n=e.info)||void 0===n||n.overrides.push(t));else for(const n of this.overrides)t.value===n.name&&(null===(s=e.info)||void 0===s||s.overrides.push(n))}else if(t instanceof ge)for(const n of this.overrides)t.name===n.name&&(null===(r=e.info)||void 0===r||r.overrides.push(n))});for(const e of this.uniforms)this._markStructsInUse(e.type);for(const e of this.storage)this._markStructsInUse(e.type)}getFunctionInfo(e){for(const t of this.functions)if(t.name==e)return t;return null}getStructInfo(e){for(const t of this.structs)if(t.name==e)return t;return null}getOverrideInfo(e){for(const t of this.overrides)if(t.name==e)return t;return null}_markStructsInUse(e){if(e)if(e.isStruct){if(e.inUse=!0,e.members)for(const t of e.members)this._markStructsInUse(t.type)}else if(e.isArray)this._markStructsInUse(e.format);else if(e.isTemplate)e.format&&this._markStructsInUse(e.format);else{const t=this._getAlias(e.name);t&&this._markStructsInUse(t)}}_addCalls(e,t){var n;for(const s of e.calls){const e=null===(n=this._functions.get(s.name))||void 0===n?void 0:n.info;e&&t.add(e)}}findResource(e,t,n){if(n){for(const s of this.entry.compute)if(s.name===n)for(const n of s.resources)if(n.group==e&&n.binding==t)return n;for(const s of this.entry.vertex)if(s.name===n)for(const n of s.resources)if(n.group==e&&n.binding==t)return n;for(const s of this.entry.fragment)if(s.name===n)for(const n of s.resources)if(n.group==e&&n.binding==t)return n}for(const n of this.uniforms)if(n.group==e&&n.binding==t)return n;for(const n of this.storage)if(n.group==e&&n.binding==t)return n;for(const n of this.textures)if(n.group==e&&n.binding==t)return n;for(const n of this.samplers)if(n.group==e&&n.binding==t)return n;return null}_findResource(e){for(const t of this.uniforms)if(t.name==e)return t;for(const t of this.storage)if(t.name==e)return t;for(const t of this.textures)if(t.name==e)return t;for(const t of this.samplers)if(t.name==e)return t;return null}_markStructsFromAST(e){const t=this.getTypeInfo(e,null);this._markStructsInUse(t)}_findResources(e,t){const n=[],s=this,r=[];return e.search(a=>{if(a instanceof E)r.push({});else if(a instanceof $)r.pop();else if(a instanceof F){const e=a;t&&null!==e.type&&this._markStructsFromAST(e.type),r.length>0&&(r[r.length-1][e.name]=e)}else if(a instanceof de){const e=a;t&&null!==e.type&&this._markStructsFromAST(e.type)}else if(a instanceof U){const e=a;t&&null!==e.type&&this._markStructsFromAST(e.type),r.length>0&&(r[r.length-1][e.name]=e)}else if(a instanceof ge){const e=a;if(r.length>0){if(r[r.length-1][e.name])return}const t=s._findResource(e.name);t&&n.push(t)}else if(a instanceof me){const r=a,i=s._functions.get(r.name);i&&(t&&(i.inUse=!0),e.calls.add(i.node),null===i.resources&&(i.resources=s._findResources(i.node,t)),n.push(...i.resources))}else if(a instanceof X){const r=a,i=s._functions.get(r.name);i&&(t&&(i.inUse=!0),e.calls.add(i.node),null===i.resources&&(i.resources=s._findResources(i.node,t)),n.push(...i.resources))}}),[...new Map(n.map(e=>[e.name,e])).values()]}getBindGroups(){const e=[];function t(t,n){t>=e.length&&(e.length=t+1),void 0===e[t]&&(e[t]=[]),n>=e[t].length&&(e[t].length=n+1)}for(const n of this.uniforms){t(n.group,n.binding);e[n.group][n.binding]=n}for(const n of this.storage){t(n.group,n.binding);e[n.group][n.binding]=n}for(const n of this.textures){t(n.group,n.binding);e[n.group][n.binding]=n}for(const n of this.samplers){t(n.group,n.binding);e[n.group][n.binding]=n}return e}_getOutputs(e,t=void 0){if(void 0===t&&(t=[]),e instanceof oe)this._getStructOutputs(e,t);else{const n=this._getOutputInfo(e);null!==n&&t.push(n)}return t}_getStructOutputs(e,t){for(const n of e.members)if(n.type instanceof oe)this._getStructOutputs(n.type,t);else{const e=this._getAttribute(n,'location')||this._getAttribute(n,'builtin');if(null!==e){const s=this.getTypeInfo(n.type,n.type.attributes),r=this._parseInt(e.value),a=new u(n.name,s,e.name,r);t.push(a)}}}_getOutputInfo(e){const t=this._getAttribute(e,'location')||this._getAttribute(e,'builtin');if(null!==t){const n=this.getTypeInfo(e,e.attributes),s=this._parseInt(t.value);return new u('',n,t.name,s)}return null}_getInputs(e,t=void 0){void 0===t&&(t=[]);for(const n of e)if(n.type instanceof oe)this._getStructInputs(n.type,t);else{const e=this._getInputInfo(n);null!==e&&t.push(e)}return t}_getStructInputs(e,t){for(const n of e.members)if(n.type instanceof oe)this._getStructInputs(n.type,t);else{const e=this._getInputInfo(n);null!==e&&t.push(e)}}_getInputInfo(e){const t=this._getAttribute(e,'location')||this._getAttribute(e,'builtin');if(null!==t){const n=this._getAttribute(e,'interpolation'),s=this.getTypeInfo(e.type,e.attributes),r=this._parseInt(t.value),a=new l(e.name,s,t.name,r);return null!==n&&(a.interpolation=this._parseString(n.value)),a}return null}_parseString(e){return e instanceof Array&&(e=e[0]),e}_parseInt(e){e instanceof Array&&(e=e[0]);const t=parseInt(e);return isNaN(t)?e:t}_getAlias(e){for(const t of this.aliases)if(t.name==e)return t.type;return null}_getAliasInfo(e){return new c(e.name,this.getTypeInfo(e.type,null))}getTypeInfoByName(e){for(const t of this.structs)if(t.name==e)return t;for(const t of this.aliases)if(t.name==e)return t.type;return null}getTypeInfo(i,o=null){if(this._types.has(i))return this._types.get(i);if(i instanceof le){const e=i.type?this.getTypeInfo(i.type,i.attributes):null,t=new r(i.name,e,o);return this._types.set(i,t),this._updateTypeInfo(t),t}if(i instanceof ue){const e=i,t=e.format?this.getTypeInfo(e.format,e.attributes):null,n=new s(e.name,o);return n.format=t,n.count=e.count,this._types.set(i,n),this._updateTypeInfo(n),n}if(i instanceof oe){const e=i,s=new n(e.name,o);s.startLine=e.startLine,s.endLine=e.endLine;for(const n of e.members){const e=this.getTypeInfo(n.type,n.attributes);s.members.push(new t(n.name,e,n.attributes))}return this._types.set(i,s),this._updateTypeInfo(s),s}if(i instanceof he){const t=i,n=t.format instanceof ae,s=t.format?n?this.getTypeInfo(t.format,null):new e(t.format,null):null,r=new a(t.name,s,o,t.access);return this._types.set(i,r),this._updateTypeInfo(r),r}if(i instanceof ce){const e=i,t=e.format?this.getTypeInfo(e.format,null):null,n=new a(e.name,t,o,e.access);return this._types.set(i,n),this._updateTypeInfo(n),n}const c=new e(i.name,o);return this._types.set(i,c),this._updateTypeInfo(c),c}_updateTypeInfo(e){var t,a,i;const o=this._getTypeSize(e);if(e.size=null!==(t=null==o?void 0:o.size)&&void 0!==t?t:0,e instanceof s&&e.format){const t=this._getTypeSize(e.format);e.stride=Math.max(null!==(a=null==t?void 0:t.size)&&void 0!==a?a:0,null!==(i=null==t?void 0:t.align)&&void 0!==i?i:0),this._updateTypeInfo(e.format)}e instanceof r&&this._updateTypeInfo(e.format),e instanceof n&&this._updateStructInfo(e)}_updateStructInfo(e){var t;let n=0,s=0,r=0,a=0;for(let i=0,o=e.members.length;i<o;++i){const o=e.members[i],c=this._getTypeSize(o);if(!c)continue;null!==(t=this._getAlias(o.type.name))&&void 0!==t||o.type;const l=c.align,u=c.size;n=this._roundUp(l,n+s),s=u,r=n,a=Math.max(a,l),o.offset=n,o.size=u,this._updateTypeInfo(o.type)}e.size=this._roundUp(a,r+s),e.align=a}_getTypeSize(r){var a,i;if(null==r)return null;const o=this._getAttributeNum(r.attributes,'size',0),c=this._getAttributeNum(r.attributes,'align',0);if(r instanceof t&&(r=r.type),r instanceof e){const e=this._getAlias(r.name);null!==e&&(r=e)}{const e=at._typeInfo[r.name];if(void 0!==e){const t='f16'===(null===(a=r.format)||void 0===a?void 0:a.name)?2:1;return new rt(Math.max(c,e.align/t),Math.max(o,e.size/t))}}{const e=at._typeInfo[r.name.substring(0,r.name.length-1)];if(e){const t='h'===r.name[r.name.length-1]?2:1;return new rt(Math.max(c,e.align/t),Math.max(o,e.size/t))}}if(r instanceof s){let e=r,t=8,n=8;const s=this._getTypeSize(e.format);null!==s&&(n=s.size,t=s.align);return n=e.count*this._getAttributeNum(null!==(i=null==r?void 0:r.attributes)&&void 0!==i?i:null,'stride',this._roundUp(t,n)),o&&(n=o),new rt(Math.max(c,t),Math.max(o,n))}if(r instanceof n){let e=0,t=0,n=0,s=0,a=0;for(const t of r.members){const r=this._getTypeSize(t.type);null!==r&&(e=Math.max(r.align,e),n=this._roundUp(r.align,n+s),s=r.size,a=n)}return t=this._roundUp(e,a+s),new rt(Math.max(c,e),Math.max(o,t))}return null}_isUniformVar(e){return e instanceof F&&'uniform'==e.storage}_isStorageVar(e){return e instanceof F&&'storage'==e.storage}_isTextureVar(e){return e instanceof F&&null!==e.type&&-1!=at._textureTypes.indexOf(e.type.name)}_isSamplerVar(e){return e instanceof F&&null!==e.type&&-1!=at._samplerTypes.indexOf(e.type.name)}_getAttribute(e,t){const n=e;if(!n||!n.attributes)return null;const s=n.attributes;for(let e of s)if(e.name==t)return e;return null}_getAttributeNum(e,t,n){if(null===e)return n;for(let s of e)if(s.name==t){let e=null!==s&&null!==s.value?s.value:n;return e instanceof Array&&(e=e[0]),'number'==typeof e?e:'string'==typeof e?parseInt(e):n}return n}_roundUp(e,t){return Math.ceil(t/e)*e}}at._typeInfo={f16:{align:2,size:2},i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},atomic:{align:4,size:4},vec2:{align:8,size:8},vec3:{align:16,size:12},vec4:{align:16,size:16},mat2x2:{align:8,size:16},mat3x2:{align:8,size:24},mat4x2:{align:8,size:32},mat2x3:{align:16,size:32},mat3x3:{align:16,size:48},mat4x3:{align:16,size:64},mat2x4:{align:16,size:32},mat3x4:{align:16,size:48},mat4x4:{align:16,size:64}},at._textureTypes=He.any_texture_type.map(e=>e.name),at._samplerTypes=He.sampler_type.map(e=>e.name);let it=0;class ot{constructor(e,t,n){this.id=it++,this.name=e,this.value=t,this.node=n}clone(){return new ot(this.name,this.value,this.node)}}class ct{constructor(e){this.id=it++,this.name=e.name,this.node=e}clone(){return new ct(this.node)}}class lt{constructor(e){this.parent=null,this.variables=new Map,this.functions=new Map,this.currentFunctionName='',this.id=it++,e&&(this.parent=e,this.currentFunctionName=e.currentFunctionName)}getVariable(e){var t;return this.variables.has(e)?null!==(t=this.variables.get(e))&&void 0!==t?t:null:this.parent?this.parent.getVariable(e):null}getFunction(e){var t;return this.functions.has(e)?null!==(t=this.functions.get(e))&&void 0!==t?t:null:this.parent?this.parent.getFunction(e):null}createVariable(e,t,n){this.variables.set(e,new ot(e,t,null!=n?n:null))}setVariable(e,t,n){const s=this.getVariable(e);null!==s?s.value=t:this.createVariable(e,t,n)}getVariableValue(e){var t;const n=this.getVariable(e);return null!==(t=null==n?void 0:n.value)&&void 0!==t?t:null}clone(){return new lt(this)}}class ut{evalExpression(e,t){return null}getTypeInfo(e){return null}getVariableName(e,t){return''}}class ht{constructor(e){this.exec=e}getTypeInfo(e){return this.exec.getTypeInfo(e)}All(e,t){const n=this.exec.evalExpression(e.args[0],t);let s=!0;if(n instanceof Me)return n.data.forEach(e=>{e||(s=!1)}),new Be(s?1:0,this.getTypeInfo('bool'));throw new Error(`All() expects a vector argument. Line ${e.line}`)}Any(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me){const e=n.data.some(e=>e);return new Be(e?1:0,this.getTypeInfo('bool'))}throw new Error(`Any() expects a vector argument. Line ${e.line}`)}Select(e,t){const n=this.exec.evalExpression(e.args[2],t);if(!(n instanceof Be))throw new Error(`Select() expects a bool condition. Line ${e.line}`);return n.value?this.exec.evalExpression(e.args[1],t):this.exec.evalExpression(e.args[0],t)}ArrayLength(e,t){let n=e.args[0];n instanceof ke&&(n=n.right);const s=this.exec.evalExpression(n,t);if(s instanceof Pe&&0===s.typeInfo.size){const e=s.typeInfo,t=s.buffer.byteLength/e.stride;return new Be(t,this.getTypeInfo('u32'))}return new Be(s.typeInfo.size,this.getTypeInfo('u32'))}Abs(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.abs(e)),n.typeInfo);const s=n;return new Be(Math.abs(s.value),s.typeInfo)}Acos(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.acos(e)),n.typeInfo);const s=n;return new Be(Math.acos(s.value),n.typeInfo)}Acosh(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.acosh(e)),n.typeInfo);const s=n;return new Be(Math.acosh(s.value),n.typeInfo)}Asin(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.asin(e)),n.typeInfo);const s=n;return new Be(Math.asin(s.value),n.typeInfo)}Asinh(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.asinh(e)),n.typeInfo);const s=n;return new Be(Math.asinh(s.value),n.typeInfo)}Atan(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.atan(e)),n.typeInfo);const s=n;return new Be(Math.atan(s.value),n.typeInfo)}Atanh(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.atanh(e)),n.typeInfo);const s=n;return new Be(Math.atanh(s.value),n.typeInfo)}Atan2(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t);if(n instanceof Me&&s instanceof Me)return new Me(n.data.map((e,t)=>Math.atan2(e,s.data[t])),n.typeInfo);const r=n,a=s;return new Be(Math.atan2(r.value,a.value),n.typeInfo)}Ceil(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.ceil(e)),n.typeInfo);const s=n;return new Be(Math.ceil(s.value),n.typeInfo)}_clamp(e,t,n){return Math.min(Math.max(e,t),n)}Clamp(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t),r=this.exec.evalExpression(e.args[2],t);if(n instanceof Me&&s instanceof Me&&r instanceof Me)return new Me(n.data.map((e,t)=>this._clamp(e,s.data[t],r.data[t])),n.typeInfo);const a=n,i=s,o=r;return new Be(this._clamp(a.value,i.value,o.value),n.typeInfo)}Cos(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.cos(e)),n.typeInfo);const s=n;return new Be(Math.cos(s.value),n.typeInfo)}Cosh(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.cosh(e)),n.typeInfo);const s=n;return new Be(Math.cos(s.value),n.typeInfo)}CountLeadingZeros(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.clz32(e)),n.typeInfo);const s=n;return new Be(Math.clz32(s.value),n.typeInfo)}_countOneBits(e){let t=0;for(;0!==e;)1&e&&t++,e>>=1;return t}CountOneBits(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>this._countOneBits(e)),n.typeInfo);const s=n;return new Be(this._countOneBits(s.value),n.typeInfo)}_countTrailingZeros(e){if(0===e)return 32;let t=0;for(;!(1&e);)e>>=1,t++;return t}CountTrailingZeros(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>this._countTrailingZeros(e)),n.typeInfo);const s=n;return new Be(this._countTrailingZeros(s.value),n.typeInfo)}Cross(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t);if(n instanceof Me&&s instanceof Me){if(3!==n.data.length||3!==s.data.length)return console.error(`Cross() expects 3D vectors. Line ${e.line}`),null;const t=n.data,r=s.data;return new Me([t[1]*r[2]-r[1]*t[2],t[2]*r[0]-r[2]*t[0],t[0]*r[1]-r[0]*t[1]],n.typeInfo)}return console.error(`Cross() expects vector arguments. Line ${e.line}`),null}Degrees(e,t){const n=this.exec.evalExpression(e.args[0],t),s=180/Math.PI;if(n instanceof Me)return new Me(n.data.map(e=>e*s),n.typeInfo);return new Be(n.value*s,this.getTypeInfo('f32'))}Determinant(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ue){const e=n.data,t=n.typeInfo.getTypeName(),s=t.endsWith('h')?this.getTypeInfo('f16'):this.getTypeInfo('f32');if('mat2x2'===t||'mat2x2f'===t||'mat2x2h'===t)return new Be(e[0]*e[3]-e[1]*e[2],s);if('mat2x3'===t||'mat2x3f'===t||'mat2x3h'===t)return new Be(e[0]*(e[4]*e[8]-e[5]*e[7])-e[1]*(e[3]*e[8]-e[5]*e[6])+e[2]*(e[3]*e[7]-e[4]*e[6]),s);if('mat2x4'===t||'mat2x4f'===t||'mat2x4h'===t)console.error(`TODO: Determinant for ${t}`);else if('mat3x2'===t||'mat3x2f'===t||'mat3x2h'===t)console.error(`TODO: Determinant for ${t}`);else{if('mat3x3'===t||'mat3x3f'===t||'mat3x3h'===t)return new Be(e[0]*(e[4]*e[8]-e[5]*e[7])-e[1]*(e[3]*e[8]-e[5]*e[6])+e[2]*(e[3]*e[7]-e[4]*e[6]),s);'mat3x4'===t||'mat3x4f'===t||'mat3x4h'===t||'mat4x2'===t||'mat4x2f'===t||'mat4x2h'===t||'mat4x3'===t||'mat4x3f'===t||'mat4x3h'===t?console.error(`TODO: Determinant for ${t}`):'mat4x4'!==t&&'mat4x4f'!==t&&'mat4x4h'!==t||console.error(`TODO: Determinant for ${t}`)}}return console.error(`Determinant expects a matrix argument. Line ${e.line}`),null}Distance(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t);if(n instanceof Me&&s instanceof Me){let e=0;for(let t=0;t<n.data.length;++t)e+=(n.data[t]-s.data[t])*(n.data[t]-s.data[t]);return new Be(Math.sqrt(e),this.getTypeInfo('f32'))}const r=n,a=s;return new Be(Math.abs(r.value-a.value),n.typeInfo)}_dot(e,t){let n=0;for(let s=0;s<e.length;++s)n+=t[s]*e[s];return n}Dot(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t);return n instanceof Me&&s instanceof Me?new Be(this._dot(n.data,s.data),this.getTypeInfo('f32')):(console.error(`Dot() expects vector arguments. Line ${e.line}`),null)}Dot4U8Packed(e,t){return console.error(`TODO: dot4U8Packed. Line ${e.line}`),null}Dot4I8Packed(e,t){return console.error(`TODO: dot4I8Packed. Line ${e.line}`),null}Exp(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.exp(e)),n.typeInfo);const s=n;return new Be(Math.exp(s.value),n.typeInfo)}Exp2(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.pow(2,e)),n.typeInfo);const s=n;return new Be(Math.pow(2,s.value),n.typeInfo)}ExtractBits(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t),r=this.exec.evalExpression(e.args[2],t);if('u32'!==s.typeInfo.name&&'x32'!==s.typeInfo.name)return console.error(`ExtractBits() expects an i32 offset argument. Line ${e.line}`),null;if('u32'!==r.typeInfo.name&&'x32'!==r.typeInfo.name)return console.error(`ExtractBits() expects an i32 count argument. Line ${e.line}`),null;const a=s.value,i=r.value;if(n instanceof Me)return new Me(n.data.map(e=>e>>a&(1<<i)-1),n.typeInfo);if('i32'!==n.typeInfo.name&&'x32'!==n.typeInfo.name)return console.error(`ExtractBits() expects an i32 argument. Line ${e.line}`),null;const o=n.value;return new Be(o>>a&(1<<i)-1,this.getTypeInfo('i32'))}FaceForward(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t),r=this.exec.evalExpression(e.args[2],t);if(n instanceof Me&&s instanceof Me&&r instanceof Me){const e=this._dot(s.data,r.data);return new Me(e<0?Array.from(n.data):n.data.map(e=>-e),n.typeInfo)}return console.error(`FaceForward() expects vector arguments. Line ${e.line}`),null}_firstLeadingBit(e){return 0===e?-1:31-Math.clz32(e)}FirstLeadingBit(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>this._firstLeadingBit(e)),n.typeInfo);const s=n;return new Be(this._firstLeadingBit(s.value),n.typeInfo)}_firstTrailingBit(e){return 0===e?-1:Math.log2(e&-e)}FirstTrailingBit(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>this._firstTrailingBit(e)),n.typeInfo);const s=n;return new Be(this._firstTrailingBit(s.value),n.typeInfo)}Floor(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.floor(e)),n.typeInfo);const s=n;return new Be(Math.floor(s.value),n.typeInfo)}Fma(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t),r=this.exec.evalExpression(e.args[2],t);if(n instanceof Me&&s instanceof Me&&r instanceof Me)return n.data.length!==s.data.length||n.data.length!==r.data.length?(console.error(`Fma() expects vectors of the same length. Line ${e.line}`),null):new Me(n.data.map((e,t)=>e*s.data[t]+r.data[t]),n.typeInfo);const a=n,i=s,o=r;return new Be(a.value*i.value+o.value,a.typeInfo)}Fract(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>e-Math.floor(e)),n.typeInfo);const s=n;return new Be(s.value-Math.floor(s.value),n.typeInfo)}Frexp(e,t){return console.error(`TODO: frexp. Line ${e.line}`),null}InsertBits(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t),r=this.exec.evalExpression(e.args[2],t),a=this.exec.evalExpression(e.args[3],t);if('u32'!==r.typeInfo.name&&'x32'!==r.typeInfo.name)return console.error(`InsertBits() expects an i32 offset argument. Line ${e.line}`),null;const i=r.value,o=(1<<a.value)-1<<i,c=~o;if(n instanceof Me&&s instanceof Me)return new Me(n.data.map((e,t)=>e&c|s.data[t]<<i&o),n.typeInfo);const l=n.value,u=s.value;return new Be(l&c|u<<i&o,n.typeInfo)}InverseSqrt(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>1/Math.sqrt(e)),n.typeInfo);const s=n;return new Be(1/Math.sqrt(s.value),n.typeInfo)}Ldexp(e,t){return console.error(`TODO: ldexp. Line ${e.line}`),null}Length(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me){let e=0;return n.data.forEach(t=>{e+=t*t}),new Be(Math.sqrt(e),this.getTypeInfo('f32'))}const s=n;return new Be(Math.abs(s.value),n.typeInfo)}Log(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.log(e)),n.typeInfo);const s=n;return new Be(Math.log(s.value),n.typeInfo)}Log2(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.log2(e)),n.typeInfo);const s=n;return new Be(Math.log2(s.value),n.typeInfo)}Max(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t);if(n instanceof Me&&s instanceof Me)return new Me(n.data.map((e,t)=>Math.max(e,s.data[t])),n.typeInfo);const r=n,a=s;return new Be(Math.max(r.value,a.value),n.typeInfo)}Min(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t);if(n instanceof Me&&s instanceof Me)return new Me(n.data.map((e,t)=>Math.min(e,s.data[t])),n.typeInfo);const r=n,a=s;return new Be(Math.min(r.value,a.value),n.typeInfo)}Mix(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t),r=this.exec.evalExpression(e.args[2],t);if(n instanceof Me&&s instanceof Me&&r instanceof Me)return new Me(n.data.map((e,t)=>n.data[t]*(1-r.data[t])+s.data[t]*r.data[t]),n.typeInfo);const a=s,i=r;return new Be(n.value*(1-i.value)+a.value*i.value,n.typeInfo)}Modf(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t);if(n instanceof Me&&s instanceof Me)return new Me(n.data.map((e,t)=>e%s.data[t]),n.typeInfo);const r=s;return new Be(n.value%r.value,n.typeInfo)}Normalize(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me){const s=this.Length(e,t).value;return new Me(n.data.map(e=>e/s),n.typeInfo)}return console.error(`Normalize() expects a vector argument. Line ${e.line}`),null}Pow(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t);if(n instanceof Me&&s instanceof Me)return new Me(n.data.map((e,t)=>Math.pow(e,s.data[t])),n.typeInfo);const r=n,a=s;return new Be(Math.pow(r.value,a.value),n.typeInfo)}QuantizeToF16(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>e),n.typeInfo);return new Be(n.value,n.typeInfo)}Radians(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>e*Math.PI/180),n.typeInfo);return new Be(n.value*Math.PI/180,this.getTypeInfo('f32'))}Reflect(e,t){let n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t);if(n instanceof Me&&s instanceof Me){const e=this._dot(n.data,s.data);return new Me(n.data.map((t,n)=>t-2*e*s.data[n]),n.typeInfo)}return console.error(`Reflect() expects vector arguments. Line ${e.line}`),null}Refract(e,t){let n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t),r=this.exec.evalExpression(e.args[2],t);if(n instanceof Me&&s instanceof Me&&r instanceof Be){const e=this._dot(s.data,n.data);return new Me(n.data.map((t,n)=>{const a=1-r.value*r.value*(1-e*e);if(a<0)return 0;const i=Math.sqrt(a);return r.value*t-(r.value*e+i)*s.data[n]}),n.typeInfo)}return console.error(`Refract() expects vector arguments and a scalar argument. Line ${e.line}`),null}ReverseBits(e,t){return console.error(`TODO: reverseBits. Line ${e.line}`),null}Round(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.round(e)),n.typeInfo);const s=n;return new Be(Math.round(s.value),n.typeInfo)}Saturate(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.min(Math.max(e,0),1)),n.typeInfo);const s=n;return new Be(Math.min(Math.max(s.value,0),1),n.typeInfo)}Sign(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.sign(e)),n.typeInfo);const s=n;return new Be(Math.sign(s.value),n.typeInfo)}Sin(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.sin(e)),n.typeInfo);const s=n;return new Be(Math.sin(s.value),n.typeInfo)}Sinh(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.sinh(e)),n.typeInfo);const s=n;return new Be(Math.sinh(s.value),n.typeInfo)}_smoothstep(e,t,n){const s=Math.min(Math.max((n-e)/(t-e),0),1);return s*s*(3-2*s)}SmoothStep(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t),r=this.exec.evalExpression(e.args[2],t);if(r instanceof Me&&n instanceof Me&&s instanceof Me)return new Me(r.data.map((e,t)=>this._smoothstep(n.data[t],s.data[t],e)),r.typeInfo);const a=n,i=s,o=r;return new Be(this._smoothstep(a.value,i.value,o.value),r.typeInfo)}Sqrt(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.sqrt(e)),n.typeInfo);const s=n;return new Be(Math.sqrt(s.value),n.typeInfo)}Step(e,t){const n=this.exec.evalExpression(e.args[0],t),s=this.exec.evalExpression(e.args[1],t);if(s instanceof Me&&n instanceof Me)return new Me(s.data.map((e,t)=>e<n.data[t]?0:1),s.typeInfo);const r=n;return new Be(s.value<r.value?0:1,r.typeInfo)}Tan(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.tan(e)),n.typeInfo);const s=n;return new Be(Math.tan(s.value),n.typeInfo)}Tanh(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.tanh(e)),n.typeInfo);const s=n;return new Be(Math.tanh(s.value),n.typeInfo)}_getTransposeType(e){const t=e.getTypeName();return'mat2x2f'===t||'mat2x2h'===t?e:'mat2x3f'===t?this.getTypeInfo('mat3x2f'):'mat2x3h'===t?this.getTypeInfo('mat3x2h'):'mat2x4f'===t?this.getTypeInfo('mat4x2f'):'mat2x4h'===t?this.getTypeInfo('mat4x2h'):'mat3x2f'===t?this.getTypeInfo('mat2x3f'):'mat3x2h'===t?this.getTypeInfo('mat2x3h'):'mat3x3f'===t||'mat3x3h'===t?e:'mat3x4f'===t?this.getTypeInfo('mat4x3f'):'mat3x4h'===t?this.getTypeInfo('mat4x3h'):'mat4x2f'===t?this.getTypeInfo('mat2x4f'):'mat4x2h'===t?this.getTypeInfo('mat2x4h'):'mat4x3f'===t?this.getTypeInfo('mat3x4f'):'mat4x3h'===t?this.getTypeInfo('mat3x4h'):('mat4x4f'===t||'mat4x4h'===t||console.error(`Invalid matrix type ${t}`),e)}Transpose(e,t){const n=this.exec.evalExpression(e.args[0],t);if(!(n instanceof Ue))return console.error(`Transpose() expects a matrix argument. Line ${e.line}`),null;const s=this._getTransposeType(n.typeInfo);if('mat2x2'===n.typeInfo.name||'mat2x2f'===n.typeInfo.name||'mat2x2h'===n.typeInfo.name){const e=n.data;return new Ue([e[0],e[2],e[1],e[3]],s)}if('mat2x3'===n.typeInfo.name||'mat2x3f'===n.typeInfo.name||'mat2x3h'===n.typeInfo.name){const e=n.data;return new Ue([e[0],e[3],e[6],e[1],e[4],e[7]],s)}if('mat2x4'===n.typeInfo.name||'mat2x4f'===n.typeInfo.name||'mat2x4h'===n.typeInfo.name){const e=n.data;return new Ue([e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13]],s)}if('mat3x2'===n.typeInfo.name||'mat3x2f'===n.typeInfo.name||'mat3x2h'===n.typeInfo.name){const e=n.data;return new Ue([e[0],e[3],e[1],e[4],e[2],e[5]],s)}if('mat3x3'===n.typeInfo.name||'mat3x3f'===n.typeInfo.name||'mat3x3h'===n.typeInfo.name){const e=n.data;return new Ue([e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8]],s)}if('mat3x4'===n.typeInfo.name||'mat3x4f'===n.typeInfo.name||'mat3x4h'===n.typeInfo.name){const e=n.data;return new Ue([e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14]],s)}if('mat4x2'===n.typeInfo.name||'mat4x2f'===n.typeInfo.name||'mat4x2h'===n.typeInfo.name){const e=n.data;return new Ue([e[0],e[4],e[1],e[5],e[2],e[6]],s)}if('mat4x3'===n.typeInfo.name||'mat4x3f'===n.typeInfo.name||'mat4x3h'===n.typeInfo.name){const e=n.data;return new Ue([e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]],s)}if('mat4x4'===n.typeInfo.name||'mat4x4f'===n.typeInfo.name||'mat4x4h'===n.typeInfo.name){const e=n.data;return new Ue([e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15]],s)}return console.error(`Invalid matrix type ${n.typeInfo.name}`),null}Trunc(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Me)return new Me(n.data.map(e=>Math.trunc(e)),n.typeInfo);const s=n;return new Be(Math.trunc(s.value),n.typeInfo)}Dpdx(e,t){return console.error(`TODO: dpdx. Line ${e.line}`),null}DpdxCoarse(e,t){return console.error(`TODO: dpdxCoarse. Line ${e.line}`),null}DpdxFine(e,t){return console.error('TODO: dpdxFine'),null}Dpdy(e,t){return console.error('TODO: dpdy'),null}DpdyCoarse(e,t){return console.error('TODO: dpdyCoarse'),null}DpdyFine(e,t){return console.error('TODO: dpdyFine'),null}Fwidth(e,t){return console.error('TODO: fwidth'),null}FwidthCoarse(e,t){return console.error('TODO: fwidthCoarse'),null}FwidthFine(e,t){return console.error('TODO: fwidthFine'),null}TextureDimensions(e,t){const n=e.args[0],s=e.args.length>1?this.exec.evalExpression(e.args[1],t).value:0;if(n instanceof ge){const r=n.name,a=t.getVariableValue(r);if(a instanceof We){if(s<0||s>=a.mipLevelCount)return console.error(`Invalid mip level for textureDimensions. Line ${e.line}`),null;const t=a.getMipLevelSize(s),n=a.dimension;return'1d'===n?new Be(t[0],this.getTypeInfo('u32')):'3d'===n?new Me(t,this.getTypeInfo('vec3u')):'2d'===n?new Me(t.slice(0,2),this.getTypeInfo('vec2u')):(console.error(`Invalid texture dimension ${n} not found. Line ${e.line}`),null)}return console.error(`Texture ${r} not found. Line ${e.line}`),null}return console.error(`Invalid texture argument for textureDimensions. Line ${e.line}`),null}TextureGather(e,t){return console.error('TODO: textureGather'),null}TextureGatherCompare(e,t){return console.error('TODO: textureGatherCompare'),null}TextureLoad(e,t){const n=e.args[0],s=this.exec.evalExpression(e.args[1],t),r=e.args.length>2?this.exec.evalExpression(e.args[2],t).value:0;if(!(s instanceof Me)||2!==s.data.length)return console.error(`Invalid UV argument for textureLoad. Line ${e.line}`),null;if(n instanceof ge){const a=n.name,i=t.getVariableValue(a);if(i instanceof We){const t=Math.floor(s.data[0]),n=Math.floor(s.data[1]);if(t<0||t>=i.width||n<0||n>=i.height)return console.error(`Texture ${a} out of bounds. Line ${e.line}`),null;const o=i.getPixel(t,n,0,r);return null===o?(console.error(`Invalid texture format for textureLoad. Line ${e.line}`),null):new Me(o,this.getTypeInfo('vec4f'))}return console.error(`Texture ${a} not found. Line ${e.line}`),null}return console.error(`Invalid texture argument for textureLoad. Line ${e.line}`),null}TextureNumLayers(e,t){const n=e.args[0];if(n instanceof ge){const s=n.name,r=t.getVariableValue(s);return r instanceof We?new Be(r.depthOrArrayLayers,this.getTypeInfo('u32')):(console.error(`Texture ${s} not found. Line ${e.line}`),null)}return console.error(`Invalid texture argument for textureNumLayers. Line ${e.line}`),null}TextureNumLevels(e,t){const n=e.args[0];if(n instanceof ge){const s=n.name,r=t.getVariableValue(s);return r instanceof We?new Be(r.mipLevelCount,this.getTypeInfo('u32')):(console.error(`Texture ${s} not found. Line ${e.line}`),null)}return console.error(`Invalid texture argument for textureNumLevels. Line ${e.line}`),null}TextureNumSamples(e,t){const n=e.args[0];if(n instanceof ge){const s=n.name,r=t.getVariableValue(s);return r instanceof We?new Be(r.sampleCount,this.getTypeInfo('u32')):(console.error(`Texture ${s} not found. Line ${e.line}`),null)}return console.error(`Invalid texture argument for textureNumSamples. Line ${e.line}`),null}TextureSample(e,t){return console.error('TODO: textureSample'),null}TextureSampleBias(e,t){return console.error('TODO: textureSampleBias'),null}TextureSampleCompare(e,t){return console.error('TODO: textureSampleCompare'),null}TextureSampleCompareLevel(e,t){return console.error('TODO: textureSampleCompareLevel'),null}TextureSampleGrad(e,t){return console.error('TODO: textureSampleGrad'),null}TextureSampleLevel(e,t){return console.error('TODO: textureSampleLevel'),null}TextureSampleBaseClampToEdge(e,t){return console.error('TODO: textureSampleBaseClampToEdge'),null}TextureStore(e,t){const n=e.args[0],s=this.exec.evalExpression(e.args[1],t),r=4===e.args.length?this.exec.evalExpression(e.args[2],t).value:0,a=4===e.args.length?this.exec.evalExpression(e.args[3],t).data:this.exec.evalExpression(e.args[2],t).data;if(4!==a.length)return console.error(`Invalid value argument for textureStore. Line ${e.line}`),null;if(!(s instanceof Me)||2!==s.data.length)return console.error(`Invalid UV argument for textureStore. Line ${e.line}`),null;if(n instanceof ge){const i=n.name,o=t.getVariableValue(i);if(o instanceof We){const t=o.getMipLevelSize(0),n=Math.floor(s.data[0]),c=Math.floor(s.data[1]);return n<0||n>=t[0]||c<0||c>=t[1]?(console.error(`Texture ${i} out of bounds. Line ${e.line}`),null):(o.setPixel(n,c,0,r,Array.from(a)),null)}return console.error(`Texture ${i} not found. Line ${e.line}`),null}return console.error(`Invalid texture argument for textureStore. Line ${e.line}`),null}AtomicLoad(e,t){let n=e.args[0];n instanceof ke&&(n=n.right);const s=this.exec.getVariableName(n,t);return t.getVariable(s).value.getSubData(this.exec,n.postfix,t)}AtomicStore(e,t){let n=e.args[0];n instanceof ke&&(n=n.right);const s=this.exec.getVariableName(n,t),r=t.getVariable(s);let a=e.args[1];const i=this.exec.evalExpression(a,t),o=r.value.getSubData(this.exec,n.postfix,t);return o instanceof Be&&i instanceof Be&&(o.value=i.value),r.value instanceof Pe&&r.value.setDataValue(this.exec,o,n.postfix,t),null}AtomicAdd(e,t){let n=e.args[0];n instanceof ke&&(n=n.right);const s=this.exec.getVariableName(n,t),r=t.getVariable(s);let a=e.args[1];const i=this.exec.evalExpression(a,t),o=r.value.getSubData(this.exec,n.postfix,t),c=new Be(o.value,o.typeInfo);return o instanceof Be&&i instanceof Be&&(o.value+=i.value),r.value instanceof Pe&&r.value.setDataValue(this.exec,o,n.postfix,t),c}AtomicSub(e,t){let n=e.args[0];n instanceof ke&&(n=n.right);const s=this.exec.getVariableName(n,t),r=t.getVariable(s);let a=e.args[1];const i=this.exec.evalExpression(a,t),o=r.value.getSubData(this.exec,n.postfix,t),c=new Be(o.value,o.typeInfo);return o instanceof Be&&i instanceof Be&&(o.value-=i.value),r.value instanceof Pe&&r.value.setDataValue(this.exec,o,n.postfix,t),c}AtomicMax(e,t){let n=e.args[0];n instanceof ke&&(n=n.right);const s=this.exec.getVariableName(n,t),r=t.getVariable(s);let a=e.args[1];const i=this.exec.evalExpression(a,t),o=r.value.getSubData(this.exec,n.postfix,t),c=new Be(o.value,o.typeInfo);return o instanceof Be&&i instanceof Be&&(o.value=Math.max(o.value,i.value)),r.value instanceof Pe&&r.value.setDataValue(this.exec,o,n.postfix,t),c}AtomicMin(e,t){let n=e.args[0];n instanceof ke&&(n=n.right);const s=this.exec.getVariableName(n,t),r=t.getVariable(s);let a=e.args[1];const i=this.exec.evalExpression(a,t),o=r.value.getSubData(this.exec,n.postfix,t),c=new Be(o.value,o.typeInfo);return o instanceof Be&&i instanceof Be&&(o.value=Math.min(o.value,i.value)),r.value instanceof Pe&&r.value.setDataValue(this.exec,o,n.postfix,t),c}AtomicAnd(e,t){let n=e.args[0];n instanceof ke&&(n=n.right);const s=this.exec.getVariableName(n,t),r=t.getVariable(s);let a=e.args[1];const i=this.exec.evalExpression(a,t),o=r.value.getSubData(this.exec,n.postfix,t),c=new Be(o.value,o.typeInfo);return o instanceof Be&&i instanceof Be&&(o.value=o.value&i.value),r.value instanceof Pe&&r.value.setDataValue(this.exec,o,n.postfix,t),c}AtomicOr(e,t){let n=e.args[0];n instanceof ke&&(n=n.right);const s=this.exec.getVariableName(n,t),r=t.getVariable(s);let a=e.args[1];const i=this.exec.evalExpression(a,t),o=r.value.getSubData(this.exec,n.postfix,t),c=new Be(o.value,o.typeInfo);return o instanceof Be&&i instanceof Be&&(o.value=o.value|i.value),r.value instanceof Pe&&r.value.setDataValue(this.exec,o,n.postfix,t),c}AtomicXor(e,t){let n=e.args[0];n instanceof ke&&(n=n.right);const s=this.exec.getVariableName(n,t),r=t.getVariable(s);let a=e.args[1];const i=this.exec.evalExpression(a,t),o=r.value.getSubData(this.exec,n.postfix,t),c=new Be(o.value,o.typeInfo);return o instanceof Be&&i instanceof Be&&(o.value=o.value^i.value),r.value instanceof Pe&&r.value.setDataValue(this.exec,o,n.postfix,t),c}AtomicExchange(e,t){let n=e.args[0];n instanceof ke&&(n=n.right);const s=this.exec.getVariableName(n,t),r=t.getVariable(s);let a=e.args[1];const i=this.exec.evalExpression(a,t),o=r.value.getSubData(this.exec,n.postfix,t),c=new Be(o.value,o.typeInfo);return o instanceof Be&&i instanceof Be&&(o.value=i.value),r.value instanceof Pe&&r.value.setDataValue(this.exec,o,n.postfix,t),c}AtomicCompareExchangeWeak(e,t){return console.error('TODO: atomicCompareExchangeWeak'),null}Pack4x8snorm(e,t){return console.error('TODO: pack4x8snorm'),null}Pack4x8unorm(e,t){return console.error('TODO: pack4x8unorm'),null}Pack4xI8(e,t){return console.error('TODO: pack4xI8'),null}Pack4xU8(e,t){return console.error('TODO: pack4xU8'),null}Pack4x8Clamp(e,t){return console.error('TODO: pack4x8Clamp'),null}Pack4xU8Clamp(e,t){return console.error('TODO: pack4xU8Clamp'),null}Pack2x16snorm(e,t){return console.error('TODO: pack2x16snorm'),null}Pack2x16unorm(e,t){return console.error('TODO: pack2x16unorm'),null}Pack2x16float(e,t){return console.error('TODO: pack2x16float'),null}Unpack4x8snorm(e,t){return console.error('TODO: unpack4x8snorm'),null}Unpack4x8unorm(e,t){return console.error('TODO: unpack4x8unorm'),null}Unpack4xI8(e,t){return console.error('TODO: unpack4xI8'),null}Unpack4xU8(e,t){return console.error('TODO: unpack4xU8'),null}Unpack2x16snorm(e,t){return console.error('TODO: unpack2x16snorm'),null}Unpack2x16unorm(e,t){return console.error('TODO: unpack2x16unorm'),null}Unpack2x16float(e,t){return console.error('TODO: unpack2x16float'),null}StorageBarrier(e,t){return null}TextureBarrier(e,t){return null}WorkgroupBarrier(e,t){return null}WorkgroupUniformLoad(e,t){return null}SubgroupAdd(e,t){return console.error('TODO: subgroupAdd'),null}SubgroupExclusiveAdd(e,t){return console.error('TODO: subgroupExclusiveAdd'),null}SubgroupInclusiveAdd(e,t){return console.error('TODO: subgroupInclusiveAdd'),null}SubgroupAll(e,t){return console.error('TODO: subgroupAll'),null}SubgroupAnd(e,t){return console.error('TODO: subgroupAnd'),null}SubgroupAny(e,t){return console.error('TODO: subgroupAny'),null}SubgroupBallot(e,t){return console.error('TODO: subgroupBallot'),null}SubgroupBroadcast(e,t){return console.error('TODO: subgroupBroadcast'),null}SubgroupBroadcastFirst(e,t){return console.error('TODO: subgroupBroadcastFirst'),null}SubgroupElect(e,t){return console.error('TODO: subgroupElect'),null}SubgroupMax(e,t){return console.error('TODO: subgroupMax'),null}SubgroupMin(e,t){return console.error('TODO: subgroupMin'),null}SubgroupMul(e,t){return console.error('TODO: subgroupMul'),null}SubgroupExclusiveMul(e,t){return console.error('TODO: subgroupExclusiveMul'),null}SubgroupInclusiveMul(e,t){return console.error('TODO: subgroupInclusiveMul'),null}SubgroupOr(e,t){return console.error('TODO: subgroupOr'),null}SubgroupShuffle(e,t){return console.error('TODO: subgroupShuffle'),null}SubgroupShuffleDown(e,t){return console.error('TODO: subgroupShuffleDown'),null}SubgroupShuffleUp(e,t){return console.error('TODO: subgroupShuffleUp'),null}SubgroupShuffleXor(e,t){return console.error('TODO: subgroupShuffleXor'),null}SubgroupXor(e,t){return console.error('TODO: subgroupXor'),null}QuadBroadcast(e,t){return console.error('TODO: quadBroadcast'),null}QuadSwapDiagonal(e,t){return console.error('TODO: quadSwapDiagonal'),null}QuadSwapX(e,t){return console.error('TODO: quadSwapX'),null}QuadSwapY(e,t){return console.error('TODO: quadSwapY'),null}}const ft={vec2:2,vec2f:2,vec2i:2,vec2u:2,vec2b:2,vec2h:2,vec3:3,vec3f:3,vec3i:3,vec3u:3,vec3b:3,vec3h:3,vec4:4,vec4f:4,vec4i:4,vec4u:4,vec4b:4,vec4h:4},pt={mat2x2:[2,2,4],mat2x2f:[2,2,4],mat2x2h:[2,2,4],mat2x3:[2,3,6],mat2x3f:[2,3,6],mat2x3h:[2,3,6],mat2x4:[2,4,8],mat2x4f:[2,4,8],mat2x4h:[2,4,8],mat3x2:[3,2,6],mat3x2f:[3,2,6],mat3x2h:[3,2,6],mat3x3:[3,3,9],mat3x3f:[3,3,9],mat3x3h:[3,3,9],mat3x4:[3,4,12],mat3x4f:[3,4,12],mat3x4h:[3,4,12],mat4x2:[4,2,8],mat4x2f:[4,2,8],mat4x2h:[4,2,8],mat4x3:[4,3,12],mat4x3f:[4,3,12],mat4x3h:[4,3,12],mat4x4:[4,4,16],mat4x4f:[4,4,16],mat4x4h:[4,4,16]};class dt extends ut{constructor(e,t){var n;super(),this.ast=null!=e?e:[],this.reflection=new at,this.reflection.updateAST(this.ast),this.context=null!==(n=null==t?void 0:t.clone())&&void 0!==n?n:new lt,this.builtins=new ht(this),this.typeInfo={bool:this.getTypeInfo(ae.bool),i32:this.getTypeInfo(ae.i32),u32:this.getTypeInfo(ae.u32),f32:this.getTypeInfo(ae.f32),f16:this.getTypeInfo(ae.f16),vec2f:this.getTypeInfo(ce.vec2f),vec2u:this.getTypeInfo(ce.vec2u),vec2i:this.getTypeInfo(ce.vec2i),vec2h:this.getTypeInfo(ce.vec2h),vec3f:this.getTypeInfo(ce.vec3f),vec3u:this.getTypeInfo(ce.vec3u),vec3i:this.getTypeInfo(ce.vec3i),vec3h:this.getTypeInfo(ce.vec3h),vec4f:this.getTypeInfo(ce.vec4f),vec4u:this.getTypeInfo(ce.vec4u),vec4i:this.getTypeInfo(ce.vec4i),vec4h:this.getTypeInfo(ce.vec4h),mat2x2f:this.getTypeInfo(ce.mat2x2f),mat2x3f:this.getTypeInfo(ce.mat2x3f),mat2x4f:this.getTypeInfo(ce.mat2x4f),mat3x2f:this.getTypeInfo(ce.mat3x2f),mat3x3f:this.getTypeInfo(ce.mat3x3f),mat3x4f:this.getTypeInfo(ce.mat3x4f),mat4x2f:this.getTypeInfo(ce.mat4x2f),mat4x3f:this.getTypeInfo(ce.mat4x3f),mat4x4f:this.getTypeInfo(ce.mat4x4f)}}getVariableValue(e){var t,n;const r=null!==(n=null===(t=this.context.getVariable(e))||void 0===t?void 0:t.value)&&void 0!==n?n:null;if(null===r)return null;if(r instanceof Be)return r.value;if(r instanceof Me)return Array.from(r.data);if(r instanceof Ue)return Array.from(r.data);if(r instanceof Pe&&r.typeInfo instanceof s){if('u32'===r.typeInfo.format.name)return Array.from(new Uint32Array(r.buffer,r.offset,r.typeInfo.count));if('i32'===r.typeInfo.format.name)return Array.from(new Int32Array(r.buffer,r.offset,r.typeInfo.count));if('f32'===r.typeInfo.format.name)return Array.from(new Float32Array(r.buffer,r.offset,r.typeInfo.count))}return console.error(`Unsupported return variable type ${r.typeInfo.name}`),null}execute(e){(e=null!=e?e:{}).constants&&this._setOverrides(e.constants,this.context),this._execStatements(this.ast,this.context)}dispatchWorkgroups(e,t,n,s){const r=this.context.clone();(s=null!=s?s:{}).constants&&this._setOverrides(s.constants,r),this._execStatements(this.ast,r);const a=r.getFunction(e);if(!a)return void console.error(`Function ${e} not found`);if('number'==typeof t)t=[t,1,1];else{if(0===t.length)return void console.error('Invalid dispatch count');1===t.length?t=[t[0],1,1]:2===t.length?t=[t[0],t[1],1]:t.length>3&&(t=[t[0],t[1],t[2]])}const i=t[0],o=t[1],c=t[2],l=this.getTypeInfo('vec3u');r.setVariable('@num_workgroups',new Me(t,l));const u=this.reflection.getFunctionInfo(e);null===u&&console.error(`Function ${e} not found in reflection data`);for(const e in n)for(const t in n[e]){const s=n[e][t];r.variables.forEach(n=>{var r;const a=n.node;if(null==a?void 0:a.attributes){let i=null,o=null;for(const e of a.attributes)'binding'===e.name?i=e.value:'group'===e.name&&(o=e.value);if(t==i&&e==o){let i=!1;for(const s of u.resources)if(s.name===n.name&&s.group===parseInt(e)&&s.binding===parseInt(t)){i=!0;break}if(i)if(void 0!==s.texture&&void 0!==s.descriptor){const e=new We(s.texture,this.getTypeInfo(a.type),s.descriptor,null!==(r=s.texture.view)&&void 0!==r?r:null);n.value=e}else void 0!==s.uniform?n.value=new Pe(s.uniform,this.getTypeInfo(a.type)):n.value=new Pe(s,this.getTypeInfo(a.type))}}})}for(let e=0;e<c;++e)for(let t=0;t<o;++t)for(let n=0;n<i;++n)r.setVariable('@workgroup_id',new Me([n,t,e],this.getTypeInfo('vec3u'))),this._dispatchWorkgroup(a,[n,t,e],r)}execStatement(e,t){if(e instanceof Y)return this.evalExpression(e.value,t);if(e instanceof se){if(e.condition){const n=this.evalExpression(e.condition,t);if(!(n instanceof Be))throw new Error('Invalid break-if condition');if(!n.value)return null}return dt._breakObj}if(e instanceof re)return dt._continueObj;if(e instanceof U)this._let(e,t);else if(e instanceof F)this._var(e,t);else if(e instanceof P)this._const(e,t);else if(e instanceof D)this._function(e,t);else{if(e instanceof Q)return this._if(e,t);if(e instanceof Z)return this._switch(e,t);if(e instanceof B)return this._for(e,t);if(e instanceof V)return this._while(e,t);if(e instanceof j)return this._loop(e,t);if(e instanceof O){const n=t.clone();return n.currentFunctionName=t.currentFunctionName,this._execStatements(e.body,n)}if(e instanceof G)this._assign(e,t);else if(e instanceof R)this._increment(e,t);else{if(e instanceof oe)return null;if(e instanceof M){const n=e.name;null===t.getVariable(n)&&t.setVariable(n,new Be(0,this.getTypeInfo('u32')))}else if(e instanceof X)this._call(e,t);else{if(e instanceof ee)return null;if(e instanceof te)return null;console.error('Invalid statement type.',e,`Line ${e.line}`)}}}return null}evalExpression(e,t){return e instanceof Ie?this._evalBinaryOp(e,t):e instanceof xe?this._evalLiteral(e,t):e instanceof ge?this._evalVariable(e,t):e instanceof me?this._evalCall(e,t):e instanceof de?this._evalCreate(e,t):e instanceof _e?this._evalConst(e,t):e instanceof ye?this._evalBitcast(e,t):e instanceof ke?this._evalUnaryOp(e,t):(console.error('Invalid expression type',e,`Line ${e.line}`),null)}getTypeInfo(e){var t;if(e instanceof ae){const t=this.reflection.getTypeInfo(e);if(null!==t)return t}let n=null!==(t=this.typeInfo[e])&&void 0!==t?t:null;return null!==n||(n=this.reflection.getTypeInfoByName(e)),n}_setOverrides(e,t){for(const n in e){const s=e[n],r=this.reflection.getOverrideInfo(n);null!==r?(null===r.type&&(r.type=this.getTypeInfo('u32')),'u32'===r.type.name||'i32'===r.type.name||'f32'===r.type.name||'f16'===r.type.name?t.setVariable(n,new Be(s,r.type)):'bool'===r.type.name?t.setVariable(n,new Be(s?1:0,r.type)):'vec2'===r.type.name||'vec3'===r.type.name||'vec4'===r.type.name||'vec2f'===r.type.name||'vec3f'===r.type.name||'vec4f'===r.type.name||'vec2i'===r.type.name||'vec3i'===r.type.name||'vec4i'===r.type.name||'vec2u'===r.type.name||'vec3u'===r.type.name||'vec4u'===r.type.name||'vec2h'===r.type.name||'vec3h'===r.type.name||'vec4h'===r.type.name?t.setVariable(n,new Me(s,r.type)):console.error(`Invalid constant type for ${n}`)):console.error(`Override ${n} does not exist in the shader.`)}}_dispatchWorkgroup(e,t,n){const s=[1,1,1];for(const t of e.node.attributes)if('workgroup_size'===t.name){if(t.value.length>0){const e=n.getVariableValue(t.value[0]);s[0]=e instanceof Be?e.value:parseInt(t.value[0])}if(t.value.length>1){const e=n.getVariableValue(t.value[1]);s[1]=e instanceof Be?e.value:parseInt(t.value[1])}if(t.value.length>2){const e=n.getVariableValue(t.value[2]);s[2]=e instanceof Be?e.value:parseInt(t.value[2])}}const r=this.getTypeInfo('vec3u'),a=this.getTypeInfo('u32');n.setVariable('@workgroup_size',new Me(s,r));const i=s[0],o=s[1],c=s[2];for(let l=0,u=0;l<c;++l)for(let c=0;c<o;++c)for(let o=0;o<i;++o,++u){const i=[o,c,l],h=[o+t[0]*s[0],c+t[1]*s[1],l+t[2]*s[2]];n.setVariable('@local_invocation_id',new Me(i,r)),n.setVariable('@global_invocation_id',new Me(h,r)),n.setVariable('@local_invocation_index',new Be(u,a)),this._dispatchExec(e,n)}}_dispatchExec(e,t){for(const n of e.node.args)for(const e of n.attributes)if('builtin'===e.name){const s=`@${e.value}`,r=t.getVariable(s);void 0!==r&&t.variables.set(n.name,r)}this._execStatements(e.node.body,t)}getVariableName(e,t){for(;e instanceof ke;)e=e.right;return e instanceof ge?e.name:(console.error('Unknown variable type',e,'Line',e.line),null)}_execStatements(e,t){for(const n of e){if(n instanceof Array){const e=t.clone(),s=this._execStatements(n,e);if(s)return s;continue}const e=this.execStatement(n,t);if(e)return e}return null}_call(e,t){const n=t.clone();n.currentFunctionName=e.name;const s=t.getFunction(e.name);if(s){for(let t=0;t<s.node.args.length;++t){const r=s.node.args[t],a=this.evalExpression(e.args[t],n);n.setVariable(r.name,a,r)}this._execStatements(s.node.body,n)}else if(e.isBuiltin)this._callBuiltinFunction(e,n);else{this.getTypeInfo(e.name)&&this._evalCreate(e,t)}}_increment(e,t){const n=this.getVariableName(e.variable,t),s=t.getVariable(n);s?'++'===e.operator?s.value instanceof Be?s.value.value++:console.error(`Variable ${n} is not a scalar. Line ${e.line}`):'--'===e.operator?s.value instanceof Be?s.value.value--:console.error(`Variable ${n} is not a scalar. Line ${e.line}`):console.error(`Unknown increment operator ${e.operator}. Line ${e.line}`):console.error(`Variable ${n} not found. Line ${e.line}`)}_getVariableData(e,t){if(e instanceof ge){const n=this.getVariableName(e,t),s=t.getVariable(n);return null===s?(console.error(`Variable ${n} not found. Line ${e.line}`),null):s.value.getSubData(this,e.postfix,t)}if(e instanceof ke){if('*'===e.operator){const n=this._getVariableData(e.right,t);return n instanceof Oe?n.reference.getSubData(this,e.postfix,t):(console.error(`Variable ${e.right} is not a pointer. Line ${e.line}`),null)}if('&'===e.operator){const n=this._getVariableData(e.right,t);return new Oe(n)}}return null}_assign(e,t){let n=null,s='<var>',r=null;if(e.variable instanceof ke){const n=this._getVariableData(e.variable,t),s=this.evalExpression(e.value,t),r=e.operator;if('='===r){if(n instanceof Be||n instanceof Me||n instanceof Ue){if(s instanceof Be||s instanceof Me||s instanceof Ue&&n.data.length===s.data.length)return void n.data.set(s.data);console.error(`Invalid assignment. Line ${e.line}`)}else if(n instanceof Pe&&s instanceof Pe&&n.buffer.byteLength-n.offset>=s.buffer.byteLength-s.offset)return void(n.buffer.byteLength%4==0?new Uint32Array(n.buffer,n.offset,n.typeInfo.size/4).set(new Uint32Array(s.buffer,s.offset,s.typeInfo.size/4)):new Uint8Array(n.buffer,n.offset,n.typeInfo.size).set(new Uint8Array(s.buffer,s.offset,s.typeInfo.size)));return console.error(`Invalid assignment. Line ${e.line}`),null}if('+='===r)return n instanceof Be||n instanceof Me||n instanceof Ue?s instanceof Be||s instanceof Me||s instanceof Ue?void n.data.set(s.data.map((e,t)=>n.data[t]+e)):void console.error(`Invalid assignment . Line ${e.line}`):void console.error(`Invalid assignment. Line ${e.line}`);if('-='===r)return(n instanceof Be||n instanceof Me||n instanceof Ue)&&(s instanceof Be||s instanceof Me||s instanceof Ue)?void n.data.set(s.data.map((e,t)=>n.data[t]-e)):void console.error(`Invalid assignment. Line ${e.line}`)}if(e.variable instanceof ke){if('*'===e.variable.operator){s=this.getVariableName(e.variable.right,t);const r=t.getVariable(s);if(!(r&&r.value instanceof Oe))return void console.error(`Variable ${s} is not a pointer. Line ${e.line}`);n=r.value.reference;let a=e.variable.postfix;if(!a){let t=e.variable.right;for(;t instanceof ke;){if(t.postfix){a=t.postfix;break}t=t.right}}a&&(n=n.getSubData(this,a,t))}}else{r=e.variable.postfix,s=this.getVariableName(e.variable,t);const a=t.getVariable(s);if(null===a)return void console.error(`Variable ${s} not found. Line ${e.line}`);n=a.value}if(n instanceof Oe&&(n=n.reference),null===n)return void console.error(`Variable ${s} not found. Line ${e.line}`);const a=this.evalExpression(e.value,t),i=e.operator;if('='!==i){const s=n.getSubData(this,r,t);if(s instanceof Me&&a instanceof Be){const t=s.data,n=a.value;if('+='===i)for(let e=0;e<t.length;++e)t[e]+=n;else if('-='===i)for(let e=0;e<t.length;++e)t[e]-=n;else if('*='===i)for(let e=0;e<t.length;++e)t[e]*=n;else if('/='===i)for(let e=0;e<t.length;++e)t[e]/=n;else if('%='===i)for(let e=0;e<t.length;++e)t[e]%=n;else if('&='===i)for(let e=0;e<t.length;++e)t[e]&=n;else if('|='===i)for(let e=0;e<t.length;++e)t[e]|=n;else if('^='===i)for(let e=0;e<t.length;++e)t[e]^=n;else if('<<='===i)for(let e=0;e<t.length;++e)t[e]<<=n;else if('>>='===i)for(let e=0;e<t.length;++e)t[e]>>=n;else console.error(`Invalid operator ${i}. Line ${e.line}`)}else if(s instanceof Me&&a instanceof Me){const t=s.data,n=a.data;if(t.length!==n.length)return void console.error(`Vector length mismatch. Line ${e.line}`);if('+='===i)for(let e=0;e<t.length;++e)t[e]+=n[e];else if('-='===i)for(let e=0;e<t.length;++e)t[e]-=n[e];else if('*='===i)for(let e=0;e<t.length;++e)t[e]*=n[e];else if('/='===i)for(let e=0;e<t.length;++e)t[e]/=n[e];else if('%='===i)for(let e=0;e<t.length;++e)t[e]%=n[e];else if('&='===i)for(let e=0;e<t.length;++e)t[e]&=n[e];else if('|='===i)for(let e=0;e<t.length;++e)t[e]|=n[e];else if('^='===i)for(let e=0;e<t.length;++e)t[e]^=n[e];else if('<<='===i)for(let e=0;e<t.length;++e)t[e]<<=n[e];else if('>>='===i)for(let e=0;e<t.length;++e)t[e]>>=n[e];else console.error(`Invalid operator ${i}. Line ${e.line}`)}else{if(!(s instanceof Be&&a instanceof Be))return void console.error(`Invalid type for ${e.operator} operator. Line ${e.line}`);'+='===i?s.value+=a.value:'-='===i?s.value-=a.value:'*='===i?s.value*=a.value:'/='===i?s.value/=a.value:'%='===i?s.value%=a.value:'&='===i?s.value&=a.value:'|='===i?s.value|=a.value:'^='===i?s.value^=a.value:'<<='===i?s.value<<=a.value:'>>='===i?s.value>>=a.value:console.error(`Invalid operator ${i}. Line ${e.line}`)}return void(n instanceof Pe&&n.setDataValue(this,s,r,t))}if(n instanceof Pe)n.setDataValue(this,a,r,t);else if(r){if(!(n instanceof Me||n instanceof Ue))return void console.error(`Variable ${s} is not a vector or matrix. Line ${e.line}`);if(r instanceof ve){const i=this.evalExpression(r.index,t).value;if(n instanceof Me){if(!(a instanceof Be))return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);n.data[i]=a.value}else{if(!(n instanceof Ue))return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);{const i=this.evalExpression(r.index,t).value;if(i<0)return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);if(!(a instanceof Me))return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);{const t=n.typeInfo.getTypeName();if('mat2x2'===t||'mat2x2f'===t||'mat2x2h'===t){if(!(i<2&&2===a.data.length))return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);n.data[2*i]=a.data[0],n.data[2*i+1]=a.data[1]}else if('mat2x3'===t||'mat2x3f'===t||'mat2x3h'===t){if(!(i<2&&3===a.data.length))return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);n.data[3*i]=a.data[0],n.data[3*i+1]=a.data[1],n.data[3*i+2]=a.data[2]}else if('mat2x4'===t||'mat2x4f'===t||'mat2x4h'===t){if(!(i<2&&4===a.data.length))return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);n.data[4*i]=a.data[0],n.data[4*i+1]=a.data[1],n.data[4*i+2]=a.data[2],n.data[4*i+3]=a.data[3]}else if('mat3x2'===t||'mat3x2f'===t||'mat3x2h'===t){if(!(i<3&&2===a.data.length))return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);n.data[2*i]=a.data[0],n.data[2*i+1]=a.data[1]}else if('mat3x3'===t||'mat3x3f'===t||'mat3x3h'===t){if(!(i<3&&3===a.data.length))return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);n.data[3*i]=a.data[0],n.data[3*i+1]=a.data[1],n.data[3*i+2]=a.data[2]}else if('mat3x4'===t||'mat3x4f'===t||'mat3x4h'===t){if(!(i<3&&4===a.data.length))return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);n.data[4*i]=a.data[0],n.data[4*i+1]=a.data[1],n.data[4*i+2]=a.data[2],n.data[4*i+3]=a.data[3]}else if('mat4x2'===t||'mat4x2f'===t||'mat4x2h'===t){if(!(i<4&&2===a.data.length))return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);n.data[2*i]=a.data[0],n.data[2*i+1]=a.data[1]}else if('mat4x3'===t||'mat4x3f'===t||'mat4x3h'===t){if(!(i<4&&3===a.data.length))return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);n.data[3*i]=a.data[0],n.data[3*i+1]=a.data[1],n.data[3*i+2]=a.data[2]}else{if('mat4x4'!==t&&'mat4x4f'!==t&&'mat4x4h'!==t)return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);if(!(i<4&&4===a.data.length))return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);n.data[4*i]=a.data[0],n.data[4*i+1]=a.data[1],n.data[4*i+2]=a.data[2],n.data[4*i+3]=a.data[3]}}}}}else if(r instanceof pe){const t=r.value;if(!(n instanceof Me))return void console.error(`Invalid assignment to ${t}. Variable ${s} is not a vector. Line ${e.line}`);if(a instanceof Be){if(t.length>1)return void console.error(`Invalid assignment to ${t} for variable ${s}. Line ${e.line}`);if('x'===t)n.data[0]=a.value;else if('y'===t){if(n.data.length<2)return void console.error(`Invalid assignment to ${t} for variable ${s}. Line ${e.line}`);n.data[1]=a.value}else if('z'===t){if(n.data.length<3)return void console.error(`Invalid assignment to ${t} for variable ${s}. Line ${e.line}`);n.data[2]=a.value}else if('w'===t){if(n.data.length<4)return void console.error(`Invalid assignment to ${t} for variable ${s}. Line ${e.line}`);n.data[3]=a.value}}else{if(!(a instanceof Me))return void console.error(`Invalid assignment to ${s}. Line ${e.line}`);if(t.length!==a.data.length)return void console.error(`Invalid assignment to ${t} for variable ${s}. Line ${e.line}`);for(let r=0;r<t.length;++r){const i=t[r];if('x'===i||'r'===i)n.data[0]=a.data[r];else if('y'===i||'g'===i){if(a.data.length<2)return void console.error(`Invalid assignment to ${i} for variable ${s}. Line ${e.line}`);n.data[1]=a.data[r]}else if('z'===i||'b'===i){if(a.data.length<3)return void console.error(`Invalid assignment to ${i} for variable ${s}. Line ${e.line}`);n.data[2]=a.data[r]}else{if('w'!==i&&'a'!==i)return void console.error(`Invalid assignment to ${i} for variable ${s}. Line ${e.line}`);if(a.data.length<4)return void console.error(`Invalid assignment to ${i} for variable ${s}. Line ${e.line}`);n.data[3]=a.data[r]}}}}}else n instanceof Be&&a instanceof Be?n.value=a.value:n instanceof Me&&a instanceof Me||n instanceof Ue&&a instanceof Ue?n.data.set(a.data):console.error(`Invalid assignment to ${s}. Line ${e.line}`)}_function(e,t){const n=new ct(e);t.functions.set(e.name,n)}_const(e,t){let n=null;null!==e.value&&(n=this.evalExpression(e.value,t)),t.createVariable(e.name,n,e)}_let(e,t){let n=null;if(null!==e.value){if(n=this.evalExpression(e.value,t),null===n)return void console.error(`Invalid value for variable ${e.name}. Line ${e.line}`);e.value instanceof ke||(n=n.clone())}else{const s=e.type.name;if('f32'===s||'i32'===s||'u32'===s||'bool'===s||'f16'===s||'vec2'===s||'vec3'===s||'vec4'===s||'vec2f'===s||'vec3f'===s||'vec4f'===s||'vec2i'===s||'vec3i'===s||'vec4i'===s||'vec2u'===s||'vec3u'===s||'vec4u'===s||'vec2h'===s||'vec3h'===s||'vec4h'===s||'vec2b'===s||'vec3b'===s||'vec4b'===s||'mat2x2'===s||'mat2x3'===s||'mat2x4'===s||'mat3x2'===s||'mat3x3'===s||'mat3x4'===s||'mat4x2'===s||'mat4x3'===s||'mat4x4'===s||'mat2x2f'===s||'mat2x3f'===s||'mat2x4f'===s||'mat3x2f'===s||'mat3x3f'===s||'mat3x4f'===s||'mat4x2f'===s||'mat4x3f'===s||'mat4x4f'===s||'mat2x2h'===s||'mat2x3h'===s||'mat2x4h'===s||'mat3x2h'===s||'mat3x3h'===s||'mat3x4h'===s||'mat4x2h'===s||'mat4x3h'===s||'mat4x4h'===s||'array'===s){const s=new de(e.type,[]);n=this._evalCreate(s,t)}}t.createVariable(e.name,n,e)}_var(e,t){let n=null;if(null!==e.value){if(n=this.evalExpression(e.value,t),null===n)return void console.error(`Invalid value for variable ${e.name}. Line ${e.line}`);e.value instanceof ke||(n=n.clone())}else{if(null===e.type)return void console.error(`Variable ${e.name} has no type. Line ${e.line}`);const s=e.type.name;if('f32'===s||'i32'===s||'u32'===s||'bool'===s||'f16'===s||'vec2'===s||'vec3'===s||'vec4'===s||'vec2f'===s||'vec3f'===s||'vec4f'===s||'vec2i'===s||'vec3i'===s||'vec4i'===s||'vec2u'===s||'vec3u'===s||'vec4u'===s||'vec2h'===s||'vec3h'===s||'vec4h'===s||'vec2b'===s||'vec3b'===s||'vec4b'===s||'mat2x2'===s||'mat2x3'===s||'mat2x4'===s||'mat3x2'===s||'mat3x3'===s||'mat3x4'===s||'mat4x2'===s||'mat4x3'===s||'mat4x4'===s||'mat2x2f'===s||'mat2x3f'===s||'mat2x4f'===s||'mat3x2f'===s||'mat3x3f'===s||'mat3x4f'===s||'mat4x2f'===s||'mat4x3f'===s||'mat4x4f'===s||'mat2x2h'===s||'mat2x3h'===s||'mat2x4h'===s||'mat3x2h'===s||'mat3x3h'===s||'mat3x4h'===s||'mat4x2h'===s||'mat4x3h'===s||'mat4x4h'===s||e.type instanceof ue||e.type instanceof oe||e.type instanceof ce){const s=new de(e.type,[]);n=this._evalCreate(s,t)}}t.createVariable(e.name,n,e)}_switch(e,t){t=t.clone();const n=this.evalExpression(e.condition,t);if(!(n instanceof Be))return console.error(`Invalid if condition. Line ${e.line}`),null;let s=null;for(const r of e.cases)if(r instanceof Ae)for(const a of r.selectors){if(a instanceof Se){s=r;continue}const i=this.evalExpression(a,t);if(!(i instanceof Be))return console.error(`Invalid case selector. Line ${e.line}`),null;if(i.value===n.value)return this._execStatements(r.body,t)}else r instanceof Ee&&(s=r);return s?this._execStatements(s.body,t):null}_if(e,t){t=t.clone();const n=this.evalExpression(e.condition,t);if(!(n instanceof Be))return console.error(`Invalid if condition. Line ${e.line}`),null;if(n.value)return this._execStatements(e.body,t);for(const n of e.elseif){const s=this.evalExpression(n.condition,t);if(!(s instanceof Be))return console.error(`Invalid if condition. Line ${e.line}`),null;if(s.value)return this._execStatements(n.body,t)}return e.else?this._execStatements(e.else,t):null}_getScalarValue(e){return e instanceof Be?e.value:(console.error('Expected scalar value.',e),0)}_for(e,t){for(t=t.clone(),this.execStatement(e.init,t);this._getScalarValue(this.evalExpression(e.condition,t));){const n=this._execStatements(e.body,t);if(n===dt._breakObj)break;if(null!==n&&n!==dt._continueObj)return n;this.execStatement(e.increment,t)}return null}_loop(e,t){for(t=t.clone();;){const n=this._execStatements(e.body,t);if(n===dt._breakObj)break;if(n===dt._continueObj){if(e.continuing){if(this._execStatements(e.continuing.body,t)===dt._breakObj)break}}else if(null!==n)return n}return null}_while(e,t){for(t=t.clone();this._getScalarValue(this.evalExpression(e.condition,t));){const n=this._execStatements(e.body,t);if(n===dt._breakObj)break;if(n!==dt._continueObj&&null!==n)return n}return null}_evalBitcast(e,t){const n=this.evalExpression(e.value,t),s=e.type;if(n instanceof Be){const e=nt(n.value,n.typeInfo.name,s.name);return new Be(e,this.getTypeInfo(s))}if(n instanceof Me){const t=n.typeInfo.getTypeName();let r='';if(t.endsWith('f'))r='f32';else if(t.endsWith('i'))r='i32';else if(t.endsWith('u'))r='u32';else if(t.endsWith('b'))r='bool';else{if(!t.endsWith('h'))return console.error(`Unknown vector type ${t}. Line ${e.line}`),null;r='f16'}const a=s.getTypeName();let i='';if(a.endsWith('f'))i='f32';else if(a.endsWith('i'))i='i32';else if(a.endsWith('u'))i='u32';else if(a.endsWith('b'))i='bool';else{if(!a.endsWith('h'))return console.error(`Unknown vector type ${i}. Line ${e.line}`),null;i='f16'}const o=function(e,t,n){if(t===n)return e;const s=new Array(e.length);for(let r=0;r<e.length;r++)s[r]=nt(e[r],t,n);return s}(Array.from(n.data),r,i);return new Me(o,this.getTypeInfo(s))}return console.error(`TODO: bitcast for ${n.typeInfo.name}. Line ${e.line}`),null}_evalConst(e,t){return t.getVariableValue(e.name).clone().getSubData(this,e.postfix,t)}_evalCreate(e,t){var r;if(e instanceof de){if(null===e.type)return Ve.void;switch(e.type.getTypeName()){case'bool':case'i32':case'u32':case'f32':case'f16':return this._callConstructorValue(e,t);case'vec2':case'vec3':case'vec4':case'vec2f':case'vec3f':case'vec4f':case'vec2h':case'vec3h':case'vec4h':case'vec2i':case'vec3i':case'vec4i':case'vec2u':case'vec3u':case'vec4u':case'vec2b':case'vec3b':case'vec4b':return this._callConstructorVec(e,t);case'mat2x2':case'mat2x2f':case'mat2x2h':case'mat2x3':case'mat2x3f':case'mat2x3h':case'mat2x4':case'mat2x4f':case'mat2x4h':case'mat3x2':case'mat3x2f':case'mat3x2h':case'mat3x3':case'mat3x3f':case'mat3x3h':case'mat3x4':case'mat3x4f':case'mat3x4h':case'mat4x2':case'mat4x2f':case'mat4x2h':case'mat4x3':case'mat4x3f':case'mat4x3h':case'mat4x4':case'mat4x4f':case'mat4x4h':return this._callConstructorMatrix(e,t)}}const a=e instanceof de?e.type.name:e.name,i=e instanceof de?this.getTypeInfo(e.type):this.getTypeInfo(e.name);if(null===i)return console.error(`Unknown type ${a}. Line ${e.line}`),null;if(0===i.size)return null;const o=new Pe(new ArrayBuffer(i.size),i,0);if(i instanceof n){if(e.args)for(let n=0;n<e.args.length;++n){const s=i.members[n],r=e.args[n],a=this.evalExpression(r,t);o.setData(this,a,s.type,s.offset,t)}}else if(i instanceof s){let n=0;if(e.args)for(let s=0;s<e.args.length;++s){const a=e.args[s],c=this.evalExpression(a,t);null===i.format&&('x32'===(null===(r=c.typeInfo)||void 0===r?void 0:r.name)?i.format=this.getTypeInfo('i32'):i.format=c.typeInfo),o.setData(this,c,i.format,n,t),n+=i.stride}}else console.error(`Unknown type \"${a}\". Line ${e.line}`);return e instanceof de?o.getSubData(this,e.postfix,t):o}_evalLiteral(e,t){const n=this.getTypeInfo(e.type),s=n.name;if('x32'===s||'u32'===s||'f32'===s||'f16'===s||'i32'===s||'bool'===s){return new Be(e.scalarValue,n)}return'vec2'===s||'vec3'===s||'vec4'===s||'vec2f'===s||'vec3f'===s||'vec4f'===s||'vec2h'===s||'vec3h'===s||'vec4h'===s||'vec2i'===s||'vec3i'===s||'vec4i'===s||'vec2u'===s||'vec3u'===s||'vec4u'===s?this._callConstructorVec(e,t):'mat2x2'===s||'mat2x3'===s||'mat2x4'===s||'mat3x2'===s||'mat3x3'===s||'mat3x4'===s||'mat4x2'===s||'mat4x3'===s||'mat4x4'===s||'mat2x2f'===s||'mat2x3f'===s||'mat2x4f'===s||'mat3x2f'===s||'mat3x3f'===s||'mat3x4f'===s||'mat4x2f'===s||'mat4x3f'===s||'mat4x4f'===s||'mat2x2h'===s||'mat2x3h'===s||'mat2x4h'===s||'mat3x2h'===s||'mat3x3h'===s||'mat3x4h'===s||'mat4x2h'===s||'mat4x3h'===s||'mat4x4h'===s?this._callConstructorMatrix(e,t):e.value}_evalVariable(e,t){const n=t.getVariableValue(e.name);return null===n?n:n.getSubData(this,e.postfix,t)}_maxFormatTypeInfo(e){let t=e[0];if('f32'===t.name)return t;for(let n=1;n<e.length;++n){const s=dt._priority.get(t.name);dt._priority.get(e[n].name)<s&&(t=e[n])}return'x32'===t.name?this.getTypeInfo('i32'):t}_evalUnaryOp(e,t){const n=this.evalExpression(e.right,t);if('&'===e.operator)return new Oe(n);if('*'===e.operator)return n instanceof Oe?n.reference.getSubData(this,e.postfix,t):(console.error(`Invalid dereference. Line ${e.line}`),null);const s=n instanceof Be?n.value:n instanceof Me?Array.from(n.data):null;switch(e.operator){case'+':{if(Ge(s)){const e=s.map((e,t)=>+e);return new Me(e,n.typeInfo)}const e=s,t=this._maxFormatTypeInfo([n.typeInfo,n.typeInfo]);return new Be(+e,t)}case'-':{if(Ge(s)){const e=s.map((e,t)=>-e);return new Me(e,n.typeInfo)}const e=s,t=this._maxFormatTypeInfo([n.typeInfo,n.typeInfo]);return new Be(-e,t)}case'!':{if(Ge(s)){const e=s.map((e,t)=>e?0:1);return new Me(e,n.typeInfo)}const e=s,t=this._maxFormatTypeInfo([n.typeInfo,n.typeInfo]);return new Be(e?0:1,t)}case'~':{if(Ge(s)){const e=s.map((e,t)=>~e);return new Me(e,n.typeInfo)}const e=s,t=this._maxFormatTypeInfo([n.typeInfo,n.typeInfo]);return new Be(~e,t)}}return console.error(`Invalid unary operator ${e.operator}. Line ${e.line}`),null}_evalBinaryOp(e,t){const n=this.evalExpression(e.left,t),s=this.evalExpression(e.right,t),r=n instanceof Be?n.value:n instanceof Me||n instanceof Ue?Array.from(n.data):null,a=s instanceof Be?s.value:s instanceof Me||s instanceof Ue?Array.from(s.data):null;switch(e.operator){case'+':{if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e+s[t]);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t+e);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e+t);return new Me(t,s.typeInfo)}const t=r,i=a,o=this._maxFormatTypeInfo([n.typeInfo,s.typeInfo]);return new Be(t+i,o)}case'-':{if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e-s[t]);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t-e);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e-t);return new Me(t,s.typeInfo)}const t=r,i=a,o=this._maxFormatTypeInfo([n.typeInfo,s.typeInfo]);return new Be(t-i,o)}case'*':{if(Ge(r)&&Ge(a)){const t=r,i=a;if(n instanceof Ue&&s instanceof Ue){const r=function(e,t,n,s){if(void 0===pt[t.name]||void 0===pt[s.name])return null;const r=pt[t.name][0],a=pt[t.name][1],i=pt[s.name][0];if(r!==pt[s.name][1])return null;const o=new Array(i*a);for(let t=0;t<a;t++)for(let s=0;s<i;s++){let c=0;for(let i=0;i<r;i++)c+=e[i*a+t]*n[s*r+i];o[t*i+s]=c}return o}(t,n.typeInfo,i,s.typeInfo);if(null===r)return console.error(`Matrix multiplication failed. Line ${e.line}.`),null;const a=pt[s.typeInfo.name][0],o=pt[n.typeInfo.name][1],c=this.getTypeInfo(`mat${a}x${o}f`);return new Ue(r,c)}if(n instanceof Ue&&s instanceof Me){const r=function(e,t,n,s){if(void 0===pt[t.name]||void 0===ft[s.name])return null;const r=pt[t.name][0],a=pt[t.name][1];if(r!==n.length)return null;const i=new Array(a);for(let t=0;t<a;t++){let s=0;for(let i=0;i<r;i++)s+=e[i*a+t]*n[i];i[t]=s}return i}(t,n.typeInfo,i,s.typeInfo);return null===r?(console.error(`Matrix vector multiplication failed. Line ${e.line}.`),null):new Me(r,s.typeInfo)}if(n instanceof Me&&s instanceof Ue){const r=function(e,t,n,s){if(void 0===ft[t.name]||void 0===pt[s.name])return null;const r=pt[s.name][0],a=pt[s.name][1];if(a!==e.length)return null;const i=[];for(let t=0;t<r;t++){let s=0;for(let i=0;i<a;i++)s+=e[i]*n[i*r+t];i[t]=s}return i}(t,n.typeInfo,i,s.typeInfo);return null===r?(console.error(`Matrix vector multiplication failed. Line ${e.line}.`),null):new Me(r,n.typeInfo)}{if(t.length!==i.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const s=t.map((e,t)=>e*i[t]);return new Me(s,n.typeInfo)}}if(Ge(r)){const e=a,t=r.map((t,n)=>t*e);return n instanceof Ue?new Ue(t,n.typeInfo):new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e*t);return s instanceof Ue?new Ue(t,s.typeInfo):new Me(t,s.typeInfo)}const t=r,i=a,o=this._maxFormatTypeInfo([n.typeInfo,s.typeInfo]);return new Be(t*i,o)}case'%':{if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e%s[t]);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t%e);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e%t);return new Me(t,s.typeInfo)}const t=r,i=a,o=this._maxFormatTypeInfo([n.typeInfo,s.typeInfo]);return new Be(t%i,o)}case'/':{if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e/s[t]);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t/e);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e/t);return new Me(t,s.typeInfo)}const t=r,i=a,o=this._maxFormatTypeInfo([n.typeInfo,s.typeInfo]);return new Be(t/i,o)}case'&':{if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e&s[t]);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t&e);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e&t);return new Me(t,s.typeInfo)}const t=r,i=a,o=this._maxFormatTypeInfo([n.typeInfo,s.typeInfo]);return new Be(t&i,o)}case'|':{if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e|s[t]);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t|e);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e|t);return new Me(t,s.typeInfo)}const t=r,i=a,o=this._maxFormatTypeInfo([n.typeInfo,s.typeInfo]);return new Be(t|i,o)}case'^':{if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e^s[t]);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t^e);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e^t);return new Me(t,s.typeInfo)}const t=r,i=a,o=this._maxFormatTypeInfo([n.typeInfo,s.typeInfo]);return new Be(t^i,o)}case'<<':{if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e<<s[t]);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t<<e);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e<<t);return new Me(t,s.typeInfo)}const t=r,i=a,o=this._maxFormatTypeInfo([n.typeInfo,s.typeInfo]);return new Be(t<<i,o)}case'>>':{if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e>>s[t]);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t>>e);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e>>t);return new Me(t,s.typeInfo)}const t=r,i=a,o=this._maxFormatTypeInfo([n.typeInfo,s.typeInfo]);return new Be(t>>i,o)}case'>':if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e>s[t]?1:0);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t>e?1:0);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e>t?1:0);return new Me(t,s.typeInfo)}return new Be(r>a?1:0,this.getTypeInfo('bool'));case'<':if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e<s[t]?1:0);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t<e?1:0);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e<t?1:0);return new Me(t,s.typeInfo)}return new Be(r<a?1:0,this.getTypeInfo('bool'));case'==':if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e===s[t]?1:0);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t==e?1:0);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e==t?1:0);return new Me(t,s.typeInfo)}return new Be(r===a?1:0,this.getTypeInfo('bool'));case'!=':if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e!==s[t]?1:0);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t!==e?1:0);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e!==t?1:0);return new Me(t,s.typeInfo)}return new Be(r!==a?1:0,this.getTypeInfo('bool'));case'>=':if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e>=s[t]?1:0);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t>=e?1:0);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e>=t?1:0);return new Me(t,s.typeInfo)}return new Be(r>=a?1:0,this.getTypeInfo('bool'));case'<=':if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e<=s[t]?1:0);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t<=e?1:0);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e<=t?1:0);return new Me(t,s.typeInfo)}return new Be(r<=a?1:0,this.getTypeInfo('bool'));case'&&':if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e&&s[t]?1:0);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t&&e?1:0);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e&&t?1:0);return new Me(t,s.typeInfo)}return new Be(r&&a?1:0,this.getTypeInfo('bool'));case'||':if(Ge(r)&&Ge(a)){const t=r,s=a;if(t.length!==s.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const i=t.map((e,t)=>e||s[t]?1:0);return new Me(i,n.typeInfo)}if(Ge(r)){const e=a,t=r.map((t,n)=>t||e?1:0);return new Me(t,n.typeInfo)}if(Ge(a)){const e=r,t=a.map((t,n)=>e||t?1:0);return new Me(t,s.typeInfo)}return new Be(r||a?1:0,this.getTypeInfo('bool'))}return console.error(`Unknown operator ${e.operator}. Line ${e.line}`),null}_evalCall(e,t){if(null!==e.cachedReturnValue)return e.cachedReturnValue;const n=t.clone();n.currentFunctionName=e.name;const s=t.getFunction(e.name);if(!s){if(e.isBuiltin)return this._callBuiltinFunction(e,n);return this.getTypeInfo(e.name)?this._evalCreate(e,t):(console.error(`Unknown function \"${e.name}\". Line ${e.line}`),null)}for(let t=0;t<s.node.args.length;++t){const r=s.node.args[t],a=this.evalExpression(e.args[t],n);n.createVariable(r.name,a,r)}return this._execStatements(s.node.body,n)}_callBuiltinFunction(e,t){switch(e.name){case'all':return this.builtins.All(e,t);case'any':return this.builtins.Any(e,t);case'select':return this.builtins.Select(e,t);case'arrayLength':return this.builtins.ArrayLength(e,t);case'abs':return this.builtins.Abs(e,t);case'acos':return this.builtins.Acos(e,t);case'acosh':return this.builtins.Acosh(e,t);case'asin':return this.builtins.Asin(e,t);case'asinh':return this.builtins.Asinh(e,t);case'atan':return this.builtins.Atan(e,t);case'atanh':return this.builtins.Atanh(e,t);case'atan2':return this.builtins.Atan2(e,t);case'ceil':return this.builtins.Ceil(e,t);case'clamp':return this.builtins.Clamp(e,t);case'cos':return this.builtins.Cos(e,t);case'cosh':return this.builtins.Cosh(e,t);case'countLeadingZeros':return this.builtins.CountLeadingZeros(e,t);case'countOneBits':return this.builtins.CountOneBits(e,t);case'countTrailingZeros':return this.builtins.CountTrailingZeros(e,t);case'cross':return this.builtins.Cross(e,t);case'degrees':return this.builtins.Degrees(e,t);case'determinant':return this.builtins.Determinant(e,t);case'distance':return this.builtins.Distance(e,t);case'dot':return this.builtins.Dot(e,t);case'dot4U8Packed':return this.builtins.Dot4U8Packed(e,t);case'dot4I8Packed':return this.builtins.Dot4I8Packed(e,t);case'exp':return this.builtins.Exp(e,t);case'exp2':return this.builtins.Exp2(e,t);case'extractBits':return this.builtins.ExtractBits(e,t);case'faceForward':return this.builtins.FaceForward(e,t);case'firstLeadingBit':return this.builtins.FirstLeadingBit(e,t);case'firstTrailingBit':return this.builtins.FirstTrailingBit(e,t);case'floor':return this.builtins.Floor(e,t);case'fma':return this.builtins.Fma(e,t);case'fract':return this.builtins.Fract(e,t);case'frexp':return this.builtins.Frexp(e,t);case'insertBits':return this.builtins.InsertBits(e,t);case'inverseSqrt':return this.builtins.InverseSqrt(e,t);case'ldexp':return this.builtins.Ldexp(e,t);case'length':return this.builtins.Length(e,t);case'log':return this.builtins.Log(e,t);case'log2':return this.builtins.Log2(e,t);case'max':return this.builtins.Max(e,t);case'min':return this.builtins.Min(e,t);case'mix':return this.builtins.Mix(e,t);case'modf':return this.builtins.Modf(e,t);case'normalize':return this.builtins.Normalize(e,t);case'pow':return this.builtins.Pow(e,t);case'quantizeToF16':return this.builtins.QuantizeToF16(e,t);case'radians':return this.builtins.Radians(e,t);case'reflect':return this.builtins.Reflect(e,t);case'refract':return this.builtins.Refract(e,t);case'reverseBits':return this.builtins.ReverseBits(e,t);case'round':return this.builtins.Round(e,t);case'saturate':return this.builtins.Saturate(e,t);case'sign':return this.builtins.Sign(e,t);case'sin':return this.builtins.Sin(e,t);case'sinh':return this.builtins.Sinh(e,t);case'smoothstep':return this.builtins.SmoothStep(e,t);case'sqrt':return this.builtins.Sqrt(e,t);case'step':return this.builtins.Step(e,t);case'tan':return this.builtins.Tan(e,t);case'tanh':return this.builtins.Tanh(e,t);case'transpose':return this.builtins.Transpose(e,t);case'trunc':return this.builtins.Trunc(e,t);case'dpdx':return this.builtins.Dpdx(e,t);case'dpdxCoarse':return this.builtins.DpdxCoarse(e,t);case'dpdxFine':return this.builtins.DpdxFine(e,t);case'dpdy':return this.builtins.Dpdy(e,t);case'dpdyCoarse':return this.builtins.DpdyCoarse(e,t);case'dpdyFine':return this.builtins.DpdyFine(e,t);case'fwidth':return this.builtins.Fwidth(e,t);case'fwidthCoarse':return this.builtins.FwidthCoarse(e,t);case'fwidthFine':return this.builtins.FwidthFine(e,t);case'textureDimensions':return this.builtins.TextureDimensions(e,t);case'textureGather':return this.builtins.TextureGather(e,t);case'textureGatherCompare':return this.builtins.TextureGatherCompare(e,t);case'textureLoad':return this.builtins.TextureLoad(e,t);case'textureNumLayers':return this.builtins.TextureNumLayers(e,t);case'textureNumLevels':return this.builtins.TextureNumLevels(e,t);case'textureNumSamples':return this.builtins.TextureNumSamples(e,t);case'textureSample':return this.builtins.TextureSample(e,t);case'textureSampleBias':return this.builtins.TextureSampleBias(e,t);case'textureSampleCompare':return this.builtins.TextureSampleCompare(e,t);case'textureSampleCompareLevel':return this.builtins.TextureSampleCompareLevel(e,t);case'textureSampleGrad':return this.builtins.TextureSampleGrad(e,t);case'textureSampleLevel':return this.builtins.TextureSampleLevel(e,t);case'textureSampleBaseClampToEdge':return this.builtins.TextureSampleBaseClampToEdge(e,t);case'textureStore':return this.builtins.TextureStore(e,t);case'atomicLoad':return this.builtins.AtomicLoad(e,t);case'atomicStore':return this.builtins.AtomicStore(e,t);case'atomicAdd':return this.builtins.AtomicAdd(e,t);case'atomicSub':return this.builtins.AtomicSub(e,t);case'atomicMax':return this.builtins.AtomicMax(e,t);case'atomicMin':return this.builtins.AtomicMin(e,t);case'atomicAnd':return this.builtins.AtomicAnd(e,t);case'atomicOr':return this.builtins.AtomicOr(e,t);case'atomicXor':return this.builtins.AtomicXor(e,t);case'atomicExchange':return this.builtins.AtomicExchange(e,t);case'atomicCompareExchangeWeak':return this.builtins.AtomicCompareExchangeWeak(e,t);case'pack4x8snorm':return this.builtins.Pack4x8snorm(e,t);case'pack4x8unorm':return this.builtins.Pack4x8unorm(e,t);case'pack4xI8':return this.builtins.Pack4xI8(e,t);case'pack4xU8':return this.builtins.Pack4xU8(e,t);case'pack4x8Clamp':return this.builtins.Pack4x8Clamp(e,t);case'pack4xU8Clamp':return this.builtins.Pack4xU8Clamp(e,t);case'pack2x16snorm':return this.builtins.Pack2x16snorm(e,t);case'pack2x16unorm':return this.builtins.Pack2x16unorm(e,t);case'pack2x16float':return this.builtins.Pack2x16float(e,t);case'unpack4x8snorm':return this.builtins.Unpack4x8snorm(e,t);case'unpack4x8unorm':return this.builtins.Unpack4x8unorm(e,t);case'unpack4xI8':return this.builtins.Unpack4xI8(e,t);case'unpack4xU8':return this.builtins.Unpack4xU8(e,t);case'unpack2x16snorm':return this.builtins.Unpack2x16snorm(e,t);case'unpack2x16unorm':return this.builtins.Unpack2x16unorm(e,t);case'unpack2x16float':return this.builtins.Unpack2x16float(e,t);case'storageBarrier':return this.builtins.StorageBarrier(e,t);case'textureBarrier':return this.builtins.TextureBarrier(e,t);case'workgroupBarrier':return this.builtins.WorkgroupBarrier(e,t);case'workgroupUniformLoad':return this.builtins.WorkgroupUniformLoad(e,t);case'subgroupAdd':return this.builtins.SubgroupAdd(e,t);case'subgroupExclusiveAdd':return this.builtins.SubgroupExclusiveAdd(e,t);case'subgroupInclusiveAdd':return this.builtins.SubgroupInclusiveAdd(e,t);case'subgroupAll':return this.builtins.SubgroupAll(e,t);case'subgroupAnd':return this.builtins.SubgroupAnd(e,t);case'subgroupAny':return this.builtins.SubgroupAny(e,t);case'subgroupBallot':return this.builtins.SubgroupBallot(e,t);case'subgroupBroadcast':return this.builtins.SubgroupBroadcast(e,t);case'subgroupBroadcastFirst':return this.builtins.SubgroupBroadcastFirst(e,t);case'subgroupElect':return this.builtins.SubgroupElect(e,t);case'subgroupMax':return this.builtins.SubgroupMax(e,t);case'subgroupMin':return this.builtins.SubgroupMin(e,t);case'subgroupMul':return this.builtins.SubgroupMul(e,t);case'subgroupExclusiveMul':return this.builtins.SubgroupExclusiveMul(e,t);case'subgroupInclusiveMul':return this.builtins.SubgroupInclusiveMul(e,t);case'subgroupOr':return this.builtins.SubgroupOr(e,t);case'subgroupShuffle':return this.builtins.SubgroupShuffle(e,t);case'subgroupShuffleDown':return this.builtins.SubgroupShuffleDown(e,t);case'subgroupShuffleUp':return this.builtins.SubgroupShuffleUp(e,t);case'subgroupShuffleXor':return this.builtins.SubgroupShuffleXor(e,t);case'subgroupXor':return this.builtins.SubgroupXor(e,t);case'quadBroadcast':return this.builtins.QuadBroadcast(e,t);case'quadSwapDiagonal':return this.builtins.QuadSwapDiagonal(e,t);case'quadSwapX':return this.builtins.QuadSwapX(e,t);case'quadSwapY':return this.builtins.QuadSwapY(e,t)}const n=t.getFunction(e.name);if(n){const s=t.clone();for(let t=0;t<n.node.args.length;++t){const r=n.node.args[t],a=this.evalExpression(e.args[t],s);s.setVariable(r.name,a,r)}return this._execStatements(n.node.body,s)}return null}_callConstructorValue(e,t){if(!e.args||0===e.args.length)return new Be(0,this.getTypeInfo(e.type));const n=this.evalExpression(e.args[0],t);return n.typeInfo=this.getTypeInfo(e.type),n.getSubData(this,e.postfix,t).clone()}_callConstructorVec(e,t){const n=this.getTypeInfo(e.type),s=e.type.getTypeName(),r=ft[s];if(void 0===r)return console.error(`Invalid vec constructor ${s}. Line ${e.line}`),null;const a=[];if(e instanceof xe)if(e.isVector){const t=e.vectorValue;for(const e of t)a.push(e)}else a.push(e.scalarValue);else if(e.args)for(const n of e.args){const e=this.evalExpression(n,t);if(e instanceof Me){const t=e.data;for(let e=0;e<t.length;++e){let n=t[e];a.push(n)}}else if(e instanceof Be){let t=e.value;a.push(t)}}if(e.type instanceof ce&&null===e.type.format&&(e.type.format=ce.f32),0===a.length){const s=new Array(r).fill(0);return new Me(s,n).getSubData(this,e.postfix,t)}if(1===a.length)for(;a.length<r;)a.push(a[0]);if(a.length<r)return console.error(`Invalid vec constructor. Line ${e.line}`),null;return new Me(a.length>r?a.slice(0,r):a,n).getSubData(this,e.postfix,t)}_callConstructorMatrix(e,t){const n=this.getTypeInfo(e.type),s=e.type.getTypeName(),r=pt[s];if(void 0===r)return console.error(`Invalid matrix constructor ${s}. Line ${e.line}`),null;const i=[];if(e instanceof xe)if(e.isVector){const t=e.vectorValue;for(const e of t)i.push(e)}else i.push(e.scalarValue);else if(e.args)for(const n of e.args){const e=this.evalExpression(n,t);e instanceof Me?i.push(...e.data):e instanceof Be?i.push(e.value):e instanceof Ue&&i.push(...e.data)}if(n instanceof a&&null===n.format&&(n.format=this.getTypeInfo('f32')),0===i.length){const s=new Array(r[2]).fill(0);return new Ue(s,n).getSubData(this,e.postfix,t)}return i.length!==r[2]?(console.error(`Invalid matrix constructor. Line ${e.line}`),null):new Ue(i,n).getSubData(this,e.postfix,t)}}dt._breakObj=new Ne(new e('BREAK',null),null),dt._continueObj=new Ne(new e('CONTINUE',null),null),dt._priority=new Map([['f32',0],['f16',1],['u32',2],['i32',3],['x32',3]]);class mt{constructor(){this.constants=new Map,this.aliases=new Map,this.structs=new Map}}class gt{constructor(){this._tokens=[],this._current=0,this._currentLine=1,this._deferArrayCountEval=[],this._currentLoop=[],this._context=new mt,this._exec=new dt,this._forwardTypeCount=0}parse(e){this._initialize(e),this._deferArrayCountEval.length=0;const t=[];for(;!this._isAtEnd();){const e=this._global_decl_or_directive();if(!e)break;t.push(e)}if(this._deferArrayCountEval.length>0){for(const e of this._deferArrayCountEval){const t=e.arrayType,n=e.countNode;if(n instanceof ge){const e=n.name,s=this._context.constants.get(e);if(s)try{const e=s.constEvaluate(this._exec);t.count=e}catch(e){}}}this._deferArrayCountEval.length=0}if(this._forwardTypeCount>0)for(const e of t)e.search(e=>{e instanceof Ce||e instanceof le?e.type=this._forwardType(e.type):e instanceof ue?e.format=this._forwardType(e.format):e instanceof F||e instanceof U||e instanceof P?e.type=this._forwardType(e.type):e instanceof D?e.returnType=this._forwardType(e.returnType):e instanceof $e&&(e.type=this._forwardType(e.type))});return t}_forwardType(e){if(e instanceof ie){const t=this._getType(e.name);if(t)return t}else e instanceof le?e.type=this._forwardType(e.type):e instanceof ue&&(e.format=this._forwardType(e.format));return e}_initialize(e){if(e)if('string'==typeof e){const t=new Re(e);this._tokens=t.scanTokens()}else this._tokens=e;else this._tokens=[];this._current=0}_updateNode(e,t){return e.line=null!=t?t:this._currentLine,e}_error(e,t){return{token:e,message:t,toString:()=>`${t}`}}_isAtEnd(){return this._current>=this._tokens.length||this._peek().type==He.eof}_match(e){if(e instanceof qe)return!!this._check(e)&&(this._advance(),!0);for(let t=0,n=e.length;t<n;++t){const n=e[t];if(this._check(n))return this._advance(),!0}return!1}_consume(e,t){if(this._check(e))return this._advance();throw this._error(this._peek(),`${t}. Line:${this._currentLine}`)}_check(e){if(this._isAtEnd())return!1;const t=this._peek();if(e instanceof Array){const n=t.type;let s=!1;for(const t of e){if(n===t)return!0;t===He.tokens.name&&(s=!0)}if(s){const e=He.tokens.name.rule.exec(t.lexeme);if(e&&0==e.index&&e[0]==t.lexeme)return!0}return!1}if(t.type===e)return!0;if(e===He.tokens.name){const e=He.tokens.name.rule.exec(t.lexeme);return e&&0==e.index&&e[0]==t.lexeme}return!1}_advance(){var e,t;return this._currentLine=null!==(t=null===(e=this._peek())||void 0===e?void 0:e.line)&&void 0!==t?t:-1,this._isAtEnd()||this._current++,this._previous()}_peek(){return this._tokens[this._current]}_previous(){return this._tokens[this._current-1]}_global_decl_or_directive(){for(;this._match(He.tokens.semicolon)&&!this._isAtEnd(););if(this._match(He.keywords.alias)){const e=this._type_alias();return this._consume(He.tokens.semicolon,'Expected \\';\\''),this._exec.reflection.updateAST([e]),e}if(this._match(He.keywords.diagnostic)){const e=this._diagnostic();return this._consume(He.tokens.semicolon,'Expected \\';\\''),this._exec.reflection.updateAST([e]),e}if(this._match(He.keywords.requires)){const e=this._requires_directive();return this._consume(He.tokens.semicolon,'Expected \\';\\''),this._exec.reflection.updateAST([e]),e}if(this._match(He.keywords.enable)){const e=this._enable_directive();return this._consume(He.tokens.semicolon,'Expected \\';\\''),this._exec.reflection.updateAST([e]),e}const e=this._attribute();if(this._check(He.keywords.var)){const t=this._global_variable_decl();return null!=t&&(t.attributes=e),this._consume(He.tokens.semicolon,'Expected \\';\\'.'),this._exec.reflection.updateAST([t]),t}if(this._check(He.keywords.override)){const t=this._override_variable_decl();return null!=t&&(t.attributes=e),this._consume(He.tokens.semicolon,'Expected \\';\\'.'),this._exec.reflection.updateAST([t]),t}if(this._check(He.keywords.let)){const t=this._global_let_decl();return null!=t&&(t.attributes=e),this._consume(He.tokens.semicolon,'Expected \\';\\'.'),this._exec.reflection.updateAST([t]),t}if(this._check(He.keywords.const)){const t=this._global_const_decl();return null!=t&&(t.attributes=e),this._consume(He.tokens.semicolon,'Expected \\';\\'.'),this._exec.reflection.updateAST([t]),t}if(this._check(He.keywords.struct)){const t=this._struct_decl();return null!=t&&(t.attributes=e),this._exec.reflection.updateAST([t]),t}if(this._check(He.keywords.fn)){const t=this._function_decl();return null!=t&&(t.attributes=e),this._exec.reflection.updateAST([t]),t}return null}_function_decl(){if(!this._match(He.keywords.fn))return null;const e=this._currentLine,t=this._consume(He.tokens.ident,'Expected function name.').toString();this._consume(He.tokens.paren_left,'Expected \\'(\\' for function arguments.');const n=[];if(!this._check(He.tokens.paren_right))do{if(this._check(He.tokens.paren_right))break;const e=this._attribute(),t=this._consume(He.tokens.name,'Expected argument name.').toString();this._consume(He.tokens.colon,'Expected \\':\\' for argument type.');const s=this._attribute(),r=this._type_decl();null!=r&&(r.attributes=s,n.push(this._updateNode(new $e(t,r,e))))}while(this._match(He.tokens.comma));this._consume(He.tokens.paren_right,'Expected \\')\\' after function arguments.');let s=null;if(this._match(He.tokens.arrow)){const e=this._attribute();s=this._type_decl(),null!=s&&(s.attributes=e)}const r=this._compound_statement(),a=this._currentLine;return this._updateNode(new D(t,n,s,r,e,a),e)}_compound_statement(){const e=[];for(this._consume(He.tokens.brace_left,'Expected \\'{\\' for block.');!this._check(He.tokens.brace_right);){const t=this._statement();null!==t&&e.push(t)}return this._consume(He.tokens.brace_right,'Expected \\'}\\' for block.'),e}_statement(){for(;this._match(He.tokens.semicolon)&&!this._isAtEnd(););if(this._check(He.tokens.attr)&&this._attribute(),this._check(He.keywords.if))return this._if_statement();if(this._check(He.keywords.switch))return this._switch_statement();if(this._check(He.keywords.loop))return this._loop_statement();if(this._check(He.keywords.for))return this._for_statement();if(this._check(He.keywords.while))return this._while_statement();if(this._check(He.keywords.continuing))return this._continuing_statement();if(this._check(He.keywords.static_assert))return this._static_assert_statement();if(this._check(He.tokens.brace_left))return this._compound_statement();let e=null;if(this._check(He.keywords.return))e=this._return_statement();else if(this._check([He.keywords.var,He.keywords.let,He.keywords.const]))e=this._variable_statement();else if(this._match(He.keywords.discard))e=this._updateNode(new ne);else if(this._match(He.keywords.break)){const t=this._updateNode(new se);if(this._currentLoop.length>0){const e=this._currentLoop[this._currentLoop.length-1];t.loopId=e.id}e=t,this._check(He.keywords.if)&&(this._advance(),t.condition=this._optional_paren_expression())}else if(this._match(He.keywords.continue)){const t=this._updateNode(new re);if(!(this._currentLoop.length>0))throw this._error(this._peek(),`Continue statement must be inside a loop. Line: ${t.line}`);{const e=this._currentLoop[this._currentLoop.length-1];t.loopId=e.id}e=t}else e=this._increment_decrement_statement()||this._func_call_statement()||this._assignment_statement();return null!=e&&this._consume(He.tokens.semicolon,'Expected \\';\\' after statement.'),e}_static_assert_statement(){if(!this._match(He.keywords.static_assert))return null;const e=this._currentLine,t=this._optional_paren_expression();return this._updateNode(new N(t),e)}_while_statement(){if(!this._match(He.keywords.while))return null;const e=this._updateNode(new V(null,null));return this._currentLoop.push(e),e.condition=this._optional_paren_expression(),this._check(He.tokens.attr)&&this._attribute(),e.body=this._compound_statement(),this._currentLoop.pop(),e}_continuing_statement(){const e=this._currentLoop.length>0?this._currentLoop[this._currentLoop.length-1].id:-1;if(!this._match(He.keywords.continuing))return null;const t=this._currentLine,n=this._compound_statement();return this._updateNode(new O(n,e),t)}_for_statement(){if(!this._match(He.keywords.for))return null;this._consume(He.tokens.paren_left,'Expected \\'(\\'.');const e=this._updateNode(new B(null,null,null,null));return this._currentLoop.push(e),e.init=this._check(He.tokens.semicolon)?null:this._for_init(),this._consume(He.tokens.semicolon,'Expected \\';\\'.'),e.condition=this._check(He.tokens.semicolon)?null:this._short_circuit_or_expression(),this._consume(He.tokens.semicolon,'Expected \\';\\'.'),e.increment=this._check(He.tokens.paren_right)?null:this._for_increment(),this._consume(He.tokens.paren_right,'Expected \\')\\'.'),this._check(He.tokens.attr)&&this._attribute(),e.body=this._compound_statement(),this._currentLoop.pop(),e}_for_init(){return this._variable_statement()||this._func_call_statement()||this._assignment_statement()}_for_increment(){return this._func_call_statement()||this._increment_decrement_statement()||this._assignment_statement()}_variable_statement(){if(this._check(He.keywords.var)){const e=this._variable_decl();if(null===e)throw this._error(this._peek(),'Variable declaration expected.');let t=null;return this._match(He.tokens.equal)&&(t=this._short_circuit_or_expression()),this._updateNode(new F(e.name,e.type,e.storage,e.access,t),e.line)}if(this._match(He.keywords.let)){const e=this._currentLine,t=this._consume(He.tokens.name,'Expected name for let.').toString();let n=null;if(this._match(He.tokens.colon)){const e=this._attribute();n=this._type_decl(),null!=n&&(n.attributes=e)}this._consume(He.tokens.equal,'Expected \\'=\\' for let.');const s=this._short_circuit_or_expression();return this._updateNode(new U(t,n,null,null,s),e)}if(this._match(He.keywords.const)){const e=this._currentLine,t=this._consume(He.tokens.name,'Expected name for const.').toString();let n=null;if(this._match(He.tokens.colon)){const e=this._attribute();n=this._type_decl(),null!=n&&(n.attributes=e)}this._consume(He.tokens.equal,'Expected \\'=\\' for const.');const s=this._short_circuit_or_expression();return null===n&&s instanceof xe&&(n=s.type),this._updateNode(new P(t,n,null,null,s),e)}return null}_increment_decrement_statement(){const e=this._current,t=this._unary_expression();if(null==t)return null;if(!this._check(He.increment_operators))return this._current=e,null;const n=this._consume(He.increment_operators,'Expected increment operator');return this._updateNode(new R(n.type===He.tokens.plus_plus?W.increment:W.decrement,t))}_assignment_statement(){let e=null;const t=this._currentLine;if(this._check(He.tokens.brace_right))return null;let n=this._match(He.tokens.underscore);if(n||(e=this._unary_expression()),!n&&null==e)return null;const s=this._consume(He.assignment_operators,'Expected assignment operator.'),r=this._short_circuit_or_expression();return this._updateNode(new G(q.parse(s.lexeme),e,r),t)}_func_call_statement(){if(!this._check(He.tokens.ident))return null;const e=this._currentLine,t=this._current,n=this._consume(He.tokens.ident,'Expected function name.'),s=this._argument_expression_list();return null===s?(this._current=t,null):this._updateNode(new X(n.lexeme,s),e)}_loop_statement(){if(!this._match(He.keywords.loop))return null;this._check(He.tokens.attr)&&this._attribute(),this._consume(He.tokens.brace_left,'Expected \\'{\\' for loop.');const e=this._updateNode(new j([],null));this._currentLoop.push(e);let t=this._statement();for(;null!==t;){if(Array.isArray(t))for(let n of t)e.body.push(n);else e.body.push(t);if(t instanceof O){e.continuing=t;break}t=this._statement()}return this._currentLoop.pop(),this._consume(He.tokens.brace_right,'Expected \\'}\\' for loop.'),e}_switch_statement(){if(!this._match(He.keywords.switch))return null;const e=this._updateNode(new Z(null,[]));if(this._currentLoop.push(e),e.condition=this._optional_paren_expression(),this._check(He.tokens.attr)&&this._attribute(),this._consume(He.tokens.brace_left,'Expected \\'{\\' for switch.'),e.cases=this._switch_body(),null==e.cases||0==e.cases.length)throw this._error(this._previous(),'Expected \\'case\\' or \\'default\\'.');return this._consume(He.tokens.brace_right,'Expected \\'}\\' for switch.'),this._currentLoop.pop(),e}_switch_body(){const e=[];let t=!1;for(;this._check([He.keywords.default,He.keywords.case]);){if(this._match(He.keywords.case)){const n=this._case_selectors();for(const e of n)if(e instanceof Se){if(t)throw this._error(this._previous(),'Multiple default cases in switch statement.');t=!0;break}this._match(He.tokens.colon),this._check(He.tokens.attr)&&this._attribute(),this._consume(He.tokens.brace_left,'Exected \\'{\\' for switch case.');const s=this._case_body();this._consume(He.tokens.brace_right,'Exected \\'}\\' for switch case.'),e.push(this._updateNode(new Ae(n,s)))}if(this._match(He.keywords.default)){if(t)throw this._error(this._previous(),'Multiple default cases in switch statement.');this._match(He.tokens.colon),this._check(He.tokens.attr)&&this._attribute(),this._consume(He.tokens.brace_left,'Exected \\'{\\' for switch default.');const n=this._case_body();this._consume(He.tokens.brace_right,'Exected \\'}\\' for switch default.'),e.push(this._updateNode(new Ee(n)))}}return e}_case_selectors(){const e=[];for(this._match(He.keywords.default)?e.push(this._updateNode(new Se)):e.push(this._shift_expression());this._match(He.tokens.comma);)this._match(He.keywords.default)?e.push(this._updateNode(new Se)):e.push(this._shift_expression());return e}_case_body(){if(this._match(He.keywords.fallthrough))return this._consume(He.tokens.semicolon,'Expected \\';\\''),[];let e=this._statement();if(null==e)return[];e instanceof Array||(e=[e]);const t=this._case_body();return 0==t.length?e:[...e,t[0]]}_if_statement(){if(!this._match(He.keywords.if))return null;const e=this._currentLine,t=this._optional_paren_expression();this._check(He.tokens.attr)&&this._attribute();const n=this._compound_statement();let s=[];this._match_elseif()&&(this._check(He.tokens.attr)&&this._attribute(),s=this._elseif_statement(s));let r=null;return this._match(He.keywords.else)&&(this._check(He.tokens.attr)&&this._attribute(),r=this._compound_statement()),this._updateNode(new Q(t,n,s,r),e)}_match_elseif(){return this._tokens[this._current].type===He.keywords.else&&this._tokens[this._current+1].type===He.keywords.if&&(this._advance(),this._advance(),!0)}_elseif_statement(e=[]){const t=this._optional_paren_expression(),n=this._compound_statement();return e.push(this._updateNode(new Le(t,n))),this._match_elseif()&&(this._check(He.tokens.attr)&&this._attribute(),this._elseif_statement(e)),e}_return_statement(){if(!this._match(He.keywords.return))return null;const e=this._short_circuit_or_expression();return this._updateNode(new Y(e))}_short_circuit_or_expression(){let e=this._short_circuit_and_expr();for(;this._match(He.tokens.or_or);)e=this._updateNode(new Ie(this._previous().toString(),e,this._short_circuit_and_expr()));return e}_short_circuit_and_expr(){let e=this._inclusive_or_expression();for(;this._match(He.tokens.and_and);)e=this._updateNode(new Ie(this._previous().toString(),e,this._inclusive_or_expression()));return e}_inclusive_or_expression(){let e=this._exclusive_or_expression();for(;this._match(He.tokens.or);)e=this._updateNode(new Ie(this._previous().toString(),e,this._exclusive_or_expression()));return e}_exclusive_or_expression(){let e=this._and_expression();for(;this._match(He.tokens.xor);)e=this._updateNode(new Ie(this._previous().toString(),e,this._and_expression()));return e}_and_expression(){let e=this._equality_expression();for(;this._match(He.tokens.and);)e=this._updateNode(new Ie(this._previous().toString(),e,this._equality_expression()));return e}_equality_expression(){const e=this._relational_expression();return this._match([He.tokens.equal_equal,He.tokens.not_equal])?this._updateNode(new Ie(this._previous().toString(),e,this._relational_expression())):e}_relational_expression(){let e=this._shift_expression();for(;this._match([He.tokens.less_than,He.tokens.greater_than,He.tokens.less_than_equal,He.tokens.greater_than_equal]);)e=this._updateNode(new Ie(this._previous().toString(),e,this._shift_expression()));return e}_shift_expression(){let e=this._additive_expression();for(;this._match([He.tokens.shift_left,He.tokens.shift_right]);)e=this._updateNode(new Ie(this._previous().toString(),e,this._additive_expression()));return e}_additive_expression(){let e=this._multiplicative_expression();for(;this._match([He.tokens.plus,He.tokens.minus]);)e=this._updateNode(new Ie(this._previous().toString(),e,this._multiplicative_expression()));return e}_multiplicative_expression(){let e=this._unary_expression();for(;this._match([He.tokens.star,He.tokens.forward_slash,He.tokens.modulo]);)e=this._updateNode(new Ie(this._previous().toString(),e,this._unary_expression()));return e}_unary_expression(){return this._match([He.tokens.minus,He.tokens.bang,He.tokens.tilde,He.tokens.star,He.tokens.and])?this._updateNode(new ke(this._previous().toString(),this._unary_expression())):this._singular_expression()}_singular_expression(){const e=this._primary_expression(),t=this._postfix_expression();return t&&(e.postfix=t),e}_postfix_expression(){if(this._match(He.tokens.bracket_left)){const e=this._short_circuit_or_expression();this._consume(He.tokens.bracket_right,'Expected \\']\\'.');const t=this._updateNode(new ve(e)),n=this._postfix_expression();return n&&(t.postfix=n),t}if(this._match(He.tokens.period)){const e=this._consume(He.tokens.name,'Expected member name.'),t=this._postfix_expression(),n=this._updateNode(new pe(e.lexeme));return t&&(n.postfix=t),n}return null}_getStruct(e){if(this._context.aliases.has(e)){return this._context.aliases.get(e).type}if(this._context.structs.has(e)){return this._context.structs.get(e)}return null}_getType(e){const t=this._getStruct(e);if(null!==t)return t;switch(e){case'void':return ae.void;case'bool':return ae.bool;case'i32':return ae.i32;case'u32':return ae.u32;case'f32':return ae.f32;case'f16':return ae.f16;case'vec2f':return ce.vec2f;case'vec3f':return ce.vec3f;case'vec4f':return ce.vec4f;case'vec2i':return ce.vec2i;case'vec3i':return ce.vec3i;case'vec4i':return ce.vec4i;case'vec2u':return ce.vec2u;case'vec3u':return ce.vec3u;case'vec4u':return ce.vec4u;case'vec2h':return ce.vec2h;case'vec3h':return ce.vec3h;case'vec4h':return ce.vec4h;case'mat2x2f':return ce.mat2x2f;case'mat2x3f':return ce.mat2x3f;case'mat2x4f':return ce.mat2x4f;case'mat3x2f':return ce.mat3x2f;case'mat3x3f':return ce.mat3x3f;case'mat3x4f':return ce.mat3x4f;case'mat4x2f':return ce.mat4x2f;case'mat4x3f':return ce.mat4x3f;case'mat4x4f':return ce.mat4x4f;case'mat2x2h':return ce.mat2x2h;case'mat2x3h':return ce.mat2x3h;case'mat2x4h':return ce.mat2x4h;case'mat3x2h':return ce.mat3x2h;case'mat3x3h':return ce.mat3x3h;case'mat3x4h':return ce.mat3x4h;case'mat4x2h':return ce.mat4x2h;case'mat4x3h':return ce.mat4x3h;case'mat4x4h':return ce.mat4x4h;case'mat2x2i':return ce.mat2x2i;case'mat2x3i':return ce.mat2x3i;case'mat2x4i':return ce.mat2x4i;case'mat3x2i':return ce.mat3x2i;case'mat3x3i':return ce.mat3x3i;case'mat3x4i':return ce.mat3x4i;case'mat4x2i':return ce.mat4x2i;case'mat4x3i':return ce.mat4x3i;case'mat4x4i':return ce.mat4x4i;case'mat2x2u':return ce.mat2x2u;case'mat2x3u':return ce.mat2x3u;case'mat2x4u':return ce.mat2x4u;case'mat3x2u':return ce.mat3x2u;case'mat3x3u':return ce.mat3x3u;case'mat3x4u':return ce.mat3x4u;case'mat4x2u':return ce.mat4x2u;case'mat4x3u':return ce.mat4x3u;case'mat4x4u':return ce.mat4x4u}return null}_validateTypeRange(e,t){if('i32'===t.name){if(e<-2147483648||e>2147483647)throw this._error(this._previous(),`Value out of range for i32: ${e}. Line: ${this._currentLine}.`)}else if('u32'===t.name&&(e<0||e>4294967295))throw this._error(this._previous(),`Value out of range for u32: ${e}. Line: ${this._currentLine}.`)}_primary_expression(){if(this._match(He.tokens.ident)){const e=this._previous().toString();if(this._check(He.tokens.paren_left)){const t=this._argument_expression_list(),n=this._getType(e);return null!==n?this._updateNode(new de(n,t)):this._updateNode(new me(e,t))}if(this._context.constants.has(e)){const t=this._context.constants.get(e);return this._updateNode(new _e(e,t.value))}return this._updateNode(new ge(e))}if(this._match(He.tokens.int_literal)){const e=this._previous().toString();let t=e.endsWith('i')||e.endsWith('i')?ae.i32:e.endsWith('u')||e.endsWith('U')?ae.u32:ae.x32;const n=parseInt(e);return this._validateTypeRange(n,t),this._updateNode(new xe(new Be(n,this._exec.getTypeInfo(t)),t))}if(this._match(He.tokens.uint_literal)){const e=parseInt(this._previous().toString());return this._validateTypeRange(e,ae.u32),this._updateNode(new xe(new Be(e,this._exec.getTypeInfo(ae.u32)),ae.u32))}if(this._match([He.tokens.decimal_float_literal,He.tokens.hex_float_literal])){let e=this._previous().toString(),t=e.endsWith('h');t&&(e=e.substring(0,e.length-1));const n=parseFloat(e);this._validateTypeRange(n,t?ae.f16:ae.f32);const s=t?ae.f16:ae.f32;return this._updateNode(new xe(new Be(n,this._exec.getTypeInfo(s)),s))}if(this._match([He.keywords.true,He.keywords.false])){let e=this._previous().toString()===He.keywords.true.rule;return this._updateNode(new xe(new Be(e?1:0,this._exec.getTypeInfo(ae.bool)),ae.bool))}if(this._check(He.tokens.paren_left))return this._paren_expression();if(this._match(He.keywords.bitcast)){this._consume(He.tokens.less_than,'Expected \\'<\\'.');const e=this._type_decl();this._consume(He.tokens.greater_than,'Expected \\'>\\'.');const t=this._paren_expression();return this._updateNode(new ye(e,t))}const e=this._type_decl(),t=this._argument_expression_list();return this._updateNode(new de(e,t))}_argument_expression_list(){if(!this._match(He.tokens.paren_left))return null;const e=[];do{if(this._check(He.tokens.paren_right))break;const t=this._short_circuit_or_expression();e.push(t)}while(this._match(He.tokens.comma));return this._consume(He.tokens.paren_right,'Expected \\')\\' for agument list'),e}_optional_paren_expression(){this._match(He.tokens.paren_left);const e=this._short_circuit_or_expression();return this._match(He.tokens.paren_right),e}_paren_expression(){this._consume(He.tokens.paren_left,'Expected \\'(\\'.');const e=this._short_circuit_or_expression();return this._consume(He.tokens.paren_right,'Expected \\')\\'.'),e}_struct_decl(){if(!this._match(He.keywords.struct))return null;const e=this._currentLine,t=this._consume(He.tokens.ident,'Expected name for struct.').toString();this._consume(He.tokens.brace_left,'Expected \\'{\\' for struct body.');const n=[];for(;!this._check(He.tokens.brace_right);){const e=this._attribute(),t=this._consume(He.tokens.name,'Expected variable name.').toString();this._consume(He.tokens.colon,'Expected \\':\\' for struct member type.');const s=this._attribute(),r=this._type_decl();null!=r&&(r.attributes=s),this._check(He.tokens.brace_right)?this._match(He.tokens.comma):this._consume(He.tokens.comma,'Expected \\',\\' for struct member.'),n.push(this._updateNode(new Ce(t,r,e)))}this._consume(He.tokens.brace_right,'Expected \\'}\\' after struct body.');const s=this._currentLine,r=this._updateNode(new oe(t,n,e,s),e);return this._context.structs.set(t,r),r}_global_variable_decl(){const e=this._variable_decl();if(!e)return null;if(this._match(He.tokens.equal)){const t=this._const_expression();e.value=t}if(null!==e.type&&e.value instanceof xe){if('x32'!==e.value.type.name){if(e.type.getTypeName()!==e.value.type.getTypeName())throw this._error(this._peek(),`Invalid cast from ${e.value.type.name} to ${e.type.name}. Line:${this._currentLine}`)}e.value.isScalar&&this._validateTypeRange(e.value.scalarValue,e.type),e.value.type=e.type}else null===e.type&&e.value instanceof xe&&(e.type='x32'===e.value.type.name?ae.i32:e.value.type,e.value.isScalar&&this._validateTypeRange(e.value.scalarValue,e.type));return e}_override_variable_decl(){const e=this._override_decl();return e&&this._match(He.tokens.equal)&&(e.value=this._const_expression()),e}_global_const_decl(){var e;if(!this._match(He.keywords.const))return null;const t=this._consume(He.tokens.name,'Expected variable name'),n=this._currentLine;let s=null;if(this._match(He.tokens.colon)){const e=this._attribute();s=this._type_decl(),null!=s&&(s.attributes=e)}let r=null;this._consume(He.tokens.equal,'const declarations require an assignment');const i=this._short_circuit_or_expression();try{let e=[ae.f32],n=i.constEvaluate(this._exec,e);n instanceof Be&&this._validateTypeRange(n.value,e[0]),e[0]instanceof ce&&null===e[0].format&&n.typeInfo instanceof a&&null!==n.typeInfo.format&&('f16'===n.typeInfo.format.name?e[0].format=ae.f16:'f32'===n.typeInfo.format.name?e[0].format=ae.f32:'i32'===n.typeInfo.format.name?e[0].format=ae.i32:'u32'===n.typeInfo.format.name?e[0].format=ae.u32:'bool'===n.typeInfo.format.name?e[0].format=ae.bool:console.error(`TODO: impelement template format type ${n.typeInfo.format.name}`)),r=this._updateNode(new xe(n,e[0])),this._exec.context.setVariable(t.toString(),n)}catch(e){r=i}if(null!==s&&r instanceof xe){if('x32'!==r.type.name){if(s.getTypeName()!==r.type.getTypeName())throw this._error(this._peek(),`Invalid cast from ${r.type.name} to ${s.name}. Line:${this._currentLine}`)}r.type=s,r.isScalar&&this._validateTypeRange(r.scalarValue,r.type)}else null===s&&r instanceof xe&&(s=null!==(e=null==r?void 0:r.type)&&void 0!==e?e:ae.f32,s===ae.x32&&(s=ae.i32));const o=this._updateNode(new P(t.toString(),s,'','',r),n);return this._context.constants.set(o.name,o),o}_global_let_decl(){if(!this._match(He.keywords.let))return null;const e=this._currentLine,t=this._consume(He.tokens.name,'Expected variable name');let n=null;if(this._match(He.tokens.colon)){const e=this._attribute();n=this._type_decl(),null!=n&&(n.attributes=e)}let s=null;if(this._match(He.tokens.equal)&&(s=this._const_expression()),null!==n&&s instanceof xe){if('x32'!==s.type.name){if(n.getTypeName()!==s.type.getTypeName())throw this._error(this._peek(),`Invalid cast from ${s.type.name} to ${n.name}. Line:${this._currentLine}`)}s.type=n}else null===n&&s instanceof xe&&(n='x32'===s.type.name?ae.i32:s.type);return s instanceof xe&&s.isScalar&&this._validateTypeRange(s.scalarValue,n),this._updateNode(new U(t.toString(),n,'','',s),e)}_const_expression(){return this._short_circuit_or_expression()}_variable_decl(){if(!this._match(He.keywords.var))return null;const e=this._currentLine;let t='',n='';this._match(He.tokens.less_than)&&(t=this._consume(He.storage_class,'Expected storage_class.').toString(),this._match(He.tokens.comma)&&(n=this._consume(He.access_mode,'Expected access_mode.').toString()),this._consume(He.tokens.greater_than,'Expected \\'>\\'.'));const s=this._consume(He.tokens.name,'Expected variable name');let r=null;if(this._match(He.tokens.colon)){const e=this._attribute();r=this._type_decl(),null!=r&&(r.attributes=e)}return this._updateNode(new F(s.toString(),r,t,n,null),e)}_override_decl(){if(!this._match(He.keywords.override))return null;const e=this._consume(He.tokens.name,'Expected variable name');let t=null;if(this._match(He.tokens.colon)){const e=this._attribute();t=this._type_decl(),null!=t&&(t.attributes=e)}return this._updateNode(new M(e.toString(),t,null))}_diagnostic(){this._consume(He.tokens.paren_left,'Expected \\'(\\'');const e=this._consume(He.tokens.ident,'Expected severity control name.');this._consume(He.tokens.comma,'Expected \\',\\'');let t=this._consume(He.tokens.ident,'Expected diagnostic rule name.').toString();if(this._match(He.tokens.period)){t+=`.${this._consume(He.tokens.ident,'Expected diagnostic message.').toString()}`}return this._consume(He.tokens.paren_right,'Expected \\')\\''),this._updateNode(new ee(e.toString(),t))}_enable_directive(){const e=this._consume(He.tokens.ident,'identity expected.');return this._updateNode(new K(e.toString()))}_requires_directive(){const e=[this._consume(He.tokens.ident,'identity expected.').toString()];for(;this._match(He.tokens.comma);){const t=this._consume(He.tokens.ident,'identity expected.');e.push(t.toString())}return this._updateNode(new J(e))}_type_alias(){const e=this._consume(He.tokens.ident,'identity expected.');this._consume(He.tokens.equal,'Expected \\'=\\' for type alias.');let t=this._type_decl();if(null===t)throw this._error(this._peek(),'Expected Type for Alias.');this._context.aliases.has(t.name)&&(t=this._context.aliases.get(t.name).type);const n=this._updateNode(new te(e.toString(),t));return this._context.aliases.set(n.name,n),n}_type_decl(){if(this._check([He.tokens.ident,...He.texel_format,He.keywords.bool,He.keywords.f32,He.keywords.i32,He.keywords.u32])){const e=this._advance().toString();if(this._context.structs.has(e))return this._context.structs.get(e);if(this._context.aliases.has(e))return this._context.aliases.get(e).type;if(!this._getType(e)){const t=this._updateNode(new ie(e));return this._forwardTypeCount++,t}return this._updateNode(new ae(e))}let e=this._texture_sampler_types();if(e)return e;if(this._check(He.template_types)){let e=this._advance().toString(),t=null,n=null;this._match(He.tokens.less_than)&&(t=this._type_decl(),n=null,this._match(He.tokens.comma)&&(n=this._consume(He.access_mode,'Expected access_mode for pointer').toString()),this._consume(He.tokens.greater_than,'Expected \\'>\\' for type.'));return this._updateNode(new ce(e,t,n))}if(this._match(He.keywords.ptr)){let e=this._previous().toString();this._consume(He.tokens.less_than,'Expected \\'<\\' for pointer.');const t=this._consume(He.storage_class,'Expected storage_class for pointer');this._consume(He.tokens.comma,'Expected \\',\\' for pointer.');const n=this._type_decl();let s=null;this._match(He.tokens.comma)&&(s=this._consume(He.access_mode,'Expected access_mode for pointer').toString()),this._consume(He.tokens.greater_than,'Expected \\'>\\' for pointer.');return this._updateNode(new le(e,t.toString(),n,s))}const t=this._attribute();if(this._match(He.keywords.array)){let e=null,n=-1;const s=this._previous();let r=null;if(this._match(He.tokens.less_than)){e=this._type_decl(),this._context.aliases.has(e.name)&&(e=this._context.aliases.get(e.name).type);let t='';if(this._match(He.tokens.comma)){r=this._shift_expression();try{t=r.constEvaluate(this._exec).toString(),r=null}catch(e){t='1'}}this._consume(He.tokens.greater_than,'Expected \\'>\\' for array.'),n=t?parseInt(t):0}const a=this._updateNode(new ue(s.toString(),t,e,n));return r&&this._deferArrayCountEval.push({arrayType:a,countNode:r}),a}return null}_texture_sampler_types(){if(this._match(He.sampler_type))return this._updateNode(new he(this._previous().toString(),null,null));if(this._match(He.depth_texture_type))return this._updateNode(new he(this._previous().toString(),null,null));if(this._match(He.sampled_texture_type)||this._match(He.multisampled_texture_type)){const e=this._previous();this._consume(He.tokens.less_than,'Expected \\'<\\' for sampler type.');const t=this._type_decl();return this._consume(He.tokens.greater_than,'Expected \\'>\\' for sampler type.'),this._updateNode(new he(e.toString(),t,null))}if(this._match(He.storage_texture_type)){const e=this._previous();this._consume(He.tokens.less_than,'Expected \\'<\\' for sampler type.');const t=this._consume(He.texel_format,'Invalid texel format.').toString();this._consume(He.tokens.comma,'Expected \\',\\' after texel format.');const n=this._consume(He.access_mode,'Expected access mode for storage texture type.').toString();return this._consume(He.tokens.greater_than,'Expected \\'>\\' for sampler type.'),this._updateNode(new he(e.toString(),t,n))}return null}_attribute(){let e=[];for(;this._match(He.tokens.attr);){const t=this._consume(He.attribute_name,'Expected attribute name'),n=this._updateNode(new De(t.toString(),null));if(this._match(He.tokens.paren_left)){if(n.value=this._consume(He.literal_or_ident,'Expected attribute value').toString(),this._check(He.tokens.comma)){this._advance();do{const e=this._consume(He.literal_or_ident,'Expected attribute value').toString();n.value instanceof Array||(n.value=[n.value]),n.value.push(e)}while(this._match(He.tokens.comma))}this._consume(He.tokens.paren_right,'Expected \\')\\'')}e.push(n)}return 0==e.length?null:e}}class _t extends at{constructor(e){super(),e&&this.update(e)}update(e){const t=(new gt).parse(e);this.updateAST(t)}}class xt{get line(){return-1}}class yt extends xt{constructor(e){super(),this.node=e}get line(){return this.node.line}}class bt extends xt{constructor(e,t){super(),this.node=e,this.statement=t}get line(){return this.statement.line}}class vt extends xt{constructor(e){super(),this.id=e}}class wt extends xt{constructor(e){super(),this.id=e}}class kt extends xt{constructor(e,t){super(),this.id=e,this.node=t}get line(){return this.node.line}}class It extends xt{constructor(e,t,n){super(),this.id=e,this.condition=t,this.node=n}get line(){return this.node.line}}class Tt extends xt{constructor(e,t,n){super(),this.lineNo=-1,this.condition=e,this.position=t,this.lineNo=n}get line(){var e,t;return null!==(t=null===(e=this.condition)||void 0===e?void 0:e.line)&&void 0!==t?t:this.lineNo}}class St extends xt{constructor(e){super(),this.statements=[],this.statements=e}get line(){return this.statements.length>0?this.statements[0].line:-1}}class At{constructor(e,t){this.parent=null,this.commands=[],this.current=0,this.parentCallExpr=null,this.context=e,this.parent=null!=t?t:null}get isAtEnd(){return this.current>=this.commands.length}getNextCommand(){if(this.current>=this.commands.length)return null;const e=this.commands[this.current];return this.current++,e}getCurrentCommand(){return this.current>=this.commands.length?null:this.commands[this.current]}}class Et{constructor(){this.states=[]}get isEmpty(){return 0==this.states.length}get last(){var e;return null!==(e=this.states[this.states.length-1])&&void 0!==e?e:null}pop(){this.states.pop()}}class $t{constructor(e,t){this._runTimer=null,this.breakpoints=new Set,this.runStateCallback=null,this._code=e;const n=(new gt).parse(e);this._exec=new dt(n),this.runStateCallback=null!=t?t:null}getVariableValue(e){var t,n;const s=null!==(n=null===(t=this.context.getVariable(e))||void 0===t?void 0:t.value)&&void 0!==n?n:null;return null===s?null:s instanceof Be?s.value:s instanceof Me||s instanceof Ue?Array.from(s.data):(console.error(`Unsupported return variable type ${s.typeInfo.name}`),null)}reset(){this._exec=new dt(this._exec.ast),this.startDebug()}startDebug(){this._execStack=new Et;const e=this._createState(this._exec.ast,this._exec.context);this._execStack.states.push(e)}get context(){const e=this.currentState;return null===e?this._exec.context:e.context}get currentState(){for(;;){if(this._execStack.isEmpty)return null;let e=this._execStack.last;if(null===e)return null;if(e.isAtEnd){if(this._execStack.pop(),this._execStack.isEmpty)return null;e=this._execStack.last}return e}}get currentCommand(){for(;;){if(this._execStack.isEmpty)return null;let e=this._execStack.last;if(null===e)return null;if(e.isAtEnd){if(this._execStack.pop(),this._execStack.isEmpty)return null;e=this._execStack.last}const t=e.getCurrentCommand();if(null!==t)return t}}toggleBreakpoint(e){this.breakpoints.has(e)?this.breakpoints.delete(e):this.breakpoints.add(e)}clearBreakpoints(){this.breakpoints.clear()}get isRunning(){return null!==this._runTimer}run(){this.isRunning||(this._runTimer=setInterval(()=>{const e=this.currentCommand;if(e&&this.breakpoints.has(e.line))return clearInterval(this._runTimer),this._runTimer=null,void(null!==this.runStateCallback&&this.runStateCallback());this.stepNext(!0)||(clearInterval(this._runTimer),this._runTimer=null,null!==this.runStateCallback&&this.runStateCallback())},0),null!==this.runStateCallback&&this.runStateCallback())}pause(){null!==this._runTimer&&(clearInterval(this._runTimer),this._runTimer=null,null!==this.runStateCallback&&this.runStateCallback())}_setOverrides(e,t){for(const n in e){const s=e[n],r=this._exec.reflection.getOverrideInfo(n);null!==r?(null===r.type&&(r.type=this._exec.getTypeInfo('u32')),'u32'===r.type.name||'i32'===r.type.name||'f32'===r.type.name||'f16'===r.type.name?t.setVariable(n,new Be(s,r.type)):'bool'===r.type.name?t.setVariable(n,new Be(s?1:0,r.type)):'vec2'===r.type.name||'vec3'===r.type.name||'vec4'===r.type.name||'vec2f'===r.type.name||'vec3f'===r.type.name||'vec4f'===r.type.name||'vec2i'===r.type.name||'vec3i'===r.type.name||'vec4i'===r.type.name||'vec2u'===r.type.name||'vec3u'===r.type.name||'vec4u'===r.type.name||'vec2h'===r.type.name||'vec3h'===r.type.name||'vec4h'===r.type.name?t.setVariable(n,new Me(s,r.type)):console.error(`Invalid constant type for ${n}`)):console.error(`Override ${n} does not exist in the shader.`)}}debugWorkgroup(e,t,n,s,r){this._execStack=new Et;const a=this._exec.context;a.currentFunctionName=e,this._dispatchId=t,(r=null!=r?r:{}).constants&&this._setOverrides(r.constants,a),this._exec._execStatements(this._exec.ast,a);const i=a.getFunction(e);if(!i)return console.error(`Function ${e} not found`),!1;const o=this._exec.reflection.getFunctionInfo(e);if('number'==typeof n)n=[n,1,1];else{if(0===n.length)return console.error('Invalid dispatch count'),!1;1===n.length?n=[n[0],1,1]:2===n.length?n=[n[0],n[1],1]:n.length>3&&(n=[n[0],n[1],n[2]])}const c=n[2],l=n[1],u=n[0],h=this._exec.typeInfo.vec3u;a.setVariable('@num_workgroups',new Me(n,h));for(const e in s)for(const t in s[e]){const n=s[e][t];a.variables.forEach(s=>{var r;const a=s.node;if(null==a?void 0:a.attributes){let i=null,c=null;for(const e of a.attributes)'binding'===e.name?i=e.value:'group'===e.name&&(c=e.value);if(t==i&&e==c){let i=!1;for(const n of o.resources)if(n.name===s.name&&n.group===parseInt(e)&&n.binding===parseInt(t)){i=!0;break}if(i)if(void 0!==n.texture&&void 0!==n.descriptor){const e=new We(n.texture,this._exec.getTypeInfo(a.type),n.descriptor,null!==(r=n.texture.view)&&void 0!==r?r:null);s.value=e}else void 0!==n.uniform?s.value=new Pe(n.uniform,this._exec.getTypeInfo(a.type)):s.value=new Pe(n,this._exec.getTypeInfo(a.type))}}})}let f=!1;for(let e=0;e<c&&!f;++e)for(let t=0;t<l&&!f;++t)for(let n=0;n<u&&!f;++n)if(a.setVariable('@workgroup_id',new Me([n,t,e],h)),this._dispatchWorkgroup(i,[n,t,e],a)){f=!0;break}return f}_shouldExecuteNextCommand(){const e=this.currentCommand;if(null===e)return!1;if(e instanceof Tt){if(null===e.condition)return!0}else if(e instanceof vt||e instanceof wt)return!0;return!1}stepInto(){this.isRunning||this.stepNext(!0)}stepOver(){this.isRunning||this.stepNext(!1)}stepOut(){const e=this.currentState;if(null===e)return;const t=e.parent;this.isRunning&&(clearInterval(this._runTimer),this._runTimer=null),this._runTimer=setInterval(()=>{const e=this.currentCommand;if(e&&this.breakpoints.has(e.line))return clearInterval(this._runTimer),this._runTimer=null,void(null!==this.runStateCallback&&this.runStateCallback());this.stepNext(!0)||(clearInterval(this._runTimer),this._runTimer=null,null!==this.runStateCallback&&this.runStateCallback());this.currentState===t&&(clearInterval(this._runTimer),this._runTimer=null,null!==this.runStateCallback&&this.runStateCallback())},0),null!==this.runStateCallback&&this.runStateCallback()}stepNext(e=!0){if(!this._execStack){this._execStack=new Et;const e=this._createState(this._exec.ast,this._exec.context);this._execStack.states.push(e)}for(;;){if(this._execStack.isEmpty)return!1;let t=this._execStack.last;if(null===t)return!1;if(t.isAtEnd){if(this._execStack.pop(),this._execStack.isEmpty)return!1;t=this._execStack.last}const n=t.getNextCommand();if(null!==n){if(e&&n instanceof bt){const e=n.node,s=t.context.getFunction(e.name);if(!s)continue;const r=this._createState(s.node.body,t.context.clone(),t);for(let t=0;t<s.node.args.length;++t){const n=s.node.args[t],a=this._exec.evalExpression(e.args[t],r.context);r.context.createVariable(n.name,a,n)}if(r.parentCallExpr=e,this._execStack.states.push(r),r.context.currentFunctionName=s.name,this._shouldExecuteNextCommand())continue;return!0}if(n instanceof yt){const s=n.node;if(e&&s instanceof X){const e=t.context.getFunction(s.name);if(e){const n=this._createState(e.node.body,t.context.clone(),t);for(let t=0;t<e.node.args.length;++t){const r=e.node.args[t],a=this._exec.evalExpression(s.args[t],n.context);n.context.createVariable(r.name,a,r)}if(this._execStack.states.push(n),n.context.currentFunctionName=e.name,this._shouldExecuteNextCommand())continue;return!0}}const r=this._exec.execStatement(s,t.context);if(null!=r&&!(r instanceof Ve)){let e=t;for(;e;){if(e.parentCallExpr){e.parentCallExpr.setCachedReturnValue(r);break}e=e.parent}if(null===e&&console.error('Could not find CallExpr to store return value in'),this._shouldExecuteNextCommand())continue;return!0}}else{if(n instanceof vt)continue;if(n instanceof wt)continue;if(n instanceof kt){const e=n.id;for(;!this._execStack.isEmpty;){t=this._execStack.last;for(let n=t.commands.length-1;n>=0;--n){const s=t.commands[n];if(s instanceof vt&&s.id===e)return t.current=n+1,!0}this._execStack.pop()}return console.error('Continue statement used outside of a loop'),!1}if(n instanceof It){const e=n.id;if(n.condition){const e=this._exec.evalExpression(n.condition,t.context);if(!(e instanceof Be))return console.error('Condition must be a scalar'),!1;if(!e.value){if(this._shouldExecuteNextCommand())continue;return!0}}for(;!this._execStack.isEmpty;){t=this._execStack.last;for(let n=t.commands.length-1;n>=0;--n){const s=t.commands[n];if(s instanceof wt&&s.id===e)return t.current=n+1,!0}this._execStack.pop()}return console.error('Break statement used outside of a loop'),!1}if(n instanceof Tt){if(n.condition){const e=this._exec.evalExpression(n.condition,t.context);if(!(e instanceof Be))return console.error('Condition must be a scalar'),!1;if(e.value){if(this._shouldExecuteNextCommand())continue;return!0}}if(t.current=n.position,this._shouldExecuteNextCommand())continue;return!0}if(n instanceof St){const e=this._createState(n.statements,t.context.clone(),t);this._execStack.states.push(e);continue}}if(t.isAtEnd&&(this._execStack.pop(),this._execStack.isEmpty))return!1;if(!this._shouldExecuteNextCommand())return!0}}}_dispatchWorkgroup(e,t,n){const s=[1,1,1];for(const t of e.node.attributes)if('workgroup_size'===t.name)if(Array.isArray(t.value)){if(t.value.length>0){const e=n.getVariableValue(t.value[0]);s[0]=e instanceof Be?e.value:parseInt(t.value[0])}if(t.value.length>1){const e=n.getVariableValue(t.value[1]);s[1]=e instanceof Be?e.value:parseInt(t.value[1])}if(t.value.length>2){const e=n.getVariableValue(t.value[2]);s[2]=e instanceof Be?e.value:parseInt(t.value[2])}}else{const e=n.getVariableValue(t.value);e instanceof Be?s[0]=e.value:e instanceof Me?(s[0]=e.data[0],s[1]=e.data.length>1?e.data[1]:1,s[2]=e.data.length>2?e.data[2]:1):s[0]=parseInt(t.value)}const r=this._exec.typeInfo.vec3u,a=this._exec.typeInfo.u32;n.setVariable('@workgroup_size',new Me(s,r));const i=s[0],o=s[1],c=s[2];let l=!1;for(let e=0,u=0;e<c&&!l;++e)for(let c=0;c<o&&!l;++c)for(let o=0;o<i&&!l;++o,++u){const i=[o,c,e],h=[o+t[0]*s[0],c+t[1]*s[1],e+t[2]*s[2]];if(n.setVariable('@local_invocation_id',new Me(i,r)),n.setVariable('@global_invocation_id',new Me(h,r)),n.setVariable('@local_invocation_index',new Be(u,a)),h[0]===this._dispatchId[0]&&h[1]===this._dispatchId[1]&&h[2]===this._dispatchId[2]){l=!0;break}}return l&&this._dispatchExec(e,n),l}_dispatchExec(e,t){for(const n of e.node.args)for(const e of n.attributes)if('builtin'===e.name){const s=`@${e.value}`,r=t.getVariable(s);null!==r&&t.variables.set(n.name,r)}const n=this._createState(e.node.body,t);this._execStack.states.push(n)}_createState(e,t,n){const s=new At(t,null!=n?n:null);for(const t of e)if(t instanceof U||t instanceof F||t instanceof P||t instanceof G){const e=[];this._collectFunctionCalls(t.value,e);for(const n of e)s.commands.push(new bt(n,t));s.commands.push(new yt(t))}else if(t instanceof X){const e=[];for(const n of t.args)this._collectFunctionCalls(n,e);for(const n of e)s.commands.push(new bt(n,t));s.commands.push(new yt(t))}else if(t instanceof Y){const e=[];this._collectFunctionCalls(t.value,e);for(const n of e)s.commands.push(new bt(n,t));s.commands.push(new yt(t))}else if(t instanceof R)s.commands.push(new yt(t));else{if(t instanceof D){const e=new ct(t);s.context.functions.set(t.name,e);continue}if(t instanceof Q){const e=[];this._collectFunctionCalls(t.condition,e);for(const n of e)s.commands.push(new bt(n,t));let n=new Tt(t.condition,0,t.line);s.commands.push(n),t.body.length>0&&s.commands.push(new St(t.body));const r=new Tt(null,0,t.line);s.commands.push(r);for(const e of t.elseif){n.position=s.commands.length;const a=[];this._collectFunctionCalls(e.condition,a);for(const e of a)s.commands.push(new bt(e,t));n=new Tt(e.condition,0,e.line),s.commands.push(n),e.body.length>0&&s.commands.push(new St(e.body)),s.commands.push(r)}n.position=s.commands.length,t.else&&s.commands.push(new St(t.else)),r.position=s.commands.length}else if(t instanceof Z){const e=[];this._collectFunctionCalls(t.condition,e);for(const n of e)s.commands.push(new bt(n,t));let n=null;for(const e of t.cases){if(e instanceof Ee){n=e;break}if(e instanceof Ae)for(const t of e.selectors)if(t instanceof Se){n=e;break}}const r=[];for(const e of t.cases){if(e===n)continue;if(!(e instanceof Ae))continue;let a=null;for(const n of e.selectors){let e=new Ie('==',t.condition,n);a&&(e=new Ie('||',a,e)),a=e}const i=new Tt(a,0,e.line);s.commands.push(i),e.body.length>0&&s.commands.push(new St(e.body));const o=new Tt(null,0,e.line);r.push(o),s.commands.push(o),i.position=s.commands.length}n&&s.commands.push(new St(n.body)),s.commands.push(new wt(t.id));const a=s.commands.length;for(let e=0;e<r.length;++e)r[e].position=a}else if(t instanceof V){const e=[];s.commands.push(new vt(t.id)),this._collectFunctionCalls(t.condition,e);for(const n of e)s.commands.push(new bt(n,t));const n=new Tt(t.condition,0,t.line);s.commands.push(n);let r=t.line;t.body.length>0&&(s.commands.push(new St(t.body)),r=t.body[t.body.length-1].line),s.commands.push(new Tt(t.condition,0,r)),s.commands.push(new wt(t.id)),n.position=s.commands.length}else if(t instanceof B){t.init&&s.commands.push(new yt(t.init));let e=s.commands.length;null===t.increment&&s.commands.push(new vt(t.id));let n=null;if(t.condition){const e=[];this._collectFunctionCalls(t.condition,e);for(const n of e)s.commands.push(new bt(n,t));n=new Tt(t.condition,0,t.line),s.commands.push(n)}let r=t.line;t.body.length>0&&(s.commands.push(new St(t.body)),r=t.body[t.body.length-1].line),t.increment&&(s.commands.push(new vt(t.id)),s.commands.push(new yt(t.increment))),s.commands.push(new Tt(null,e,r)),s.commands.push(new wt(t.id)),n.position=s.commands.length}else if(t instanceof j){let e=s.commands.length;t.continuing||s.commands.push(new vt(t.id));let n=t.line;t.body.length>0&&(s.commands.push(new St(t.body)),n=t.body[t.body.length-1].line),s.commands.push(new Tt(null,e,n)),s.commands.push(new wt(t.id))}else t instanceof O?(s.commands.push(new vt(t.loopId)),s.commands.push(new St(t.body))):t instanceof re?s.commands.push(new kt(t.loopId,t)):t instanceof se?s.commands.push(new It(t.loopId,t.condition,t)):t instanceof N?s.commands.push(new yt(t)):t instanceof oe||console.error(`TODO: statement type ${t.constructor.name}`)}return s}_collectFunctionCalls(e,t){if(e instanceof me){if(e.args)for(const n of e.args)this._collectFunctionCalls(n,t);e.isBuiltin||t.push(e)}else if(e instanceof Ie)this._collectFunctionCalls(e.left,t),this._collectFunctionCalls(e.right,t);else if(e instanceof ke)this._collectFunctionCalls(e.right,t);else if(e instanceof de){if(e.args)for(const n of e.args)this._collectFunctionCalls(n,t)}else e instanceof ye?this._collectFunctionCalls(e.value,t):e instanceof ve?this._collectFunctionCalls(e.index,t):xe||console.error(`TODO: expression type ${e.constructor.name}`)}}export{te as Alias,c as AliasInfo,$e as Argument,f as ArgumentInfo,ve as ArrayIndex,s as ArrayInfo,ue as ArrayType,G as Assign,q as AssignOperator,De as Attribute,Ie as BinaryOperator,ye as BitcastExpr,se as Break,X as Call,me as CallExpr,Ae as Case,P as Const,_e as ConstExpr,re as Continue,O as Continuing,de as CreateExpr,Ne as Data,Ee as Default,Se as DefaultSelector,ee as Diagnostic,ne as Discard,Le as ElseIf,K as Enable,d as EntryFunctions,fe as Expression,B as For,ie as ForwardType,D as Function,p as FunctionInfo,Q as If,R as Increment,W as IncrementOperator,l as InputInfo,U as Let,xe as LiteralExpr,j as Loop,Ue as MatrixData,Ce as Member,t as MemberInfo,A as Node,we as Operator,u as OutputInfo,M as Override,h as OverrideInfo,Oe as PointerData,r as PointerInfo,le as PointerType,J as Requires,i as ResourceType,Y as Return,he as SamplerType,Be as ScalarData,C as Statement,N as StaticAssert,pe as StringExpr,oe as Struct,n as StructInfo,Z as Switch,Te as SwitchCase,a as TemplateInfo,ce as TemplateType,We as TextureData,ze as Token,z as TokenClass,qe as TokenType,He as TokenTypes,ae as Type,e as TypeInfo,be as TypecastExpr,Pe as TypedData,ke as UnaryOperator,F as Var,ge as VariableExpr,o as VariableInfo,Me as VectorData,Ve as VoidData,$t as WgslDebug,dt as WgslExec,gt as WgslParser,_t as WgslReflect,Re as WgslScanner,V as While,$ as _BlockEnd,E as _BlockStart};\n//# sourceMappingURL=wgsl_reflect.module.js.map\n","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { log } from '@luma.gl/core';\nimport { WgslReflect } from 'wgsl_reflect';\n/**\n * Parse a ShaderLayout from WGSL shader source code.\n * @param source WGSL source code (can contain both @vertex and @fragment entry points)\n * @returns\n */\nexport function getShaderLayoutFromWGSL(source) {\n const shaderLayout = { attributes: [], bindings: [] };\n let parsedWGSL;\n try {\n parsedWGSL = parseWGSL(source);\n }\n catch (error) {\n log.error(error.message)();\n return shaderLayout;\n }\n for (const uniform of parsedWGSL.uniforms) {\n const members = [];\n // @ts-expect-error\n for (const attribute of uniform.type?.members || []) {\n members.push({\n name: attribute.name,\n type: getType(attribute.type)\n });\n }\n shaderLayout.bindings.push({\n type: 'uniform',\n name: uniform.name,\n group: uniform.group,\n location: uniform.binding,\n // @ts-expect-error TODO - unused for now but needs fixing\n members\n });\n }\n for (const texture of parsedWGSL.textures) {\n shaderLayout.bindings.push({\n type: 'texture',\n name: texture.name,\n group: texture.group,\n location: texture.binding\n });\n }\n for (const sampler of parsedWGSL.samplers) {\n shaderLayout.bindings.push({\n type: 'sampler',\n name: sampler.name,\n group: sampler.group,\n location: sampler.binding\n });\n }\n const vertex = parsedWGSL.entry.vertex[0]; // \"main\"\n // Vertex shader inputs\n const attributeCount = vertex?.inputs.length || 0; // inputs to \"main\"\n for (let i = 0; i < attributeCount; i++) {\n const wgslAttribute = vertex.inputs[i];\n // locationType can be \"builtin\"\n if (wgslAttribute.locationType === 'location') {\n const type = getType(wgslAttribute.type);\n shaderLayout.attributes.push({\n name: wgslAttribute.name,\n location: Number(wgslAttribute.location),\n type\n });\n }\n }\n return shaderLayout;\n}\n/** Get a valid shader attribute type string from a wgsl-reflect type */\nfunction getType(type) {\n // @ts-expect-error WgslReflect type checks needed\n return type?.format ? `${type.name}<${type.format.name}>` : type.name;\n}\nfunction parseWGSL(source) {\n try {\n return new WgslReflect(source);\n }\n catch (error) {\n if (error instanceof Error) {\n throw error;\n }\n let message = 'WGSL parse error';\n if (typeof error === 'object' && error?.message) {\n message += `: ${error.message} `;\n }\n if (typeof error === 'object' && error?.token) {\n message += error.token.line || '';\n }\n throw new Error(message, { cause: error });\n }\n}\n//# sourceMappingURL=get-shader-layout-wgsl.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n * Calculate WebGL 64 bit float\n * @param a - the input float number\n * @param out - the output array. If not supplied, a new array is created.\n * @param startIndex - the index in the output array to fill from. Default 0.\n * @returns - the fp64 representation of the input number\n */\nexport function fp64ify(a, out = [], startIndex = 0) {\n const hiPart = Math.fround(a);\n const loPart = a - hiPart;\n out[startIndex] = hiPart;\n out[startIndex + 1] = loPart;\n return out;\n}\n/**\n * Calculate the low part of a WebGL 64 bit float\n * @param a the input float number\n * @returns the lower 32 bit of the number\n */\nexport function fp64LowPart(a) {\n return a - Math.fround(a);\n}\n/**\n * Calculate WebGL 64 bit matrix (transposed \"Float64Array\")\n * @param matrix the input matrix\n * @returns the fp64 representation of the input matrix\n */\nexport function fp64ifyMatrix4(matrix) {\n // Transpose the projection matrix to column major for GLSL.\n const matrixFP64 = new Float32Array(32);\n for (let i = 0; i < 4; ++i) {\n for (let j = 0; j < 4; ++j) {\n const index = i * 4 + j;\n fp64ify(matrix[j * 4 + i], matrixFP64, index * 2);\n }\n }\n return matrixFP64;\n}\n//# sourceMappingURL=fp64-utils.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nexport const fp64arithmeticShader = /* glsl */ `\\\n\nuniform fp64arithmeticUniforms {\n uniform float ONE;\n} fp64;\n\n/*\nAbout LUMA_FP64_CODE_ELIMINATION_WORKAROUND\n\nThe purpose of this workaround is to prevent shader compilers from\noptimizing away necessary arithmetic operations by swapping their sequences\nor transform the equation to some 'equivalent' form.\n\nThe method is to multiply an artifical variable, ONE, which will be known to\nthe compiler to be 1 only at runtime. The whole expression is then represented\nas a polynomial with respective to ONE. In the coefficients of all terms, only one a\nand one b should appear\n\nerr = (a + b) * ONE^6 - a * ONE^5 - (a + b) * ONE^4 + a * ONE^3 - b - (a + b) * ONE^2 + a * ONE\n*/\n\n// Divide float number to high and low floats to extend fraction bits\nvec2 split(float a) {\n const float SPLIT = 4097.0;\n float t = a * SPLIT;\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float a_hi = t * fp64.ONE - (t - a);\n float a_lo = a * fp64.ONE - a_hi;\n#else\n float a_hi = t - (t - a);\n float a_lo = a - a_hi;\n#endif\n return vec2(a_hi, a_lo);\n}\n\n// Divide float number again when high float uses too many fraction bits\nvec2 split2(vec2 a) {\n vec2 b = split(a.x);\n b.y += a.y;\n return b;\n}\n\n// Special sum operation when a > b\nvec2 quickTwoSum(float a, float b) {\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float sum = (a + b) * fp64.ONE;\n float err = b - (sum - a) * fp64.ONE;\n#else\n float sum = a + b;\n float err = b - (sum - a);\n#endif\n return vec2(sum, err);\n}\n\n// General sum operation\nvec2 twoSum(float a, float b) {\n float s = (a + b);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float v = (s * fp64.ONE - a) * fp64.ONE;\n float err = (a - (s - v) * fp64.ONE) * fp64.ONE * fp64.ONE * fp64.ONE + (b - v);\n#else\n float v = s - a;\n float err = (a - (s - v)) + (b - v);\n#endif\n return vec2(s, err);\n}\n\nvec2 twoSub(float a, float b) {\n float s = (a - b);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float v = (s * fp64.ONE - a) * fp64.ONE;\n float err = (a - (s - v) * fp64.ONE) * fp64.ONE * fp64.ONE * fp64.ONE - (b + v);\n#else\n float v = s - a;\n float err = (a - (s - v)) - (b + v);\n#endif\n return vec2(s, err);\n}\n\nvec2 twoSqr(float a) {\n float prod = a * a;\n vec2 a_fp64 = split(a);\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n float err = ((a_fp64.x * a_fp64.x - prod) * fp64.ONE + 2.0 * a_fp64.x *\n a_fp64.y * fp64.ONE * fp64.ONE) + a_fp64.y * a_fp64.y * fp64.ONE * fp64.ONE * fp64.ONE;\n#else\n float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y;\n#endif\n return vec2(prod, err);\n}\n\nvec2 twoProd(float a, float b) {\n float prod = a * b;\n vec2 a_fp64 = split(a);\n vec2 b_fp64 = split(b);\n float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y +\n a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y;\n return vec2(prod, err);\n}\n\nvec2 sum_fp64(vec2 a, vec2 b) {\n vec2 s, t;\n s = twoSum(a.x, b.x);\n t = twoSum(a.y, b.y);\n s.y += t.x;\n s = quickTwoSum(s.x, s.y);\n s.y += t.y;\n s = quickTwoSum(s.x, s.y);\n return s;\n}\n\nvec2 sub_fp64(vec2 a, vec2 b) {\n vec2 s, t;\n s = twoSub(a.x, b.x);\n t = twoSub(a.y, b.y);\n s.y += t.x;\n s = quickTwoSum(s.x, s.y);\n s.y += t.y;\n s = quickTwoSum(s.x, s.y);\n return s;\n}\n\nvec2 mul_fp64(vec2 a, vec2 b) {\n vec2 prod = twoProd(a.x, b.x);\n // y component is for the error\n prod.y += a.x * b.y;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n prod = split2(prod);\n#endif\n prod = quickTwoSum(prod.x, prod.y);\n prod.y += a.y * b.x;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n prod = split2(prod);\n#endif\n prod = quickTwoSum(prod.x, prod.y);\n return prod;\n}\n\nvec2 div_fp64(vec2 a, vec2 b) {\n float xn = 1.0 / b.x;\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n vec2 yn = mul_fp64(a, vec2(xn, 0));\n#else\n vec2 yn = a * xn;\n#endif\n float diff = (sub_fp64(a, mul_fp64(b, yn))).x;\n vec2 prod = twoProd(xn, diff);\n return sum_fp64(yn, prod);\n}\n\nvec2 sqrt_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0);\n if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);\n\n float x = 1.0 / sqrt(a.x);\n float yn = a.x * x;\n#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)\n vec2 yn_sqr = twoSqr(yn) * fp64.ONE;\n#else\n vec2 yn_sqr = twoSqr(yn);\n#endif\n float diff = sub_fp64(a, yn_sqr).x;\n vec2 prod = twoProd(x * 0.5, diff);\n#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)\n return sum_fp64(split(yn), prod);\n#else\n return sum_fp64(vec2(yn, 0.0), prod);\n#endif\n}\n`;\n//# sourceMappingURL=fp64-arithmetic-glsl.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nexport const fp64functionShader = /* glsl */ `\\\nconst vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);\nconst vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09);\nconst vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8);\nconst vec2 TWO_PI_FP64 = vec2(6.2831854820251465, -1.7484556025237907e-7);\nconst vec2 PI_2_FP64 = vec2(1.5707963705062866, -4.371139006309477e-8);\nconst vec2 PI_4_FP64 = vec2(0.7853981852531433, -2.1855695031547384e-8);\nconst vec2 PI_16_FP64 = vec2(0.19634954631328583, -5.463923757886846e-9);\nconst vec2 PI_16_2_FP64 = vec2(0.39269909262657166, -1.0927847515773692e-8);\nconst vec2 PI_16_3_FP64 = vec2(0.5890486240386963, -1.4906100798128818e-9);\nconst vec2 PI_180_FP64 = vec2(0.01745329238474369, 1.3519960498364902e-10);\n\nconst vec2 SIN_TABLE_0_FP64 = vec2(0.19509032368659973, -1.6704714833615242e-9);\nconst vec2 SIN_TABLE_1_FP64 = vec2(0.3826834261417389, 6.22335089017767e-9);\nconst vec2 SIN_TABLE_2_FP64 = vec2(0.5555702447891235, -1.1769521357507529e-8);\nconst vec2 SIN_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617041793133e-8);\n\nconst vec2 COS_TABLE_0_FP64 = vec2(0.9807852506637573, 2.9739473106360492e-8);\nconst vec2 COS_TABLE_1_FP64 = vec2(0.9238795042037964, 2.8307490351764386e-8);\nconst vec2 COS_TABLE_2_FP64 = vec2(0.8314695954322815, 1.6870263741530778e-8);\nconst vec2 COS_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617152815436e-8);\n\nconst vec2 INVERSE_FACTORIAL_3_FP64 = vec2(1.666666716337204e-01, -4.967053879312289e-09); // 1/3!\nconst vec2 INVERSE_FACTORIAL_4_FP64 = vec2(4.16666679084301e-02, -1.2417634698280722e-09); // 1/4!\nconst vec2 INVERSE_FACTORIAL_5_FP64 = vec2(8.333333767950535e-03, -4.34617203337595e-10); // 1/5!\nconst vec2 INVERSE_FACTORIAL_6_FP64 = vec2(1.3888889225199819e-03, -3.3631094437103215e-11); // 1/6!\nconst vec2 INVERSE_FACTORIAL_7_FP64 = vec2(1.9841270113829523e-04, -2.725596874933456e-12); // 1/7!\nconst vec2 INVERSE_FACTORIAL_8_FP64 = vec2(2.4801587642286904e-05, -3.406996025904184e-13); // 1/8!\nconst vec2 INVERSE_FACTORIAL_9_FP64 = vec2(2.75573188446287533e-06, 3.7935713937038186e-14); // 1/9!\nconst vec2 INVERSE_FACTORIAL_10_FP64 = vec2(2.755731998149713e-07, -7.575112367869873e-15); // 1/10!\n\nfloat nint(float d) {\n if (d == floor(d)) return d;\n return floor(d + 0.5);\n}\n\nvec2 nint_fp64(vec2 a) {\n float hi = nint(a.x);\n float lo;\n vec2 tmp;\n if (hi == a.x) {\n lo = nint(a.y);\n tmp = quickTwoSum(hi, lo);\n } else {\n lo = 0.0;\n if (abs(hi - a.x) == 0.5 && a.y < 0.0) {\n hi -= 1.0;\n }\n tmp = vec2(hi, lo);\n }\n return tmp;\n}\n\n/* k_power controls how much range reduction we would like to have\nRange reduction uses the following method:\nassume a = k_power * r + m * log(2), k and m being integers.\nSet k_power = 4 (we can choose other k to trade accuracy with performance.\nwe only need to calculate exp(r) and using exp(a) = 2^m * exp(r)^k_power;\n*/\n\nvec2 exp_fp64(vec2 a) {\n // We need to make sure these two numbers match\n // as bit-wise shift is not available in GLSL 1.0\n const int k_power = 4;\n const float k = 16.0;\n\n const float inv_k = 1.0 / k;\n\n if (a.x <= -88.0) return vec2(0.0, 0.0);\n if (a.x >= 88.0) return vec2(1.0 / 0.0, 1.0 / 0.0);\n if (a.x == 0.0 && a.y == 0.0) return vec2(1.0, 0.0);\n if (a.x == 1.0 && a.y == 0.0) return E_FP64;\n\n float m = floor(a.x / LOG2_FP64.x + 0.5);\n vec2 r = sub_fp64(a, mul_fp64(LOG2_FP64, vec2(m, 0.0))) * inv_k;\n vec2 s, t, p;\n\n p = mul_fp64(r, r);\n s = sum_fp64(r, p * 0.5);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_3_FP64);\n\n s = sum_fp64(s, t);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_4_FP64);\n\n s = sum_fp64(s, t);\n p = mul_fp64(p, r);\n t = mul_fp64(p, INVERSE_FACTORIAL_5_FP64);\n\n // s = sum_fp64(s, t);\n // p = mul_fp64(p, r);\n // t = mul_fp64(p, INVERSE_FACTORIAL_6_FP64);\n\n // s = sum_fp64(s, t);\n // p = mul_fp64(p, r);\n // t = mul_fp64(p, INVERSE_FACTORIAL_7_FP64);\n\n s = sum_fp64(s, t);\n\n\n // At this point, s = exp(r) - 1; but after following 4 recursions, we will get exp(r) ^ 512 - 1.\n for (int i = 0; i < k_power; i++) {\n s = sum_fp64(s * 2.0, mul_fp64(s, s));\n }\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n s = sum_fp64(s, vec2(fp64.ONE, 0.0));\n#else\n s = sum_fp64(s, vec2(1.0, 0.0));\n#endif\n\n return s * pow(2.0, m);\n// return r;\n}\n\nvec2 log_fp64(vec2 a)\n{\n if (a.x == 1.0 && a.y == 0.0) return vec2(0.0, 0.0);\n if (a.x <= 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);\n vec2 x = vec2(log(a.x), 0.0);\n vec2 s;\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n s = vec2(fp64.ONE, 0.0);\n#else\n s = vec2(1.0, 0.0);\n#endif\n\n x = sub_fp64(sum_fp64(x, mul_fp64(a, exp_fp64(-x))), s);\n return x;\n}\n\nvec2 sin_taylor_fp64(vec2 a) {\n vec2 r, s, t, x;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n\n x = -mul_fp64(a, a);\n s = a;\n r = a;\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_3_FP64);\n s = sum_fp64(s, t);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_5_FP64);\n s = sum_fp64(s, t);\n\n /* keep the following commented code in case we need them\n for extra accuracy from the Taylor expansion*/\n\n // r = mul_fp64(r, x);\n // t = mul_fp64(r, INVERSE_FACTORIAL_7_FP64);\n // s = sum_fp64(s, t);\n\n // r = mul_fp64(r, x);\n // t = mul_fp64(r, INVERSE_FACTORIAL_9_FP64);\n // s = sum_fp64(s, t);\n\n return s;\n}\n\nvec2 cos_taylor_fp64(vec2 a) {\n vec2 r, s, t, x;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(1.0, 0.0);\n }\n\n x = -mul_fp64(a, a);\n r = x;\n s = sum_fp64(vec2(1.0, 0.0), r * 0.5);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_4_FP64);\n s = sum_fp64(s, t);\n\n r = mul_fp64(r, x);\n t = mul_fp64(r, INVERSE_FACTORIAL_6_FP64);\n s = sum_fp64(s, t);\n\n /* keep the following commented code in case we need them\n for extra accuracy from the Taylor expansion*/\n\n // r = mul_fp64(r, x);\n // t = mul_fp64(r, INVERSE_FACTORIAL_8_FP64);\n // s = sum_fp64(s, t);\n\n // r = mul_fp64(r, x);\n // t = mul_fp64(r, INVERSE_FACTORIAL_10_FP64);\n // s = sum_fp64(s, t);\n\n return s;\n}\n\nvoid sincos_taylor_fp64(vec2 a, out vec2 sin_t, out vec2 cos_t) {\n if (a.x == 0.0 && a.y == 0.0) {\n sin_t = vec2(0.0, 0.0);\n cos_t = vec2(1.0, 0.0);\n }\n\n sin_t = sin_taylor_fp64(a);\n cos_t = sqrt_fp64(sub_fp64(vec2(1.0, 0.0), mul_fp64(sin_t, sin_t)));\n}\n\nvec2 sin_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n\n // 2pi range reduction\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n\n if (k == 0) {\n if (j == 0) {\n return sin_taylor_fp64(t);\n } else if (j == 1) {\n return cos_taylor_fp64(t);\n } else if (j == -1) {\n return -cos_taylor_fp64(t);\n } else {\n return -sin_taylor_fp64(t);\n }\n }\n\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n\n vec2 sin_t, cos_t;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n\n\n vec2 result = vec2(0.0, 0.0);\n if (j == 0) {\n if (k > 0) {\n result = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n }\n } else if (j == 1) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n result = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n } else if (j == -1) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n } else {\n result = -sum_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n }\n } else {\n if (k > 0) {\n result = -sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(v, cos_t), mul_fp64(u, sin_t));\n }\n }\n\n return result;\n}\n\nvec2 cos_fp64(vec2 a) {\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(1.0, 0.0);\n }\n\n // 2pi range reduction\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n\n if (k == 0) {\n if (j == 0) {\n return cos_taylor_fp64(t);\n } else if (j == 1) {\n return -sin_taylor_fp64(t);\n } else if (j == -1) {\n return sin_taylor_fp64(t);\n } else {\n return -cos_taylor_fp64(t);\n }\n }\n\n int abs_k = int(abs(float(k)));\n\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n\n vec2 sin_t, cos_t;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n vec2 result = vec2(0.0, 0.0);\n if (j == 0) {\n if (k > 0) {\n result = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n result = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n } else if (j == 1) {\n if (k > 0) {\n result = -sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(v, cos_t), mul_fp64(u, sin_t));\n }\n } else if (j == -1) {\n if (k > 0) {\n result = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n } else {\n result = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n }\n } else {\n if (k > 0) {\n result = sub_fp64(mul_fp64(v, sin_t), mul_fp64(u, cos_t));\n } else {\n result = -sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n }\n\n return result;\n}\n\nvec2 tan_fp64(vec2 a) {\n vec2 sin_a;\n vec2 cos_a;\n\n if (a.x == 0.0 && a.y == 0.0) {\n return vec2(0.0, 0.0);\n }\n\n // 2pi range reduction\n vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));\n vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));\n\n vec2 t;\n float q = floor(r.x / PI_2_FP64.x + 0.5);\n int j = int(q);\n\n\n if (j < -2 || j > 2) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n }\n\n t = sub_fp64(r, mul_fp64(PI_2_FP64, vec2(q, 0.0)));\n\n q = floor(t.x / PI_16_FP64.x + 0.5);\n int k = int(q);\n int abs_k = int(abs(float(k)));\n\n // We just can't get PI/16 * 3.0 very accurately.\n // so let's just store it\n if (abs_k > 4) {\n return vec2(0.0 / 0.0, 0.0 / 0.0);\n } else {\n t = sub_fp64(t, mul_fp64(PI_16_FP64, vec2(q, 0.0)));\n }\n\n\n vec2 u = vec2(0.0, 0.0);\n vec2 v = vec2(0.0, 0.0);\n\n vec2 sin_t, cos_t;\n vec2 s, c;\n sincos_taylor_fp64(t, sin_t, cos_t);\n\n if (k == 0) {\n s = sin_t;\n c = cos_t;\n } else {\n#if defined(NVIDIA_FP64_WORKAROUND) || defined(INTEL_FP64_WORKAROUND)\n if (abs(float(abs_k) - 1.0) < 0.5) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs(float(abs_k) - 2.0) < 0.5) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs(float(abs_k) - 3.0) < 0.5) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs(float(abs_k) - 4.0) < 0.5) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#else\n if (abs_k == 1) {\n u = COS_TABLE_0_FP64;\n v = SIN_TABLE_0_FP64;\n } else if (abs_k == 2) {\n u = COS_TABLE_1_FP64;\n v = SIN_TABLE_1_FP64;\n } else if (abs_k == 3) {\n u = COS_TABLE_2_FP64;\n v = SIN_TABLE_2_FP64;\n } else if (abs_k == 4) {\n u = COS_TABLE_3_FP64;\n v = SIN_TABLE_3_FP64;\n }\n#endif\n if (k > 0) {\n s = sum_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n c = sub_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n } else {\n s = sub_fp64(mul_fp64(u, sin_t), mul_fp64(v, cos_t));\n c = sum_fp64(mul_fp64(u, cos_t), mul_fp64(v, sin_t));\n }\n }\n\n if (j == 0) {\n sin_a = s;\n cos_a = c;\n } else if (j == 1) {\n sin_a = c;\n cos_a = -s;\n } else if (j == -1) {\n sin_a = -c;\n cos_a = s;\n } else {\n sin_a = -s;\n cos_a = -c;\n }\n return div_fp64(sin_a, cos_a);\n}\n\nvec2 radians_fp64(vec2 degree) {\n return mul_fp64(degree, PI_180_FP64);\n}\n\nvec2 mix_fp64(vec2 a, vec2 b, float x) {\n vec2 range = sub_fp64(b, a);\n return sum_fp64(a, mul_fp64(range, vec2(x, 0.0)));\n}\n\n// Vector functions\n// vec2 functions\nvoid vec2_sum_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = sum_fp64(a[0], b[0]);\n out_val[1] = sum_fp64(a[1], b[1]);\n}\n\nvoid vec2_sub_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = sub_fp64(a[0], b[0]);\n out_val[1] = sub_fp64(a[1], b[1]);\n}\n\nvoid vec2_mul_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = mul_fp64(a[0], b[0]);\n out_val[1] = mul_fp64(a[1], b[1]);\n}\n\nvoid vec2_div_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {\n out_val[0] = div_fp64(a[0], b[0]);\n out_val[1] = div_fp64(a[1], b[1]);\n}\n\nvoid vec2_mix_fp64(vec2 x[2], vec2 y[2], float a, out vec2 out_val[2]) {\n vec2 range[2];\n vec2_sub_fp64(y, x, range);\n vec2 portion[2];\n portion[0] = range[0] * a;\n portion[1] = range[1] * a;\n vec2_sum_fp64(x, portion, out_val);\n}\n\nvec2 vec2_length_fp64(vec2 x[2]) {\n return sqrt_fp64(sum_fp64(mul_fp64(x[0], x[0]), mul_fp64(x[1], x[1])));\n}\n\nvoid vec2_normalize_fp64(vec2 x[2], out vec2 out_val[2]) {\n vec2 length = vec2_length_fp64(x);\n vec2 length_vec2[2];\n length_vec2[0] = length;\n length_vec2[1] = length;\n\n vec2_div_fp64(x, length_vec2, out_val);\n}\n\nvec2 vec2_distance_fp64(vec2 x[2], vec2 y[2]) {\n vec2 diff[2];\n vec2_sub_fp64(x, y, diff);\n return vec2_length_fp64(diff);\n}\n\nvec2 vec2_dot_fp64(vec2 a[2], vec2 b[2]) {\n vec2 v[2];\n\n v[0] = mul_fp64(a[0], b[0]);\n v[1] = mul_fp64(a[1], b[1]);\n\n return sum_fp64(v[0], v[1]);\n}\n\n// vec3 functions\nvoid vec3_sub_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) {\n for (int i = 0; i < 3; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvoid vec3_sum_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) {\n for (int i = 0; i < 3; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvec2 vec3_length_fp64(vec2 x[3]) {\n return sqrt_fp64(sum_fp64(sum_fp64(mul_fp64(x[0], x[0]), mul_fp64(x[1], x[1])),\n mul_fp64(x[2], x[2])));\n}\n\nvec2 vec3_distance_fp64(vec2 x[3], vec2 y[3]) {\n vec2 diff[3];\n vec3_sub_fp64(x, y, diff);\n return vec3_length_fp64(diff);\n}\n\n// vec4 functions\nvoid vec4_fp64(vec4 a, out vec2 out_val[4]) {\n out_val[0].x = a[0];\n out_val[0].y = 0.0;\n\n out_val[1].x = a[1];\n out_val[1].y = 0.0;\n\n out_val[2].x = a[2];\n out_val[2].y = 0.0;\n\n out_val[3].x = a[3];\n out_val[3].y = 0.0;\n}\n\nvoid vec4_scalar_mul_fp64(vec2 a[4], vec2 b, out vec2 out_val[4]) {\n out_val[0] = mul_fp64(a[0], b);\n out_val[1] = mul_fp64(a[1], b);\n out_val[2] = mul_fp64(a[2], b);\n out_val[3] = mul_fp64(a[3], b);\n}\n\nvoid vec4_sum_fp64(vec2 a[4], vec2 b[4], out vec2 out_val[4]) {\n for (int i = 0; i < 4; i++) {\n out_val[i] = sum_fp64(a[i], b[i]);\n }\n}\n\nvoid vec4_dot_fp64(vec2 a[4], vec2 b[4], out vec2 out_val) {\n vec2 v[4];\n\n v[0] = mul_fp64(a[0], b[0]);\n v[1] = mul_fp64(a[1], b[1]);\n v[2] = mul_fp64(a[2], b[2]);\n v[3] = mul_fp64(a[3], b[3]);\n\n out_val = sum_fp64(sum_fp64(v[0], v[1]), sum_fp64(v[2], v[3]));\n}\n\nvoid mat4_vec4_mul_fp64(vec2 b[16], vec2 a[4], out vec2 out_val[4]) {\n vec2 tmp[4];\n\n for (int i = 0; i < 4; i++)\n {\n for (int j = 0; j < 4; j++)\n {\n tmp[j] = b[j + i * 4];\n }\n vec4_dot_fp64(a, tmp, out_val[i]);\n }\n}\n`;\n//# sourceMappingURL=fp64-functions-glsl.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { fp64ify, fp64LowPart, fp64ifyMatrix4 } from \"../../../modules/math/fp64/fp64-utils.js\";\nimport { fp64arithmeticShader } from \"./fp64-arithmetic-glsl.js\";\nimport { fp64functionShader } from \"./fp64-functions-glsl.js\";\nconst defaultUniforms = {\n // Used in LUMA_FP64_CODE_ELIMINATION_WORKAROUND\n ONE: 1.0\n};\n/**\n * 64bit arithmetic: add, sub, mul, div (small subset of fp64 module)\n */\nexport const fp64arithmetic = {\n name: 'fp64arithmetic',\n vs: fp64arithmeticShader,\n defaultUniforms,\n uniformTypes: { ONE: 'f32' },\n // Additional Functions\n fp64ify,\n fp64LowPart,\n fp64ifyMatrix4\n};\n/**\n * Full 64 bit math library\n */\nexport const fp64 = {\n name: 'fp64',\n vs: fp64functionShader,\n dependencies: [fp64arithmetic],\n // Additional Functions\n fp64ify,\n fp64LowPart,\n fp64ifyMatrix4\n};\nexport { fp64ify, fp64LowPart, fp64ifyMatrix4 };\n//# sourceMappingURL=fp64.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nconst uidCounters = {};\n/**\n * Returns a UID.\n * @param id= - Identifier base name\n * @return uid\n **/\nexport function uid(id = 'id') {\n uidCounters[id] = uidCounters[id] || 1;\n const count = uidCounters[id]++;\n return `${id}-${count}`;\n}\n//# sourceMappingURL=uid.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Buffer, getVertexFormatFromAttribute } from '@luma.gl/core';\nimport { uid } from \"../utils/uid.js\";\nexport class GPUGeometry {\n id;\n userData = {};\n /** Determines how vertices are read from the 'vertex' attributes */\n topology;\n bufferLayout = [];\n vertexCount;\n indices;\n attributes;\n constructor(props) {\n this.id = props.id || uid('geometry');\n this.topology = props.topology;\n this.indices = props.indices || null;\n this.attributes = props.attributes;\n this.vertexCount = props.vertexCount;\n this.bufferLayout = props.bufferLayout || [];\n if (this.indices) {\n if (!(this.indices.usage & Buffer.INDEX)) {\n throw new Error('Index buffer must have INDEX usage');\n }\n }\n }\n destroy() {\n this.indices?.destroy();\n for (const attribute of Object.values(this.attributes)) {\n attribute.destroy();\n }\n }\n getVertexCount() {\n return this.vertexCount;\n }\n getAttributes() {\n return this.attributes;\n }\n getIndexes() {\n return this.indices || null;\n }\n _calculateVertexCount(positions) {\n // Assume that positions is a fully packed float32x3 buffer\n const vertexCount = positions.byteLength / 12;\n return vertexCount;\n }\n}\nexport function makeGPUGeometry(device, geometry) {\n if (geometry instanceof GPUGeometry) {\n return geometry;\n }\n const indices = getIndexBufferFromGeometry(device, geometry);\n const { attributes, bufferLayout } = getAttributeBuffersFromGeometry(device, geometry);\n return new GPUGeometry({\n topology: geometry.topology || 'triangle-list',\n bufferLayout,\n vertexCount: geometry.vertexCount,\n indices,\n attributes\n });\n}\nexport function getIndexBufferFromGeometry(device, geometry) {\n if (!geometry.indices) {\n return undefined;\n }\n const data = geometry.indices.value;\n return device.createBuffer({ usage: Buffer.INDEX, data });\n}\nexport function getAttributeBuffersFromGeometry(device, geometry) {\n const bufferLayout = [];\n const attributes = {};\n for (const [attributeName, attribute] of Object.entries(geometry.attributes)) {\n let name = attributeName;\n // TODO Map some GLTF attribute names (is this still needed?)\n switch (attributeName) {\n case 'POSITION':\n name = 'positions';\n break;\n case 'NORMAL':\n name = 'normals';\n break;\n case 'TEXCOORD_0':\n name = 'texCoords';\n break;\n case 'COLOR_0':\n name = 'colors';\n break;\n }\n if (attribute) {\n attributes[name] = device.createBuffer({\n data: attribute.value,\n id: `${attributeName}-buffer`\n });\n const { value, size, normalized } = attribute;\n // @ts-expect-error\n bufferLayout.push({ name, format: getVertexFormatFromAttribute(value, size, normalized) });\n }\n }\n const vertexCount = geometry._calculateVertexCount(geometry.attributes, geometry.indices);\n return { attributes, bufferLayout, vertexCount };\n}\n//# sourceMappingURL=gpu-geometry.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { RenderPipeline, ComputePipeline, log } from '@luma.gl/core';\nimport { uid } from \"../utils/uid.js\";\n/**\n * Efficiently creates / caches pipelines\n */\nexport class PipelineFactory {\n static defaultProps = { ...RenderPipeline.defaultProps };\n /** Get the singleton default pipeline factory for the specified device */\n static getDefaultPipelineFactory(device) {\n device._lumaData['defaultPipelineFactory'] =\n device._lumaData['defaultPipelineFactory'] || new PipelineFactory(device);\n return device._lumaData['defaultPipelineFactory'];\n }\n device;\n cachingEnabled;\n destroyPolicy;\n debug;\n _hashCounter = 0;\n _hashes = {};\n _renderPipelineCache = {};\n _computePipelineCache = {};\n get [Symbol.toStringTag]() {\n return 'PipelineFactory';\n }\n toString() {\n return `PipelineFactory(${this.device.id})`;\n }\n constructor(device) {\n this.device = device;\n this.cachingEnabled = device.props._cachePipelines;\n this.destroyPolicy = device.props._cacheDestroyPolicy;\n this.debug = device.props.debugFactories;\n }\n /** Return a RenderPipeline matching supplied props. Reuses an equivalent pipeline if already created. */\n createRenderPipeline(props) {\n if (!this.cachingEnabled) {\n return this.device.createRenderPipeline(props);\n }\n const allProps = { ...RenderPipeline.defaultProps, ...props };\n const cache = this._renderPipelineCache;\n const hash = this._hashRenderPipeline(allProps);\n let pipeline = cache[hash]?.pipeline;\n if (!pipeline) {\n pipeline = this.device.createRenderPipeline({\n ...allProps,\n id: allProps.id ? `${allProps.id}-cached` : uid('unnamed-cached')\n });\n pipeline.hash = hash;\n cache[hash] = { pipeline, useCount: 1 };\n if (this.debug) {\n log.log(3, `${this}: ${pipeline} created, count=${cache[hash].useCount}`)();\n }\n }\n else {\n cache[hash].useCount++;\n if (this.debug) {\n log.log(3, `${this}: ${cache[hash].pipeline} reused, count=${cache[hash].useCount}, (id=${props.id})`)();\n }\n }\n return pipeline;\n }\n /** Return a ComputePipeline matching supplied props. Reuses an equivalent pipeline if already created. */\n createComputePipeline(props) {\n if (!this.cachingEnabled) {\n return this.device.createComputePipeline(props);\n }\n const allProps = { ...ComputePipeline.defaultProps, ...props };\n const cache = this._computePipelineCache;\n const hash = this._hashComputePipeline(allProps);\n let pipeline = cache[hash]?.pipeline;\n if (!pipeline) {\n pipeline = this.device.createComputePipeline({\n ...allProps,\n id: allProps.id ? `${allProps.id}-cached` : undefined\n });\n pipeline.hash = hash;\n cache[hash] = { pipeline, useCount: 1 };\n if (this.debug) {\n log.log(3, `${this}: ${pipeline} created, count=${cache[hash].useCount}`)();\n }\n }\n else {\n cache[hash].useCount++;\n if (this.debug) {\n log.log(3, `${this}: ${cache[hash].pipeline} reused, count=${cache[hash].useCount}, (id=${props.id})`)();\n }\n }\n return pipeline;\n }\n release(pipeline) {\n if (!this.cachingEnabled) {\n pipeline.destroy();\n return;\n }\n const cache = this._getCache(pipeline);\n const hash = pipeline.hash;\n cache[hash].useCount--;\n if (cache[hash].useCount === 0) {\n this._destroyPipeline(pipeline);\n if (this.debug) {\n log.log(3, `${this}: ${pipeline} released and destroyed`)();\n }\n }\n else if (cache[hash].useCount < 0) {\n log.error(`${this}: ${pipeline} released, useCount < 0, resetting`)();\n cache[hash].useCount = 0;\n }\n else if (this.debug) {\n log.log(3, `${this}: ${pipeline} released, count=${cache[hash].useCount}`)();\n }\n }\n // PRIVATE\n /** Destroy a cached pipeline, removing it from the cache (depending on destroy policy) */\n _destroyPipeline(pipeline) {\n const cache = this._getCache(pipeline);\n switch (this.destroyPolicy) {\n case 'never':\n return false;\n case 'unused':\n delete cache[pipeline.hash];\n pipeline.destroy();\n return true;\n }\n }\n /** Get the appropriate cache for the type of pipeline */\n _getCache(pipeline) {\n let cache;\n if (pipeline instanceof ComputePipeline) {\n cache = this._computePipelineCache;\n }\n if (pipeline instanceof RenderPipeline) {\n cache = this._renderPipelineCache;\n }\n if (!cache) {\n throw new Error(`${this}`);\n }\n if (!cache[pipeline.hash]) {\n throw new Error(`${this}: ${pipeline} matched incorrect entry`);\n }\n return cache;\n }\n /** Calculate a hash based on all the inputs for a compute pipeline */\n _hashComputePipeline(props) {\n const { type } = this.device;\n const shaderHash = this._getHash(props.shader.source);\n return `${type}/C/${shaderHash}`;\n }\n /** Calculate a hash based on all the inputs for a render pipeline */\n _hashRenderPipeline(props) {\n const vsHash = props.vs ? this._getHash(props.vs.source) : 0;\n const fsHash = props.fs ? this._getHash(props.fs.source) : 0;\n // WebGL specific\n // const {varyings = [], bufferMode = {}} = props;\n // const varyingHashes = varyings.map((v) => this._getHash(v));\n const varyingHash = '-'; // `${varyingHashes.join('/')}B${bufferMode}`\n const bufferLayoutHash = this._getHash(JSON.stringify(props.bufferLayout));\n const { type } = this.device;\n switch (type) {\n case 'webgl':\n // WebGL is more dynamic\n return `${type}/R/${vsHash}/${fsHash}V${varyingHash}BL${bufferLayoutHash}`;\n case 'webgpu':\n default:\n // On WebGPU we need to rebuild the pipeline if topology, parameters or bufferLayout change\n const parameterHash = this._getHash(JSON.stringify(props.parameters));\n // TODO - Can json.stringify() generate different strings for equivalent objects if order of params is different?\n // create a deepHash() to deduplicate?\n return `${type}/R/${vsHash}/${fsHash}V${varyingHash}T${props.topology}P${parameterHash}BL${bufferLayoutHash}`;\n }\n }\n _getHash(key) {\n if (this._hashes[key] === undefined) {\n this._hashes[key] = this._hashCounter++;\n }\n return this._hashes[key];\n }\n}\n//# sourceMappingURL=pipeline-factory.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Shader, log } from '@luma.gl/core';\n/** Manages a cached pool of Shaders for reuse. */\nexport class ShaderFactory {\n static defaultProps = { ...Shader.defaultProps };\n /** Returns the default ShaderFactory for the given {@link Device}, creating one if necessary. */\n static getDefaultShaderFactory(device) {\n device._lumaData['defaultShaderFactory'] ||= new ShaderFactory(device);\n return device._lumaData['defaultShaderFactory'];\n }\n device;\n cachingEnabled;\n destroyPolicy;\n debug;\n _cache = {};\n get [Symbol.toStringTag]() {\n return 'ShaderFactory';\n }\n toString() {\n return `${this[Symbol.toStringTag]}(${this.device.id})`;\n }\n /** @internal */\n constructor(device) {\n this.device = device;\n this.cachingEnabled = device.props._cacheShaders;\n this.destroyPolicy = device.props._cacheDestroyPolicy;\n this.debug = true; // device.props.debugFactories;\n }\n /** Requests a {@link Shader} from the cache, creating a new Shader only if necessary. */\n createShader(props) {\n if (!this.cachingEnabled) {\n return this.device.createShader(props);\n }\n const key = this._hashShader(props);\n let cacheEntry = this._cache[key];\n if (!cacheEntry) {\n const shader = this.device.createShader({\n ...props,\n id: props.id ? `${props.id}-cached` : undefined\n });\n this._cache[key] = cacheEntry = { shader, useCount: 1 };\n if (this.debug) {\n log.log(3, `${this}: Created new shader ${shader.id}`)();\n }\n }\n else {\n cacheEntry.useCount++;\n if (this.debug) {\n log.log(3, `${this}: Reusing shader ${cacheEntry.shader.id} count=${cacheEntry.useCount}`)();\n }\n }\n return cacheEntry.shader;\n }\n /** Releases a previously-requested {@link Shader}, destroying it if no users remain. */\n release(shader) {\n if (!this.cachingEnabled) {\n shader.destroy();\n return;\n }\n const key = this._hashShader(shader);\n const cacheEntry = this._cache[key];\n if (cacheEntry) {\n cacheEntry.useCount--;\n if (cacheEntry.useCount === 0) {\n if (this.destroyPolicy === 'unused') {\n delete this._cache[key];\n cacheEntry.shader.destroy();\n if (this.debug) {\n log.log(3, `${this}: Releasing shader ${shader.id}, destroyed`)();\n }\n }\n }\n else if (cacheEntry.useCount < 0) {\n throw new Error(`ShaderFactory: Shader ${shader.id} released too many times`);\n }\n else if (this.debug) {\n log.log(3, `${this}: Releasing shader ${shader.id} count=${cacheEntry.useCount}`)();\n }\n }\n }\n // PRIVATE\n _hashShader(value) {\n return `${value.stage}:${value.source}`;\n }\n}\n//# sourceMappingURL=shader-factory.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n * Extracts a table suitable for `console.table()` from a shader layout to assist in debugging.\n * @param layout shader layout\n * @param name app should provide the most meaningful name, usually the model or pipeline name / id.\n * @returns\n */\nexport function getDebugTableForShaderLayout(layout, name) {\n const table = {};\n const header = 'Values'; // '`Shader Layout for ${name}`;\n if (layout.attributes.length === 0 && !layout.varyings?.length) {\n return { 'No attributes or varyings': { [header]: 'N/A' } };\n }\n for (const attributeDeclaration of layout.attributes) {\n if (attributeDeclaration) {\n const glslDeclaration = `${attributeDeclaration.location} ${attributeDeclaration.name}: ${attributeDeclaration.type}`;\n table[`in ${glslDeclaration}`] = { [header]: attributeDeclaration.stepMode || 'vertex' };\n }\n }\n for (const varyingDeclaration of layout.varyings || []) {\n const glslDeclaration = `${varyingDeclaration.location} ${varyingDeclaration.name}`;\n table[`out ${glslDeclaration}`] = { [header]: JSON.stringify(varyingDeclaration) };\n }\n return table;\n}\n//# sourceMappingURL=debug-shader-layout.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// import {copyTextureToImage} from '../debug/copy-texture-to-image';\n/** Only works with 1st device? */\nlet canvas = null;\nlet ctx = null;\n// let targetImage: HTMLImageElement | null = null;\n/** Debug utility to draw FBO contents onto screen */\n// eslint-disable-next-line\nexport function debugFramebuffer(fbo, { id, minimap, opaque, top = '0', left = '0', rgbaScale = 1 }) {\n if (!canvas) {\n canvas = document.createElement('canvas');\n canvas.id = id;\n canvas.title = id;\n canvas.style.zIndex = '100';\n canvas.style.position = 'absolute';\n canvas.style.top = top; // ⚠️\n canvas.style.left = left; // ⚠️\n canvas.style.border = 'blue 5px solid';\n canvas.style.transform = 'scaleY(-1)';\n document.body.appendChild(canvas);\n ctx = canvas.getContext('2d');\n // targetImage = new Image();\n }\n // const canvasHeight = (minimap ? 2 : 1) * fbo.height;\n if (canvas.width !== fbo.width || canvas.height !== fbo.height) {\n canvas.width = fbo.width / 2;\n canvas.height = fbo.height / 2;\n canvas.style.width = '400px';\n canvas.style.height = '400px';\n }\n // const image = copyTextureToImage(fbo, {targetMaxHeight: 100, targetImage});\n // ctx.drawImage(image, 0, 0);\n const color = fbo.device.readPixelsToArrayWebGL(fbo);\n const imageData = ctx?.createImageData(fbo.width, fbo.height);\n if (imageData) {\n // Full map\n const offset = 0;\n // if (color.some((v) => v > 0)) {\n // console.error('THERE IS NON-ZERO DATA IN THE FBO!');\n // }\n for (let i = 0; i < color.length; i += 4) {\n imageData.data[offset + i + 0] = color[i + 0] * rgbaScale;\n imageData.data[offset + i + 1] = color[i + 1] * rgbaScale;\n imageData.data[offset + i + 2] = color[i + 2] * rgbaScale;\n imageData.data[offset + i + 3] = opaque ? 255 : color[i + 3] * rgbaScale;\n }\n ctx?.putImageData(imageData, 0, 0);\n }\n}\n//# sourceMappingURL=debug-framebuffer.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n * Fast partial deep equal for prop.\n *\n * @param a Prop\n * @param b Prop to compare against `a`\n * @param depth Depth to which to recurse in nested Objects/Arrays. Use 0 (default) for shallow comparison, -1 for infinite depth\n */\n/* eslint-disable complexity */\nexport function deepEqual(a, b, depth) {\n if (a === b) {\n return true;\n }\n if (!depth || !a || !b) {\n return false;\n }\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i], depth - 1)) {\n return false;\n }\n }\n return true;\n }\n if (Array.isArray(b)) {\n return false;\n }\n if (typeof a === 'object' && typeof b === 'object') {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n for (const key of aKeys) {\n if (!b.hasOwnProperty(key)) {\n return false;\n }\n if (!deepEqual(a[key], b[key], depth - 1)) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n//# sourceMappingURL=deep-equal.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { log } from '@luma.gl/core';\n/** BufferLayoutHelper is a helper class that should not be used directly by applications */\nexport class BufferLayoutHelper {\n bufferLayouts;\n constructor(bufferLayouts) {\n this.bufferLayouts = bufferLayouts;\n }\n getBufferLayout(name) {\n return this.bufferLayouts.find(layout => layout.name === name) || null;\n }\n /** Get attribute names from a BufferLayout */\n getAttributeNamesForBuffer(bufferLayout) {\n return bufferLayout.attributes\n ? bufferLayout.attributes?.map(layout => layout.attribute)\n : [bufferLayout.name];\n }\n mergeBufferLayouts(bufferLayouts1, bufferLayouts2) {\n const mergedLayouts = [...bufferLayouts1];\n for (const attribute of bufferLayouts2) {\n const index = mergedLayouts.findIndex(attribute2 => attribute2.name === attribute.name);\n if (index < 0) {\n mergedLayouts.push(attribute);\n }\n else {\n mergedLayouts[index] = attribute;\n }\n }\n return mergedLayouts;\n }\n getBufferIndex(bufferName) {\n const bufferIndex = this.bufferLayouts.findIndex(layout => layout.name === bufferName);\n if (bufferIndex === -1) {\n log.warn(`BufferLayout: Missing buffer for \"${bufferName}\".`)();\n }\n return bufferIndex;\n }\n}\n//# sourceMappingURL=buffer-layout-helper.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nexport function sortedBufferLayoutByShaderSourceLocations(shaderLayout, bufferLayout) {\n const shaderLayoutMap = Object.fromEntries(shaderLayout.attributes.map(attr => [attr.name, attr.location]));\n const sortedLayout = bufferLayout.slice();\n sortedLayout.sort((a, b) => {\n const attributeNamesA = a.attributes ? a.attributes.map(attr => attr.attribute) : [a.name];\n const attributeNamesB = b.attributes ? b.attributes.map(attr => attr.attribute) : [b.name];\n const minLocationA = Math.min(...attributeNamesA.map(name => shaderLayoutMap[name]));\n const minLocationB = Math.min(...attributeNamesB.map(name => shaderLayoutMap[name]));\n return minLocationA - minLocationB;\n });\n return sortedLayout;\n}\n//# sourceMappingURL=buffer-layout-order.js.map","// math.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n * Check is an array is a typed array\n * @param value value to be tested\n * @returns input with type narrowed to TypedArray, or null\n */\nexport function isTypedArray(value) {\n return ArrayBuffer.isView(value) && !(value instanceof DataView);\n}\n/**\n * Check is an array is an array of numbers)\n * @param value value to be tested\n * @returns input with type narrowed to NumberArray, or null\n */\nexport function isNumberArray(value) {\n if (Array.isArray(value)) {\n return value.length === 0 || typeof value[0] === 'number';\n }\n return false;\n}\n/**\n * Check is an array is a numeric array (typed array or array of numbers)\n * @param value value to be tested\n * @returns input with type narrowed to NumericArray, or null\n */\nexport function isNumericArray(value) {\n return isTypedArray(value) || isNumberArray(value);\n}\n//# sourceMappingURL=is-array.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { isNumericArray } from '@math.gl/types';\nexport function isUniformValue(value) {\n return isNumericArray(value) || typeof value === 'number' || typeof value === 'boolean';\n}\nexport function splitUniformsAndBindings(uniforms) {\n const result = { bindings: {}, uniforms: {} };\n Object.keys(uniforms).forEach(name => {\n const uniform = uniforms[name];\n if (isUniformValue(uniform)) {\n result.uniforms[name] = uniform;\n }\n else {\n result.bindings[name] = uniform;\n }\n });\n return result;\n}\n//# sourceMappingURL=split-uniforms-and-bindings.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { log } from '@luma.gl/core';\n// import type {VariableShaderType, UniformValue, UniformFormat, UniformInfoDevice, Texture, Sampler} from '@luma.gl/core';\nimport { getShaderModuleDependencies } from '@luma.gl/shadertools';\nimport { splitUniformsAndBindings } from \"./model/split-uniforms-and-bindings.js\";\n/**\n * ShaderInputs holds uniform and binding values for one or more shader modules,\n * - It can generate binary data for any uniform buffer\n * - It can manage a uniform buffer for each block\n * - It can update managed uniform buffers with a single call\n * - It performs some book keeping on what has changed to minimize unnecessary writes to uniform buffers.\n */\nexport class ShaderInputs {\n options = {\n disableWarnings: false\n };\n /**\n * The map of modules\n * @todo should should this include the resolved dependencies?\n */\n // @ts-ignore Fix typings\n modules;\n /** Stores the uniform values for each module */\n moduleUniforms;\n /** Stores the uniform bindings for each module */\n moduleBindings;\n /** Tracks if uniforms have changed */\n // moduleUniformsChanged: Record<keyof ShaderPropsT, false | string>;\n /**\n * Create a new UniformStore instance\n * @param modules\n */\n constructor(\n // @ts-ignore Fix typings\n modules, options) {\n Object.assign(this.options, options);\n // Extract modules with dependencies\n const resolvedModules = getShaderModuleDependencies(Object.values(modules).filter(module => module.dependencies));\n for (const resolvedModule of resolvedModules) {\n // @ts-ignore\n modules[resolvedModule.name] = resolvedModule;\n }\n log.log(1, 'Creating ShaderInputs with modules', Object.keys(modules))();\n // Store the module definitions and create storage for uniform values and binding values, per module\n // @ts-ignore Fix typings\n this.modules = modules;\n this.moduleUniforms = {};\n this.moduleBindings = {};\n // Initialize the modules\n for (const [name, module] of Object.entries(modules)) {\n this._addModule(module);\n if (module.name && name !== module.name && !this.options.disableWarnings) {\n log.warn(`Module name: ${name} vs ${module.name}`)();\n }\n }\n }\n /** Destroy */\n destroy() { }\n /**\n * Set module props\n */\n setProps(props) {\n for (const name of Object.keys(props)) {\n const moduleName = name;\n const moduleProps = props[moduleName] || {};\n const module = this.modules[moduleName];\n if (!module) {\n // Ignore props for unregistered modules\n if (!this.options.disableWarnings) {\n log.warn(`Module ${name} not found`)();\n }\n continue; // eslint-disable-line no-continue\n }\n const oldUniforms = this.moduleUniforms[moduleName];\n const oldBindings = this.moduleBindings[moduleName];\n const uniformsAndBindings = module.getUniforms?.(moduleProps, oldUniforms) || moduleProps;\n const { uniforms, bindings } = splitUniformsAndBindings(uniformsAndBindings);\n this.moduleUniforms[moduleName] = { ...oldUniforms, ...uniforms };\n this.moduleBindings[moduleName] = { ...oldBindings, ...bindings };\n // this.moduleUniformsChanged ||= moduleName;\n // console.log(`setProps(${String(moduleName)}`, moduleName, this.moduleUniforms[moduleName])\n }\n }\n /**\n * Return the map of modules\n * @todo should should this include the resolved dependencies?\n */\n getModules() {\n return Object.values(this.modules);\n }\n /** Get all uniform values for all modules */\n getUniformValues() {\n return this.moduleUniforms;\n }\n /** Merges all bindings for the shader (from the various modules) */\n getBindingValues() {\n const bindings = {};\n for (const moduleBindings of Object.values(this.moduleBindings)) {\n Object.assign(bindings, moduleBindings);\n }\n return bindings;\n }\n // INTERNAL\n /** Return a debug table that can be used for console.table() or log.table() */\n getDebugTable() {\n const table = {};\n for (const [moduleName, module] of Object.entries(this.moduleUniforms)) {\n for (const [key, value] of Object.entries(module)) {\n table[`${moduleName}.${key}`] = {\n type: this.modules[moduleName].uniformTypes?.[key],\n value: String(value)\n };\n }\n }\n return table;\n }\n _addModule(module) {\n const moduleName = module.name;\n // Get default uniforms from module\n this.moduleUniforms[moduleName] = module.defaultUniforms || {};\n this.moduleBindings[moduleName] = {};\n }\n}\n//# sourceMappingURL=shader-inputs.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nlet pathPrefix = '';\n/**\n * Set a relative path prefix\n */\nexport function setPathPrefix(prefix) {\n pathPrefix = prefix;\n}\n/**\n * Loads ImageBitmap asynchronously. Respects setPathPrefix.\n * image.crossOrigin can be set via opts.crossOrigin, default to 'anonymous'\n * @returns a promise tracking the load\n */\nexport async function loadImageBitmap(url, opts) {\n const image = new Image();\n image.crossOrigin = opts?.crossOrigin || 'anonymous';\n image.src = url.startsWith('http') ? url : pathPrefix + url;\n await image.decode();\n return opts ? await createImageBitmap(image, opts) : await createImageBitmap(image);\n}\n/**\n * Loads image asynchronously. Respects setPathPrefix.\n * image.crossOrigin can be set via opts.crossOrigin, default to 'anonymous'\n * @returns a promise tracking the load\n * @deprecated Use `loadImageBitmap()` unless you are supporting old versions of Safari.\n */\nexport async function loadImage(url, opts) {\n return await new Promise((resolve, reject) => {\n try {\n const image = new Image();\n image.onload = () => resolve(image);\n image.onerror = () => reject(new Error(`Could not load image ${url}.`));\n image.crossOrigin = opts?.crossOrigin || 'anonymous';\n image.src = url.startsWith('http') ? url : pathPrefix + url;\n }\n catch (error) {\n reject(error);\n }\n });\n}\n//# sourceMappingURL=load-file.js.map","// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\nimport { Texture, Sampler, log } from '@luma.gl/core';\nimport { loadImageBitmap } from \"../application-utils/load-file.js\";\nimport { uid } from \"../utils/uid.js\";\nexport const TextureCubeFaces = ['+X', '-X', '+Y', '-Y', '+Z', '-Z'];\n// prettier-ignore\nexport const TextureCubeFaceMap = { '+X': 0, '-X': 1, '+Y': 2, '-Y': 3, '+Z': 4, '-Z': 5 };\nexport const CubeFaces = ['+X', '-X', '+Y', '-Y', '+Z', '-Z'];\n/**\n * It is very convenient to be able to initialize textures with promises\n * This can add considerable complexity to the Texture class, and doesn't\n * fit with the immutable nature of WebGPU resources.\n * Instead, luma.gl offers async textures as a separate class.\n */\nexport class AsyncTexture {\n device;\n id;\n props;\n // TODO - should we type these as possibly `null`? It will make usage harder?\n // @ts-expect-error\n texture;\n // @ts-expect-error\n sampler;\n // @ts-expect-error\n view;\n ready;\n isReady = false;\n destroyed = false;\n resolveReady = () => { };\n rejectReady = () => { };\n get [Symbol.toStringTag]() {\n return 'AsyncTexture';\n }\n toString() {\n return `AsyncTexture:\"${this.id}\"(${this.isReady ? 'ready' : 'loading'})`;\n }\n constructor(device, props) {\n this.device = device;\n // TODO - if we support URL strings as data...\n const id = uid('async-texture'); // typeof props?.data === 'string' ? props.data.slice(-20) : uid('async-texture');\n this.props = { ...AsyncTexture.defaultProps, id, ...props };\n this.id = this.props.id;\n props = { ...props };\n // Signature: new AsyncTexture(device, {data: url})\n if (typeof props?.data === 'string' && props.dimension === '2d') {\n props.data = loadImageBitmap(props.data);\n }\n // If mipmaps are requested, we need to allocate space for them\n if (props.mipmaps) {\n props.mipLevels = 'auto';\n }\n this.ready = new Promise((resolve, reject) => {\n this.resolveReady = () => {\n this.isReady = true;\n resolve();\n };\n this.rejectReady = reject;\n });\n this.initAsync(props);\n }\n async initAsync(props) {\n const asyncData = props.data;\n // @ts-expect-error not clear how to convince TS that null will be returned\n const data = await awaitAllPromises(asyncData).then(undefined, this.rejectReady);\n // Check that we haven't been destroyed while waiting for texture data to load\n if (this.destroyed) {\n return;\n }\n // Now we can actually create the texture\n // Auto-deduce width and height if not supplied\n const size = this.props.width && this.props.height\n ? { width: this.props.width, height: this.props.height }\n : this.getTextureDataSize(data);\n if (!size) {\n throw new Error('Texture size could not be determined');\n }\n const syncProps = { ...size, ...props, data: undefined, mipLevels: 1 };\n // Auto-calculate the number of mip levels as a convenience\n // TODO - Should we clamp to 1-getMipLevelCount?\n const maxMips = this.device.getMipLevelCount(syncProps.width, syncProps.height);\n syncProps.mipLevels =\n this.props.mipLevels === 'auto' ? maxMips : Math.min(maxMips, this.props.mipLevels);\n this.texture = this.device.createTexture(syncProps);\n this.sampler = this.texture.sampler;\n this.view = this.texture.view;\n if (props.data) {\n switch (this.props.dimension) {\n case '1d':\n this._setTexture1DData(this.texture, data);\n break;\n case '2d':\n this._setTexture2DData(data);\n break;\n case '3d':\n this._setTexture3DData(this.texture, data);\n break;\n case '2d-array':\n this._setTextureArrayData(this.texture, data);\n break;\n case 'cube':\n this._setTextureCubeData(this.texture, data);\n break;\n case 'cube-array':\n this._setTextureCubeArrayData(this.texture, data);\n break;\n }\n }\n // Do we need to generate mipmaps?\n if (this.props.mipmaps) {\n this.generateMipmaps();\n }\n log.info(1, `${this} loaded`);\n this.resolveReady();\n }\n destroy() {\n if (this.texture) {\n this.texture.destroy();\n // @ts-expect-error\n this.texture = null;\n }\n this.destroyed = true;\n }\n generateMipmaps() {\n // if (this.device.type === 'webgl') {\n this.texture.generateMipmapsWebGL();\n // }\n }\n /** Set sampler or create and set new Sampler from SamplerProps */\n setSampler(sampler = {}) {\n this.texture.setSampler(sampler instanceof Sampler ? sampler : this.device.createSampler(sampler));\n }\n /**\n * Textures are immutable and cannot be resized after creation,\n * but we can create a similar texture with the same parameters but a new size.\n * @note Does not copy contents of the texture\n * @note Mipmaps may need to be regenerated after resizing / setting new data\n * @todo Abort pending promise and create a texture with the new size?\n */\n resize(size) {\n if (!this.isReady) {\n throw new Error('Cannot resize texture before it is ready');\n }\n if (size.width === this.texture.width && size.height === this.texture.height) {\n return false;\n }\n if (this.texture) {\n const texture = this.texture;\n this.texture = texture.clone(size);\n texture.destroy();\n }\n return true;\n }\n /** Check if texture data is a typed array */\n isTextureLevelData(data) {\n const typedArray = data?.data;\n return ArrayBuffer.isView(typedArray);\n }\n /** Get the size of the texture described by the provided TextureData */\n getTextureDataSize(data) {\n if (!data) {\n return null;\n }\n if (ArrayBuffer.isView(data)) {\n return null;\n }\n // Recurse into arrays (array of miplevels)\n if (Array.isArray(data)) {\n return this.getTextureDataSize(data[0]);\n }\n if (this.device.isExternalImage(data)) {\n return this.device.getExternalImageSize(data);\n }\n if (data && typeof data === 'object' && data.constructor === Object) {\n const textureDataArray = Object.values(data);\n const untypedData = textureDataArray[0];\n return { width: untypedData.width, height: untypedData.height };\n }\n throw new Error('texture size deduction failed');\n }\n /** Convert luma.gl cubemap face constants to depth index */\n getCubeFaceDepth(face) {\n // prettier-ignore\n switch (face) {\n case '+X': return 0;\n case '-X': return 1;\n case '+Y': return 2;\n case '-Y': return 3;\n case '+Z': return 4;\n case '-Z': return 5;\n default: throw new Error(face);\n }\n }\n // EXPERIMENTAL\n setTextureData(data) { }\n /** Experimental: Set multiple mip levels */\n _setTexture1DData(texture, data) {\n throw new Error('setTexture1DData not supported in WebGL.');\n }\n /** Experimental: Set multiple mip levels */\n _setTexture2DData(lodData, depth = 0) {\n if (!this.texture) {\n throw new Error('Texture not initialized');\n }\n const lodArray = this._normalizeTextureData(lodData);\n // If the user provides multiple LODs, then automatic mipmap\n // generation generateMipmap() should be disabled to avoid overwriting them.\n if (lodArray.length > 1 && this.props.mipmaps !== false) {\n log.warn(`Texture ${this.id} mipmap and multiple LODs.`)();\n }\n for (let mipLevel = 0; mipLevel < lodArray.length; mipLevel++) {\n const imageData = lodArray[mipLevel];\n if (this.device.isExternalImage(imageData)) {\n this.texture.copyExternalImage({ image: imageData, depth, mipLevel, flipY: true });\n }\n else {\n this.texture.copyImageData({ data: imageData.data /* , depth */, mipLevel });\n }\n }\n }\n /**\n * Experimental: Sets 3D texture data: multiple depth slices, multiple mip levels\n * @param data\n */\n _setTexture3DData(texture, data) {\n if (this.texture?.props.dimension !== '3d') {\n throw new Error(this.id);\n }\n for (let depth = 0; depth < data.length; depth++) {\n this._setTexture2DData(data[depth], depth);\n }\n }\n /**\n * Experimental: Set Cube texture data, multiple faces, multiple mip levels\n * @todo - could support TextureCubeArray with depth\n * @param data\n * @param index\n */\n _setTextureCubeData(texture, data) {\n if (this.texture?.props.dimension !== 'cube') {\n throw new Error(this.id);\n }\n for (const [face, faceData] of Object.entries(data)) {\n const faceDepth = CubeFaces.indexOf(face);\n this._setTexture2DData(faceData, faceDepth);\n }\n }\n /**\n * Experimental: Sets texture array data, multiple levels, multiple depth slices\n * @param data\n */\n _setTextureArrayData(texture, data) {\n if (this.texture?.props.dimension !== '2d-array') {\n throw new Error(this.id);\n }\n for (let depth = 0; depth < data.length; depth++) {\n this._setTexture2DData(data[depth], depth);\n }\n }\n /**\n * Experimental: Sets texture cube array, multiple faces, multiple levels, multiple mip levels\n * @param data\n */\n _setTextureCubeArrayData(texture, data) {\n throw new Error('setTextureCubeArrayData not supported in WebGL2.');\n }\n /** Experimental */\n _setTextureCubeFaceData(texture, lodData, face, depth = 0) {\n // assert(this.props.dimension === 'cube');\n // If the user provides multiple LODs, then automatic mipmap\n // generation generateMipmap() should be disabled to avoid overwriting them.\n if (Array.isArray(lodData) && lodData.length > 1 && this.props.mipmaps !== false) {\n log.warn(`${this.id} has mipmap and multiple LODs.`)();\n }\n const faceDepth = TextureCubeFaces.indexOf(face);\n this._setTexture2DData(lodData, faceDepth);\n }\n /**\n * Normalize TextureData to an array of TextureImageData / ExternalImages\n * @param data\n * @param options\n * @returns array of TextureImageData / ExternalImages\n */\n _normalizeTextureData(data) {\n const options = this.texture;\n let mipLevelArray;\n if (ArrayBuffer.isView(data)) {\n mipLevelArray = [\n {\n // ts-expect-error does data really need to be Uint8ClampedArray?\n data,\n width: options.width,\n height: options.height\n // depth: options.depth\n }\n ];\n }\n else if (!Array.isArray(data)) {\n mipLevelArray = [data];\n }\n else {\n mipLevelArray = data;\n }\n return mipLevelArray;\n }\n static defaultProps = {\n ...Texture.defaultProps,\n data: null,\n mipmaps: false\n };\n}\n// TODO - Remove when texture refactor is complete\n/*\nsetCubeMapData(options: {\n width: number;\n height: number;\n data: Record<GL, Texture2DData> | Record<TextureCubeFace, Texture2DData>;\n format?: any;\n type?: any;\n /** @deprecated Use .data *\n pixels: any;\n}): void {\n const {gl} = this;\n\n const {width, height, pixels, data, format = GL.RGBA, type = GL.UNSIGNED_BYTE} = options;\n\n // pixel data (imageDataMap) is an Object from Face to Image or Promise.\n // For example:\n // {\n // GL.TEXTURE_CUBE_MAP_POSITIVE_X : Image-or-Promise,\n // GL.TEXTURE_CUBE_MAP_NEGATIVE_X : Image-or-Promise,\n // ... }\n // To provide multiple level-of-details (LODs) this can be Face to Array\n // of Image or Promise, like this\n // {\n // GL.TEXTURE_CUBE_MAP_POSITIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],\n // GL.TEXTURE_CUBE_MAP_NEGATIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],\n // ... }\n\n const imageDataMap = this._getImageDataMap(pixels || data);\n\n const resolvedFaces = WEBGLTexture.FACES.map(face => {\n const facePixels = imageDataMap[face];\n return Array.isArray(facePixels) ? facePixels : [facePixels];\n });\n this.bind();\n\n WEBGLTexture.FACES.forEach((face, index) => {\n if (resolvedFaces[index].length > 1 && this.props.mipmaps !== false) {\n // If the user provides multiple LODs, then automatic mipmap\n // generation generateMipmaps() should be disabled to avoid overwritting them.\n log.warn(`${this.id} has mipmap and multiple LODs.`)();\n }\n resolvedFaces[index].forEach((image, lodLevel) => {\n // TODO: adjust width & height for LOD!\n if (width && height) {\n gl.texImage2D(face, lodLevel, format, width, height, 0 /* border*, format, type, image);\n } else {\n gl.texImage2D(face, lodLevel, format, format, type, image);\n }\n });\n });\n\n this.unbind();\n}\n*/\n// HELPERS\n/** Resolve all promises in a nested data structure */\nasync function awaitAllPromises(x) {\n x = await x;\n if (Array.isArray(x)) {\n return await Promise.all(x.map(awaitAllPromises));\n }\n if (x && typeof x === 'object' && x.constructor === Object) {\n const object = x;\n const values = await Promise.all(Object.values(object));\n const keys = Object.keys(object);\n const resolvedObject = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObject[keys[i]] = values[i];\n }\n return resolvedObject;\n }\n return x;\n}\n//# sourceMappingURL=async-texture.js.map","// luma.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Buffer, Texture, TextureView, Sampler, RenderPipeline, UniformStore, log, getTypedArrayConstructor, getAttributeInfosFromLayouts } from '@luma.gl/core';\nimport { ShaderAssembler, getShaderLayoutFromWGSL } from '@luma.gl/shadertools';\nimport { makeGPUGeometry } from \"../geometry/gpu-geometry.js\";\nimport { PipelineFactory } from \"../factories/pipeline-factory.js\";\nimport { ShaderFactory } from \"../factories/shader-factory.js\";\nimport { getDebugTableForShaderLayout } from \"../debug/debug-shader-layout.js\";\nimport { debugFramebuffer } from \"../debug/debug-framebuffer.js\";\nimport { deepEqual } from \"../utils/deep-equal.js\";\nimport { BufferLayoutHelper } from \"../utils/buffer-layout-helper.js\";\nimport { sortedBufferLayoutByShaderSourceLocations } from \"../utils/buffer-layout-order.js\";\nimport { uid } from \"../utils/uid.js\";\nimport { ShaderInputs } from \"../shader-inputs.js\";\nimport { AsyncTexture } from \"../async-texture/async-texture.js\";\nconst LOG_DRAW_PRIORITY = 2;\nconst LOG_DRAW_TIMEOUT = 10000;\n/**\n * v9 Model API\n * A model\n * - automatically reuses pipelines (programs) when possible\n * - automatically rebuilds pipelines if necessary to accommodate changed settings\n * shadertools integration\n * - accepts modules and performs shader transpilation\n */\nexport class Model {\n static defaultProps = {\n ...RenderPipeline.defaultProps,\n source: undefined,\n vs: null,\n fs: null,\n id: 'unnamed',\n handle: undefined,\n userData: {},\n defines: {},\n modules: [],\n geometry: null,\n indexBuffer: null,\n attributes: {},\n constantAttributes: {},\n varyings: [],\n isInstanced: undefined,\n instanceCount: 0,\n vertexCount: 0,\n shaderInputs: undefined,\n pipelineFactory: undefined,\n shaderFactory: undefined,\n transformFeedback: undefined,\n shaderAssembler: ShaderAssembler.getDefaultShaderAssembler(),\n debugShaders: undefined,\n disableWarnings: undefined\n };\n device;\n id;\n // @ts-expect-error assigned in function called from constructor\n source;\n // @ts-expect-error assigned in function called from constructor\n vs;\n // @ts-expect-error assigned in function called from constructor\n fs;\n pipelineFactory;\n shaderFactory;\n userData = {};\n // Fixed properties (change can trigger pipeline rebuild)\n /** The render pipeline GPU parameters, depth testing etc */\n parameters;\n /** The primitive topology */\n topology;\n /** Buffer layout */\n bufferLayout;\n // Dynamic properties\n /** Use instanced rendering */\n isInstanced = undefined;\n /** instance count. `undefined` means not instanced */\n instanceCount = 0;\n /** Vertex count */\n vertexCount;\n /** Index buffer */\n indexBuffer = null;\n /** Buffer-valued attributes */\n bufferAttributes = {};\n /** Constant-valued attributes */\n constantAttributes = {};\n /** Bindings (textures, samplers, uniform buffers) */\n bindings = {};\n /**\n * VertexArray\n * @note not implemented: if bufferLayout is updated, vertex array has to be rebuilt!\n * @todo - allow application to define multiple vertex arrays?\n * */\n vertexArray;\n /** TransformFeedback, WebGL 2 only. */\n transformFeedback = null;\n /** The underlying GPU \"program\". @note May be recreated if parameters change */\n pipeline;\n /** ShaderInputs instance */\n // @ts-expect-error Assigned in function called by constructor\n shaderInputs;\n // @ts-expect-error Assigned in function called by constructor\n _uniformStore;\n _attributeInfos = {};\n _gpuGeometry = null;\n props;\n _pipelineNeedsUpdate = 'newly created';\n _needsRedraw = 'initializing';\n _destroyed = false;\n /** \"Time\" of last draw. Monotonically increasing timestamp */\n _lastDrawTimestamp = -1;\n get [Symbol.toStringTag]() {\n return 'Model';\n }\n toString() {\n return `Model(${this.id})`;\n }\n constructor(device, props) {\n this.props = { ...Model.defaultProps, ...props };\n props = this.props;\n this.id = props.id || uid('model');\n this.device = device;\n Object.assign(this.userData, props.userData);\n // Setup shader module inputs\n const moduleMap = Object.fromEntries(this.props.modules?.map(module => [module.name, module]) || []);\n const shaderInputs = props.shaderInputs ||\n new ShaderInputs(moduleMap, { disableWarnings: this.props.disableWarnings });\n // @ts-ignore\n this.setShaderInputs(shaderInputs);\n // Setup shader assembler\n const platformInfo = getPlatformInfo(device);\n // Extract modules from shader inputs if not supplied\n const modules = \n // @ts-ignore shaderInputs is assigned in setShaderInputs above.\n (this.props.modules?.length > 0 ? this.props.modules : this.shaderInputs?.getModules()) || [];\n const isWebGPU = this.device.type === 'webgpu';\n // WebGPU\n // TODO - hack to support unified WGSL shader\n // TODO - this is wrong, compile a single shader\n if (isWebGPU && this.props.source) {\n // WGSL\n const { source, getUniforms } = this.props.shaderAssembler.assembleWGSLShader({\n platformInfo,\n ...this.props,\n modules\n });\n this.source = source;\n // @ts-expect-error\n this._getModuleUniforms = getUniforms;\n // Extract shader layout after modules have been added to WGSL source, to include any bindings added by modules\n this.props.shaderLayout ||= getShaderLayoutFromWGSL(this.source);\n }\n else {\n // GLSL\n const { vs, fs, getUniforms } = this.props.shaderAssembler.assembleGLSLShaderPair({\n platformInfo,\n ...this.props,\n modules\n });\n this.vs = vs;\n this.fs = fs;\n // @ts-expect-error\n this._getModuleUniforms = getUniforms;\n }\n this.vertexCount = this.props.vertexCount;\n this.instanceCount = this.props.instanceCount;\n this.topology = this.props.topology;\n this.bufferLayout = this.props.bufferLayout;\n this.parameters = this.props.parameters;\n // Geometry, if provided, sets topology and vertex cound\n if (props.geometry) {\n this.setGeometry(props.geometry);\n }\n this.pipelineFactory =\n props.pipelineFactory || PipelineFactory.getDefaultPipelineFactory(this.device);\n this.shaderFactory = props.shaderFactory || ShaderFactory.getDefaultShaderFactory(this.device);\n // Create the pipeline\n // @note order is important\n this.pipeline = this._updatePipeline();\n this.vertexArray = device.createVertexArray({\n shaderLayout: this.pipeline.shaderLayout,\n bufferLayout: this.pipeline.bufferLayout\n });\n // Now we can apply geometry attributes\n if (this._gpuGeometry) {\n this._setGeometryAttributes(this._gpuGeometry);\n }\n // Apply any dynamic settings that will not trigger pipeline change\n if ('isInstanced' in props) {\n this.isInstanced = props.isInstanced;\n }\n if (props.instanceCount) {\n this.setInstanceCount(props.instanceCount);\n }\n if (props.vertexCount) {\n this.setVertexCount(props.vertexCount);\n }\n if (props.indexBuffer) {\n this.setIndexBuffer(props.indexBuffer);\n }\n if (props.attributes) {\n this.setAttributes(props.attributes);\n }\n if (props.constantAttributes) {\n this.setConstantAttributes(props.constantAttributes);\n }\n if (props.bindings) {\n this.setBindings(props.bindings);\n }\n if (props.transformFeedback) {\n this.transformFeedback = props.transformFeedback;\n }\n // Catch any access to non-standard props\n Object.seal(this);\n }\n destroy() {\n if (!this._destroyed) {\n // Release pipeline before we destroy the shaders used by the pipeline\n this.pipelineFactory.release(this.pipeline);\n // Release the shaders\n this.shaderFactory.release(this.pipeline.vs);\n if (this.pipeline.fs) {\n this.shaderFactory.release(this.pipeline.fs);\n }\n this._uniformStore.destroy();\n // TODO - mark resource as managed and destroyIfManaged() ?\n this._gpuGeometry?.destroy();\n this._destroyed = true;\n }\n }\n // Draw call\n /** Query redraw status. Clears the status. */\n needsRedraw() {\n // Catch any writes to already bound resources\n if (this._getBindingsUpdateTimestamp() > this._lastDrawTimestamp) {\n this.setNeedsRedraw('contents of bound textures or buffers updated');\n }\n const needsRedraw = this._needsRedraw;\n this._needsRedraw = false;\n return needsRedraw;\n }\n /** Mark the model as needing a redraw */\n setNeedsRedraw(reason) {\n this._needsRedraw ||= reason;\n }\n predraw() {\n // Update uniform buffers if needed\n this.updateShaderInputs();\n // Check if the pipeline is invalidated\n this.pipeline = this._updatePipeline();\n }\n draw(renderPass) {\n const loadingBinding = this._areBindingsLoading();\n if (loadingBinding) {\n log.info(LOG_DRAW_PRIORITY, `>>> DRAWING ABORTED ${this.id}: ${loadingBinding} not loaded`)();\n return false;\n }\n try {\n renderPass.pushDebugGroup(`${this}.predraw(${renderPass})`);\n this.predraw();\n }\n finally {\n renderPass.popDebugGroup();\n }\n let drawSuccess;\n try {\n renderPass.pushDebugGroup(`${this}.draw(${renderPass})`);\n this._logDrawCallStart();\n // Update the pipeline if invalidated\n // TODO - inside RenderPass is likely the worst place to do this from performance perspective.\n // Application can call Model.predraw() to avoid this.\n this.pipeline = this._updatePipeline();\n // Set pipeline state, we may be sharing a pipeline so we need to set all state on every draw\n // Any caching needs to be done inside the pipeline functions\n // TODO this is a busy initialized check for all bindings every frame\n const syncBindings = this._getBindings();\n this.pipeline.setBindings(syncBindings, {\n disableWarnings: this.props.disableWarnings\n });\n const { indexBuffer } = this.vertexArray;\n const indexCount = indexBuffer\n ? indexBuffer.byteLength / (indexBuffer.indexType === 'uint32' ? 4 : 2)\n : undefined;\n drawSuccess = this.pipeline.draw({\n renderPass,\n vertexArray: this.vertexArray,\n isInstanced: this.isInstanced,\n vertexCount: this.vertexCount,\n instanceCount: this.instanceCount,\n indexCount,\n transformFeedback: this.transformFeedback || undefined,\n // WebGL shares underlying cached pipelines even for models that have different parameters and topology,\n // so we must provide our unique parameters to each draw\n // (In WebGPU most parameters are encoded in the pipeline and cannot be changed per draw call)\n parameters: this.parameters,\n topology: this.topology\n });\n }\n finally {\n renderPass.popDebugGroup();\n this._logDrawCallEnd();\n }\n this._logFramebuffer(renderPass);\n // Update needsRedraw flag\n if (drawSuccess) {\n this._lastDrawTimestamp = this.device.timestamp;\n this._needsRedraw = false;\n }\n else {\n this._needsRedraw = 'waiting for resource initialization';\n }\n return drawSuccess;\n }\n // Update fixed fields (can trigger pipeline rebuild)\n /**\n * Updates the optional geometry\n * Geometry, set topology and bufferLayout\n * @note Can trigger a pipeline rebuild / pipeline cache fetch on WebGPU\n */\n setGeometry(geometry) {\n this._gpuGeometry?.destroy();\n const gpuGeometry = geometry && makeGPUGeometry(this.device, geometry);\n if (gpuGeometry) {\n this.setTopology(gpuGeometry.topology || 'triangle-list');\n const bufferLayoutHelper = new BufferLayoutHelper(this.bufferLayout);\n this.bufferLayout = bufferLayoutHelper.mergeBufferLayouts(gpuGeometry.bufferLayout, this.bufferLayout);\n if (this.vertexArray) {\n this._setGeometryAttributes(gpuGeometry);\n }\n }\n this._gpuGeometry = gpuGeometry;\n }\n /**\n * Updates the primitive topology ('triangle-list', 'triangle-strip' etc).\n * @note Triggers a pipeline rebuild / pipeline cache fetch on WebGPU\n */\n setTopology(topology) {\n if (topology !== this.topology) {\n this.topology = topology;\n this._setPipelineNeedsUpdate('topology');\n }\n }\n /**\n * Updates the buffer layout.\n * @note Triggers a pipeline rebuild / pipeline cache fetch\n */\n setBufferLayout(bufferLayout) {\n const bufferLayoutHelper = new BufferLayoutHelper(this.bufferLayout);\n this.bufferLayout = this._gpuGeometry\n ? bufferLayoutHelper.mergeBufferLayouts(bufferLayout, this._gpuGeometry.bufferLayout)\n : bufferLayout;\n this._setPipelineNeedsUpdate('bufferLayout');\n // Recreate the pipeline\n this.pipeline = this._updatePipeline();\n // vertex array needs to be updated if we update buffer layout,\n // but not if we update parameters\n this.vertexArray = this.device.createVertexArray({\n shaderLayout: this.pipeline.shaderLayout,\n bufferLayout: this.pipeline.bufferLayout\n });\n // Reapply geometry attributes to the new vertex array\n if (this._gpuGeometry) {\n this._setGeometryAttributes(this._gpuGeometry);\n }\n }\n /**\n * Set GPU parameters.\n * @note Can trigger a pipeline rebuild / pipeline cache fetch.\n * @param parameters\n */\n setParameters(parameters) {\n if (!deepEqual(parameters, this.parameters, 2)) {\n this.parameters = parameters;\n this._setPipelineNeedsUpdate('parameters');\n }\n }\n // Update dynamic fields\n /**\n * Updates the instance count (used in draw calls)\n * @note Any attributes with stepMode=instance need to be at least this big\n */\n setInstanceCount(instanceCount) {\n this.instanceCount = instanceCount;\n // luma.gl examples don't set props.isInstanced and rely on auto-detection\n // but deck.gl sets instanceCount even for models that are not instanced.\n if (this.isInstanced === undefined && instanceCount > 0) {\n this.isInstanced = true;\n }\n this.setNeedsRedraw('instanceCount');\n }\n /**\n * Updates the vertex count (used in draw calls)\n * @note Any attributes with stepMode=vertex need to be at least this big\n */\n setVertexCount(vertexCount) {\n this.vertexCount = vertexCount;\n this.setNeedsRedraw('vertexCount');\n }\n /** Set the shader inputs */\n setShaderInputs(shaderInputs) {\n this.shaderInputs = shaderInputs;\n this._uniformStore = new UniformStore(this.shaderInputs.modules);\n // Create uniform buffer bindings for all modules that actually have uniforms\n for (const [moduleName, module] of Object.entries(this.shaderInputs.modules)) {\n if (shaderModuleHasUniforms(module)) {\n const uniformBuffer = this._uniformStore.getManagedUniformBuffer(this.device, moduleName);\n this.bindings[`${moduleName}Uniforms`] = uniformBuffer;\n }\n }\n this.setNeedsRedraw('shaderInputs');\n }\n /** Update uniform buffers from the model's shader inputs */\n updateShaderInputs() {\n this._uniformStore.setUniforms(this.shaderInputs.getUniformValues());\n this.setBindings(this.shaderInputs.getBindingValues());\n // TODO - this is already tracked through buffer/texture update times?\n this.setNeedsRedraw('shaderInputs');\n }\n /**\n * Sets bindings (textures, samplers, uniform buffers)\n */\n setBindings(bindings) {\n Object.assign(this.bindings, bindings);\n this.setNeedsRedraw('bindings');\n }\n /**\n * Updates optional transform feedback. WebGL only.\n */\n setTransformFeedback(transformFeedback) {\n this.transformFeedback = transformFeedback;\n this.setNeedsRedraw('transformFeedback');\n }\n /**\n * Sets the index buffer\n * @todo - how to unset it if we change geometry?\n */\n setIndexBuffer(indexBuffer) {\n this.vertexArray.setIndexBuffer(indexBuffer);\n this.setNeedsRedraw('indexBuffer');\n }\n /**\n * Sets attributes (buffers)\n * @note Overrides any attributes previously set with the same name\n */\n setAttributes(buffers, options) {\n const disableWarnings = options?.disableWarnings ?? this.props.disableWarnings;\n if (buffers['indices']) {\n log.warn(`Model:${this.id} setAttributes() - indexBuffer should be set using setIndexBuffer()`)();\n }\n // ensure bufferLayout order matches source layout so we bind\n // the correct buffers to the correct indices in webgpu.\n this.bufferLayout = sortedBufferLayoutByShaderSourceLocations(this.pipeline.shaderLayout, this.bufferLayout);\n const bufferLayoutHelper = new BufferLayoutHelper(this.bufferLayout);\n // Check if all buffers have a layout\n for (const [bufferName, buffer] of Object.entries(buffers)) {\n const bufferLayout = bufferLayoutHelper.getBufferLayout(bufferName);\n if (!bufferLayout) {\n if (!disableWarnings) {\n log.warn(`Model(${this.id}): Missing layout for buffer \"${bufferName}\".`)();\n }\n continue; // eslint-disable-line no-continue\n }\n // In WebGL, for an interleaved attribute we may need to set multiple attributes\n // but in WebGPU, we set it according to the buffer's position in the vertexArray\n const attributeNames = bufferLayoutHelper.getAttributeNamesForBuffer(bufferLayout);\n let set = false;\n for (const attributeName of attributeNames) {\n const attributeInfo = this._attributeInfos[attributeName];\n if (attributeInfo) {\n const location = this.device.type === 'webgpu'\n ? bufferLayoutHelper.getBufferIndex(attributeInfo.bufferName)\n : attributeInfo.location;\n this.vertexArray.setBuffer(location, buffer);\n set = true;\n }\n }\n if (!set && !disableWarnings) {\n log.warn(`Model(${this.id}): Ignoring buffer \"${buffer.id}\" for unknown attribute \"${bufferName}\"`)();\n }\n }\n this.setNeedsRedraw('attributes');\n }\n /**\n * Sets constant attributes\n * @note Overrides any attributes previously set with the same name\n * Constant attributes are only supported in WebGL, not in WebGPU\n * Any attribute that is disabled in the current vertex array object\n * is read from the context's global constant value for that attribute location.\n * @param constantAttributes\n */\n setConstantAttributes(attributes, options) {\n for (const [attributeName, value] of Object.entries(attributes)) {\n const attributeInfo = this._attributeInfos[attributeName];\n if (attributeInfo) {\n this.vertexArray.setConstantWebGL(attributeInfo.location, value);\n }\n else if (!(options?.disableWarnings ?? this.props.disableWarnings)) {\n log.warn(`Model \"${this.id}: Ignoring constant supplied for unknown attribute \"${attributeName}\"`)();\n }\n }\n this.setNeedsRedraw('constants');\n }\n // INTERNAL METHODS\n /** Check that bindings are loaded. Returns id of first binding that is still loading. */\n _areBindingsLoading() {\n for (const binding of Object.values(this.bindings)) {\n if (binding instanceof AsyncTexture && !binding.isReady) {\n return binding.id;\n }\n }\n return false;\n }\n /** Extracts texture view from loaded async textures. Returns null if any textures have not yet been loaded. */\n _getBindings() {\n const validBindings = {};\n for (const [name, binding] of Object.entries(this.bindings)) {\n if (binding instanceof AsyncTexture) {\n // Check that async textures are loaded\n if (binding.isReady) {\n validBindings[name] = binding.texture;\n }\n }\n else {\n validBindings[name] = binding;\n }\n }\n return validBindings;\n }\n /** Get the timestamp of the latest updated bound GPU memory resource (buffer/texture). */\n _getBindingsUpdateTimestamp() {\n let timestamp = 0;\n for (const binding of Object.values(this.bindings)) {\n if (binding instanceof TextureView) {\n timestamp = Math.max(timestamp, binding.texture.updateTimestamp);\n }\n else if (binding instanceof Buffer || binding instanceof Texture) {\n timestamp = Math.max(timestamp, binding.updateTimestamp);\n }\n else if (binding instanceof AsyncTexture) {\n timestamp = binding.texture\n ? Math.max(timestamp, binding.texture.updateTimestamp)\n : // The texture will become available in the future\n Infinity;\n }\n else if (!(binding instanceof Sampler)) {\n timestamp = Math.max(timestamp, binding.buffer.updateTimestamp);\n }\n }\n return timestamp;\n }\n /**\n * Updates the optional geometry attributes\n * Geometry, sets several attributes, indexBuffer, and also vertex count\n * @note Can trigger a pipeline rebuild / pipeline cache fetch on WebGPU\n */\n _setGeometryAttributes(gpuGeometry) {\n // Filter geometry attribute so that we don't issue warnings for unused attributes\n const attributes = { ...gpuGeometry.attributes };\n for (const [attributeName] of Object.entries(attributes)) {\n if (!this.pipeline.shaderLayout.attributes.find(layout => layout.name === attributeName) &&\n attributeName !== 'positions') {\n delete attributes[attributeName];\n }\n }\n // TODO - delete previous geometry?\n this.vertexCount = gpuGeometry.vertexCount;\n this.setIndexBuffer(gpuGeometry.indices || null);\n this.setAttributes(gpuGeometry.attributes, { disableWarnings: true });\n this.setAttributes(attributes, { disableWarnings: this.props.disableWarnings });\n this.setNeedsRedraw('geometry attributes');\n }\n /** Mark pipeline as needing update */\n _setPipelineNeedsUpdate(reason) {\n this._pipelineNeedsUpdate ||= reason;\n this.setNeedsRedraw(reason);\n }\n /** Update pipeline if needed */\n _updatePipeline() {\n if (this._pipelineNeedsUpdate) {\n let prevShaderVs = null;\n let prevShaderFs = null;\n if (this.pipeline) {\n log.log(1, `Model ${this.id}: Recreating pipeline because \"${this._pipelineNeedsUpdate}\".`)();\n prevShaderVs = this.pipeline.vs;\n prevShaderFs = this.pipeline.fs;\n }\n this._pipelineNeedsUpdate = false;\n const vs = this.shaderFactory.createShader({\n id: `${this.id}-vertex`,\n stage: 'vertex',\n source: this.source || this.vs,\n debugShaders: this.props.debugShaders\n });\n let fs = null;\n if (this.source) {\n fs = vs;\n }\n else if (this.fs) {\n fs = this.shaderFactory.createShader({\n id: `${this.id}-fragment`,\n stage: 'fragment',\n source: this.source || this.fs,\n debugShaders: this.props.debugShaders\n });\n }\n this.pipeline = this.pipelineFactory.createRenderPipeline({\n ...this.props,\n bufferLayout: this.bufferLayout,\n topology: this.topology,\n parameters: this.parameters,\n // TODO - why set bindings here when we reset them every frame?\n // Should we expose a BindGroup abstraction?\n bindings: this._getBindings(),\n vs,\n fs\n });\n this._attributeInfos = getAttributeInfosFromLayouts(this.pipeline.shaderLayout, this.bufferLayout);\n if (prevShaderVs)\n this.shaderFactory.release(prevShaderVs);\n if (prevShaderFs)\n this.shaderFactory.release(prevShaderFs);\n }\n return this.pipeline;\n }\n /** Throttle draw call logging */\n _lastLogTime = 0;\n _logOpen = false;\n _logDrawCallStart() {\n // IF level is 4 or higher, log every frame.\n const logDrawTimeout = log.level > 3 ? 0 : LOG_DRAW_TIMEOUT;\n if (log.level < 2 || Date.now() - this._lastLogTime < logDrawTimeout) {\n return;\n }\n this._lastLogTime = Date.now();\n this._logOpen = true;\n log.group(LOG_DRAW_PRIORITY, `>>> DRAWING MODEL ${this.id}`, { collapsed: log.level <= 2 })();\n }\n _logDrawCallEnd() {\n if (this._logOpen) {\n const shaderLayoutTable = getDebugTableForShaderLayout(this.pipeline.shaderLayout, this.id);\n // log.table(logLevel, attributeTable)();\n // log.table(logLevel, uniformTable)();\n log.table(LOG_DRAW_PRIORITY, shaderLayoutTable)();\n const uniformTable = this.shaderInputs.getDebugTable();\n log.table(LOG_DRAW_PRIORITY, uniformTable)();\n const attributeTable = this._getAttributeDebugTable();\n log.table(LOG_DRAW_PRIORITY, this._attributeInfos)();\n log.table(LOG_DRAW_PRIORITY, attributeTable)();\n log.groupEnd(LOG_DRAW_PRIORITY)();\n this._logOpen = false;\n }\n }\n _drawCount = 0;\n _logFramebuffer(renderPass) {\n const debugFramebuffers = this.device.props.debugFramebuffers;\n this._drawCount++;\n // Update first 3 frames and then every 60 frames\n if (!debugFramebuffers) {\n // } || (this._drawCount++ > 3 && this._drawCount % 60)) {\n return;\n }\n // TODO - display framebuffer output in debug window\n const framebuffer = renderPass.props.framebuffer;\n if (framebuffer) {\n debugFramebuffer(framebuffer, { id: framebuffer.id, minimap: true });\n // log.image({logLevel: LOG_DRAW_PRIORITY, message: `${framebuffer.id} %c sup?`, image})();\n }\n }\n _getAttributeDebugTable() {\n const table = {};\n for (const [name, attributeInfo] of Object.entries(this._attributeInfos)) {\n const values = this.vertexArray.attributes[attributeInfo.location];\n table[attributeInfo.location] = {\n name,\n type: attributeInfo.shaderType,\n values: values\n ? this._getBufferOrConstantValues(values, attributeInfo.bufferDataType)\n : 'null'\n };\n }\n if (this.vertexArray.indexBuffer) {\n const { indexBuffer } = this.vertexArray;\n const values = indexBuffer.indexType === 'uint32'\n ? new Uint32Array(indexBuffer.debugData)\n : new Uint16Array(indexBuffer.debugData);\n table['indices'] = {\n name: 'indices',\n type: indexBuffer.indexType,\n values: values.toString()\n };\n }\n return table;\n }\n // TODO - fix typing of luma data types\n _getBufferOrConstantValues(attribute, dataType) {\n const TypedArrayConstructor = getTypedArrayConstructor(dataType);\n const typedArray = attribute instanceof Buffer ? new TypedArrayConstructor(attribute.debugData) : attribute;\n return typedArray.toString();\n }\n}\nfunction shaderModuleHasUniforms(module) {\n return Boolean(module.uniformTypes && !isObjectEmpty(module.uniformTypes));\n}\n// HELPERS\n/** Create a shadertools platform info from the Device */\nexport function getPlatformInfo(device) {\n return {\n type: device.type,\n shaderLanguage: device.info.shadingLanguage,\n shaderLanguageVersion: device.info.shadingLanguageVersion,\n gpu: device.info.gpu,\n // HACK - we pretend that the DeviceFeatures is a Set, it has a similar API\n features: device.features\n };\n}\n/** Returns true if given object is empty, false otherwise. */\nfunction isObjectEmpty(obj) {\n // @ts-ignore key is unused\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const key in obj) {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=model.js.map","// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// Merge two luma.gl shader descriptors\nexport function mergeShaders(target, source) {\n if (!source) {\n return target;\n }\n const result = { ...target, ...source };\n if ('defines' in source) {\n result.defines = { ...target.defines, ...source.defines };\n }\n if ('modules' in source) {\n result.modules = (target.modules || []).concat(source.modules);\n // Hack: prject32 and project64 cannot co-exist\n if (source.modules.some(module => module.name === 'project64')) {\n const index = result.modules.findIndex(module => module.name === 'project32');\n if (index >= 0) {\n result.modules.splice(index, 1);\n }\n }\n }\n if ('inject' in source) {\n if (!target.inject) {\n result.inject = source.inject;\n }\n else {\n const mergedInjection = { ...target.inject };\n for (const key in source.inject) {\n mergedInjection[key] = (mergedInjection[key] || '') + source.inject[key];\n }\n result.inject = mergedInjection;\n }\n }\n return result;\n}\n//# sourceMappingURL=shader.js.map"],"names":["ComputePipeline","Resource","device","props","isTypedArray","value","isNumberArray","minBufferSize","UniformBufferLayout","uniformTypes","uniformSizes","size","key","uniformType","typeAndComponents","getVariableShaderTypeInfo","type","components","count","alignTo","offset","actualByteLength","uniformValues","arrayBuffer","getScratchArrayBuffer","typedArrays","name","uniformLayout","log","typedArray","arrayEqual","a","b","limit","arrayA","arrayB","i","arrayCopy","UniformBlock","binding","binding_","uniformBlock","uniform","uniforms","reason","UniformStore","blocks","bufferName","block","uniformBufferName","uniformBufferLayout","uniformBuffer","blockName","byteLength","Buffer","uniformBufferData","bufferReason","e","t","n","s","r","o","c","l","u","h","f","p","d","m","g","_","x","y","v","w","k","I","T","S","A","E","$","L","C","D","N","V","O","B","F","M","U","P","W","q","H","z","R","G","X","j","Z","Q","Y","K","J","ee","te","ne","se","re","ae","ie","oe","ce","le","ue","fe","pe","de","me","ge","_e","xe","Be","Me","Ue","ye","ve","we","ke","Ie","Te","Se","Ae","Ee","$e","Le","Ce","De","Ne","Ve","Oe","Fe","Pe","We","qe","He","ze","Re","Ge","Xe","je","Ze","Qe","Ye","Ke","Je","et","tt","nt","st","rt","at","it","ot","ct","lt","ut","ht","ft","pt","dt","mt","gt","_t","getShaderLayoutFromWGSL","source","shaderLayout","parsedWGSL","parseWGSL","error","members","attribute","getType","texture","sampler","vertex","attributeCount","wgslAttribute","WgslReflect","message","fp64ify","out","startIndex","hiPart","loPart","fp64LowPart","fp64ifyMatrix4","matrix","matrixFP64","index","fp64arithmeticShader","fp64functionShader","defaultUniforms","fp64arithmetic","fp64","uidCounters","uid","id","GPUGeometry","positions","makeGPUGeometry","geometry","indices","getIndexBufferFromGeometry","attributes","bufferLayout","getAttributeBuffersFromGeometry","data","attributeName","normalized","getVertexFormatFromAttribute","vertexCount","PipelineFactory","RenderPipeline","allProps","cache","hash","pipeline","shaderHash","vsHash","fsHash","varyingHash","bufferLayoutHash","parameterHash","ShaderFactory","Shader","cacheEntry","shader","getDebugTableForShaderLayout","layout","table","header","attributeDeclaration","glslDeclaration","varyingDeclaration","canvas","ctx","debugFramebuffer","fbo","minimap","opaque","top","left","rgbaScale","color","imageData","deepEqual","depth","aKeys","bKeys","BufferLayoutHelper","bufferLayouts","bufferLayouts1","bufferLayouts2","mergedLayouts","attribute2","bufferIndex","sortedBufferLayoutByShaderSourceLocations","shaderLayoutMap","attr","sortedLayout","attributeNamesA","attributeNamesB","minLocationA","minLocationB","isNumericArray","isUniformValue","splitUniformsAndBindings","result","ShaderInputs","modules","options","resolvedModules","getShaderModuleDependencies","module","resolvedModule","moduleName","moduleProps","oldUniforms","oldBindings","uniformsAndBindings","bindings","moduleBindings","pathPrefix","loadImageBitmap","url","opts","image","TextureCubeFaces","CubeFaces","AsyncTexture","resolve","reject","asyncData","awaitAllPromises","syncProps","maxMips","Sampler","untypedData","face","lodData","lodArray","mipLevel","faceData","faceDepth","mipLevelArray","Texture","object","values","keys","resolvedObject","LOG_DRAW_PRIORITY","LOG_DRAW_TIMEOUT","Model","ShaderAssembler","moduleMap","shaderInputs","platformInfo","getPlatformInfo","getUniforms","vs","fs","needsRedraw","renderPass","loadingBinding","drawSuccess","syncBindings","indexBuffer","indexCount","gpuGeometry","bufferLayoutHelper","topology","parameters","instanceCount","shaderModuleHasUniforms","transformFeedback","buffers","disableWarnings","buffer","attributeNames","set","attributeInfo","location","validBindings","timestamp","TextureView","prevShaderVs","prevShaderFs","getAttributeInfosFromLayouts","logDrawTimeout","shaderLayoutTable","uniformTable","attributeTable","debugFramebuffers","framebuffer","dataType","TypedArrayConstructor","getTypedArrayConstructor","isObjectEmpty","obj","mergeShaders","target","mergedInjection"],"mappings":"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AI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IAAI,EAAEG,EAAG,QAAQ,IAAIA,EAAG,SAASH,EAAG,IAAI,IA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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECAlCC,GAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]}