@luma.gl/webgl 9.0.0-alpha.15 → 9.0.0-alpha.16

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 (367) hide show
  1. package/dist/adapter/converters/device-parameters.js +199 -136
  2. package/dist/adapter/converters/renderbuffer-formats.d.ts +1 -1
  3. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
  4. package/dist/adapter/converters/renderbuffer-formats.js +62 -176
  5. package/dist/adapter/converters/sampler-parameters.js +149 -206
  6. package/dist/adapter/converters/texture-formats.d.ts +2 -2
  7. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  8. package/dist/adapter/converters/texture-formats.js +437 -890
  9. package/dist/adapter/converters/vertex-formats.js +15 -33
  10. package/dist/adapter/device-helpers/device-features.js +119 -100
  11. package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
  12. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  13. package/dist/adapter/device-helpers/device-limits.js +88 -86
  14. package/dist/adapter/device-helpers/get-device-info.js +42 -43
  15. package/dist/adapter/device-helpers/is-old-ie.js +9 -6
  16. package/dist/adapter/helpers/attribute-utils.js +50 -74
  17. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  18. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  19. package/dist/adapter/helpers/get-shader-info.js +27 -0
  20. package/dist/adapter/helpers/get-shader-layout.js +307 -296
  21. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  22. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  23. package/dist/adapter/helpers/parse-shader-compiler-log.js +32 -33
  24. package/dist/adapter/helpers/set-uniform.js +67 -110
  25. package/dist/adapter/helpers/uniforms.js +80 -85
  26. package/dist/adapter/objects/constants-to-keys.js +33 -33
  27. package/dist/adapter/objects/webgl-renderbuffer.d.ts +1 -1
  28. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  29. package/dist/adapter/objects/webgl-renderbuffer.js +67 -86
  30. package/dist/adapter/objects/webgl-resource.js +213 -205
  31. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
  32. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  33. package/dist/adapter/objects/webgl-vertex-array-object.js +74 -76
  34. package/dist/adapter/resources/webgl-buffer.js +150 -147
  35. package/dist/adapter/resources/webgl-command-buffer.d.ts +5 -5
  36. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  37. package/dist/adapter/resources/webgl-command-buffer.js +39 -55
  38. package/dist/adapter/resources/webgl-command-encoder.js +25 -49
  39. package/dist/adapter/resources/webgl-external-texture.js +91 -1
  40. package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
  41. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  42. package/dist/adapter/resources/webgl-framebuffer.js +231 -258
  43. package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
  44. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  45. package/dist/adapter/resources/webgl-render-pass.js +8 -18
  46. package/dist/adapter/resources/webgl-render-pipeline.js +316 -378
  47. package/dist/adapter/resources/webgl-sampler.js +42 -47
  48. package/dist/adapter/resources/webgl-shader.d.ts +1 -2
  49. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  50. package/dist/adapter/resources/webgl-shader.js +58 -68
  51. package/dist/adapter/resources/webgl-texture.d.ts +5 -5
  52. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  53. package/dist/adapter/resources/webgl-texture.js +661 -815
  54. package/dist/adapter/webgl-canvas-context.js +55 -49
  55. package/dist/adapter/webgl-device.js +288 -338
  56. package/dist/bundle.js +1 -2
  57. package/dist/classic/accessor.js +120 -127
  58. package/dist/classic/buffer.d.ts +1 -1
  59. package/dist/classic/buffer.d.ts.map +1 -1
  60. package/dist/classic/buffer.js +325 -356
  61. package/dist/classic/typed-array-utils.d.ts +1 -1
  62. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  63. package/dist/classic/typed-array-utils.js +91 -101
  64. package/dist/context/context/create-browser-context.d.ts +1 -2
  65. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  66. package/dist/context/context/create-browser-context.js +61 -52
  67. package/dist/context/context/create-headless-context.d.ts +1 -1
  68. package/dist/context/context/create-headless-context.d.ts.map +1 -1
  69. package/dist/context/context/create-headless-context.js +26 -33
  70. package/dist/context/context/webgl-checks.js +25 -20
  71. package/dist/context/debug/spector.d.ts +1 -2
  72. package/dist/context/debug/spector.d.ts.map +1 -1
  73. package/dist/context/debug/spector.js +53 -62
  74. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  75. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  76. package/dist/context/debug/webgl-developer-tools.js +106 -93
  77. package/dist/context/parameters/unified-parameter-api.js +91 -55
  78. package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
  79. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  80. package/dist/context/parameters/webgl-parameter-tables.js +462 -423
  81. package/dist/context/polyfill/context-data.js +16 -12
  82. package/dist/context/polyfill/get-parameter-polyfill.js +91 -76
  83. package/dist/context/polyfill/polyfill-context.js +75 -80
  84. package/dist/context/polyfill/polyfill-table.js +133 -139
  85. package/dist/context/polyfill/polyfill-vertex-array-object.js +255 -297
  86. package/dist/context/state-tracker/deep-array-equal.js +16 -18
  87. package/dist/context/state-tracker/track-context-state.js +183 -161
  88. package/dist/context/state-tracker/with-parameters.js +43 -35
  89. package/dist/dist.min.js +1 -0
  90. package/dist/es5/adapter/converters/device-parameters.js +3 -38
  91. package/dist/es5/adapter/converters/device-parameters.js.map +1 -1
  92. package/dist/es5/adapter/converters/renderbuffer-formats.js +2 -14
  93. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -1
  94. package/dist/es5/adapter/converters/sampler-parameters.js +2 -65
  95. package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -1
  96. package/dist/es5/adapter/converters/texture-formats.js +9 -81
  97. package/dist/es5/adapter/converters/texture-formats.js.map +1 -1
  98. package/dist/es5/adapter/converters/vertex-formats.js +0 -12
  99. package/dist/es5/adapter/converters/vertex-formats.js.map +1 -1
  100. package/dist/es5/adapter/device-helpers/device-features.js +6 -40
  101. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
  102. package/dist/es5/adapter/device-helpers/device-limits.js +0 -10
  103. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
  104. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -10
  105. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
  106. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -1
  107. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -1
  108. package/dist/es5/adapter/helpers/attribute-utils.js +3 -25
  109. package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -1
  110. package/dist/es5/adapter/helpers/get-shader-info.js +31 -0
  111. package/dist/es5/adapter/helpers/get-shader-info.js.map +1 -0
  112. package/dist/es5/adapter/helpers/get-shader-layout.js +23 -101
  113. package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -1
  114. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +6 -24
  115. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  116. package/dist/es5/adapter/helpers/set-uniform.js +0 -33
  117. package/dist/es5/adapter/helpers/set-uniform.js.map +1 -1
  118. package/dist/es5/adapter/helpers/uniforms.js +13 -37
  119. package/dist/es5/adapter/helpers/uniforms.js.map +1 -1
  120. package/dist/es5/adapter/objects/constants-to-keys.js +1 -12
  121. package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -1
  122. package/dist/es5/adapter/objects/webgl-renderbuffer.js +5 -33
  123. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -1
  124. package/dist/es5/adapter/objects/webgl-resource.js +6 -60
  125. package/dist/es5/adapter/objects/webgl-resource.js.map +1 -1
  126. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +7 -35
  127. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  128. package/dist/es5/adapter/resources/webgl-buffer.js +20 -66
  129. package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -1
  130. package/dist/es5/adapter/resources/webgl-command-buffer.js +6 -32
  131. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -1
  132. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -18
  133. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -1
  134. package/dist/es5/adapter/resources/webgl-external-texture.js.map +1 -1
  135. package/dist/es5/adapter/resources/webgl-framebuffer.js +10 -82
  136. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -1
  137. package/dist/es5/adapter/resources/webgl-render-pass.js +2 -19
  138. package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -1
  139. package/dist/es5/adapter/resources/webgl-render-pipeline.js +24 -133
  140. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -1
  141. package/dist/es5/adapter/resources/webgl-sampler.js +2 -28
  142. package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -1
  143. package/dist/es5/adapter/resources/webgl-shader.js +13 -52
  144. package/dist/es5/adapter/resources/webgl-shader.js.map +1 -1
  145. package/dist/es5/adapter/resources/webgl-texture.js +137 -291
  146. package/dist/es5/adapter/resources/webgl-texture.js.map +1 -1
  147. package/dist/es5/adapter/webgl-canvas-context.js +0 -24
  148. package/dist/es5/adapter/webgl-canvas-context.js.map +1 -1
  149. package/dist/es5/adapter/webgl-device.js +40 -127
  150. package/dist/es5/adapter/webgl-device.js.map +1 -1
  151. package/dist/es5/bundle.js +0 -1
  152. package/dist/es5/bundle.js.map +1 -1
  153. package/dist/es5/classic/accessor.js +1 -31
  154. package/dist/es5/classic/accessor.js.map +1 -1
  155. package/dist/es5/classic/buffer.js +32 -102
  156. package/dist/es5/classic/buffer.js.map +1 -1
  157. package/dist/es5/classic/typed-array-utils.js +10 -37
  158. package/dist/es5/classic/typed-array-utils.js.map +1 -1
  159. package/dist/es5/context/context/create-browser-context.js +4 -21
  160. package/dist/es5/context/context/create-browser-context.js.map +1 -1
  161. package/dist/es5/context/context/create-headless-context.js +8 -21
  162. package/dist/es5/context/context/create-headless-context.js.map +1 -1
  163. package/dist/es5/context/context/webgl-checks.js +4 -14
  164. package/dist/es5/context/context/webgl-checks.js.map +1 -1
  165. package/dist/es5/context/debug/spector.js +20 -54
  166. package/dist/es5/context/debug/spector.js.map +1 -1
  167. package/dist/es5/context/debug/webgl-developer-tools.js +19 -65
  168. package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -1
  169. package/dist/es5/context/parameters/unified-parameter-api.js +3 -28
  170. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
  171. package/dist/es5/context/parameters/webgl-parameter-tables.js +18 -65
  172. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
  173. package/dist/es5/context/polyfill/context-data.js +0 -3
  174. package/dist/es5/context/polyfill/context-data.js.map +1 -1
  175. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -12
  176. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
  177. package/dist/es5/context/polyfill/polyfill-context.js +8 -33
  178. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
  179. package/dist/es5/context/polyfill/polyfill-table.js +3 -27
  180. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
  181. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -70
  182. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  183. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -5
  184. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
  185. package/dist/es5/context/state-tracker/track-context-state.js +10 -53
  186. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
  187. package/dist/es5/context/state-tracker/with-parameters.js +1 -13
  188. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
  189. package/dist/es5/index.js +72 -99
  190. package/dist/es5/index.js.map +1 -1
  191. package/dist/es5/init.js +0 -3
  192. package/dist/es5/init.js.map +1 -1
  193. package/dist/es5/types/webgl.js +0 -1
  194. package/dist/es5/types/webgl.js.map +1 -1
  195. package/dist/es5/types.js.map +1 -1
  196. package/dist/esm/adapter/converters/device-parameters.js +0 -20
  197. package/dist/esm/adapter/converters/device-parameters.js.map +1 -1
  198. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -4
  199. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -1
  200. package/dist/esm/adapter/converters/sampler-parameters.js +2 -57
  201. package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -1
  202. package/dist/esm/adapter/converters/texture-formats.js +8 -52
  203. package/dist/esm/adapter/converters/texture-formats.js.map +1 -1
  204. package/dist/esm/adapter/converters/vertex-formats.js +0 -9
  205. package/dist/esm/adapter/converters/vertex-formats.js.map +1 -1
  206. package/dist/esm/adapter/device-helpers/device-features.js +2 -19
  207. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
  208. package/dist/esm/adapter/device-helpers/device-limits.js +0 -3
  209. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
  210. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -6
  211. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
  212. package/dist/esm/adapter/device-helpers/is-old-ie.js +2 -1
  213. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -1
  214. package/dist/esm/adapter/helpers/attribute-utils.js +0 -17
  215. package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -1
  216. package/dist/esm/adapter/helpers/get-shader-info.js +25 -0
  217. package/dist/esm/adapter/helpers/get-shader-info.js.map +1 -0
  218. package/dist/esm/adapter/helpers/get-shader-layout.js +2 -48
  219. package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -1
  220. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -7
  221. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  222. package/dist/esm/adapter/helpers/set-uniform.js +0 -30
  223. package/dist/esm/adapter/helpers/set-uniform.js.map +1 -1
  224. package/dist/esm/adapter/helpers/uniforms.js +0 -10
  225. package/dist/esm/adapter/helpers/uniforms.js.map +1 -1
  226. package/dist/esm/adapter/objects/constants-to-keys.js +0 -7
  227. package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -1
  228. package/dist/esm/adapter/objects/webgl-renderbuffer.js +2 -18
  229. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -1
  230. package/dist/esm/adapter/objects/webgl-resource.js +10 -57
  231. package/dist/esm/adapter/objects/webgl-resource.js.map +1 -1
  232. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +5 -15
  233. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  234. package/dist/esm/adapter/resources/webgl-buffer.js +12 -40
  235. package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -1
  236. package/dist/esm/adapter/resources/webgl-command-buffer.js +2 -17
  237. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -1
  238. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -12
  239. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -1
  240. package/dist/esm/adapter/resources/webgl-external-texture.js.map +1 -1
  241. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -60
  242. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -1
  243. package/dist/esm/adapter/resources/webgl-render-pass.js +1 -8
  244. package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -1
  245. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -89
  246. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -1
  247. package/dist/esm/adapter/resources/webgl-sampler.js +0 -12
  248. package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -1
  249. package/dist/esm/adapter/resources/webgl-shader.js +2 -16
  250. package/dist/esm/adapter/resources/webgl-shader.js.map +1 -1
  251. package/dist/esm/adapter/resources/webgl-texture.js +36 -154
  252. package/dist/esm/adapter/resources/webgl-texture.js.map +1 -1
  253. package/dist/esm/adapter/webgl-canvas-context.js +0 -14
  254. package/dist/esm/adapter/webgl-canvas-context.js.map +1 -1
  255. package/dist/esm/adapter/webgl-device.js +19 -89
  256. package/dist/esm/adapter/webgl-device.js.map +1 -1
  257. package/dist/esm/bundle.js +0 -1
  258. package/dist/esm/bundle.js.map +1 -1
  259. package/dist/esm/classic/accessor.js +10 -34
  260. package/dist/esm/classic/accessor.js.map +1 -1
  261. package/dist/esm/classic/buffer.js +15 -71
  262. package/dist/esm/classic/buffer.js.map +1 -1
  263. package/dist/esm/classic/typed-array-utils.js +0 -20
  264. package/dist/esm/classic/typed-array-utils.js.map +1 -1
  265. package/dist/esm/context/context/create-browser-context.js +6 -14
  266. package/dist/esm/context/context/create-browser-context.js.map +1 -1
  267. package/dist/esm/context/context/create-headless-context.js +2 -6
  268. package/dist/esm/context/context/create-headless-context.js.map +1 -1
  269. package/dist/esm/context/context/webgl-checks.js +0 -3
  270. package/dist/esm/context/context/webgl-checks.js.map +1 -1
  271. package/dist/esm/context/debug/spector.js +2 -14
  272. package/dist/esm/context/debug/spector.js.map +1 -1
  273. package/dist/esm/context/debug/webgl-developer-tools.js +4 -22
  274. package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -1
  275. package/dist/esm/context/parameters/unified-parameter-api.js +2 -13
  276. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
  277. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -19
  278. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
  279. package/dist/esm/context/polyfill/context-data.js +0 -2
  280. package/dist/esm/context/polyfill/context-data.js.map +1 -1
  281. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -5
  282. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
  283. package/dist/esm/context/polyfill/polyfill-context.js +14 -21
  284. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
  285. package/dist/esm/context/polyfill/polyfill-table.js +0 -23
  286. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
  287. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -70
  288. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  289. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -4
  290. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
  291. package/dist/esm/context/state-tracker/track-context-state.js +11 -45
  292. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
  293. package/dist/esm/context/state-tracker/with-parameters.js +0 -6
  294. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
  295. package/dist/esm/index.js.map +1 -1
  296. package/dist/esm/init.js.map +1 -1
  297. package/dist/esm/types/webgl.js.map +1 -1
  298. package/dist/esm/types.js.map +1 -1
  299. package/dist/index.js +39 -25
  300. package/dist/init.js +1 -2
  301. package/dist/types/webgl.d.ts +20 -20
  302. package/dist/types/webgl.d.ts.map +1 -1
  303. package/dist/types/webgl.js +0 -1
  304. package/dist/types.d.ts +1 -1
  305. package/dist/types.d.ts.map +1 -1
  306. package/dist/types.js +0 -1
  307. package/package.json +8 -8
  308. package/src/adapter/helpers/get-shader-info.ts +37 -0
  309. package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
  310. package/src/adapter/resources/webgl-render-pass.ts +1 -1
  311. package/src/adapter/resources/webgl-shader.ts +2 -2
  312. package/src/adapter/webgl-device.ts +1 -1
  313. package/src/context/debug/webgl-developer-tools.ts +0 -1
  314. package/src/types/webgl.ts +4 -4
  315. package/dist/adapter/converters/device-parameters.js.map +0 -1
  316. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  317. package/dist/adapter/converters/sampler-parameters.js.map +0 -1
  318. package/dist/adapter/converters/texture-formats.js.map +0 -1
  319. package/dist/adapter/converters/vertex-formats.js.map +0 -1
  320. package/dist/adapter/device-helpers/device-features.js.map +0 -1
  321. package/dist/adapter/device-helpers/device-limits.js.map +0 -1
  322. package/dist/adapter/device-helpers/get-device-info.js.map +0 -1
  323. package/dist/adapter/device-helpers/is-old-ie.js.map +0 -1
  324. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  325. package/dist/adapter/helpers/get-shader-layout.js.map +0 -1
  326. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  327. package/dist/adapter/helpers/set-uniform.js.map +0 -1
  328. package/dist/adapter/helpers/uniforms.js.map +0 -1
  329. package/dist/adapter/objects/constants-to-keys.js.map +0 -1
  330. package/dist/adapter/objects/webgl-renderbuffer.js.map +0 -1
  331. package/dist/adapter/objects/webgl-resource.js.map +0 -1
  332. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  333. package/dist/adapter/resources/webgl-buffer.js.map +0 -1
  334. package/dist/adapter/resources/webgl-command-buffer.js.map +0 -1
  335. package/dist/adapter/resources/webgl-command-encoder.js.map +0 -1
  336. package/dist/adapter/resources/webgl-external-texture.js.map +0 -1
  337. package/dist/adapter/resources/webgl-framebuffer.js.map +0 -1
  338. package/dist/adapter/resources/webgl-render-pass.js.map +0 -1
  339. package/dist/adapter/resources/webgl-render-pipeline.js.map +0 -1
  340. package/dist/adapter/resources/webgl-sampler.js.map +0 -1
  341. package/dist/adapter/resources/webgl-shader.js.map +0 -1
  342. package/dist/adapter/resources/webgl-texture.js.map +0 -1
  343. package/dist/adapter/webgl-canvas-context.js.map +0 -1
  344. package/dist/adapter/webgl-device.js.map +0 -1
  345. package/dist/bundle.js.map +0 -1
  346. package/dist/classic/accessor.js.map +0 -1
  347. package/dist/classic/buffer.js.map +0 -1
  348. package/dist/classic/typed-array-utils.js.map +0 -1
  349. package/dist/context/context/create-browser-context.js.map +0 -1
  350. package/dist/context/context/create-headless-context.js.map +0 -1
  351. package/dist/context/context/webgl-checks.js.map +0 -1
  352. package/dist/context/debug/spector.js.map +0 -1
  353. package/dist/context/debug/webgl-developer-tools.js.map +0 -1
  354. package/dist/context/parameters/unified-parameter-api.js.map +0 -1
  355. package/dist/context/parameters/webgl-parameter-tables.js.map +0 -1
  356. package/dist/context/polyfill/context-data.js.map +0 -1
  357. package/dist/context/polyfill/get-parameter-polyfill.js.map +0 -1
  358. package/dist/context/polyfill/polyfill-context.js.map +0 -1
  359. package/dist/context/polyfill/polyfill-table.js.map +0 -1
  360. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  361. package/dist/context/state-tracker/deep-array-equal.js.map +0 -1
  362. package/dist/context/state-tracker/track-context-state.js.map +0 -1
  363. package/dist/context/state-tracker/with-parameters.js.map +0 -1
  364. package/dist/index.js.map +0 -1
  365. package/dist/init.js.map +0 -1
  366. package/dist/types/webgl.js.map +0 -1
  367. package/dist/types.js.map +0 -1
@@ -1,51 +1,33 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.getShaderLayout = getShaderLayout;
9
7
  exports.getProgramBindings = getProgramBindings;
10
-
8
+ exports.getShaderLayout = getShaderLayout;
11
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
-
13
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
-
15
11
  var _constants = _interopRequireDefault(require("@luma.gl/constants"));
16
-
17
12
  var _webglChecks = require("../../context/context/webgl-checks");
18
-
19
13
  var _accessor = _interopRequireDefault(require("../../classic/accessor"));
20
-
21
14
  var _uniforms2 = require("./uniforms");
22
-
23
15
  var _vertexFormats = require("../converters/vertex-formats");
24
-
25
16
  var _SAMPLER_UNIFORMS_GL_;
26
-
27
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
28
-
29
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
30
-
17
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
31
19
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
32
-
33
20
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
34
-
35
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
36
-
21
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
37
22
  function getShaderLayout(gl, program) {
38
23
  var _programBindings$unif, _programBindings$vary;
39
-
40
24
  var programBindings = getProgramBindings(gl, program);
41
25
  var shaderLayout = {
42
26
  attributes: [],
43
27
  bindings: []
44
28
  };
45
-
46
29
  var _iterator = _createForOfIteratorHelper(programBindings.attributes),
47
- _step;
48
-
30
+ _step;
49
31
  try {
50
32
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
51
33
  var attribute = _step.value;
@@ -63,14 +45,11 @@ function getShaderLayout(gl, program) {
63
45
  } finally {
64
46
  _iterator.f();
65
47
  }
66
-
67
48
  var _iterator2 = _createForOfIteratorHelper(programBindings.uniformBlocks),
68
- _step2;
69
-
49
+ _step2;
70
50
  try {
71
51
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
72
52
  var uniformBlock = _step2.value;
73
-
74
53
  var _uniforms = uniformBlock.uniforms.map(function (uniform) {
75
54
  return {
76
55
  name: uniform.name,
@@ -80,7 +59,6 @@ function getShaderLayout(gl, program) {
80
59
  arrayLength: uniform.arrayLength
81
60
  };
82
61
  });
83
-
84
62
  shaderLayout.bindings.push({
85
63
  type: 'uniform',
86
64
  name: uniformBlock.name,
@@ -95,21 +73,16 @@ function getShaderLayout(gl, program) {
95
73
  } finally {
96
74
  _iterator2.f();
97
75
  }
98
-
99
76
  var textureUnit = 0;
100
-
101
77
  var _iterator3 = _createForOfIteratorHelper(programBindings.uniforms),
102
- _step3;
103
-
78
+ _step3;
104
79
  try {
105
80
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
106
81
  var uniform = _step3.value;
107
-
108
82
  if ((0, _uniforms2.isSamplerUniform)(uniform.type)) {
109
83
  var _getSamplerInfo = getSamplerInfo(uniform.type),
110
- viewDimension = _getSamplerInfo.viewDimension,
111
- sampleType = _getSamplerInfo.sampleType;
112
-
84
+ viewDimension = _getSamplerInfo.viewDimension,
85
+ sampleType = _getSamplerInfo.sampleType;
113
86
  shaderLayout.bindings.push({
114
87
  type: 'texture',
115
88
  name: uniform.name,
@@ -126,22 +99,17 @@ function getShaderLayout(gl, program) {
126
99
  } finally {
127
100
  _iterator3.f();
128
101
  }
129
-
130
102
  var uniforms = ((_programBindings$unif = programBindings.uniforms) === null || _programBindings$unif === void 0 ? void 0 : _programBindings$unif.filter(function (uniform) {
131
103
  return uniform.location !== null;
132
104
  })) || [];
133
-
134
105
  if (uniforms.length) {
135
106
  shaderLayout.uniforms = uniforms;
136
107
  }
137
-
138
108
  if ((_programBindings$vary = programBindings.varyings) !== null && _programBindings$vary !== void 0 && _programBindings$vary.length) {
139
109
  shaderLayout.varyings = programBindings.varyings;
140
110
  }
141
-
142
111
  return shaderLayout;
143
112
  }
144
-
145
113
  function getProgramBindings(gl, program) {
146
114
  var config = {
147
115
  attributes: readAttributeBindings(gl, program),
@@ -152,38 +120,30 @@ function getProgramBindings(gl, program) {
152
120
  Object.seal(config);
153
121
  return config;
154
122
  }
155
-
156
123
  function readAttributeBindings(gl, program) {
157
124
  var attributes = [];
158
125
  var count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
159
-
160
126
  for (var index = 0; index < count; index++) {
161
127
  var activeInfo = gl.getActiveAttrib(program, index);
162
-
163
128
  if (!activeInfo) {
164
129
  throw new Error('activeInfo');
165
130
  }
166
-
167
131
  var name = activeInfo.name,
168
- compositeType = activeInfo.type,
169
- size = activeInfo.size;
132
+ compositeType = activeInfo.type,
133
+ size = activeInfo.size;
170
134
  var location = gl.getAttribLocation(program, name);
171
-
172
135
  if (location >= 0) {
173
136
  var _decodeAttributeType = (0, _uniforms2.decodeAttributeType)(compositeType),
174
- glType = _decodeAttributeType.glType,
175
- components = _decodeAttributeType.components;
176
-
137
+ glType = _decodeAttributeType.glType,
138
+ components = _decodeAttributeType.components;
177
139
  ;
178
140
  var accessor = {
179
141
  type: glType,
180
142
  size: size * components
181
143
  };
182
-
183
144
  if (/instance/i.test(name)) {
184
145
  accessor.divisor = 1;
185
146
  }
186
-
187
147
  var attributeInfo = {
188
148
  location: location,
189
149
  name: name,
@@ -192,37 +152,29 @@ function readAttributeBindings(gl, program) {
192
152
  attributes.push(attributeInfo);
193
153
  }
194
154
  }
195
-
196
155
  attributes.sort(function (a, b) {
197
156
  return a.location - b.location;
198
157
  });
199
158
  return attributes;
200
159
  }
201
-
202
160
  function readVaryings(gl, program) {
203
161
  if (!(0, _webglChecks.isWebGL2)(gl)) {
204
162
  return [];
205
163
  }
206
-
207
164
  var gl2 = gl;
208
165
  var varyings = [];
209
166
  var count = gl.getProgramParameter(program, _constants.default.TRANSFORM_FEEDBACK_VARYINGS);
210
-
211
167
  for (var location = 0; location < count; location++) {
212
168
  var activeInfo = gl2.getTransformFeedbackVarying(program, location);
213
-
214
169
  if (!activeInfo) {
215
170
  throw new Error('activeInfo');
216
171
  }
217
-
218
172
  var name = activeInfo.name,
219
- compositeType = activeInfo.type,
220
- size = activeInfo.size;
221
-
173
+ compositeType = activeInfo.type,
174
+ size = activeInfo.size;
222
175
  var _decodeUniformType = (0, _uniforms2.decodeUniformType)(compositeType),
223
- glType = _decodeUniformType.glType,
224
- components = _decodeUniformType.components;
225
-
176
+ glType = _decodeUniformType.glType,
177
+ components = _decodeUniformType.components;
226
178
  ;
227
179
  var accessor = new _accessor.default({
228
180
  type: glType,
@@ -235,32 +187,25 @@ function readVaryings(gl, program) {
235
187
  };
236
188
  varyings.push(varying);
237
189
  }
238
-
239
190
  varyings.sort(function (a, b) {
240
191
  return a.location - b.location;
241
192
  });
242
193
  return varyings;
243
194
  }
244
-
245
195
  function readUniformBindings(gl, program) {
246
196
  var uniforms = [];
247
197
  var uniformCount = gl.getProgramParameter(program, _constants.default.ACTIVE_UNIFORMS);
248
-
249
198
  for (var i = 0; i < uniformCount; i++) {
250
199
  var activeInfo = gl.getActiveUniform(program, i);
251
-
252
200
  if (!activeInfo) {
253
201
  throw new Error('activeInfo');
254
202
  }
255
-
256
203
  var rawName = activeInfo.name,
257
- size = activeInfo.size,
258
- type = activeInfo.type;
259
-
204
+ size = activeInfo.size,
205
+ type = activeInfo.type;
260
206
  var _parseUniformName = parseUniformName(rawName),
261
- name = _parseUniformName.name,
262
- isArray = _parseUniformName.isArray;
263
-
207
+ name = _parseUniformName.name,
208
+ isArray = _parseUniformName.isArray;
264
209
  var webglLocation = gl.getUniformLocation(program, name);
265
210
  var uniformInfo = {
266
211
  location: webglLocation,
@@ -270,39 +215,30 @@ function readUniformBindings(gl, program) {
270
215
  isArray: isArray
271
216
  };
272
217
  uniforms.push(uniformInfo);
273
-
274
218
  if (uniformInfo.size > 1) {
275
219
  for (var j = 0; j < uniformInfo.size; j++) {
276
220
  var elementName = "".concat(name, "[").concat(j, "]");
277
221
  webglLocation = gl.getUniformLocation(program, elementName);
278
-
279
222
  var arrayElementUniformInfo = _objectSpread(_objectSpread({}, uniformInfo), {}, {
280
223
  name: elementName,
281
224
  location: webglLocation
282
225
  });
283
-
284
226
  uniforms.push(arrayElementUniformInfo);
285
227
  }
286
228
  }
287
229
  }
288
-
289
230
  return uniforms;
290
231
  }
291
-
292
232
  function readUniformBlocks(gl, program) {
293
233
  if (!(0, _webglChecks.isWebGL2)(gl)) {
294
234
  return [];
295
235
  }
296
-
297
236
  var gl2 = gl;
298
-
299
237
  var getBlockParameter = function getBlockParameter(blockIndex, pname) {
300
238
  return gl2.getActiveUniformBlockParameter(program, blockIndex, pname);
301
239
  };
302
-
303
240
  var uniformBlocks = [];
304
241
  var blockCount = gl2.getProgramParameter(program, _constants.default.ACTIVE_UNIFORM_BLOCKS);
305
-
306
242
  for (var blockIndex = 0; blockIndex < blockCount; blockIndex++) {
307
243
  var blockInfo = {
308
244
  name: gl2.getActiveUniformBlockName(program, blockIndex) || '',
@@ -318,14 +254,11 @@ function readUniformBlocks(gl, program) {
318
254
  var uniformArrayLength = gl2.getActiveUniforms(program, uniformIndices, _constants.default.UNIFORM_SIZE);
319
255
  var uniformOffset = gl2.getActiveUniforms(program, uniformIndices, _constants.default.UNIFORM_OFFSET);
320
256
  var uniformStride = gl2.getActiveUniforms(program, uniformIndices, _constants.default.UNIFORM_ARRAY_STRIDE);
321
-
322
257
  for (var i = 0; i < blockInfo.uniformCount; ++i) {
323
258
  var activeInfo = gl2.getActiveUniform(program, uniformIndices[i]);
324
-
325
259
  if (!activeInfo) {
326
260
  throw new Error('activeInfo');
327
261
  }
328
-
329
262
  blockInfo.uniforms.push({
330
263
  name: activeInfo.name,
331
264
  format: (0, _uniforms2.decodeUniformType)(uniformType[i]).format,
@@ -335,35 +268,27 @@ function readUniformBlocks(gl, program) {
335
268
  byteStride: uniformStride[i]
336
269
  });
337
270
  }
338
-
339
271
  uniformBlocks.push(blockInfo);
340
272
  }
341
-
342
273
  uniformBlocks.sort(function (a, b) {
343
274
  return a.location - b.location;
344
275
  });
345
276
  return uniformBlocks;
346
277
  }
347
-
348
278
  var SAMPLER_UNIFORMS_GL_TO_GPU = (_SAMPLER_UNIFORMS_GL_ = {}, (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.SAMPLER_2D, ['2d', 'float']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.SAMPLER_CUBE, ['cube', 'float']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.SAMPLER_3D, ['3d', 'float']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.SAMPLER_2D_SHADOW, ['3d', 'depth']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.SAMPLER_2D_ARRAY, ['2d-array', 'float']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.SAMPLER_2D_ARRAY_SHADOW, ['2d-array', 'depth']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.SAMPLER_CUBE_SHADOW, ['cube', 'float']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.INT_SAMPLER_2D, ['2d', 'sint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.INT_SAMPLER_3D, ['3d', 'sint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.INT_SAMPLER_CUBE, ['cube', 'sint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.INT_SAMPLER_2D_ARRAY, ['2d-array', 'uint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.UNSIGNED_INT_SAMPLER_2D, ['2d', 'uint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.UNSIGNED_INT_SAMPLER_3D, ['3d', 'uint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.UNSIGNED_INT_SAMPLER_CUBE, ['cube', 'uint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.UNSIGNED_INT_SAMPLER_2D_ARRAY, ['2d-array', 'uint']), _SAMPLER_UNIFORMS_GL_);
349
-
350
279
  function getSamplerInfo(type) {
351
280
  var sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];
352
-
353
281
  if (!sampler) {
354
282
  throw new Error('sampler');
355
283
  }
356
-
357
284
  var _sampler = (0, _slicedToArray2.default)(sampler, 2),
358
- viewDimension = _sampler[0],
359
- sampleType = _sampler[1];
360
-
285
+ viewDimension = _sampler[0],
286
+ sampleType = _sampler[1];
361
287
  return {
362
288
  viewDimension: viewDimension,
363
289
  sampleType: sampleType
364
290
  };
365
291
  }
366
-
367
292
  function parseUniformName(name) {
368
293
  if (name[name.length - 1] !== ']') {
369
294
  return {
@@ -372,14 +297,11 @@ function parseUniformName(name) {
372
297
  isArray: false
373
298
  };
374
299
  }
375
-
376
300
  var UNIFORM_NAME_REGEXP = /([^[]*)(\[[0-9]+\])?/;
377
301
  var matches = name.match(UNIFORM_NAME_REGEXP);
378
-
379
302
  if (!matches || matches.length < 2) {
380
303
  throw new Error("Failed to parse GLSL uniform name ".concat(name));
381
304
  }
382
-
383
305
  return {
384
306
  name: matches[1],
385
307
  length: matches[2] ? 1 : 0,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapter/helpers/get-shader-layout.ts"],"names":["getShaderLayout","gl","program","programBindings","getProgramBindings","shaderLayout","attributes","bindings","attribute","size","Math","min","accessor","format","type","GL","FLOAT","push","name","location","stepMode","divisor","uniformBlocks","uniformBlock","uniforms","map","uniform","byteOffset","byteStride","arrayLength","visibility","vertex","fragment","minBindingSize","byteLength","textureUnit","getSamplerInfo","viewDimension","sampleType","filter","length","varyings","config","readAttributeBindings","readUniformBindings","readUniformBlocks","readVaryings","Object","seal","count","getProgramParameter","ACTIVE_ATTRIBUTES","index","activeInfo","getActiveAttrib","Error","compositeType","getAttribLocation","glType","components","test","attributeInfo","Accessor","sort","a","b","gl2","TRANSFORM_FEEDBACK_VARYINGS","getTransformFeedbackVarying","varying","uniformCount","ACTIVE_UNIFORMS","i","getActiveUniform","rawName","parseUniformName","isArray","webglLocation","getUniformLocation","uniformInfo","j","elementName","arrayElementUniformInfo","getBlockParameter","blockIndex","pname","getActiveUniformBlockParameter","blockCount","ACTIVE_UNIFORM_BLOCKS","blockInfo","getActiveUniformBlockName","UNIFORM_BLOCK_BINDING","UNIFORM_BLOCK_DATA_SIZE","UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER","UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER","UNIFORM_BLOCK_ACTIVE_UNIFORMS","uniformIndices","UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES","uniformType","getActiveUniforms","UNIFORM_TYPE","uniformArrayLength","UNIFORM_SIZE","uniformOffset","UNIFORM_OFFSET","uniformStride","UNIFORM_ARRAY_STRIDE","SAMPLER_UNIFORMS_GL_TO_GPU","SAMPLER_2D","SAMPLER_CUBE","SAMPLER_3D","SAMPLER_2D_SHADOW","SAMPLER_2D_ARRAY","SAMPLER_2D_ARRAY_SHADOW","SAMPLER_CUBE_SHADOW","INT_SAMPLER_2D","INT_SAMPLER_3D","INT_SAMPLER_CUBE","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_2D_ARRAY","sampler","UNIFORM_NAME_REGEXP","matches","match","Boolean"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\n\nimport {\n ShaderLayout,\n // BindingLayout,\n UniformBinding,\n UniformBlockBinding,\n ProgramBindings,\n AttributeBinding,\n VaryingBinding,\n // AttributeLayout,\n AccessorObject\n} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\nimport Accessor from '../../classic/accessor'; // TODO - should NOT depend on classic API\nimport {decodeUniformType, decodeAttributeType} from './uniforms';\nimport {getVertexFormat} from '../converters/vertex-formats';\nimport {isSamplerUniform} from './uniforms';\n\n/**\n * Extract metadata describing binding information for a program's shaders\n * Note: `linkProgram()` needs to have been called\n * (although linking does not need to have been successful).\n */\nexport function getShaderLayout(gl: WebGLRenderingContext, program: WebGLProgram): ShaderLayout {\n const programBindings = getProgramBindings(gl, program);\n\n const shaderLayout: ShaderLayout = {\n attributes: [],\n bindings: []\n };\n\n for (const attribute of programBindings.attributes) {\n // TODO - multicolumn attributes like a matrix4 can be up to 16 elts...\n const size = Math.min(attribute.accessor.size, 4);\n const format =\n // attribute.accessor.format ||\n getVertexFormat(attribute.accessor.type || GL.FLOAT, size);\n shaderLayout.attributes.push({\n name: attribute.name,\n location: attribute.location,\n format,\n stepMode: attribute.accessor.divisor === 1 ? 'instance' : 'vertex'\n });\n }\n\n // Uniform blocks\n for (const uniformBlock of programBindings.uniformBlocks) {\n const uniforms = uniformBlock.uniforms.map((uniform) => ({\n name: uniform.name,\n format: uniform.format,\n byteOffset: uniform.byteOffset,\n byteStride: uniform.byteStride,\n arrayLength: uniform.arrayLength\n }));\n shaderLayout.bindings.push({\n type: 'uniform',\n name: uniformBlock.name,\n location: uniformBlock.location,\n visibility: (uniformBlock.vertex ? 0x1 : 0) & (uniformBlock.fragment ? 0x2 : 0),\n minBindingSize: uniformBlock.byteLength,\n uniforms\n });\n }\n\n let textureUnit = 0;\n for (const uniform of programBindings.uniforms) {\n if (isSamplerUniform(uniform.type)) {\n const {viewDimension, sampleType} = getSamplerInfo(uniform.type);\n shaderLayout.bindings.push({\n type: 'texture',\n name: uniform.name,\n location: textureUnit,\n viewDimension,\n sampleType\n });\n\n // @ts-expect-error\n uniform.textureUnit = textureUnit;\n textureUnit += 1;\n }\n }\n\n const uniforms = programBindings.uniforms?.filter((uniform) => uniform.location !== null) || [];\n if (uniforms.length) {\n shaderLayout.uniforms = uniforms;\n }\n if (programBindings.varyings?.length) {\n shaderLayout.varyings = programBindings.varyings;\n }\n\n return shaderLayout;\n}\n\n/**\n * Extract metadata describing binding information for a program's shaders\n * Note: `linkProgram()` needs to have been called\n * (although linking does not need to have been successful).\n */\nexport function getProgramBindings(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): ProgramBindings {\n const config: ProgramBindings = {\n attributes: readAttributeBindings(gl, program),\n uniforms: readUniformBindings(gl, program),\n uniformBlocks: readUniformBlocks(gl, program),\n varyings: readVaryings(gl, program)\n };\n\n Object.seal(config);\n return config;\n // generateWebGPUStyleBindings(bindings);\n}\n\n/**\n * Extract info about all transform feedback varyings\n *\n * linkProgram needs to have been called, although linking does not need to have been successful\n */\nfunction readAttributeBindings(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): AttributeBinding[] {\n const attributes: AttributeBinding[] = [];\n\n const count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n\n for (let index = 0; index < count; index++) {\n const activeInfo = gl.getActiveAttrib(program, index);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name, type: compositeType, size} = activeInfo;\n const location = gl.getAttribLocation(program, name);\n // Add only user provided attributes, for built-in attributes like\n // `gl_InstanceID` locaiton will be < 0\n if (location >= 0) {\n const {glType, components} = decodeAttributeType(compositeType);;\n const accessor: AccessorObject = {type: glType, size: size * components};\n // Any attribute name containing the word \"instance\" will be assumed to be instanced\n if (/instance/i.test(name)) {\n accessor.divisor = 1;\n }\n const attributeInfo = {location, name, accessor: new Accessor(accessor)}; // Base values\n attributes.push(attributeInfo);\n }\n }\n\n attributes.sort((a: AttributeBinding, b: AttributeBinding) => a.location - b.location);\n return attributes;\n}\n\n/**\n * Extract info about all transform feedback varyings\n *\n * linkProgram needs to have been called, although linking does not need to have been successful\n */\nfunction readVaryings(gl: WebGLRenderingContext, program: WebGLProgram): VaryingBinding[] {\n if (!isWebGL2(gl)) {\n return [];\n }\n const gl2 = gl as WebGL2RenderingContext;\n\n const varyings: VaryingBinding[] = [];\n\n const count = gl.getProgramParameter(program, GL.TRANSFORM_FEEDBACK_VARYINGS);\n for (let location = 0; location < count; location++) {\n const activeInfo = gl2.getTransformFeedbackVarying(program, location);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name, type: compositeType, size} = activeInfo;\n const {glType, components} = decodeUniformType(compositeType);;\n const accessor = new Accessor({type: glType, size: size * components});\n const varying = {location, name, accessor}; // Base values\n varyings.push(varying);\n }\n\n varyings.sort((a, b) => a.location - b.location);\n return varyings;\n}\n\n/**\n * Extract info about all uniforms\n *\n * Query uniform locations and build name to setter map.\n */\nfunction readUniformBindings(gl: WebGLRenderingContext, program: WebGLProgram): UniformBinding[] {\n const uniforms: UniformBinding[] = [];\n\n const uniformCount = gl.getProgramParameter(program, GL.ACTIVE_UNIFORMS);\n for (let i = 0; i < uniformCount; i++) {\n const activeInfo = gl.getActiveUniform(program, i);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name: rawName, size, type} = activeInfo;\n const {name, isArray} = parseUniformName(rawName);\n let webglLocation = gl.getUniformLocation(program, name);\n const uniformInfo = {\n // WebGL locations are uniquely typed but just numbers\n location: webglLocation as number,\n name,\n size,\n type,\n isArray\n };\n uniforms.push(uniformInfo);\n\n // Array (e.g. matrix) uniforms can occupy several 4x4 byte banks\n if (uniformInfo.size > 1) {\n for (let j = 0; j < uniformInfo.size; j++) {\n const elementName = `${name}[${j}]`;\n\n webglLocation = gl.getUniformLocation(program, elementName);\n\n const arrayElementUniformInfo = {\n ...uniformInfo,\n name: elementName,\n location: webglLocation as number\n };\n\n uniforms.push(arrayElementUniformInfo);\n }\n }\n }\n return uniforms;\n}\n\n/**\n * Extract info about all \"active\" uniform blocks\n *\n * (\"Active\" just means that unused (aka inactive) blocks may have been\n * optimized away during linking)\n */\nfunction readUniformBlocks(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): UniformBlockBinding[] {\n if (!isWebGL2(gl)) {\n return [];\n }\n const gl2 = gl as WebGL2RenderingContext;\n\n const getBlockParameter = (blockIndex: number, pname: GL): any =>\n gl2.getActiveUniformBlockParameter(program, blockIndex, pname);\n\n const uniformBlocks: UniformBlockBinding[] = [];\n\n const blockCount = gl2.getProgramParameter(program, GL.ACTIVE_UNIFORM_BLOCKS);\n for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {\n const blockInfo: UniformBlockBinding = {\n name: gl2.getActiveUniformBlockName(program, blockIndex) || '',\n location: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_BINDING),\n byteLength: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_DATA_SIZE),\n vertex: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),\n fragment: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),\n uniformCount: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORMS),\n uniforms: [] as any[]\n };\n\n const uniformIndices = getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES) as number[] || [];\n\n const uniformType = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_TYPE); // Array of GLenum indicating the types of the uniforms.\n const uniformArrayLength = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_SIZE); // Array of GLuint indicating the sizes of the uniforms.\n // const uniformBlockIndex = gl2.getActiveUniforms(\n // program,\n // uniformIndices,\n // GL.UNIFORM_BLOCK_INDEX\n // ); // Array of GLint indicating the block indices of the uniforms.\n const uniformOffset = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_OFFSET); // Array of GLint indicating the uniform buffer offsets.\n const uniformStride = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_ARRAY_STRIDE); // Array of GLint indicating the strides between the elements.\n // const uniformMatrixStride = gl2.getActiveUniforms(\n // program,\n // uniformIndices,\n // GL.UNIFORM_MATRIX_STRIDE\n // ); // Array of GLint indicating the strides between columns of a column-major matrix or a row-major matrix.\n // const uniformRowMajor = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_IS_ROW_MAJOR);\n for (let i = 0; i < blockInfo.uniformCount; ++i) {\n const activeInfo = gl2.getActiveUniform(program, uniformIndices[i]);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n \n blockInfo.uniforms.push({\n name: activeInfo.name,\n format: decodeUniformType(uniformType[i]).format,\n type: uniformType[i],\n arrayLength: uniformArrayLength[i],\n byteOffset: uniformOffset[i],\n byteStride: uniformStride[i],\n // matrixStride: uniformStride[i],\n // rowMajor: uniformRowMajor[i]\n });\n }\n\n uniformBlocks.push(blockInfo);\n }\n\n uniformBlocks.sort((a, b) => a.location - b.location);\n return uniformBlocks;\n}\n\nconst SAMPLER_UNIFORMS_GL_TO_GPU: Record<\n number,\n [\n '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d',\n 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint'\n ]\n> = {\n [GL.SAMPLER_2D]: ['2d', 'float'],\n [GL.SAMPLER_CUBE]: ['cube', 'float'],\n [GL.SAMPLER_3D]: ['3d', 'float'],\n [GL.SAMPLER_2D_SHADOW]: ['3d', 'depth'],\n [GL.SAMPLER_2D_ARRAY]: ['2d-array', 'float'],\n [GL.SAMPLER_2D_ARRAY_SHADOW]: ['2d-array', 'depth'],\n [GL.SAMPLER_CUBE_SHADOW]: ['cube', 'float'],\n [GL.INT_SAMPLER_2D]: ['2d', 'sint'],\n [GL.INT_SAMPLER_3D]: ['3d', 'sint'],\n [GL.INT_SAMPLER_CUBE]: ['cube', 'sint'],\n [GL.INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_2D]: ['2d', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_3D]: ['3d', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_CUBE]: ['cube', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint']\n};\n\ntype SamplerInfo = | {\n viewDimension: '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d';\n sampleType: 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint';\n};\n\nfunction getSamplerInfo(type: GL): SamplerInfo {\n let sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];\n if (!sampler) {\n throw new Error('sampler');\n }\n const [viewDimension, sampleType] = sampler;\n return {viewDimension, sampleType};\n}\n\n// HELPERS\n\nfunction parseUniformName(name: string): {name: string; length: number; isArray: boolean} {\n // Shortcut to avoid redundant or bad matches\n if (name[name.length - 1] !== ']') {\n return {\n name,\n length: 1,\n isArray: false\n };\n }\n\n // if array name then clean the array brackets\n const UNIFORM_NAME_REGEXP = /([^[]*)(\\[[0-9]+\\])?/;\n const matches = name.match(UNIFORM_NAME_REGEXP);\n if (!matches || matches.length < 2) {\n throw new Error(`Failed to parse GLSL uniform name ${name}`);\n }\n\n return {\n name: matches[1],\n length: matches[2] ? 1 : 0,\n isArray: Boolean(matches[2])\n };\n}\n\n/**\n * TODO - verify this is a copy of above and delete\n * import type {TextureFormat} from '@luma.gl/api';\n* Extract info about all \"active\" uniform blocks\n * (\"Active\" just means that unused (inactive) blocks may have been optimized away during linking)\n *\n function getUniformBlockBindings(gl: WebGLRenderingContext, program): Binding[] {\n if (!isWebGL2(gl)) {\n return;\n }\n const bindings: Binding[] = [];\n const count = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);\n for (let blockIndex = 0; blockIndex < count; blockIndex++) {\n const vertex = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),\n const fragment = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),\n const visibility = (vertex) + (fragment);\n const binding: BufferBinding = {\n location: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_BINDING),\n // name: gl.getActiveUniformBlockName(program, blockIndex),\n type: 'uniform',\n visibility,\n minBindingSize: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE),\n // uniformCount: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS),\n // uniformIndices: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES),\n }\n bindings.push(binding);\n }\n return bindings;\n}\n\nfunction setBindings(gl2: WebGL2RenderingContext, program: WebGLProgram, bindings: Binding[][]): void {\n for (const bindGroup of bindings) {\n for (const binding of bindGroup) {\n\n }\n }\n\n // Set up indirection table\n // this.gl2.uniformBlockBinding(this.handle, blockIndex, blockBinding);\n}\n */\n"],"file":"get-shader-layout.js"}
1
+ {"version":3,"file":"get-shader-layout.js","names":["_constants","_interopRequireDefault","require","_webglChecks","_accessor","_uniforms2","_vertexFormats","_SAMPLER_UNIFORMS_GL_","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","getShaderLayout","gl","program","_programBindings$unif","_programBindings$vary","programBindings","getProgramBindings","shaderLayout","attributes","bindings","_iterator","_step","attribute","size","Math","min","accessor","format","getVertexFormat","type","GL","FLOAT","location","stepMode","divisor","_iterator2","uniformBlocks","_step2","uniformBlock","uniforms","map","uniform","byteOffset","byteStride","arrayLength","visibility","vertex","fragment","minBindingSize","byteLength","textureUnit","_iterator3","_step3","isSamplerUniform","_getSamplerInfo","getSamplerInfo","viewDimension","sampleType","varyings","config","readAttributeBindings","readUniformBindings","readUniformBlocks","readVaryings","seal","count","getProgramParameter","ACTIVE_ATTRIBUTES","index","activeInfo","getActiveAttrib","Error","compositeType","getAttribLocation","_decodeAttributeType","decodeAttributeType","glType","components","attributeInfo","Accessor","sort","a","b","isWebGL2","gl2","TRANSFORM_FEEDBACK_VARYINGS","getTransformFeedbackVarying","_decodeUniformType","decodeUniformType","varying","uniformCount","ACTIVE_UNIFORMS","getActiveUniform","rawName","_parseUniformName","parseUniformName","webglLocation","getUniformLocation","uniformInfo","j","elementName","concat","arrayElementUniformInfo","getBlockParameter","blockIndex","pname","getActiveUniformBlockParameter","blockCount","ACTIVE_UNIFORM_BLOCKS","blockInfo","getActiveUniformBlockName","UNIFORM_BLOCK_BINDING","UNIFORM_BLOCK_DATA_SIZE","UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER","UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER","UNIFORM_BLOCK_ACTIVE_UNIFORMS","uniformIndices","UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES","uniformType","getActiveUniforms","UNIFORM_TYPE","uniformArrayLength","UNIFORM_SIZE","uniformOffset","UNIFORM_OFFSET","uniformStride","UNIFORM_ARRAY_STRIDE","SAMPLER_UNIFORMS_GL_TO_GPU","SAMPLER_2D","SAMPLER_CUBE","SAMPLER_3D","SAMPLER_2D_SHADOW","SAMPLER_2D_ARRAY","SAMPLER_2D_ARRAY_SHADOW","SAMPLER_CUBE_SHADOW","INT_SAMPLER_2D","INT_SAMPLER_3D","INT_SAMPLER_CUBE","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_2D_ARRAY","sampler","_sampler","_slicedToArray2","UNIFORM_NAME_REGEXP","matches","match","Boolean"],"sources":["../../../../src/adapter/helpers/get-shader-layout.ts"],"sourcesContent":["// luma.gl, MIT license\n\nimport {\n ShaderLayout,\n // BindingLayout,\n UniformBinding,\n UniformBlockBinding,\n ProgramBindings,\n AttributeBinding,\n VaryingBinding,\n // AttributeLayout,\n AccessorObject\n} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\nimport Accessor from '../../classic/accessor'; // TODO - should NOT depend on classic API\nimport {decodeUniformType, decodeAttributeType} from './uniforms';\nimport {getVertexFormat} from '../converters/vertex-formats';\nimport {isSamplerUniform} from './uniforms';\n\n/**\n * Extract metadata describing binding information for a program's shaders\n * Note: `linkProgram()` needs to have been called\n * (although linking does not need to have been successful).\n */\nexport function getShaderLayout(gl: WebGLRenderingContext, program: WebGLProgram): ShaderLayout {\n const programBindings = getProgramBindings(gl, program);\n\n const shaderLayout: ShaderLayout = {\n attributes: [],\n bindings: []\n };\n\n for (const attribute of programBindings.attributes) {\n // TODO - multicolumn attributes like a matrix4 can be up to 16 elts...\n const size = Math.min(attribute.accessor.size, 4);\n const format =\n // attribute.accessor.format ||\n getVertexFormat(attribute.accessor.type || GL.FLOAT, size);\n shaderLayout.attributes.push({\n name: attribute.name,\n location: attribute.location,\n format,\n stepMode: attribute.accessor.divisor === 1 ? 'instance' : 'vertex'\n });\n }\n\n // Uniform blocks\n for (const uniformBlock of programBindings.uniformBlocks) {\n const uniforms = uniformBlock.uniforms.map((uniform) => ({\n name: uniform.name,\n format: uniform.format,\n byteOffset: uniform.byteOffset,\n byteStride: uniform.byteStride,\n arrayLength: uniform.arrayLength\n }));\n shaderLayout.bindings.push({\n type: 'uniform',\n name: uniformBlock.name,\n location: uniformBlock.location,\n visibility: (uniformBlock.vertex ? 0x1 : 0) & (uniformBlock.fragment ? 0x2 : 0),\n minBindingSize: uniformBlock.byteLength,\n uniforms\n });\n }\n\n let textureUnit = 0;\n for (const uniform of programBindings.uniforms) {\n if (isSamplerUniform(uniform.type)) {\n const {viewDimension, sampleType} = getSamplerInfo(uniform.type);\n shaderLayout.bindings.push({\n type: 'texture',\n name: uniform.name,\n location: textureUnit,\n viewDimension,\n sampleType\n });\n\n // @ts-expect-error\n uniform.textureUnit = textureUnit;\n textureUnit += 1;\n }\n }\n\n const uniforms = programBindings.uniforms?.filter((uniform) => uniform.location !== null) || [];\n if (uniforms.length) {\n shaderLayout.uniforms = uniforms;\n }\n if (programBindings.varyings?.length) {\n shaderLayout.varyings = programBindings.varyings;\n }\n\n return shaderLayout;\n}\n\n/**\n * Extract metadata describing binding information for a program's shaders\n * Note: `linkProgram()` needs to have been called\n * (although linking does not need to have been successful).\n */\nexport function getProgramBindings(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): ProgramBindings {\n const config: ProgramBindings = {\n attributes: readAttributeBindings(gl, program),\n uniforms: readUniformBindings(gl, program),\n uniformBlocks: readUniformBlocks(gl, program),\n varyings: readVaryings(gl, program)\n };\n\n Object.seal(config);\n return config;\n // generateWebGPUStyleBindings(bindings);\n}\n\n/**\n * Extract info about all transform feedback varyings\n *\n * linkProgram needs to have been called, although linking does not need to have been successful\n */\nfunction readAttributeBindings(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): AttributeBinding[] {\n const attributes: AttributeBinding[] = [];\n\n const count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n\n for (let index = 0; index < count; index++) {\n const activeInfo = gl.getActiveAttrib(program, index);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name, type: compositeType, size} = activeInfo;\n const location = gl.getAttribLocation(program, name);\n // Add only user provided attributes, for built-in attributes like\n // `gl_InstanceID` locaiton will be < 0\n if (location >= 0) {\n const {glType, components} = decodeAttributeType(compositeType);;\n const accessor: AccessorObject = {type: glType, size: size * components};\n // Any attribute name containing the word \"instance\" will be assumed to be instanced\n if (/instance/i.test(name)) {\n accessor.divisor = 1;\n }\n const attributeInfo = {location, name, accessor: new Accessor(accessor)}; // Base values\n attributes.push(attributeInfo);\n }\n }\n\n attributes.sort((a: AttributeBinding, b: AttributeBinding) => a.location - b.location);\n return attributes;\n}\n\n/**\n * Extract info about all transform feedback varyings\n *\n * linkProgram needs to have been called, although linking does not need to have been successful\n */\nfunction readVaryings(gl: WebGLRenderingContext, program: WebGLProgram): VaryingBinding[] {\n if (!isWebGL2(gl)) {\n return [];\n }\n const gl2 = gl as WebGL2RenderingContext;\n\n const varyings: VaryingBinding[] = [];\n\n const count = gl.getProgramParameter(program, GL.TRANSFORM_FEEDBACK_VARYINGS);\n for (let location = 0; location < count; location++) {\n const activeInfo = gl2.getTransformFeedbackVarying(program, location);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name, type: compositeType, size} = activeInfo;\n const {glType, components} = decodeUniformType(compositeType);;\n const accessor = new Accessor({type: glType, size: size * components});\n const varying = {location, name, accessor}; // Base values\n varyings.push(varying);\n }\n\n varyings.sort((a, b) => a.location - b.location);\n return varyings;\n}\n\n/**\n * Extract info about all uniforms\n *\n * Query uniform locations and build name to setter map.\n */\nfunction readUniformBindings(gl: WebGLRenderingContext, program: WebGLProgram): UniformBinding[] {\n const uniforms: UniformBinding[] = [];\n\n const uniformCount = gl.getProgramParameter(program, GL.ACTIVE_UNIFORMS);\n for (let i = 0; i < uniformCount; i++) {\n const activeInfo = gl.getActiveUniform(program, i);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n const {name: rawName, size, type} = activeInfo;\n const {name, isArray} = parseUniformName(rawName);\n let webglLocation = gl.getUniformLocation(program, name);\n const uniformInfo = {\n // WebGL locations are uniquely typed but just numbers\n location: webglLocation as number,\n name,\n size,\n type,\n isArray\n };\n uniforms.push(uniformInfo);\n\n // Array (e.g. matrix) uniforms can occupy several 4x4 byte banks\n if (uniformInfo.size > 1) {\n for (let j = 0; j < uniformInfo.size; j++) {\n const elementName = `${name}[${j}]`;\n\n webglLocation = gl.getUniformLocation(program, elementName);\n\n const arrayElementUniformInfo = {\n ...uniformInfo,\n name: elementName,\n location: webglLocation as number\n };\n\n uniforms.push(arrayElementUniformInfo);\n }\n }\n }\n return uniforms;\n}\n\n/**\n * Extract info about all \"active\" uniform blocks\n *\n * (\"Active\" just means that unused (aka inactive) blocks may have been\n * optimized away during linking)\n */\nfunction readUniformBlocks(\n gl: WebGLRenderingContext,\n program: WebGLProgram\n): UniformBlockBinding[] {\n if (!isWebGL2(gl)) {\n return [];\n }\n const gl2 = gl as WebGL2RenderingContext;\n\n const getBlockParameter = (blockIndex: number, pname: GL): any =>\n gl2.getActiveUniformBlockParameter(program, blockIndex, pname);\n\n const uniformBlocks: UniformBlockBinding[] = [];\n\n const blockCount = gl2.getProgramParameter(program, GL.ACTIVE_UNIFORM_BLOCKS);\n for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {\n const blockInfo: UniformBlockBinding = {\n name: gl2.getActiveUniformBlockName(program, blockIndex) || '',\n location: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_BINDING),\n byteLength: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_DATA_SIZE),\n vertex: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),\n fragment: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),\n uniformCount: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORMS),\n uniforms: [] as any[]\n };\n\n const uniformIndices = getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES) as number[] || [];\n\n const uniformType = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_TYPE); // Array of GLenum indicating the types of the uniforms.\n const uniformArrayLength = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_SIZE); // Array of GLuint indicating the sizes of the uniforms.\n // const uniformBlockIndex = gl2.getActiveUniforms(\n // program,\n // uniformIndices,\n // GL.UNIFORM_BLOCK_INDEX\n // ); // Array of GLint indicating the block indices of the uniforms.\n const uniformOffset = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_OFFSET); // Array of GLint indicating the uniform buffer offsets.\n const uniformStride = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_ARRAY_STRIDE); // Array of GLint indicating the strides between the elements.\n // const uniformMatrixStride = gl2.getActiveUniforms(\n // program,\n // uniformIndices,\n // GL.UNIFORM_MATRIX_STRIDE\n // ); // Array of GLint indicating the strides between columns of a column-major matrix or a row-major matrix.\n // const uniformRowMajor = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_IS_ROW_MAJOR);\n for (let i = 0; i < blockInfo.uniformCount; ++i) {\n const activeInfo = gl2.getActiveUniform(program, uniformIndices[i]);\n if (!activeInfo) {\n throw new Error('activeInfo');\n }\n \n blockInfo.uniforms.push({\n name: activeInfo.name,\n format: decodeUniformType(uniformType[i]).format,\n type: uniformType[i],\n arrayLength: uniformArrayLength[i],\n byteOffset: uniformOffset[i],\n byteStride: uniformStride[i],\n // matrixStride: uniformStride[i],\n // rowMajor: uniformRowMajor[i]\n });\n }\n\n uniformBlocks.push(blockInfo);\n }\n\n uniformBlocks.sort((a, b) => a.location - b.location);\n return uniformBlocks;\n}\n\nconst SAMPLER_UNIFORMS_GL_TO_GPU: Record<\n number,\n [\n '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d',\n 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint'\n ]\n> = {\n [GL.SAMPLER_2D]: ['2d', 'float'],\n [GL.SAMPLER_CUBE]: ['cube', 'float'],\n [GL.SAMPLER_3D]: ['3d', 'float'],\n [GL.SAMPLER_2D_SHADOW]: ['3d', 'depth'],\n [GL.SAMPLER_2D_ARRAY]: ['2d-array', 'float'],\n [GL.SAMPLER_2D_ARRAY_SHADOW]: ['2d-array', 'depth'],\n [GL.SAMPLER_CUBE_SHADOW]: ['cube', 'float'],\n [GL.INT_SAMPLER_2D]: ['2d', 'sint'],\n [GL.INT_SAMPLER_3D]: ['3d', 'sint'],\n [GL.INT_SAMPLER_CUBE]: ['cube', 'sint'],\n [GL.INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_2D]: ['2d', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_3D]: ['3d', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_CUBE]: ['cube', 'uint'],\n [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint']\n};\n\ntype SamplerInfo = | {\n viewDimension: '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d';\n sampleType: 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint';\n};\n\nfunction getSamplerInfo(type: GL): SamplerInfo {\n let sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];\n if (!sampler) {\n throw new Error('sampler');\n }\n const [viewDimension, sampleType] = sampler;\n return {viewDimension, sampleType};\n}\n\n// HELPERS\n\nfunction parseUniformName(name: string): {name: string; length: number; isArray: boolean} {\n // Shortcut to avoid redundant or bad matches\n if (name[name.length - 1] !== ']') {\n return {\n name,\n length: 1,\n isArray: false\n };\n }\n\n // if array name then clean the array brackets\n const UNIFORM_NAME_REGEXP = /([^[]*)(\\[[0-9]+\\])?/;\n const matches = name.match(UNIFORM_NAME_REGEXP);\n if (!matches || matches.length < 2) {\n throw new Error(`Failed to parse GLSL uniform name ${name}`);\n }\n\n return {\n name: matches[1],\n length: matches[2] ? 1 : 0,\n isArray: Boolean(matches[2])\n };\n}\n\n/**\n * TODO - verify this is a copy of above and delete\n * import type {TextureFormat} from '@luma.gl/api';\n* Extract info about all \"active\" uniform blocks\n * (\"Active\" just means that unused (inactive) blocks may have been optimized away during linking)\n *\n function getUniformBlockBindings(gl: WebGLRenderingContext, program): Binding[] {\n if (!isWebGL2(gl)) {\n return;\n }\n const bindings: Binding[] = [];\n const count = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);\n for (let blockIndex = 0; blockIndex < count; blockIndex++) {\n const vertex = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),\n const fragment = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),\n const visibility = (vertex) + (fragment);\n const binding: BufferBinding = {\n location: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_BINDING),\n // name: gl.getActiveUniformBlockName(program, blockIndex),\n type: 'uniform',\n visibility,\n minBindingSize: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE),\n // uniformCount: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS),\n // uniformIndices: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES),\n }\n bindings.push(binding);\n }\n return bindings;\n}\n\nfunction setBindings(gl2: WebGL2RenderingContext, program: WebGLProgram, bindings: Binding[][]): void {\n for (const bindGroup of bindings) {\n for (const binding of bindGroup) {\n\n }\n }\n\n // Set up indirection table\n // this.gl2.uniformBlockBinding(this.handle, blockIndex, blockBinding);\n}\n */\n"],"mappings":";;;;;;;;;;AAaA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAA6D,IAAAK,qBAAA;AAAA,SAAAC,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAR,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAAV,MAAA,EAAAV,MAAA,CAAAmB,yBAAA,CAAAL,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAqB,cAAA,CAAAX,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAAA,SAAAY,2BAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,EAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,EAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAV,MAAA,qBAAAY,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAd,CAAA,UAAAoB,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,QAAAtB,CAAA,IAAAY,CAAA,CAAAV,MAAA,WAAAqB,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAZ,CAAA,CAAAZ,CAAA,UAAAyB,CAAA,WAAAA,EAAAC,EAAA,UAAAA,EAAA,KAAAC,CAAA,EAAAP,CAAA,gBAAAQ,SAAA,iJAAAC,gBAAA,SAAAC,MAAA,UAAAC,GAAA,WAAAV,CAAA,WAAAA,EAAA,IAAAP,EAAA,GAAAA,EAAA,CAAAkB,IAAA,CAAApB,CAAA,MAAAU,CAAA,WAAAA,EAAA,QAAAW,IAAA,GAAAnB,EAAA,CAAAoB,IAAA,IAAAL,gBAAA,GAAAI,IAAA,CAAAV,IAAA,SAAAU,IAAA,KAAAR,CAAA,WAAAA,EAAAU,GAAA,IAAAL,MAAA,SAAAC,GAAA,GAAAI,GAAA,KAAAR,CAAA,WAAAA,EAAA,eAAAE,gBAAA,IAAAf,EAAA,CAAAsB,MAAA,UAAAtB,EAAA,CAAAsB,MAAA,oBAAAN,MAAA,QAAAC,GAAA;AAAA,SAAAZ,4BAAAP,CAAA,EAAAyB,MAAA,SAAAzB,CAAA,qBAAAA,CAAA,sBAAA0B,iBAAA,CAAA1B,CAAA,EAAAyB,MAAA,OAAAf,CAAA,GAAAjC,MAAA,CAAAkD,SAAA,CAAAC,QAAA,CAAAR,IAAA,CAAApB,CAAA,EAAA6B,KAAA,aAAAnB,CAAA,iBAAAV,CAAA,CAAA8B,WAAA,EAAApB,CAAA,GAAAV,CAAA,CAAA8B,WAAA,CAAAC,IAAA,MAAArB,CAAA,cAAAA,CAAA,mBAAAL,KAAA,CAAA2B,IAAA,CAAAhC,CAAA,OAAAU,CAAA,+DAAAuB,IAAA,CAAAvB,CAAA,UAAAgB,iBAAA,CAAA1B,CAAA,EAAAyB,MAAA;AAAA,SAAAC,kBAAAQ,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAA5C,MAAA,EAAA6C,GAAA,GAAAD,GAAA,CAAA5C,MAAA,WAAAF,CAAA,MAAAgD,IAAA,OAAA/B,KAAA,CAAA8B,GAAA,GAAA/C,CAAA,GAAA+C,GAAA,EAAA/C,CAAA,IAAAgD,IAAA,CAAAhD,CAAA,IAAA8C,GAAA,CAAA9C,CAAA,UAAAgD,IAAA;AAQtD,SAASC,eAAeA,CAACC,EAAyB,EAAEC,OAAqB,EAAgB;EAAA,IAAAC,qBAAA,EAAAC,qBAAA;EAC9F,IAAMC,eAAe,GAAGC,kBAAkB,CAACL,EAAE,EAAEC,OAAO,CAAC;EAEvD,IAAMK,YAA0B,GAAG;IACjCC,UAAU,EAAE,EAAE;IACdC,QAAQ,EAAE;EACZ,CAAC;EAAC,IAAAC,SAAA,GAAAhD,0BAAA,CAEsB2C,eAAe,CAACG,UAAU;IAAAG,KAAA;EAAA;IAAlD,KAAAD,SAAA,CAAAtC,CAAA,MAAAuC,KAAA,GAAAD,SAAA,CAAArC,CAAA,IAAAC,IAAA,GAAoD;MAAA,IAAzCsC,SAAS,GAAAD,KAAA,CAAApC,KAAA;MAElB,IAAMsC,IAAI,GAAGC,IAAI,CAACC,GAAG,CAACH,SAAS,CAACI,QAAQ,CAACH,IAAI,EAAE,CAAC,CAAC;MACjD,IAAMI,MAAM,GAEV,IAAAC,8BAAe,EAACN,SAAS,CAACI,QAAQ,CAACG,IAAI,IAAIC,kBAAE,CAACC,KAAK,EAAER,IAAI,CAAC;MAC5DN,YAAY,CAACC,UAAU,CAAC7D,IAAI,CAAC;QAC3B+C,IAAI,EAAEkB,SAAS,CAAClB,IAAI;QACpB4B,QAAQ,EAAEV,SAAS,CAACU,QAAQ;QAC5BL,MAAM,EAANA,MAAM;QACNM,QAAQ,EAAEX,SAAS,CAACI,QAAQ,CAACQ,OAAO,KAAK,CAAC,GAAG,UAAU,GAAG;MAC5D,CAAC,CAAC;IACJ;EAAC,SAAA1C,GAAA;IAAA4B,SAAA,CAAAlC,CAAA,CAAAM,GAAA;EAAA;IAAA4B,SAAA,CAAAhC,CAAA;EAAA;EAAA,IAAA+C,UAAA,GAAA/D,0BAAA,CAG0B2C,eAAe,CAACqB,aAAa;IAAAC,MAAA;EAAA;IAAxD,KAAAF,UAAA,CAAArD,CAAA,MAAAuD,MAAA,GAAAF,UAAA,CAAApD,CAAA,IAAAC,IAAA,GAA0D;MAAA,IAA/CsD,YAAY,GAAAD,MAAA,CAAApD,KAAA;MACrB,IAAMsD,SAAQ,GAAGD,YAAY,CAACC,QAAQ,CAACC,GAAG,CAAC,UAACC,OAAO;QAAA,OAAM;UACvDrC,IAAI,EAAEqC,OAAO,CAACrC,IAAI;UAClBuB,MAAM,EAAEc,OAAO,CAACd,MAAM;UACtBe,UAAU,EAAED,OAAO,CAACC,UAAU;UAC9BC,UAAU,EAAEF,OAAO,CAACE,UAAU;UAC9BC,WAAW,EAAEH,OAAO,CAACG;QACvB,CAAC;MAAA,CAAC,CAAC;MACH3B,YAAY,CAACE,QAAQ,CAAC9D,IAAI,CAAC;QACzBwE,IAAI,EAAE,SAAS;QACfzB,IAAI,EAAEkC,YAAY,CAAClC,IAAI;QACvB4B,QAAQ,EAAEM,YAAY,CAACN,QAAQ;QAC/Ba,UAAU,EAAE,CAACP,YAAY,CAACQ,MAAM,GAAG,GAAG,GAAG,CAAC,KAAKR,YAAY,CAACS,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;QAC/EC,cAAc,EAAEV,YAAY,CAACW,UAAU;QACvCV,QAAQ,EAARA;MACF,CAAC,CAAC;IACJ;EAAC,SAAA/C,GAAA;IAAA2C,UAAA,CAAAjD,CAAA,CAAAM,GAAA;EAAA;IAAA2C,UAAA,CAAA/C,CAAA;EAAA;EAED,IAAI8D,WAAW,GAAG,CAAC;EAAC,IAAAC,UAAA,GAAA/E,0BAAA,CACE2C,eAAe,CAACwB,QAAQ;IAAAa,MAAA;EAAA;IAA9C,KAAAD,UAAA,CAAArE,CAAA,MAAAsE,MAAA,GAAAD,UAAA,CAAApE,CAAA,IAAAC,IAAA,GAAgD;MAAA,IAArCyD,OAAO,GAAAW,MAAA,CAAAnE,KAAA;MAChB,IAAI,IAAAoE,2BAAgB,EAACZ,OAAO,CAACZ,IAAI,CAAC,EAAE;QAClC,IAAAyB,eAAA,GAAoCC,cAAc,CAACd,OAAO,CAACZ,IAAI,CAAC;UAAzD2B,aAAa,GAAAF,eAAA,CAAbE,aAAa;UAAEC,UAAU,GAAAH,eAAA,CAAVG,UAAU;QAChCxC,YAAY,CAACE,QAAQ,CAAC9D,IAAI,CAAC;UACzBwE,IAAI,EAAE,SAAS;UACfzB,IAAI,EAAEqC,OAAO,CAACrC,IAAI;UAClB4B,QAAQ,EAAEkB,WAAW;UACrBM,aAAa,EAAbA,aAAa;UACbC,UAAU,EAAVA;QACF,CAAC,CAAC;QAGFhB,OAAO,CAACS,WAAW,GAAGA,WAAW;QACjCA,WAAW,IAAI,CAAC;MAClB;IACF;EAAC,SAAA1D,GAAA;IAAA2D,UAAA,CAAAjE,CAAA,CAAAM,GAAA;EAAA;IAAA2D,UAAA,CAAA/D,CAAA;EAAA;EAED,IAAMmD,QAAQ,GAAG,EAAA1B,qBAAA,GAAAE,eAAe,CAACwB,QAAQ,cAAA1B,qBAAA,uBAAxBA,qBAAA,CAA0B5D,MAAM,CAAC,UAACwF,OAAO;IAAA,OAAKA,OAAO,CAACT,QAAQ,KAAK,IAAI;EAAA,EAAC,KAAI,EAAE;EAC/F,IAAIO,QAAQ,CAAC5E,MAAM,EAAE;IACnBsD,YAAY,CAACsB,QAAQ,GAAGA,QAAQ;EAClC;EACA,KAAAzB,qBAAA,GAAIC,eAAe,CAAC2C,QAAQ,cAAA5C,qBAAA,eAAxBA,qBAAA,CAA0BnD,MAAM,EAAE;IACpCsD,YAAY,CAACyC,QAAQ,GAAG3C,eAAe,CAAC2C,QAAQ;EAClD;EAEA,OAAOzC,YAAY;AACrB;AAOO,SAASD,kBAAkBA,CAChCL,EAAyB,EACzBC,OAAqB,EACJ;EACjB,IAAM+C,MAAuB,GAAG;IAC9BzC,UAAU,EAAE0C,qBAAqB,CAACjD,EAAE,EAAEC,OAAO,CAAC;IAC9C2B,QAAQ,EAAEsB,mBAAmB,CAAClD,EAAE,EAAEC,OAAO,CAAC;IAC1CwB,aAAa,EAAE0B,iBAAiB,CAACnD,EAAE,EAAEC,OAAO,CAAC;IAC7C8C,QAAQ,EAAEK,YAAY,CAACpD,EAAE,EAAEC,OAAO;EACpC,CAAC;EAED9D,MAAM,CAACkH,IAAI,CAACL,MAAM,CAAC;EACnB,OAAOA,MAAM;AAEf;AAOA,SAASC,qBAAqBA,CAC5BjD,EAAyB,EACzBC,OAAqB,EACD;EACpB,IAAMM,UAA8B,GAAG,EAAE;EAEzC,IAAM+C,KAAK,GAAGtD,EAAE,CAACuD,mBAAmB,CAACtD,OAAO,EAAED,EAAE,CAACwD,iBAAiB,CAAC;EAEnE,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGH,KAAK,EAAEG,KAAK,EAAE,EAAE;IAC1C,IAAMC,UAAU,GAAG1D,EAAE,CAAC2D,eAAe,CAAC1D,OAAO,EAAEwD,KAAK,CAAC;IACrD,IAAI,CAACC,UAAU,EAAE;MACf,MAAM,IAAIE,KAAK,CAAC,YAAY,CAAC;IAC/B;IACA,IAAOnE,IAAI,GAA+BiE,UAAU,CAA7CjE,IAAI;MAAQoE,aAAa,GAAUH,UAAU,CAAvCxC,IAAI;MAAiBN,IAAI,GAAI8C,UAAU,CAAlB9C,IAAI;IACtC,IAAMS,QAAQ,GAAGrB,EAAE,CAAC8D,iBAAiB,CAAC7D,OAAO,EAAER,IAAI,CAAC;IAGpD,IAAI4B,QAAQ,IAAI,CAAC,EAAE;MACjB,IAAA0C,oBAAA,GAA6B,IAAAC,8BAAmB,EAACH,aAAa,CAAC;QAAxDI,MAAM,GAAAF,oBAAA,CAANE,MAAM;QAAEC,UAAU,GAAAH,oBAAA,CAAVG,UAAU;MAAuC;MAChE,IAAMnD,QAAwB,GAAG;QAACG,IAAI,EAAE+C,MAAM;QAAErD,IAAI,EAAEA,IAAI,GAAGsD;MAAU,CAAC;MAExE,IAAI,WAAW,CAACvE,IAAI,CAACF,IAAI,CAAC,EAAE;QAC1BsB,QAAQ,CAACQ,OAAO,GAAG,CAAC;MACtB;MACA,IAAM4C,aAAa,GAAG;QAAC9C,QAAQ,EAARA,QAAQ;QAAE5B,IAAI,EAAJA,IAAI;QAAEsB,QAAQ,EAAE,IAAIqD,iBAAQ,CAACrD,QAAQ;MAAC,CAAC;MACxER,UAAU,CAAC7D,IAAI,CAACyH,aAAa,CAAC;IAChC;EACF;EAEA5D,UAAU,CAAC8D,IAAI,CAAC,UAACC,CAAmB,EAAEC,CAAmB;IAAA,OAAKD,CAAC,CAACjD,QAAQ,GAAGkD,CAAC,CAAClD,QAAQ;EAAA,EAAC;EACtF,OAAOd,UAAU;AACnB;AAOA,SAAS6C,YAAYA,CAACpD,EAAyB,EAAEC,OAAqB,EAAoB;EACxF,IAAI,CAAC,IAAAuE,qBAAQ,EAACxE,EAAE,CAAC,EAAE;IACjB,OAAO,EAAE;EACX;EACA,IAAMyE,GAAG,GAAGzE,EAA4B;EAExC,IAAM+C,QAA0B,GAAG,EAAE;EAErC,IAAMO,KAAK,GAAGtD,EAAE,CAACuD,mBAAmB,CAACtD,OAAO,EAAEkB,kBAAE,CAACuD,2BAA2B,CAAC;EAC7E,KAAK,IAAIrD,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGiC,KAAK,EAAEjC,QAAQ,EAAE,EAAE;IACnD,IAAMqC,UAAU,GAAGe,GAAG,CAACE,2BAA2B,CAAC1E,OAAO,EAAEoB,QAAQ,CAAC;IACrE,IAAI,CAACqC,UAAU,EAAE;MACf,MAAM,IAAIE,KAAK,CAAC,YAAY,CAAC;IAC/B;IACA,IAAOnE,IAAI,GAA+BiE,UAAU,CAA7CjE,IAAI;MAAQoE,aAAa,GAAUH,UAAU,CAAvCxC,IAAI;MAAiBN,IAAI,GAAI8C,UAAU,CAAlB9C,IAAI;IACtC,IAAAgE,kBAAA,GAA6B,IAAAC,4BAAiB,EAAChB,aAAa,CAAC;MAAtDI,MAAM,GAAAW,kBAAA,CAANX,MAAM;MAAEC,UAAU,GAAAU,kBAAA,CAAVV,UAAU;IAAqC;IAC9D,IAAMnD,QAAQ,GAAG,IAAIqD,iBAAQ,CAAC;MAAClD,IAAI,EAAE+C,MAAM;MAAErD,IAAI,EAAEA,IAAI,GAAGsD;IAAU,CAAC,CAAC;IACtE,IAAMY,OAAO,GAAG;MAACzD,QAAQ,EAARA,QAAQ;MAAE5B,IAAI,EAAJA,IAAI;MAAEsB,QAAQ,EAARA;IAAQ,CAAC;IAC1CgC,QAAQ,CAACrG,IAAI,CAACoI,OAAO,CAAC;EACxB;EAEA/B,QAAQ,CAACsB,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC;IAAA,OAAKD,CAAC,CAACjD,QAAQ,GAAGkD,CAAC,CAAClD,QAAQ;EAAA,EAAC;EAChD,OAAO0B,QAAQ;AACjB;AAOA,SAASG,mBAAmBA,CAAClD,EAAyB,EAAEC,OAAqB,EAAoB;EAC/F,IAAM2B,QAA0B,GAAG,EAAE;EAErC,IAAMmD,YAAY,GAAG/E,EAAE,CAACuD,mBAAmB,CAACtD,OAAO,EAAEkB,kBAAE,CAAC6D,eAAe,CAAC;EACxE,KAAK,IAAIlI,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiI,YAAY,EAAEjI,CAAC,EAAE,EAAE;IACrC,IAAM4G,UAAU,GAAG1D,EAAE,CAACiF,gBAAgB,CAAChF,OAAO,EAAEnD,CAAC,CAAC;IAClD,IAAI,CAAC4G,UAAU,EAAE;MACf,MAAM,IAAIE,KAAK,CAAC,YAAY,CAAC;IAC/B;IACA,IAAasB,OAAO,GAAgBxB,UAAU,CAAvCjE,IAAI;MAAWmB,IAAI,GAAU8C,UAAU,CAAxB9C,IAAI;MAAEM,IAAI,GAAIwC,UAAU,CAAlBxC,IAAI;IAChC,IAAAiE,iBAAA,GAAwBC,gBAAgB,CAACF,OAAO,CAAC;MAA1CzF,IAAI,GAAA0F,iBAAA,CAAJ1F,IAAI;MAAEzB,OAAO,GAAAmH,iBAAA,CAAPnH,OAAO;IACpB,IAAIqH,aAAa,GAAGrF,EAAE,CAACsF,kBAAkB,CAACrF,OAAO,EAAER,IAAI,CAAC;IACxD,IAAM8F,WAAW,GAAG;MAElBlE,QAAQ,EAAEgE,aAAuB;MACjC5F,IAAI,EAAJA,IAAI;MACJmB,IAAI,EAAJA,IAAI;MACJM,IAAI,EAAJA,IAAI;MACJlD,OAAO,EAAPA;IACF,CAAC;IACD4D,QAAQ,CAAClF,IAAI,CAAC6I,WAAW,CAAC;IAG1B,IAAIA,WAAW,CAAC3E,IAAI,GAAG,CAAC,EAAE;MACxB,KAAK,IAAI4E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,WAAW,CAAC3E,IAAI,EAAE4E,CAAC,EAAE,EAAE;QACzC,IAAMC,WAAW,MAAAC,MAAA,CAAMjG,IAAI,OAAAiG,MAAA,CAAIF,CAAC,MAAG;QAEnCH,aAAa,GAAGrF,EAAE,CAACsF,kBAAkB,CAACrF,OAAO,EAAEwF,WAAW,CAAC;QAE3D,IAAME,uBAAuB,GAAA/I,aAAA,CAAAA,aAAA,KACxB2I,WAAW;UACd9F,IAAI,EAAEgG,WAAW;UACjBpE,QAAQ,EAAEgE;QAAuB,EAClC;QAEDzD,QAAQ,CAAClF,IAAI,CAACiJ,uBAAuB,CAAC;MACxC;IACF;EACF;EACA,OAAO/D,QAAQ;AACjB;AAQA,SAASuB,iBAAiBA,CACxBnD,EAAyB,EACzBC,OAAqB,EACE;EACvB,IAAI,CAAC,IAAAuE,qBAAQ,EAACxE,EAAE,CAAC,EAAE;IACjB,OAAO,EAAE;EACX;EACA,IAAMyE,GAAG,GAAGzE,EAA4B;EAExC,IAAM4F,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,UAAkB,EAAEC,KAAS;IAAA,OACtDrB,GAAG,CAACsB,8BAA8B,CAAC9F,OAAO,EAAE4F,UAAU,EAAEC,KAAK,CAAC;EAAA;EAEhE,IAAMrE,aAAoC,GAAG,EAAE;EAE/C,IAAMuE,UAAU,GAAGvB,GAAG,CAAClB,mBAAmB,CAACtD,OAAO,EAAEkB,kBAAE,CAAC8E,qBAAqB,CAAC;EAC7E,KAAK,IAAIJ,UAAU,GAAG,CAAC,EAAEA,UAAU,GAAGG,UAAU,EAAEH,UAAU,EAAE,EAAE;IAC9D,IAAMK,SAA8B,GAAG;MACrCzG,IAAI,EAAEgF,GAAG,CAAC0B,yBAAyB,CAAClG,OAAO,EAAE4F,UAAU,CAAC,IAAI,EAAE;MAC9DxE,QAAQ,EAAEuE,iBAAiB,CAACC,UAAU,EAAE1E,kBAAE,CAACiF,qBAAqB,CAAC;MACjE9D,UAAU,EAAEsD,iBAAiB,CAACC,UAAU,EAAE1E,kBAAE,CAACkF,uBAAuB,CAAC;MACrElE,MAAM,EAAEyD,iBAAiB,CAACC,UAAU,EAAE1E,kBAAE,CAACmF,yCAAyC,CAAC;MACnFlE,QAAQ,EAAEwD,iBAAiB,CAACC,UAAU,EAAE1E,kBAAE,CAACoF,2CAA2C,CAAC;MACvFxB,YAAY,EAAEa,iBAAiB,CAACC,UAAU,EAAE1E,kBAAE,CAACqF,6BAA6B,CAAC;MAC7E5E,QAAQ,EAAE;IACZ,CAAC;IAED,IAAM6E,cAAc,GAAGb,iBAAiB,CAACC,UAAU,EAAE1E,kBAAE,CAACuF,oCAAoC,CAAC,IAAgB,EAAE;IAE/G,IAAMC,WAAW,GAAGlC,GAAG,CAACmC,iBAAiB,CAAC3G,OAAO,EAAEwG,cAAc,EAAEtF,kBAAE,CAAC0F,YAAY,CAAC;IACnF,IAAMC,kBAAkB,GAAGrC,GAAG,CAACmC,iBAAiB,CAAC3G,OAAO,EAAEwG,cAAc,EAAEtF,kBAAE,CAAC4F,YAAY,CAAC;IAM1F,IAAMC,aAAa,GAAGvC,GAAG,CAACmC,iBAAiB,CAAC3G,OAAO,EAAEwG,cAAc,EAAEtF,kBAAE,CAAC8F,cAAc,CAAC;IACvF,IAAMC,aAAa,GAAGzC,GAAG,CAACmC,iBAAiB,CAAC3G,OAAO,EAAEwG,cAAc,EAAEtF,kBAAE,CAACgG,oBAAoB,CAAC;IAO7F,KAAK,IAAIrK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoJ,SAAS,CAACnB,YAAY,EAAE,EAAEjI,CAAC,EAAE;MAC/C,IAAM4G,UAAU,GAAGe,GAAG,CAACQ,gBAAgB,CAAChF,OAAO,EAAEwG,cAAc,CAAC3J,CAAC,CAAC,CAAC;MACnE,IAAI,CAAC4G,UAAU,EAAE;QACf,MAAM,IAAIE,KAAK,CAAC,YAAY,CAAC;MAC/B;MAEAsC,SAAS,CAACtE,QAAQ,CAAClF,IAAI,CAAC;QACtB+C,IAAI,EAAEiE,UAAU,CAACjE,IAAI;QACrBuB,MAAM,EAAE,IAAA6D,4BAAiB,EAAC8B,WAAW,CAAC7J,CAAC,CAAC,CAAC,CAACkE,MAAM;QAChDE,IAAI,EAAEyF,WAAW,CAAC7J,CAAC,CAAC;QACpBmF,WAAW,EAAE6E,kBAAkB,CAAChK,CAAC,CAAC;QAClCiF,UAAU,EAAEiF,aAAa,CAAClK,CAAC,CAAC;QAC5BkF,UAAU,EAAEkF,aAAa,CAACpK,CAAC;MAG7B,CAAC,CAAC;IACJ;IAEA2E,aAAa,CAAC/E,IAAI,CAACwJ,SAAS,CAAC;EAC/B;EAEAzE,aAAa,CAAC4C,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC;IAAA,OAAKD,CAAC,CAACjD,QAAQ,GAAGkD,CAAC,CAAClD,QAAQ;EAAA,EAAC;EACrD,OAAOI,aAAa;AACtB;AAEA,IAAM2F,0BAML,IAAAtL,qBAAA,WAAAsB,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EACEqF,kBAAE,CAACkG,UAAU,EAAG,CAAC,IAAI,EAAE,OAAO,CAAC,OAAAjK,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EAC/BqF,kBAAE,CAACmG,YAAY,EAAG,CAAC,MAAM,EAAE,OAAO,CAAC,OAAAlK,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EACnCqF,kBAAE,CAACoG,UAAU,EAAG,CAAC,IAAI,EAAE,OAAO,CAAC,OAAAnK,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EAC/BqF,kBAAE,CAACqG,iBAAiB,EAAG,CAAC,IAAI,EAAE,OAAO,CAAC,OAAApK,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EACtCqF,kBAAE,CAACsG,gBAAgB,EAAG,CAAC,UAAU,EAAE,OAAO,CAAC,OAAArK,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EAC3CqF,kBAAE,CAACuG,uBAAuB,EAAG,CAAC,UAAU,EAAE,OAAO,CAAC,OAAAtK,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EAClDqF,kBAAE,CAACwG,mBAAmB,EAAG,CAAC,MAAM,EAAE,OAAO,CAAC,OAAAvK,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EAC1CqF,kBAAE,CAACyG,cAAc,EAAG,CAAC,IAAI,EAAE,MAAM,CAAC,OAAAxK,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EAClCqF,kBAAE,CAAC0G,cAAc,EAAG,CAAC,IAAI,EAAE,MAAM,CAAC,OAAAzK,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EAClCqF,kBAAE,CAAC2G,gBAAgB,EAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAA1K,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EACtCqF,kBAAE,CAAC4G,oBAAoB,EAAG,CAAC,UAAU,EAAE,MAAM,CAAC,OAAA3K,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EAC9CqF,kBAAE,CAAC6G,uBAAuB,EAAG,CAAC,IAAI,EAAE,MAAM,CAAC,OAAA5K,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EAC3CqF,kBAAE,CAAC8G,uBAAuB,EAAG,CAAC,IAAI,EAAE,MAAM,CAAC,OAAA7K,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EAC3CqF,kBAAE,CAAC+G,yBAAyB,EAAG,CAAC,MAAM,EAAE,MAAM,CAAC,OAAA9K,gBAAA,CAAAC,OAAA,EAAAvB,qBAAA,EAC/CqF,kBAAE,CAACgH,6BAA6B,EAAG,CAAC,UAAU,EAAE,MAAM,CAAC,GAAArM,qBAAA,CACzD;AAOD,SAAS8G,cAAcA,CAAC1B,IAAQ,EAAe;EAC7C,IAAIkH,OAAO,GAAGhB,0BAA0B,CAAClG,IAAI,CAAC;EAC9C,IAAI,CAACkH,OAAO,EAAE;IACZ,MAAM,IAAIxE,KAAK,CAAC,SAAS,CAAC;EAC5B;EACA,IAAAyE,QAAA,OAAAC,eAAA,CAAAjL,OAAA,EAAoC+K,OAAO;IAApCvF,aAAa,GAAAwF,QAAA;IAAEvF,UAAU,GAAAuF,QAAA;EAChC,OAAO;IAACxF,aAAa,EAAbA,aAAa;IAAEC,UAAU,EAAVA;EAAU,CAAC;AACpC;AAIA,SAASsC,gBAAgBA,CAAC3F,IAAY,EAAoD;EAExF,IAAIA,IAAI,CAACA,IAAI,CAACzC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IACjC,OAAO;MACLyC,IAAI,EAAJA,IAAI;MACJzC,MAAM,EAAE,CAAC;MACTgB,OAAO,EAAE;IACX,CAAC;EACH;EAGA,IAAMuK,mBAAmB,GAAG,sBAAsB;EAClD,IAAMC,OAAO,GAAG/I,IAAI,CAACgJ,KAAK,CAACF,mBAAmB,CAAC;EAC/C,IAAI,CAACC,OAAO,IAAIA,OAAO,CAACxL,MAAM,GAAG,CAAC,EAAE;IAClC,MAAM,IAAI4G,KAAK,sCAAA8B,MAAA,CAAsCjG,IAAI,EAAG;EAC9D;EAEA,OAAO;IACLA,IAAI,EAAE+I,OAAO,CAAC,CAAC,CAAC;IAChBxL,MAAM,EAAEwL,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC1BxK,OAAO,EAAE0K,OAAO,CAACF,OAAO,CAAC,CAAC,CAAC;EAC7B,CAAC;AACH"}
@@ -1,57 +1,40 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.parseShaderCompilerLog = parseShaderCompilerLog;
9
-
10
8
  var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
11
-
12
9
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
13
-
14
10
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
-
16
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
17
-
11
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
18
12
  var MESSAGE_TYPES = ['warning', 'error', 'info'];
19
-
20
13
  function parseShaderCompilerLog(errLog) {
21
14
  var lines = errLog.split(/\r?\n/);
22
15
  var messages = [];
23
-
24
16
  var _iterator = _createForOfIteratorHelper(lines),
25
- _step;
26
-
17
+ _step;
27
18
  try {
28
19
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
29
20
  var line = _step.value;
30
-
31
21
  if (line.length <= 1) {
32
22
  continue;
33
23
  }
34
-
35
24
  var segments = line.split(':');
36
-
37
25
  var _segments = (0, _toArray2.default)(segments),
38
- messageType = _segments[0],
39
- linePosition = _segments[1],
40
- lineNumber = _segments[2],
41
- rest = _segments.slice(3);
42
-
26
+ messageType = _segments[0],
27
+ linePosition = _segments[1],
28
+ lineNumber = _segments[2],
29
+ rest = _segments.slice(3);
43
30
  var lineNum = parseInt(lineNumber, 10);
44
-
45
31
  if (isNaN(lineNum)) {
46
32
  lineNum = 0;
47
33
  }
48
-
49
34
  var linePos = parseInt(linePosition, 10);
50
-
51
35
  if (isNaN(linePos)) {
52
36
  linePos = 0;
53
37
  }
54
-
55
38
  var lowerCaseType = messageType.toLowerCase();
56
39
  var type = MESSAGE_TYPES.includes(lowerCaseType) ? lowerCaseType : 'info';
57
40
  messages.push({
@@ -66,7 +49,6 @@ function parseShaderCompilerLog(errLog) {
66
49
  } finally {
67
50
  _iterator.f();
68
51
  }
69
-
70
52
  return messages;
71
53
  }
72
54
  //# sourceMappingURL=parse-shader-compiler-log.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapter/helpers/parse-shader-compiler-log.ts"],"names":["MESSAGE_TYPES","parseShaderCompilerLog","errLog","lines","split","messages","line","length","segments","messageType","linePosition","lineNumber","rest","lineNum","parseInt","isNaN","linePos","lowerCaseType","toLowerCase","type","includes","push","message","join","trim"],"mappings":";;;;;;;;;;;;;;;;;AAGA,IAAMA,aAAa,GAAG,CAAC,SAAD,EAAY,OAAZ,EAAqB,MAArB,CAAtB;;AAOO,SAASC,sBAAT,CAAgCC,MAAhC,EAA6E;AAElF,MAAMC,KAAK,GAAGD,MAAM,CAACE,KAAP,CAAa,OAAb,CAAd;AAEA,MAAMC,QAA2B,GAAG,EAApC;;AAJkF,6CAM/DF,KAN+D;AAAA;;AAAA;AAMlF,wDAA0B;AAAA,UAAfG,IAAe;;AACxB,UAAIA,IAAI,CAACC,MAAL,IAAe,CAAnB,EAAsB;AACpB;AACD;;AAED,UAAMC,QAAkB,GAAGF,IAAI,CAACF,KAAL,CAAW,GAAX,CAA3B;;AACA,6CAAyDI,QAAzD;AAAA,UAAOC,WAAP;AAAA,UAAoBC,YAApB;AAAA,UAAkCC,UAAlC;AAAA,UAAiDC,IAAjD;;AAEA,UAAIC,OAAO,GAAGC,QAAQ,CAACH,UAAD,EAAa,EAAb,CAAtB;;AACA,UAAII,KAAK,CAACF,OAAD,CAAT,EAAoB;AAClBA,QAAAA,OAAO,GAAG,CAAV;AACD;;AAED,UAAIG,OAAO,GAAGF,QAAQ,CAACJ,YAAD,EAAe,EAAf,CAAtB;;AACA,UAAIK,KAAK,CAACC,OAAD,CAAT,EAAoB;AAClBA,QAAAA,OAAO,GAAG,CAAV;AACD;;AAGD,UAAMC,aAAa,GAAGR,WAAW,CAACS,WAAZ,EAAtB;AACA,UAAMC,IAAI,GAAInB,aAAa,CAACoB,QAAd,CAAuBH,aAAvB,IAAwCA,aAAxC,GAAwD,MAAtE;AAEAZ,MAAAA,QAAQ,CAACgB,IAAT,CAAc;AACZC,QAAAA,OAAO,EAAEV,IAAI,CAACW,IAAL,CAAU,GAAV,EAAeC,IAAf,EADG;AAEZL,QAAAA,IAAI,EAAJA,IAFY;AAGZN,QAAAA,OAAO,EAAPA,OAHY;AAIZG,QAAAA,OAAO,EAAPA;AAJY,OAAd;AAMD;AAlCiF;AAAA;AAAA;AAAA;AAAA;;AAoClF,SAAOX,QAAP;AACD","sourcesContent":["// luma.gl, MIT license\nimport type {CompilerMessage} from '@luma.gl/shadertools';\n\nconst MESSAGE_TYPES = ['warning', 'error', 'info'];\n\n/**\n * Parse a WebGL-format GLSL compilation log into an array of WebGPU style message records.\n * This follows documented WebGL conventions for compilation logs.\n * Based on https://github.com/wwwtyro/gl-format-compiler-error (public domain)\n */\nexport function parseShaderCompilerLog(errLog: string) : readonly CompilerMessage[] {\n // Parse the error - note: browser and driver dependent\n const lines = errLog.split(/\\r?\\n/);\n\n const messages: CompilerMessage[] = [];\n\n for (const line of lines) {\n if (line.length <= 1) {\n continue;\n }\n\n const segments: string[] = line.split(':');\n const [messageType, linePosition, lineNumber, ...rest] = segments;\n\n let lineNum = parseInt(lineNumber, 10);\n if (isNaN(lineNum)) {\n lineNum = 0;\n }\n\n let linePos = parseInt(linePosition, 10);\n if (isNaN(linePos)) {\n linePos = 0;\n }\n\n // Ensure supported type\n const lowerCaseType = messageType.toLowerCase();\n const type = (MESSAGE_TYPES.includes(lowerCaseType) ? lowerCaseType : 'info') as 'warning' | 'error' | 'info';\n\n messages.push({\n message: rest.join(':').trim(),\n type,\n lineNum,\n linePos // TODO\n })\n }\n\n return messages;\n}\n"],"file":"parse-shader-compiler-log.js"}
1
+ {"version":3,"file":"parse-shader-compiler-log.js","names":["MESSAGE_TYPES","parseShaderCompilerLog","errLog","lines","split","messages","_iterator","_createForOfIteratorHelper","_step","s","n","done","line","value","length","segments","_segments","_toArray2","default","messageType","linePosition","lineNumber","rest","slice","lineNum","parseInt","isNaN","linePos","lowerCaseType","toLowerCase","type","includes","push","message","join","trim","err","e","f"],"sources":["../../../../src/adapter/helpers/parse-shader-compiler-log.ts"],"sourcesContent":["// luma.gl, MIT license\nimport type {CompilerMessage} from '@luma.gl/api';\n\nconst MESSAGE_TYPES = ['warning', 'error', 'info'];\n\n/**\n * Parse a WebGL-format GLSL compilation log into an array of WebGPU style message records.\n * This follows documented WebGL conventions for compilation logs.\n * Based on https://github.com/wwwtyro/gl-format-compiler-error (public domain)\n */\nexport function parseShaderCompilerLog(errLog: string) : readonly CompilerMessage[] {\n // Parse the error - note: browser and driver dependent\n const lines = errLog.split(/\\r?\\n/);\n\n const messages: CompilerMessage[] = [];\n\n for (const line of lines) {\n if (line.length <= 1) {\n continue;\n }\n\n const segments: string[] = line.split(':');\n const [messageType, linePosition, lineNumber, ...rest] = segments;\n\n let lineNum = parseInt(lineNumber, 10);\n if (isNaN(lineNum)) {\n lineNum = 0;\n }\n\n let linePos = parseInt(linePosition, 10);\n if (isNaN(linePos)) {\n linePos = 0;\n }\n\n // Ensure supported type\n const lowerCaseType = messageType.toLowerCase();\n const type = (MESSAGE_TYPES.includes(lowerCaseType) ? lowerCaseType : 'info') as 'warning' | 'error' | 'info';\n\n messages.push({\n message: rest.join(':').trim(),\n type,\n lineNum,\n linePos // TODO\n })\n }\n\n return messages;\n}\n"],"mappings":";;;;;;;;;;;AAGA,IAAMA,aAAa,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC;AAO3C,SAASC,sBAAsBA,CAACC,MAAc,EAA+B;EAElF,IAAMC,KAAK,GAAGD,MAAM,CAACE,KAAK,CAAC,OAAO,CAAC;EAEnC,IAAMC,QAA2B,GAAG,EAAE;EAAC,IAAAC,SAAA,GAAAC,0BAAA,CAEpBJ,KAAK;IAAAK,KAAA;EAAA;IAAxB,KAAAF,SAAA,CAAAG,CAAA,MAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,IAAAC,IAAA,GAA0B;MAAA,IAAfC,IAAI,GAAAJ,KAAA,CAAAK,KAAA;MACb,IAAID,IAAI,CAACE,MAAM,IAAI,CAAC,EAAE;QACpB;MACF;MAEA,IAAMC,QAAkB,GAAGH,IAAI,CAACR,KAAK,CAAC,GAAG,CAAC;MAC1C,IAAAY,SAAA,OAAAC,SAAA,CAAAC,OAAA,EAAyDH,QAAQ;QAA1DI,WAAW,GAAAH,SAAA;QAAEI,YAAY,GAAAJ,SAAA;QAAEK,UAAU,GAAAL,SAAA;QAAKM,IAAI,GAAAN,SAAA,CAAAO,KAAA;MAErD,IAAIC,OAAO,GAAGC,QAAQ,CAACJ,UAAU,EAAE,EAAE,CAAC;MACtC,IAAIK,KAAK,CAACF,OAAO,CAAC,EAAE;QAClBA,OAAO,GAAG,CAAC;MACb;MAEA,IAAIG,OAAO,GAAGF,QAAQ,CAACL,YAAY,EAAE,EAAE,CAAC;MACxC,IAAIM,KAAK,CAACC,OAAO,CAAC,EAAE;QAClBA,OAAO,GAAG,CAAC;MACb;MAGA,IAAMC,aAAa,GAAGT,WAAW,CAACU,WAAW,EAAE;MAC/C,IAAMC,IAAI,GAAI9B,aAAa,CAAC+B,QAAQ,CAACH,aAAa,CAAC,GAAGA,aAAa,GAAG,MAAuC;MAE7GvB,QAAQ,CAAC2B,IAAI,CAAC;QACZC,OAAO,EAAEX,IAAI,CAACY,IAAI,CAAC,GAAG,CAAC,CAACC,IAAI,EAAE;QAC9BL,IAAI,EAAJA,IAAI;QACJN,OAAO,EAAPA,OAAO;QACPG,OAAO,EAAPA;MACF,CAAC,CAAC;IACJ;EAAC,SAAAS,GAAA;IAAA9B,SAAA,CAAA+B,CAAA,CAAAD,GAAA;EAAA;IAAA9B,SAAA,CAAAgC,CAAA;EAAA;EAED,OAAOjC,QAAQ;AACjB"}