@luma.gl/webgl 8.6.0-alpha.4 → 9.0.0-alpha.10

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 (783) hide show
  1. package/README.md +3 -67
  2. package/dist/adapter/converters/device-parameters.d.ts +27 -0
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -0
  4. package/dist/adapter/converters/{set-device-parameters.js → device-parameters.js} +50 -6
  5. package/dist/adapter/converters/device-parameters.js.map +1 -0
  6. package/dist/{classes → adapter/converters}/renderbuffer-formats.d.ts +0 -0
  7. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -0
  8. package/dist/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
  9. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
  10. package/dist/adapter/converters/sampler-parameters.d.ts +19 -0
  11. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -0
  12. package/dist/adapter/converters/sampler-parameters.js +227 -0
  13. package/dist/adapter/converters/sampler-parameters.js.map +1 -0
  14. package/dist/adapter/converters/texture-formats.d.ts +93 -0
  15. package/dist/adapter/converters/texture-formats.d.ts.map +1 -0
  16. package/dist/adapter/converters/texture-formats.js +954 -0
  17. package/dist/adapter/converters/texture-formats.js.map +1 -0
  18. package/dist/adapter/converters/vertex-formats.d.ts +4 -0
  19. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -0
  20. package/dist/adapter/converters/vertex-formats.js +35 -0
  21. package/dist/adapter/converters/vertex-formats.js.map +1 -0
  22. package/dist/adapter/device-helpers/device-features.d.ts +3 -6
  23. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  24. package/dist/adapter/device-helpers/device-features.js +39 -50
  25. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  26. package/dist/adapter/device-helpers/device-limits.d.ts +1 -0
  27. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  28. package/dist/adapter/device-helpers/device-limits.js +1 -0
  29. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  30. package/dist/adapter/device-helpers/get-device-info.js +7 -7
  31. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  32. package/dist/adapter/helpers/attribute-utils.d.ts +11 -0
  33. package/dist/adapter/helpers/attribute-utils.d.ts.map +1 -0
  34. package/dist/adapter/helpers/attribute-utils.js +81 -0
  35. package/dist/adapter/helpers/attribute-utils.js.map +1 -0
  36. package/dist/adapter/helpers/get-shader-layout.d.ts +55 -0
  37. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -0
  38. package/dist/adapter/helpers/get-shader-layout.js +330 -0
  39. package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
  40. package/dist/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.d.ts +0 -0
  41. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -0
  42. package/dist/{esm/webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
  43. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  44. package/dist/adapter/helpers/set-uniform.d.ts +4 -0
  45. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -0
  46. package/dist/adapter/helpers/set-uniform.js +115 -0
  47. package/dist/adapter/helpers/set-uniform.js.map +1 -0
  48. package/dist/adapter/helpers/uniforms.d.ts +26 -0
  49. package/dist/adapter/helpers/uniforms.d.ts.map +1 -0
  50. package/dist/adapter/helpers/uniforms.js +99 -0
  51. package/dist/adapter/helpers/uniforms.js.map +1 -0
  52. package/dist/adapter/objects/constants-to-keys.d.ts +5 -0
  53. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -0
  54. package/dist/{esm/webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
  55. package/dist/adapter/objects/constants-to-keys.js.map +1 -0
  56. package/dist/adapter/objects/webgl-renderbuffer.d.ts +40 -0
  57. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -0
  58. package/dist/{esm/classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +38 -72
  59. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
  60. package/dist/{classes → adapter/objects}/webgl-resource.d.ts +15 -14
  61. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -0
  62. package/dist/{classes → adapter/objects}/webgl-resource.js +7 -3
  63. package/dist/adapter/objects/webgl-resource.js.map +1 -0
  64. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +27 -0
  65. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -0
  66. package/dist/adapter/objects/webgl-vertex-array-object.js +84 -0
  67. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  68. package/dist/adapter/resources/webgl-buffer.d.ts +27 -0
  69. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -0
  70. package/dist/adapter/resources/webgl-buffer.js +164 -0
  71. package/dist/adapter/resources/webgl-buffer.js.map +1 -0
  72. package/dist/adapter/resources/webgl-command-buffer.d.ts +25 -0
  73. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -0
  74. package/dist/adapter/resources/webgl-command-buffer.js +65 -0
  75. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
  76. package/dist/adapter/resources/webgl-command-encoder.d.ts +18 -0
  77. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -0
  78. package/dist/adapter/resources/webgl-command-encoder.js +53 -0
  79. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
  80. package/dist/adapter/resources/webgl-external-texture.d.ts +1 -0
  81. package/dist/adapter/resources/webgl-external-texture.d.ts.map +1 -0
  82. package/dist/adapter/resources/webgl-external-texture.js +2 -0
  83. package/dist/{es5/helpers/program-bindings.js.map → adapter/resources/webgl-external-texture.js.map} +1 -1
  84. package/dist/adapter/resources/webgl-framebuffer.d.ts +41 -0
  85. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -0
  86. package/dist/adapter/resources/webgl-framebuffer.js +267 -0
  87. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
  88. package/dist/adapter/resources/webgl-render-pass.d.ts +11 -0
  89. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -0
  90. package/dist/adapter/resources/webgl-render-pass.js +21 -0
  91. package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
  92. package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -0
  93. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -0
  94. package/dist/adapter/resources/webgl-render-pipeline.js +428 -0
  95. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
  96. package/dist/adapter/resources/webgl-sampler.d.ts +20 -0
  97. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -0
  98. package/dist/adapter/resources/webgl-sampler.js +50 -0
  99. package/dist/adapter/resources/webgl-sampler.js.map +1 -0
  100. package/dist/adapter/{webgl-shader.d.ts → resources/webgl-shader.d.ts} +3 -6
  101. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -0
  102. package/dist/{esm/adapter → adapter/resources}/webgl-shader.js +17 -23
  103. package/dist/adapter/resources/webgl-shader.js.map +1 -0
  104. package/dist/adapter/resources/webgl-texture.d.ts +193 -0
  105. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -0
  106. package/dist/{classes/texture.js → adapter/resources/webgl-texture.js} +280 -232
  107. package/dist/adapter/resources/webgl-texture.js.map +1 -0
  108. package/dist/adapter/webgl-canvas-context.d.ts +36 -0
  109. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -0
  110. package/dist/adapter/webgl-canvas-context.js +54 -0
  111. package/dist/adapter/webgl-canvas-context.js.map +1 -0
  112. package/dist/adapter/webgl-device.d.ts +63 -76
  113. package/dist/adapter/webgl-device.d.ts.map +1 -1
  114. package/dist/adapter/webgl-device.js +244 -115
  115. package/dist/adapter/webgl-device.js.map +1 -1
  116. package/dist/classic/accessor.d.ts +32 -0
  117. package/dist/classic/accessor.d.ts.map +1 -0
  118. package/dist/{classes → classic}/accessor.js +33 -1
  119. package/dist/classic/accessor.js.map +1 -0
  120. package/dist/{classes/webgl-buffer.d.ts → classic/buffer.d.ts} +28 -33
  121. package/dist/classic/buffer.d.ts.map +1 -0
  122. package/dist/{esm/classes/webgl-buffer.js → classic/buffer.js} +67 -57
  123. package/dist/classic/buffer.js.map +1 -0
  124. package/dist/{webgl-utils → classic}/typed-array-utils.d.ts +3 -2
  125. package/dist/classic/typed-array-utils.d.ts.map +1 -0
  126. package/dist/{esm/webgl-utils → classic}/typed-array-utils.js +0 -0
  127. package/dist/classic/typed-array-utils.js.map +1 -0
  128. package/dist/context/context/context-state.d.ts.map +1 -1
  129. package/dist/context/context/context-state.js +1 -1
  130. package/dist/context/context/context-state.js.map +1 -1
  131. package/dist/context/context/{create-context.d.ts → create-browser-context.d.ts} +2 -1
  132. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  133. package/dist/{esm/context/context/create-context.js → context/context/create-browser-context.js} +27 -3
  134. package/dist/context/context/create-browser-context.js.map +1 -0
  135. package/dist/context/context/create-headless-context.d.ts +9 -0
  136. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  137. package/dist/context/context/create-headless-context.js +43 -0
  138. package/dist/context/context/create-headless-context.js.map +1 -0
  139. package/dist/context/context/device-pixels.d.ts +1 -1
  140. package/dist/context/context/device-pixels.d.ts.map +1 -1
  141. package/dist/context/context/device-pixels.js +13 -8
  142. package/dist/context/context/device-pixels.js.map +1 -1
  143. package/dist/context/debug/spector.d.ts +18 -0
  144. package/dist/context/debug/spector.d.ts.map +1 -0
  145. package/dist/context/debug/spector.js +76 -0
  146. package/dist/context/debug/spector.js.map +1 -0
  147. package/dist/context/debug/webgl-developer-tools.d.ts +19 -0
  148. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -0
  149. package/dist/context/debug/webgl-developer-tools.js +121 -0
  150. package/dist/context/debug/webgl-developer-tools.js.map +1 -0
  151. package/dist/context/parameters/unified-parameter-api.d.ts +9 -7
  152. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  153. package/dist/context/parameters/unified-parameter-api.js +9 -8
  154. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  155. package/dist/context/parameters/webgl-parameter-tables.d.ts +40 -36
  156. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  157. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  158. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  159. package/dist/context/polyfill/polyfill-context.js +3 -3
  160. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  161. package/dist/context/polyfill/polyfill-table.d.ts +1 -1
  162. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  163. package/dist/context/polyfill/polyfill-table.js +1 -1
  164. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  165. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  166. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  167. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  168. package/dist/context/state-tracker/track-context-state.js +26 -12
  169. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  170. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  171. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  172. package/dist/context/state-tracker/with-parameters.js +6 -2
  173. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  174. package/dist/es5/adapter/converters/{set-device-parameters.js → device-parameters.js} +53 -6
  175. package/dist/es5/adapter/converters/device-parameters.js.map +1 -0
  176. package/dist/es5/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
  177. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -0
  178. package/dist/es5/adapter/converters/sampler-parameters.js +245 -0
  179. package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -0
  180. package/dist/es5/adapter/converters/texture-formats.js +1031 -0
  181. package/dist/es5/adapter/converters/texture-formats.js.map +1 -0
  182. package/dist/es5/adapter/converters/vertex-formats.js +45 -0
  183. package/dist/es5/adapter/converters/vertex-formats.js.map +1 -0
  184. package/dist/es5/adapter/device-helpers/device-features.js +61 -58
  185. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
  186. package/dist/es5/adapter/device-helpers/device-limits.js +1 -1
  187. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
  188. package/dist/es5/adapter/device-helpers/get-device-info.js +7 -7
  189. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
  190. package/dist/es5/adapter/helpers/attribute-utils.js +91 -0
  191. package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -0
  192. package/dist/es5/{helpers/get-program-bindings.js → adapter/helpers/get-shader-layout.js} +211 -94
  193. package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -0
  194. package/dist/es5/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
  195. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  196. package/dist/es5/adapter/helpers/set-uniform.js +125 -0
  197. package/dist/es5/adapter/helpers/set-uniform.js.map +1 -0
  198. package/dist/es5/adapter/helpers/uniforms.js +112 -0
  199. package/dist/es5/adapter/helpers/uniforms.js.map +1 -0
  200. package/dist/es5/{webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
  201. package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -0
  202. package/dist/es5/{classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +48 -98
  203. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -0
  204. package/dist/es5/{classes → adapter/objects}/webgl-resource.js +8 -3
  205. package/dist/es5/adapter/objects/webgl-resource.js.map +1 -0
  206. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +137 -0
  207. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  208. package/dist/es5/adapter/resources/webgl-buffer.js +243 -0
  209. package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -0
  210. package/dist/es5/adapter/resources/webgl-command-buffer.js +96 -0
  211. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -0
  212. package/dist/es5/adapter/resources/webgl-command-encoder.js +98 -0
  213. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -0
  214. package/dist/es5/adapter/resources/webgl-external-texture.js +2 -0
  215. package/dist/{esm/helpers/program-bindings.js.map → es5/adapter/resources/webgl-external-texture.js.map} +1 -1
  216. package/dist/es5/adapter/resources/webgl-framebuffer.js +346 -0
  217. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -0
  218. package/dist/es5/{classes/texture-2d.js → adapter/resources/webgl-render-pass.js} +26 -45
  219. package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -0
  220. package/dist/es5/adapter/resources/webgl-render-pipeline.js +530 -0
  221. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -0
  222. package/dist/es5/adapter/resources/webgl-sampler.js +96 -0
  223. package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -0
  224. package/dist/es5/adapter/{webgl-shader.js → resources/webgl-shader.js} +16 -21
  225. package/dist/es5/adapter/resources/webgl-shader.js.map +1 -0
  226. package/dist/es5/{classes/texture.js → adapter/resources/webgl-texture.js} +374 -298
  227. package/dist/es5/adapter/resources/webgl-texture.js.map +1 -0
  228. package/dist/es5/adapter/webgl-canvas-context.js +97 -0
  229. package/dist/es5/adapter/webgl-canvas-context.js.map +1 -0
  230. package/dist/es5/adapter/webgl-device.js +316 -132
  231. package/dist/es5/adapter/webgl-device.js.map +1 -1
  232. package/dist/es5/{classes → classic}/accessor.js +25 -1
  233. package/dist/es5/classic/accessor.js.map +1 -0
  234. package/dist/es5/{classes/webgl-buffer.js → classic/buffer.js} +88 -72
  235. package/dist/es5/classic/buffer.js.map +1 -0
  236. package/dist/es5/{webgl-utils → classic}/typed-array-utils.js +0 -0
  237. package/dist/es5/classic/typed-array-utils.js.map +1 -0
  238. package/dist/es5/context/context/context-state.js +1 -1
  239. package/dist/es5/context/context/context-state.js.map +1 -1
  240. package/dist/es5/context/context/{create-context.js → create-browser-context.js} +29 -3
  241. package/dist/es5/context/context/create-browser-context.js.map +1 -0
  242. package/dist/es5/context/context/create-headless-context.js +60 -0
  243. package/dist/es5/context/context/create-headless-context.js.map +1 -0
  244. package/dist/es5/context/context/device-pixels.js +14 -8
  245. package/dist/es5/context/context/device-pixels.js.map +1 -1
  246. package/dist/es5/context/debug/spector.js +133 -0
  247. package/dist/es5/context/debug/spector.js.map +1 -0
  248. package/dist/es5/context/debug/webgl-developer-tools.js +198 -0
  249. package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -0
  250. package/dist/es5/context/parameters/unified-parameter-api.js +15 -9
  251. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
  252. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
  253. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
  254. package/dist/es5/context/polyfill/polyfill-context.js +3 -3
  255. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
  256. package/dist/es5/context/polyfill/polyfill-table.js +1 -1
  257. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
  258. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
  259. package/dist/es5/context/state-tracker/track-context-state.js +39 -24
  260. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
  261. package/dist/es5/context/state-tracker/with-parameters.js +8 -2
  262. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
  263. package/dist/es5/index.js +72 -300
  264. package/dist/es5/index.js.map +1 -1
  265. package/dist/es5/init.js +1 -41
  266. package/dist/es5/init.js.map +1 -1
  267. package/dist/es5/{context/parameters/webgl-parameters.js → types/webgl.js} +1 -1
  268. package/dist/es5/types/webgl.js.map +1 -0
  269. package/dist/esm/adapter/converters/{set-device-parameters.js → device-parameters.js} +50 -6
  270. package/dist/esm/adapter/converters/device-parameters.js.map +1 -0
  271. package/dist/esm/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
  272. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -0
  273. package/dist/esm/adapter/converters/sampler-parameters.js +227 -0
  274. package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -0
  275. package/dist/esm/adapter/converters/texture-formats.js +954 -0
  276. package/dist/esm/adapter/converters/texture-formats.js.map +1 -0
  277. package/dist/esm/adapter/converters/vertex-formats.js +35 -0
  278. package/dist/esm/adapter/converters/vertex-formats.js.map +1 -0
  279. package/dist/esm/adapter/device-helpers/device-features.js +39 -50
  280. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
  281. package/dist/esm/adapter/device-helpers/device-limits.js +1 -0
  282. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
  283. package/dist/esm/adapter/device-helpers/get-device-info.js +7 -7
  284. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
  285. package/dist/esm/adapter/helpers/attribute-utils.js +81 -0
  286. package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -0
  287. package/dist/esm/adapter/helpers/get-shader-layout.js +330 -0
  288. package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -0
  289. package/dist/{webgl-utils → esm/adapter/helpers}/parse-shader-compiler-log.js +0 -0
  290. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  291. package/dist/esm/adapter/helpers/set-uniform.js +115 -0
  292. package/dist/esm/adapter/helpers/set-uniform.js.map +1 -0
  293. package/dist/esm/adapter/helpers/uniforms.js +99 -0
  294. package/dist/esm/adapter/helpers/uniforms.js.map +1 -0
  295. package/dist/{webgl-utils → esm/adapter/objects}/constants-to-keys.js +1 -0
  296. package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -0
  297. package/dist/{classes/renderbuffer.js → esm/adapter/objects/webgl-renderbuffer.js} +38 -72
  298. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -0
  299. package/dist/esm/{classes → adapter/objects}/webgl-resource.js +7 -3
  300. package/dist/esm/adapter/objects/webgl-resource.js.map +1 -0
  301. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +84 -0
  302. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  303. package/dist/esm/adapter/resources/webgl-buffer.js +164 -0
  304. package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -0
  305. package/dist/esm/adapter/resources/webgl-command-buffer.js +65 -0
  306. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -0
  307. package/dist/esm/adapter/resources/webgl-command-encoder.js +53 -0
  308. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -0
  309. package/dist/esm/adapter/resources/webgl-external-texture.js +2 -0
  310. package/dist/{helpers/program-bindings.js.map → esm/adapter/resources/webgl-external-texture.js.map} +1 -1
  311. package/dist/esm/adapter/resources/webgl-framebuffer.js +267 -0
  312. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -0
  313. package/dist/esm/adapter/resources/webgl-render-pass.js +21 -0
  314. package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -0
  315. package/dist/esm/adapter/resources/webgl-render-pipeline.js +428 -0
  316. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -0
  317. package/dist/esm/adapter/resources/webgl-sampler.js +50 -0
  318. package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -0
  319. package/dist/{adapter → esm/adapter/resources}/webgl-shader.js +17 -23
  320. package/dist/esm/adapter/resources/webgl-shader.js.map +1 -0
  321. package/dist/esm/{classes/texture.js → adapter/resources/webgl-texture.js} +280 -232
  322. package/dist/esm/adapter/resources/webgl-texture.js.map +1 -0
  323. package/dist/esm/adapter/webgl-canvas-context.js +54 -0
  324. package/dist/esm/adapter/webgl-canvas-context.js.map +1 -0
  325. package/dist/esm/adapter/webgl-device.js +244 -115
  326. package/dist/esm/adapter/webgl-device.js.map +1 -1
  327. package/dist/esm/{classes → classic}/accessor.js +33 -1
  328. package/dist/esm/classic/accessor.js.map +1 -0
  329. package/dist/{classes/webgl-buffer.js → esm/classic/buffer.js} +67 -57
  330. package/dist/esm/classic/buffer.js.map +1 -0
  331. package/dist/{webgl-utils → esm/classic}/typed-array-utils.js +0 -0
  332. package/dist/esm/classic/typed-array-utils.js.map +1 -0
  333. package/dist/esm/context/context/context-state.js +1 -1
  334. package/dist/esm/context/context/context-state.js.map +1 -1
  335. package/dist/{context/context/create-context.js → esm/context/context/create-browser-context.js} +27 -3
  336. package/dist/esm/context/context/create-browser-context.js.map +1 -0
  337. package/dist/esm/context/context/create-headless-context.js +43 -0
  338. package/dist/esm/context/context/create-headless-context.js.map +1 -0
  339. package/dist/esm/context/context/device-pixels.js +13 -8
  340. package/dist/esm/context/context/device-pixels.js.map +1 -1
  341. package/dist/esm/context/debug/spector.js +76 -0
  342. package/dist/esm/context/debug/spector.js.map +1 -0
  343. package/dist/esm/context/debug/webgl-developer-tools.js +121 -0
  344. package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -0
  345. package/dist/esm/context/parameters/unified-parameter-api.js +9 -8
  346. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
  347. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
  348. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
  349. package/dist/esm/context/polyfill/polyfill-context.js +3 -3
  350. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
  351. package/dist/esm/context/polyfill/polyfill-table.js +1 -1
  352. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
  353. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
  354. package/dist/esm/context/state-tracker/track-context-state.js +26 -12
  355. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
  356. package/dist/esm/context/state-tracker/with-parameters.js +6 -2
  357. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
  358. package/dist/esm/index.js +20 -31
  359. package/dist/esm/index.js.map +1 -1
  360. package/dist/esm/init.js +2 -31
  361. package/dist/esm/init.js.map +1 -1
  362. package/dist/esm/types/webgl.js +2 -0
  363. package/dist/esm/types/webgl.js.map +1 -0
  364. package/dist/index.d.ts +25 -46
  365. package/dist/index.d.ts.map +1 -1
  366. package/dist/index.js +20 -31
  367. package/dist/index.js.map +1 -1
  368. package/dist/init.d.ts +1 -4
  369. package/dist/init.d.ts.map +1 -1
  370. package/dist/init.js +2 -31
  371. package/dist/init.js.map +1 -1
  372. package/dist/types/webgl.d.ts +145 -0
  373. package/dist/types/webgl.d.ts.map +1 -0
  374. package/dist/types/webgl.js +2 -0
  375. package/dist/types/webgl.js.map +1 -0
  376. package/package.json +5 -5
  377. package/src/adapter/converters/{set-device-parameters.ts → device-parameters.ts} +81 -12
  378. package/src/{classes → adapter/converters}/renderbuffer-formats.ts +1 -1
  379. package/src/adapter/converters/sampler-parameters.ts +184 -0
  380. package/src/adapter/converters/texture-formats.ts +633 -0
  381. package/src/adapter/converters/vertex-formats.ts +22 -0
  382. package/src/adapter/device-helpers/device-features.ts +55 -124
  383. package/src/adapter/device-helpers/device-limits.ts +6 -3
  384. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  385. package/src/adapter/helpers/attribute-utils.ts +61 -0
  386. package/src/adapter/helpers/get-shader-layout.ts +407 -0
  387. package/src/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.ts +0 -0
  388. package/src/adapter/helpers/set-uniform.ts +87 -0
  389. package/src/adapter/helpers/uniforms.ts +121 -0
  390. package/src/{webgl-utils → adapter/objects}/constants-to-keys.ts +6 -3
  391. package/src/adapter/objects/webgl-renderbuffer.ts +104 -0
  392. package/src/{classes → adapter/objects}/webgl-resource.ts +23 -17
  393. package/src/adapter/objects/webgl-vertex-array-object.ts +111 -0
  394. package/src/adapter/resources/webgl-buffer.ts +219 -0
  395. package/src/adapter/resources/webgl-command-buffer.ts +94 -0
  396. package/src/adapter/resources/webgl-command-encoder.ts +58 -0
  397. package/src/adapter/resources/webgl-external-texture.ts +92 -0
  398. package/src/adapter/resources/webgl-framebuffer.ts +282 -0
  399. package/src/adapter/resources/webgl-render-pass.ts +24 -0
  400. package/src/adapter/resources/webgl-render-pipeline.ts +425 -0
  401. package/src/adapter/resources/webgl-sampler.ts +56 -0
  402. package/src/adapter/{webgl-shader.ts → resources/webgl-shader.ts} +19 -24
  403. package/src/adapter/resources/webgl-texture.ts +1036 -0
  404. package/src/adapter/webgl-canvas-context.ts +74 -0
  405. package/src/adapter/webgl-device.ts +297 -289
  406. package/{dist/esm/classes/accessor.ts.disabled → src/classic/accessor.ts} +38 -37
  407. package/src/{classes/webgl-buffer.ts → classic/buffer.ts} +76 -84
  408. package/src/{webgl-utils → classic}/typed-array-utils.ts +5 -1
  409. package/src/context/context/context-state.ts +4 -2
  410. package/src/context/context/{create-context.ts → create-browser-context.ts} +41 -6
  411. package/src/context/context/create-headless-context.ts +48 -0
  412. package/src/context/context/device-pixels.ts +24 -13
  413. package/src/context/debug/spector.ts +92 -0
  414. package/src/context/debug/webgl-developer-tools.ts +162 -0
  415. package/src/context/parameters/unified-parameter-api.ts +21 -13
  416. package/src/context/parameters/webgl-parameter-tables.ts +38 -36
  417. package/src/context/polyfill/get-parameter-polyfill.ts +1 -1
  418. package/src/context/polyfill/polyfill-context.ts +4 -5
  419. package/src/context/polyfill/polyfill-table.ts +1 -1
  420. package/src/context/state-tracker/deep-array-equal.ts +1 -1
  421. package/src/context/state-tracker/track-context-state.ts +34 -26
  422. package/src/context/state-tracker/with-parameters.ts +7 -2
  423. package/src/index.ts +42 -102
  424. package/src/init.ts +2 -46
  425. package/src/types/webgl.ts +284 -0
  426. package/dist/_deprecated/context-api.d.ts +0 -85
  427. package/dist/_deprecated/context-api.d.ts.map +0 -1
  428. package/dist/_deprecated/context-api.js +0 -70
  429. package/dist/_deprecated/context-api.js.map +0 -1
  430. package/dist/_deprecated/features.d.ts +0 -27
  431. package/dist/_deprecated/features.d.ts.map +0 -1
  432. package/dist/_deprecated/features.js +0 -111
  433. package/dist/_deprecated/features.js.map +0 -1
  434. package/dist/adapter/converters/set-device-parameters.d.ts +0 -5
  435. package/dist/adapter/converters/set-device-parameters.d.ts.map +0 -1
  436. package/dist/adapter/converters/set-device-parameters.js.map +0 -1
  437. package/dist/adapter/converters/webgpu-texture-formats.d.ts +0 -281
  438. package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +0 -1
  439. package/dist/adapter/converters/webgpu-texture-formats.js +0 -285
  440. package/dist/adapter/converters/webgpu-texture-formats.js.map +0 -1
  441. package/dist/adapter/webgl-shader.d.ts.map +0 -1
  442. package/dist/adapter/webgl-shader.js.map +0 -1
  443. package/dist/classes/accessor.d.ts +0 -28
  444. package/dist/classes/accessor.d.ts.map +0 -1
  445. package/dist/classes/accessor.js.map +0 -1
  446. package/dist/classes/accessor.ts.disabled +0 -159
  447. package/dist/classes/clear.d.ts +0 -17
  448. package/dist/classes/clear.d.ts.map +0 -1
  449. package/dist/classes/clear.js +0 -105
  450. package/dist/classes/clear.js.map +0 -1
  451. package/dist/classes/copy-and-blit.d.ts +0 -86
  452. package/dist/classes/copy-and-blit.d.ts.map +0 -1
  453. package/dist/classes/copy-and-blit.js +0 -338
  454. package/dist/classes/copy-and-blit.js.map +0 -1
  455. package/dist/classes/framebuffer.d.ts +0 -139
  456. package/dist/classes/framebuffer.d.ts.map +0 -1
  457. package/dist/classes/framebuffer.js +0 -656
  458. package/dist/classes/framebuffer.js.map +0 -1
  459. package/dist/classes/program-configuration.d.ts +0 -24
  460. package/dist/classes/program-configuration.d.ts.map +0 -1
  461. package/dist/classes/program-configuration.js +0 -73
  462. package/dist/classes/program-configuration.js.map +0 -1
  463. package/dist/classes/program.d.ts +0 -66
  464. package/dist/classes/program.d.ts.map +0 -1
  465. package/dist/classes/program.js +0 -379
  466. package/dist/classes/program.js.map +0 -1
  467. package/dist/classes/query.d.ts +0 -27
  468. package/dist/classes/query.d.ts.map +0 -1
  469. package/dist/classes/query.js +0 -145
  470. package/dist/classes/query.js.map +0 -1
  471. package/dist/classes/renderbuffer-formats.d.ts.map +0 -1
  472. package/dist/classes/renderbuffer-formats.js.map +0 -1
  473. package/dist/classes/renderbuffer.d.ts +0 -60
  474. package/dist/classes/renderbuffer.d.ts.map +0 -1
  475. package/dist/classes/renderbuffer.js.map +0 -1
  476. package/dist/classes/shader.d.ts +0 -42
  477. package/dist/classes/shader.d.ts.map +0 -1
  478. package/dist/classes/shader.js +0 -118
  479. package/dist/classes/shader.js.map +0 -1
  480. package/dist/classes/texture-2d.d.ts +0 -9
  481. package/dist/classes/texture-2d.d.ts.map +0 -1
  482. package/dist/classes/texture-2d.js +0 -36
  483. package/dist/classes/texture-2d.js.map +0 -1
  484. package/dist/classes/texture-3d.d.ts +0 -29
  485. package/dist/classes/texture-3d.d.ts.map +0 -1
  486. package/dist/classes/texture-3d.js +0 -76
  487. package/dist/classes/texture-3d.js.map +0 -1
  488. package/dist/classes/texture-cube.d.ts +0 -28
  489. package/dist/classes/texture-cube.d.ts.map +0 -1
  490. package/dist/classes/texture-cube.js +0 -130
  491. package/dist/classes/texture-cube.js.map +0 -1
  492. package/dist/classes/texture-formats.d.ts +0 -37
  493. package/dist/classes/texture-formats.d.ts.map +0 -1
  494. package/dist/classes/texture-formats.js +0 -98
  495. package/dist/classes/texture-formats.js.map +0 -1
  496. package/dist/classes/texture.d.ts +0 -123
  497. package/dist/classes/texture.d.ts.map +0 -1
  498. package/dist/classes/texture.js.map +0 -1
  499. package/dist/classes/transform-feedback.d.ts +0 -33
  500. package/dist/classes/transform-feedback.d.ts.map +0 -1
  501. package/dist/classes/transform-feedback.js +0 -198
  502. package/dist/classes/transform-feedback.js.map +0 -1
  503. package/dist/classes/uniform-buffer-layout.d.ts +0 -17
  504. package/dist/classes/uniform-buffer-layout.d.ts.map +0 -1
  505. package/dist/classes/uniform-buffer-layout.js +0 -104
  506. package/dist/classes/uniform-buffer-layout.js.map +0 -1
  507. package/dist/classes/uniforms.d.ts +0 -37
  508. package/dist/classes/uniforms.d.ts.map +0 -1
  509. package/dist/classes/uniforms.js +0 -250
  510. package/dist/classes/uniforms.js.map +0 -1
  511. package/dist/classes/vertex-array-object.d.ts +0 -76
  512. package/dist/classes/vertex-array-object.d.ts.map +0 -1
  513. package/dist/classes/vertex-array-object.js +0 -261
  514. package/dist/classes/vertex-array-object.js.map +0 -1
  515. package/dist/classes/vertex-array.d.ts +0 -75
  516. package/dist/classes/vertex-array.d.ts.map +0 -1
  517. package/dist/classes/vertex-array.js +0 -408
  518. package/dist/classes/vertex-array.js.map +0 -1
  519. package/dist/classes/webgl-buffer.d.ts.map +0 -1
  520. package/dist/classes/webgl-buffer.js.map +0 -1
  521. package/dist/classes/webgl-resource.d.ts.map +0 -1
  522. package/dist/classes/webgl-resource.js.map +0 -1
  523. package/dist/context/context/create-context.d.ts.map +0 -1
  524. package/dist/context/context/create-context.js.map +0 -1
  525. package/dist/context/context/get-canvas.d.ts +0 -13
  526. package/dist/context/context/get-canvas.d.ts.map +0 -1
  527. package/dist/context/context/get-canvas.js +0 -31
  528. package/dist/context/context/get-canvas.js.map +0 -1
  529. package/dist/context/context/resize-context.d.ts +0 -20
  530. package/dist/context/context/resize-context.d.ts.map +0 -1
  531. package/dist/context/context/resize-context.js +0 -15
  532. package/dist/context/context/resize-context.js.map +0 -1
  533. package/dist/context/parameters/webgl-parameters.d.ts +0 -144
  534. package/dist/context/parameters/webgl-parameters.d.ts.map +0 -1
  535. package/dist/context/parameters/webgl-parameters.js +0 -2
  536. package/dist/context/parameters/webgl-parameters.js.map +0 -1
  537. package/dist/debug/debug-program-configuration.d.ts +0 -2
  538. package/dist/debug/debug-program-configuration.d.ts.map +0 -1
  539. package/dist/debug/debug-program-configuration.js +0 -40
  540. package/dist/debug/debug-program-configuration.js.map +0 -1
  541. package/dist/debug/debug-uniforms.d.ts +0 -12
  542. package/dist/debug/debug-uniforms.d.ts.map +0 -1
  543. package/dist/debug/debug-uniforms.js +0 -108
  544. package/dist/debug/debug-uniforms.js.map +0 -1
  545. package/dist/debug/debug-vertex-array.d.ts +0 -5
  546. package/dist/debug/debug-vertex-array.d.ts.map +0 -1
  547. package/dist/debug/debug-vertex-array.js +0 -118
  548. package/dist/debug/debug-vertex-array.js.map +0 -1
  549. package/dist/es5/_deprecated/context-api.js +0 -110
  550. package/dist/es5/_deprecated/context-api.js.map +0 -1
  551. package/dist/es5/_deprecated/features.js +0 -118
  552. package/dist/es5/_deprecated/features.js.map +0 -1
  553. package/dist/es5/adapter/converters/set-device-parameters.js.map +0 -1
  554. package/dist/es5/adapter/converters/webgpu-texture-formats.js +0 -296
  555. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +0 -1
  556. package/dist/es5/adapter/webgl-shader.js.map +0 -1
  557. package/dist/es5/classes/accessor.d.ts +0 -28
  558. package/dist/es5/classes/accessor.js.map +0 -1
  559. package/dist/es5/classes/accessor.ts.disabled +0 -159
  560. package/dist/es5/classes/clear.js +0 -135
  561. package/dist/es5/classes/clear.js.map +0 -1
  562. package/dist/es5/classes/copy-and-blit.js +0 -382
  563. package/dist/es5/classes/copy-and-blit.js.map +0 -1
  564. package/dist/es5/classes/framebuffer.js +0 -807
  565. package/dist/es5/classes/framebuffer.js.map +0 -1
  566. package/dist/es5/classes/program-configuration.js +0 -119
  567. package/dist/es5/classes/program-configuration.js.map +0 -1
  568. package/dist/es5/classes/program.js +0 -471
  569. package/dist/es5/classes/program.js.map +0 -1
  570. package/dist/es5/classes/query.js +0 -222
  571. package/dist/es5/classes/query.js.map +0 -1
  572. package/dist/es5/classes/renderbuffer-formats.js.map +0 -1
  573. package/dist/es5/classes/renderbuffer.js.map +0 -1
  574. package/dist/es5/classes/shader.js +0 -195
  575. package/dist/es5/classes/shader.js.map +0 -1
  576. package/dist/es5/classes/texture-2d.js.map +0 -1
  577. package/dist/es5/classes/texture-3d.js +0 -142
  578. package/dist/es5/classes/texture-3d.js.map +0 -1
  579. package/dist/es5/classes/texture-cube.js +0 -202
  580. package/dist/es5/classes/texture-cube.js.map +0 -1
  581. package/dist/es5/classes/texture-formats.js +0 -87
  582. package/dist/es5/classes/texture-formats.js.map +0 -1
  583. package/dist/es5/classes/texture.js.map +0 -1
  584. package/dist/es5/classes/transform-feedback.js +0 -267
  585. package/dist/es5/classes/transform-feedback.js.map +0 -1
  586. package/dist/es5/classes/uniform-buffer-layout.js +0 -130
  587. package/dist/es5/classes/uniform-buffer-layout.js.map +0 -1
  588. package/dist/es5/classes/uniforms.js +0 -232
  589. package/dist/es5/classes/uniforms.js.map +0 -1
  590. package/dist/es5/classes/vertex-array-object.js +0 -337
  591. package/dist/es5/classes/vertex-array-object.js.map +0 -1
  592. package/dist/es5/classes/vertex-array.js +0 -465
  593. package/dist/es5/classes/vertex-array.js.map +0 -1
  594. package/dist/es5/classes/webgl-buffer.js.map +0 -1
  595. package/dist/es5/classes/webgl-resource.js.map +0 -1
  596. package/dist/es5/context/context/create-context.js.map +0 -1
  597. package/dist/es5/context/context/get-canvas.js +0 -40
  598. package/dist/es5/context/context/get-canvas.js.map +0 -1
  599. package/dist/es5/context/context/resize-context.js +0 -23
  600. package/dist/es5/context/context/resize-context.js.map +0 -1
  601. package/dist/es5/context/parameters/webgl-parameters.js.map +0 -1
  602. package/dist/es5/debug/debug-program-configuration.js +0 -76
  603. package/dist/es5/debug/debug-program-configuration.js.map +0 -1
  604. package/dist/es5/debug/debug-uniforms.js +0 -156
  605. package/dist/es5/debug/debug-uniforms.js.map +0 -1
  606. package/dist/es5/debug/debug-vertex-array.js +0 -126
  607. package/dist/es5/debug/debug-vertex-array.js.map +0 -1
  608. package/dist/es5/helpers/get-program-bindings.js.map +0 -1
  609. package/dist/es5/helpers/program-bindings.js +0 -2
  610. package/dist/es5/types/accessor.d.ts +0 -29
  611. package/dist/es5/webgl-utils/attribute-utils.js +0 -186
  612. package/dist/es5/webgl-utils/attribute-utils.js.map +0 -1
  613. package/dist/es5/webgl-utils/constants-to-keys.js.map +0 -1
  614. package/dist/es5/webgl-utils/format-utils.js +0 -58
  615. package/dist/es5/webgl-utils/format-utils.js.map +0 -1
  616. package/dist/es5/webgl-utils/get-error.js +0 -49
  617. package/dist/es5/webgl-utils/get-error.js.map +0 -1
  618. package/dist/es5/webgl-utils/index.js +0 -74
  619. package/dist/es5/webgl-utils/index.js.map +0 -1
  620. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  621. package/dist/es5/webgl-utils/request-animation-frame.js +0 -16
  622. package/dist/es5/webgl-utils/request-animation-frame.js.map +0 -1
  623. package/dist/es5/webgl-utils/texture-utils.js +0 -61
  624. package/dist/es5/webgl-utils/texture-utils.js.map +0 -1
  625. package/dist/es5/webgl-utils/typed-array-utils.js.map +0 -1
  626. package/dist/esm/_deprecated/context-api.js +0 -70
  627. package/dist/esm/_deprecated/context-api.js.map +0 -1
  628. package/dist/esm/_deprecated/features.js +0 -111
  629. package/dist/esm/_deprecated/features.js.map +0 -1
  630. package/dist/esm/adapter/converters/set-device-parameters.js.map +0 -1
  631. package/dist/esm/adapter/converters/webgpu-texture-formats.js +0 -285
  632. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +0 -1
  633. package/dist/esm/adapter/webgl-shader.js.map +0 -1
  634. package/dist/esm/classes/accessor.d.ts +0 -28
  635. package/dist/esm/classes/accessor.js.map +0 -1
  636. package/dist/esm/classes/clear.js +0 -105
  637. package/dist/esm/classes/clear.js.map +0 -1
  638. package/dist/esm/classes/copy-and-blit.js +0 -338
  639. package/dist/esm/classes/copy-and-blit.js.map +0 -1
  640. package/dist/esm/classes/framebuffer.js +0 -656
  641. package/dist/esm/classes/framebuffer.js.map +0 -1
  642. package/dist/esm/classes/program-configuration.js +0 -73
  643. package/dist/esm/classes/program-configuration.js.map +0 -1
  644. package/dist/esm/classes/program.js +0 -379
  645. package/dist/esm/classes/program.js.map +0 -1
  646. package/dist/esm/classes/query.js +0 -145
  647. package/dist/esm/classes/query.js.map +0 -1
  648. package/dist/esm/classes/renderbuffer-formats.js.map +0 -1
  649. package/dist/esm/classes/renderbuffer.js.map +0 -1
  650. package/dist/esm/classes/shader.js +0 -118
  651. package/dist/esm/classes/shader.js.map +0 -1
  652. package/dist/esm/classes/texture-2d.js +0 -36
  653. package/dist/esm/classes/texture-2d.js.map +0 -1
  654. package/dist/esm/classes/texture-3d.js +0 -76
  655. package/dist/esm/classes/texture-3d.js.map +0 -1
  656. package/dist/esm/classes/texture-cube.js +0 -130
  657. package/dist/esm/classes/texture-cube.js.map +0 -1
  658. package/dist/esm/classes/texture-formats.js +0 -98
  659. package/dist/esm/classes/texture-formats.js.map +0 -1
  660. package/dist/esm/classes/texture.js.map +0 -1
  661. package/dist/esm/classes/transform-feedback.js +0 -198
  662. package/dist/esm/classes/transform-feedback.js.map +0 -1
  663. package/dist/esm/classes/uniform-buffer-layout.js +0 -104
  664. package/dist/esm/classes/uniform-buffer-layout.js.map +0 -1
  665. package/dist/esm/classes/uniforms.js +0 -250
  666. package/dist/esm/classes/uniforms.js.map +0 -1
  667. package/dist/esm/classes/vertex-array-object.js +0 -261
  668. package/dist/esm/classes/vertex-array-object.js.map +0 -1
  669. package/dist/esm/classes/vertex-array.js +0 -408
  670. package/dist/esm/classes/vertex-array.js.map +0 -1
  671. package/dist/esm/classes/webgl-buffer.js.map +0 -1
  672. package/dist/esm/classes/webgl-resource.js.map +0 -1
  673. package/dist/esm/context/context/create-context.js.map +0 -1
  674. package/dist/esm/context/context/get-canvas.js +0 -31
  675. package/dist/esm/context/context/get-canvas.js.map +0 -1
  676. package/dist/esm/context/context/resize-context.js +0 -15
  677. package/dist/esm/context/context/resize-context.js.map +0 -1
  678. package/dist/esm/context/parameters/webgl-parameters.js +0 -2
  679. package/dist/esm/context/parameters/webgl-parameters.js.map +0 -1
  680. package/dist/esm/debug/debug-program-configuration.js +0 -40
  681. package/dist/esm/debug/debug-program-configuration.js.map +0 -1
  682. package/dist/esm/debug/debug-uniforms.js +0 -108
  683. package/dist/esm/debug/debug-uniforms.js.map +0 -1
  684. package/dist/esm/debug/debug-vertex-array.js +0 -118
  685. package/dist/esm/debug/debug-vertex-array.js.map +0 -1
  686. package/dist/esm/helpers/get-program-bindings.js +0 -228
  687. package/dist/esm/helpers/get-program-bindings.js.map +0 -1
  688. package/dist/esm/helpers/program-bindings.js +0 -2
  689. package/dist/esm/types/accessor.d.ts +0 -29
  690. package/dist/esm/webgl-utils/attribute-utils.js +0 -182
  691. package/dist/esm/webgl-utils/attribute-utils.js.map +0 -1
  692. package/dist/esm/webgl-utils/constants-to-keys.js.map +0 -1
  693. package/dist/esm/webgl-utils/format-utils.js +0 -45
  694. package/dist/esm/webgl-utils/format-utils.js.map +0 -1
  695. package/dist/esm/webgl-utils/get-error.js +0 -41
  696. package/dist/esm/webgl-utils/get-error.js.map +0 -1
  697. package/dist/esm/webgl-utils/index.js +0 -5
  698. package/dist/esm/webgl-utils/index.js.map +0 -1
  699. package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  700. package/dist/esm/webgl-utils/request-animation-frame.js +0 -7
  701. package/dist/esm/webgl-utils/request-animation-frame.js.map +0 -1
  702. package/dist/esm/webgl-utils/texture-utils.js +0 -48
  703. package/dist/esm/webgl-utils/texture-utils.js.map +0 -1
  704. package/dist/esm/webgl-utils/typed-array-utils.js.map +0 -1
  705. package/dist/helpers/get-program-bindings.d.ts +0 -8
  706. package/dist/helpers/get-program-bindings.d.ts.map +0 -1
  707. package/dist/helpers/get-program-bindings.js +0 -228
  708. package/dist/helpers/get-program-bindings.js.map +0 -1
  709. package/dist/helpers/program-bindings.d.ts +0 -41
  710. package/dist/helpers/program-bindings.d.ts.map +0 -1
  711. package/dist/helpers/program-bindings.js +0 -2
  712. package/dist/types/accessor.d.ts +0 -29
  713. package/dist/webgl-utils/attribute-utils.d.ts +0 -18
  714. package/dist/webgl-utils/attribute-utils.d.ts.map +0 -1
  715. package/dist/webgl-utils/attribute-utils.js +0 -182
  716. package/dist/webgl-utils/attribute-utils.js.map +0 -1
  717. package/dist/webgl-utils/constants-to-keys.d.ts +0 -4
  718. package/dist/webgl-utils/constants-to-keys.d.ts.map +0 -1
  719. package/dist/webgl-utils/constants-to-keys.js.map +0 -1
  720. package/dist/webgl-utils/format-utils.d.ts +0 -3
  721. package/dist/webgl-utils/format-utils.d.ts.map +0 -1
  722. package/dist/webgl-utils/format-utils.js +0 -45
  723. package/dist/webgl-utils/format-utils.js.map +0 -1
  724. package/dist/webgl-utils/get-error.d.ts +0 -3
  725. package/dist/webgl-utils/get-error.d.ts.map +0 -1
  726. package/dist/webgl-utils/get-error.js +0 -41
  727. package/dist/webgl-utils/get-error.js.map +0 -1
  728. package/dist/webgl-utils/index.d.ts +0 -5
  729. package/dist/webgl-utils/index.d.ts.map +0 -1
  730. package/dist/webgl-utils/index.js +0 -5
  731. package/dist/webgl-utils/index.js.map +0 -1
  732. package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +0 -1
  733. package/dist/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  734. package/dist/webgl-utils/request-animation-frame.d.ts +0 -4
  735. package/dist/webgl-utils/request-animation-frame.d.ts.map +0 -1
  736. package/dist/webgl-utils/request-animation-frame.js +0 -7
  737. package/dist/webgl-utils/request-animation-frame.js.map +0 -1
  738. package/dist/webgl-utils/texture-utils.d.ts +0 -15
  739. package/dist/webgl-utils/texture-utils.d.ts.map +0 -1
  740. package/dist/webgl-utils/texture-utils.js +0 -48
  741. package/dist/webgl-utils/texture-utils.js.map +0 -1
  742. package/dist/webgl-utils/typed-array-utils.d.ts.map +0 -1
  743. package/dist/webgl-utils/typed-array-utils.js.map +0 -1
  744. package/src/.DS_Store +0 -0
  745. package/src/_deprecated/context-api.ts +0 -140
  746. package/src/_deprecated/features.ts +0 -159
  747. package/src/adapter/converters/webgpu-texture-formats.ts +0 -167
  748. package/src/classes/accessor.d.ts +0 -28
  749. package/src/classes/accessor.js +0 -129
  750. package/src/classes/accessor.ts.disabled +0 -159
  751. package/src/classes/clear.ts +0 -108
  752. package/src/classes/copy-and-blit.ts +0 -460
  753. package/src/classes/framebuffer.ts +0 -763
  754. package/src/classes/program-configuration.ts +0 -77
  755. package/src/classes/program.ts +0 -431
  756. package/src/classes/query.ts +0 -171
  757. package/src/classes/renderbuffer.ts +0 -154
  758. package/src/classes/shader.ts +0 -129
  759. package/src/classes/texture-2d.ts +0 -35
  760. package/src/classes/texture-3d.ts +0 -123
  761. package/src/classes/texture-cube.ts +0 -162
  762. package/src/classes/texture-formats.ts +0 -171
  763. package/src/classes/texture.ts +0 -965
  764. package/src/classes/transform-feedback.ts +0 -191
  765. package/src/classes/uniform-buffer-layout.ts +0 -113
  766. package/src/classes/uniforms.ts +0 -394
  767. package/src/classes/vertex-array-object.ts +0 -339
  768. package/src/classes/vertex-array.ts +0 -484
  769. package/src/context/context/get-canvas.ts +0 -37
  770. package/src/context/context/resize-context.ts +0 -37
  771. package/src/context/parameters/webgl-parameters.ts +0 -197
  772. package/src/debug/debug-program-configuration.ts +0 -32
  773. package/src/debug/debug-uniforms.ts +0 -100
  774. package/src/debug/debug-vertex-array.ts +0 -123
  775. package/src/helpers/get-program-bindings.ts +0 -244
  776. package/src/helpers/program-bindings.ts +0 -46
  777. package/src/types/accessor.d.ts +0 -29
  778. package/src/webgl-utils/attribute-utils.ts +0 -171
  779. package/src/webgl-utils/format-utils.ts +0 -43
  780. package/src/webgl-utils/get-error.ts +0 -56
  781. package/src/webgl-utils/index.ts +0 -12
  782. package/src/webgl-utils/request-animation-frame.ts +0 -14
  783. package/src/webgl-utils/texture-utils.ts +0 -60
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapter/device-helpers/get-device-info.ts"],"names":["getDeviceInfo","gl","vendorMasked","getParameter","GL","VENDOR","rendererMasked","RENDERER","ext","getExtension","vendorUnmasked","UNMASKED_VENDOR_WEBGL","rendererUnmasked","UNMASKED_RENDERER_WEBGL","vendor","renderer","gpuVendor","identifyGPUVendor","type","version","VERSION","shadingLanguages","shadingLanguageVersions","SHADING_LANGUAGE_VERSION","match"],"mappings":";;;;;;;;;AACA;;AACA;;AAGO,SAASA,aAAT,CAAuBC,EAAvB,EAA8D;AACnE,MAAMC,YAAY,GAAGD,EAAE,CAACE,YAAH,CAAgBC,mBAAGC,MAAnB,CAArB;AACA,MAAMC,cAAc,GAAGL,EAAE,CAACE,YAAH,CAAgBC,mBAAGG,QAAnB,CAAvB;AAGA,MAAMC,GAAG,GAAGP,EAAE,CAACQ,YAAH,CAAgB,2BAAhB,CAAZ;AACA,MAAMC,cAAc,GAAGT,EAAE,CAACE,YAAH,CAAgBK,GAAG,GAAGA,GAAG,CAACG,qBAAP,GAA+BP,mBAAGC,MAArD,CAAvB;AACA,MAAMO,gBAAgB,GAAGX,EAAE,CAACE,YAAH,CAAgBK,GAAG,GAAGA,GAAG,CAACK,uBAAP,GAAiCT,mBAAGG,QAAvD,CAAzB;AACA,MAAMO,MAAM,GAAGJ,cAAc,IAAIR,YAAjC;AACA,MAAMa,QAAQ,GAAGH,gBAAgB,IAAIN,cAArC;AACA,MAAMU,SAAS,GAAGC,iBAAiB,CAACH,MAAD,EAASC,QAAT,CAAnC;AACA,SAAO;AACLG,IAAAA,IAAI,EAAE,2BAASjB,EAAT,IAAe,QAAf,GAA0B,OAD3B;AAELe,IAAAA,SAAS,EAATA,SAFK;AAGLF,IAAAA,MAAM,EAAEJ,cAAc,IAAIR,YAHrB;AAILa,IAAAA,QAAQ,EAAEH,gBAAgB,IAAIN,cAJzB;AAKLa,IAAAA,OAAO,EAAElB,EAAE,CAACE,YAAH,CAAgBC,mBAAGgB,OAAnB,CALJ;AAMLC,IAAAA,gBAAgB,EAAE,CAAC,MAAD,CANb;AAOLC,IAAAA,uBAAuB,EAAE;AACvB,cAAQrB,EAAE,CAACE,YAAH,CAAgBC,mBAAGmB,wBAAnB;AADe;AAPpB,GAAP;AAWD;;AAED,SAASN,iBAAT,CAA2BH,MAA3B,EAA2CC,QAA3C,EAA+G;AAC7G,MAAID,MAAM,CAACU,KAAP,CAAa,SAAb,KAA2BT,QAAQ,CAACS,KAAT,CAAe,SAAf,CAA/B,EAA0D;AACxD,WAAO,QAAP;AACD;;AACD,MAAIV,MAAM,CAACU,KAAP,CAAa,QAAb,KAA0BT,QAAQ,CAACS,KAAT,CAAe,QAAf,CAA9B,EAAwD;AACtD,WAAO,OAAP;AACD;;AACD,MAAIV,MAAM,CAACU,KAAP,CAAa,QAAb,KAA0BT,QAAQ,CAACS,KAAT,CAAe,QAAf,CAA9B,EAAwD;AACtD,WAAO,OAAP;AACD;;AACD,MACEV,MAAM,CAACU,KAAP,CAAa,MAAb,KACAT,QAAQ,CAACS,KAAT,CAAe,MAAf,CADA,IAEAV,MAAM,CAACU,KAAP,CAAa,MAAb,CAFA,IAGAT,QAAQ,CAACS,KAAT,CAAe,MAAf,CAJF,EAKE;AACA,WAAO,KAAP;AACD;;AACD,SAAO,SAAP;AACD","sourcesContent":["import {DeviceInfo} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\n\n/** @returns strings identifying the GPU vendor and driver. */\nexport function getDeviceInfo(gl: WebGLRenderingContext): DeviceInfo {\n const vendorMasked = gl.getParameter(GL.VENDOR);\n const rendererMasked = gl.getParameter(GL.RENDERER);\n // Get unmasked strings if available\n // https://www.khronos.org/registry/webgl/extensions/WEBGL_debug_renderer_info/\n const ext = gl.getExtension('WEBGL_debug_renderer_info');\n const vendorUnmasked = gl.getParameter(ext ? ext.UNMASKED_VENDOR_WEBGL : GL.VENDOR);\n const rendererUnmasked = gl.getParameter(ext ? ext.UNMASKED_RENDERER_WEBGL : GL.RENDERER);\n const vendor = vendorUnmasked || vendorMasked;\n const renderer = rendererUnmasked || rendererMasked;\n const gpuVendor = identifyGPUVendor(vendor, renderer);\n return {\n type: isWebGL2(gl) ? 'webgl2' : 'webgl',\n gpuVendor,\n vendor: vendorUnmasked || vendorMasked,\n renderer: rendererUnmasked || rendererMasked,\n version: gl.getParameter(GL.VERSION),\n shadingLanguages: ['glsl'],\n shadingLanguageVersions: {\n 'glsl': gl.getParameter(GL.SHADING_LANGUAGE_VERSION) as string\n }\n };\n}\n\nfunction identifyGPUVendor(vendor: string, renderer: string): 'NVIDIA' | 'INTEL' | 'APPLE' | 'AMD' | 'UNKNOWN' {\n if (vendor.match(/NVIDIA/i) || renderer.match(/NVIDIA/i)) {\n return 'NVIDIA';\n }\n if (vendor.match(/INTEL/i) || renderer.match(/INTEL/i)) {\n return 'INTEL';\n }\n if (vendor.match(/Apple/i) || renderer.match(/Apple/i)) {\n return 'APPLE';\n }\n if (\n vendor.match(/AMD/i) ||\n renderer.match(/AMD/i) ||\n vendor.match(/ATI/i) ||\n renderer.match(/ATI/i)\n ) {\n return 'AMD';\n }\n return 'UNKNOWN';\n}\n"],"file":"get-device-info.js"}
1
+ {"version":3,"sources":["../../../../src/adapter/device-helpers/get-device-info.ts"],"names":["getDeviceInfo","gl","vendorMasked","getParameter","GL","VENDOR","rendererMasked","RENDERER","ext","getExtension","vendorUnmasked","UNMASKED_VENDOR_WEBGL","rendererUnmasked","UNMASKED_RENDERER_WEBGL","vendor","renderer","gpu","identifyGPUVendor","type","version","VERSION","shadingLanguages","shadingLanguageVersions","SHADING_LANGUAGE_VERSION","match"],"mappings":";;;;;;;;;AACA;;AACA;;AAGO,SAASA,aAAT,CAAuBC,EAAvB,EAA8D;AACnE,MAAMC,YAAY,GAAGD,EAAE,CAACE,YAAH,CAAgBC,mBAAGC,MAAnB,CAArB;AACA,MAAMC,cAAc,GAAGL,EAAE,CAACE,YAAH,CAAgBC,mBAAGG,QAAnB,CAAvB;AAGA,MAAMC,GAAG,GAAGP,EAAE,CAACQ,YAAH,CAAgB,2BAAhB,CAAZ;AACA,MAAMC,cAAc,GAAGT,EAAE,CAACE,YAAH,CAAgBK,GAAG,GAAGA,GAAG,CAACG,qBAAP,GAA+BP,mBAAGC,MAArD,CAAvB;AACA,MAAMO,gBAAgB,GAAGX,EAAE,CAACE,YAAH,CAAgBK,GAAG,GAAGA,GAAG,CAACK,uBAAP,GAAiCT,mBAAGG,QAAvD,CAAzB;AACA,MAAMO,MAAM,GAAGJ,cAAc,IAAIR,YAAjC;AACA,MAAMa,QAAQ,GAAGH,gBAAgB,IAAIN,cAArC;AACA,MAAMU,GAAG,GAAGC,iBAAiB,CAACH,MAAD,EAASC,QAAT,CAA7B;AACA,SAAO;AACLG,IAAAA,IAAI,EAAE,2BAASjB,EAAT,IAAe,QAAf,GAA0B,OAD3B;AAELe,IAAAA,GAAG,EAAHA,GAFK;AAGLF,IAAAA,MAAM,EAAEJ,cAAc,IAAIR,YAHrB;AAILa,IAAAA,QAAQ,EAAEH,gBAAgB,IAAIN,cAJzB;AAKLa,IAAAA,OAAO,EAAElB,EAAE,CAACE,YAAH,CAAgBC,mBAAGgB,OAAnB,CALJ;AAMLC,IAAAA,gBAAgB,EAAE,CAAC,MAAD,CANb;AAOLC,IAAAA,uBAAuB,EAAE;AACvB,cAAQrB,EAAE,CAACE,YAAH,CAAgBC,mBAAGmB,wBAAnB;AADe;AAPpB,GAAP;AAWD;;AAED,SAASN,iBAAT,CAA2BH,MAA3B,EAA2CC,QAA3C,EAA+G;AAC7G,MAAID,MAAM,CAACU,KAAP,CAAa,SAAb,KAA2BT,QAAQ,CAACS,KAAT,CAAe,SAAf,CAA/B,EAA0D;AACxD,WAAO,QAAP;AACD;;AACD,MAAIV,MAAM,CAACU,KAAP,CAAa,QAAb,KAA0BT,QAAQ,CAACS,KAAT,CAAe,QAAf,CAA9B,EAAwD;AACtD,WAAO,OAAP;AACD;;AACD,MAAIV,MAAM,CAACU,KAAP,CAAa,QAAb,KAA0BT,QAAQ,CAACS,KAAT,CAAe,QAAf,CAA9B,EAAwD;AACtD,WAAO,OAAP;AACD;;AACD,MACEV,MAAM,CAACU,KAAP,CAAa,MAAb,KACAT,QAAQ,CAACS,KAAT,CAAe,MAAf,CADA,IAEAV,MAAM,CAACU,KAAP,CAAa,MAAb,CAFA,IAGAT,QAAQ,CAACS,KAAT,CAAe,MAAf,CAJF,EAKE;AACA,WAAO,KAAP;AACD;;AACD,SAAO,SAAP;AACD","sourcesContent":["import {DeviceInfo} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\n\n/** @returns strings identifying the GPU vendor and driver. */\nexport function getDeviceInfo(gl: WebGLRenderingContext): DeviceInfo {\n const vendorMasked = gl.getParameter(GL.VENDOR);\n const rendererMasked = gl.getParameter(GL.RENDERER);\n // Get unmasked strings if available\n // https://www.khronos.org/registry/webgl/extensions/WEBGL_debug_renderer_info/\n const ext = gl.getExtension('WEBGL_debug_renderer_info');\n const vendorUnmasked = gl.getParameter(ext ? ext.UNMASKED_VENDOR_WEBGL : GL.VENDOR);\n const rendererUnmasked = gl.getParameter(ext ? ext.UNMASKED_RENDERER_WEBGL : GL.RENDERER);\n const vendor = vendorUnmasked || vendorMasked;\n const renderer = rendererUnmasked || rendererMasked;\n const gpu = identifyGPUVendor(vendor, renderer);\n return {\n type: isWebGL2(gl) ? 'webgl2' : 'webgl',\n gpu,\n vendor: vendorUnmasked || vendorMasked,\n renderer: rendererUnmasked || rendererMasked,\n version: gl.getParameter(GL.VERSION),\n shadingLanguages: ['glsl'],\n shadingLanguageVersions: {\n 'glsl': gl.getParameter(GL.SHADING_LANGUAGE_VERSION) as string\n }\n };\n}\n\nfunction identifyGPUVendor(vendor: string, renderer: string): 'nvidia' | 'intel' | 'apple' | 'amd' | 'unknown' {\n if (vendor.match(/NVIDIA/i) || renderer.match(/NVIDIA/i)) {\n return 'nvidia';\n }\n if (vendor.match(/INTEL/i) || renderer.match(/INTEL/i)) {\n return 'intel';\n }\n if (vendor.match(/Apple/i) || renderer.match(/Apple/i)) {\n return 'apple';\n }\n if (\n vendor.match(/AMD/i) ||\n renderer.match(/AMD/i) ||\n vendor.match(/ATI/i) ||\n renderer.match(/ATI/i)\n ) {\n return 'amd';\n }\n return 'unknown';\n}\n"],"file":"get-device-info.js"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getPrimitiveDrawMode = getPrimitiveDrawMode;
9
+ exports.getPrimitiveCount = getPrimitiveCount;
10
+ exports.getVertexCount = getVertexCount;
11
+
12
+ var _constants = _interopRequireDefault(require("@luma.gl/constants"));
13
+
14
+ function getPrimitiveDrawMode(drawMode) {
15
+ switch (drawMode) {
16
+ case _constants.default.POINTS:
17
+ return _constants.default.POINTS;
18
+
19
+ case _constants.default.LINES:
20
+ return _constants.default.LINES;
21
+
22
+ case _constants.default.LINE_STRIP:
23
+ return _constants.default.LINES;
24
+
25
+ case _constants.default.LINE_LOOP:
26
+ return _constants.default.LINES;
27
+
28
+ case _constants.default.TRIANGLES:
29
+ return _constants.default.TRIANGLES;
30
+
31
+ case _constants.default.TRIANGLE_STRIP:
32
+ return _constants.default.TRIANGLES;
33
+
34
+ case _constants.default.TRIANGLE_FAN:
35
+ return _constants.default.TRIANGLES;
36
+
37
+ default:
38
+ throw new Error('drawMode');
39
+ }
40
+ }
41
+
42
+ function getPrimitiveCount(options) {
43
+ var drawMode = options.drawMode,
44
+ vertexCount = options.vertexCount;
45
+
46
+ switch (drawMode) {
47
+ case _constants.default.POINTS:
48
+ case _constants.default.LINE_LOOP:
49
+ return vertexCount;
50
+
51
+ case _constants.default.LINES:
52
+ return vertexCount / 2;
53
+
54
+ case _constants.default.LINE_STRIP:
55
+ return vertexCount - 1;
56
+
57
+ case _constants.default.TRIANGLES:
58
+ return vertexCount / 3;
59
+
60
+ case _constants.default.TRIANGLE_STRIP:
61
+ case _constants.default.TRIANGLE_FAN:
62
+ return vertexCount - 2;
63
+
64
+ default:
65
+ throw new Error('drawMode');
66
+ }
67
+ }
68
+
69
+ function getVertexCount(options) {
70
+ var drawMode = options.drawMode,
71
+ vertexCount = options.vertexCount;
72
+ var primitiveCount = getPrimitiveCount({
73
+ drawMode: drawMode,
74
+ vertexCount: vertexCount
75
+ });
76
+
77
+ switch (getPrimitiveDrawMode(drawMode)) {
78
+ case _constants.default.POINTS:
79
+ return primitiveCount;
80
+
81
+ case _constants.default.LINES:
82
+ return primitiveCount * 2;
83
+
84
+ case _constants.default.TRIANGLES:
85
+ return primitiveCount * 3;
86
+
87
+ default:
88
+ throw new Error('drawMode');
89
+ }
90
+ }
91
+ //# sourceMappingURL=attribute-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/adapter/helpers/attribute-utils.ts"],"names":["getPrimitiveDrawMode","drawMode","GL","POINTS","LINES","LINE_STRIP","LINE_LOOP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","Error","getPrimitiveCount","options","vertexCount","getVertexCount","primitiveCount"],"mappings":";;;;;;;;;;;AAAA;;AAIO,SAASA,oBAAT,CAA8BC,QAA9B,EAAiE;AACtE,UAAQA,QAAR;AACE,SAAKC,mBAAGC,MAAR;AACE,aAAOD,mBAAGC,MAAV;;AACF,SAAKD,mBAAGE,KAAR;AACE,aAAOF,mBAAGE,KAAV;;AACF,SAAKF,mBAAGG,UAAR;AACE,aAAOH,mBAAGE,KAAV;;AACF,SAAKF,mBAAGI,SAAR;AACE,aAAOJ,mBAAGE,KAAV;;AACF,SAAKF,mBAAGK,SAAR;AACE,aAAOL,mBAAGK,SAAV;;AACF,SAAKL,mBAAGM,cAAR;AACE,aAAON,mBAAGK,SAAV;;AACF,SAAKL,mBAAGO,YAAR;AACE,aAAOP,mBAAGK,SAAV;;AACF;AACE,YAAM,IAAIG,KAAJ,CAAU,UAAV,CAAN;AAhBJ;AAkBD;;AAGM,SAASC,iBAAT,CAA2BC,OAA3B,EAAyF;AAC9F,MAAOX,QAAP,GAAgCW,OAAhC,CAAOX,QAAP;AAAA,MAAiBY,WAAjB,GAAgCD,OAAhC,CAAiBC,WAAjB;;AACA,UAAQZ,QAAR;AACE,SAAKC,mBAAGC,MAAR;AACA,SAAKD,mBAAGI,SAAR;AACE,aAAOO,WAAP;;AACF,SAAKX,mBAAGE,KAAR;AACE,aAAOS,WAAW,GAAG,CAArB;;AACF,SAAKX,mBAAGG,UAAR;AACE,aAAOQ,WAAW,GAAG,CAArB;;AACF,SAAKX,mBAAGK,SAAR;AACE,aAAOM,WAAW,GAAG,CAArB;;AACF,SAAKX,mBAAGM,cAAR;AACA,SAAKN,mBAAGO,YAAR;AACE,aAAOI,WAAW,GAAG,CAArB;;AACF;AACE,YAAM,IAAIH,KAAJ,CAAU,UAAV,CAAN;AAdJ;AAgBD;;AAGM,SAASI,cAAT,CAAwBF,OAAxB,EAAsF;AAC3F,MAAOX,QAAP,GAAgCW,OAAhC,CAAOX,QAAP;AAAA,MAAiBY,WAAjB,GAAgCD,OAAhC,CAAiBC,WAAjB;AACA,MAAME,cAAc,GAAGJ,iBAAiB,CAAC;AAACV,IAAAA,QAAQ,EAARA,QAAD;AAAWY,IAAAA,WAAW,EAAXA;AAAX,GAAD,CAAxC;;AACA,UAAQb,oBAAoB,CAACC,QAAD,CAA5B;AACE,SAAKC,mBAAGC,MAAR;AACE,aAAOY,cAAP;;AACF,SAAKb,mBAAGE,KAAR;AACE,aAAOW,cAAc,GAAG,CAAxB;;AACF,SAAKb,mBAAGK,SAAR;AACE,aAAOQ,cAAc,GAAG,CAAxB;;AACF;AACE,YAAM,IAAIL,KAAJ,CAAU,UAAV,CAAN;AARJ;AAUD","sourcesContent":["import GL from '@luma.gl/constants';\nimport {GLDrawMode, GLPrimitive} from '../../types/webgl';\n\n// Counts the number of complete primitives given a number of vertices and a drawMode\nexport function getPrimitiveDrawMode(drawMode: GLDrawMode): GLPrimitive {\n switch (drawMode) {\n case GL.POINTS:\n return GL.POINTS;\n case GL.LINES:\n return GL.LINES;\n case GL.LINE_STRIP:\n return GL.LINES;\n case GL.LINE_LOOP:\n return GL.LINES;\n case GL.TRIANGLES:\n return GL.TRIANGLES;\n case GL.TRIANGLE_STRIP:\n return GL.TRIANGLES;\n case GL.TRIANGLE_FAN:\n return GL.TRIANGLES;\n default:\n throw new Error('drawMode');\n }\n}\n\n// Counts the number of complete \"primitives\" given a number of vertices and a drawMode\nexport function getPrimitiveCount(options: {drawMode: GLDrawMode, vertexCount: number}): number {\n const {drawMode, vertexCount} = options;\n switch (drawMode) {\n case GL.POINTS:\n case GL.LINE_LOOP:\n return vertexCount;\n case GL.LINES:\n return vertexCount / 2;\n case GL.LINE_STRIP:\n return vertexCount - 1;\n case GL.TRIANGLES:\n return vertexCount / 3;\n case GL.TRIANGLE_STRIP:\n case GL.TRIANGLE_FAN:\n return vertexCount - 2;\n default:\n throw new Error('drawMode');\n }\n}\n\n// Counts the number of vertices after splitting the vertex stream into separate \"primitives\"\nexport function getVertexCount(options: {drawMode: GLDrawMode, vertexCount: number}): number {\n const {drawMode, vertexCount} = options;\n const primitiveCount = getPrimitiveCount({drawMode, vertexCount});\n switch (getPrimitiveDrawMode(drawMode)) {\n case GL.POINTS:\n return primitiveCount;\n case GL.LINES:\n return primitiveCount * 2;\n case GL.TRIANGLES:\n return primitiveCount * 3;\n default:\n throw new Error('drawMode');\n }\n}\n"],"file":"attribute-utils.js"}
@@ -5,6 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.getShaderLayout = getShaderLayout;
8
9
  exports.getProgramBindings = getProgramBindings;
9
10
 
10
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -13,23 +14,132 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
13
14
 
14
15
  var _constants = _interopRequireDefault(require("@luma.gl/constants"));
15
16
 
16
- var _webglChecks = require("../context/context/webgl-checks");
17
+ var _webglChecks = require("../../context/context/webgl-checks");
17
18
 
18
- var _accessor = _interopRequireDefault(require("../classes/accessor"));
19
+ var _accessor = _interopRequireDefault(require("../../classic/accessor"));
19
20
 
20
- var _attributeUtils = require("../webgl-utils/attribute-utils");
21
+ var _uniforms2 = require("./uniforms");
22
+
23
+ var _vertexFormats = require("../converters/vertex-formats");
21
24
 
22
25
  var _SAMPLER_UNIFORMS_GL_;
23
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
+
24
31
  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; } } }; }
25
32
 
26
33
  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); }
27
34
 
28
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; }
29
36
 
30
- 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; }
37
+ function getShaderLayout(gl, program) {
38
+ var _programBindings$unif, _programBindings$vary;
31
39
 
32
- 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; }
40
+ var programBindings = getProgramBindings(gl, program);
41
+ var shaderLayout = {
42
+ attributes: [],
43
+ bindings: []
44
+ };
45
+
46
+ var _iterator = _createForOfIteratorHelper(programBindings.attributes),
47
+ _step;
48
+
49
+ try {
50
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
51
+ var attribute = _step.value;
52
+ var format = (0, _vertexFormats.getVertexFormat)(attribute.accessor.type || _constants.default.FLOAT, attribute.accessor.size);
53
+ shaderLayout.attributes.push({
54
+ name: attribute.name,
55
+ location: attribute.location,
56
+ format: format,
57
+ stepMode: attribute.accessor.divisor === 1 ? 'instance' : 'vertex'
58
+ });
59
+ }
60
+ } catch (err) {
61
+ _iterator.e(err);
62
+ } finally {
63
+ _iterator.f();
64
+ }
65
+
66
+ var _iterator2 = _createForOfIteratorHelper(programBindings.uniformBlocks),
67
+ _step2;
68
+
69
+ try {
70
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
71
+ var uniformBlock = _step2.value;
72
+
73
+ var _uniforms = uniformBlock.uniforms.map(function (uniform) {
74
+ return {
75
+ name: uniform.name,
76
+ format: uniform.format,
77
+ byteOffset: uniform.byteOffset,
78
+ byteStride: uniform.byteStride,
79
+ arrayLength: uniform.arrayLength
80
+ };
81
+ });
82
+
83
+ shaderLayout.bindings.push({
84
+ type: 'uniform',
85
+ name: uniformBlock.name,
86
+ location: uniformBlock.location,
87
+ visibility: (uniformBlock.vertex ? 0x1 : 0) & (uniformBlock.fragment ? 0x2 : 0),
88
+ minBindingSize: uniformBlock.byteLength,
89
+ uniforms: _uniforms
90
+ });
91
+ }
92
+ } catch (err) {
93
+ _iterator2.e(err);
94
+ } finally {
95
+ _iterator2.f();
96
+ }
97
+
98
+ var textureUnit = 0;
99
+
100
+ var _iterator3 = _createForOfIteratorHelper(programBindings.uniforms),
101
+ _step3;
102
+
103
+ try {
104
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
105
+ var uniform = _step3.value;
106
+
107
+ if ((0, _uniforms2.isSamplerUniform)(uniform.type)) {
108
+ var _getSamplerInfo = getSamplerInfo(uniform.type),
109
+ viewDimension = _getSamplerInfo.viewDimension,
110
+ sampleType = _getSamplerInfo.sampleType;
111
+
112
+ shaderLayout.bindings.push({
113
+ type: 'texture',
114
+ name: uniform.name,
115
+ location: textureUnit,
116
+ viewDimension: viewDimension,
117
+ sampleType: sampleType
118
+ });
119
+ uniform.textureUnit = textureUnit;
120
+ textureUnit += 1;
121
+ }
122
+ }
123
+ } catch (err) {
124
+ _iterator3.e(err);
125
+ } finally {
126
+ _iterator3.f();
127
+ }
128
+
129
+ var uniforms = ((_programBindings$unif = programBindings.uniforms) === null || _programBindings$unif === void 0 ? void 0 : _programBindings$unif.filter(function (uniform) {
130
+ return uniform.location !== null;
131
+ })) || [];
132
+
133
+ if (uniforms.length) {
134
+ shaderLayout.uniforms = uniforms;
135
+ }
136
+
137
+ if ((_programBindings$vary = programBindings.varyings) !== null && _programBindings$vary !== void 0 && _programBindings$vary.length) {
138
+ shaderLayout.varyings = programBindings.varyings;
139
+ }
140
+
141
+ return shaderLayout;
142
+ }
33
143
 
34
144
  function getProgramBindings(gl, program) {
35
145
  var config = {
@@ -47,23 +157,32 @@ function readAttributeBindings(gl, program) {
47
157
  var count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
48
158
 
49
159
  for (var index = 0; index < count; index++) {
50
- var _gl$getActiveAttrib = gl.getActiveAttrib(program, index),
51
- name = _gl$getActiveAttrib.name,
52
- compositeType = _gl$getActiveAttrib.type,
53
- size = _gl$getActiveAttrib.size;
160
+ var activeInfo = gl.getActiveAttrib(program, index);
161
+
162
+ if (!activeInfo) {
163
+ throw new Error('activeInfo');
164
+ }
54
165
 
166
+ var name = activeInfo.name,
167
+ compositeType = activeInfo.type,
168
+ size = activeInfo.size;
55
169
  var location = gl.getAttribLocation(program, name);
56
170
 
57
171
  if (location >= 0) {
58
- var _decomposeCompositeGL = (0, _attributeUtils.decomposeCompositeGLType)(compositeType),
59
- type = _decomposeCompositeGL.type,
60
- components = _decomposeCompositeGL.components;
172
+ var _decodeAttributeType = (0, _uniforms2.decodeAttributeType)(compositeType),
173
+ glType = _decodeAttributeType.glType,
174
+ components = _decodeAttributeType.components;
61
175
 
176
+ ;
62
177
  var accessor = {
63
- type: type,
178
+ type: glType,
64
179
  size: size * components
65
180
  };
66
- inferProperties(location, name, accessor);
181
+
182
+ if (/instance/i.test(name)) {
183
+ accessor.divisor = 1;
184
+ }
185
+
67
186
  var attributeInfo = {
68
187
  location: location,
69
188
  name: name,
@@ -84,21 +203,28 @@ function readVaryings(gl, program) {
84
203
  return [];
85
204
  }
86
205
 
206
+ var gl2 = gl;
87
207
  var varyings = [];
88
- var count = gl.getProgramParameter(program, gl.TRANSFORM_FEEDBACK_VARYINGS);
208
+ var count = gl.getProgramParameter(program, _constants.default.TRANSFORM_FEEDBACK_VARYINGS);
89
209
 
90
210
  for (var location = 0; location < count; location++) {
91
- var _gl$getTransformFeedb = gl.getTransformFeedbackVarying(program, location),
92
- name = _gl$getTransformFeedb.name,
93
- compositeType = _gl$getTransformFeedb.type,
94
- size = _gl$getTransformFeedb.size;
211
+ var activeInfo = gl2.getTransformFeedbackVarying(program, location);
212
+
213
+ if (!activeInfo) {
214
+ throw new Error('activeInfo');
215
+ }
95
216
 
96
- var _decomposeCompositeGL2 = (0, _attributeUtils.decomposeCompositeGLType)(compositeType),
97
- type = _decomposeCompositeGL2.type,
98
- components = _decomposeCompositeGL2.components;
217
+ var name = activeInfo.name,
218
+ compositeType = activeInfo.type,
219
+ size = activeInfo.size;
99
220
 
221
+ var _decodeUniformType = (0, _uniforms2.decodeUniformType)(compositeType),
222
+ glType = _decodeUniformType.glType,
223
+ components = _decodeUniformType.components;
224
+
225
+ ;
100
226
  var accessor = new _accessor.default({
101
- type: type,
227
+ type: glType,
102
228
  size: size * components
103
229
  });
104
230
  var varying = {
@@ -117,13 +243,18 @@ function readVaryings(gl, program) {
117
243
 
118
244
  function readUniformBindings(gl, program) {
119
245
  var uniforms = [];
120
- var uniformCount = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);
246
+ var uniformCount = gl.getProgramParameter(program, _constants.default.ACTIVE_UNIFORMS);
121
247
 
122
248
  for (var i = 0; i < uniformCount; i++) {
123
- var _gl$getActiveUniform = gl.getActiveUniform(program, i),
124
- rawName = _gl$getActiveUniform.name,
125
- size = _gl$getActiveUniform.size,
126
- type = _gl$getActiveUniform.type;
249
+ var activeInfo = gl.getActiveUniform(program, i);
250
+
251
+ if (!activeInfo) {
252
+ throw new Error('activeInfo');
253
+ }
254
+
255
+ var rawName = activeInfo.name,
256
+ size = activeInfo.size,
257
+ type = activeInfo.type;
127
258
 
128
259
  var _parseUniformName = parseUniformName(rawName),
129
260
  name = _parseUniformName.name,
@@ -158,26 +289,54 @@ function readUniformBindings(gl, program) {
158
289
  }
159
290
 
160
291
  function readUniformBlocks(gl, program) {
292
+ if (!(0, _webglChecks.isWebGL2)(gl)) {
293
+ return [];
294
+ }
295
+
296
+ var gl2 = gl;
297
+
161
298
  var getBlockParameter = function getBlockParameter(blockIndex, pname) {
162
- return gl.getActiveUniformBlockParameter(program, blockIndex, pname);
299
+ return gl2.getActiveUniformBlockParameter(program, blockIndex, pname);
163
300
  };
164
301
 
165
302
  var uniformBlocks = [];
166
- var blockCount = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);
303
+ var blockCount = gl2.getProgramParameter(program, _constants.default.ACTIVE_UNIFORM_BLOCKS);
167
304
 
168
305
  for (var blockIndex = 0; blockIndex < blockCount; blockIndex++) {
169
306
  var blockInfo = {
170
- name: gl.getActiveUniformBlockName(program, blockIndex),
171
- location: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_BINDING),
172
- byteLength: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE),
173
- vertex: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),
174
- fragment: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),
175
- uniformCount: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS),
176
- uniformIndices: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES),
307
+ name: gl2.getActiveUniformBlockName(program, blockIndex) || '',
308
+ location: getBlockParameter(blockIndex, _constants.default.UNIFORM_BLOCK_BINDING),
309
+ byteLength: getBlockParameter(blockIndex, _constants.default.UNIFORM_BLOCK_DATA_SIZE),
310
+ vertex: getBlockParameter(blockIndex, _constants.default.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),
311
+ fragment: getBlockParameter(blockIndex, _constants.default.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),
312
+ uniformCount: getBlockParameter(blockIndex, _constants.default.UNIFORM_BLOCK_ACTIVE_UNIFORMS),
177
313
  uniforms: []
178
314
  };
315
+ var uniformIndices = getBlockParameter(blockIndex, _constants.default.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES) || [];
316
+ var uniformType = gl2.getActiveUniforms(program, uniformIndices, _constants.default.UNIFORM_TYPE);
317
+ var uniformArrayLength = gl2.getActiveUniforms(program, uniformIndices, _constants.default.UNIFORM_SIZE);
318
+ var uniformBlockIndex = gl2.getActiveUniforms(program, uniformIndices, _constants.default.UNIFORM_BLOCK_INDEX);
319
+ var uniformOffset = gl2.getActiveUniforms(program, uniformIndices, _constants.default.UNIFORM_OFFSET);
320
+ var uniformStride = gl2.getActiveUniforms(program, uniformIndices, _constants.default.UNIFORM_ARRAY_STRIDE);
321
+ var uniformMatrixStride = gl2.getActiveUniforms(program, uniformIndices, _constants.default.UNIFORM_MATRIX_STRIDE);
322
+ var uniformRowMajor = gl2.getActiveUniforms(program, uniformIndices, _constants.default.UNIFORM_IS_ROW_MAJOR);
323
+
324
+ for (var i = 0; i < blockInfo.uniformCount; ++i) {
325
+ var activeInfo = gl2.getActiveUniform(program, uniformIndices[i]);
326
+
327
+ if (!activeInfo) {
328
+ throw new Error('activeInfo');
329
+ }
179
330
 
180
- for (var uniformIndex = 0; uniformIndex < blockInfo.uniformCount; ++uniformIndex) {}
331
+ blockInfo.uniforms.push({
332
+ name: activeInfo.name,
333
+ format: (0, _uniforms2.decodeUniformType)(uniformType[i]).format,
334
+ type: uniformType[i],
335
+ arrayLength: uniformArrayLength[i],
336
+ byteOffset: uniformOffset[i],
337
+ byteStride: uniformStride[i]
338
+ });
339
+ }
181
340
 
182
341
  uniformBlocks.push(blockInfo);
183
342
  }
@@ -188,59 +347,23 @@ function readUniformBlocks(gl, program) {
188
347
  return uniformBlocks;
189
348
  }
190
349
 
191
- 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', 'sint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.UNSIGNED_INT_SAMPLER_2D, ['2d', 'sint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.UNSIGNED_INT_SAMPLER_3D, ['3d', 'sint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.UNSIGNED_INT_SAMPLER_CUBE, ['cube', 'sint']), (0, _defineProperty2.default)(_SAMPLER_UNIFORMS_GL_, _constants.default.UNSIGNED_INT_SAMPLER_2D_ARRAY, ['2d-array', 'sint']), _SAMPLER_UNIFORMS_GL_);
192
-
193
- function generateWebGPUStyleBindings(config) {
194
- var bindings = [];
350
+ 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_);
195
351
 
196
- var _iterator = _createForOfIteratorHelper(config.uniformBlocks),
197
- _step;
352
+ function getSamplerInfo(type) {
353
+ var sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];
198
354
 
199
- try {
200
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
201
- var blockInfo = _step.value;
202
- bindings.push({
203
- binding: blockInfo.location,
204
- visibility: (blockInfo.vertex ? 0x1 : 0) & (blockInfo.fragment ? 0x2 : 0),
205
- buffer: {
206
- type: 'uniform'
207
- }
208
- });
209
- }
210
- } catch (err) {
211
- _iterator.e(err);
212
- } finally {
213
- _iterator.f();
355
+ if (!sampler) {
356
+ throw new Error('sampler');
214
357
  }
215
358
 
216
- var _iterator2 = _createForOfIteratorHelper(config.uniforms),
217
- _step2;
359
+ var _sampler = (0, _slicedToArray2.default)(sampler, 2),
360
+ viewDimension = _sampler[0],
361
+ sampleType = _sampler[1];
218
362
 
219
- try {
220
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
221
- var uniformInfo = _step2.value;
222
- var sampler = SAMPLER_UNIFORMS_GL_TO_GPU[uniformInfo.type];
223
-
224
- if (sampler) {
225
- var _sampler = (0, _slicedToArray2.default)(sampler, 2),
226
- viewDimension = _sampler[0],
227
- sampleType = _sampler[1];
228
-
229
- bindings.push({
230
- binding: uniformInfo.location,
231
- visibility: 0,
232
- texture: {
233
- viewDimension: viewDimension,
234
- sampleType: sampleType
235
- }
236
- });
237
- }
238
- }
239
- } catch (err) {
240
- _iterator2.e(err);
241
- } finally {
242
- _iterator2.f();
243
- }
363
+ return {
364
+ viewDimension: viewDimension,
365
+ sampleType: sampleType
366
+ };
244
367
  }
245
368
 
246
369
  function parseUniformName(name) {
@@ -261,14 +384,8 @@ function parseUniformName(name) {
261
384
 
262
385
  return {
263
386
  name: matches[1],
264
- length: matches[2] || 1,
387
+ length: matches[2] ? 1 : 0,
265
388
  isArray: Boolean(matches[2])
266
389
  };
267
390
  }
268
-
269
- function inferProperties(accessor, location, name) {
270
- if (/instance/i.test(name)) {
271
- accessor.divisor = 1;
272
- }
273
- }
274
- //# sourceMappingURL=get-program-bindings.js.map
391
+ //# sourceMappingURL=get-shader-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/adapter/helpers/get-shader-layout.ts"],"names":["getShaderLayout","gl","program","programBindings","getProgramBindings","shaderLayout","attributes","bindings","attribute","format","accessor","type","GL","FLOAT","size","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","uniformBlockIndex","UNIFORM_BLOCK_INDEX","uniformOffset","UNIFORM_OFFSET","uniformStride","UNIFORM_ARRAY_STRIDE","uniformMatrixStride","UNIFORM_MATRIX_STRIDE","uniformRowMajor","UNIFORM_IS_ROW_MAJOR","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":";;;;;;;;;;;;;;AAaA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAOO,SAASA,eAAT,CAAyBC,EAAzB,EAAoDC,OAApD,EAAyF;AAAA;;AAC9F,MAAMC,eAAe,GAAGC,kBAAkB,CAACH,EAAD,EAAKC,OAAL,CAA1C;AAEA,MAAMG,YAA0B,GAAG;AACjCC,IAAAA,UAAU,EAAE,EADqB;AAEjCC,IAAAA,QAAQ,EAAE;AAFuB,GAAnC;;AAH8F,6CAQtEJ,eAAe,CAACG,UARsD;AAAA;;AAAA;AAQ9F,wDAAoD;AAAA,UAAzCE,SAAyC;AAClD,UAAMC,MAAM,GAEV,oCAAgBD,SAAS,CAACE,QAAV,CAAmBC,IAAnB,IAA2BC,mBAAGC,KAA9C,EAAqDL,SAAS,CAACE,QAAV,CAAmBI,IAAxE,CAFF;AAGAT,MAAAA,YAAY,CAACC,UAAb,CAAwBS,IAAxB,CAA6B;AAC3BC,QAAAA,IAAI,EAAER,SAAS,CAACQ,IADW;AAE3BC,QAAAA,QAAQ,EAAET,SAAS,CAACS,QAFO;AAG3BR,QAAAA,MAAM,EAANA,MAH2B;AAI3BS,QAAAA,QAAQ,EAAEV,SAAS,CAACE,QAAV,CAAmBS,OAAnB,KAA+B,CAA/B,GAAmC,UAAnC,GAAgD;AAJ/B,OAA7B;AAMD;AAlB6F;AAAA;AAAA;AAAA;AAAA;;AAAA,8CAqBnEhB,eAAe,CAACiB,aArBmD;AAAA;;AAAA;AAqB9F,2DAA0D;AAAA,UAA/CC,YAA+C;;AACxD,UAAMC,SAAQ,GAAGD,YAAY,CAACC,QAAb,CAAsBC,GAAtB,CAA0B,UAACC,OAAD;AAAA,eAAc;AACvDR,UAAAA,IAAI,EAAEQ,OAAO,CAACR,IADyC;AAEvDP,UAAAA,MAAM,EAAEe,OAAO,CAACf,MAFuC;AAGvDgB,UAAAA,UAAU,EAAED,OAAO,CAACC,UAHmC;AAIvDC,UAAAA,UAAU,EAAEF,OAAO,CAACE,UAJmC;AAKvDC,UAAAA,WAAW,EAAEH,OAAO,CAACG;AALkC,SAAd;AAAA,OAA1B,CAAjB;;AAOAtB,MAAAA,YAAY,CAACE,QAAb,CAAsBQ,IAAtB,CAA2B;AACzBJ,QAAAA,IAAI,EAAE,SADmB;AAEzBK,QAAAA,IAAI,EAAEK,YAAY,CAACL,IAFM;AAGzBC,QAAAA,QAAQ,EAAEI,YAAY,CAACJ,QAHE;AAIzBW,QAAAA,UAAU,EAAE,CAACP,YAAY,CAACQ,MAAb,GAAsB,GAAtB,GAA4B,CAA7B,KAAmCR,YAAY,CAACS,QAAb,GAAwB,GAAxB,GAA8B,CAAjE,CAJa;AAKzBC,QAAAA,cAAc,EAAEV,YAAY,CAACW,UALJ;AAMzBV,QAAAA,QAAQ,EAARA;AANyB,OAA3B;AAQD;AArC6F;AAAA;AAAA;AAAA;AAAA;;AAuC9F,MAAIW,WAAW,GAAG,CAAlB;;AAvC8F,8CAwCxE9B,eAAe,CAACmB,QAxCwD;AAAA;;AAAA;AAwC9F,2DAAgD;AAAA,UAArCE,OAAqC;;AAC9C,UAAI,iCAAiBA,OAAO,CAACb,IAAzB,CAAJ,EAAoC;AAClC,8BAAoCuB,cAAc,CAACV,OAAO,CAACb,IAAT,CAAlD;AAAA,YAAOwB,aAAP,mBAAOA,aAAP;AAAA,YAAsBC,UAAtB,mBAAsBA,UAAtB;;AACA/B,QAAAA,YAAY,CAACE,QAAb,CAAsBQ,IAAtB,CAA2B;AACzBJ,UAAAA,IAAI,EAAE,SADmB;AAEzBK,UAAAA,IAAI,EAAEQ,OAAO,CAACR,IAFW;AAGzBC,UAAAA,QAAQ,EAAEgB,WAHe;AAIzBE,UAAAA,aAAa,EAAbA,aAJyB;AAKzBC,UAAAA,UAAU,EAAVA;AALyB,SAA3B;AASAZ,QAAAA,OAAO,CAACS,WAAR,GAAsBA,WAAtB;AACAA,QAAAA,WAAW,IAAI,CAAf;AACD;AACF;AAvD6F;AAAA;AAAA;AAAA;AAAA;;AAyD9F,MAAMX,QAAQ,GAAG,0BAAAnB,eAAe,CAACmB,QAAhB,gFAA0Be,MAA1B,CAAiC,UAACb,OAAD;AAAA,WAAaA,OAAO,CAACP,QAAR,KAAqB,IAAlC;AAAA,GAAjC,MAA4E,EAA7F;;AACA,MAAIK,QAAQ,CAACgB,MAAb,EAAqB;AACnBjC,IAAAA,YAAY,CAACiB,QAAb,GAAwBA,QAAxB;AACD;;AACD,+BAAInB,eAAe,CAACoC,QAApB,kDAAI,sBAA0BD,MAA9B,EAAsC;AACpCjC,IAAAA,YAAY,CAACkC,QAAb,GAAwBpC,eAAe,CAACoC,QAAxC;AACD;;AAED,SAAOlC,YAAP;AACD;;AAOM,SAASD,kBAAT,CACLH,EADK,EAELC,OAFK,EAGY;AACjB,MAAMsC,MAAuB,GAAG;AAC9BlC,IAAAA,UAAU,EAAEmC,qBAAqB,CAACxC,EAAD,EAAKC,OAAL,CADH;AAE9BoB,IAAAA,QAAQ,EAAEoB,mBAAmB,CAACzC,EAAD,EAAKC,OAAL,CAFC;AAG9BkB,IAAAA,aAAa,EAAEuB,iBAAiB,CAAC1C,EAAD,EAAKC,OAAL,CAHF;AAI9BqC,IAAAA,QAAQ,EAAEK,YAAY,CAAC3C,EAAD,EAAKC,OAAL;AAJQ,GAAhC;AAOA2C,EAAAA,MAAM,CAACC,IAAP,CAAYN,MAAZ;AACA,SAAOA,MAAP;AAED;;AAOD,SAASC,qBAAT,CACExC,EADF,EAEEC,OAFF,EAGsB;AACpB,MAAMI,UAA8B,GAAG,EAAvC;AAEA,MAAMyC,KAAK,GAAG9C,EAAE,CAAC+C,mBAAH,CAAuB9C,OAAvB,EAAgCD,EAAE,CAACgD,iBAAnC,CAAd;;AAEA,OAAK,IAAIC,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGH,KAA5B,EAAmCG,KAAK,EAAxC,EAA4C;AAC1C,QAAMC,UAAU,GAAGlD,EAAE,CAACmD,eAAH,CAAmBlD,OAAnB,EAA4BgD,KAA5B,CAAnB;;AACA,QAAI,CAACC,UAAL,EAAiB;AACf,YAAM,IAAIE,KAAJ,CAAU,YAAV,CAAN;AACD;;AACD,QAAOrC,IAAP,GAA0CmC,UAA1C,CAAOnC,IAAP;AAAA,QAAmBsC,aAAnB,GAA0CH,UAA1C,CAAaxC,IAAb;AAAA,QAAkCG,IAAlC,GAA0CqC,UAA1C,CAAkCrC,IAAlC;AACA,QAAMG,QAAQ,GAAGhB,EAAE,CAACsD,iBAAH,CAAqBrD,OAArB,EAA8Bc,IAA9B,CAAjB;;AAGA,QAAIC,QAAQ,IAAI,CAAhB,EAAmB;AACjB,iCAA6B,oCAAoBqC,aAApB,CAA7B;AAAA,UAAOE,MAAP,wBAAOA,MAAP;AAAA,UAAeC,UAAf,wBAAeA,UAAf;;AAAgE;AAChE,UAAM/C,QAAwB,GAAG;AAACC,QAAAA,IAAI,EAAE6C,MAAP;AAAe1C,QAAAA,IAAI,EAAEA,IAAI,GAAG2C;AAA5B,OAAjC;;AAEA,UAAI,YAAYC,IAAZ,CAAiB1C,IAAjB,CAAJ,EAA4B;AAC1BN,QAAAA,QAAQ,CAACS,OAAT,GAAmB,CAAnB;AACD;;AACD,UAAMwC,aAAa,GAAG;AAAC1C,QAAAA,QAAQ,EAARA,QAAD;AAAWD,QAAAA,IAAI,EAAJA,IAAX;AAAiBN,QAAAA,QAAQ,EAAE,IAAIkD,iBAAJ,CAAalD,QAAb;AAA3B,OAAtB;AACAJ,MAAAA,UAAU,CAACS,IAAX,CAAgB4C,aAAhB;AACD;AACF;;AAEDrD,EAAAA,UAAU,CAACuD,IAAX,CAAgB,UAACC,CAAD,EAAsBC,CAAtB;AAAA,WAA8CD,CAAC,CAAC7C,QAAF,GAAa8C,CAAC,CAAC9C,QAA7D;AAAA,GAAhB;AACA,SAAOX,UAAP;AACD;;AAOD,SAASsC,YAAT,CAAsB3C,EAAtB,EAAiDC,OAAjD,EAA0F;AACxF,MAAI,CAAC,2BAASD,EAAT,CAAL,EAAmB;AACjB,WAAO,EAAP;AACD;;AACD,MAAM+D,GAAG,GAAG/D,EAAZ;AAEA,MAAMsC,QAA0B,GAAG,EAAnC;AAEA,MAAMQ,KAAK,GAAG9C,EAAE,CAAC+C,mBAAH,CAAuB9C,OAAvB,EAAgCU,mBAAGqD,2BAAnC,CAAd;;AACA,OAAK,IAAIhD,QAAQ,GAAG,CAApB,EAAuBA,QAAQ,GAAG8B,KAAlC,EAAyC9B,QAAQ,EAAjD,EAAqD;AACnD,QAAMkC,UAAU,GAAGa,GAAG,CAACE,2BAAJ,CAAgChE,OAAhC,EAAyCe,QAAzC,CAAnB;;AACA,QAAI,CAACkC,UAAL,EAAiB;AACf,YAAM,IAAIE,KAAJ,CAAU,YAAV,CAAN;AACD;;AACD,QAAOrC,IAAP,GAA0CmC,UAA1C,CAAOnC,IAAP;AAAA,QAAmBsC,aAAnB,GAA0CH,UAA1C,CAAaxC,IAAb;AAAA,QAAkCG,IAAlC,GAA0CqC,UAA1C,CAAkCrC,IAAlC;;AACA,6BAA6B,kCAAkBwC,aAAlB,CAA7B;AAAA,QAAOE,MAAP,sBAAOA,MAAP;AAAA,QAAeC,UAAf,sBAAeA,UAAf;;AAA8D;AAC9D,QAAM/C,QAAQ,GAAG,IAAIkD,iBAAJ,CAAa;AAACjD,MAAAA,IAAI,EAAE6C,MAAP;AAAe1C,MAAAA,IAAI,EAAEA,IAAI,GAAG2C;AAA5B,KAAb,CAAjB;AACA,QAAMU,OAAO,GAAG;AAAClD,MAAAA,QAAQ,EAARA,QAAD;AAAWD,MAAAA,IAAI,EAAJA,IAAX;AAAiBN,MAAAA,QAAQ,EAARA;AAAjB,KAAhB;AACA6B,IAAAA,QAAQ,CAACxB,IAAT,CAAcoD,OAAd;AACD;;AAED5B,EAAAA,QAAQ,CAACsB,IAAT,CAAc,UAACC,CAAD,EAAIC,CAAJ;AAAA,WAAUD,CAAC,CAAC7C,QAAF,GAAa8C,CAAC,CAAC9C,QAAzB;AAAA,GAAd;AACA,SAAOsB,QAAP;AACD;;AAOD,SAASG,mBAAT,CAA6BzC,EAA7B,EAAwDC,OAAxD,EAAiG;AAC/F,MAAMoB,QAA0B,GAAG,EAAnC;AAEA,MAAM8C,YAAY,GAAGnE,EAAE,CAAC+C,mBAAH,CAAuB9C,OAAvB,EAAgCU,mBAAGyD,eAAnC,CAArB;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,YAApB,EAAkCE,CAAC,EAAnC,EAAuC;AACrC,QAAMnB,UAAU,GAAGlD,EAAE,CAACsE,gBAAH,CAAoBrE,OAApB,EAA6BoE,CAA7B,CAAnB;;AACA,QAAI,CAACnB,UAAL,EAAiB;AACf,YAAM,IAAIE,KAAJ,CAAU,YAAV,CAAN;AACD;;AACD,QAAamB,OAAb,GAAoCrB,UAApC,CAAOnC,IAAP;AAAA,QAAsBF,IAAtB,GAAoCqC,UAApC,CAAsBrC,IAAtB;AAAA,QAA4BH,IAA5B,GAAoCwC,UAApC,CAA4BxC,IAA5B;;AACA,4BAAwB8D,gBAAgB,CAACD,OAAD,CAAxC;AAAA,QAAOxD,IAAP,qBAAOA,IAAP;AAAA,QAAa0D,OAAb,qBAAaA,OAAb;;AACA,QAAIC,aAAa,GAAG1E,EAAE,CAAC2E,kBAAH,CAAsB1E,OAAtB,EAA+Bc,IAA/B,CAApB;AACA,QAAM6D,WAAW,GAAG;AAElB5D,MAAAA,QAAQ,EAAE0D,aAFQ;AAGlB3D,MAAAA,IAAI,EAAJA,IAHkB;AAIlBF,MAAAA,IAAI,EAAJA,IAJkB;AAKlBH,MAAAA,IAAI,EAAJA,IALkB;AAMlB+D,MAAAA,OAAO,EAAPA;AANkB,KAApB;AAQApD,IAAAA,QAAQ,CAACP,IAAT,CAAc8D,WAAd;;AAGA,QAAIA,WAAW,CAAC/D,IAAZ,GAAmB,CAAvB,EAA0B;AACxB,WAAK,IAAIgE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,WAAW,CAAC/D,IAAhC,EAAsCgE,CAAC,EAAvC,EAA2C;AACzC,YAAMC,WAAW,aAAM/D,IAAN,cAAc8D,CAAd,MAAjB;AAEAH,QAAAA,aAAa,GAAG1E,EAAE,CAAC2E,kBAAH,CAAsB1E,OAAtB,EAA+B6E,WAA/B,CAAhB;;AAEA,YAAMC,uBAAuB,mCACxBH,WADwB;AAE3B7D,UAAAA,IAAI,EAAE+D,WAFqB;AAG3B9D,UAAAA,QAAQ,EAAE0D;AAHiB,UAA7B;;AAMArD,QAAAA,QAAQ,CAACP,IAAT,CAAciE,uBAAd;AACD;AACF;AACF;;AACD,SAAO1D,QAAP;AACD;;AAQD,SAASqB,iBAAT,CACE1C,EADF,EAEEC,OAFF,EAGyB;AACvB,MAAI,CAAC,2BAASD,EAAT,CAAL,EAAmB;AACjB,WAAO,EAAP;AACD;;AACD,MAAM+D,GAAG,GAAG/D,EAAZ;;AAEA,MAAMgF,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,UAAD,EAAqBC,KAArB;AAAA,WACxBnB,GAAG,CAACoB,8BAAJ,CAAmClF,OAAnC,EAA4CgF,UAA5C,EAAwDC,KAAxD,CADwB;AAAA,GAA1B;;AAGA,MAAM/D,aAAoC,GAAG,EAA7C;AAEA,MAAMiE,UAAU,GAAGrB,GAAG,CAAChB,mBAAJ,CAAwB9C,OAAxB,EAAiCU,mBAAG0E,qBAApC,CAAnB;;AACA,OAAK,IAAIJ,UAAU,GAAG,CAAtB,EAAyBA,UAAU,GAAGG,UAAtC,EAAkDH,UAAU,EAA5D,EAAgE;AAC9D,QAAMK,SAA8B,GAAG;AACrCvE,MAAAA,IAAI,EAAEgD,GAAG,CAACwB,yBAAJ,CAA8BtF,OAA9B,EAAuCgF,UAAvC,KAAsD,EADvB;AAErCjE,MAAAA,QAAQ,EAAEgE,iBAAiB,CAACC,UAAD,EAAatE,mBAAG6E,qBAAhB,CAFU;AAGrCzD,MAAAA,UAAU,EAAEiD,iBAAiB,CAACC,UAAD,EAAatE,mBAAG8E,uBAAhB,CAHQ;AAIrC7D,MAAAA,MAAM,EAAEoD,iBAAiB,CAACC,UAAD,EAAatE,mBAAG+E,yCAAhB,CAJY;AAKrC7D,MAAAA,QAAQ,EAAEmD,iBAAiB,CAACC,UAAD,EAAatE,mBAAGgF,2CAAhB,CALU;AAMrCxB,MAAAA,YAAY,EAAEa,iBAAiB,CAACC,UAAD,EAAatE,mBAAGiF,6BAAhB,CANM;AAOrCvE,MAAAA,QAAQ,EAAE;AAP2B,KAAvC;AAUA,QAAMwE,cAAc,GAAGb,iBAAiB,CAACC,UAAD,EAAatE,mBAAGmF,oCAAhB,CAAjB,IAAsF,EAA7G;AAEA,QAAMC,WAAW,GAAGhC,GAAG,CAACiC,iBAAJ,CAAsB/F,OAAtB,EAA+B4F,cAA/B,EAA+ClF,mBAAGsF,YAAlD,CAApB;AACA,QAAMC,kBAAkB,GAAGnC,GAAG,CAACiC,iBAAJ,CAAsB/F,OAAtB,EAA+B4F,cAA/B,EAA+ClF,mBAAGwF,YAAlD,CAA3B;AACA,QAAMC,iBAAiB,GAAGrC,GAAG,CAACiC,iBAAJ,CACxB/F,OADwB,EAExB4F,cAFwB,EAGxBlF,mBAAG0F,mBAHqB,CAA1B;AAKA,QAAMC,aAAa,GAAGvC,GAAG,CAACiC,iBAAJ,CAAsB/F,OAAtB,EAA+B4F,cAA/B,EAA+ClF,mBAAG4F,cAAlD,CAAtB;AACA,QAAMC,aAAa,GAAGzC,GAAG,CAACiC,iBAAJ,CAAsB/F,OAAtB,EAA+B4F,cAA/B,EAA+ClF,mBAAG8F,oBAAlD,CAAtB;AACA,QAAMC,mBAAmB,GAAG3C,GAAG,CAACiC,iBAAJ,CAC1B/F,OAD0B,EAE1B4F,cAF0B,EAG1BlF,mBAAGgG,qBAHuB,CAA5B;AAKA,QAAMC,eAAe,GAAG7C,GAAG,CAACiC,iBAAJ,CAAsB/F,OAAtB,EAA+B4F,cAA/B,EAA+ClF,mBAAGkG,oBAAlD,CAAxB;;AACA,SAAK,IAAIxC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiB,SAAS,CAACnB,YAA9B,EAA4C,EAAEE,CAA9C,EAAiD;AAC/C,UAAMnB,UAAU,GAAGa,GAAG,CAACO,gBAAJ,CAAqBrE,OAArB,EAA8B4F,cAAc,CAACxB,CAAD,CAA5C,CAAnB;;AACA,UAAI,CAACnB,UAAL,EAAiB;AACf,cAAM,IAAIE,KAAJ,CAAU,YAAV,CAAN;AACD;;AAEDkC,MAAAA,SAAS,CAACjE,QAAV,CAAmBP,IAAnB,CAAwB;AACtBC,QAAAA,IAAI,EAAEmC,UAAU,CAACnC,IADK;AAEtBP,QAAAA,MAAM,EAAE,kCAAkBuF,WAAW,CAAC1B,CAAD,CAA7B,EAAkC7D,MAFpB;AAGtBE,QAAAA,IAAI,EAAEqF,WAAW,CAAC1B,CAAD,CAHK;AAItB3C,QAAAA,WAAW,EAAEwE,kBAAkB,CAAC7B,CAAD,CAJT;AAKtB7C,QAAAA,UAAU,EAAE8E,aAAa,CAACjC,CAAD,CALH;AAMtB5C,QAAAA,UAAU,EAAE+E,aAAa,CAACnC,CAAD;AANH,OAAxB;AAUD;;AAEDlD,IAAAA,aAAa,CAACL,IAAd,CAAmBwE,SAAnB;AACD;;AAEDnE,EAAAA,aAAa,CAACyC,IAAd,CAAmB,UAACC,CAAD,EAAIC,CAAJ;AAAA,WAAUD,CAAC,CAAC7C,QAAF,GAAa8C,CAAC,CAAC9C,QAAzB;AAAA,GAAnB;AACA,SAAOG,aAAP;AACD;;AAED,IAAM2F,0BAML,qFACEnG,mBAAGoG,UADL,EACkB,CAAC,IAAD,EAAO,OAAP,CADlB,wDAEEpG,mBAAGqG,YAFL,EAEoB,CAAC,MAAD,EAAS,OAAT,CAFpB,wDAGErG,mBAAGsG,UAHL,EAGkB,CAAC,IAAD,EAAO,OAAP,CAHlB,wDAIEtG,mBAAGuG,iBAJL,EAIyB,CAAC,IAAD,EAAO,OAAP,CAJzB,wDAKEvG,mBAAGwG,gBALL,EAKwB,CAAC,UAAD,EAAa,OAAb,CALxB,wDAMExG,mBAAGyG,uBANL,EAM+B,CAAC,UAAD,EAAa,OAAb,CAN/B,wDAOEzG,mBAAG0G,mBAPL,EAO2B,CAAC,MAAD,EAAS,OAAT,CAP3B,wDAQE1G,mBAAG2G,cARL,EAQsB,CAAC,IAAD,EAAO,MAAP,CARtB,wDASE3G,mBAAG4G,cATL,EASsB,CAAC,IAAD,EAAO,MAAP,CATtB,wDAUE5G,mBAAG6G,gBAVL,EAUwB,CAAC,MAAD,EAAS,MAAT,CAVxB,wDAWE7G,mBAAG8G,oBAXL,EAW4B,CAAC,UAAD,EAAa,MAAb,CAX5B,wDAYE9G,mBAAG+G,uBAZL,EAY+B,CAAC,IAAD,EAAO,MAAP,CAZ/B,wDAaE/G,mBAAGgH,uBAbL,EAa+B,CAAC,IAAD,EAAO,MAAP,CAb/B,wDAcEhH,mBAAGiH,yBAdL,EAciC,CAAC,MAAD,EAAS,MAAT,CAdjC,wDAeEjH,mBAAGkH,6BAfL,EAeqC,CAAC,UAAD,EAAa,MAAb,CAfrC,yBAND;;AA6BA,SAAS5F,cAAT,CAAwBvB,IAAxB,EAA+C;AAC7C,MAAIoH,OAAO,GAAGhB,0BAA0B,CAACpG,IAAD,CAAxC;;AACA,MAAI,CAACoH,OAAL,EAAc;AACZ,UAAM,IAAI1E,KAAJ,CAAU,SAAV,CAAN;AACD;;AACD,8CAAoC0E,OAApC;AAAA,MAAO5F,aAAP;AAAA,MAAsBC,UAAtB;;AACA,SAAO;AAACD,IAAAA,aAAa,EAAbA,aAAD;AAAgBC,IAAAA,UAAU,EAAVA;AAAhB,GAAP;AACD;;AAID,SAASqC,gBAAT,CAA0BzD,IAA1B,EAA0F;AAExF,MAAIA,IAAI,CAACA,IAAI,CAACsB,MAAL,GAAc,CAAf,CAAJ,KAA0B,GAA9B,EAAmC;AACjC,WAAO;AACLtB,MAAAA,IAAI,EAAJA,IADK;AAELsB,MAAAA,MAAM,EAAE,CAFH;AAGLoC,MAAAA,OAAO,EAAE;AAHJ,KAAP;AAKD;;AAGD,MAAMsD,mBAAmB,GAAG,sBAA5B;AACA,MAAMC,OAAO,GAAGjH,IAAI,CAACkH,KAAL,CAAWF,mBAAX,CAAhB;;AACA,MAAI,CAACC,OAAD,IAAYA,OAAO,CAAC3F,MAAR,GAAiB,CAAjC,EAAoC;AAClC,UAAM,IAAIe,KAAJ,6CAA+CrC,IAA/C,EAAN;AACD;;AAED,SAAO;AACLA,IAAAA,IAAI,EAAEiH,OAAO,CAAC,CAAD,CADR;AAEL3F,IAAAA,MAAM,EAAE2F,OAAO,CAAC,CAAD,CAAP,GAAa,CAAb,GAAiB,CAFpB;AAGLvD,IAAAA,OAAO,EAAEyD,OAAO,CAACF,OAAO,CAAC,CAAD,CAAR;AAHX,GAAP;AAKD","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 * 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 const format =\n // attribute.accessor.format ||\n getVertexFormat(attribute.accessor.type || GL.FLOAT, attribute.accessor.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, 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"}
@@ -0,0 +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"}