@luma.gl/webgl 9.0.0-alpha.2 → 9.0.0-alpha.20

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 (454) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts +11 -1
  2. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  3. package/dist/adapter/converters/device-parameters.js +17 -35
  4. package/dist/adapter/converters/device-parameters.js.map +1 -1
  5. package/dist/adapter/converters/renderbuffer-formats.js +1 -5
  6. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -1
  7. package/dist/adapter/converters/sampler-parameters.d.ts +4 -4
  8. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  9. package/dist/adapter/converters/sampler-parameters.js +19 -55
  10. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  11. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  12. package/dist/adapter/converters/texture-formats.js +13 -66
  13. package/dist/adapter/converters/texture-formats.js.map +1 -1
  14. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  15. package/dist/adapter/converters/vertex-formats.js +2 -8
  16. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  17. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  18. package/dist/adapter/device-helpers/device-features.js +13 -20
  19. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  20. package/dist/adapter/device-helpers/device-limits.js +1 -4
  21. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  22. package/dist/adapter/device-helpers/get-device-info.js +8 -10
  23. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  24. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  25. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  26. package/dist/adapter/helpers/attribute-utils.js +0 -17
  27. package/dist/adapter/helpers/attribute-utils.js.map +1 -1
  28. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  29. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  30. package/dist/adapter/helpers/get-shader-info.js +25 -0
  31. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  32. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -1
  33. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  34. package/dist/adapter/helpers/get-shader-layout.js +41 -67
  35. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  36. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  37. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  38. package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
  39. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  40. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  41. package/dist/adapter/helpers/set-uniform.js +1 -31
  42. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  43. package/dist/adapter/helpers/uniforms.d.ts +1 -1
  44. package/dist/adapter/helpers/uniforms.d.ts.map +1 -1
  45. package/dist/adapter/helpers/uniforms.js +4 -14
  46. package/dist/adapter/helpers/uniforms.js.map +1 -1
  47. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  48. package/dist/adapter/objects/constants-to-keys.js +0 -7
  49. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  50. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  51. package/dist/adapter/objects/webgl-renderbuffer.js +5 -21
  52. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  53. package/dist/adapter/objects/webgl-resource.d.ts +2 -4
  54. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  55. package/dist/adapter/objects/webgl-resource.js +14 -67
  56. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  57. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
  58. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  59. package/dist/adapter/objects/webgl-vertex-array-object.js +6 -16
  60. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  61. package/dist/adapter/resources/webgl-buffer.d.ts +1 -2
  62. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  63. package/dist/adapter/resources/webgl-buffer.js +17 -48
  64. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  65. package/dist/adapter/resources/webgl-command-buffer.js +2 -17
  66. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  67. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  68. package/dist/adapter/resources/webgl-command-encoder.js +1 -14
  69. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  70. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  71. package/dist/adapter/resources/webgl-framebuffer.d.ts +1 -1
  72. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  73. package/dist/adapter/resources/webgl-framebuffer.js +9 -67
  74. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  75. package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
  76. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  77. package/dist/adapter/resources/webgl-render-pass.js +2 -7
  78. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  79. package/dist/adapter/resources/webgl-render-pipeline.d.ts +1 -1
  80. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  81. package/dist/adapter/resources/webgl-render-pipeline.js +50 -139
  82. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  83. package/dist/adapter/resources/webgl-sampler.d.ts +3 -2
  84. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  85. package/dist/adapter/resources/webgl-sampler.js +4 -12
  86. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  87. package/dist/adapter/resources/webgl-shader.d.ts +1 -2
  88. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  89. package/dist/adapter/resources/webgl-shader.js +7 -20
  90. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  91. package/dist/adapter/resources/webgl-texture.d.ts +23 -23
  92. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  93. package/dist/adapter/resources/webgl-texture.js +65 -182
  94. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  95. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  96. package/dist/adapter/webgl-canvas-context.js +5 -18
  97. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  98. package/dist/adapter/webgl-device.d.ts +45 -29
  99. package/dist/adapter/webgl-device.d.ts.map +1 -1
  100. package/dist/adapter/webgl-device.js +107 -108
  101. package/dist/adapter/webgl-device.js.map +1 -1
  102. package/dist/classic/accessor.d.ts.map +1 -1
  103. package/dist/classic/accessor.js +11 -35
  104. package/dist/classic/accessor.js.map +1 -1
  105. package/dist/classic/buffer.d.ts +0 -1
  106. package/dist/classic/buffer.d.ts.map +1 -1
  107. package/dist/classic/buffer.js +29 -86
  108. package/dist/classic/buffer.js.map +1 -1
  109. package/dist/classic/typed-array-utils.d.ts +1 -1
  110. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  111. package/dist/classic/typed-array-utils.js +0 -20
  112. package/dist/classic/typed-array-utils.js.map +1 -1
  113. package/dist/context/context/{create-context.d.ts → create-browser-context.d.ts} +2 -1
  114. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  115. package/dist/context/context/{create-context.js → create-browser-context.js} +19 -15
  116. package/dist/context/context/create-browser-context.js.map +1 -0
  117. package/dist/context/context/create-headless-context.d.ts +9 -0
  118. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  119. package/dist/context/context/create-headless-context.js +42 -0
  120. package/dist/context/context/create-headless-context.js.map +1 -0
  121. package/dist/context/context/webgl-checks.js +0 -3
  122. package/dist/context/context/webgl-checks.js.map +1 -1
  123. package/dist/context/debug/spector.d.ts +1 -0
  124. package/dist/context/debug/spector.d.ts.map +1 -1
  125. package/dist/context/debug/spector.js +7 -19
  126. package/dist/context/debug/spector.js.map +1 -1
  127. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  128. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  129. package/dist/context/debug/webgl-developer-tools.js +8 -32
  130. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  131. package/dist/context/parameters/unified-parameter-api.d.ts +6 -5
  132. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  133. package/dist/context/parameters/unified-parameter-api.js +8 -18
  134. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  135. package/dist/context/parameters/webgl-parameter-tables.d.ts +103 -103
  136. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  137. package/dist/context/parameters/webgl-parameter-tables.js +16 -34
  138. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  139. package/dist/context/polyfill/context-data.d.ts +13 -0
  140. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  141. package/dist/context/polyfill/context-data.js +12 -0
  142. package/dist/context/polyfill/context-data.js.map +1 -0
  143. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  144. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  145. package/dist/context/polyfill/get-parameter-polyfill.js +1 -6
  146. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  147. package/dist/context/polyfill/polyfill-context.js +20 -28
  148. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  149. package/dist/context/polyfill/polyfill-table.d.ts +8 -8
  150. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  151. package/dist/context/polyfill/polyfill-table.js +8 -30
  152. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  153. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  154. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
  155. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  156. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  157. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  158. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  159. package/dist/context/state-tracker/track-context-state.js +15 -50
  160. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  161. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  162. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  163. package/dist/context/state-tracker/with-parameters.js +7 -9
  164. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  165. package/dist/dist.dev.js +9205 -0
  166. package/dist/index.cjs +5948 -0
  167. package/dist/index.d.ts +6 -6
  168. package/dist/index.d.ts.map +1 -1
  169. package/dist/index.js +24 -26
  170. package/dist/index.js.map +1 -1
  171. package/dist/types/webgl.d.ts +8 -7
  172. package/dist/types/webgl.d.ts.map +1 -1
  173. package/dist/types/webgl.js.map +1 -1
  174. package/dist/types.js.map +1 -1
  175. package/dist.min.js +36 -0
  176. package/package.json +18 -9
  177. package/src/adapter/converters/device-parameters.ts +44 -15
  178. package/src/adapter/converters/sampler-parameters.ts +18 -7
  179. package/src/adapter/converters/texture-formats.ts +18 -16
  180. package/src/adapter/converters/vertex-formats.ts +1 -0
  181. package/src/adapter/device-helpers/device-features.ts +9 -2
  182. package/src/adapter/device-helpers/device-limits.ts +1 -1
  183. package/src/adapter/device-helpers/get-device-info.ts +12 -8
  184. package/src/adapter/helpers/get-shader-info.ts +37 -0
  185. package/src/adapter/helpers/get-shader-layout.ts +58 -36
  186. package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
  187. package/src/adapter/helpers/set-uniform.ts +3 -1
  188. package/src/adapter/helpers/uniforms.ts +21 -10
  189. package/src/adapter/objects/constants-to-keys.ts +4 -1
  190. package/src/adapter/objects/webgl-renderbuffer.ts +5 -5
  191. package/src/adapter/objects/webgl-resource.ts +7 -12
  192. package/src/adapter/objects/webgl-vertex-array-object.ts +5 -5
  193. package/src/adapter/resources/webgl-buffer.ts +14 -14
  194. package/src/adapter/resources/webgl-command-encoder.ts +5 -5
  195. package/src/adapter/resources/webgl-framebuffer.ts +14 -11
  196. package/src/adapter/resources/webgl-render-pass.ts +2 -1
  197. package/src/adapter/resources/webgl-render-pipeline.ts +83 -71
  198. package/src/adapter/resources/webgl-sampler.ts +10 -4
  199. package/src/adapter/resources/webgl-shader.ts +9 -8
  200. package/src/adapter/resources/webgl-texture.ts +51 -41
  201. package/src/adapter/webgl-canvas-context.ts +5 -6
  202. package/src/adapter/webgl-device.ts +144 -60
  203. package/src/classic/accessor.ts +1 -14
  204. package/src/classic/buffer.ts +14 -21
  205. package/src/classic/typed-array-utils.ts +4 -2
  206. package/src/context/context/{create-context.ts → create-browser-context.ts} +17 -7
  207. package/src/context/context/create-headless-context.ts +48 -0
  208. package/src/context/debug/spector.ts +6 -5
  209. package/src/context/debug/webgl-developer-tools.ts +13 -13
  210. package/src/context/parameters/unified-parameter-api.ts +17 -11
  211. package/src/context/parameters/webgl-parameter-tables.ts +113 -94
  212. package/src/context/polyfill/context-data.ts +27 -0
  213. package/src/context/polyfill/get-parameter-polyfill.ts +7 -6
  214. package/src/context/polyfill/polyfill-context.ts +6 -8
  215. package/src/context/polyfill/polyfill-table.ts +16 -14
  216. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  217. package/src/context/state-tracker/track-context-state.ts +13 -12
  218. package/src/context/state-tracker/with-parameters.ts +8 -2
  219. package/src/index.ts +14 -12
  220. package/src/types/webgl.ts +10 -7
  221. package/dist/bundle.d.ts +0 -2
  222. package/dist/bundle.d.ts.map +0 -1
  223. package/dist/bundle.js +0 -5
  224. package/dist/bundle.js.map +0 -1
  225. package/dist/context/context/context-state.d.ts +0 -18
  226. package/dist/context/context/context-state.d.ts.map +0 -1
  227. package/dist/context/context/context-state.js +0 -26
  228. package/dist/context/context/context-state.js.map +0 -1
  229. package/dist/context/context/create-context.d.ts.map +0 -1
  230. package/dist/context/context/create-context.js.map +0 -1
  231. package/dist/context/context/device-pixels.d.ts +0 -25
  232. package/dist/context/context/device-pixels.d.ts.map +0 -1
  233. package/dist/context/context/device-pixels.js +0 -98
  234. package/dist/context/context/device-pixels.js.map +0 -1
  235. package/dist/es5/adapter/converters/device-parameters.js +0 -170
  236. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  237. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  238. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  239. package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
  240. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  241. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  242. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  243. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  244. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  245. package/dist/es5/adapter/device-helpers/device-features.js +0 -144
  246. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  247. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  248. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  249. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  250. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  251. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  252. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  253. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  254. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  255. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
  256. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  257. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  258. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  259. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  260. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  261. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  262. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  263. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  264. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  265. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  266. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  267. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  268. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  269. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  270. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  271. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  272. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  273. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  274. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  275. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  276. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  277. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  278. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  279. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
  280. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  281. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
  282. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  283. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
  284. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  285. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  286. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  287. package/dist/es5/adapter/resources/webgl-shader.js +0 -149
  288. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  289. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  290. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  291. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  292. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  293. package/dist/es5/adapter/webgl-device.js +0 -399
  294. package/dist/es5/adapter/webgl-device.js.map +0 -1
  295. package/dist/es5/bundle.js +0 -7
  296. package/dist/es5/bundle.js.map +0 -1
  297. package/dist/es5/classic/accessor.js +0 -181
  298. package/dist/es5/classic/accessor.js.map +0 -1
  299. package/dist/es5/classic/buffer.js +0 -470
  300. package/dist/es5/classic/buffer.js.map +0 -1
  301. package/dist/es5/classic/typed-array-utils.js +0 -126
  302. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  303. package/dist/es5/context/context/context-state.js +0 -31
  304. package/dist/es5/context/context/context-state.js.map +0 -1
  305. package/dist/es5/context/context/create-context.js +0 -69
  306. package/dist/es5/context/context/create-context.js.map +0 -1
  307. package/dist/es5/context/context/device-pixels.js +0 -115
  308. package/dist/es5/context/context/device-pixels.js.map +0 -1
  309. package/dist/es5/context/context/webgl-checks.js +0 -54
  310. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  311. package/dist/es5/context/debug/spector.js +0 -133
  312. package/dist/es5/context/debug/spector.js.map +0 -1
  313. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  314. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  315. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  316. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  317. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  318. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  319. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  320. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  321. package/dist/es5/context/polyfill/polyfill-context.js +0 -135
  322. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  323. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  324. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  325. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  326. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  327. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  328. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  329. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  330. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  331. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  332. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  333. package/dist/es5/index.js +0 -276
  334. package/dist/es5/index.js.map +0 -1
  335. package/dist/es5/init.js +0 -10
  336. package/dist/es5/init.js.map +0 -1
  337. package/dist/es5/types/webgl.js +0 -6
  338. package/dist/es5/types/webgl.js.map +0 -1
  339. package/dist/es5/types.js +0 -2
  340. package/dist/es5/types.js.map +0 -1
  341. package/dist/esm/adapter/converters/device-parameters.js +0 -155
  342. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  343. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  344. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  345. package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
  346. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  347. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  348. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  349. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  350. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  351. package/dist/esm/adapter/device-helpers/device-features.js +0 -102
  352. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  353. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  354. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  355. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  356. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  357. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  358. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  359. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  360. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  361. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
  362. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  363. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  364. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  365. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  366. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  367. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  368. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  369. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  370. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  371. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  372. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  373. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  374. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  375. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  376. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  377. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  378. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  379. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  380. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  381. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  382. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  383. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  384. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  385. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
  386. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  387. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
  388. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  389. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  390. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  391. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  392. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  393. package/dist/esm/adapter/resources/webgl-shader.js +0 -75
  394. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  395. package/dist/esm/adapter/resources/webgl-texture.js +0 -831
  396. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  397. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  398. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  399. package/dist/esm/adapter/webgl-device.js +0 -280
  400. package/dist/esm/adapter/webgl-device.js.map +0 -1
  401. package/dist/esm/bundle.js +0 -5
  402. package/dist/esm/bundle.js.map +0 -1
  403. package/dist/esm/classic/accessor.js +0 -144
  404. package/dist/esm/classic/accessor.js.map +0 -1
  405. package/dist/esm/classic/buffer.js +0 -384
  406. package/dist/esm/classic/buffer.js.map +0 -1
  407. package/dist/esm/classic/typed-array-utils.js +0 -112
  408. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  409. package/dist/esm/context/context/context-state.js +0 -26
  410. package/dist/esm/context/context/context-state.js.map +0 -1
  411. package/dist/esm/context/context/create-context.js +0 -49
  412. package/dist/esm/context/context/create-context.js.map +0 -1
  413. package/dist/esm/context/context/device-pixels.js +0 -98
  414. package/dist/esm/context/context/device-pixels.js.map +0 -1
  415. package/dist/esm/context/context/webgl-checks.js +0 -34
  416. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  417. package/dist/esm/context/debug/spector.js +0 -76
  418. package/dist/esm/context/debug/spector.js.map +0 -1
  419. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  420. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  421. package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
  422. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  423. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  424. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  425. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  426. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  427. package/dist/esm/context/polyfill/polyfill-context.js +0 -92
  428. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  429. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  430. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  431. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  432. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  433. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  434. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  435. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  436. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  437. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  438. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  439. package/dist/esm/index.js +0 -27
  440. package/dist/esm/index.js.map +0 -1
  441. package/dist/esm/init.js +0 -4
  442. package/dist/esm/init.js.map +0 -1
  443. package/dist/esm/types/webgl.js +0 -2
  444. package/dist/esm/types/webgl.js.map +0 -1
  445. package/dist/esm/types.js +0 -2
  446. package/dist/esm/types.js.map +0 -1
  447. package/dist/init.d.ts +0 -2
  448. package/dist/init.d.ts.map +0 -1
  449. package/dist/init.js +0 -4
  450. package/dist/init.js.map +0 -1
  451. package/src/bundle.ts +0 -4
  452. package/src/context/context/context-state.ts +0 -41
  453. package/src/context/context/device-pixels.ts +0 -152
  454. package/src/init.ts +0 -4
@@ -1,306 +0,0 @@
1
- import GL from '@luma.gl/constants';
2
- import { isWebGL2 } from '../../context/context/webgl-checks';
3
- import Accessor from '../../classic/accessor';
4
- import { decodeUniformType, decodeAttributeType } from './uniforms';
5
- import { getVertexFormat } from '../converters/vertex-formats';
6
- import { isSamplerUniform } from './uniforms';
7
- export function getShaderLayout(gl, program) {
8
- var _programBindings$unif, _programBindings$vary;
9
-
10
- const programBindings = getProgramBindings(gl, program);
11
- const shaderLayout = {
12
- attributes: [],
13
- bindings: []
14
- };
15
-
16
- for (const attribute of programBindings.attributes) {
17
- const format = getVertexFormat(attribute.accessor.type || GL.FLOAT, attribute.accessor.size);
18
- shaderLayout.attributes.push({
19
- name: attribute.name,
20
- location: attribute.location,
21
- format,
22
- stepMode: attribute.accessor.divisor === 1 ? 'instance' : 'vertex'
23
- });
24
- }
25
-
26
- for (const uniformBlock of programBindings.uniformBlocks) {
27
- const uniforms = uniformBlock.uniforms.map(uniform => ({
28
- name: uniform.name,
29
- format: uniform.format,
30
- byteOffset: uniform.byteOffset,
31
- byteStride: uniform.byteStride,
32
- arrayLength: uniform.arrayLength
33
- }));
34
- shaderLayout.bindings.push({
35
- type: 'uniform',
36
- name: uniformBlock.name,
37
- location: uniformBlock.location,
38
- visibility: (uniformBlock.vertex ? 0x1 : 0) & (uniformBlock.fragment ? 0x2 : 0),
39
- minBindingSize: uniformBlock.byteLength,
40
- uniforms
41
- });
42
- }
43
-
44
- let textureUnit = 0;
45
-
46
- for (const uniform of programBindings.uniforms) {
47
- if (isSamplerUniform(uniform.type)) {
48
- const {
49
- viewDimension,
50
- sampleType
51
- } = getSamplerInfo(uniform.type);
52
- shaderLayout.bindings.push({
53
- type: 'texture',
54
- name: uniform.name,
55
- location: textureUnit,
56
- viewDimension,
57
- sampleType
58
- });
59
- uniform.textureUnit = textureUnit;
60
- textureUnit += 1;
61
- }
62
- }
63
-
64
- const uniforms = ((_programBindings$unif = programBindings.uniforms) === null || _programBindings$unif === void 0 ? void 0 : _programBindings$unif.filter(uniform => uniform.location !== null)) || [];
65
-
66
- if (uniforms.length) {
67
- shaderLayout.uniforms = uniforms;
68
- }
69
-
70
- if ((_programBindings$vary = programBindings.varyings) !== null && _programBindings$vary !== void 0 && _programBindings$vary.length) {
71
- shaderLayout.varyings = programBindings.varyings;
72
- }
73
-
74
- return shaderLayout;
75
- }
76
- export function getProgramBindings(gl, program) {
77
- const config = {
78
- attributes: readAttributeBindings(gl, program),
79
- uniforms: readUniformBindings(gl, program),
80
- uniformBlocks: readUniformBlocks(gl, program),
81
- varyings: readVaryings(gl, program)
82
- };
83
- Object.seal(config);
84
- return config;
85
- }
86
-
87
- function readAttributeBindings(gl, program) {
88
- const attributes = [];
89
- const count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
90
-
91
- for (let index = 0; index < count; index++) {
92
- const {
93
- name,
94
- type: compositeType,
95
- size
96
- } = gl.getActiveAttrib(program, index);
97
- const location = gl.getAttribLocation(program, name);
98
-
99
- if (location >= 0) {
100
- const {
101
- glType,
102
- components
103
- } = decodeAttributeType(compositeType);
104
- const accessor = {
105
- type: glType,
106
- size: size * components
107
- };
108
-
109
- if (/instance/i.test(name)) {
110
- accessor.divisor = 1;
111
- }
112
-
113
- const attributeInfo = {
114
- location,
115
- name,
116
- accessor: new Accessor(accessor)
117
- };
118
- attributes.push(attributeInfo);
119
- }
120
- }
121
-
122
- attributes.sort((a, b) => a.location - b.location);
123
- return attributes;
124
- }
125
-
126
- function readVaryings(gl, program) {
127
- if (!isWebGL2(gl)) {
128
- return [];
129
- }
130
-
131
- const gl2 = gl;
132
- const varyings = [];
133
- const count = gl.getProgramParameter(program, GL.TRANSFORM_FEEDBACK_VARYINGS);
134
-
135
- for (let location = 0; location < count; location++) {
136
- const {
137
- name,
138
- type: compositeType,
139
- size
140
- } = gl2.getTransformFeedbackVarying(program, location);
141
- const {
142
- glType,
143
- components
144
- } = decodeUniformType(compositeType);
145
- const accessor = new Accessor({
146
- type: glType,
147
- size: size * components
148
- });
149
- const varying = {
150
- location,
151
- name,
152
- accessor
153
- };
154
- varyings.push(varying);
155
- }
156
-
157
- varyings.sort((a, b) => a.location - b.location);
158
- return varyings;
159
- }
160
-
161
- function readUniformBindings(gl, program) {
162
- const uniforms = [];
163
- const uniformCount = gl.getProgramParameter(program, GL.ACTIVE_UNIFORMS);
164
-
165
- for (let i = 0; i < uniformCount; i++) {
166
- const {
167
- name: rawName,
168
- size,
169
- type
170
- } = gl.getActiveUniform(program, i);
171
- const {
172
- name,
173
- isArray
174
- } = parseUniformName(rawName);
175
- let webglLocation = gl.getUniformLocation(program, name);
176
- const uniformInfo = {
177
- location: webglLocation,
178
- name,
179
- size,
180
- type,
181
- isArray
182
- };
183
- uniforms.push(uniformInfo);
184
-
185
- if (uniformInfo.size > 1) {
186
- for (let j = 0; j < uniformInfo.size; j++) {
187
- const elementName = "".concat(name, "[").concat(j, "]");
188
- webglLocation = gl.getUniformLocation(program, elementName);
189
- const arrayElementUniformInfo = { ...uniformInfo,
190
- name: elementName,
191
- location: webglLocation
192
- };
193
- uniforms.push(arrayElementUniformInfo);
194
- }
195
- }
196
- }
197
-
198
- return uniforms;
199
- }
200
-
201
- function readUniformBlocks(gl, program) {
202
- if (!isWebGL2(gl)) {
203
- return [];
204
- }
205
-
206
- const gl2 = gl;
207
-
208
- const getBlockParameter = (blockIndex, pname) => gl2.getActiveUniformBlockParameter(program, blockIndex, pname);
209
-
210
- const uniformBlocks = [];
211
- const blockCount = gl2.getProgramParameter(program, GL.ACTIVE_UNIFORM_BLOCKS);
212
-
213
- for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {
214
- const blockInfo = {
215
- name: gl2.getActiveUniformBlockName(program, blockIndex),
216
- location: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_BINDING),
217
- byteLength: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_DATA_SIZE),
218
- vertex: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),
219
- fragment: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),
220
- uniformCount: getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORMS),
221
- uniforms: []
222
- };
223
- const uniformIndices = getBlockParameter(blockIndex, GL.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES);
224
- const uniformType = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_TYPE);
225
- const uniformArrayLength = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_SIZE);
226
- const uniformBlockIndex = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_BLOCK_INDEX);
227
- const uniformOffset = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_OFFSET);
228
- const uniformStride = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_ARRAY_STRIDE);
229
- const uniformMatrixStride = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_MATRIX_STRIDE);
230
- const uniformRowMajor = gl2.getActiveUniforms(program, uniformIndices, GL.UNIFORM_IS_ROW_MAJOR);
231
-
232
- for (let i = 0; i < blockInfo.uniformCount; ++i) {
233
- blockInfo.uniforms.push({
234
- name: gl2.getActiveUniform(program, uniformIndices[i]).name,
235
- format: decodeUniformType(uniformType[i]).format,
236
- type: uniformType[i],
237
- arrayLength: uniformArrayLength[i],
238
- byteOffset: uniformOffset[i],
239
- byteStride: uniformStride[i],
240
- matrixStride: uniformStride[i],
241
- rowMajor: uniformRowMajor[i]
242
- });
243
- }
244
-
245
- uniformBlocks.push(blockInfo);
246
- }
247
-
248
- uniformBlocks.sort((a, b) => a.location - b.location);
249
- return uniformBlocks;
250
- }
251
-
252
- 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']
268
- };
269
-
270
- function getSamplerInfo(type) {
271
- let sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];
272
-
273
- if (sampler) {
274
- const [viewDimension, sampleType] = sampler;
275
- return {
276
- viewDimension,
277
- sampleType
278
- };
279
- }
280
-
281
- return null;
282
- }
283
-
284
- function parseUniformName(name) {
285
- if (name[name.length - 1] !== ']') {
286
- return {
287
- name,
288
- length: 1,
289
- isArray: false
290
- };
291
- }
292
-
293
- const UNIFORM_NAME_REGEXP = /([^[]*)(\[[0-9]+\])?/;
294
- const matches = name.match(UNIFORM_NAME_REGEXP);
295
-
296
- if (!matches || matches.length < 2) {
297
- throw new Error("Failed to parse GLSL uniform name ".concat(name));
298
- }
299
-
300
- return {
301
- name: matches[1],
302
- length: matches[2] ? 1 : 0,
303
- isArray: Boolean(matches[2])
304
- };
305
- }
306
- //# sourceMappingURL=get-shader-layout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/adapter/helpers/get-shader-layout.ts"],"names":["GL","isWebGL2","Accessor","decodeUniformType","decodeAttributeType","getVertexFormat","isSamplerUniform","getShaderLayout","gl","program","programBindings","getProgramBindings","shaderLayout","attributes","bindings","attribute","format","accessor","type","FLOAT","size","push","name","location","stepMode","divisor","uniformBlock","uniformBlocks","uniforms","map","uniform","byteOffset","byteStride","arrayLength","visibility","vertex","fragment","minBindingSize","byteLength","textureUnit","viewDimension","sampleType","getSamplerInfo","filter","length","varyings","config","readAttributeBindings","readUniformBindings","readUniformBlocks","readVaryings","Object","seal","count","getProgramParameter","ACTIVE_ATTRIBUTES","index","compositeType","getActiveAttrib","getAttribLocation","glType","components","test","attributeInfo","sort","a","b","gl2","TRANSFORM_FEEDBACK_VARYINGS","getTransformFeedbackVarying","varying","uniformCount","ACTIVE_UNIFORMS","i","rawName","getActiveUniform","isArray","parseUniformName","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","matrixStride","rowMajor","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","Error","Boolean"],"mappings":"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","sourcesContent":["import {\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 {name, type: compositeType, size} = gl.getActiveAttrib(program, index);\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 {name, type: compositeType, size} = gl2.getTransformFeedbackVarying(program, location);\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 {name: rawName, size, type} = gl.getActiveUniform(program, i);\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 = {\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);\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 blockInfo.uniforms.push({\n name: gl2.getActiveUniform(program, uniformIndices[i]).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\nfunction getSamplerInfo(type: GL):\n | {\n viewDimension: '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d';\n sampleType: 'float' | 'unfilterable-float' | 'depth' | 'sint' | 'uint';\n }\n | undefined {\n let sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];\n if (sampler) {\n const [viewDimension, sampleType] = sampler;\n return {viewDimension, sampleType};\n }\n return null;\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"}
@@ -1,37 +0,0 @@
1
- const MESSAGE_TYPES = ['warning', 'error', 'info'];
2
- export function parseShaderCompilerLog(errLog) {
3
- const lines = errLog.split(/\r?\n/);
4
- const messages = [];
5
-
6
- for (const line of lines) {
7
- if (line.length <= 1) {
8
- continue;
9
- }
10
-
11
- const segments = line.split(':');
12
- const [messageType, linePosition, lineNumber, ...rest] = segments;
13
- let lineNum = parseInt(lineNumber, 10);
14
-
15
- if (isNaN(lineNum)) {
16
- lineNum = 0;
17
- }
18
-
19
- let linePos = parseInt(linePosition, 10);
20
-
21
- if (isNaN(linePos)) {
22
- linePos = 0;
23
- }
24
-
25
- const lowerCaseType = messageType.toLowerCase();
26
- const type = MESSAGE_TYPES.includes(lowerCaseType) ? lowerCaseType : 'info';
27
- messages.push({
28
- message: rest.join(':').trim(),
29
- type,
30
- lineNum,
31
- linePos
32
- });
33
- }
34
-
35
- return messages;
36
- }
37
- //# sourceMappingURL=parse-shader-compiler-log.js.map
@@ -1 +0,0 @@
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,MAAMA,aAAa,GAAG,CAAC,SAAD,EAAY,OAAZ,EAAqB,MAArB,CAAtB;AAOA,OAAO,SAASC,sBAAT,CAAgCC,MAAhC,EAA6E;AAElF,QAAMC,KAAK,GAAGD,MAAM,CAACE,KAAP,CAAa,OAAb,CAAd;AAEA,QAAMC,QAA2B,GAAG,EAApC;;AAEA,OAAK,MAAMC,IAAX,IAAmBH,KAAnB,EAA0B;AACxB,QAAIG,IAAI,CAACC,MAAL,IAAe,CAAnB,EAAsB;AACpB;AACD;;AAED,UAAMC,QAAkB,GAAGF,IAAI,CAACF,KAAL,CAAW,GAAX,CAA3B;AACA,UAAM,CAACK,WAAD,EAAcC,YAAd,EAA4BC,UAA5B,EAAwC,GAAGC,IAA3C,IAAmDJ,QAAzD;AAEA,QAAIK,OAAO,GAAGC,QAAQ,CAACH,UAAD,EAAa,EAAb,CAAtB;;AACA,QAAII,KAAK,CAACF,OAAD,CAAT,EAAoB;AAClBA,MAAAA,OAAO,GAAG,CAAV;AACD;;AAED,QAAIG,OAAO,GAAGF,QAAQ,CAACJ,YAAD,EAAe,EAAf,CAAtB;;AACA,QAAIK,KAAK,CAACC,OAAD,CAAT,EAAoB;AAClBA,MAAAA,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,IAAAA,QAAQ,CAACgB,IAAT,CAAc;AACZC,MAAAA,OAAO,EAAEV,IAAI,CAACW,IAAL,CAAU,GAAV,EAAeC,IAAf,EADG;AAEZL,MAAAA,IAFY;AAGZN,MAAAA,OAHY;AAIZG,MAAAA;AAJY,KAAd;AAMD;;AAED,SAAOX,QAAP;AACD","sourcesContent":["// luma.gl, MIT license\nimport type {CompilerMessage} from '@luma.gl/shadertools';\n\nconst MESSAGE_TYPES = ['warning', 'error', 'info'];\n\n/**\n * Parse a WebGL-format GLSL compilation log into an array of WebGPU style message records.\n * This follows documented WebGL conventions for compilation logs.\n * Based on https://github.com/wwwtyro/gl-format-compiler-error (public domain)\n */\nexport function parseShaderCompilerLog(errLog: string) : readonly CompilerMessage[] {\n // Parse the error - note: browser and driver dependent\n const lines = errLog.split(/\\r?\\n/);\n\n const messages: CompilerMessage[] = [];\n\n for (const line of lines) {\n if (line.length <= 1) {\n continue;\n }\n\n const segments: string[] = line.split(':');\n const [messageType, linePosition, lineNumber, ...rest] = segments;\n\n let lineNum = parseInt(lineNumber, 10);\n if (isNaN(lineNum)) {\n lineNum = 0;\n }\n\n let linePos = parseInt(linePosition, 10);\n if (isNaN(linePos)) {\n linePos = 0;\n }\n\n // Ensure supported type\n const lowerCaseType = messageType.toLowerCase();\n const type = (MESSAGE_TYPES.includes(lowerCaseType) ? lowerCaseType : 'info') as 'warning' | 'error' | 'info';\n\n messages.push({\n message: rest.join(':').trim(),\n type,\n lineNum,\n linePos // TODO\n })\n }\n\n return messages;\n}\n"],"file":"parse-shader-compiler-log.js"}
@@ -1,115 +0,0 @@
1
- import GL from '@luma.gl/constants';
2
- export function setUniform(gl, location, type, value) {
3
- const gl2 = gl;
4
-
5
- if (typeof value === 'number') {
6
- switch (type) {
7
- case GL.SAMPLER_2D:
8
- case GL.SAMPLER_CUBE:
9
- case GL.SAMPLER_3D:
10
- case GL.SAMPLER_2D_SHADOW:
11
- case GL.SAMPLER_2D_ARRAY:
12
- case GL.SAMPLER_2D_ARRAY_SHADOW:
13
- case GL.SAMPLER_CUBE_SHADOW:
14
- case GL.INT_SAMPLER_2D:
15
- case GL.INT_SAMPLER_3D:
16
- case GL.INT_SAMPLER_CUBE:
17
- case GL.INT_SAMPLER_2D_ARRAY:
18
- case GL.UNSIGNED_INT_SAMPLER_2D:
19
- case GL.UNSIGNED_INT_SAMPLER_3D:
20
- case GL.UNSIGNED_INT_SAMPLER_CUBE:
21
- case GL.UNSIGNED_INT_SAMPLER_2D_ARRAY:
22
- return gl.uniform1i(location, value);
23
- }
24
- }
25
-
26
- if (value === true) {
27
- value = 1;
28
- }
29
-
30
- if (value === false) {
31
- value = 1;
32
- }
33
-
34
- const arrayValue = typeof value === 'number' ? [value] : value;
35
-
36
- switch (type) {
37
- case GL.FLOAT:
38
- return gl.uniform1fv(location, arrayValue);
39
-
40
- case GL.FLOAT_VEC2:
41
- return gl.uniform2fv(location, arrayValue);
42
-
43
- case GL.FLOAT_VEC3:
44
- return gl.uniform3fv(location, arrayValue);
45
-
46
- case GL.FLOAT_VEC4:
47
- return gl.uniform4fv(location, arrayValue);
48
-
49
- case GL.INT:
50
- return gl.uniform1iv(location, arrayValue);
51
-
52
- case GL.INT_VEC2:
53
- return gl.uniform2iv(location, arrayValue);
54
-
55
- case GL.INT_VEC3:
56
- return gl.uniform3iv(location, arrayValue);
57
-
58
- case GL.INT_VEC4:
59
- return gl.uniform4iv(location, arrayValue);
60
-
61
- case GL.BOOL:
62
- return gl.uniform1iv(location, arrayValue);
63
-
64
- case GL.BOOL_VEC2:
65
- return gl.uniform2iv(location, arrayValue);
66
-
67
- case GL.BOOL_VEC3:
68
- return gl.uniform3iv(location, arrayValue);
69
-
70
- case GL.BOOL_VEC4:
71
- gl.uniform4iv(location, arrayValue);
72
-
73
- case GL.UNSIGNED_INT:
74
- return gl2.uniform1uiv(location, arrayValue, 1);
75
-
76
- case GL.UNSIGNED_INT_VEC2:
77
- return gl2.uniform2uiv(location, arrayValue, 2);
78
-
79
- case GL.UNSIGNED_INT_VEC3:
80
- return gl2.uniform3uiv(location, arrayValue, 3);
81
-
82
- case GL.UNSIGNED_INT_VEC4:
83
- return gl2.uniform4uiv(location, arrayValue, 4);
84
-
85
- case GL.FLOAT_MAT2:
86
- return gl.uniformMatrix2fv(location, false, arrayValue);
87
-
88
- case GL.FLOAT_MAT3:
89
- return gl.uniformMatrix3fv(location, false, arrayValue);
90
-
91
- case GL.FLOAT_MAT4:
92
- return gl.uniformMatrix4fv(location, false, arrayValue);
93
-
94
- case GL.FLOAT_MAT2x3:
95
- return gl2.uniformMatrix2x3fv(location, false, arrayValue);
96
-
97
- case GL.FLOAT_MAT2x4:
98
- return gl2.uniformMatrix2x4fv(location, false, arrayValue);
99
-
100
- case GL.FLOAT_MAT3x2:
101
- return gl2.uniformMatrix3x2fv(location, false, arrayValue);
102
-
103
- case GL.FLOAT_MAT3x4:
104
- return gl2.uniformMatrix3x4fv(location, false, arrayValue);
105
-
106
- case GL.FLOAT_MAT4x2:
107
- return gl2.uniformMatrix4x2fv(location, false, arrayValue);
108
-
109
- case GL.FLOAT_MAT4x3:
110
- return gl2.uniformMatrix4x3fv(location, false, arrayValue);
111
- }
112
-
113
- throw new Error('Illegal uniform');
114
- }
115
- //# sourceMappingURL=set-uniform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/adapter/helpers/set-uniform.ts"],"names":["GL","setUniform","gl","location","type","value","gl2","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","uniform1i","arrayValue","FLOAT","uniform1fv","FLOAT_VEC2","uniform2fv","FLOAT_VEC3","uniform3fv","FLOAT_VEC4","uniform4fv","INT","uniform1iv","INT_VEC2","uniform2iv","INT_VEC3","uniform3iv","INT_VEC4","uniform4iv","BOOL","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","UNSIGNED_INT","uniform1uiv","UNSIGNED_INT_VEC2","uniform2uiv","UNSIGNED_INT_VEC3","uniform3uiv","UNSIGNED_INT_VEC4","uniform4uiv","FLOAT_MAT2","uniformMatrix2fv","FLOAT_MAT3","uniformMatrix3fv","FLOAT_MAT4","uniformMatrix4fv","FLOAT_MAT2x3","uniformMatrix2x3fv","FLOAT_MAT2x4","uniformMatrix2x4fv","FLOAT_MAT3x2","uniformMatrix3x2fv","FLOAT_MAT3x4","uniformMatrix3x4fv","FLOAT_MAT4x2","uniformMatrix4x2fv","FLOAT_MAT4x3","uniformMatrix4x3fv","Error"],"mappings":"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","sourcesContent":["// Uniforms\nimport GL from '@luma.gl/constants';\n\n/** Set a raw uniform (without type conversion and caching) */\n/* eslint-disable max-len */\nexport function setUniform(\n gl: WebGLRenderingContext,\n location: WebGLUniformLocation,\n type: GL,\n value: number | Float32Array | Int32Array | Uint32Array\n): void {\n const gl2 = gl as WebGL2RenderingContext;\n\n if (typeof value === 'number') {\n // prettier-ignore\n switch (type) {\n // WebGL1 samplers\n case GL.SAMPLER_2D:\n case GL.SAMPLER_CUBE:\n // WebGL2 samplers\n case GL.SAMPLER_3D:\n case GL.SAMPLER_2D_SHADOW:\n case GL.SAMPLER_2D_ARRAY:\n case GL.SAMPLER_2D_ARRAY_SHADOW:\n case GL.SAMPLER_CUBE_SHADOW:\n case GL.INT_SAMPLER_2D:\n case GL.INT_SAMPLER_3D:\n case GL.INT_SAMPLER_CUBE:\n case GL.INT_SAMPLER_2D_ARRAY:\n case GL.UNSIGNED_INT_SAMPLER_2D:\n case GL.UNSIGNED_INT_SAMPLER_3D:\n case GL.UNSIGNED_INT_SAMPLER_CUBE:\n case GL.UNSIGNED_INT_SAMPLER_2D_ARRAY:\n return gl.uniform1i(location, value);\n }\n }\n\n // @ts-expect-error\n if (value === true) {\n value = 1;\n }\n // @ts-expect-error\n if (value === false) {\n value = 1;\n }\n const arrayValue = (typeof value === 'number') ? [value] : value;\n\n // prettier-ignore\n switch (type) {\n case GL.FLOAT: return gl.uniform1fv(location, arrayValue);\n case GL.FLOAT_VEC2: return gl.uniform2fv(location, arrayValue);\n case GL.FLOAT_VEC3: return gl.uniform3fv(location, arrayValue);\n case GL.FLOAT_VEC4: return gl.uniform4fv(location, arrayValue);\n\n case GL.INT: return gl.uniform1iv(location, arrayValue);\n case GL.INT_VEC2: return gl.uniform2iv(location, arrayValue);\n case GL.INT_VEC3: return gl.uniform3iv(location, arrayValue);\n case GL.INT_VEC4: return gl.uniform4iv(location, arrayValue);\n\n case GL.BOOL: return gl.uniform1iv(location, arrayValue);\n case GL.BOOL_VEC2: return gl.uniform2iv(location, arrayValue);\n case GL.BOOL_VEC3: return gl.uniform3iv(location, arrayValue);\n case GL.BOOL_VEC4: gl.uniform4iv(location, arrayValue);\n\n // WEBGL2 - unsigned integers\n case GL.UNSIGNED_INT: return gl2.uniform1uiv(location, arrayValue, 1);\n case GL.UNSIGNED_INT_VEC2: return gl2.uniform2uiv(location, arrayValue, 2);\n case GL.UNSIGNED_INT_VEC3: return gl2.uniform3uiv(location, arrayValue, 3);\n case GL.UNSIGNED_INT_VEC4: return gl2.uniform4uiv(location, arrayValue, 4);\n\n // WebGL2 - quadratic matrices\n // false: don't transpose the matrix\n case GL.FLOAT_MAT2: return gl.uniformMatrix2fv(location, false, arrayValue);\n case GL.FLOAT_MAT3: return gl.uniformMatrix3fv(location, false, arrayValue);\n case GL.FLOAT_MAT4: return gl.uniformMatrix4fv(location, false, arrayValue);\n\n // WebGL2 - rectangular matrices\n case GL.FLOAT_MAT2x3: return gl2.uniformMatrix2x3fv(location, false, arrayValue);\n case GL.FLOAT_MAT2x4: return gl2.uniformMatrix2x4fv(location, false, arrayValue);\n case GL.FLOAT_MAT3x2: return gl2.uniformMatrix3x2fv(location, false, arrayValue);\n case GL.FLOAT_MAT3x4: return gl2.uniformMatrix3x4fv(location, false, arrayValue);\n case GL.FLOAT_MAT4x2: return gl2.uniformMatrix4x2fv(location, false, arrayValue);\n case GL.FLOAT_MAT4x3: return gl2.uniformMatrix4x3fv(location, false, arrayValue);\n }\n\n throw new Error('Illegal uniform');\n}\n"],"file":"set-uniform.js"}
@@ -1,99 +0,0 @@
1
- import GL from '@luma.gl/constants';
2
- export function isSamplerUniform(type) {
3
- return SAMPLER_TYPES.includes(type);
4
- }
5
- const SAMPLER_TYPES = [GL.SAMPLER_2D, GL.SAMPLER_CUBE, GL.SAMPLER_3D, GL.SAMPLER_2D_SHADOW, GL.SAMPLER_2D_ARRAY, GL.SAMPLER_2D_ARRAY_SHADOW, GL.SAMPLER_CUBE_SHADOW, GL.INT_SAMPLER_2D, GL.INT_SAMPLER_3D, GL.INT_SAMPLER_CUBE, GL.INT_SAMPLER_2D_ARRAY, GL.UNSIGNED_INT_SAMPLER_2D, GL.UNSIGNED_INT_SAMPLER_3D, GL.UNSIGNED_INT_SAMPLER_CUBE, GL.UNSIGNED_INT_SAMPLER_2D_ARRAY];
6
- const COMPOSITE_GL_TYPES = {
7
- [GL.FLOAT]: [GL.FLOAT, 1, 'float', 'f32', 'float32'],
8
- [GL.FLOAT_VEC2]: [GL.FLOAT, 2, 'vec2', 'vec2<f32>', 'float32x2'],
9
- [GL.FLOAT_VEC3]: [GL.FLOAT, 3, 'vec3', 'vec3<f32>', 'float32x3'],
10
- [GL.FLOAT_VEC4]: [GL.FLOAT, 4, 'vec4', 'vec4<f32>', 'float32x4'],
11
- [GL.INT]: [GL.INT, 1, 'int', 'i32', 'sint32'],
12
- [GL.INT_VEC2]: [GL.INT, 2, 'ivec2', 'vec2<i32>', 'sint32x2'],
13
- [GL.INT_VEC3]: [GL.INT, 3, 'ivec3', 'vec3<i32>', 'sint32x3'],
14
- [GL.INT_VEC4]: [GL.INT, 4, 'ivec4', 'vec4<i32>', 'sint32x4'],
15
- [GL.UNSIGNED_INT]: [GL.UNSIGNED_INT, 1, 'uint', 'u32', 'uint32'],
16
- [GL.UNSIGNED_INT_VEC2]: [GL.UNSIGNED_INT, 2, 'uvec2', 'vec2<u32>', 'uint32x2'],
17
- [GL.UNSIGNED_INT_VEC3]: [GL.UNSIGNED_INT, 3, 'uvec3', 'vec3<u32>', 'uint32x3'],
18
- [GL.UNSIGNED_INT_VEC4]: [GL.UNSIGNED_INT, 4, 'uvec4', 'vec4<u32>', 'uint32x4'],
19
- [GL.BOOL]: [GL.FLOAT, 1, 'bool', 'f32', 'float32x2'],
20
- [GL.BOOL_VEC2]: [GL.FLOAT, 2, 'bvec2', 'vec2<f32>'],
21
- [GL.BOOL_VEC3]: [GL.FLOAT, 3, 'bvec3', 'vec3<f32>'],
22
- [GL.BOOL_VEC4]: [GL.FLOAT, 4, 'bvec4', 'vec4<f32>'],
23
- [GL.FLOAT_MAT2]: [GL.FLOAT, 8, 'mat2', 'mat2x2<f32>'],
24
- [GL.FLOAT_MAT2x3]: [GL.FLOAT, 8, 'mat2x3', 'mat2x3<f32>'],
25
- [GL.FLOAT_MAT2x4]: [GL.FLOAT, 8, 'mat2x4', 'mat2x4<f32>'],
26
- [GL.FLOAT_MAT3x2]: [GL.FLOAT, 12, 'mat3x2', 'mat3x2<f32>'],
27
- [GL.FLOAT_MAT3]: [GL.FLOAT, 12, 'mat3', 'mat3x3<f32>'],
28
- [GL.FLOAT_MAT3x4]: [GL.FLOAT, 12, 'mat3x4', 'mat3x4<f32>'],
29
- [GL.FLOAT_MAT4x2]: [GL.FLOAT, 16, 'mat4x2', 'mat4x2<f32>'],
30
- [GL.FLOAT_MAT4x3]: [GL.FLOAT, 16, 'mat4x3', 'mat4x3<f32>'],
31
- [GL.FLOAT_MAT4]: [GL.FLOAT, 16, 'mat4', 'mat4x4<f32>']
32
- };
33
- export function decodeUniformType(uniformType) {
34
- const typeAndSize = COMPOSITE_GL_TYPES[uniformType];
35
-
36
- if (!typeAndSize) {
37
- return null;
38
- }
39
-
40
- const [glType, components,, format] = typeAndSize;
41
- return {
42
- format,
43
- components,
44
- glType
45
- };
46
- }
47
- export function decodeAttributeType(uniformType) {
48
- const typeAndSize = COMPOSITE_GL_TYPES[uniformType];
49
-
50
- if (!typeAndSize) {
51
- return null;
52
- }
53
-
54
- const [glType, components,,, format] = typeAndSize;
55
- return {
56
- format,
57
- components,
58
- glType
59
- };
60
- }
61
- export function decomposeCompositeGLType(compositeGLType) {
62
- const typeAndSize = COMPOSITE_GL_TYPES[compositeGLType];
63
-
64
- if (!typeAndSize) {
65
- return null;
66
- }
67
-
68
- const [type, components] = typeAndSize;
69
- return {
70
- type,
71
- components
72
- };
73
- }
74
- export function getCompositeGLType(type, components) {
75
- switch (type) {
76
- case GL.BYTE:
77
- case GL.UNSIGNED_BYTE:
78
- case GL.SHORT:
79
- case GL.UNSIGNED_SHORT:
80
- type = GL.FLOAT;
81
- break;
82
-
83
- default:
84
- }
85
-
86
- for (const glType in COMPOSITE_GL_TYPES) {
87
- const [compType, compComponents, name] = COMPOSITE_GL_TYPES[glType];
88
-
89
- if (compType === type && compComponents === components) {
90
- return {
91
- glType: Number(glType),
92
- name
93
- };
94
- }
95
- }
96
-
97
- return null;
98
- }
99
- //# sourceMappingURL=uniforms.js.map