@luma.gl/webgl 9.0.0-alpha.9 → 9.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (553) hide show
  1. package/LICENSE +3 -1
  2. package/dist/adapter/converters/device-parameters.d.ts +12 -3
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/device-parameters.js +300 -146
  5. package/dist/adapter/converters/sampler-parameters.d.ts +3 -13
  6. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  7. package/dist/adapter/converters/sampler-parameters.js +74 -219
  8. package/dist/adapter/converters/shader-formats.d.ts +9 -0
  9. package/dist/adapter/converters/shader-formats.d.ts.map +1 -0
  10. package/dist/adapter/converters/shader-formats.js +59 -0
  11. package/dist/adapter/converters/texture-formats.d.ts +41 -57
  12. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  13. package/dist/adapter/converters/texture-formats.js +490 -925
  14. package/dist/adapter/converters/vertex-formats.d.ts +9 -3
  15. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  16. package/dist/adapter/converters/vertex-formats.js +56 -33
  17. package/dist/adapter/device-helpers/webgl-device-features.d.ts +20 -0
  18. package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -0
  19. package/dist/adapter/device-helpers/webgl-device-features.js +98 -0
  20. package/dist/adapter/device-helpers/webgl-device-info.d.ts +5 -0
  21. package/dist/adapter/device-helpers/webgl-device-info.d.ts.map +1 -0
  22. package/dist/adapter/device-helpers/webgl-device-info.js +90 -0
  23. package/dist/adapter/device-helpers/webgl-device-limits.d.ts +35 -0
  24. package/dist/adapter/device-helpers/webgl-device-limits.d.ts.map +1 -0
  25. package/dist/adapter/device-helpers/webgl-device-limits.js +47 -0
  26. package/dist/adapter/helpers/decode-webgl-types.d.ts +26 -0
  27. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -0
  28. package/dist/adapter/helpers/decode-webgl-types.js +101 -0
  29. package/dist/adapter/helpers/get-shader-layout.d.ts +2 -49
  30. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  31. package/dist/adapter/helpers/get-shader-layout.js +263 -307
  32. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  33. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  34. package/dist/adapter/helpers/parse-shader-compiler-log.js +48 -33
  35. package/dist/adapter/helpers/set-uniform.d.ts +3 -2
  36. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  37. package/dist/adapter/helpers/set-uniform.js +66 -111
  38. package/dist/adapter/helpers/webgl-topology-utils.d.ts +16 -0
  39. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
  40. package/dist/adapter/helpers/webgl-topology-utils.js +88 -0
  41. package/dist/adapter/objects/constants-to-keys.d.ts +2 -4
  42. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  43. package/dist/adapter/objects/constants-to-keys.js +18 -38
  44. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  45. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  46. package/dist/adapter/objects/webgl-renderbuffer.js +92 -91
  47. package/dist/adapter/objects/webgl-resource.d.ts +6 -31
  48. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  49. package/dist/adapter/objects/webgl-resource.js +103 -205
  50. package/dist/adapter/resources/webgl-buffer.d.ts +20 -16
  51. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  52. package/dist/adapter/resources/webgl-buffer.js +163 -155
  53. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  54. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  55. package/dist/adapter/resources/webgl-command-buffer.js +283 -58
  56. package/dist/adapter/resources/webgl-command-encoder.d.ts +12 -6
  57. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  58. package/dist/adapter/resources/webgl-command-encoder.js +36 -52
  59. package/dist/adapter/resources/webgl-external-texture.js +93 -1
  60. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -29
  61. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  62. package/dist/adapter/resources/webgl-framebuffer.js +184 -261
  63. package/dist/adapter/resources/webgl-query-set.d.ts +44 -0
  64. package/dist/adapter/resources/webgl-query-set.d.ts.map +1 -0
  65. package/dist/adapter/resources/webgl-query-set.js +136 -0
  66. package/dist/adapter/resources/webgl-render-pass.d.ts +21 -4
  67. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  68. package/dist/adapter/resources/webgl-render-pass.js +140 -20
  69. package/dist/adapter/resources/webgl-render-pipeline.d.ts +44 -21
  70. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  71. package/dist/adapter/resources/webgl-render-pipeline.js +371 -413
  72. package/dist/adapter/resources/webgl-sampler.d.ts +5 -6
  73. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  74. package/dist/adapter/resources/webgl-sampler.js +46 -46
  75. package/dist/adapter/resources/webgl-shader.d.ts +16 -6
  76. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  77. package/dist/adapter/resources/webgl-shader.js +113 -72
  78. package/dist/adapter/resources/webgl-texture-view.d.ts +14 -0
  79. package/dist/adapter/resources/webgl-texture-view.d.ts.map +1 -0
  80. package/dist/adapter/resources/webgl-texture-view.js +18 -0
  81. package/dist/adapter/resources/webgl-texture.d.ts +53 -35
  82. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  83. package/dist/adapter/resources/webgl-texture.js +623 -822
  84. package/dist/adapter/resources/webgl-transform-feedback.d.ts +47 -0
  85. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -0
  86. package/dist/adapter/resources/webgl-transform-feedback.js +162 -0
  87. package/dist/adapter/resources/webgl-vertex-array.d.ts +67 -0
  88. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -0
  89. package/dist/adapter/resources/webgl-vertex-array.js +239 -0
  90. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  91. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  92. package/dist/adapter/webgl-canvas-context.js +61 -50
  93. package/dist/adapter/webgl-device.d.ts +112 -55
  94. package/dist/adapter/webgl-device.d.ts.map +1 -1
  95. package/dist/adapter/webgl-device.js +453 -331
  96. package/dist/classic/accessor.d.ts +3 -3
  97. package/dist/classic/accessor.d.ts.map +1 -1
  98. package/dist/classic/accessor.js +135 -130
  99. package/dist/classic/clear.d.ts +22 -0
  100. package/dist/classic/clear.d.ts.map +1 -0
  101. package/dist/classic/clear.js +89 -0
  102. package/dist/classic/copy-and-blit.d.ts +62 -0
  103. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  104. package/dist/classic/copy-and-blit.js +191 -0
  105. package/dist/classic/format-utils.d.ts +3 -0
  106. package/dist/classic/format-utils.d.ts.map +1 -0
  107. package/dist/classic/format-utils.js +44 -0
  108. package/dist/classic/typed-array-utils.d.ts +17 -17
  109. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  110. package/dist/classic/typed-array-utils.js +96 -102
  111. package/dist/context/debug/spector.d.ts +1 -2
  112. package/dist/context/debug/spector.d.ts.map +1 -1
  113. package/dist/context/debug/spector.js +56 -63
  114. package/dist/context/debug/webgl-developer-tools.d.ts +2 -3
  115. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  116. package/dist/context/debug/webgl-developer-tools.js +106 -102
  117. package/dist/context/helpers/create-browser-context.d.ts +35 -0
  118. package/dist/context/helpers/create-browser-context.d.ts.map +1 -0
  119. package/dist/context/helpers/create-browser-context.js +67 -0
  120. package/dist/context/helpers/webgl-context-data.d.ts +13 -0
  121. package/dist/context/helpers/webgl-context-data.d.ts.map +1 -0
  122. package/dist/context/helpers/webgl-context-data.js +21 -0
  123. package/dist/context/helpers/webgl-extensions.d.ts +4 -0
  124. package/dist/context/helpers/webgl-extensions.d.ts.map +1 -0
  125. package/dist/context/helpers/webgl-extensions.js +10 -0
  126. package/dist/context/parameters/unified-parameter-api.d.ts +4 -5
  127. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  128. package/dist/context/parameters/unified-parameter-api.js +91 -54
  129. package/dist/context/parameters/webgl-parameter-tables.d.ts +115 -106
  130. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  131. package/dist/context/parameters/webgl-parameter-tables.js +463 -423
  132. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  133. package/dist/context/state-tracker/deep-array-equal.js +19 -18
  134. package/dist/context/state-tracker/track-context-state.d.ts +4 -4
  135. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  136. package/dist/context/state-tracker/track-context-state.js +192 -163
  137. package/dist/context/state-tracker/with-parameters.d.ts +2 -2
  138. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  139. package/dist/context/state-tracker/with-parameters.js +44 -32
  140. package/dist/dist.dev.js +6574 -0
  141. package/dist/dist.min.js +10 -0
  142. package/dist/index.cjs +5586 -0
  143. package/dist/index.cjs.map +7 -0
  144. package/dist/index.d.ts +25 -32
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +37 -28
  147. package/dist/types.d.ts +3 -1
  148. package/dist/types.d.ts.map +1 -1
  149. package/dist/types.js +3 -1
  150. package/dist.min.js +19 -0
  151. package/package.json +22 -15
  152. package/src/adapter/converters/device-parameters.ts +217 -54
  153. package/src/adapter/converters/sampler-parameters.ts +46 -126
  154. package/src/adapter/converters/shader-formats.ts +69 -0
  155. package/src/adapter/converters/texture-formats.ts +369 -340
  156. package/src/adapter/converters/vertex-formats.ts +71 -10
  157. package/src/adapter/device-helpers/webgl-device-features.ts +121 -0
  158. package/src/adapter/device-helpers/webgl-device-info.ts +111 -0
  159. package/src/adapter/device-helpers/webgl-device-limits.ts +53 -0
  160. package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +38 -25
  161. package/src/adapter/helpers/get-shader-layout.ts +104 -158
  162. package/src/adapter/helpers/parse-shader-compiler-log.ts +31 -11
  163. package/src/adapter/helpers/set-uniform.ts +39 -36
  164. package/src/adapter/helpers/webgl-topology-utils.ts +110 -0
  165. package/src/adapter/objects/constants-to-keys.ts +8 -26
  166. package/src/adapter/objects/webgl-renderbuffer.ts +68 -40
  167. package/src/adapter/objects/webgl-resource.ts +16 -156
  168. package/src/adapter/resources/webgl-buffer.ts +103 -112
  169. package/src/adapter/resources/webgl-command-buffer.ts +333 -41
  170. package/src/adapter/resources/webgl-command-encoder.ts +33 -22
  171. package/src/adapter/resources/webgl-external-texture.ts +11 -8
  172. package/src/adapter/resources/webgl-framebuffer.ts +125 -165
  173. package/src/adapter/resources/webgl-query-set.ts +171 -0
  174. package/src/adapter/resources/webgl-render-pass.ts +176 -6
  175. package/src/adapter/resources/webgl-render-pipeline.ts +308 -229
  176. package/src/adapter/resources/webgl-sampler.ts +19 -18
  177. package/src/adapter/resources/webgl-shader.ts +91 -32
  178. package/src/adapter/resources/webgl-texture-view.ts +28 -0
  179. package/src/adapter/resources/webgl-texture.ts +147 -184
  180. package/src/adapter/resources/webgl-transform-feedback.ts +196 -0
  181. package/src/adapter/resources/webgl-vertex-array.ts +282 -0
  182. package/src/adapter/webgl-canvas-context.ts +23 -22
  183. package/src/adapter/webgl-device.ts +411 -196
  184. package/src/classic/accessor.ts +12 -8
  185. package/src/classic/clear.ts +118 -0
  186. package/src/classic/copy-and-blit.ts +318 -0
  187. package/src/classic/format-utils.ts +47 -0
  188. package/src/classic/typed-array-utils.ts +19 -31
  189. package/src/context/debug/spector.ts +16 -10
  190. package/src/context/debug/webgl-developer-tools.ts +52 -32
  191. package/src/context/helpers/create-browser-context.ts +116 -0
  192. package/src/context/helpers/webgl-context-data.ts +31 -0
  193. package/src/context/helpers/webgl-extensions.ts +17 -0
  194. package/src/context/parameters/unified-parameter-api.ts +11 -16
  195. package/src/context/parameters/webgl-parameter-tables.ts +171 -121
  196. package/src/context/state-tracker/deep-array-equal.ts +3 -0
  197. package/src/context/state-tracker/track-context-state.ts +35 -26
  198. package/src/context/state-tracker/with-parameters.ts +12 -3
  199. package/src/index.ts +41 -55
  200. package/src/types.ts +6 -0
  201. package/dist/adapter/converters/device-parameters.js.map +0 -1
  202. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  203. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  204. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  205. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  206. package/dist/adapter/converters/sampler-parameters.js.map +0 -1
  207. package/dist/adapter/converters/texture-formats.js.map +0 -1
  208. package/dist/adapter/converters/vertex-formats.js.map +0 -1
  209. package/dist/adapter/device-helpers/device-features.d.ts +0 -9
  210. package/dist/adapter/device-helpers/device-features.d.ts.map +0 -1
  211. package/dist/adapter/device-helpers/device-features.js +0 -112
  212. package/dist/adapter/device-helpers/device-features.js.map +0 -1
  213. package/dist/adapter/device-helpers/device-limits.d.ts +0 -52
  214. package/dist/adapter/device-helpers/device-limits.d.ts.map +0 -1
  215. package/dist/adapter/device-helpers/device-limits.js +0 -91
  216. package/dist/adapter/device-helpers/device-limits.js.map +0 -1
  217. package/dist/adapter/device-helpers/get-device-info.d.ts +0 -4
  218. package/dist/adapter/device-helpers/get-device-info.d.ts.map +0 -1
  219. package/dist/adapter/device-helpers/get-device-info.js +0 -44
  220. package/dist/adapter/device-helpers/get-device-info.js.map +0 -1
  221. package/dist/adapter/device-helpers/is-old-ie.d.ts +0 -2
  222. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +0 -1
  223. package/dist/adapter/device-helpers/is-old-ie.js +0 -8
  224. package/dist/adapter/device-helpers/is-old-ie.js.map +0 -1
  225. package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
  226. package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
  227. package/dist/adapter/helpers/attribute-utils.js +0 -81
  228. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  229. package/dist/adapter/helpers/get-shader-layout.js.map +0 -1
  230. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  231. package/dist/adapter/helpers/set-uniform.js.map +0 -1
  232. package/dist/adapter/helpers/uniforms.d.ts +0 -26
  233. package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
  234. package/dist/adapter/helpers/uniforms.js +0 -99
  235. package/dist/adapter/helpers/uniforms.js.map +0 -1
  236. package/dist/adapter/objects/constants-to-keys.js.map +0 -1
  237. package/dist/adapter/objects/webgl-renderbuffer.js.map +0 -1
  238. package/dist/adapter/objects/webgl-resource.js.map +0 -1
  239. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
  240. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
  241. package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
  242. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  243. package/dist/adapter/resources/webgl-buffer.js.map +0 -1
  244. package/dist/adapter/resources/webgl-command-buffer.js.map +0 -1
  245. package/dist/adapter/resources/webgl-command-encoder.js.map +0 -1
  246. package/dist/adapter/resources/webgl-external-texture.js.map +0 -1
  247. package/dist/adapter/resources/webgl-framebuffer.js.map +0 -1
  248. package/dist/adapter/resources/webgl-render-pass.js.map +0 -1
  249. package/dist/adapter/resources/webgl-render-pipeline.js.map +0 -1
  250. package/dist/adapter/resources/webgl-sampler.js.map +0 -1
  251. package/dist/adapter/resources/webgl-shader.js.map +0 -1
  252. package/dist/adapter/resources/webgl-texture.js.map +0 -1
  253. package/dist/adapter/webgl-canvas-context.js.map +0 -1
  254. package/dist/adapter/webgl-device.js.map +0 -1
  255. package/dist/bundle.d.ts +0 -2
  256. package/dist/bundle.d.ts.map +0 -1
  257. package/dist/bundle.js +0 -5
  258. package/dist/bundle.js.map +0 -1
  259. package/dist/classic/accessor.js.map +0 -1
  260. package/dist/classic/buffer.d.ts +0 -95
  261. package/dist/classic/buffer.d.ts.map +0 -1
  262. package/dist/classic/buffer.js +0 -392
  263. package/dist/classic/buffer.js.map +0 -1
  264. package/dist/classic/typed-array-utils.js.map +0 -1
  265. package/dist/context/context/context-state.d.ts +0 -18
  266. package/dist/context/context/context-state.d.ts.map +0 -1
  267. package/dist/context/context/context-state.js +0 -26
  268. package/dist/context/context/context-state.js.map +0 -1
  269. package/dist/context/context/create-browser-context.d.ts +0 -41
  270. package/dist/context/context/create-browser-context.d.ts.map +0 -1
  271. package/dist/context/context/create-browser-context.js +0 -61
  272. package/dist/context/context/create-browser-context.js.map +0 -1
  273. package/dist/context/context/create-headless-context.d.ts +0 -9
  274. package/dist/context/context/create-headless-context.d.ts.map +0 -1
  275. package/dist/context/context/create-headless-context.js +0 -43
  276. package/dist/context/context/create-headless-context.js.map +0 -1
  277. package/dist/context/context/device-pixels.d.ts +0 -25
  278. package/dist/context/context/device-pixels.d.ts.map +0 -1
  279. package/dist/context/context/device-pixels.js +0 -103
  280. package/dist/context/context/device-pixels.js.map +0 -1
  281. package/dist/context/context/webgl-checks.d.ts +0 -13
  282. package/dist/context/context/webgl-checks.d.ts.map +0 -1
  283. package/dist/context/context/webgl-checks.js +0 -34
  284. package/dist/context/context/webgl-checks.js.map +0 -1
  285. package/dist/context/debug/spector.js.map +0 -1
  286. package/dist/context/debug/webgl-developer-tools.js.map +0 -1
  287. package/dist/context/parameters/unified-parameter-api.js.map +0 -1
  288. package/dist/context/parameters/webgl-parameter-tables.js.map +0 -1
  289. package/dist/context/polyfill/get-parameter-polyfill.d.ts +0 -2
  290. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +0 -1
  291. package/dist/context/polyfill/get-parameter-polyfill.js +0 -91
  292. package/dist/context/polyfill/get-parameter-polyfill.js.map +0 -1
  293. package/dist/context/polyfill/polyfill-context.d.ts +0 -5
  294. package/dist/context/polyfill/polyfill-context.d.ts.map +0 -1
  295. package/dist/context/polyfill/polyfill-context.js +0 -91
  296. package/dist/context/polyfill/polyfill-context.js.map +0 -1
  297. package/dist/context/polyfill/polyfill-table.d.ts +0 -48
  298. package/dist/context/polyfill/polyfill-table.d.ts.map +0 -1
  299. package/dist/context/polyfill/polyfill-table.js +0 -160
  300. package/dist/context/polyfill/polyfill-table.js.map +0 -1
  301. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +0 -2
  302. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +0 -1
  303. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -335
  304. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  305. package/dist/context/state-tracker/deep-array-equal.js.map +0 -1
  306. package/dist/context/state-tracker/track-context-state.js.map +0 -1
  307. package/dist/context/state-tracker/with-parameters.js.map +0 -1
  308. package/dist/es5/adapter/converters/device-parameters.js +0 -185
  309. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  310. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  311. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  312. package/dist/es5/adapter/converters/sampler-parameters.js +0 -245
  313. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  314. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  315. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  316. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  317. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  318. package/dist/es5/adapter/device-helpers/device-features.js +0 -155
  319. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  320. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  321. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  322. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  323. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  324. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  325. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  326. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  327. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  328. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -391
  329. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  330. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  331. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  332. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  333. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  334. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  335. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  336. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  337. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  338. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  339. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  340. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  341. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  342. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  343. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  344. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  345. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  346. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  347. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  348. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  349. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  350. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  351. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  352. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -346
  353. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  354. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -62
  355. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  356. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -530
  357. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  358. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  359. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  360. package/dist/es5/adapter/resources/webgl-shader.js +0 -150
  361. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  362. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  363. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  364. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  365. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  366. package/dist/es5/adapter/webgl-device.js +0 -463
  367. package/dist/es5/adapter/webgl-device.js.map +0 -1
  368. package/dist/es5/bundle.js +0 -7
  369. package/dist/es5/bundle.js.map +0 -1
  370. package/dist/es5/classic/accessor.js +0 -181
  371. package/dist/es5/classic/accessor.js.map +0 -1
  372. package/dist/es5/classic/buffer.js +0 -478
  373. package/dist/es5/classic/buffer.js.map +0 -1
  374. package/dist/es5/classic/typed-array-utils.js +0 -126
  375. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  376. package/dist/es5/context/context/context-state.js +0 -31
  377. package/dist/es5/context/context/context-state.js.map +0 -1
  378. package/dist/es5/context/context/create-browser-context.js +0 -83
  379. package/dist/es5/context/context/create-browser-context.js.map +0 -1
  380. package/dist/es5/context/context/create-headless-context.js +0 -60
  381. package/dist/es5/context/context/create-headless-context.js.map +0 -1
  382. package/dist/es5/context/context/device-pixels.js +0 -121
  383. package/dist/es5/context/context/device-pixels.js.map +0 -1
  384. package/dist/es5/context/context/webgl-checks.js +0 -54
  385. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  386. package/dist/es5/context/debug/spector.js +0 -133
  387. package/dist/es5/context/debug/spector.js.map +0 -1
  388. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  389. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  390. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  391. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  392. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  393. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  394. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  395. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  396. package/dist/es5/context/polyfill/polyfill-context.js +0 -134
  397. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  398. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  399. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  400. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  401. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  402. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  403. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  404. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  405. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  406. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  407. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  408. package/dist/es5/index.js +0 -290
  409. package/dist/es5/index.js.map +0 -1
  410. package/dist/es5/init.js +0 -10
  411. package/dist/es5/init.js.map +0 -1
  412. package/dist/es5/types/webgl.js +0 -6
  413. package/dist/es5/types/webgl.js.map +0 -1
  414. package/dist/es5/types.js +0 -2
  415. package/dist/es5/types.js.map +0 -1
  416. package/dist/esm/adapter/converters/device-parameters.js +0 -168
  417. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  418. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  419. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  420. package/dist/esm/adapter/converters/sampler-parameters.js +0 -227
  421. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  422. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  423. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  424. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  425. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  426. package/dist/esm/adapter/device-helpers/device-features.js +0 -112
  427. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  428. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  429. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  430. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  431. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  432. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  433. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  434. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  435. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  436. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -330
  437. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  438. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  439. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  440. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  441. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  442. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  443. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  444. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  445. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  446. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  447. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  448. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  449. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  450. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  451. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  452. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  453. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  454. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  455. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  456. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  457. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  458. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  459. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  460. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -267
  461. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  462. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -21
  463. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  464. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -428
  465. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  466. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  467. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  468. package/dist/esm/adapter/resources/webgl-shader.js +0 -76
  469. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  470. package/dist/esm/adapter/resources/webgl-texture.js +0 -834
  471. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  472. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  473. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  474. package/dist/esm/adapter/webgl-device.js +0 -337
  475. package/dist/esm/adapter/webgl-device.js.map +0 -1
  476. package/dist/esm/bundle.js +0 -5
  477. package/dist/esm/bundle.js.map +0 -1
  478. package/dist/esm/classic/accessor.js +0 -144
  479. package/dist/esm/classic/accessor.js.map +0 -1
  480. package/dist/esm/classic/buffer.js +0 -392
  481. package/dist/esm/classic/buffer.js.map +0 -1
  482. package/dist/esm/classic/typed-array-utils.js +0 -112
  483. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  484. package/dist/esm/context/context/context-state.js +0 -26
  485. package/dist/esm/context/context/context-state.js.map +0 -1
  486. package/dist/esm/context/context/create-browser-context.js +0 -61
  487. package/dist/esm/context/context/create-browser-context.js.map +0 -1
  488. package/dist/esm/context/context/create-headless-context.js +0 -43
  489. package/dist/esm/context/context/create-headless-context.js.map +0 -1
  490. package/dist/esm/context/context/device-pixels.js +0 -103
  491. package/dist/esm/context/context/device-pixels.js.map +0 -1
  492. package/dist/esm/context/context/webgl-checks.js +0 -34
  493. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  494. package/dist/esm/context/debug/spector.js +0 -76
  495. package/dist/esm/context/debug/spector.js.map +0 -1
  496. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  497. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  498. package/dist/esm/context/parameters/unified-parameter-api.js +0 -63
  499. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  500. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  501. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  502. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  503. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  504. package/dist/esm/context/polyfill/polyfill-context.js +0 -91
  505. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  506. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  507. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  508. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  509. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  510. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  511. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  512. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  513. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  514. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  515. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  516. package/dist/esm/index.js +0 -28
  517. package/dist/esm/index.js.map +0 -1
  518. package/dist/esm/init.js +0 -4
  519. package/dist/esm/init.js.map +0 -1
  520. package/dist/esm/types/webgl.js +0 -2
  521. package/dist/esm/types/webgl.js.map +0 -1
  522. package/dist/esm/types.js +0 -2
  523. package/dist/esm/types.js.map +0 -1
  524. package/dist/index.js.map +0 -1
  525. package/dist/init.d.ts +0 -2
  526. package/dist/init.d.ts.map +0 -1
  527. package/dist/init.js +0 -4
  528. package/dist/init.js.map +0 -1
  529. package/dist/types/webgl.d.ts +0 -145
  530. package/dist/types/webgl.d.ts.map +0 -1
  531. package/dist/types/webgl.js +0 -2
  532. package/dist/types/webgl.js.map +0 -1
  533. package/dist/types.js.map +0 -1
  534. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  535. package/src/adapter/device-helpers/device-features.ts +0 -158
  536. package/src/adapter/device-helpers/device-limits.ts +0 -153
  537. package/src/adapter/device-helpers/get-device-info.ts +0 -49
  538. package/src/adapter/device-helpers/is-old-ie.ts +0 -11
  539. package/src/adapter/helpers/attribute-utils.ts +0 -61
  540. package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
  541. package/src/bundle.ts +0 -4
  542. package/src/classic/buffer.ts +0 -474
  543. package/src/context/context/context-state.ts +0 -41
  544. package/src/context/context/create-browser-context.ts +0 -118
  545. package/src/context/context/create-headless-context.ts +0 -48
  546. package/src/context/context/device-pixels.ts +0 -158
  547. package/src/context/context/webgl-checks.ts +0 -49
  548. package/src/context/polyfill/get-parameter-polyfill.ts +0 -118
  549. package/src/context/polyfill/polyfill-context.ts +0 -97
  550. package/src/context/polyfill/polyfill-table.ts +0 -162
  551. package/src/context/polyfill/polyfill-vertex-array-object.ts +0 -360
  552. package/src/init.ts +0 -4
  553. package/src/types/webgl.ts +0 -284
@@ -1,7 +1,10 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  // Tables describing WebGL parameters
2
- import GL from '@luma.gl/constants';
3
- import {isWebGL2} from '../context/webgl-checks';
4
- import type {GLParameters} from '../../types/webgl';
6
+ import {GL, GLParameters} from '@luma.gl/constants';
7
+
5
8
  // DEFAULT SETTINGS - FOR FAST CACHE INITIALIZATION AND CONTEXT RESETS
6
9
 
7
10
  /* eslint-disable no-shadow */
@@ -62,15 +65,7 @@ export const GL_PARAMETER_DEFAULTS: GLParameters = {
62
65
  [GL.STENCIL_BACK_PASS_DEPTH_PASS]: GL.KEEP,
63
66
  // Dynamic value: We use [0, 0, 1024, 1024] as default, but usually this is updated in each frame.
64
67
  [GL.VIEWPORT]: [0, 0, 1024, 1024],
65
- // WEBGL1 PIXEL PACK/UNPACK MODES
66
- [GL.PACK_ALIGNMENT]: 4,
67
- [GL.UNPACK_ALIGNMENT]: 4,
68
- [GL.UNPACK_FLIP_Y_WEBGL]: false,
69
- [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: false,
70
- [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: GL.BROWSER_DEFAULT_WEBGL,
71
68
 
72
- // WEBGL2 / EXTENSIONS
73
- // gl1: 'OES_standard_derivatives'
74
69
  [GL.TRANSFORM_FEEDBACK_BINDING]: null,
75
70
  [GL.COPY_READ_BUFFER_BINDING]: null,
76
71
  [GL.COPY_WRITE_BUFFER_BINDING]: null,
@@ -79,6 +74,12 @@ export const GL_PARAMETER_DEFAULTS: GLParameters = {
79
74
  [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: GL.DONT_CARE,
80
75
  [GL.READ_FRAMEBUFFER_BINDING]: null,
81
76
  [GL.RASTERIZER_DISCARD]: false,
77
+
78
+ [GL.PACK_ALIGNMENT]: 4,
79
+ [GL.UNPACK_ALIGNMENT]: 4,
80
+ [GL.UNPACK_FLIP_Y_WEBGL]: false,
81
+ [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: false,
82
+ [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: GL.BROWSER_DEFAULT_WEBGL,
82
83
  [GL.PACK_ROW_LENGTH]: 0,
83
84
  [GL.PACK_SKIP_PIXELS]: 0,
84
85
  [GL.PACK_SKIP_ROWS]: 0,
@@ -91,36 +92,33 @@ export const GL_PARAMETER_DEFAULTS: GLParameters = {
91
92
 
92
93
  // SETTER TABLES - ENABLES SETTING ANY PARAMETER WITH A COMMON API
93
94
 
94
- const enable = (gl, value, key) => (value ? gl.enable(key) : gl.disable(key));
95
- const hint = (gl, value, key) => gl.hint(key, value);
96
- const pixelStorei = (gl, value, key) => gl.pixelStorei(key, value);
97
-
98
- const bindFramebuffer = (gl, value, key) => {
99
- let target;
100
- if (key === GL.FRAMEBUFFER_BINDING) {
101
- target = isWebGL2(gl) ? GL.DRAW_FRAMEBUFFER : GL.FRAMEBUFFER;
102
- } else {
103
- // GL.READ_FRAMEBUFFER_BINDING
104
- target = GL.READ_FRAMEBUFFER;
105
- }
95
+ const enable = (gl: WebGL2RenderingContext, value: unknown, key: GL) =>
96
+ value ? gl.enable(key) : gl.disable(key);
97
+ const hint = (gl: WebGL2RenderingContext, value: GL, key: GL) => gl.hint(key, value);
98
+ const pixelStorei = (gl: WebGL2RenderingContext, value: number | boolean, key: GL) =>
99
+ gl.pixelStorei(key, value);
100
+
101
+ const bindFramebuffer = (gl: WebGL2RenderingContext, value: unknown, key: GL) => {
102
+ const target = key === GL.FRAMEBUFFER_BINDING ? GL.DRAW_FRAMEBUFFER : GL.READ_FRAMEBUFFER;
106
103
  return gl.bindFramebuffer(target, value);
107
104
  };
108
105
 
109
- const bindBuffer = (gl, value, key) => {
110
- const target = ({
111
- [GL.ARRAY_BUFFER_BINDING]: [GL.ARRAY_BUFFER],
112
- [GL.COPY_READ_BUFFER_BINDING]: [GL.COPY_READ_BUFFER],
113
- [GL.COPY_WRITE_BUFFER_BINDING]: [GL.COPY_WRITE_BUFFER],
114
- [GL.PIXEL_PACK_BUFFER_BINDING]: [GL.PIXEL_PACK_BUFFER],
115
- [GL.PIXEL_UNPACK_BUFFER_BINDING]: [GL.PIXEL_UNPACK_BUFFER]
116
- })[key];
117
-
118
- gl.bindBuffer(target, value);
106
+ const bindBuffer = (gl: WebGL2RenderingContext, value: unknown, key: GL) => {
107
+ const bindingMap: Partial<Record<GL, GL>> = {
108
+ [GL.ARRAY_BUFFER_BINDING]: GL.ARRAY_BUFFER,
109
+ [GL.COPY_READ_BUFFER_BINDING]: GL.COPY_READ_BUFFER,
110
+ [GL.COPY_WRITE_BUFFER_BINDING]: GL.COPY_WRITE_BUFFER,
111
+ [GL.PIXEL_PACK_BUFFER_BINDING]: GL.PIXEL_PACK_BUFFER,
112
+ [GL.PIXEL_UNPACK_BUFFER_BINDING]: GL.PIXEL_UNPACK_BUFFER
113
+ };
114
+ const glTarget = bindingMap[key];
115
+
116
+ gl.bindBuffer(glTarget, value);
119
117
  };
120
118
 
121
119
  // Utility
122
- function isArray(array) {
123
- return Array.isArray(array) || ArrayBuffer.isView(array);
120
+ function isArray(array: unknown): boolean {
121
+ return Array.isArray(array) || (ArrayBuffer.isView(array) && !(array instanceof DataView));
124
122
  }
125
123
 
126
124
  // Map from WebGL parameter names to corresponding WebGL setter functions
@@ -128,29 +126,35 @@ function isArray(array) {
128
126
  // NOTE: When value type is a string, it will be handled by 'GL_COMPOSITE_PARAMETER_SETTERS'
129
127
  export const GL_PARAMETER_SETTERS = {
130
128
  [GL.BLEND]: enable,
131
- [GL.BLEND_COLOR]: (gl, value) => gl.blendColor(...value),
129
+ [GL.BLEND_COLOR]: (gl: WebGL2RenderingContext, value: [number, number, number, number]) =>
130
+ gl.blendColor(...value),
132
131
  [GL.BLEND_EQUATION_RGB]: 'blendEquation',
133
132
  [GL.BLEND_EQUATION_ALPHA]: 'blendEquation',
134
133
  [GL.BLEND_SRC_RGB]: 'blendFunc',
135
134
  [GL.BLEND_DST_RGB]: 'blendFunc',
136
135
  [GL.BLEND_SRC_ALPHA]: 'blendFunc',
137
136
  [GL.BLEND_DST_ALPHA]: 'blendFunc',
138
- [GL.COLOR_CLEAR_VALUE]: (gl, value) => gl.clearColor(...value),
139
- [GL.COLOR_WRITEMASK]: (gl, value) => gl.colorMask(...value),
137
+ [GL.COLOR_CLEAR_VALUE]: (gl: WebGL2RenderingContext, value: [number, number, number, number]) =>
138
+ gl.clearColor(...value),
139
+ [GL.COLOR_WRITEMASK]: (gl: WebGL2RenderingContext, value: [boolean, boolean, boolean, boolean]) =>
140
+ gl.colorMask(...value),
140
141
  [GL.CULL_FACE]: enable,
141
- [GL.CULL_FACE_MODE]: (gl, value) => gl.cullFace(value),
142
+ [GL.CULL_FACE_MODE]: (gl: WebGL2RenderingContext, value) => gl.cullFace(value),
142
143
  [GL.DEPTH_TEST]: enable,
143
- [GL.DEPTH_CLEAR_VALUE]: (gl, value) => gl.clearDepth(value),
144
- [GL.DEPTH_FUNC]: (gl, value) => gl.depthFunc(value),
145
- [GL.DEPTH_RANGE]: (gl, value) => gl.depthRange(...value),
146
- [GL.DEPTH_WRITEMASK]: (gl, value) => gl.depthMask(value),
144
+ [GL.DEPTH_CLEAR_VALUE]: (gl: WebGL2RenderingContext, value) => gl.clearDepth(value),
145
+ [GL.DEPTH_FUNC]: (gl: WebGL2RenderingContext, value) => gl.depthFunc(value),
146
+ [GL.DEPTH_RANGE]: (gl: WebGL2RenderingContext, value: [number, number]) =>
147
+ gl.depthRange(...value),
148
+ [GL.DEPTH_WRITEMASK]: (gl: WebGL2RenderingContext, value) => gl.depthMask(value),
147
149
  [GL.DITHER]: enable,
148
150
  [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: hint,
149
151
 
150
- [GL.CURRENT_PROGRAM]: (gl, value) => gl.useProgram(value),
151
- [GL.RENDERBUFFER_BINDING]: (gl, value) => gl.bindRenderbuffer(GL.RENDERBUFFER, value),
152
- [GL.TRANSFORM_FEEDBACK_BINDING]: (gl, value) => gl.bindTransformFeedback?.(GL.TRANSFORM_FEEDBACK, value),
153
- [GL.VERTEX_ARRAY_BINDING]: (gl, value) => gl.bindVertexArray(value),
152
+ [GL.CURRENT_PROGRAM]: (gl: WebGL2RenderingContext, value) => gl.useProgram(value),
153
+ [GL.RENDERBUFFER_BINDING]: (gl: WebGL2RenderingContext, value) =>
154
+ gl.bindRenderbuffer(GL.RENDERBUFFER, value),
155
+ [GL.TRANSFORM_FEEDBACK_BINDING]: (gl: WebGL2RenderingContext, value) =>
156
+ gl.bindTransformFeedback?.(GL.TRANSFORM_FEEDBACK, value),
157
+ [GL.VERTEX_ARRAY_BINDING]: (gl: WebGL2RenderingContext, value) => gl.bindVertexArray(value),
154
158
  // NOTE: FRAMEBUFFER_BINDING and DRAW_FRAMEBUFFER_BINDING(WebGL2) refer same state.
155
159
  [GL.FRAMEBUFFER_BINDING]: bindFramebuffer,
156
160
  [GL.READ_FRAMEBUFFER_BINDING]: bindFramebuffer,
@@ -162,9 +166,9 @@ export const GL_PARAMETER_SETTERS = {
162
166
  [GL.PIXEL_PACK_BUFFER_BINDING]: bindBuffer,
163
167
  [GL.PIXEL_UNPACK_BUFFER_BINDING]: bindBuffer,
164
168
 
165
- [GL.FRONT_FACE]: (gl, value) => gl.frontFace(value),
169
+ [GL.FRONT_FACE]: (gl: WebGL2RenderingContext, value) => gl.frontFace(value),
166
170
  [GL.GENERATE_MIPMAP_HINT]: hint,
167
- [GL.LINE_WIDTH]: (gl, value) => gl.lineWidth(value),
171
+ [GL.LINE_WIDTH]: (gl: WebGL2RenderingContext, value) => gl.lineWidth(value),
168
172
  [GL.POLYGON_OFFSET_FILL]: enable,
169
173
  [GL.POLYGON_OFFSET_FACTOR]: 'polygonOffset',
170
174
  [GL.POLYGON_OFFSET_UNITS]: 'polygonOffset',
@@ -174,11 +178,14 @@ export const GL_PARAMETER_SETTERS = {
174
178
  [GL.SAMPLE_COVERAGE_VALUE]: 'sampleCoverage',
175
179
  [GL.SAMPLE_COVERAGE_INVERT]: 'sampleCoverage',
176
180
  [GL.SCISSOR_TEST]: enable,
177
- [GL.SCISSOR_BOX]: (gl, value) => gl.scissor(...value),
181
+ [GL.SCISSOR_BOX]: (gl: WebGL2RenderingContext, value: [number, number, number, number]) =>
182
+ gl.scissor(...value),
178
183
  [GL.STENCIL_TEST]: enable,
179
- [GL.STENCIL_CLEAR_VALUE]: (gl, value) => gl.clearStencil(value),
180
- [GL.STENCIL_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.FRONT, value),
181
- [GL.STENCIL_BACK_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.BACK, value),
184
+ [GL.STENCIL_CLEAR_VALUE]: (gl: WebGL2RenderingContext, value) => gl.clearStencil(value),
185
+ [GL.STENCIL_WRITEMASK]: (gl: WebGL2RenderingContext, value) =>
186
+ gl.stencilMaskSeparate(GL.FRONT, value),
187
+ [GL.STENCIL_BACK_WRITEMASK]: (gl: WebGL2RenderingContext, value) =>
188
+ gl.stencilMaskSeparate(GL.BACK, value),
182
189
  [GL.STENCIL_FUNC]: 'stencilFuncFront',
183
190
  [GL.STENCIL_REF]: 'stencilFuncFront',
184
191
  [GL.STENCIL_VALUE_MASK]: 'stencilFuncFront',
@@ -191,17 +198,41 @@ export const GL_PARAMETER_SETTERS = {
191
198
  [GL.STENCIL_BACK_FAIL]: 'stencilOpBack',
192
199
  [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: 'stencilOpBack',
193
200
  [GL.STENCIL_BACK_PASS_DEPTH_PASS]: 'stencilOpBack',
194
- [GL.VIEWPORT]: (gl, value) => gl.viewport(...value),
201
+ [GL.VIEWPORT]: (gl: WebGL2RenderingContext, value: [number, number, number, number]) =>
202
+ gl.viewport(...value),
203
+
204
+ // WEBGL2 EXTENSIONS
205
+
206
+ // EXT_depth_clamp https://registry.khronos.org/webgl/extensions/EXT_depth_clamp/
195
207
 
196
- // WEBGL1 PIXEL PACK/UNPACK MODES
208
+ [GL.DEPTH_CLAMP_EXT]: enable,
209
+
210
+ // WEBGL_provoking_vertex https://registry.khronos.org/webgl/extensions/WEBGL_provoking_vertex/
211
+
212
+ // [GL.PROVOKING_VERTEX_WEBL]: TODO - extension function needed
213
+
214
+ // WEBGL_polygon_mode https://registry.khronos.org/webgl/extensions/WEBGL_polygon_mode/
215
+
216
+ // POLYGON_MODE_WEBGL TODO - extension function needed
217
+ [GL.POLYGON_OFFSET_LINE_WEBGL]: enable,
218
+
219
+ // WEBGL_clip_cull_distance https://registry.khronos.org/webgl/extensions/WEBGL_clip_cull_distance/
220
+
221
+ [GL.CLIP_DISTANCE0_WEBGL]: enable,
222
+ [GL.CLIP_DISTANCE1_WEBGL]: enable,
223
+ [GL.CLIP_DISTANCE2_WEBGL]: enable,
224
+ [GL.CLIP_DISTANCE3_WEBGL]: enable,
225
+ [GL.CLIP_DISTANCE4_WEBGL]: enable,
226
+ [GL.CLIP_DISTANCE5_WEBGL]: enable,
227
+ [GL.CLIP_DISTANCE6_WEBGL]: enable,
228
+ [GL.CLIP_DISTANCE7_WEBGL]: enable,
229
+
230
+ // PIXEL PACK/UNPACK MODES
197
231
  [GL.PACK_ALIGNMENT]: pixelStorei,
198
232
  [GL.UNPACK_ALIGNMENT]: pixelStorei,
199
233
  [GL.UNPACK_FLIP_Y_WEBGL]: pixelStorei,
200
234
  [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: pixelStorei,
201
235
  [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: pixelStorei,
202
-
203
- // WEBGL2 PIXEL PACK/UNPACK MODES
204
- // RASTERIZER_DISCARD ...
205
236
  [GL.PACK_ROW_LENGTH]: pixelStorei,
206
237
  [GL.PACK_SKIP_PIXELS]: pixelStorei,
207
238
  [GL.PACK_SKIP_ROWS]: pixelStorei,
@@ -212,80 +243,97 @@ export const GL_PARAMETER_SETTERS = {
212
243
  [GL.UNPACK_SKIP_IMAGES]: pixelStorei,
213
244
 
214
245
  // Function-style setters
215
- framebuffer: (gl, framebuffer) => {
246
+ framebuffer: (gl: WebGL2RenderingContext, framebuffer) => {
216
247
  // accepts 1) a WebGLFramebuffer 2) null (default framebuffer), or 3) luma.gl Framebuffer class
217
248
  // framebuffer is null when restoring to default framebuffer, otherwise use the WebGL handle.
218
249
  const handle = framebuffer && 'handle' in framebuffer ? framebuffer.handle : framebuffer;
219
250
  return gl.bindFramebuffer(GL.FRAMEBUFFER, handle);
220
251
  },
221
- blend: (gl, value) => (value ? gl.enable(GL.BLEND) : gl.disable(GL.BLEND)),
222
- blendColor: (gl, value) => gl.blendColor(...value),
223
- blendEquation: (gl, args) => {
224
- args = isArray(args) ? args : [args, args];
225
- gl.blendEquationSeparate(...args);
252
+ blend: (gl: WebGL2RenderingContext, value) =>
253
+ value ? gl.enable(GL.BLEND) : gl.disable(GL.BLEND),
254
+ blendColor: (gl: WebGL2RenderingContext, value: [number, number, number, number]) =>
255
+ gl.blendColor(...value),
256
+ blendEquation: (gl: WebGL2RenderingContext, args: number | [number, number]) => {
257
+ const separateModes = typeof args === 'number' ? ([args, args] as [number, number]) : args;
258
+ gl.blendEquationSeparate(...separateModes);
226
259
  },
227
- blendFunc: (gl, args) => {
228
- args = isArray(args) && args.length === 2 ? [...args, ...args] : args;
229
- gl.blendFuncSeparate(...args);
260
+ blendFunc: (
261
+ gl: WebGL2RenderingContext,
262
+ args: [number, number] | [number, number, number, number]
263
+ ) => {
264
+ const separateFuncs =
265
+ args?.length === 2 ? ([...args, ...args] as [number, number, number, number]) : args;
266
+ gl.blendFuncSeparate(...separateFuncs);
230
267
  },
231
268
 
232
- clearColor: (gl, value) => gl.clearColor(...value),
233
- clearDepth: (gl, value) => gl.clearDepth(value),
234
- clearStencil: (gl, value) => gl.clearStencil(value),
269
+ clearColor: (gl: WebGL2RenderingContext, value: [number, number, number, number]) =>
270
+ gl.clearColor(...value),
271
+ clearDepth: (gl: WebGL2RenderingContext, value) => gl.clearDepth(value),
272
+ clearStencil: (gl: WebGL2RenderingContext, value) => gl.clearStencil(value),
235
273
 
236
- colorMask: (gl, value) => gl.colorMask(...value),
274
+ colorMask: (gl: WebGL2RenderingContext, value: [boolean, boolean, boolean, boolean]) =>
275
+ gl.colorMask(...value),
237
276
 
238
- cull: (gl, value) => (value ? gl.enable(GL.CULL_FACE) : gl.disable(GL.CULL_FACE)),
239
- cullFace: (gl, value) => gl.cullFace(value),
277
+ cull: (gl: WebGL2RenderingContext, value) =>
278
+ value ? gl.enable(GL.CULL_FACE) : gl.disable(GL.CULL_FACE),
279
+ cullFace: (gl: WebGL2RenderingContext, value) => gl.cullFace(value),
240
280
 
241
- depthTest: (gl, value) => (value ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST)),
242
- depthFunc: (gl, value) => gl.depthFunc(value),
243
- depthMask: (gl, value) => gl.depthMask(value),
244
- depthRange: (gl, value) => gl.depthRange(...value),
281
+ depthTest: (gl: WebGL2RenderingContext, value) =>
282
+ value ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST),
283
+ depthFunc: (gl: WebGL2RenderingContext, value) => gl.depthFunc(value),
284
+ depthMask: (gl: WebGL2RenderingContext, value) => gl.depthMask(value),
285
+ depthRange: (gl: WebGL2RenderingContext, value: [number, number]) => gl.depthRange(...value),
245
286
 
246
- dither: (gl, value) => (value ? gl.enable(GL.DITHER) : gl.disable(GL.DITHER)),
287
+ dither: (gl: WebGL2RenderingContext, value) =>
288
+ value ? gl.enable(GL.DITHER) : gl.disable(GL.DITHER),
247
289
 
248
- derivativeHint: (gl, value) => {
290
+ derivativeHint: (gl: WebGL2RenderingContext, value) => {
249
291
  // gl1: 'OES_standard_derivatives'
250
292
  gl.hint(GL.FRAGMENT_SHADER_DERIVATIVE_HINT, value);
251
293
  },
252
294
 
253
- frontFace: (gl, value) => gl.frontFace(value),
295
+ frontFace: (gl: WebGL2RenderingContext, value) => gl.frontFace(value),
254
296
 
255
- mipmapHint: (gl, value) => gl.hint(GL.GENERATE_MIPMAP_HINT, value),
297
+ mipmapHint: (gl: WebGL2RenderingContext, value) => gl.hint(GL.GENERATE_MIPMAP_HINT, value),
256
298
 
257
- lineWidth: (gl, value) => gl.lineWidth(value),
299
+ lineWidth: (gl: WebGL2RenderingContext, value) => gl.lineWidth(value),
258
300
 
259
- polygonOffsetFill: (gl, value) =>
301
+ polygonOffsetFill: (gl: WebGL2RenderingContext, value) =>
260
302
  value ? gl.enable(GL.POLYGON_OFFSET_FILL) : gl.disable(GL.POLYGON_OFFSET_FILL),
261
- polygonOffset: (gl, value) => gl.polygonOffset(...value),
303
+ polygonOffset: (gl: WebGL2RenderingContext, value: [number, number]) =>
304
+ gl.polygonOffset(...value),
262
305
 
263
- sampleCoverage: (gl, value) => gl.sampleCoverage(...value),
306
+ sampleCoverage: (gl: WebGL2RenderingContext, value: [number, boolean?]) =>
307
+ gl.sampleCoverage(...value),
264
308
 
265
- scissorTest: (gl, value) => (value ? gl.enable(GL.SCISSOR_TEST) : gl.disable(GL.SCISSOR_TEST)),
266
- scissor: (gl, value) => gl.scissor(...value),
309
+ scissorTest: (gl: WebGL2RenderingContext, value) =>
310
+ value ? gl.enable(GL.SCISSOR_TEST) : gl.disable(GL.SCISSOR_TEST),
311
+ scissor: (gl: WebGL2RenderingContext, value: [number, number, number, number]) =>
312
+ gl.scissor(...value),
267
313
 
268
- stencilTest: (gl, value) => (value ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST)),
269
- stencilMask: (gl, value) => {
314
+ stencilTest: (gl: WebGL2RenderingContext, value) =>
315
+ value ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST),
316
+ stencilMask: (gl: WebGL2RenderingContext, value) => {
270
317
  value = isArray(value) ? value : [value, value];
271
318
  const [mask, backMask] = value;
272
319
  gl.stencilMaskSeparate(GL.FRONT, mask);
273
320
  gl.stencilMaskSeparate(GL.BACK, backMask);
274
321
  },
275
- stencilFunc: (gl, args) => {
322
+ stencilFunc: (gl: WebGL2RenderingContext, args) => {
276
323
  args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
277
324
  const [func, ref, mask, backFunc, backRef, backMask] = args;
278
325
  gl.stencilFuncSeparate(GL.FRONT, func, ref, mask);
279
326
  gl.stencilFuncSeparate(GL.BACK, backFunc, backRef, backMask);
280
327
  },
281
- stencilOp: (gl, args) => {
328
+ stencilOp: (gl: WebGL2RenderingContext, args) => {
282
329
  args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
283
330
  const [sfail, dpfail, dppass, backSfail, backDpfail, backDppass] = args;
284
331
  gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);
285
332
  gl.stencilOpSeparate(GL.BACK, backSfail, backDpfail, backDppass);
286
333
  },
287
334
 
288
- viewport: (gl, value) => gl.viewport(...value)
335
+ viewport: (gl: WebGL2RenderingContext, value: [number, number, number, number]) =>
336
+ gl.viewport(...value)
289
337
  };
290
338
 
291
339
  function getValue(glEnum, values, cache) {
@@ -294,50 +342,50 @@ function getValue(glEnum, values, cache) {
294
342
 
295
343
  // COMPOSITE_WEBGL_PARAMETER_
296
344
  export const GL_COMPOSITE_PARAMETER_SETTERS = {
297
- blendEquation: (gl, values, cache) =>
345
+ blendEquation: (gl: WebGL2RenderingContext, values, cache) =>
298
346
  gl.blendEquationSeparate(
299
347
  getValue(GL.BLEND_EQUATION_RGB, values, cache),
300
348
  getValue(GL.BLEND_EQUATION_ALPHA, values, cache)
301
349
  ),
302
- blendFunc: (gl, values, cache) =>
350
+ blendFunc: (gl: WebGL2RenderingContext, values, cache) =>
303
351
  gl.blendFuncSeparate(
304
352
  getValue(GL.BLEND_SRC_RGB, values, cache),
305
353
  getValue(GL.BLEND_DST_RGB, values, cache),
306
354
  getValue(GL.BLEND_SRC_ALPHA, values, cache),
307
355
  getValue(GL.BLEND_DST_ALPHA, values, cache)
308
356
  ),
309
- polygonOffset: (gl, values, cache) =>
357
+ polygonOffset: (gl: WebGL2RenderingContext, values, cache) =>
310
358
  gl.polygonOffset(
311
359
  getValue(GL.POLYGON_OFFSET_FACTOR, values, cache),
312
360
  getValue(GL.POLYGON_OFFSET_UNITS, values, cache)
313
361
  ),
314
- sampleCoverage: (gl, values, cache) =>
362
+ sampleCoverage: (gl: WebGL2RenderingContext, values, cache) =>
315
363
  gl.sampleCoverage(
316
364
  getValue(GL.SAMPLE_COVERAGE_VALUE, values, cache),
317
365
  getValue(GL.SAMPLE_COVERAGE_INVERT, values, cache)
318
366
  ),
319
- stencilFuncFront: (gl, values, cache) =>
367
+ stencilFuncFront: (gl: WebGL2RenderingContext, values, cache) =>
320
368
  gl.stencilFuncSeparate(
321
369
  GL.FRONT,
322
370
  getValue(GL.STENCIL_FUNC, values, cache),
323
371
  getValue(GL.STENCIL_REF, values, cache),
324
372
  getValue(GL.STENCIL_VALUE_MASK, values, cache)
325
373
  ),
326
- stencilFuncBack: (gl, values, cache) =>
374
+ stencilFuncBack: (gl: WebGL2RenderingContext, values, cache) =>
327
375
  gl.stencilFuncSeparate(
328
376
  GL.BACK,
329
377
  getValue(GL.STENCIL_BACK_FUNC, values, cache),
330
378
  getValue(GL.STENCIL_BACK_REF, values, cache),
331
379
  getValue(GL.STENCIL_BACK_VALUE_MASK, values, cache)
332
380
  ),
333
- stencilOpFront: (gl, values, cache) =>
381
+ stencilOpFront: (gl: WebGL2RenderingContext, values, cache) =>
334
382
  gl.stencilOpSeparate(
335
383
  GL.FRONT,
336
384
  getValue(GL.STENCIL_FAIL, values, cache),
337
385
  getValue(GL.STENCIL_PASS_DEPTH_FAIL, values, cache),
338
386
  getValue(GL.STENCIL_PASS_DEPTH_PASS, values, cache)
339
387
  ),
340
- stencilOpBack: (gl, values, cache) =>
388
+ stencilOpBack: (gl: WebGL2RenderingContext, values, cache) =>
341
389
  gl.stencilOpSeparate(
342
390
  GL.BACK,
343
391
  getValue(GL.STENCIL_BACK_FAIL, values, cache),
@@ -352,36 +400,40 @@ type UpdateFunc = (params: Record<string, any>) => void;
352
400
  export const GL_HOOKED_SETTERS = {
353
401
  // GENERIC SETTERS
354
402
 
355
- enable: (update: UpdateFunc, capability) =>
403
+ enable: (update: UpdateFunc, capability: GL) =>
356
404
  update({
357
405
  [capability]: true
358
406
  }),
359
- disable: (update: UpdateFunc, capability) =>
407
+ disable: (update: UpdateFunc, capability: GL) =>
360
408
  update({
361
409
  [capability]: false
362
410
  }),
363
- pixelStorei: (update: UpdateFunc, pname, value) =>
411
+ pixelStorei: (update: UpdateFunc, pname: GL, value) =>
364
412
  update({
365
413
  [pname]: value
366
414
  }),
367
- hint: (update: UpdateFunc, pname, hint) =>
415
+ hint: (update: UpdateFunc, pname: GL, hint: GL) =>
368
416
  update({
369
417
  [pname]: hint
370
418
  }),
371
419
 
372
420
  // SPECIFIC SETTERS
373
- useProgram: (update: UpdateFunc, value) => update({
374
- [GL.CURRENT_PROGRAM]: value,
375
- }),
376
- bindRenderbuffer: (update: UpdateFunc, target, value) => update({
377
- [GL.RENDERBUFFER_BINDING]: value
378
- }),
379
- bindTransformFeedback: (update: UpdateFunc, target, value) => update({
380
- [GL.TRANSFORM_FEEDBACK_BINDING]: value
381
- }),
382
- bindVertexArray: (update: UpdateFunc, value) => update({
383
- [GL.VERTEX_ARRAY_BINDING]: value
384
- }),
421
+ useProgram: (update: UpdateFunc, value) =>
422
+ update({
423
+ [GL.CURRENT_PROGRAM]: value
424
+ }),
425
+ bindRenderbuffer: (update: UpdateFunc, target, value) =>
426
+ update({
427
+ [GL.RENDERBUFFER_BINDING]: value
428
+ }),
429
+ bindTransformFeedback: (update: UpdateFunc, target, value) =>
430
+ update({
431
+ [GL.TRANSFORM_FEEDBACK_BINDING]: value
432
+ }),
433
+ bindVertexArray: (update: UpdateFunc, value) =>
434
+ update({
435
+ [GL.VERTEX_ARRAY_BINDING]: value
436
+ }),
385
437
 
386
438
  bindFramebuffer: (update: UpdateFunc, target, framebuffer) => {
387
439
  switch (target) {
@@ -399,13 +451,13 @@ export const GL_HOOKED_SETTERS = {
399
451
  }
400
452
  },
401
453
  bindBuffer: (update: UpdateFunc, target, buffer) => {
402
- const pname = ({
454
+ const pname = {
403
455
  [GL.ARRAY_BUFFER]: [GL.ARRAY_BUFFER_BINDING],
404
456
  [GL.COPY_READ_BUFFER]: [GL.COPY_READ_BUFFER_BINDING],
405
457
  [GL.COPY_WRITE_BUFFER]: [GL.COPY_WRITE_BUFFER_BINDING],
406
458
  [GL.PIXEL_PACK_BUFFER]: [GL.PIXEL_PACK_BUFFER_BINDING],
407
459
  [GL.PIXEL_UNPACK_BUFFER]: [GL.PIXEL_UNPACK_BUFFER_BINDING]
408
- })[target];
460
+ }[target];
409
461
 
410
462
  if (pname) {
411
463
  return update({[pname]: buffer});
@@ -567,7 +619,7 @@ export const GL_HOOKED_SETTERS = {
567
619
 
568
620
  // GETTER TABLE - FOR READING OUT AN ENTIRE CONTEXT
569
621
 
570
- const isEnabled = (gl, key) => gl.isEnabled(key);
622
+ const isEnabled = (gl: WebGL2RenderingContext, key) => gl.isEnabled(key);
571
623
 
572
624
  // Exceptions for any keys that cannot be queried by gl.getParameters
573
625
  export const GL_PARAMETER_GETTERS = {
@@ -580,8 +632,6 @@ export const GL_PARAMETER_GETTERS = {
580
632
  [GL.SAMPLE_COVERAGE]: isEnabled,
581
633
  [GL.SCISSOR_TEST]: isEnabled,
582
634
  [GL.STENCIL_TEST]: isEnabled,
583
-
584
- // WebGL 2
585
635
  [GL.RASTERIZER_DISCARD]: isEnabled
586
636
  };
587
637
 
@@ -1,3 +1,6 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
 
2
5
  /** deeply compare two arrays */
3
6
  export function deepArrayEqual(x: any, y: any): boolean {