@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,445 +1,485 @@
1
- import GL from '@luma.gl/constants';
2
- import { isWebGL2 } from '../context/webgl-checks';
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ // Tables describing WebGL parameters
5
+ import { GL } from '@luma.gl/constants';
6
+ // DEFAULT SETTINGS - FOR FAST CACHE INITIALIZATION AND CONTEXT RESETS
7
+ /* eslint-disable no-shadow */
3
8
  export const GL_PARAMETER_DEFAULTS = {
4
- [GL.BLEND]: false,
5
- [GL.BLEND_COLOR]: new Float32Array([0, 0, 0, 0]),
6
- [GL.BLEND_EQUATION_RGB]: GL.FUNC_ADD,
7
- [GL.BLEND_EQUATION_ALPHA]: GL.FUNC_ADD,
8
- [GL.BLEND_SRC_RGB]: GL.ONE,
9
- [GL.BLEND_DST_RGB]: GL.ZERO,
10
- [GL.BLEND_SRC_ALPHA]: GL.ONE,
11
- [GL.BLEND_DST_ALPHA]: GL.ZERO,
12
- [GL.COLOR_CLEAR_VALUE]: new Float32Array([0, 0, 0, 0]),
13
- [GL.COLOR_WRITEMASK]: [true, true, true, true],
14
- [GL.CULL_FACE]: false,
15
- [GL.CULL_FACE_MODE]: GL.BACK,
16
- [GL.DEPTH_TEST]: false,
17
- [GL.DEPTH_CLEAR_VALUE]: 1,
18
- [GL.DEPTH_FUNC]: GL.LESS,
19
- [GL.DEPTH_RANGE]: new Float32Array([0, 1]),
20
- [GL.DEPTH_WRITEMASK]: true,
21
- [GL.DITHER]: true,
22
- [GL.CURRENT_PROGRAM]: null,
23
- [GL.FRAMEBUFFER_BINDING]: null,
24
- [GL.RENDERBUFFER_BINDING]: null,
25
- [GL.VERTEX_ARRAY_BINDING]: null,
26
- [GL.ARRAY_BUFFER_BINDING]: null,
27
- [GL.FRONT_FACE]: GL.CCW,
28
- [GL.GENERATE_MIPMAP_HINT]: GL.DONT_CARE,
29
- [GL.LINE_WIDTH]: 1,
30
- [GL.POLYGON_OFFSET_FILL]: false,
31
- [GL.POLYGON_OFFSET_FACTOR]: 0,
32
- [GL.POLYGON_OFFSET_UNITS]: 0,
33
- [GL.SAMPLE_ALPHA_TO_COVERAGE]: false,
34
- [GL.SAMPLE_COVERAGE]: false,
35
- [GL.SAMPLE_COVERAGE_VALUE]: 1.0,
36
- [GL.SAMPLE_COVERAGE_INVERT]: false,
37
- [GL.SCISSOR_TEST]: false,
38
- [GL.SCISSOR_BOX]: new Int32Array([0, 0, 1024, 1024]),
39
- [GL.STENCIL_TEST]: false,
40
- [GL.STENCIL_CLEAR_VALUE]: 0,
41
- [GL.STENCIL_WRITEMASK]: 0xffffffff,
42
- [GL.STENCIL_BACK_WRITEMASK]: 0xffffffff,
43
- [GL.STENCIL_FUNC]: GL.ALWAYS,
44
- [GL.STENCIL_REF]: 0,
45
- [GL.STENCIL_VALUE_MASK]: 0xffffffff,
46
- [GL.STENCIL_BACK_FUNC]: GL.ALWAYS,
47
- [GL.STENCIL_BACK_REF]: 0,
48
- [GL.STENCIL_BACK_VALUE_MASK]: 0xffffffff,
49
- [GL.STENCIL_FAIL]: GL.KEEP,
50
- [GL.STENCIL_PASS_DEPTH_FAIL]: GL.KEEP,
51
- [GL.STENCIL_PASS_DEPTH_PASS]: GL.KEEP,
52
- [GL.STENCIL_BACK_FAIL]: GL.KEEP,
53
- [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: GL.KEEP,
54
- [GL.STENCIL_BACK_PASS_DEPTH_PASS]: GL.KEEP,
55
- [GL.VIEWPORT]: [0, 0, 1024, 1024],
56
- [GL.PACK_ALIGNMENT]: 4,
57
- [GL.UNPACK_ALIGNMENT]: 4,
58
- [GL.UNPACK_FLIP_Y_WEBGL]: false,
59
- [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: false,
60
- [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: GL.BROWSER_DEFAULT_WEBGL,
61
- [GL.TRANSFORM_FEEDBACK_BINDING]: null,
62
- [GL.COPY_READ_BUFFER_BINDING]: null,
63
- [GL.COPY_WRITE_BUFFER_BINDING]: null,
64
- [GL.PIXEL_PACK_BUFFER_BINDING]: null,
65
- [GL.PIXEL_UNPACK_BUFFER_BINDING]: null,
66
- [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: GL.DONT_CARE,
67
- [GL.READ_FRAMEBUFFER_BINDING]: null,
68
- [GL.RASTERIZER_DISCARD]: false,
69
- [GL.PACK_ROW_LENGTH]: 0,
70
- [GL.PACK_SKIP_PIXELS]: 0,
71
- [GL.PACK_SKIP_ROWS]: 0,
72
- [GL.UNPACK_ROW_LENGTH]: 0,
73
- [GL.UNPACK_IMAGE_HEIGHT]: 0,
74
- [GL.UNPACK_SKIP_PIXELS]: 0,
75
- [GL.UNPACK_SKIP_ROWS]: 0,
76
- [GL.UNPACK_SKIP_IMAGES]: 0
9
+ [3042]: false,
10
+ [32773]: new Float32Array([0, 0, 0, 0]),
11
+ [32777]: 32774,
12
+ [34877]: 32774,
13
+ [32969]: 1,
14
+ [32968]: 0,
15
+ [32971]: 1,
16
+ [32970]: 0,
17
+ [3106]: new Float32Array([0, 0, 0, 0]), // TBD
18
+ [3107]: [true, true, true, true],
19
+ [2884]: false,
20
+ [2885]: 1029,
21
+ [2929]: false,
22
+ [2931]: 1,
23
+ [2932]: 513,
24
+ [2928]: new Float32Array([0, 1]), // TBD
25
+ [2930]: true,
26
+ [3024]: true,
27
+ [35725]: null,
28
+ // FRAMEBUFFER_BINDING and DRAW_FRAMEBUFFER_BINDING(WebGL2) refer same state.
29
+ [36006]: null,
30
+ [36007]: null,
31
+ [34229]: null,
32
+ [34964]: null,
33
+ [2886]: 2305,
34
+ [33170]: 4352,
35
+ [2849]: 1,
36
+ [32823]: false,
37
+ [32824]: 0,
38
+ [10752]: 0,
39
+ [32926]: false,
40
+ [32928]: false,
41
+ [32938]: 1.0,
42
+ [32939]: false,
43
+ [3089]: false,
44
+ // Note: Dynamic value. If scissor test enabled we expect users to set correct scissor box
45
+ [3088]: new Int32Array([0, 0, 1024, 1024]),
46
+ [2960]: false,
47
+ [2961]: 0,
48
+ [2968]: 0xffffffff,
49
+ [36005]: 0xffffffff,
50
+ [2962]: 519,
51
+ [2967]: 0,
52
+ [2963]: 0xffffffff,
53
+ [34816]: 519,
54
+ [36003]: 0,
55
+ [36004]: 0xffffffff,
56
+ [2964]: 7680,
57
+ [2965]: 7680,
58
+ [2966]: 7680,
59
+ [34817]: 7680,
60
+ [34818]: 7680,
61
+ [34819]: 7680,
62
+ // Dynamic value: We use [0, 0, 1024, 1024] as default, but usually this is updated in each frame.
63
+ [2978]: [0, 0, 1024, 1024],
64
+ [36389]: null,
65
+ [36662]: null,
66
+ [36663]: null,
67
+ [35053]: null,
68
+ [35055]: null,
69
+ [35723]: 4352,
70
+ [36010]: null,
71
+ [35977]: false,
72
+ [3333]: 4,
73
+ [3317]: 4,
74
+ [37440]: false,
75
+ [37441]: false,
76
+ [37443]: 37444,
77
+ [3330]: 0,
78
+ [3332]: 0,
79
+ [3331]: 0,
80
+ [3314]: 0,
81
+ [32878]: 0,
82
+ [3316]: 0,
83
+ [3315]: 0,
84
+ [32877]: 0
77
85
  };
78
-
86
+ // SETTER TABLES - ENABLES SETTING ANY PARAMETER WITH A COMMON API
79
87
  const enable = (gl, value, key) => value ? gl.enable(key) : gl.disable(key);
80
-
81
88
  const hint = (gl, value, key) => gl.hint(key, value);
82
-
83
89
  const pixelStorei = (gl, value, key) => gl.pixelStorei(key, value);
84
-
85
90
  const bindFramebuffer = (gl, value, key) => {
86
- let target;
87
-
88
- if (key === GL.FRAMEBUFFER_BINDING) {
89
- target = isWebGL2(gl) ? GL.DRAW_FRAMEBUFFER : GL.FRAMEBUFFER;
90
- } else {
91
- target = GL.READ_FRAMEBUFFER;
92
- }
93
-
94
- return gl.bindFramebuffer(target, value);
91
+ const target = key === 36006 ? 36009 : 36008;
92
+ return gl.bindFramebuffer(target, value);
95
93
  };
96
-
97
94
  const bindBuffer = (gl, value, key) => {
98
- const target = {
99
- [GL.ARRAY_BUFFER_BINDING]: [GL.ARRAY_BUFFER],
100
- [GL.COPY_READ_BUFFER_BINDING]: [GL.COPY_READ_BUFFER],
101
- [GL.COPY_WRITE_BUFFER_BINDING]: [GL.COPY_WRITE_BUFFER],
102
- [GL.PIXEL_PACK_BUFFER_BINDING]: [GL.PIXEL_PACK_BUFFER],
103
- [GL.PIXEL_UNPACK_BUFFER_BINDING]: [GL.PIXEL_UNPACK_BUFFER]
104
- }[key];
105
- gl.bindBuffer(target, value);
95
+ const bindingMap = {
96
+ [34964]: 34962,
97
+ [36662]: 36662,
98
+ [36663]: 36663,
99
+ [35053]: 35051,
100
+ [35055]: 35052
101
+ };
102
+ const glTarget = bindingMap[key];
103
+ gl.bindBuffer(glTarget, value);
106
104
  };
107
-
105
+ // Utility
108
106
  function isArray(array) {
109
- return Array.isArray(array) || ArrayBuffer.isView(array);
107
+ return Array.isArray(array) || (ArrayBuffer.isView(array) && !(array instanceof DataView));
110
108
  }
111
-
109
+ // Map from WebGL parameter names to corresponding WebGL setter functions
110
+ // WegGL constants are read by parameter names, but set by function names
111
+ // NOTE: When value type is a string, it will be handled by 'GL_COMPOSITE_PARAMETER_SETTERS'
112
112
  export const GL_PARAMETER_SETTERS = {
113
- [GL.BLEND]: enable,
114
- [GL.BLEND_COLOR]: (gl, value) => gl.blendColor(...value),
115
- [GL.BLEND_EQUATION_RGB]: 'blendEquation',
116
- [GL.BLEND_EQUATION_ALPHA]: 'blendEquation',
117
- [GL.BLEND_SRC_RGB]: 'blendFunc',
118
- [GL.BLEND_DST_RGB]: 'blendFunc',
119
- [GL.BLEND_SRC_ALPHA]: 'blendFunc',
120
- [GL.BLEND_DST_ALPHA]: 'blendFunc',
121
- [GL.COLOR_CLEAR_VALUE]: (gl, value) => gl.clearColor(...value),
122
- [GL.COLOR_WRITEMASK]: (gl, value) => gl.colorMask(...value),
123
- [GL.CULL_FACE]: enable,
124
- [GL.CULL_FACE_MODE]: (gl, value) => gl.cullFace(value),
125
- [GL.DEPTH_TEST]: enable,
126
- [GL.DEPTH_CLEAR_VALUE]: (gl, value) => gl.clearDepth(value),
127
- [GL.DEPTH_FUNC]: (gl, value) => gl.depthFunc(value),
128
- [GL.DEPTH_RANGE]: (gl, value) => gl.depthRange(...value),
129
- [GL.DEPTH_WRITEMASK]: (gl, value) => gl.depthMask(value),
130
- [GL.DITHER]: enable,
131
- [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: hint,
132
- [GL.CURRENT_PROGRAM]: (gl, value) => gl.useProgram(value),
133
- [GL.RENDERBUFFER_BINDING]: (gl, value) => gl.bindRenderbuffer(GL.RENDERBUFFER, value),
134
- [GL.TRANSFORM_FEEDBACK_BINDING]: (gl, value) => {
135
- var _gl$bindTransformFeed;
136
-
137
- return (_gl$bindTransformFeed = gl.bindTransformFeedback) === null || _gl$bindTransformFeed === void 0 ? void 0 : _gl$bindTransformFeed.call(gl, GL.TRANSFORM_FEEDBACK, value);
138
- },
139
- [GL.VERTEX_ARRAY_BINDING]: (gl, value) => gl.bindVertexArray(value),
140
- [GL.FRAMEBUFFER_BINDING]: bindFramebuffer,
141
- [GL.READ_FRAMEBUFFER_BINDING]: bindFramebuffer,
142
- [GL.ARRAY_BUFFER_BINDING]: bindBuffer,
143
- [GL.COPY_READ_BUFFER_BINDING]: bindBuffer,
144
- [GL.COPY_WRITE_BUFFER_BINDING]: bindBuffer,
145
- [GL.PIXEL_PACK_BUFFER_BINDING]: bindBuffer,
146
- [GL.PIXEL_UNPACK_BUFFER_BINDING]: bindBuffer,
147
- [GL.FRONT_FACE]: (gl, value) => gl.frontFace(value),
148
- [GL.GENERATE_MIPMAP_HINT]: hint,
149
- [GL.LINE_WIDTH]: (gl, value) => gl.lineWidth(value),
150
- [GL.POLYGON_OFFSET_FILL]: enable,
151
- [GL.POLYGON_OFFSET_FACTOR]: 'polygonOffset',
152
- [GL.POLYGON_OFFSET_UNITS]: 'polygonOffset',
153
- [GL.RASTERIZER_DISCARD]: enable,
154
- [GL.SAMPLE_ALPHA_TO_COVERAGE]: enable,
155
- [GL.SAMPLE_COVERAGE]: enable,
156
- [GL.SAMPLE_COVERAGE_VALUE]: 'sampleCoverage',
157
- [GL.SAMPLE_COVERAGE_INVERT]: 'sampleCoverage',
158
- [GL.SCISSOR_TEST]: enable,
159
- [GL.SCISSOR_BOX]: (gl, value) => gl.scissor(...value),
160
- [GL.STENCIL_TEST]: enable,
161
- [GL.STENCIL_CLEAR_VALUE]: (gl, value) => gl.clearStencil(value),
162
- [GL.STENCIL_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.FRONT, value),
163
- [GL.STENCIL_BACK_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.BACK, value),
164
- [GL.STENCIL_FUNC]: 'stencilFuncFront',
165
- [GL.STENCIL_REF]: 'stencilFuncFront',
166
- [GL.STENCIL_VALUE_MASK]: 'stencilFuncFront',
167
- [GL.STENCIL_BACK_FUNC]: 'stencilFuncBack',
168
- [GL.STENCIL_BACK_REF]: 'stencilFuncBack',
169
- [GL.STENCIL_BACK_VALUE_MASK]: 'stencilFuncBack',
170
- [GL.STENCIL_FAIL]: 'stencilOpFront',
171
- [GL.STENCIL_PASS_DEPTH_FAIL]: 'stencilOpFront',
172
- [GL.STENCIL_PASS_DEPTH_PASS]: 'stencilOpFront',
173
- [GL.STENCIL_BACK_FAIL]: 'stencilOpBack',
174
- [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: 'stencilOpBack',
175
- [GL.STENCIL_BACK_PASS_DEPTH_PASS]: 'stencilOpBack',
176
- [GL.VIEWPORT]: (gl, value) => gl.viewport(...value),
177
- [GL.PACK_ALIGNMENT]: pixelStorei,
178
- [GL.UNPACK_ALIGNMENT]: pixelStorei,
179
- [GL.UNPACK_FLIP_Y_WEBGL]: pixelStorei,
180
- [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: pixelStorei,
181
- [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: pixelStorei,
182
- [GL.PACK_ROW_LENGTH]: pixelStorei,
183
- [GL.PACK_SKIP_PIXELS]: pixelStorei,
184
- [GL.PACK_SKIP_ROWS]: pixelStorei,
185
- [GL.UNPACK_ROW_LENGTH]: pixelStorei,
186
- [GL.UNPACK_IMAGE_HEIGHT]: pixelStorei,
187
- [GL.UNPACK_SKIP_PIXELS]: pixelStorei,
188
- [GL.UNPACK_SKIP_ROWS]: pixelStorei,
189
- [GL.UNPACK_SKIP_IMAGES]: pixelStorei,
190
- framebuffer: (gl, framebuffer) => {
191
- const handle = framebuffer && 'handle' in framebuffer ? framebuffer.handle : framebuffer;
192
- return gl.bindFramebuffer(GL.FRAMEBUFFER, handle);
193
- },
194
- blend: (gl, value) => value ? gl.enable(GL.BLEND) : gl.disable(GL.BLEND),
195
- blendColor: (gl, value) => gl.blendColor(...value),
196
- blendEquation: (gl, args) => {
197
- args = isArray(args) ? args : [args, args];
198
- gl.blendEquationSeparate(...args);
199
- },
200
- blendFunc: (gl, args) => {
201
- args = isArray(args) && args.length === 2 ? [...args, ...args] : args;
202
- gl.blendFuncSeparate(...args);
203
- },
204
- clearColor: (gl, value) => gl.clearColor(...value),
205
- clearDepth: (gl, value) => gl.clearDepth(value),
206
- clearStencil: (gl, value) => gl.clearStencil(value),
207
- colorMask: (gl, value) => gl.colorMask(...value),
208
- cull: (gl, value) => value ? gl.enable(GL.CULL_FACE) : gl.disable(GL.CULL_FACE),
209
- cullFace: (gl, value) => gl.cullFace(value),
210
- depthTest: (gl, value) => value ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST),
211
- depthFunc: (gl, value) => gl.depthFunc(value),
212
- depthMask: (gl, value) => gl.depthMask(value),
213
- depthRange: (gl, value) => gl.depthRange(...value),
214
- dither: (gl, value) => value ? gl.enable(GL.DITHER) : gl.disable(GL.DITHER),
215
- derivativeHint: (gl, value) => {
216
- gl.hint(GL.FRAGMENT_SHADER_DERIVATIVE_HINT, value);
217
- },
218
- frontFace: (gl, value) => gl.frontFace(value),
219
- mipmapHint: (gl, value) => gl.hint(GL.GENERATE_MIPMAP_HINT, value),
220
- lineWidth: (gl, value) => gl.lineWidth(value),
221
- polygonOffsetFill: (gl, value) => value ? gl.enable(GL.POLYGON_OFFSET_FILL) : gl.disable(GL.POLYGON_OFFSET_FILL),
222
- polygonOffset: (gl, value) => gl.polygonOffset(...value),
223
- sampleCoverage: (gl, value) => gl.sampleCoverage(...value),
224
- scissorTest: (gl, value) => value ? gl.enable(GL.SCISSOR_TEST) : gl.disable(GL.SCISSOR_TEST),
225
- scissor: (gl, value) => gl.scissor(...value),
226
- stencilTest: (gl, value) => value ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST),
227
- stencilMask: (gl, value) => {
228
- value = isArray(value) ? value : [value, value];
229
- const [mask, backMask] = value;
230
- gl.stencilMaskSeparate(GL.FRONT, mask);
231
- gl.stencilMaskSeparate(GL.BACK, backMask);
232
- },
233
- stencilFunc: (gl, args) => {
234
- args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
235
- const [func, ref, mask, backFunc, backRef, backMask] = args;
236
- gl.stencilFuncSeparate(GL.FRONT, func, ref, mask);
237
- gl.stencilFuncSeparate(GL.BACK, backFunc, backRef, backMask);
238
- },
239
- stencilOp: (gl, args) => {
240
- args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
241
- const [sfail, dpfail, dppass, backSfail, backDpfail, backDppass] = args;
242
- gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);
243
- gl.stencilOpSeparate(GL.BACK, backSfail, backDpfail, backDppass);
244
- },
245
- viewport: (gl, value) => gl.viewport(...value)
113
+ [3042]: enable,
114
+ [32773]: (gl, value) => gl.blendColor(...value),
115
+ [32777]: 'blendEquation',
116
+ [34877]: 'blendEquation',
117
+ [32969]: 'blendFunc',
118
+ [32968]: 'blendFunc',
119
+ [32971]: 'blendFunc',
120
+ [32970]: 'blendFunc',
121
+ [3106]: (gl, value) => gl.clearColor(...value),
122
+ [3107]: (gl, value) => gl.colorMask(...value),
123
+ [2884]: enable,
124
+ [2885]: (gl, value) => gl.cullFace(value),
125
+ [2929]: enable,
126
+ [2931]: (gl, value) => gl.clearDepth(value),
127
+ [2932]: (gl, value) => gl.depthFunc(value),
128
+ [2928]: (gl, value) => gl.depthRange(...value),
129
+ [2930]: (gl, value) => gl.depthMask(value),
130
+ [3024]: enable,
131
+ [35723]: hint,
132
+ [35725]: (gl, value) => gl.useProgram(value),
133
+ [36007]: (gl, value) => gl.bindRenderbuffer(36161, value),
134
+ [36389]: (gl, value) => gl.bindTransformFeedback?.(36386, value),
135
+ [34229]: (gl, value) => gl.bindVertexArray(value),
136
+ // NOTE: FRAMEBUFFER_BINDING and DRAW_FRAMEBUFFER_BINDING(WebGL2) refer same state.
137
+ [36006]: bindFramebuffer,
138
+ [36010]: bindFramebuffer,
139
+ // Buffers
140
+ [34964]: bindBuffer,
141
+ [36662]: bindBuffer,
142
+ [36663]: bindBuffer,
143
+ [35053]: bindBuffer,
144
+ [35055]: bindBuffer,
145
+ [2886]: (gl, value) => gl.frontFace(value),
146
+ [33170]: hint,
147
+ [2849]: (gl, value) => gl.lineWidth(value),
148
+ [32823]: enable,
149
+ [32824]: 'polygonOffset',
150
+ [10752]: 'polygonOffset',
151
+ [35977]: enable,
152
+ [32926]: enable,
153
+ [32928]: enable,
154
+ [32938]: 'sampleCoverage',
155
+ [32939]: 'sampleCoverage',
156
+ [3089]: enable,
157
+ [3088]: (gl, value) => gl.scissor(...value),
158
+ [2960]: enable,
159
+ [2961]: (gl, value) => gl.clearStencil(value),
160
+ [2968]: (gl, value) => gl.stencilMaskSeparate(1028, value),
161
+ [36005]: (gl, value) => gl.stencilMaskSeparate(1029, value),
162
+ [2962]: 'stencilFuncFront',
163
+ [2967]: 'stencilFuncFront',
164
+ [2963]: 'stencilFuncFront',
165
+ [34816]: 'stencilFuncBack',
166
+ [36003]: 'stencilFuncBack',
167
+ [36004]: 'stencilFuncBack',
168
+ [2964]: 'stencilOpFront',
169
+ [2965]: 'stencilOpFront',
170
+ [2966]: 'stencilOpFront',
171
+ [34817]: 'stencilOpBack',
172
+ [34818]: 'stencilOpBack',
173
+ [34819]: 'stencilOpBack',
174
+ [2978]: (gl, value) => gl.viewport(...value),
175
+ // WEBGL2 EXTENSIONS
176
+ // EXT_depth_clamp https://registry.khronos.org/webgl/extensions/EXT_depth_clamp/
177
+ [34383]: enable,
178
+ // WEBGL_provoking_vertex https://registry.khronos.org/webgl/extensions/WEBGL_provoking_vertex/
179
+ // [GL.PROVOKING_VERTEX_WEBL]: TODO - extension function needed
180
+ // WEBGL_polygon_mode https://registry.khronos.org/webgl/extensions/WEBGL_polygon_mode/
181
+ // POLYGON_MODE_WEBGL TODO - extension function needed
182
+ [10754]: enable,
183
+ // WEBGL_clip_cull_distance https://registry.khronos.org/webgl/extensions/WEBGL_clip_cull_distance/
184
+ [12288]: enable,
185
+ [12289]: enable,
186
+ [12290]: enable,
187
+ [12291]: enable,
188
+ [12292]: enable,
189
+ [12293]: enable,
190
+ [12294]: enable,
191
+ [12295]: enable,
192
+ // PIXEL PACK/UNPACK MODES
193
+ [3333]: pixelStorei,
194
+ [3317]: pixelStorei,
195
+ [37440]: pixelStorei,
196
+ [37441]: pixelStorei,
197
+ [37443]: pixelStorei,
198
+ [3330]: pixelStorei,
199
+ [3332]: pixelStorei,
200
+ [3331]: pixelStorei,
201
+ [3314]: pixelStorei,
202
+ [32878]: pixelStorei,
203
+ [3316]: pixelStorei,
204
+ [3315]: pixelStorei,
205
+ [32877]: pixelStorei,
206
+ // Function-style setters
207
+ framebuffer: (gl, framebuffer) => {
208
+ // accepts 1) a WebGLFramebuffer 2) null (default framebuffer), or 3) luma.gl Framebuffer class
209
+ // framebuffer is null when restoring to default framebuffer, otherwise use the WebGL handle.
210
+ const handle = framebuffer && 'handle' in framebuffer ? framebuffer.handle : framebuffer;
211
+ return gl.bindFramebuffer(36160, handle);
212
+ },
213
+ blend: (gl, value) => value ? gl.enable(3042) : gl.disable(3042),
214
+ blendColor: (gl, value) => gl.blendColor(...value),
215
+ blendEquation: (gl, args) => {
216
+ const separateModes = typeof args === 'number' ? [args, args] : args;
217
+ gl.blendEquationSeparate(...separateModes);
218
+ },
219
+ blendFunc: (gl, args) => {
220
+ const separateFuncs = args?.length === 2 ? [...args, ...args] : args;
221
+ gl.blendFuncSeparate(...separateFuncs);
222
+ },
223
+ clearColor: (gl, value) => gl.clearColor(...value),
224
+ clearDepth: (gl, value) => gl.clearDepth(value),
225
+ clearStencil: (gl, value) => gl.clearStencil(value),
226
+ colorMask: (gl, value) => gl.colorMask(...value),
227
+ cull: (gl, value) => value ? gl.enable(2884) : gl.disable(2884),
228
+ cullFace: (gl, value) => gl.cullFace(value),
229
+ depthTest: (gl, value) => value ? gl.enable(2929) : gl.disable(2929),
230
+ depthFunc: (gl, value) => gl.depthFunc(value),
231
+ depthMask: (gl, value) => gl.depthMask(value),
232
+ depthRange: (gl, value) => gl.depthRange(...value),
233
+ dither: (gl, value) => value ? gl.enable(3024) : gl.disable(3024),
234
+ derivativeHint: (gl, value) => {
235
+ // gl1: 'OES_standard_derivatives'
236
+ gl.hint(35723, value);
237
+ },
238
+ frontFace: (gl, value) => gl.frontFace(value),
239
+ mipmapHint: (gl, value) => gl.hint(33170, value),
240
+ lineWidth: (gl, value) => gl.lineWidth(value),
241
+ polygonOffsetFill: (gl, value) => value ? gl.enable(32823) : gl.disable(32823),
242
+ polygonOffset: (gl, value) => gl.polygonOffset(...value),
243
+ sampleCoverage: (gl, value) => gl.sampleCoverage(...value),
244
+ scissorTest: (gl, value) => value ? gl.enable(3089) : gl.disable(3089),
245
+ scissor: (gl, value) => gl.scissor(...value),
246
+ stencilTest: (gl, value) => value ? gl.enable(2960) : gl.disable(2960),
247
+ stencilMask: (gl, value) => {
248
+ value = isArray(value) ? value : [value, value];
249
+ const [mask, backMask] = value;
250
+ gl.stencilMaskSeparate(1028, mask);
251
+ gl.stencilMaskSeparate(1029, backMask);
252
+ },
253
+ stencilFunc: (gl, args) => {
254
+ args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
255
+ const [func, ref, mask, backFunc, backRef, backMask] = args;
256
+ gl.stencilFuncSeparate(1028, func, ref, mask);
257
+ gl.stencilFuncSeparate(1029, backFunc, backRef, backMask);
258
+ },
259
+ stencilOp: (gl, args) => {
260
+ args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
261
+ const [sfail, dpfail, dppass, backSfail, backDpfail, backDppass] = args;
262
+ gl.stencilOpSeparate(1028, sfail, dpfail, dppass);
263
+ gl.stencilOpSeparate(1029, backSfail, backDpfail, backDppass);
264
+ },
265
+ viewport: (gl, value) => gl.viewport(...value)
246
266
  };
247
-
248
267
  function getValue(glEnum, values, cache) {
249
- return values[glEnum] !== undefined ? values[glEnum] : cache[glEnum];
268
+ return values[glEnum] !== undefined ? values[glEnum] : cache[glEnum];
250
269
  }
251
-
270
+ // COMPOSITE_WEBGL_PARAMETER_
252
271
  export const GL_COMPOSITE_PARAMETER_SETTERS = {
253
- blendEquation: (gl, values, cache) => gl.blendEquationSeparate(getValue(GL.BLEND_EQUATION_RGB, values, cache), getValue(GL.BLEND_EQUATION_ALPHA, values, cache)),
254
- blendFunc: (gl, values, cache) => gl.blendFuncSeparate(getValue(GL.BLEND_SRC_RGB, values, cache), getValue(GL.BLEND_DST_RGB, values, cache), getValue(GL.BLEND_SRC_ALPHA, values, cache), getValue(GL.BLEND_DST_ALPHA, values, cache)),
255
- polygonOffset: (gl, values, cache) => gl.polygonOffset(getValue(GL.POLYGON_OFFSET_FACTOR, values, cache), getValue(GL.POLYGON_OFFSET_UNITS, values, cache)),
256
- sampleCoverage: (gl, values, cache) => gl.sampleCoverage(getValue(GL.SAMPLE_COVERAGE_VALUE, values, cache), getValue(GL.SAMPLE_COVERAGE_INVERT, values, cache)),
257
- stencilFuncFront: (gl, values, cache) => gl.stencilFuncSeparate(GL.FRONT, getValue(GL.STENCIL_FUNC, values, cache), getValue(GL.STENCIL_REF, values, cache), getValue(GL.STENCIL_VALUE_MASK, values, cache)),
258
- stencilFuncBack: (gl, values, cache) => gl.stencilFuncSeparate(GL.BACK, getValue(GL.STENCIL_BACK_FUNC, values, cache), getValue(GL.STENCIL_BACK_REF, values, cache), getValue(GL.STENCIL_BACK_VALUE_MASK, values, cache)),
259
- stencilOpFront: (gl, values, cache) => gl.stencilOpSeparate(GL.FRONT, getValue(GL.STENCIL_FAIL, values, cache), getValue(GL.STENCIL_PASS_DEPTH_FAIL, values, cache), getValue(GL.STENCIL_PASS_DEPTH_PASS, values, cache)),
260
- stencilOpBack: (gl, values, cache) => gl.stencilOpSeparate(GL.BACK, getValue(GL.STENCIL_BACK_FAIL, values, cache), getValue(GL.STENCIL_BACK_PASS_DEPTH_FAIL, values, cache), getValue(GL.STENCIL_BACK_PASS_DEPTH_PASS, values, cache))
272
+ blendEquation: (gl, values, cache) => gl.blendEquationSeparate(getValue(32777, values, cache), getValue(34877, values, cache)),
273
+ blendFunc: (gl, values, cache) => gl.blendFuncSeparate(getValue(32969, values, cache), getValue(32968, values, cache), getValue(32971, values, cache), getValue(32970, values, cache)),
274
+ polygonOffset: (gl, values, cache) => gl.polygonOffset(getValue(32824, values, cache), getValue(10752, values, cache)),
275
+ sampleCoverage: (gl, values, cache) => gl.sampleCoverage(getValue(32938, values, cache), getValue(32939, values, cache)),
276
+ stencilFuncFront: (gl, values, cache) => gl.stencilFuncSeparate(1028, getValue(2962, values, cache), getValue(2967, values, cache), getValue(2963, values, cache)),
277
+ stencilFuncBack: (gl, values, cache) => gl.stencilFuncSeparate(1029, getValue(34816, values, cache), getValue(36003, values, cache), getValue(36004, values, cache)),
278
+ stencilOpFront: (gl, values, cache) => gl.stencilOpSeparate(1028, getValue(2964, values, cache), getValue(2965, values, cache), getValue(2966, values, cache)),
279
+ stencilOpBack: (gl, values, cache) => gl.stencilOpSeparate(1029, getValue(34817, values, cache), getValue(34818, values, cache), getValue(34819, values, cache))
261
280
  };
281
+ // Setter functions intercepted for cache updates
262
282
  export const GL_HOOKED_SETTERS = {
263
- enable: (update, capability) => update({
264
- [capability]: true
265
- }),
266
- disable: (update, capability) => update({
267
- [capability]: false
268
- }),
269
- pixelStorei: (update, pname, value) => update({
270
- [pname]: value
271
- }),
272
- hint: (update, pname, hint) => update({
273
- [pname]: hint
274
- }),
275
- useProgram: (update, value) => update({
276
- [GL.CURRENT_PROGRAM]: value
277
- }),
278
- bindRenderbuffer: (update, target, value) => update({
279
- [GL.RENDERBUFFER_BINDING]: value
280
- }),
281
- bindTransformFeedback: (update, target, value) => update({
282
- [GL.TRANSFORM_FEEDBACK_BINDING]: value
283
- }),
284
- bindVertexArray: (update, value) => update({
285
- [GL.VERTEX_ARRAY_BINDING]: value
286
- }),
287
- bindFramebuffer: (update, target, framebuffer) => {
288
- switch (target) {
289
- case GL.FRAMEBUFFER:
290
- return update({
291
- [GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer,
292
- [GL.READ_FRAMEBUFFER_BINDING]: framebuffer
293
- });
294
-
295
- case GL.DRAW_FRAMEBUFFER:
296
- return update({
297
- [GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer
298
- });
299
-
300
- case GL.READ_FRAMEBUFFER:
301
- return update({
302
- [GL.READ_FRAMEBUFFER_BINDING]: framebuffer
303
- });
304
-
305
- default:
306
- return null;
307
- }
308
- },
309
- bindBuffer: (update, target, buffer) => {
310
- const pname = {
311
- [GL.ARRAY_BUFFER]: [GL.ARRAY_BUFFER_BINDING],
312
- [GL.COPY_READ_BUFFER]: [GL.COPY_READ_BUFFER_BINDING],
313
- [GL.COPY_WRITE_BUFFER]: [GL.COPY_WRITE_BUFFER_BINDING],
314
- [GL.PIXEL_PACK_BUFFER]: [GL.PIXEL_PACK_BUFFER_BINDING],
315
- [GL.PIXEL_UNPACK_BUFFER]: [GL.PIXEL_UNPACK_BUFFER_BINDING]
316
- }[target];
317
-
318
- if (pname) {
319
- return update({
320
- [pname]: buffer
321
- });
322
- }
323
-
324
- return {
325
- valueChanged: true
326
- };
327
- },
328
- blendColor: (update, r, g, b, a) => update({
329
- [GL.BLEND_COLOR]: new Float32Array([r, g, b, a])
330
- }),
331
- blendEquation: (update, mode) => update({
332
- [GL.BLEND_EQUATION_RGB]: mode,
333
- [GL.BLEND_EQUATION_ALPHA]: mode
334
- }),
335
- blendEquationSeparate: (update, modeRGB, modeAlpha) => update({
336
- [GL.BLEND_EQUATION_RGB]: modeRGB,
337
- [GL.BLEND_EQUATION_ALPHA]: modeAlpha
338
- }),
339
- blendFunc: (update, src, dst) => update({
340
- [GL.BLEND_SRC_RGB]: src,
341
- [GL.BLEND_DST_RGB]: dst,
342
- [GL.BLEND_SRC_ALPHA]: src,
343
- [GL.BLEND_DST_ALPHA]: dst
344
- }),
345
- blendFuncSeparate: (update, srcRGB, dstRGB, srcAlpha, dstAlpha) => update({
346
- [GL.BLEND_SRC_RGB]: srcRGB,
347
- [GL.BLEND_DST_RGB]: dstRGB,
348
- [GL.BLEND_SRC_ALPHA]: srcAlpha,
349
- [GL.BLEND_DST_ALPHA]: dstAlpha
350
- }),
351
- clearColor: (update, r, g, b, a) => update({
352
- [GL.COLOR_CLEAR_VALUE]: new Float32Array([r, g, b, a])
353
- }),
354
- clearDepth: (update, depth) => update({
355
- [GL.DEPTH_CLEAR_VALUE]: depth
356
- }),
357
- clearStencil: (update, s) => update({
358
- [GL.STENCIL_CLEAR_VALUE]: s
359
- }),
360
- colorMask: (update, r, g, b, a) => update({
361
- [GL.COLOR_WRITEMASK]: [r, g, b, a]
362
- }),
363
- cullFace: (update, mode) => update({
364
- [GL.CULL_FACE_MODE]: mode
365
- }),
366
- depthFunc: (update, func) => update({
367
- [GL.DEPTH_FUNC]: func
368
- }),
369
- depthRange: (update, zNear, zFar) => update({
370
- [GL.DEPTH_RANGE]: new Float32Array([zNear, zFar])
371
- }),
372
- depthMask: (update, mask) => update({
373
- [GL.DEPTH_WRITEMASK]: mask
374
- }),
375
- frontFace: (update, face) => update({
376
- [GL.FRONT_FACE]: face
377
- }),
378
- lineWidth: (update, width) => update({
379
- [GL.LINE_WIDTH]: width
380
- }),
381
- polygonOffset: (update, factor, units) => update({
382
- [GL.POLYGON_OFFSET_FACTOR]: factor,
383
- [GL.POLYGON_OFFSET_UNITS]: units
384
- }),
385
- sampleCoverage: (update, value, invert) => update({
386
- [GL.SAMPLE_COVERAGE_VALUE]: value,
387
- [GL.SAMPLE_COVERAGE_INVERT]: invert
388
- }),
389
- scissor: (update, x, y, width, height) => update({
390
- [GL.SCISSOR_BOX]: new Int32Array([x, y, width, height])
391
- }),
392
- stencilMask: (update, mask) => update({
393
- [GL.STENCIL_WRITEMASK]: mask,
394
- [GL.STENCIL_BACK_WRITEMASK]: mask
395
- }),
396
- stencilMaskSeparate: (update, face, mask) => update({
397
- [face === GL.FRONT ? GL.STENCIL_WRITEMASK : GL.STENCIL_BACK_WRITEMASK]: mask
398
- }),
399
- stencilFunc: (update, func, ref, mask) => update({
400
- [GL.STENCIL_FUNC]: func,
401
- [GL.STENCIL_REF]: ref,
402
- [GL.STENCIL_VALUE_MASK]: mask,
403
- [GL.STENCIL_BACK_FUNC]: func,
404
- [GL.STENCIL_BACK_REF]: ref,
405
- [GL.STENCIL_BACK_VALUE_MASK]: mask
406
- }),
407
- stencilFuncSeparate: (update, face, func, ref, mask) => update({
408
- [face === GL.FRONT ? GL.STENCIL_FUNC : GL.STENCIL_BACK_FUNC]: func,
409
- [face === GL.FRONT ? GL.STENCIL_REF : GL.STENCIL_BACK_REF]: ref,
410
- [face === GL.FRONT ? GL.STENCIL_VALUE_MASK : GL.STENCIL_BACK_VALUE_MASK]: mask
411
- }),
412
- stencilOp: (update, fail, zfail, zpass) => update({
413
- [GL.STENCIL_FAIL]: fail,
414
- [GL.STENCIL_PASS_DEPTH_FAIL]: zfail,
415
- [GL.STENCIL_PASS_DEPTH_PASS]: zpass,
416
- [GL.STENCIL_BACK_FAIL]: fail,
417
- [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,
418
- [GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass
419
- }),
420
- stencilOpSeparate: (update, face, fail, zfail, zpass) => update({
421
- [face === GL.FRONT ? GL.STENCIL_FAIL : GL.STENCIL_BACK_FAIL]: fail,
422
- [face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_FAIL : GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,
423
- [face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_PASS : GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass
424
- }),
425
- viewport: (update, x, y, width, height) => update({
426
- [GL.VIEWPORT]: [x, y, width, height]
427
- })
283
+ // GENERIC SETTERS
284
+ enable: (update, capability) => update({
285
+ [capability]: true
286
+ }),
287
+ disable: (update, capability) => update({
288
+ [capability]: false
289
+ }),
290
+ pixelStorei: (update, pname, value) => update({
291
+ [pname]: value
292
+ }),
293
+ hint: (update, pname, hint) => update({
294
+ [pname]: hint
295
+ }),
296
+ // SPECIFIC SETTERS
297
+ useProgram: (update, value) => update({
298
+ [35725]: value
299
+ }),
300
+ bindRenderbuffer: (update, target, value) => update({
301
+ [36007]: value
302
+ }),
303
+ bindTransformFeedback: (update, target, value) => update({
304
+ [36389]: value
305
+ }),
306
+ bindVertexArray: (update, value) => update({
307
+ [34229]: value
308
+ }),
309
+ bindFramebuffer: (update, target, framebuffer) => {
310
+ switch (target) {
311
+ case 36160:
312
+ return update({
313
+ [36006]: framebuffer,
314
+ [36010]: framebuffer
315
+ });
316
+ case 36009:
317
+ return update({ [36006]: framebuffer });
318
+ case 36008:
319
+ return update({ [36010]: framebuffer });
320
+ default:
321
+ return null;
322
+ }
323
+ },
324
+ bindBuffer: (update, target, buffer) => {
325
+ const pname = {
326
+ [34962]: [34964],
327
+ [36662]: [36662],
328
+ [36663]: [36663],
329
+ [35051]: [35053],
330
+ [35052]: [35055]
331
+ }[target];
332
+ if (pname) {
333
+ return update({ [pname]: buffer });
334
+ }
335
+ // targets that should not be cached
336
+ return { valueChanged: true };
337
+ },
338
+ blendColor: (update, r, g, b, a) => update({
339
+ [32773]: new Float32Array([r, g, b, a])
340
+ }),
341
+ blendEquation: (update, mode) => update({
342
+ [32777]: mode,
343
+ [34877]: mode
344
+ }),
345
+ blendEquationSeparate: (update, modeRGB, modeAlpha) => update({
346
+ [32777]: modeRGB,
347
+ [34877]: modeAlpha
348
+ }),
349
+ blendFunc: (update, src, dst) => update({
350
+ [32969]: src,
351
+ [32968]: dst,
352
+ [32971]: src,
353
+ [32970]: dst
354
+ }),
355
+ blendFuncSeparate: (update, srcRGB, dstRGB, srcAlpha, dstAlpha) => update({
356
+ [32969]: srcRGB,
357
+ [32968]: dstRGB,
358
+ [32971]: srcAlpha,
359
+ [32970]: dstAlpha
360
+ }),
361
+ clearColor: (update, r, g, b, a) => update({
362
+ [3106]: new Float32Array([r, g, b, a])
363
+ }),
364
+ clearDepth: (update, depth) => update({
365
+ [2931]: depth
366
+ }),
367
+ clearStencil: (update, s) => update({
368
+ [2961]: s
369
+ }),
370
+ colorMask: (update, r, g, b, a) => update({
371
+ [3107]: [r, g, b, a]
372
+ }),
373
+ cullFace: (update, mode) => update({
374
+ [2885]: mode
375
+ }),
376
+ depthFunc: (update, func) => update({
377
+ [2932]: func
378
+ }),
379
+ depthRange: (update, zNear, zFar) => update({
380
+ [2928]: new Float32Array([zNear, zFar])
381
+ }),
382
+ depthMask: (update, mask) => update({
383
+ [2930]: mask
384
+ }),
385
+ frontFace: (update, face) => update({
386
+ [2886]: face
387
+ }),
388
+ lineWidth: (update, width) => update({
389
+ [2849]: width
390
+ }),
391
+ polygonOffset: (update, factor, units) => update({
392
+ [32824]: factor,
393
+ [10752]: units
394
+ }),
395
+ sampleCoverage: (update, value, invert) => update({
396
+ [32938]: value,
397
+ [32939]: invert
398
+ }),
399
+ scissor: (update, x, y, width, height) => update({
400
+ [3088]: new Int32Array([x, y, width, height])
401
+ }),
402
+ stencilMask: (update, mask) => update({
403
+ [2968]: mask,
404
+ [36005]: mask
405
+ }),
406
+ stencilMaskSeparate: (update, face, mask) => update({
407
+ [face === 1028 ? 2968 : 36005]: mask
408
+ }),
409
+ stencilFunc: (update, func, ref, mask) => update({
410
+ [2962]: func,
411
+ [2967]: ref,
412
+ [2963]: mask,
413
+ [34816]: func,
414
+ [36003]: ref,
415
+ [36004]: mask
416
+ }),
417
+ stencilFuncSeparate: (update, face, func, ref, mask) => update({
418
+ [face === 1028 ? 2962 : 34816]: func,
419
+ [face === 1028 ? 2967 : 36003]: ref,
420
+ [face === 1028 ? 2963 : 36004]: mask
421
+ }),
422
+ stencilOp: (update, fail, zfail, zpass) => update({
423
+ [2964]: fail,
424
+ [2965]: zfail,
425
+ [2966]: zpass,
426
+ [34817]: fail,
427
+ [34818]: zfail,
428
+ [34819]: zpass
429
+ }),
430
+ stencilOpSeparate: (update, face, fail, zfail, zpass) => update({
431
+ [face === 1028 ? 2964 : 34817]: fail,
432
+ [face === 1028 ? 2965 : 34818]: zfail,
433
+ [face === 1028 ? 2966 : 34819]: zpass
434
+ }),
435
+ viewport: (update, x, y, width, height) => update({
436
+ [2978]: [x, y, width, height]
437
+ })
428
438
  };
429
-
439
+ // GETTER TABLE - FOR READING OUT AN ENTIRE CONTEXT
430
440
  const isEnabled = (gl, key) => gl.isEnabled(key);
431
-
441
+ // Exceptions for any keys that cannot be queried by gl.getParameters
432
442
  export const GL_PARAMETER_GETTERS = {
433
- [GL.BLEND]: isEnabled,
434
- [GL.CULL_FACE]: isEnabled,
435
- [GL.DEPTH_TEST]: isEnabled,
436
- [GL.DITHER]: isEnabled,
437
- [GL.POLYGON_OFFSET_FILL]: isEnabled,
438
- [GL.SAMPLE_ALPHA_TO_COVERAGE]: isEnabled,
439
- [GL.SAMPLE_COVERAGE]: isEnabled,
440
- [GL.SCISSOR_TEST]: isEnabled,
441
- [GL.STENCIL_TEST]: isEnabled,
442
- [GL.RASTERIZER_DISCARD]: isEnabled
443
+ [3042]: isEnabled,
444
+ [2884]: isEnabled,
445
+ [2929]: isEnabled,
446
+ [3024]: isEnabled,
447
+ [32823]: isEnabled,
448
+ [32926]: isEnabled,
449
+ [32928]: isEnabled,
450
+ [3089]: isEnabled,
451
+ [2960]: isEnabled,
452
+ [35977]: isEnabled
443
453
  };
444
- export const NON_CACHE_PARAMETERS = new Set([GL.ACTIVE_TEXTURE, GL.TRANSFORM_FEEDBACK_ACTIVE, GL.TRANSFORM_FEEDBACK_PAUSED, GL.TRANSFORM_FEEDBACK_BUFFER_BINDING, GL.UNIFORM_BUFFER_BINDING, GL.ELEMENT_ARRAY_BUFFER_BINDING, GL.IMPLEMENTATION_COLOR_READ_FORMAT, GL.IMPLEMENTATION_COLOR_READ_TYPE, GL.READ_BUFFER, GL.DRAW_BUFFER0, GL.DRAW_BUFFER1, GL.DRAW_BUFFER2, GL.DRAW_BUFFER3, GL.DRAW_BUFFER4, GL.DRAW_BUFFER5, GL.DRAW_BUFFER6, GL.DRAW_BUFFER7, GL.DRAW_BUFFER8, GL.DRAW_BUFFER9, GL.DRAW_BUFFER10, GL.DRAW_BUFFER11, GL.DRAW_BUFFER12, GL.DRAW_BUFFER13, GL.DRAW_BUFFER14, GL.DRAW_BUFFER15, GL.SAMPLER_BINDING, GL.TEXTURE_BINDING_2D, GL.TEXTURE_BINDING_2D_ARRAY, GL.TEXTURE_BINDING_3D, GL.TEXTURE_BINDING_CUBE_MAP]);
445
- //# sourceMappingURL=webgl-parameter-tables.js.map
454
+ export const NON_CACHE_PARAMETERS = new Set([
455
+ 34016,
456
+ 36388,
457
+ 36387,
458
+ 35983,
459
+ 35368,
460
+ 34965,
461
+ 35739,
462
+ 35738,
463
+ 3074,
464
+ 34853,
465
+ 34854,
466
+ 34855,
467
+ 34856,
468
+ 34857,
469
+ 34858,
470
+ 34859,
471
+ 34860,
472
+ 34861,
473
+ 34862,
474
+ 34863,
475
+ 34864,
476
+ 34865,
477
+ 34866,
478
+ 34867,
479
+ 34868,
480
+ 35097,
481
+ 32873,
482
+ 35869,
483
+ 32874,
484
+ 34068
485
+ ]);