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

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 (420) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +117 -200
  3. package/dist/adapter/converters/device-parameters.js.map +1 -0
  4. package/dist/adapter/converters/renderbuffer-formats.d.ts +1 -1
  5. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
  6. package/dist/adapter/converters/renderbuffer-formats.js +172 -62
  7. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
  8. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  9. package/dist/adapter/converters/sampler-parameters.js +151 -149
  10. package/dist/adapter/converters/sampler-parameters.js.map +1 -0
  11. package/dist/adapter/converters/texture-formats.d.ts +2 -2
  12. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  13. package/dist/adapter/converters/texture-formats.js +847 -438
  14. package/dist/adapter/converters/texture-formats.js.map +1 -0
  15. package/dist/adapter/converters/vertex-formats.js +24 -15
  16. package/dist/adapter/converters/vertex-formats.js.map +1 -0
  17. package/dist/adapter/device-helpers/device-features.js +84 -120
  18. package/dist/adapter/device-helpers/device-features.js.map +1 -0
  19. package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
  20. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  21. package/dist/adapter/device-helpers/device-limits.js +83 -88
  22. package/dist/adapter/device-helpers/device-limits.js.map +1 -0
  23. package/dist/adapter/device-helpers/get-device-info.js +37 -42
  24. package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
  25. package/dist/adapter/device-helpers/is-old-ie.js +8 -10
  26. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
  27. package/dist/adapter/helpers/attribute-utils.js +57 -50
  28. package/dist/adapter/helpers/attribute-utils.js.map +1 -0
  29. package/dist/adapter/helpers/get-shader-info.d.ts +1 -1
  30. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -1
  31. package/dist/adapter/helpers/get-shader-info.js +19 -21
  32. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  33. package/dist/adapter/helpers/get-shader-layout.js +251 -310
  34. package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
  35. package/dist/adapter/helpers/parse-shader-compiler-log.js +26 -32
  36. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  37. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  38. package/dist/adapter/helpers/set-uniform.js +80 -67
  39. package/dist/adapter/helpers/set-uniform.js.map +1 -0
  40. package/dist/adapter/helpers/uniforms.js +75 -80
  41. package/dist/adapter/helpers/uniforms.js.map +1 -0
  42. package/dist/adapter/objects/constants-to-keys.js +26 -33
  43. package/dist/adapter/objects/constants-to-keys.js.map +1 -0
  44. package/dist/adapter/objects/webgl-renderbuffer.d.ts +1 -1
  45. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  46. package/dist/adapter/objects/webgl-renderbuffer.js +70 -67
  47. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
  48. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  49. package/dist/adapter/objects/webgl-resource.js +158 -213
  50. package/dist/adapter/objects/webgl-resource.js.map +1 -0
  51. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
  52. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  53. package/dist/adapter/objects/webgl-vertex-array-object.js +66 -74
  54. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  55. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  56. package/dist/adapter/resources/webgl-buffer.js +118 -150
  57. package/dist/adapter/resources/webgl-buffer.js.map +1 -0
  58. package/dist/adapter/resources/webgl-command-buffer.d.ts +5 -5
  59. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  60. package/dist/adapter/resources/webgl-command-buffer.js +41 -40
  61. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
  62. package/dist/adapter/resources/webgl-command-encoder.js +37 -26
  63. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
  64. package/dist/adapter/resources/webgl-external-texture.js +1 -91
  65. package/dist/adapter/resources/webgl-external-texture.js.map +1 -0
  66. package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
  67. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  68. package/dist/adapter/resources/webgl-framebuffer.js +198 -231
  69. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
  70. package/dist/adapter/resources/webgl-render-pass.js +11 -8
  71. package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
  72. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  73. package/dist/adapter/resources/webgl-render-pipeline.js +289 -316
  74. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
  75. package/dist/adapter/resources/webgl-sampler.js +35 -42
  76. package/dist/adapter/resources/webgl-sampler.js.map +1 -0
  77. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  78. package/dist/adapter/resources/webgl-shader.js +53 -57
  79. package/dist/adapter/resources/webgl-shader.js.map +1 -0
  80. package/dist/adapter/resources/webgl-texture.d.ts +4 -4
  81. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  82. package/dist/adapter/resources/webgl-texture.js +697 -661
  83. package/dist/adapter/resources/webgl-texture.js.map +1 -0
  84. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  85. package/dist/adapter/webgl-canvas-context.js +35 -55
  86. package/dist/adapter/webgl-canvas-context.js.map +1 -0
  87. package/dist/adapter/webgl-device.d.ts +5 -0
  88. package/dist/adapter/webgl-device.d.ts.map +1 -1
  89. package/dist/adapter/webgl-device.js +270 -287
  90. package/dist/adapter/webgl-device.js.map +1 -0
  91. package/dist/classic/accessor.js +103 -120
  92. package/dist/classic/accessor.js.map +1 -0
  93. package/dist/classic/buffer.d.ts +1 -1
  94. package/dist/classic/buffer.d.ts.map +1 -1
  95. package/dist/classic/buffer.js +300 -325
  96. package/dist/classic/buffer.js.map +1 -0
  97. package/dist/classic/typed-array-utils.d.ts +1 -1
  98. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  99. package/dist/classic/typed-array-utils.js +81 -91
  100. package/dist/classic/typed-array-utils.js.map +1 -0
  101. package/dist/context/context/create-browser-context.d.ts +3 -1
  102. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  103. package/dist/context/context/create-browser-context.js +49 -66
  104. package/dist/context/context/create-browser-context.js.map +1 -0
  105. package/dist/context/context/create-headless-context.d.ts +1 -1
  106. package/dist/context/context/create-headless-context.d.ts.map +1 -1
  107. package/dist/context/context/create-headless-context.js +30 -24
  108. package/dist/context/context/create-headless-context.js.map +1 -0
  109. package/dist/context/context/webgl-checks.js +17 -25
  110. package/dist/context/context/webgl-checks.js.map +1 -0
  111. package/dist/context/debug/spector.d.ts +3 -1
  112. package/dist/context/debug/spector.d.ts.map +1 -1
  113. package/dist/context/debug/spector.js +50 -53
  114. package/dist/context/debug/spector.js.map +1 -0
  115. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  116. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  117. package/dist/context/debug/webgl-developer-tools.js +76 -107
  118. package/dist/context/debug/webgl-developer-tools.js.map +1 -0
  119. package/dist/context/parameters/unified-parameter-api.js +46 -93
  120. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  121. package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
  122. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  123. package/dist/context/parameters/webgl-parameter-tables.js +404 -462
  124. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  125. package/dist/context/polyfill/context-data.js +10 -16
  126. package/dist/context/polyfill/context-data.js.map +1 -0
  127. package/dist/context/polyfill/get-parameter-polyfill.js +71 -91
  128. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  129. package/dist/context/polyfill/polyfill-context.js +73 -75
  130. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  131. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  132. package/dist/context/polyfill/polyfill-table.js +116 -133
  133. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  134. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  135. package/dist/context/polyfill/polyfill-vertex-array-object.js +227 -255
  136. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  137. package/dist/context/state-tracker/deep-array-equal.js +14 -16
  138. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  139. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  140. package/dist/context/state-tracker/track-context-state.js +127 -183
  141. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  142. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  143. package/dist/context/state-tracker/with-parameters.js +29 -43
  144. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  145. package/dist/dist.dev.js +9205 -0
  146. package/dist/index.cjs +5948 -0
  147. package/dist/index.d.ts +0 -2
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +25 -41
  150. package/dist/index.js.map +1 -0
  151. package/dist/types/webgl.d.ts +16 -16
  152. package/dist/types/webgl.d.ts.map +1 -1
  153. package/dist/types/webgl.js +1 -0
  154. package/dist/types/webgl.js.map +1 -0
  155. package/dist/types.d.ts +1 -1
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/types.js +1 -0
  158. package/dist/types.js.map +1 -0
  159. package/dist.min.js +36 -0
  160. package/package.json +18 -9
  161. package/src/.DS_Store +0 -0
  162. package/src/adapter/.DS_Store +0 -0
  163. package/src/adapter/converters/device-parameters.ts +5 -2
  164. package/src/adapter/converters/sampler-parameters.ts +4 -2
  165. package/src/adapter/converters/texture-formats.ts +3 -1
  166. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  167. package/src/adapter/helpers/get-shader-info.ts +1 -1
  168. package/src/adapter/helpers/get-shader-layout.ts +4 -4
  169. package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
  170. package/src/adapter/helpers/set-uniform.ts +2 -0
  171. package/src/adapter/objects/webgl-renderbuffer.ts +1 -1
  172. package/src/adapter/objects/webgl-resource.ts +1 -1
  173. package/src/adapter/objects/webgl-vertex-array-object.ts +1 -1
  174. package/src/adapter/resources/webgl-buffer.ts +5 -5
  175. package/src/adapter/resources/webgl-command-encoder.ts +1 -1
  176. package/src/adapter/resources/webgl-framebuffer.ts +3 -4
  177. package/src/adapter/resources/webgl-render-pipeline.ts +19 -20
  178. package/src/adapter/resources/webgl-shader.ts +1 -1
  179. package/src/adapter/resources/webgl-texture.ts +8 -9
  180. package/src/adapter/webgl-canvas-context.ts +2 -2
  181. package/src/adapter/webgl-device.ts +12 -2
  182. package/src/classic/accessor.ts +1 -1
  183. package/src/classic/buffer.ts +3 -3
  184. package/src/classic/typed-array-utils.ts +1 -1
  185. package/src/context/.DS_Store +0 -0
  186. package/src/context/context/create-browser-context.ts +4 -2
  187. package/src/context/context/create-headless-context.ts +2 -2
  188. package/src/context/debug/spector.ts +5 -4
  189. package/src/context/debug/webgl-developer-tools.ts +1 -0
  190. package/src/context/polyfill/polyfill-table.ts +1 -0
  191. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  192. package/src/context/state-tracker/track-context-state.ts +6 -5
  193. package/src/context/state-tracker/with-parameters.ts +1 -1
  194. package/src/index.ts +1 -5
  195. package/src/types/webgl.ts +2 -0
  196. package/dist/bundle.d.ts +0 -2
  197. package/dist/bundle.d.ts.map +0 -1
  198. package/dist/bundle.js +0 -4
  199. package/dist/dist.min.js +0 -1
  200. package/dist/es5/adapter/converters/device-parameters.js +0 -139
  201. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  202. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -151
  203. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  204. package/dist/es5/adapter/converters/sampler-parameters.js +0 -182
  205. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  206. package/dist/es5/adapter/converters/texture-formats.js +0 -950
  207. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  208. package/dist/es5/adapter/converters/vertex-formats.js +0 -36
  209. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  210. package/dist/es5/adapter/device-helpers/device-features.js +0 -121
  211. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  212. package/dist/es5/adapter/device-helpers/device-limits.js +0 -54
  213. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  214. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -49
  215. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  216. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -15
  217. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  218. package/dist/es5/adapter/helpers/attribute-utils.js +0 -69
  219. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  220. package/dist/es5/adapter/helpers/get-shader-info.js +0 -31
  221. package/dist/es5/adapter/helpers/get-shader-info.js.map +0 -1
  222. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -311
  223. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  224. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -54
  225. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  226. package/dist/es5/adapter/helpers/set-uniform.js +0 -92
  227. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  228. package/dist/es5/adapter/helpers/uniforms.js +0 -88
  229. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  230. package/dist/es5/adapter/objects/constants-to-keys.js +0 -43
  231. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  232. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -122
  233. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  234. package/dist/es5/adapter/objects/webgl-resource.js +0 -233
  235. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  236. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -109
  237. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  238. package/dist/es5/adapter/resources/webgl-buffer.js +0 -196
  239. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  240. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -70
  241. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  242. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -80
  243. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  244. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  245. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  246. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -275
  247. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  248. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -45
  249. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  250. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -385
  251. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  252. package/dist/es5/adapter/resources/webgl-sampler.js +0 -75
  253. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  254. package/dist/es5/adapter/resources/webgl-shader.js +0 -111
  255. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  256. package/dist/es5/adapter/resources/webgl-texture.js +0 -826
  257. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  258. package/dist/es5/adapter/webgl-canvas-context.js +0 -72
  259. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  260. package/dist/es5/adapter/webgl-device.js +0 -387
  261. package/dist/es5/adapter/webgl-device.js.map +0 -1
  262. package/dist/es5/bundle.js +0 -6
  263. package/dist/es5/bundle.js.map +0 -1
  264. package/dist/es5/classic/accessor.js +0 -151
  265. package/dist/es5/classic/accessor.js.map +0 -1
  266. package/dist/es5/classic/buffer.js +0 -398
  267. package/dist/es5/classic/buffer.js.map +0 -1
  268. package/dist/es5/classic/typed-array-utils.js +0 -99
  269. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  270. package/dist/es5/context/context/create-browser-context.js +0 -66
  271. package/dist/es5/context/context/create-browser-context.js.map +0 -1
  272. package/dist/es5/context/context/create-headless-context.js +0 -47
  273. package/dist/es5/context/context/create-headless-context.js.map +0 -1
  274. package/dist/es5/context/context/webgl-checks.js +0 -44
  275. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  276. package/dist/es5/context/debug/spector.js +0 -99
  277. package/dist/es5/context/debug/spector.js.map +0 -1
  278. package/dist/es5/context/debug/webgl-developer-tools.js +0 -146
  279. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  280. package/dist/es5/context/parameters/unified-parameter-api.js +0 -76
  281. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  282. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -346
  283. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  284. package/dist/es5/context/polyfill/context-data.js +0 -18
  285. package/dist/es5/context/polyfill/context-data.js.map +0 -1
  286. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -69
  287. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  288. package/dist/es5/context/polyfill/polyfill-context.js +0 -109
  289. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  290. package/dist/es5/context/polyfill/polyfill-table.js +0 -143
  291. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  292. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -271
  293. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  294. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -23
  295. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  296. package/dist/es5/context/state-tracker/track-context-state.js +0 -167
  297. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  298. package/dist/es5/context/state-tracker/with-parameters.js +0 -40
  299. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  300. package/dist/es5/index.js +0 -249
  301. package/dist/es5/index.js.map +0 -1
  302. package/dist/es5/init.js +0 -7
  303. package/dist/es5/init.js.map +0 -1
  304. package/dist/es5/types/webgl.js +0 -5
  305. package/dist/es5/types/webgl.js.map +0 -1
  306. package/dist/es5/types.js +0 -2
  307. package/dist/es5/types.js.map +0 -1
  308. package/dist/esm/adapter/converters/device-parameters.js +0 -137
  309. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  310. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -181
  311. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  312. package/dist/esm/adapter/converters/sampler-parameters.js +0 -172
  313. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  314. package/dist/esm/adapter/converters/texture-formats.js +0 -901
  315. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  316. package/dist/esm/adapter/converters/vertex-formats.js +0 -29
  317. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  318. package/dist/esm/adapter/device-helpers/device-features.js +0 -95
  319. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  320. package/dist/esm/adapter/device-helpers/device-limits.js +0 -88
  321. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  322. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -42
  323. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  324. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -9
  325. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  326. package/dist/esm/adapter/helpers/attribute-utils.js +0 -64
  327. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  328. package/dist/esm/adapter/helpers/get-shader-info.js +0 -25
  329. package/dist/esm/adapter/helpers/get-shader-info.js.map +0 -1
  330. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -282
  331. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  332. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -30
  333. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  334. package/dist/esm/adapter/helpers/set-uniform.js +0 -85
  335. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  336. package/dist/esm/adapter/helpers/uniforms.js +0 -89
  337. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  338. package/dist/esm/adapter/objects/constants-to-keys.js +0 -35
  339. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  340. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -78
  341. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  342. package/dist/esm/adapter/objects/webgl-resource.js +0 -163
  343. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  344. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -74
  345. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  346. package/dist/esm/adapter/resources/webgl-buffer.js +0 -134
  347. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  348. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -50
  349. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  350. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -41
  351. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  352. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  353. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  354. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -207
  355. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  356. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -14
  357. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  358. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -311
  359. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  360. package/dist/esm/adapter/resources/webgl-sampler.js +0 -42
  361. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  362. package/dist/esm/adapter/resources/webgl-shader.js +0 -62
  363. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  364. package/dist/esm/adapter/resources/webgl-texture.js +0 -714
  365. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  366. package/dist/esm/adapter/webgl-canvas-context.js +0 -41
  367. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  368. package/dist/esm/adapter/webgl-device.js +0 -276
  369. package/dist/esm/adapter/webgl-device.js.map +0 -1
  370. package/dist/esm/bundle.js +0 -4
  371. package/dist/esm/bundle.js.map +0 -1
  372. package/dist/esm/classic/accessor.js +0 -120
  373. package/dist/esm/classic/accessor.js.map +0 -1
  374. package/dist/esm/classic/buffer.js +0 -327
  375. package/dist/esm/classic/buffer.js.map +0 -1
  376. package/dist/esm/classic/typed-array-utils.js +0 -92
  377. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  378. package/dist/esm/context/context/create-browser-context.js +0 -53
  379. package/dist/esm/context/context/create-browser-context.js.map +0 -1
  380. package/dist/esm/context/context/create-headless-context.js +0 -39
  381. package/dist/esm/context/context/create-headless-context.js.map +0 -1
  382. package/dist/esm/context/context/webgl-checks.js +0 -31
  383. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  384. package/dist/esm/context/debug/spector.js +0 -64
  385. package/dist/esm/context/debug/spector.js.map +0 -1
  386. package/dist/esm/context/debug/webgl-developer-tools.js +0 -97
  387. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  388. package/dist/esm/context/parameters/unified-parameter-api.js +0 -55
  389. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  390. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -427
  391. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  392. package/dist/esm/context/polyfill/context-data.js +0 -12
  393. package/dist/esm/context/polyfill/context-data.js.map +0 -1
  394. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -86
  395. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  396. package/dist/esm/context/polyfill/polyfill-context.js +0 -84
  397. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  398. package/dist/esm/context/polyfill/polyfill-table.js +0 -138
  399. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  400. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -265
  401. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  402. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -17
  403. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  404. package/dist/esm/context/state-tracker/track-context-state.js +0 -148
  405. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  406. package/dist/esm/context/state-tracker/with-parameters.js +0 -34
  407. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  408. package/dist/esm/index.js +0 -27
  409. package/dist/esm/index.js.map +0 -1
  410. package/dist/esm/init.js +0 -4
  411. package/dist/esm/init.js.map +0 -1
  412. package/dist/esm/types/webgl.js +0 -2
  413. package/dist/esm/types/webgl.js.map +0 -1
  414. package/dist/esm/types.js +0 -2
  415. package/dist/esm/types.js.map +0 -1
  416. package/dist/init.d.ts +0 -2
  417. package/dist/init.d.ts.map +0 -1
  418. package/dist/init.js +0 -3
  419. package/src/bundle.ts +0 -4
  420. package/src/init.ts +0 -4
@@ -1,339 +1,280 @@
1
- // luma.gl, MIT license
2
1
  import GL from '@luma.gl/constants';
3
- import { isWebGL2 } from '../../context/context/webgl-checks.js';
4
- import Accessor from '../../classic/accessor.js'; // TODO - should NOT depend on classic API
5
- import { decodeUniformType, decodeAttributeType } from './uniforms.js';
6
- import { getVertexFormat } from '../converters/vertex-formats.js';
7
- import { isSamplerUniform } from './uniforms.js';
8
- /**
9
- * Extract metadata describing binding information for a program's shaders
10
- * Note: `linkProgram()` needs to have been called
11
- * (although linking does not need to have been successful).
12
- */
2
+ import { isWebGL2 } from "../../context/context/webgl-checks.js";
3
+ import Accessor from "../../classic/accessor.js";
4
+ import { decodeUniformType, decodeAttributeType } from "./uniforms.js";
5
+ import { getVertexFormat } from "../converters/vertex-formats.js";
6
+ import { isSamplerUniform } from "./uniforms.js";
13
7
  export function getShaderLayout(gl, program) {
14
- const programBindings = getProgramBindings(gl, program);
15
- const shaderLayout = {
16
- attributes: [],
17
- bindings: []
18
- };
19
- for (const attribute of programBindings.attributes) {
20
- // TODO - multicolumn attributes like a matrix4 can be up to 16 elts...
21
- const size = Math.min(attribute.accessor.size, 4);
22
- const format =
23
- // attribute.accessor.format ||
24
- getVertexFormat(attribute.accessor.type || GL.FLOAT, size);
25
- shaderLayout.attributes.push({
26
- name: attribute.name,
27
- location: attribute.location,
28
- format,
29
- stepMode: attribute.accessor.divisor === 1 ? 'instance' : 'vertex'
30
- });
31
- }
32
- // Uniform blocks
33
- for (const uniformBlock of programBindings.uniformBlocks) {
34
- const uniforms = uniformBlock.uniforms.map((uniform) => ({
35
- name: uniform.name,
36
- format: uniform.format,
37
- byteOffset: uniform.byteOffset,
38
- byteStride: uniform.byteStride,
39
- arrayLength: uniform.arrayLength
40
- }));
41
- shaderLayout.bindings.push({
42
- type: 'uniform',
43
- name: uniformBlock.name,
44
- location: uniformBlock.location,
45
- visibility: (uniformBlock.vertex ? 0x1 : 0) & (uniformBlock.fragment ? 0x2 : 0),
46
- minBindingSize: uniformBlock.byteLength,
47
- uniforms
48
- });
49
- }
50
- let textureUnit = 0;
51
- for (const uniform of programBindings.uniforms) {
52
- if (isSamplerUniform(uniform.type)) {
53
- const { viewDimension, sampleType } = getSamplerInfo(uniform.type);
54
- shaderLayout.bindings.push({
55
- type: 'texture',
56
- name: uniform.name,
57
- location: textureUnit,
58
- viewDimension,
59
- sampleType
60
- });
61
- // @ts-expect-error
62
- uniform.textureUnit = textureUnit;
63
- textureUnit += 1;
64
- }
65
- }
66
- const uniforms = programBindings.uniforms?.filter((uniform) => uniform.location !== null) || [];
67
- if (uniforms.length) {
68
- shaderLayout.uniforms = uniforms;
69
- }
70
- if (programBindings.varyings?.length) {
71
- shaderLayout.varyings = programBindings.varyings;
8
+ var _programBindings$unif, _programBindings$vary;
9
+ const programBindings = getProgramBindings(gl, program);
10
+ const shaderLayout = {
11
+ attributes: [],
12
+ bindings: []
13
+ };
14
+ for (const attribute of programBindings.attributes) {
15
+ const size = Math.min(attribute.accessor.size, 4);
16
+ const format = getVertexFormat(attribute.accessor.type || GL.FLOAT, size);
17
+ shaderLayout.attributes.push({
18
+ name: attribute.name,
19
+ location: attribute.location,
20
+ format,
21
+ stepMode: attribute.accessor.divisor === 1 ? 'instance' : 'vertex'
22
+ });
23
+ }
24
+ for (const uniformBlock of programBindings.uniformBlocks) {
25
+ const uniforms = uniformBlock.uniforms.map(uniform => ({
26
+ name: uniform.name,
27
+ format: uniform.format,
28
+ byteOffset: uniform.byteOffset,
29
+ byteStride: uniform.byteStride,
30
+ arrayLength: uniform.arrayLength
31
+ }));
32
+ shaderLayout.bindings.push({
33
+ type: 'uniform',
34
+ name: uniformBlock.name,
35
+ location: uniformBlock.location,
36
+ visibility: (uniformBlock.vertex ? 0x1 : 0) & (uniformBlock.fragment ? 0x2 : 0),
37
+ minBindingSize: uniformBlock.byteLength,
38
+ uniforms
39
+ });
40
+ }
41
+ let textureUnit = 0;
42
+ for (const uniform of programBindings.uniforms) {
43
+ if (isSamplerUniform(uniform.type)) {
44
+ const {
45
+ viewDimension,
46
+ sampleType
47
+ } = getSamplerInfo(uniform.type);
48
+ shaderLayout.bindings.push({
49
+ type: 'texture',
50
+ name: uniform.name,
51
+ location: textureUnit,
52
+ viewDimension,
53
+ sampleType
54
+ });
55
+ uniform.textureUnit = textureUnit;
56
+ textureUnit += 1;
72
57
  }
73
- return shaderLayout;
58
+ }
59
+ const uniforms = ((_programBindings$unif = programBindings.uniforms) === null || _programBindings$unif === void 0 ? void 0 : _programBindings$unif.filter(uniform => uniform.location !== null)) || [];
60
+ if (uniforms.length) {
61
+ shaderLayout.uniforms = uniforms;
62
+ }
63
+ if ((_programBindings$vary = programBindings.varyings) !== null && _programBindings$vary !== void 0 && _programBindings$vary.length) {
64
+ shaderLayout.varyings = programBindings.varyings;
65
+ }
66
+ return shaderLayout;
74
67
  }
75
- /**
76
- * Extract metadata describing binding information for a program's shaders
77
- * Note: `linkProgram()` needs to have been called
78
- * (although linking does not need to have been successful).
79
- */
80
68
  export function getProgramBindings(gl, program) {
81
- const config = {
82
- attributes: readAttributeBindings(gl, program),
83
- uniforms: readUniformBindings(gl, program),
84
- uniformBlocks: readUniformBlocks(gl, program),
85
- varyings: readVaryings(gl, program)
86
- };
87
- Object.seal(config);
88
- return config;
89
- // generateWebGPUStyleBindings(bindings);
69
+ const config = {
70
+ attributes: readAttributeBindings(gl, program),
71
+ uniforms: readUniformBindings(gl, program),
72
+ uniformBlocks: readUniformBlocks(gl, program),
73
+ varyings: readVaryings(gl, program)
74
+ };
75
+ Object.seal(config);
76
+ return config;
90
77
  }
91
- /**
92
- * Extract info about all transform feedback varyings
93
- *
94
- * linkProgram needs to have been called, although linking does not need to have been successful
95
- */
96
78
  function readAttributeBindings(gl, program) {
97
- const attributes = [];
98
- const count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
99
- for (let index = 0; index < count; index++) {
100
- const activeInfo = gl.getActiveAttrib(program, index);
101
- if (!activeInfo) {
102
- throw new Error('activeInfo');
103
- }
104
- const { name, type: compositeType, size } = activeInfo;
105
- const location = gl.getAttribLocation(program, name);
106
- // Add only user provided attributes, for built-in attributes like
107
- // `gl_InstanceID` locaiton will be < 0
108
- if (location >= 0) {
109
- const { glType, components } = decodeAttributeType(compositeType);
110
- ;
111
- const accessor = { type: glType, size: size * components };
112
- // Any attribute name containing the word "instance" will be assumed to be instanced
113
- if (/instance/i.test(name)) {
114
- accessor.divisor = 1;
115
- }
116
- const attributeInfo = { location, name, accessor: new Accessor(accessor) }; // Base values
117
- attributes.push(attributeInfo);
118
- }
79
+ const attributes = [];
80
+ const count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
81
+ for (let index = 0; index < count; index++) {
82
+ const activeInfo = gl.getActiveAttrib(program, index);
83
+ if (!activeInfo) {
84
+ throw new Error('activeInfo');
85
+ }
86
+ const {
87
+ name,
88
+ type: compositeType,
89
+ size
90
+ } = activeInfo;
91
+ const location = gl.getAttribLocation(program, name);
92
+ if (location >= 0) {
93
+ const {
94
+ glType,
95
+ components
96
+ } = decodeAttributeType(compositeType);
97
+ const accessor = {
98
+ type: glType,
99
+ size: size * components
100
+ };
101
+ if (/instance/i.test(name)) {
102
+ accessor.divisor = 1;
103
+ }
104
+ const attributeInfo = {
105
+ location,
106
+ name,
107
+ accessor: new Accessor(accessor)
108
+ };
109
+ attributes.push(attributeInfo);
119
110
  }
120
- attributes.sort((a, b) => a.location - b.location);
121
- return attributes;
111
+ }
112
+ attributes.sort((a, b) => a.location - b.location);
113
+ return attributes;
122
114
  }
123
- /**
124
- * Extract info about all transform feedback varyings
125
- *
126
- * linkProgram needs to have been called, although linking does not need to have been successful
127
- */
128
115
  function readVaryings(gl, program) {
129
- if (!isWebGL2(gl)) {
130
- return [];
131
- }
132
- const gl2 = gl;
133
- const varyings = [];
134
- const count = gl.getProgramParameter(program, GL.TRANSFORM_FEEDBACK_VARYINGS);
135
- for (let location = 0; location < count; location++) {
136
- const activeInfo = gl2.getTransformFeedbackVarying(program, location);
137
- if (!activeInfo) {
138
- throw new Error('activeInfo');
139
- }
140
- const { name, type: compositeType, size } = activeInfo;
141
- const { glType, components } = decodeUniformType(compositeType);
142
- ;
143
- const accessor = new Accessor({ type: glType, size: size * components });
144
- const varying = { location, name, accessor }; // Base values
145
- varyings.push(varying);
116
+ if (!isWebGL2(gl)) {
117
+ return [];
118
+ }
119
+ const gl2 = gl;
120
+ const varyings = [];
121
+ const count = gl.getProgramParameter(program, GL.TRANSFORM_FEEDBACK_VARYINGS);
122
+ for (let location = 0; location < count; location++) {
123
+ const activeInfo = gl2.getTransformFeedbackVarying(program, location);
124
+ if (!activeInfo) {
125
+ throw new Error('activeInfo');
146
126
  }
147
- varyings.sort((a, b) => a.location - b.location);
148
- return varyings;
127
+ const {
128
+ name,
129
+ type: compositeType,
130
+ size
131
+ } = activeInfo;
132
+ const {
133
+ glType,
134
+ components
135
+ } = decodeUniformType(compositeType);
136
+ const accessor = new Accessor({
137
+ type: glType,
138
+ size: size * components
139
+ });
140
+ const varying = {
141
+ location,
142
+ name,
143
+ accessor
144
+ };
145
+ varyings.push(varying);
146
+ }
147
+ varyings.sort((a, b) => a.location - b.location);
148
+ return varyings;
149
149
  }
150
- /**
151
- * Extract info about all uniforms
152
- *
153
- * Query uniform locations and build name to setter map.
154
- */
155
150
  function readUniformBindings(gl, program) {
156
- const uniforms = [];
157
- const uniformCount = gl.getProgramParameter(program, GL.ACTIVE_UNIFORMS);
158
- for (let i = 0; i < uniformCount; i++) {
159
- const activeInfo = gl.getActiveUniform(program, i);
160
- if (!activeInfo) {
161
- throw new Error('activeInfo');
162
- }
163
- const { name: rawName, size, type } = activeInfo;
164
- const { name, isArray } = parseUniformName(rawName);
165
- let webglLocation = gl.getUniformLocation(program, name);
166
- const uniformInfo = {
167
- // WebGL locations are uniquely typed but just numbers
168
- location: webglLocation,
169
- name,
170
- size,
171
- type,
172
- isArray
151
+ const uniforms = [];
152
+ const uniformCount = gl.getProgramParameter(program, GL.ACTIVE_UNIFORMS);
153
+ for (let i = 0; i < uniformCount; i++) {
154
+ const activeInfo = gl.getActiveUniform(program, i);
155
+ if (!activeInfo) {
156
+ throw new Error('activeInfo');
157
+ }
158
+ const {
159
+ name: rawName,
160
+ size,
161
+ type
162
+ } = activeInfo;
163
+ const {
164
+ name,
165
+ isArray
166
+ } = parseUniformName(rawName);
167
+ let webglLocation = gl.getUniformLocation(program, name);
168
+ const uniformInfo = {
169
+ location: webglLocation,
170
+ name,
171
+ size,
172
+ type,
173
+ isArray
174
+ };
175
+ uniforms.push(uniformInfo);
176
+ if (uniformInfo.size > 1) {
177
+ for (let j = 0; j < uniformInfo.size; j++) {
178
+ const elementName = "".concat(name, "[").concat(j, "]");
179
+ webglLocation = gl.getUniformLocation(program, elementName);
180
+ const arrayElementUniformInfo = {
181
+ ...uniformInfo,
182
+ name: elementName,
183
+ location: webglLocation
173
184
  };
174
- uniforms.push(uniformInfo);
175
- // Array (e.g. matrix) uniforms can occupy several 4x4 byte banks
176
- if (uniformInfo.size > 1) {
177
- for (let j = 0; j < uniformInfo.size; j++) {
178
- const elementName = `${name}[${j}]`;
179
- webglLocation = gl.getUniformLocation(program, elementName);
180
- const arrayElementUniformInfo = {
181
- ...uniformInfo,
182
- name: elementName,
183
- location: webglLocation
184
- };
185
- uniforms.push(arrayElementUniformInfo);
186
- }
187
- }
185
+ uniforms.push(arrayElementUniformInfo);
186
+ }
188
187
  }
189
- return uniforms;
188
+ }
189
+ return uniforms;
190
190
  }
191
- /**
192
- * Extract info about all "active" uniform blocks
193
- *
194
- * ("Active" just means that unused (aka inactive) blocks may have been
195
- * optimized away during linking)
196
- */
197
191
  function readUniformBlocks(gl, program) {
198
- if (!isWebGL2(gl)) {
199
- return [];
200
- }
201
- const gl2 = gl;
202
- const getBlockParameter = (blockIndex, pname) => gl2.getActiveUniformBlockParameter(program, blockIndex, pname);
203
- const uniformBlocks = [];
204
- const blockCount = gl2.getProgramParameter(program, GL.ACTIVE_UNIFORM_BLOCKS);
205
- for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {
206
- const blockInfo = {
207
- name: gl2.getActiveUniformBlockName(program, blockIndex) || '',
208
- location: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_BINDING),
209
- byteLength: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_DATA_SIZE),
210
- vertex: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),
211
- fragment: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),
212
- uniformCount: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORMS),
213
- uniforms: []
214
- };
215
- const uniformIndices = getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES) || [];
216
- const uniformType = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_TYPE); // Array of GLenum indicating the types of the uniforms.
217
- const uniformArrayLength = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_SIZE); // Array of GLuint indicating the sizes of the uniforms.
218
- // const uniformBlockIndex = gl2.getActiveUniforms(
219
- // program,
220
- // uniformIndices,
221
- // GL.UNIFORM_BLOCK_INDEX
222
- // ); // Array of GLint indicating the block indices of the uniforms.
223
- const uniformOffset = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_OFFSET); // Array of GLint indicating the uniform buffer offsets.
224
- const uniformStride = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_ARRAY_STRIDE); // Array of GLint indicating the strides between the elements.
225
- // const uniformMatrixStride = gl2.getActiveUniforms(
226
- // program,
227
- // uniformIndices,
228
- // GL.UNIFORM_MATRIX_STRIDE
229
- // ); // Array of GLint indicating the strides between columns of a column-major matrix or a row-major matrix.
230
- // const uniformRowMajor = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_IS_ROW_MAJOR);
231
- for (let i = 0; i < blockInfo.uniformCount; ++i) {
232
- const activeInfo = gl2.getActiveUniform(program, uniformIndices[i]);
233
- if (!activeInfo) {
234
- throw new Error('activeInfo');
235
- }
236
- blockInfo.uniforms.push({
237
- name: activeInfo.name,
238
- format: decodeUniformType(uniformType[i]).format,
239
- type: uniformType[i],
240
- arrayLength: uniformArrayLength[i],
241
- byteOffset: uniformOffset[i],
242
- byteStride: uniformStride[i],
243
- // matrixStride: uniformStride[i],
244
- // rowMajor: uniformRowMajor[i]
245
- });
246
- }
247
- uniformBlocks.push(blockInfo);
192
+ if (!isWebGL2(gl)) {
193
+ return [];
194
+ }
195
+ const gl2 = gl;
196
+ const getBlockParameter = (blockIndex, pname) => gl2.getActiveUniformBlockParameter(program, blockIndex, pname);
197
+ const uniformBlocks = [];
198
+ const blockCount = gl2.getProgramParameter(program, GL.ACTIVE_UNIFORM_BLOCKS);
199
+ for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {
200
+ const blockInfo = {
201
+ name: gl2.getActiveUniformBlockName(program, blockIndex) || '',
202
+ location: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_BINDING),
203
+ byteLength: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_DATA_SIZE),
204
+ vertex: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),
205
+ fragment: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),
206
+ uniformCount: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORMS),
207
+ uniforms: []
208
+ };
209
+ const uniformIndices = getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES) || [];
210
+ const uniformType = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_TYPE);
211
+ const uniformArrayLength = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_SIZE);
212
+ const uniformOffset = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_OFFSET);
213
+ const uniformStride = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_ARRAY_STRIDE);
214
+ for (let i = 0; i < blockInfo.uniformCount; ++i) {
215
+ const activeInfo = gl2.getActiveUniform(program, uniformIndices[i]);
216
+ if (!activeInfo) {
217
+ throw new Error('activeInfo');
218
+ }
219
+ blockInfo.uniforms.push({
220
+ name: activeInfo.name,
221
+ format: decodeUniformType(uniformType[i]).format,
222
+ type: uniformType[i],
223
+ arrayLength: uniformArrayLength[i],
224
+ byteOffset: uniformOffset[i],
225
+ byteStride: uniformStride[i]
226
+ });
248
227
  }
249
- uniformBlocks.sort((a, b) => a.location - b.location);
250
- return uniformBlocks;
228
+ uniformBlocks.push(blockInfo);
229
+ }
230
+ uniformBlocks.sort((a, b) => a.location - b.location);
231
+ return uniformBlocks;
251
232
  }
252
233
  const SAMPLER_UNIFORMS_GL_TO_GPU = {
253
- [GL.SAMPLER_2D]: ['2d', 'float'],
254
- [GL.SAMPLER_CUBE]: ['cube', 'float'],
255
- [GL.SAMPLER_3D]: ['3d', 'float'],
256
- [GL.SAMPLER_2D_SHADOW]: ['3d', 'depth'],
257
- [GL.SAMPLER_2D_ARRAY]: ['2d-array', 'float'],
258
- [GL.SAMPLER_2D_ARRAY_SHADOW]: ['2d-array', 'depth'],
259
- [GL.SAMPLER_CUBE_SHADOW]: ['cube', 'float'],
260
- [GL.INT_SAMPLER_2D]: ['2d', 'sint'],
261
- [GL.INT_SAMPLER_3D]: ['3d', 'sint'],
262
- [GL.INT_SAMPLER_CUBE]: ['cube', 'sint'],
263
- [GL.INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint'],
264
- [GL.UNSIGNED_INT_SAMPLER_2D]: ['2d', 'uint'],
265
- [GL.UNSIGNED_INT_SAMPLER_3D]: ['3d', 'uint'],
266
- [GL.UNSIGNED_INT_SAMPLER_CUBE]: ['cube', 'uint'],
267
- [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint']
234
+ [GL.SAMPLER_2D]: ['2d', 'float'],
235
+ [GL.SAMPLER_CUBE]: ['cube', 'float'],
236
+ [GL.SAMPLER_3D]: ['3d', 'float'],
237
+ [GL.SAMPLER_2D_SHADOW]: ['3d', 'depth'],
238
+ [GL.SAMPLER_2D_ARRAY]: ['2d-array', 'float'],
239
+ [GL.SAMPLER_2D_ARRAY_SHADOW]: ['2d-array', 'depth'],
240
+ [GL.SAMPLER_CUBE_SHADOW]: ['cube', 'float'],
241
+ [GL.INT_SAMPLER_2D]: ['2d', 'sint'],
242
+ [GL.INT_SAMPLER_3D]: ['3d', 'sint'],
243
+ [GL.INT_SAMPLER_CUBE]: ['cube', 'sint'],
244
+ [GL.INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint'],
245
+ [GL.UNSIGNED_INT_SAMPLER_2D]: ['2d', 'uint'],
246
+ [GL.UNSIGNED_INT_SAMPLER_3D]: ['3d', 'uint'],
247
+ [GL.UNSIGNED_INT_SAMPLER_CUBE]: ['cube', 'uint'],
248
+ [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: ['2d-array', 'uint']
268
249
  };
269
250
  function getSamplerInfo(type) {
270
- let sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];
271
- if (!sampler) {
272
- throw new Error('sampler');
273
- }
274
- const [viewDimension, sampleType] = sampler;
275
- return { viewDimension, sampleType };
251
+ const sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];
252
+ if (!sampler) {
253
+ throw new Error('sampler');
254
+ }
255
+ const [viewDimension, sampleType] = sampler;
256
+ return {
257
+ viewDimension,
258
+ sampleType
259
+ };
276
260
  }
277
- // HELPERS
278
261
  function parseUniformName(name) {
279
- // Shortcut to avoid redundant or bad matches
280
- if (name[name.length - 1] !== ']') {
281
- return {
282
- name,
283
- length: 1,
284
- isArray: false
285
- };
286
- }
287
- // if array name then clean the array brackets
288
- const UNIFORM_NAME_REGEXP = /([^[]*)(\[[0-9]+\])?/;
289
- const matches = name.match(UNIFORM_NAME_REGEXP);
290
- if (!matches || matches.length < 2) {
291
- throw new Error(`Failed to parse GLSL uniform name ${name}`);
292
- }
262
+ if (name[name.length - 1] !== ']') {
293
263
  return {
294
- name: matches[1],
295
- length: matches[2] ? 1 : 0,
296
- isArray: Boolean(matches[2])
264
+ name,
265
+ length: 1,
266
+ isArray: false
297
267
  };
298
- }
299
- /**
300
- * TODO - verify this is a copy of above and delete
301
- * import type {TextureFormat} from '@luma.gl/api';
302
- * Extract info about all "active" uniform blocks
303
- * ("Active" just means that unused (inactive) blocks may have been optimized away during linking)
304
- *
305
- function getUniformBlockBindings(gl: WebGLRenderingContext, program): Binding[] {
306
- if (!isWebGL2(gl)) {
307
- return;
308
268
  }
309
- const bindings: Binding[] = [];
310
- const count = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);
311
- for (let blockIndex = 0; blockIndex < count; blockIndex++) {
312
- const vertex = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),
313
- const fragment = gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),
314
- const visibility = (vertex) + (fragment);
315
- const binding: BufferBinding = {
316
- location: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_BINDING),
317
- // name: gl.getActiveUniformBlockName(program, blockIndex),
318
- type: 'uniform',
319
- visibility,
320
- minBindingSize: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE),
321
- // uniformCount: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS),
322
- // uniformIndices: gl.getActiveUniformBlockParameter(program, blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES),
323
- }
324
- bindings.push(binding);
325
- }
326
- return bindings;
327
- }
328
-
329
- function setBindings(gl2: WebGL2RenderingContext, program: WebGLProgram, bindings: Binding[][]): void {
330
- for (const bindGroup of bindings) {
331
- for (const binding of bindGroup) {
332
-
333
- }
269
+ const UNIFORM_NAME_REGEXP = /([^[]*)(\[[0-9]+\])?/;
270
+ const matches = UNIFORM_NAME_REGEXP.exec(name);
271
+ if (!matches || matches.length < 2) {
272
+ throw new Error("Failed to parse GLSL uniform name ".concat(name));
334
273
  }
335
-
336
- // Set up indirection table
337
- // this.gl2.uniformBlockBinding(this.handle, blockIndex, blockBinding);
274
+ return {
275
+ name: matches[1],
276
+ length: matches[2] ? 1 : 0,
277
+ isArray: Boolean(matches[2])
278
+ };
338
279
  }
339
- */
280
+ //# sourceMappingURL=get-shader-layout.js.map