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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +3 -23
  3. package/dist/adapter/converters/device-parameters.js.map +1 -1
  4. package/dist/adapter/converters/renderbuffer-formats.js +1 -5
  5. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  7. package/dist/adapter/converters/sampler-parameters.js +3 -58
  8. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  9. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  10. package/dist/adapter/converters/texture-formats.js +10 -54
  11. package/dist/adapter/converters/texture-formats.js.map +1 -1
  12. package/dist/adapter/converters/vertex-formats.js +0 -9
  13. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  14. package/dist/adapter/device-helpers/device-features.js +5 -22
  15. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  16. package/dist/adapter/device-helpers/device-limits.js +1 -4
  17. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  18. package/dist/adapter/device-helpers/get-device-info.js +6 -12
  19. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  20. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  21. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  22. package/dist/adapter/helpers/attribute-utils.js +0 -17
  23. package/dist/adapter/helpers/attribute-utils.js.map +1 -1
  24. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  25. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  26. package/dist/adapter/helpers/get-shader-info.js +25 -0
  27. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  28. package/dist/adapter/helpers/get-shader-layout.js +9 -57
  29. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  30. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  31. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  32. package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
  33. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  34. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  35. package/dist/adapter/helpers/set-uniform.js +0 -30
  36. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  37. package/dist/adapter/helpers/uniforms.js +0 -10
  38. package/dist/adapter/helpers/uniforms.js.map +1 -1
  39. package/dist/adapter/objects/constants-to-keys.js +0 -7
  40. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  41. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  42. package/dist/adapter/objects/webgl-renderbuffer.js +4 -20
  43. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  44. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  45. package/dist/adapter/objects/webgl-resource.js +13 -60
  46. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  47. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  48. package/dist/adapter/objects/webgl-vertex-array-object.js +6 -16
  49. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  50. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  51. package/dist/adapter/resources/webgl-buffer.js +13 -42
  52. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  53. package/dist/adapter/resources/webgl-command-buffer.js +2 -17
  54. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  55. package/dist/adapter/resources/webgl-command-encoder.js +1 -14
  56. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  57. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  58. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  59. package/dist/adapter/resources/webgl-framebuffer.js +5 -65
  60. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  61. package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
  62. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  63. package/dist/adapter/resources/webgl-render-pass.js +1 -8
  64. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  65. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  66. package/dist/adapter/resources/webgl-render-pipeline.js +9 -98
  67. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  68. package/dist/adapter/resources/webgl-sampler.js +1 -13
  69. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  70. package/dist/adapter/resources/webgl-shader.d.ts +1 -2
  71. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  72. package/dist/adapter/resources/webgl-shader.js +3 -17
  73. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  74. package/dist/adapter/resources/webgl-texture.d.ts +1 -1
  75. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  76. package/dist/adapter/resources/webgl-texture.js +44 -162
  77. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  78. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  79. package/dist/adapter/webgl-canvas-context.js +2 -16
  80. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  81. package/dist/adapter/webgl-device.d.ts +5 -0
  82. package/dist/adapter/webgl-device.d.ts.map +1 -1
  83. package/dist/adapter/webgl-device.js +40 -107
  84. package/dist/adapter/webgl-device.js.map +1 -1
  85. package/dist/classic/accessor.js +11 -35
  86. package/dist/classic/accessor.js.map +1 -1
  87. package/dist/classic/buffer.d.ts.map +1 -1
  88. package/dist/classic/buffer.js +20 -76
  89. package/dist/classic/buffer.js.map +1 -1
  90. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  91. package/dist/classic/typed-array-utils.js +0 -20
  92. package/dist/classic/typed-array-utils.js.map +1 -1
  93. package/dist/context/context/create-browser-context.d.ts +1 -0
  94. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  95. package/dist/context/context/create-browser-context.js +6 -14
  96. package/dist/context/context/create-browser-context.js.map +1 -1
  97. package/dist/context/context/create-headless-context.js +6 -7
  98. package/dist/context/context/create-headless-context.js.map +1 -1
  99. package/dist/context/context/webgl-checks.js +0 -3
  100. package/dist/context/context/webgl-checks.js.map +1 -1
  101. package/dist/context/debug/spector.d.ts +1 -0
  102. package/dist/context/debug/spector.d.ts.map +1 -1
  103. package/dist/context/debug/spector.js +6 -18
  104. package/dist/context/debug/spector.js.map +1 -1
  105. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  106. package/dist/context/debug/webgl-developer-tools.js +4 -22
  107. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  108. package/dist/context/parameters/unified-parameter-api.js +4 -15
  109. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  110. package/dist/context/parameters/webgl-parameter-tables.js +1 -20
  111. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  112. package/dist/context/polyfill/context-data.js +0 -2
  113. package/dist/context/polyfill/context-data.js.map +1 -1
  114. package/dist/context/polyfill/get-parameter-polyfill.js +1 -6
  115. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  116. package/dist/context/polyfill/polyfill-context.js +17 -24
  117. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  118. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  119. package/dist/context/polyfill/polyfill-table.js +3 -26
  120. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  121. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  122. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
  123. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  124. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  125. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  126. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  127. package/dist/context/state-tracker/track-context-state.js +14 -48
  128. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  129. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  130. package/dist/context/state-tracker/with-parameters.js +3 -9
  131. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  132. package/dist/dist.dev.js +9205 -0
  133. package/dist/index.cjs +5948 -0
  134. package/dist/index.d.ts +0 -2
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +24 -26
  137. package/dist/index.js.map +1 -1
  138. package/dist/types/webgl.d.ts +4 -4
  139. package/dist/types/webgl.d.ts.map +1 -1
  140. package/dist/types/webgl.js.map +1 -1
  141. package/dist/types.js.map +1 -1
  142. package/dist.min.js +36 -0
  143. package/package.json +18 -9
  144. package/src/.DS_Store +0 -0
  145. package/src/adapter/.DS_Store +0 -0
  146. package/src/adapter/converters/device-parameters.ts +5 -2
  147. package/src/adapter/converters/sampler-parameters.ts +4 -2
  148. package/src/adapter/converters/texture-formats.ts +3 -1
  149. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  150. package/src/adapter/helpers/get-shader-info.ts +37 -0
  151. package/src/adapter/helpers/get-shader-layout.ts +4 -4
  152. package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
  153. package/src/adapter/helpers/set-uniform.ts +2 -0
  154. package/src/adapter/objects/webgl-renderbuffer.ts +1 -1
  155. package/src/adapter/objects/webgl-resource.ts +1 -1
  156. package/src/adapter/objects/webgl-vertex-array-object.ts +1 -1
  157. package/src/adapter/resources/webgl-buffer.ts +5 -5
  158. package/src/adapter/resources/webgl-command-encoder.ts +1 -1
  159. package/src/adapter/resources/webgl-framebuffer.ts +3 -4
  160. package/src/adapter/resources/webgl-render-pass.ts +1 -1
  161. package/src/adapter/resources/webgl-render-pipeline.ts +19 -20
  162. package/src/adapter/resources/webgl-shader.ts +3 -3
  163. package/src/adapter/resources/webgl-texture.ts +8 -9
  164. package/src/adapter/webgl-canvas-context.ts +2 -2
  165. package/src/adapter/webgl-device.ts +13 -3
  166. package/src/classic/accessor.ts +1 -1
  167. package/src/classic/buffer.ts +3 -3
  168. package/src/classic/typed-array-utils.ts +1 -1
  169. package/src/context/.DS_Store +0 -0
  170. package/src/context/context/create-browser-context.ts +4 -2
  171. package/src/context/context/create-headless-context.ts +2 -2
  172. package/src/context/debug/spector.ts +5 -4
  173. package/src/context/debug/webgl-developer-tools.ts +1 -1
  174. package/src/context/polyfill/polyfill-table.ts +1 -0
  175. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  176. package/src/context/state-tracker/track-context-state.ts +6 -5
  177. package/src/context/state-tracker/with-parameters.ts +1 -1
  178. package/src/index.ts +1 -5
  179. package/src/types/webgl.ts +6 -4
  180. package/dist/bundle.d.ts +0 -2
  181. package/dist/bundle.d.ts.map +0 -1
  182. package/dist/bundle.js +0 -5
  183. package/dist/bundle.js.map +0 -1
  184. package/dist/es5/adapter/converters/device-parameters.js +0 -174
  185. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  186. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  187. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  188. package/dist/es5/adapter/converters/sampler-parameters.js +0 -245
  189. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  190. package/dist/es5/adapter/converters/texture-formats.js +0 -1022
  191. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  192. package/dist/es5/adapter/converters/vertex-formats.js +0 -48
  193. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  194. package/dist/es5/adapter/device-helpers/device-features.js +0 -155
  195. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  196. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  197. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  198. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -59
  199. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  200. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  201. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  202. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  203. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  204. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -389
  205. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  206. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  207. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  208. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  209. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  210. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  211. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  212. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  213. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  214. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  215. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  216. package/dist/es5/adapter/objects/webgl-resource.js +0 -287
  217. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  218. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  219. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  220. package/dist/es5/adapter/resources/webgl-buffer.js +0 -242
  221. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  222. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  223. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  224. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  225. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  226. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  227. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  228. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -347
  229. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  230. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -62
  231. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  232. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -494
  233. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  234. package/dist/es5/adapter/resources/webgl-sampler.js +0 -101
  235. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  236. package/dist/es5/adapter/resources/webgl-shader.js +0 -150
  237. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  238. package/dist/es5/adapter/resources/webgl-texture.js +0 -980
  239. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  240. package/dist/es5/adapter/webgl-canvas-context.js +0 -96
  241. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  242. package/dist/es5/adapter/webgl-device.js +0 -474
  243. package/dist/es5/adapter/webgl-device.js.map +0 -1
  244. package/dist/es5/bundle.js +0 -7
  245. package/dist/es5/bundle.js.map +0 -1
  246. package/dist/es5/classic/accessor.js +0 -181
  247. package/dist/es5/classic/accessor.js.map +0 -1
  248. package/dist/es5/classic/buffer.js +0 -468
  249. package/dist/es5/classic/buffer.js.map +0 -1
  250. package/dist/es5/classic/typed-array-utils.js +0 -126
  251. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  252. package/dist/es5/context/context/create-browser-context.js +0 -83
  253. package/dist/es5/context/context/create-browser-context.js.map +0 -1
  254. package/dist/es5/context/context/create-headless-context.js +0 -60
  255. package/dist/es5/context/context/create-headless-context.js.map +0 -1
  256. package/dist/es5/context/context/webgl-checks.js +0 -54
  257. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  258. package/dist/es5/context/debug/spector.js +0 -133
  259. package/dist/es5/context/debug/spector.js.map +0 -1
  260. package/dist/es5/context/debug/webgl-developer-tools.js +0 -192
  261. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  262. package/dist/es5/context/parameters/unified-parameter-api.js +0 -101
  263. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  264. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -393
  265. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  266. package/dist/es5/context/polyfill/context-data.js +0 -21
  267. package/dist/es5/context/polyfill/context-data.js.map +0 -1
  268. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  269. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  270. package/dist/es5/context/polyfill/polyfill-context.js +0 -134
  271. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  272. package/dist/es5/context/polyfill/polyfill-table.js +0 -167
  273. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  274. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  275. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  276. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  277. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  278. package/dist/es5/context/state-tracker/track-context-state.js +0 -210
  279. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  280. package/dist/es5/context/state-tracker/with-parameters.js +0 -52
  281. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  282. package/dist/es5/index.js +0 -276
  283. package/dist/es5/index.js.map +0 -1
  284. package/dist/es5/init.js +0 -10
  285. package/dist/es5/init.js.map +0 -1
  286. package/dist/es5/types/webgl.js +0 -6
  287. package/dist/es5/types/webgl.js.map +0 -1
  288. package/dist/es5/types.js +0 -2
  289. package/dist/es5/types.js.map +0 -1
  290. package/dist/esm/adapter/converters/device-parameters.js +0 -157
  291. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  292. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  293. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  294. package/dist/esm/adapter/converters/sampler-parameters.js +0 -227
  295. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  296. package/dist/esm/adapter/converters/texture-formats.js +0 -945
  297. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  298. package/dist/esm/adapter/converters/vertex-formats.js +0 -38
  299. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  300. package/dist/esm/adapter/device-helpers/device-features.js +0 -112
  301. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  302. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  303. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  304. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -48
  305. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  306. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  307. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  308. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  309. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  310. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -328
  311. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  312. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  313. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  314. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  315. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  316. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  317. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  318. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  319. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  320. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  321. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  322. package/dist/esm/adapter/objects/webgl-resource.js +0 -210
  323. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  324. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  325. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  326. package/dist/esm/adapter/resources/webgl-buffer.js +0 -162
  327. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  328. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  329. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  330. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  331. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  332. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  333. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  334. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -267
  335. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  336. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -21
  337. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  338. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  339. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  340. package/dist/esm/adapter/resources/webgl-sampler.js +0 -54
  341. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  342. package/dist/esm/adapter/resources/webgl-shader.js +0 -76
  343. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  344. package/dist/esm/adapter/resources/webgl-texture.js +0 -832
  345. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  346. package/dist/esm/adapter/webgl-canvas-context.js +0 -55
  347. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  348. package/dist/esm/adapter/webgl-device.js +0 -346
  349. package/dist/esm/adapter/webgl-device.js.map +0 -1
  350. package/dist/esm/bundle.js +0 -5
  351. package/dist/esm/bundle.js.map +0 -1
  352. package/dist/esm/classic/accessor.js +0 -144
  353. package/dist/esm/classic/accessor.js.map +0 -1
  354. package/dist/esm/classic/buffer.js +0 -383
  355. package/dist/esm/classic/buffer.js.map +0 -1
  356. package/dist/esm/classic/typed-array-utils.js +0 -112
  357. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  358. package/dist/esm/context/context/create-browser-context.js +0 -61
  359. package/dist/esm/context/context/create-browser-context.js.map +0 -1
  360. package/dist/esm/context/context/create-headless-context.js +0 -43
  361. package/dist/esm/context/context/create-headless-context.js.map +0 -1
  362. package/dist/esm/context/context/webgl-checks.js +0 -34
  363. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  364. package/dist/esm/context/debug/spector.js +0 -76
  365. package/dist/esm/context/debug/spector.js.map +0 -1
  366. package/dist/esm/context/debug/webgl-developer-tools.js +0 -115
  367. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  368. package/dist/esm/context/parameters/unified-parameter-api.js +0 -66
  369. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  370. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -446
  371. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  372. package/dist/esm/context/polyfill/context-data.js +0 -14
  373. package/dist/esm/context/polyfill/context-data.js.map +0 -1
  374. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  375. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  376. package/dist/esm/context/polyfill/polyfill-context.js +0 -91
  377. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  378. package/dist/esm/context/polyfill/polyfill-table.js +0 -161
  379. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  380. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  381. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  382. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  383. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  384. package/dist/esm/context/state-tracker/track-context-state.js +0 -182
  385. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  386. package/dist/esm/context/state-tracker/with-parameters.js +0 -40
  387. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  388. package/dist/esm/index.js +0 -27
  389. package/dist/esm/index.js.map +0 -1
  390. package/dist/esm/init.js +0 -4
  391. package/dist/esm/init.js.map +0 -1
  392. package/dist/esm/types/webgl.js +0 -2
  393. package/dist/esm/types/webgl.js.map +0 -1
  394. package/dist/esm/types.js +0 -2
  395. package/dist/esm/types.js.map +0 -1
  396. package/dist/init.d.ts +0 -2
  397. package/dist/init.d.ts.map +0 -1
  398. package/dist/init.js +0 -4
  399. package/dist/init.js.map +0 -1
  400. package/src/bundle.ts +0 -4
  401. package/src/init.ts +0 -4
@@ -1,446 +0,0 @@
1
- import GL from '@luma.gl/constants';
2
- import { isWebGL2 } from '../context/webgl-checks';
3
- 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
77
- };
78
-
79
- const enable = (gl, value, key) => value ? gl.enable(key) : gl.disable(key);
80
-
81
- const hint = (gl, value, key) => gl.hint(key, value);
82
-
83
- const pixelStorei = (gl, value, key) => gl.pixelStorei(key, value);
84
-
85
- 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);
95
- };
96
-
97
- const bindBuffer = (gl, value, key) => {
98
- const bindingMap = {
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
- };
105
- const target = bindingMap[key];
106
- gl.bindBuffer(target, value);
107
- };
108
-
109
- function isArray(array) {
110
- return Array.isArray(array) || ArrayBuffer.isView(array) && !(array instanceof DataView);
111
- }
112
-
113
- export const GL_PARAMETER_SETTERS = {
114
- [GL.BLEND]: enable,
115
- [GL.BLEND_COLOR]: (gl, value) => gl.blendColor(...value),
116
- [GL.BLEND_EQUATION_RGB]: 'blendEquation',
117
- [GL.BLEND_EQUATION_ALPHA]: 'blendEquation',
118
- [GL.BLEND_SRC_RGB]: 'blendFunc',
119
- [GL.BLEND_DST_RGB]: 'blendFunc',
120
- [GL.BLEND_SRC_ALPHA]: 'blendFunc',
121
- [GL.BLEND_DST_ALPHA]: 'blendFunc',
122
- [GL.COLOR_CLEAR_VALUE]: (gl, value) => gl.clearColor(...value),
123
- [GL.COLOR_WRITEMASK]: (gl, value) => gl.colorMask(...value),
124
- [GL.CULL_FACE]: enable,
125
- [GL.CULL_FACE_MODE]: (gl, value) => gl.cullFace(value),
126
- [GL.DEPTH_TEST]: enable,
127
- [GL.DEPTH_CLEAR_VALUE]: (gl, value) => gl.clearDepth(value),
128
- [GL.DEPTH_FUNC]: (gl, value) => gl.depthFunc(value),
129
- [GL.DEPTH_RANGE]: (gl, value) => gl.depthRange(...value),
130
- [GL.DEPTH_WRITEMASK]: (gl, value) => gl.depthMask(value),
131
- [GL.DITHER]: enable,
132
- [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: hint,
133
- [GL.CURRENT_PROGRAM]: (gl, value) => gl.useProgram(value),
134
- [GL.RENDERBUFFER_BINDING]: (gl, value) => gl.bindRenderbuffer(GL.RENDERBUFFER, value),
135
- [GL.TRANSFORM_FEEDBACK_BINDING]: (gl, value) => {
136
- var _bindTransformFeedbac, _ref;
137
-
138
- return (_bindTransformFeedbac = (_ref = gl).bindTransformFeedback) === null || _bindTransformFeedbac === void 0 ? void 0 : _bindTransformFeedbac.call(_ref, GL.TRANSFORM_FEEDBACK, value);
139
- },
140
- [GL.VERTEX_ARRAY_BINDING]: (gl, value) => gl.bindVertexArray(value),
141
- [GL.FRAMEBUFFER_BINDING]: bindFramebuffer,
142
- [GL.READ_FRAMEBUFFER_BINDING]: bindFramebuffer,
143
- [GL.ARRAY_BUFFER_BINDING]: bindBuffer,
144
- [GL.COPY_READ_BUFFER_BINDING]: bindBuffer,
145
- [GL.COPY_WRITE_BUFFER_BINDING]: bindBuffer,
146
- [GL.PIXEL_PACK_BUFFER_BINDING]: bindBuffer,
147
- [GL.PIXEL_UNPACK_BUFFER_BINDING]: bindBuffer,
148
- [GL.FRONT_FACE]: (gl, value) => gl.frontFace(value),
149
- [GL.GENERATE_MIPMAP_HINT]: hint,
150
- [GL.LINE_WIDTH]: (gl, value) => gl.lineWidth(value),
151
- [GL.POLYGON_OFFSET_FILL]: enable,
152
- [GL.POLYGON_OFFSET_FACTOR]: 'polygonOffset',
153
- [GL.POLYGON_OFFSET_UNITS]: 'polygonOffset',
154
- [GL.RASTERIZER_DISCARD]: enable,
155
- [GL.SAMPLE_ALPHA_TO_COVERAGE]: enable,
156
- [GL.SAMPLE_COVERAGE]: enable,
157
- [GL.SAMPLE_COVERAGE_VALUE]: 'sampleCoverage',
158
- [GL.SAMPLE_COVERAGE_INVERT]: 'sampleCoverage',
159
- [GL.SCISSOR_TEST]: enable,
160
- [GL.SCISSOR_BOX]: (gl, value) => gl.scissor(...value),
161
- [GL.STENCIL_TEST]: enable,
162
- [GL.STENCIL_CLEAR_VALUE]: (gl, value) => gl.clearStencil(value),
163
- [GL.STENCIL_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.FRONT, value),
164
- [GL.STENCIL_BACK_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.BACK, value),
165
- [GL.STENCIL_FUNC]: 'stencilFuncFront',
166
- [GL.STENCIL_REF]: 'stencilFuncFront',
167
- [GL.STENCIL_VALUE_MASK]: 'stencilFuncFront',
168
- [GL.STENCIL_BACK_FUNC]: 'stencilFuncBack',
169
- [GL.STENCIL_BACK_REF]: 'stencilFuncBack',
170
- [GL.STENCIL_BACK_VALUE_MASK]: 'stencilFuncBack',
171
- [GL.STENCIL_FAIL]: 'stencilOpFront',
172
- [GL.STENCIL_PASS_DEPTH_FAIL]: 'stencilOpFront',
173
- [GL.STENCIL_PASS_DEPTH_PASS]: 'stencilOpFront',
174
- [GL.STENCIL_BACK_FAIL]: 'stencilOpBack',
175
- [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: 'stencilOpBack',
176
- [GL.STENCIL_BACK_PASS_DEPTH_PASS]: 'stencilOpBack',
177
- [GL.VIEWPORT]: (gl, value) => gl.viewport(...value),
178
- [GL.PACK_ALIGNMENT]: pixelStorei,
179
- [GL.UNPACK_ALIGNMENT]: pixelStorei,
180
- [GL.UNPACK_FLIP_Y_WEBGL]: pixelStorei,
181
- [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: pixelStorei,
182
- [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: pixelStorei,
183
- [GL.PACK_ROW_LENGTH]: pixelStorei,
184
- [GL.PACK_SKIP_PIXELS]: pixelStorei,
185
- [GL.PACK_SKIP_ROWS]: pixelStorei,
186
- [GL.UNPACK_ROW_LENGTH]: pixelStorei,
187
- [GL.UNPACK_IMAGE_HEIGHT]: pixelStorei,
188
- [GL.UNPACK_SKIP_PIXELS]: pixelStorei,
189
- [GL.UNPACK_SKIP_ROWS]: pixelStorei,
190
- [GL.UNPACK_SKIP_IMAGES]: pixelStorei,
191
- framebuffer: (gl, framebuffer) => {
192
- const handle = framebuffer && 'handle' in framebuffer ? framebuffer.handle : framebuffer;
193
- return gl.bindFramebuffer(GL.FRAMEBUFFER, handle);
194
- },
195
- blend: (gl, value) => value ? gl.enable(GL.BLEND) : gl.disable(GL.BLEND),
196
- blendColor: (gl, value) => gl.blendColor(...value),
197
- blendEquation: (gl, args) => {
198
- const separateModes = typeof args === 'number' ? [args, args] : args;
199
- gl.blendEquationSeparate(...separateModes);
200
- },
201
- blendFunc: (gl, args) => {
202
- const separateFuncs = (args === null || args === void 0 ? void 0 : args.length) === 2 ? [...args, ...args] : args;
203
- gl.blendFuncSeparate(...separateFuncs);
204
- },
205
- clearColor: (gl, value) => gl.clearColor(...value),
206
- clearDepth: (gl, value) => gl.clearDepth(value),
207
- clearStencil: (gl, value) => gl.clearStencil(value),
208
- colorMask: (gl, value) => gl.colorMask(...value),
209
- cull: (gl, value) => value ? gl.enable(GL.CULL_FACE) : gl.disable(GL.CULL_FACE),
210
- cullFace: (gl, value) => gl.cullFace(value),
211
- depthTest: (gl, value) => value ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST),
212
- depthFunc: (gl, value) => gl.depthFunc(value),
213
- depthMask: (gl, value) => gl.depthMask(value),
214
- depthRange: (gl, value) => gl.depthRange(...value),
215
- dither: (gl, value) => value ? gl.enable(GL.DITHER) : gl.disable(GL.DITHER),
216
- derivativeHint: (gl, value) => {
217
- gl.hint(GL.FRAGMENT_SHADER_DERIVATIVE_HINT, value);
218
- },
219
- frontFace: (gl, value) => gl.frontFace(value),
220
- mipmapHint: (gl, value) => gl.hint(GL.GENERATE_MIPMAP_HINT, value),
221
- lineWidth: (gl, value) => gl.lineWidth(value),
222
- polygonOffsetFill: (gl, value) => value ? gl.enable(GL.POLYGON_OFFSET_FILL) : gl.disable(GL.POLYGON_OFFSET_FILL),
223
- polygonOffset: (gl, value) => gl.polygonOffset(...value),
224
- sampleCoverage: (gl, value) => gl.sampleCoverage(...value),
225
- scissorTest: (gl, value) => value ? gl.enable(GL.SCISSOR_TEST) : gl.disable(GL.SCISSOR_TEST),
226
- scissor: (gl, value) => gl.scissor(...value),
227
- stencilTest: (gl, value) => value ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST),
228
- stencilMask: (gl, value) => {
229
- value = isArray(value) ? value : [value, value];
230
- const [mask, backMask] = value;
231
- gl.stencilMaskSeparate(GL.FRONT, mask);
232
- gl.stencilMaskSeparate(GL.BACK, backMask);
233
- },
234
- stencilFunc: (gl, args) => {
235
- args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
236
- const [func, ref, mask, backFunc, backRef, backMask] = args;
237
- gl.stencilFuncSeparate(GL.FRONT, func, ref, mask);
238
- gl.stencilFuncSeparate(GL.BACK, backFunc, backRef, backMask);
239
- },
240
- stencilOp: (gl, args) => {
241
- args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
242
- const [sfail, dpfail, dppass, backSfail, backDpfail, backDppass] = args;
243
- gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);
244
- gl.stencilOpSeparate(GL.BACK, backSfail, backDpfail, backDppass);
245
- },
246
- viewport: (gl, value) => gl.viewport(...value)
247
- };
248
-
249
- function getValue(glEnum, values, cache) {
250
- return values[glEnum] !== undefined ? values[glEnum] : cache[glEnum];
251
- }
252
-
253
- export const GL_COMPOSITE_PARAMETER_SETTERS = {
254
- blendEquation: (gl, values, cache) => gl.blendEquationSeparate(getValue(GL.BLEND_EQUATION_RGB, values, cache), getValue(GL.BLEND_EQUATION_ALPHA, values, cache)),
255
- 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)),
256
- polygonOffset: (gl, values, cache) => gl.polygonOffset(getValue(GL.POLYGON_OFFSET_FACTOR, values, cache), getValue(GL.POLYGON_OFFSET_UNITS, values, cache)),
257
- sampleCoverage: (gl, values, cache) => gl.sampleCoverage(getValue(GL.SAMPLE_COVERAGE_VALUE, values, cache), getValue(GL.SAMPLE_COVERAGE_INVERT, values, cache)),
258
- 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)),
259
- 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)),
260
- 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)),
261
- 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))
262
- };
263
- export const GL_HOOKED_SETTERS = {
264
- enable: (update, capability) => update({
265
- [capability]: true
266
- }),
267
- disable: (update, capability) => update({
268
- [capability]: false
269
- }),
270
- pixelStorei: (update, pname, value) => update({
271
- [pname]: value
272
- }),
273
- hint: (update, pname, hint) => update({
274
- [pname]: hint
275
- }),
276
- useProgram: (update, value) => update({
277
- [GL.CURRENT_PROGRAM]: value
278
- }),
279
- bindRenderbuffer: (update, target, value) => update({
280
- [GL.RENDERBUFFER_BINDING]: value
281
- }),
282
- bindTransformFeedback: (update, target, value) => update({
283
- [GL.TRANSFORM_FEEDBACK_BINDING]: value
284
- }),
285
- bindVertexArray: (update, value) => update({
286
- [GL.VERTEX_ARRAY_BINDING]: value
287
- }),
288
- bindFramebuffer: (update, target, framebuffer) => {
289
- switch (target) {
290
- case GL.FRAMEBUFFER:
291
- return update({
292
- [GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer,
293
- [GL.READ_FRAMEBUFFER_BINDING]: framebuffer
294
- });
295
-
296
- case GL.DRAW_FRAMEBUFFER:
297
- return update({
298
- [GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer
299
- });
300
-
301
- case GL.READ_FRAMEBUFFER:
302
- return update({
303
- [GL.READ_FRAMEBUFFER_BINDING]: framebuffer
304
- });
305
-
306
- default:
307
- return null;
308
- }
309
- },
310
- bindBuffer: (update, target, buffer) => {
311
- const pname = {
312
- [GL.ARRAY_BUFFER]: [GL.ARRAY_BUFFER_BINDING],
313
- [GL.COPY_READ_BUFFER]: [GL.COPY_READ_BUFFER_BINDING],
314
- [GL.COPY_WRITE_BUFFER]: [GL.COPY_WRITE_BUFFER_BINDING],
315
- [GL.PIXEL_PACK_BUFFER]: [GL.PIXEL_PACK_BUFFER_BINDING],
316
- [GL.PIXEL_UNPACK_BUFFER]: [GL.PIXEL_UNPACK_BUFFER_BINDING]
317
- }[target];
318
-
319
- if (pname) {
320
- return update({
321
- [pname]: buffer
322
- });
323
- }
324
-
325
- return {
326
- valueChanged: true
327
- };
328
- },
329
- blendColor: (update, r, g, b, a) => update({
330
- [GL.BLEND_COLOR]: new Float32Array([r, g, b, a])
331
- }),
332
- blendEquation: (update, mode) => update({
333
- [GL.BLEND_EQUATION_RGB]: mode,
334
- [GL.BLEND_EQUATION_ALPHA]: mode
335
- }),
336
- blendEquationSeparate: (update, modeRGB, modeAlpha) => update({
337
- [GL.BLEND_EQUATION_RGB]: modeRGB,
338
- [GL.BLEND_EQUATION_ALPHA]: modeAlpha
339
- }),
340
- blendFunc: (update, src, dst) => update({
341
- [GL.BLEND_SRC_RGB]: src,
342
- [GL.BLEND_DST_RGB]: dst,
343
- [GL.BLEND_SRC_ALPHA]: src,
344
- [GL.BLEND_DST_ALPHA]: dst
345
- }),
346
- blendFuncSeparate: (update, srcRGB, dstRGB, srcAlpha, dstAlpha) => update({
347
- [GL.BLEND_SRC_RGB]: srcRGB,
348
- [GL.BLEND_DST_RGB]: dstRGB,
349
- [GL.BLEND_SRC_ALPHA]: srcAlpha,
350
- [GL.BLEND_DST_ALPHA]: dstAlpha
351
- }),
352
- clearColor: (update, r, g, b, a) => update({
353
- [GL.COLOR_CLEAR_VALUE]: new Float32Array([r, g, b, a])
354
- }),
355
- clearDepth: (update, depth) => update({
356
- [GL.DEPTH_CLEAR_VALUE]: depth
357
- }),
358
- clearStencil: (update, s) => update({
359
- [GL.STENCIL_CLEAR_VALUE]: s
360
- }),
361
- colorMask: (update, r, g, b, a) => update({
362
- [GL.COLOR_WRITEMASK]: [r, g, b, a]
363
- }),
364
- cullFace: (update, mode) => update({
365
- [GL.CULL_FACE_MODE]: mode
366
- }),
367
- depthFunc: (update, func) => update({
368
- [GL.DEPTH_FUNC]: func
369
- }),
370
- depthRange: (update, zNear, zFar) => update({
371
- [GL.DEPTH_RANGE]: new Float32Array([zNear, zFar])
372
- }),
373
- depthMask: (update, mask) => update({
374
- [GL.DEPTH_WRITEMASK]: mask
375
- }),
376
- frontFace: (update, face) => update({
377
- [GL.FRONT_FACE]: face
378
- }),
379
- lineWidth: (update, width) => update({
380
- [GL.LINE_WIDTH]: width
381
- }),
382
- polygonOffset: (update, factor, units) => update({
383
- [GL.POLYGON_OFFSET_FACTOR]: factor,
384
- [GL.POLYGON_OFFSET_UNITS]: units
385
- }),
386
- sampleCoverage: (update, value, invert) => update({
387
- [GL.SAMPLE_COVERAGE_VALUE]: value,
388
- [GL.SAMPLE_COVERAGE_INVERT]: invert
389
- }),
390
- scissor: (update, x, y, width, height) => update({
391
- [GL.SCISSOR_BOX]: new Int32Array([x, y, width, height])
392
- }),
393
- stencilMask: (update, mask) => update({
394
- [GL.STENCIL_WRITEMASK]: mask,
395
- [GL.STENCIL_BACK_WRITEMASK]: mask
396
- }),
397
- stencilMaskSeparate: (update, face, mask) => update({
398
- [face === GL.FRONT ? GL.STENCIL_WRITEMASK : GL.STENCIL_BACK_WRITEMASK]: mask
399
- }),
400
- stencilFunc: (update, func, ref, mask) => update({
401
- [GL.STENCIL_FUNC]: func,
402
- [GL.STENCIL_REF]: ref,
403
- [GL.STENCIL_VALUE_MASK]: mask,
404
- [GL.STENCIL_BACK_FUNC]: func,
405
- [GL.STENCIL_BACK_REF]: ref,
406
- [GL.STENCIL_BACK_VALUE_MASK]: mask
407
- }),
408
- stencilFuncSeparate: (update, face, func, ref, mask) => update({
409
- [face === GL.FRONT ? GL.STENCIL_FUNC : GL.STENCIL_BACK_FUNC]: func,
410
- [face === GL.FRONT ? GL.STENCIL_REF : GL.STENCIL_BACK_REF]: ref,
411
- [face === GL.FRONT ? GL.STENCIL_VALUE_MASK : GL.STENCIL_BACK_VALUE_MASK]: mask
412
- }),
413
- stencilOp: (update, fail, zfail, zpass) => update({
414
- [GL.STENCIL_FAIL]: fail,
415
- [GL.STENCIL_PASS_DEPTH_FAIL]: zfail,
416
- [GL.STENCIL_PASS_DEPTH_PASS]: zpass,
417
- [GL.STENCIL_BACK_FAIL]: fail,
418
- [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,
419
- [GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass
420
- }),
421
- stencilOpSeparate: (update, face, fail, zfail, zpass) => update({
422
- [face === GL.FRONT ? GL.STENCIL_FAIL : GL.STENCIL_BACK_FAIL]: fail,
423
- [face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_FAIL : GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,
424
- [face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_PASS : GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass
425
- }),
426
- viewport: (update, x, y, width, height) => update({
427
- [GL.VIEWPORT]: [x, y, width, height]
428
- })
429
- };
430
-
431
- const isEnabled = (gl, key) => gl.isEnabled(key);
432
-
433
- export const GL_PARAMETER_GETTERS = {
434
- [GL.BLEND]: isEnabled,
435
- [GL.CULL_FACE]: isEnabled,
436
- [GL.DEPTH_TEST]: isEnabled,
437
- [GL.DITHER]: isEnabled,
438
- [GL.POLYGON_OFFSET_FILL]: isEnabled,
439
- [GL.SAMPLE_ALPHA_TO_COVERAGE]: isEnabled,
440
- [GL.SAMPLE_COVERAGE]: isEnabled,
441
- [GL.SCISSOR_TEST]: isEnabled,
442
- [GL.STENCIL_TEST]: isEnabled,
443
- [GL.RASTERIZER_DISCARD]: isEnabled
444
- };
445
- 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]);
446
- //# sourceMappingURL=webgl-parameter-tables.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/context/parameters/webgl-parameter-tables.ts"],"names":["GL","isWebGL2","GL_PARAMETER_DEFAULTS","BLEND","BLEND_COLOR","Float32Array","BLEND_EQUATION_RGB","FUNC_ADD","BLEND_EQUATION_ALPHA","BLEND_SRC_RGB","ONE","BLEND_DST_RGB","ZERO","BLEND_SRC_ALPHA","BLEND_DST_ALPHA","COLOR_CLEAR_VALUE","COLOR_WRITEMASK","CULL_FACE","CULL_FACE_MODE","BACK","DEPTH_TEST","DEPTH_CLEAR_VALUE","DEPTH_FUNC","LESS","DEPTH_RANGE","DEPTH_WRITEMASK","DITHER","CURRENT_PROGRAM","FRAMEBUFFER_BINDING","RENDERBUFFER_BINDING","VERTEX_ARRAY_BINDING","ARRAY_BUFFER_BINDING","FRONT_FACE","CCW","GENERATE_MIPMAP_HINT","DONT_CARE","LINE_WIDTH","POLYGON_OFFSET_FILL","POLYGON_OFFSET_FACTOR","POLYGON_OFFSET_UNITS","SAMPLE_ALPHA_TO_COVERAGE","SAMPLE_COVERAGE","SAMPLE_COVERAGE_VALUE","SAMPLE_COVERAGE_INVERT","SCISSOR_TEST","SCISSOR_BOX","Int32Array","STENCIL_TEST","STENCIL_CLEAR_VALUE","STENCIL_WRITEMASK","STENCIL_BACK_WRITEMASK","STENCIL_FUNC","ALWAYS","STENCIL_REF","STENCIL_VALUE_MASK","STENCIL_BACK_FUNC","STENCIL_BACK_REF","STENCIL_BACK_VALUE_MASK","STENCIL_FAIL","KEEP","STENCIL_PASS_DEPTH_FAIL","STENCIL_PASS_DEPTH_PASS","STENCIL_BACK_FAIL","STENCIL_BACK_PASS_DEPTH_FAIL","STENCIL_BACK_PASS_DEPTH_PASS","VIEWPORT","PACK_ALIGNMENT","UNPACK_ALIGNMENT","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_COLORSPACE_CONVERSION_WEBGL","BROWSER_DEFAULT_WEBGL","TRANSFORM_FEEDBACK_BINDING","COPY_READ_BUFFER_BINDING","COPY_WRITE_BUFFER_BINDING","PIXEL_PACK_BUFFER_BINDING","PIXEL_UNPACK_BUFFER_BINDING","FRAGMENT_SHADER_DERIVATIVE_HINT","READ_FRAMEBUFFER_BINDING","RASTERIZER_DISCARD","PACK_ROW_LENGTH","PACK_SKIP_PIXELS","PACK_SKIP_ROWS","UNPACK_ROW_LENGTH","UNPACK_IMAGE_HEIGHT","UNPACK_SKIP_PIXELS","UNPACK_SKIP_ROWS","UNPACK_SKIP_IMAGES","enable","gl","value","key","disable","hint","pixelStorei","bindFramebuffer","target","DRAW_FRAMEBUFFER","FRAMEBUFFER","READ_FRAMEBUFFER","bindBuffer","bindingMap","ARRAY_BUFFER","COPY_READ_BUFFER","COPY_WRITE_BUFFER","PIXEL_PACK_BUFFER","PIXEL_UNPACK_BUFFER","isArray","array","Array","ArrayBuffer","isView","DataView","GL_PARAMETER_SETTERS","blendColor","clearColor","colorMask","cullFace","clearDepth","depthFunc","depthRange","depthMask","useProgram","bindRenderbuffer","RENDERBUFFER","bindTransformFeedback","TRANSFORM_FEEDBACK","bindVertexArray","frontFace","lineWidth","scissor","clearStencil","stencilMaskSeparate","FRONT","viewport","framebuffer","handle","blend","blendEquation","args","separateModes","blendEquationSeparate","blendFunc","separateFuncs","length","blendFuncSeparate","cull","depthTest","dither","derivativeHint","mipmapHint","polygonOffsetFill","polygonOffset","sampleCoverage","scissorTest","stencilTest","stencilMask","mask","backMask","stencilFunc","func","ref","backFunc","backRef","stencilFuncSeparate","stencilOp","sfail","dpfail","dppass","backSfail","backDpfail","backDppass","stencilOpSeparate","getValue","glEnum","values","cache","undefined","GL_COMPOSITE_PARAMETER_SETTERS","stencilFuncFront","stencilFuncBack","stencilOpFront","stencilOpBack","GL_HOOKED_SETTERS","update","capability","pname","DRAW_FRAMEBUFFER_BINDING","buffer","valueChanged","r","g","b","a","mode","modeRGB","modeAlpha","src","dst","srcRGB","dstRGB","srcAlpha","dstAlpha","depth","s","zNear","zFar","face","width","factor","units","invert","x","y","height","fail","zfail","zpass","isEnabled","GL_PARAMETER_GETTERS","NON_CACHE_PARAMETERS","Set","ACTIVE_TEXTURE","TRANSFORM_FEEDBACK_ACTIVE","TRANSFORM_FEEDBACK_PAUSED","TRANSFORM_FEEDBACK_BUFFER_BINDING","UNIFORM_BUFFER_BINDING","ELEMENT_ARRAY_BUFFER_BINDING","IMPLEMENTATION_COLOR_READ_FORMAT","IMPLEMENTATION_COLOR_READ_TYPE","READ_BUFFER","DRAW_BUFFER0","DRAW_BUFFER1","DRAW_BUFFER2","DRAW_BUFFER3","DRAW_BUFFER4","DRAW_BUFFER5","DRAW_BUFFER6","DRAW_BUFFER7","DRAW_BUFFER8","DRAW_BUFFER9","DRAW_BUFFER10","DRAW_BUFFER11","DRAW_BUFFER12","DRAW_BUFFER13","DRAW_BUFFER14","DRAW_BUFFER15","SAMPLER_BINDING","TEXTURE_BINDING_2D","TEXTURE_BINDING_2D_ARRAY","TEXTURE_BINDING_3D","TEXTURE_BINDING_CUBE_MAP"],"mappings":"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","sourcesContent":["// Tables describing WebGL parameters\nimport GL from '@luma.gl/constants';\nimport {isWebGL2} from '../context/webgl-checks';\nimport type {GLParameters} from '../../types/webgl';\n// DEFAULT SETTINGS - FOR FAST CACHE INITIALIZATION AND CONTEXT RESETS\n\n/* eslint-disable no-shadow */\n\nexport const GL_PARAMETER_DEFAULTS: GLParameters = {\n [GL.BLEND]: false,\n [GL.BLEND_COLOR]: new Float32Array([0, 0, 0, 0]),\n [GL.BLEND_EQUATION_RGB]: GL.FUNC_ADD,\n [GL.BLEND_EQUATION_ALPHA]: GL.FUNC_ADD,\n [GL.BLEND_SRC_RGB]: GL.ONE,\n [GL.BLEND_DST_RGB]: GL.ZERO,\n [GL.BLEND_SRC_ALPHA]: GL.ONE,\n [GL.BLEND_DST_ALPHA]: GL.ZERO,\n [GL.COLOR_CLEAR_VALUE]: new Float32Array([0, 0, 0, 0]), // TBD\n [GL.COLOR_WRITEMASK]: [true, true, true, true],\n [GL.CULL_FACE]: false,\n [GL.CULL_FACE_MODE]: GL.BACK,\n [GL.DEPTH_TEST]: false,\n [GL.DEPTH_CLEAR_VALUE]: 1,\n [GL.DEPTH_FUNC]: GL.LESS,\n [GL.DEPTH_RANGE]: new Float32Array([0, 1]), // TBD\n [GL.DEPTH_WRITEMASK]: true,\n [GL.DITHER]: true,\n [GL.CURRENT_PROGRAM]: null,\n // FRAMEBUFFER_BINDING and DRAW_FRAMEBUFFER_BINDING(WebGL2) refer same state.\n [GL.FRAMEBUFFER_BINDING]: null,\n [GL.RENDERBUFFER_BINDING]: null,\n [GL.VERTEX_ARRAY_BINDING]: null,\n [GL.ARRAY_BUFFER_BINDING]: null,\n [GL.FRONT_FACE]: GL.CCW,\n [GL.GENERATE_MIPMAP_HINT]: GL.DONT_CARE,\n [GL.LINE_WIDTH]: 1,\n [GL.POLYGON_OFFSET_FILL]: false,\n [GL.POLYGON_OFFSET_FACTOR]: 0,\n [GL.POLYGON_OFFSET_UNITS]: 0,\n [GL.SAMPLE_ALPHA_TO_COVERAGE]: false,\n [GL.SAMPLE_COVERAGE]: false,\n [GL.SAMPLE_COVERAGE_VALUE]: 1.0,\n [GL.SAMPLE_COVERAGE_INVERT]: false,\n [GL.SCISSOR_TEST]: false,\n // Note: Dynamic value. If scissor test enabled we expect users to set correct scissor box\n [GL.SCISSOR_BOX]: new Int32Array([0, 0, 1024, 1024]),\n [GL.STENCIL_TEST]: false,\n [GL.STENCIL_CLEAR_VALUE]: 0,\n [GL.STENCIL_WRITEMASK]: 0xffffffff,\n [GL.STENCIL_BACK_WRITEMASK]: 0xffffffff,\n [GL.STENCIL_FUNC]: GL.ALWAYS,\n [GL.STENCIL_REF]: 0,\n [GL.STENCIL_VALUE_MASK]: 0xffffffff,\n [GL.STENCIL_BACK_FUNC]: GL.ALWAYS,\n [GL.STENCIL_BACK_REF]: 0,\n [GL.STENCIL_BACK_VALUE_MASK]: 0xffffffff,\n [GL.STENCIL_FAIL]: GL.KEEP,\n [GL.STENCIL_PASS_DEPTH_FAIL]: GL.KEEP,\n [GL.STENCIL_PASS_DEPTH_PASS]: GL.KEEP,\n [GL.STENCIL_BACK_FAIL]: GL.KEEP,\n [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: GL.KEEP,\n [GL.STENCIL_BACK_PASS_DEPTH_PASS]: GL.KEEP,\n // Dynamic value: We use [0, 0, 1024, 1024] as default, but usually this is updated in each frame.\n [GL.VIEWPORT]: [0, 0, 1024, 1024],\n // WEBGL1 PIXEL PACK/UNPACK MODES\n [GL.PACK_ALIGNMENT]: 4,\n [GL.UNPACK_ALIGNMENT]: 4,\n [GL.UNPACK_FLIP_Y_WEBGL]: false,\n [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: false,\n [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: GL.BROWSER_DEFAULT_WEBGL,\n\n // WEBGL2 / EXTENSIONS\n // gl1: 'OES_standard_derivatives'\n [GL.TRANSFORM_FEEDBACK_BINDING]: null,\n [GL.COPY_READ_BUFFER_BINDING]: null,\n [GL.COPY_WRITE_BUFFER_BINDING]: null,\n [GL.PIXEL_PACK_BUFFER_BINDING]: null,\n [GL.PIXEL_UNPACK_BUFFER_BINDING]: null,\n [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: GL.DONT_CARE,\n [GL.READ_FRAMEBUFFER_BINDING]: null,\n [GL.RASTERIZER_DISCARD]: false,\n [GL.PACK_ROW_LENGTH]: 0,\n [GL.PACK_SKIP_PIXELS]: 0,\n [GL.PACK_SKIP_ROWS]: 0,\n [GL.UNPACK_ROW_LENGTH]: 0,\n [GL.UNPACK_IMAGE_HEIGHT]: 0,\n [GL.UNPACK_SKIP_PIXELS]: 0,\n [GL.UNPACK_SKIP_ROWS]: 0,\n [GL.UNPACK_SKIP_IMAGES]: 0\n};\n\n// SETTER TABLES - ENABLES SETTING ANY PARAMETER WITH A COMMON API\n\nconst enable = (gl: WebGLRenderingContext, value: unknown, key: GL) =>\n value ? gl.enable(key) : gl.disable(key);\nconst hint = (gl: WebGLRenderingContext, value: GL, key: GL) => gl.hint(key, value);\nconst pixelStorei = (gl: WebGLRenderingContext, value: number | boolean, key: GL) =>\n gl.pixelStorei(key, value);\n\nconst bindFramebuffer = (gl: WebGLRenderingContext, value: unknown, key: GL) => {\n let target;\n if (key === GL.FRAMEBUFFER_BINDING) {\n target = isWebGL2(gl) ? GL.DRAW_FRAMEBUFFER : GL.FRAMEBUFFER;\n } else {\n // GL.READ_FRAMEBUFFER_BINDING\n target = GL.READ_FRAMEBUFFER;\n }\n return gl.bindFramebuffer(target, value);\n};\n\nconst bindBuffer = (gl: WebGLRenderingContext, value: unknown, key: GL) => {\n const bindingMap: Partial<Record<GL, GL>> = {\n [GL.ARRAY_BUFFER_BINDING]: GL.ARRAY_BUFFER,\n [GL.COPY_READ_BUFFER_BINDING]: GL.COPY_READ_BUFFER,\n [GL.COPY_WRITE_BUFFER_BINDING]: GL.COPY_WRITE_BUFFER,\n [GL.PIXEL_PACK_BUFFER_BINDING]: GL.PIXEL_PACK_BUFFER,\n [GL.PIXEL_UNPACK_BUFFER_BINDING]: GL.PIXEL_UNPACK_BUFFER\n };\n const target = bindingMap[key];\n\n gl.bindBuffer(target, value);\n};\n\n// Utility\nfunction isArray(array: unknown): boolean {\n return Array.isArray(array) || (ArrayBuffer.isView(array) && !(array instanceof DataView));\n}\n\n// Map from WebGL parameter names to corresponding WebGL setter functions\n// WegGL constants are read by parameter names, but set by function names\n// NOTE: When value type is a string, it will be handled by 'GL_COMPOSITE_PARAMETER_SETTERS'\nexport const GL_PARAMETER_SETTERS = {\n [GL.BLEND]: enable,\n [GL.BLEND_COLOR]: (gl: WebGLRenderingContext, value: [number, number, number, number]) =>\n gl.blendColor(...value),\n [GL.BLEND_EQUATION_RGB]: 'blendEquation',\n [GL.BLEND_EQUATION_ALPHA]: 'blendEquation',\n [GL.BLEND_SRC_RGB]: 'blendFunc',\n [GL.BLEND_DST_RGB]: 'blendFunc',\n [GL.BLEND_SRC_ALPHA]: 'blendFunc',\n [GL.BLEND_DST_ALPHA]: 'blendFunc',\n [GL.COLOR_CLEAR_VALUE]: (gl: WebGLRenderingContext, value: [number, number, number, number]) =>\n gl.clearColor(...value),\n [GL.COLOR_WRITEMASK]: (gl: WebGLRenderingContext, value: [boolean, boolean, boolean, boolean]) => gl.colorMask(...value),\n [GL.CULL_FACE]: enable,\n [GL.CULL_FACE_MODE]: (gl: WebGLRenderingContext, value) => gl.cullFace(value),\n [GL.DEPTH_TEST]: enable,\n [GL.DEPTH_CLEAR_VALUE]: (gl: WebGLRenderingContext, value) => gl.clearDepth(value),\n [GL.DEPTH_FUNC]: (gl: WebGLRenderingContext, value) => gl.depthFunc(value),\n [GL.DEPTH_RANGE]: (gl: WebGLRenderingContext, value: [number, number]) => gl.depthRange(...value),\n [GL.DEPTH_WRITEMASK]: (gl: WebGLRenderingContext, value) => gl.depthMask(value),\n [GL.DITHER]: enable,\n [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: hint,\n\n [GL.CURRENT_PROGRAM]: (gl: WebGLRenderingContext, value) => gl.useProgram(value),\n [GL.RENDERBUFFER_BINDING]: (gl: WebGLRenderingContext, value) =>\n gl.bindRenderbuffer(GL.RENDERBUFFER, value),\n [GL.TRANSFORM_FEEDBACK_BINDING]: (gl: WebGLRenderingContext, value) =>\n (gl as WebGL2RenderingContext).bindTransformFeedback?.(GL.TRANSFORM_FEEDBACK, value),\n [GL.VERTEX_ARRAY_BINDING]: (gl: WebGLRenderingContext, value) =>\n (gl as WebGL2RenderingContext).bindVertexArray(value),\n // NOTE: FRAMEBUFFER_BINDING and DRAW_FRAMEBUFFER_BINDING(WebGL2) refer same state.\n [GL.FRAMEBUFFER_BINDING]: bindFramebuffer,\n [GL.READ_FRAMEBUFFER_BINDING]: bindFramebuffer,\n\n // Buffers\n [GL.ARRAY_BUFFER_BINDING]: bindBuffer,\n [GL.COPY_READ_BUFFER_BINDING]: bindBuffer,\n [GL.COPY_WRITE_BUFFER_BINDING]: bindBuffer,\n [GL.PIXEL_PACK_BUFFER_BINDING]: bindBuffer,\n [GL.PIXEL_UNPACK_BUFFER_BINDING]: bindBuffer,\n\n [GL.FRONT_FACE]: (gl: WebGLRenderingContext, value) => gl.frontFace(value),\n [GL.GENERATE_MIPMAP_HINT]: hint,\n [GL.LINE_WIDTH]: (gl: WebGLRenderingContext, value) => gl.lineWidth(value),\n [GL.POLYGON_OFFSET_FILL]: enable,\n [GL.POLYGON_OFFSET_FACTOR]: 'polygonOffset',\n [GL.POLYGON_OFFSET_UNITS]: 'polygonOffset',\n [GL.RASTERIZER_DISCARD]: enable,\n [GL.SAMPLE_ALPHA_TO_COVERAGE]: enable,\n [GL.SAMPLE_COVERAGE]: enable,\n [GL.SAMPLE_COVERAGE_VALUE]: 'sampleCoverage',\n [GL.SAMPLE_COVERAGE_INVERT]: 'sampleCoverage',\n [GL.SCISSOR_TEST]: enable,\n [GL.SCISSOR_BOX]: (gl: WebGLRenderingContext, value: [number, number, number, number]) => gl.scissor(...value),\n [GL.STENCIL_TEST]: enable,\n [GL.STENCIL_CLEAR_VALUE]: (gl: WebGLRenderingContext, value) => gl.clearStencil(value),\n [GL.STENCIL_WRITEMASK]: (gl: WebGLRenderingContext, value) =>\n gl.stencilMaskSeparate(GL.FRONT, value),\n [GL.STENCIL_BACK_WRITEMASK]: (gl: WebGLRenderingContext, value) =>\n gl.stencilMaskSeparate(GL.BACK, value),\n [GL.STENCIL_FUNC]: 'stencilFuncFront',\n [GL.STENCIL_REF]: 'stencilFuncFront',\n [GL.STENCIL_VALUE_MASK]: 'stencilFuncFront',\n [GL.STENCIL_BACK_FUNC]: 'stencilFuncBack',\n [GL.STENCIL_BACK_REF]: 'stencilFuncBack',\n [GL.STENCIL_BACK_VALUE_MASK]: 'stencilFuncBack',\n [GL.STENCIL_FAIL]: 'stencilOpFront',\n [GL.STENCIL_PASS_DEPTH_FAIL]: 'stencilOpFront',\n [GL.STENCIL_PASS_DEPTH_PASS]: 'stencilOpFront',\n [GL.STENCIL_BACK_FAIL]: 'stencilOpBack',\n [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: 'stencilOpBack',\n [GL.STENCIL_BACK_PASS_DEPTH_PASS]: 'stencilOpBack',\n [GL.VIEWPORT]: (gl: WebGLRenderingContext, value: [number, number, number, number]) => gl.viewport(...value),\n\n // WEBGL1 PIXEL PACK/UNPACK MODES\n [GL.PACK_ALIGNMENT]: pixelStorei,\n [GL.UNPACK_ALIGNMENT]: pixelStorei,\n [GL.UNPACK_FLIP_Y_WEBGL]: pixelStorei,\n [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: pixelStorei,\n [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: pixelStorei,\n\n // WEBGL2 PIXEL PACK/UNPACK MODES\n // RASTERIZER_DISCARD ...\n [GL.PACK_ROW_LENGTH]: pixelStorei,\n [GL.PACK_SKIP_PIXELS]: pixelStorei,\n [GL.PACK_SKIP_ROWS]: pixelStorei,\n [GL.UNPACK_ROW_LENGTH]: pixelStorei,\n [GL.UNPACK_IMAGE_HEIGHT]: pixelStorei,\n [GL.UNPACK_SKIP_PIXELS]: pixelStorei,\n [GL.UNPACK_SKIP_ROWS]: pixelStorei,\n [GL.UNPACK_SKIP_IMAGES]: pixelStorei,\n\n // Function-style setters\n framebuffer: (gl: WebGLRenderingContext, framebuffer) => {\n // accepts 1) a WebGLFramebuffer 2) null (default framebuffer), or 3) luma.gl Framebuffer class\n // framebuffer is null when restoring to default framebuffer, otherwise use the WebGL handle.\n const handle = framebuffer && 'handle' in framebuffer ? framebuffer.handle : framebuffer;\n return gl.bindFramebuffer(GL.FRAMEBUFFER, handle);\n },\n blend: (gl: WebGLRenderingContext, value) => (value ? gl.enable(GL.BLEND) : gl.disable(GL.BLEND)),\n blendColor: (gl: WebGLRenderingContext, value: [number, number, number, number]) => gl.blendColor(...value),\n blendEquation: (gl: WebGLRenderingContext, args: number | [number, number]) => {\n const separateModes = typeof args === 'number' ? [args, args] as [number, number]: args;\n gl.blendEquationSeparate(...separateModes);\n },\n blendFunc: (gl: WebGLRenderingContext, args: [number, number] | [number, number, number, number]) => {\n const separateFuncs = args?.length === 2 ? [...args, ...args] as [number, number, number, number] : args;\n gl.blendFuncSeparate(...separateFuncs);\n },\n\n clearColor: (gl: WebGLRenderingContext, value: [number, number, number, number]) => gl.clearColor(...value),\n clearDepth: (gl: WebGLRenderingContext, value) => gl.clearDepth(value),\n clearStencil: (gl: WebGLRenderingContext, value) => gl.clearStencil(value),\n\n colorMask: (gl: WebGLRenderingContext, value: [boolean, boolean, boolean, boolean]) => gl.colorMask(...value),\n\n cull: (gl: WebGLRenderingContext, value) =>\n value ? gl.enable(GL.CULL_FACE) : gl.disable(GL.CULL_FACE),\n cullFace: (gl: WebGLRenderingContext, value) => gl.cullFace(value),\n\n depthTest: (gl: WebGLRenderingContext, value) =>\n value ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST),\n depthFunc: (gl: WebGLRenderingContext, value) => gl.depthFunc(value),\n depthMask: (gl: WebGLRenderingContext, value) => gl.depthMask(value),\n depthRange: (gl: WebGLRenderingContext, value: [number, number]) => gl.depthRange(...value),\n\n dither: (gl: WebGLRenderingContext, value) =>\n value ? gl.enable(GL.DITHER) : gl.disable(GL.DITHER),\n\n derivativeHint: (gl: WebGLRenderingContext, value) => {\n // gl1: 'OES_standard_derivatives'\n gl.hint(GL.FRAGMENT_SHADER_DERIVATIVE_HINT, value);\n },\n\n frontFace: (gl: WebGLRenderingContext, value) => gl.frontFace(value),\n\n mipmapHint: (gl: WebGLRenderingContext, value) => gl.hint(GL.GENERATE_MIPMAP_HINT, value),\n\n lineWidth: (gl: WebGLRenderingContext, value) => gl.lineWidth(value),\n\n polygonOffsetFill: (gl: WebGLRenderingContext, value) =>\n value ? gl.enable(GL.POLYGON_OFFSET_FILL) : gl.disable(GL.POLYGON_OFFSET_FILL),\n polygonOffset: (gl: WebGLRenderingContext, value: [number, number]) => gl.polygonOffset(...value),\n\n sampleCoverage: (gl: WebGLRenderingContext, value: [number, boolean?]) => gl.sampleCoverage(...value),\n\n scissorTest: (gl: WebGLRenderingContext, value) =>\n value ? gl.enable(GL.SCISSOR_TEST) : gl.disable(GL.SCISSOR_TEST),\n scissor: (gl: WebGLRenderingContext, value: [number, number, number, number]) => gl.scissor(...value),\n\n stencilTest: (gl: WebGLRenderingContext, value) =>\n value ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST),\n stencilMask: (gl: WebGLRenderingContext, value) => {\n value = isArray(value) ? value : [value, value];\n const [mask, backMask] = value;\n gl.stencilMaskSeparate(GL.FRONT, mask);\n gl.stencilMaskSeparate(GL.BACK, backMask);\n },\n stencilFunc: (gl: WebGLRenderingContext, args) => {\n args = isArray(args) && args.length === 3 ? [...args, ...args] : args;\n const [func, ref, mask, backFunc, backRef, backMask] = args;\n gl.stencilFuncSeparate(GL.FRONT, func, ref, mask);\n gl.stencilFuncSeparate(GL.BACK, backFunc, backRef, backMask);\n },\n stencilOp: (gl: WebGLRenderingContext, args) => {\n args = isArray(args) && args.length === 3 ? [...args, ...args] : args;\n const [sfail, dpfail, dppass, backSfail, backDpfail, backDppass] = args;\n gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);\n gl.stencilOpSeparate(GL.BACK, backSfail, backDpfail, backDppass);\n },\n\n viewport: (gl: WebGLRenderingContext, value: [number, number, number, number]) => gl.viewport(...value)\n};\n\nfunction getValue(glEnum, values, cache) {\n return values[glEnum] !== undefined ? values[glEnum] : cache[glEnum];\n}\n\n// COMPOSITE_WEBGL_PARAMETER_\nexport const GL_COMPOSITE_PARAMETER_SETTERS = {\n blendEquation: (gl: WebGLRenderingContext, values, cache) =>\n gl.blendEquationSeparate(\n getValue(GL.BLEND_EQUATION_RGB, values, cache),\n getValue(GL.BLEND_EQUATION_ALPHA, values, cache)\n ),\n blendFunc: (gl: WebGLRenderingContext, values, cache) =>\n gl.blendFuncSeparate(\n getValue(GL.BLEND_SRC_RGB, values, cache),\n getValue(GL.BLEND_DST_RGB, values, cache),\n getValue(GL.BLEND_SRC_ALPHA, values, cache),\n getValue(GL.BLEND_DST_ALPHA, values, cache)\n ),\n polygonOffset: (gl: WebGLRenderingContext, values, cache) =>\n gl.polygonOffset(\n getValue(GL.POLYGON_OFFSET_FACTOR, values, cache),\n getValue(GL.POLYGON_OFFSET_UNITS, values, cache)\n ),\n sampleCoverage: (gl: WebGLRenderingContext, values, cache) =>\n gl.sampleCoverage(\n getValue(GL.SAMPLE_COVERAGE_VALUE, values, cache),\n getValue(GL.SAMPLE_COVERAGE_INVERT, values, cache)\n ),\n stencilFuncFront: (gl: WebGLRenderingContext, values, cache) =>\n gl.stencilFuncSeparate(\n GL.FRONT,\n getValue(GL.STENCIL_FUNC, values, cache),\n getValue(GL.STENCIL_REF, values, cache),\n getValue(GL.STENCIL_VALUE_MASK, values, cache)\n ),\n stencilFuncBack: (gl: WebGLRenderingContext, values, cache) =>\n gl.stencilFuncSeparate(\n GL.BACK,\n getValue(GL.STENCIL_BACK_FUNC, values, cache),\n getValue(GL.STENCIL_BACK_REF, values, cache),\n getValue(GL.STENCIL_BACK_VALUE_MASK, values, cache)\n ),\n stencilOpFront: (gl: WebGLRenderingContext, values, cache) =>\n gl.stencilOpSeparate(\n GL.FRONT,\n getValue(GL.STENCIL_FAIL, values, cache),\n getValue(GL.STENCIL_PASS_DEPTH_FAIL, values, cache),\n getValue(GL.STENCIL_PASS_DEPTH_PASS, values, cache)\n ),\n stencilOpBack: (gl: WebGLRenderingContext, values, cache) =>\n gl.stencilOpSeparate(\n GL.BACK,\n getValue(GL.STENCIL_BACK_FAIL, values, cache),\n getValue(GL.STENCIL_BACK_PASS_DEPTH_FAIL, values, cache),\n getValue(GL.STENCIL_BACK_PASS_DEPTH_PASS, values, cache)\n )\n};\n\ntype UpdateFunc = (params: Record<string, any>) => void;\n\n// Setter functions intercepted for cache updates\nexport const GL_HOOKED_SETTERS = {\n // GENERIC SETTERS\n\n enable: (update: UpdateFunc, capability: GL) =>\n update({\n [capability]: true\n }),\n disable: (update: UpdateFunc, capability: GL) =>\n update({\n [capability]: false\n }),\n pixelStorei: (update: UpdateFunc, pname: GL, value) =>\n update({\n [pname]: value\n }),\n hint: (update: UpdateFunc, pname: GL, hint: GL) =>\n update({\n [pname]: hint\n }),\n\n // SPECIFIC SETTERS\n useProgram: (update: UpdateFunc, value) =>\n update({\n [GL.CURRENT_PROGRAM]: value\n }),\n bindRenderbuffer: (update: UpdateFunc, target, value) =>\n update({\n [GL.RENDERBUFFER_BINDING]: value\n }),\n bindTransformFeedback: (update: UpdateFunc, target, value) =>\n update({\n [GL.TRANSFORM_FEEDBACK_BINDING]: value\n }),\n bindVertexArray: (update: UpdateFunc, value) =>\n update({\n [GL.VERTEX_ARRAY_BINDING]: value\n }),\n\n bindFramebuffer: (update: UpdateFunc, target, framebuffer) => {\n switch (target) {\n case GL.FRAMEBUFFER:\n return update({\n [GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer,\n [GL.READ_FRAMEBUFFER_BINDING]: framebuffer\n });\n case GL.DRAW_FRAMEBUFFER:\n return update({[GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer});\n case GL.READ_FRAMEBUFFER:\n return update({[GL.READ_FRAMEBUFFER_BINDING]: framebuffer});\n default:\n return null;\n }\n },\n bindBuffer: (update: UpdateFunc, target, buffer) => {\n const pname = {\n [GL.ARRAY_BUFFER]: [GL.ARRAY_BUFFER_BINDING],\n [GL.COPY_READ_BUFFER]: [GL.COPY_READ_BUFFER_BINDING],\n [GL.COPY_WRITE_BUFFER]: [GL.COPY_WRITE_BUFFER_BINDING],\n [GL.PIXEL_PACK_BUFFER]: [GL.PIXEL_PACK_BUFFER_BINDING],\n [GL.PIXEL_UNPACK_BUFFER]: [GL.PIXEL_UNPACK_BUFFER_BINDING]\n }[target];\n\n if (pname) {\n return update({[pname]: buffer});\n }\n // targets that should not be cached\n return {valueChanged: true};\n },\n\n blendColor: (update: UpdateFunc, r: number, g: number, b: number, a: number) =>\n update({\n [GL.BLEND_COLOR]: new Float32Array([r, g, b, a])\n }),\n\n blendEquation: (update: UpdateFunc, mode) =>\n update({\n [GL.BLEND_EQUATION_RGB]: mode,\n [GL.BLEND_EQUATION_ALPHA]: mode\n }),\n\n blendEquationSeparate: (update: UpdateFunc, modeRGB, modeAlpha) =>\n update({\n [GL.BLEND_EQUATION_RGB]: modeRGB,\n [GL.BLEND_EQUATION_ALPHA]: modeAlpha\n }),\n\n blendFunc: (update: UpdateFunc, src, dst) =>\n update({\n [GL.BLEND_SRC_RGB]: src,\n [GL.BLEND_DST_RGB]: dst,\n [GL.BLEND_SRC_ALPHA]: src,\n [GL.BLEND_DST_ALPHA]: dst\n }),\n\n blendFuncSeparate: (update: UpdateFunc, srcRGB, dstRGB, srcAlpha, dstAlpha) =>\n update({\n [GL.BLEND_SRC_RGB]: srcRGB,\n [GL.BLEND_DST_RGB]: dstRGB,\n [GL.BLEND_SRC_ALPHA]: srcAlpha,\n [GL.BLEND_DST_ALPHA]: dstAlpha\n }),\n\n clearColor: (update: UpdateFunc, r: number, g: number, b: number, a: number) =>\n update({\n [GL.COLOR_CLEAR_VALUE]: new Float32Array([r, g, b, a])\n }),\n\n clearDepth: (update: UpdateFunc, depth: number) =>\n update({\n [GL.DEPTH_CLEAR_VALUE]: depth\n }),\n\n clearStencil: (update: UpdateFunc, s: number) =>\n update({\n [GL.STENCIL_CLEAR_VALUE]: s\n }),\n\n colorMask: (update: UpdateFunc, r: number, g: number, b: number, a: number) =>\n update({\n [GL.COLOR_WRITEMASK]: [r, g, b, a]\n }),\n\n cullFace: (update: UpdateFunc, mode) =>\n update({\n [GL.CULL_FACE_MODE]: mode\n }),\n\n depthFunc: (update: UpdateFunc, func) =>\n update({\n [GL.DEPTH_FUNC]: func\n }),\n\n depthRange: (update: UpdateFunc, zNear: number, zFar: number) =>\n update({\n [GL.DEPTH_RANGE]: new Float32Array([zNear, zFar])\n }),\n\n depthMask: (update: UpdateFunc, mask: number) =>\n update({\n [GL.DEPTH_WRITEMASK]: mask\n }),\n\n frontFace: (update: UpdateFunc, face) =>\n update({\n [GL.FRONT_FACE]: face\n }),\n\n lineWidth: (update: UpdateFunc, width) =>\n update({\n [GL.LINE_WIDTH]: width\n }),\n\n polygonOffset: (update: UpdateFunc, factor, units) =>\n update({\n [GL.POLYGON_OFFSET_FACTOR]: factor,\n [GL.POLYGON_OFFSET_UNITS]: units\n }),\n\n sampleCoverage: (update: UpdateFunc, value, invert) =>\n update({\n [GL.SAMPLE_COVERAGE_VALUE]: value,\n [GL.SAMPLE_COVERAGE_INVERT]: invert\n }),\n\n scissor: (update: UpdateFunc, x, y, width, height) =>\n update({\n [GL.SCISSOR_BOX]: new Int32Array([x, y, width, height])\n }),\n\n stencilMask: (update: UpdateFunc, mask) =>\n update({\n [GL.STENCIL_WRITEMASK]: mask,\n [GL.STENCIL_BACK_WRITEMASK]: mask\n }),\n\n stencilMaskSeparate: (update: UpdateFunc, face, mask) =>\n update({\n [face === GL.FRONT ? GL.STENCIL_WRITEMASK : GL.STENCIL_BACK_WRITEMASK]: mask\n }),\n\n stencilFunc: (update: UpdateFunc, func, ref, mask) =>\n update({\n [GL.STENCIL_FUNC]: func,\n [GL.STENCIL_REF]: ref,\n [GL.STENCIL_VALUE_MASK]: mask,\n [GL.STENCIL_BACK_FUNC]: func,\n [GL.STENCIL_BACK_REF]: ref,\n [GL.STENCIL_BACK_VALUE_MASK]: mask\n }),\n\n stencilFuncSeparate: (update: UpdateFunc, face, func, ref, mask) =>\n update({\n [face === GL.FRONT ? GL.STENCIL_FUNC : GL.STENCIL_BACK_FUNC]: func,\n [face === GL.FRONT ? GL.STENCIL_REF : GL.STENCIL_BACK_REF]: ref,\n [face === GL.FRONT ? GL.STENCIL_VALUE_MASK : GL.STENCIL_BACK_VALUE_MASK]: mask\n }),\n\n stencilOp: (update: UpdateFunc, fail, zfail, zpass) =>\n update({\n [GL.STENCIL_FAIL]: fail,\n [GL.STENCIL_PASS_DEPTH_FAIL]: zfail,\n [GL.STENCIL_PASS_DEPTH_PASS]: zpass,\n [GL.STENCIL_BACK_FAIL]: fail,\n [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,\n [GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass\n }),\n\n stencilOpSeparate: (update: UpdateFunc, face, fail, zfail, zpass) =>\n update({\n [face === GL.FRONT ? GL.STENCIL_FAIL : GL.STENCIL_BACK_FAIL]: fail,\n [face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_FAIL : GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,\n [face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_PASS : GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass\n }),\n\n viewport: (update: UpdateFunc, x, y, width, height) =>\n update({\n [GL.VIEWPORT]: [x, y, width, height]\n })\n};\n\n// GETTER TABLE - FOR READING OUT AN ENTIRE CONTEXT\n\nconst isEnabled = (gl: WebGLRenderingContext, key) => gl.isEnabled(key);\n\n// Exceptions for any keys that cannot be queried by gl.getParameters\nexport const GL_PARAMETER_GETTERS = {\n [GL.BLEND]: isEnabled,\n [GL.CULL_FACE]: isEnabled,\n [GL.DEPTH_TEST]: isEnabled,\n [GL.DITHER]: isEnabled,\n [GL.POLYGON_OFFSET_FILL]: isEnabled,\n [GL.SAMPLE_ALPHA_TO_COVERAGE]: isEnabled,\n [GL.SAMPLE_COVERAGE]: isEnabled,\n [GL.SCISSOR_TEST]: isEnabled,\n [GL.STENCIL_TEST]: isEnabled,\n\n // WebGL 2\n [GL.RASTERIZER_DISCARD]: isEnabled\n};\n\nexport const NON_CACHE_PARAMETERS = new Set([\n // setter not intercepted\n GL.ACTIVE_TEXTURE,\n GL.TRANSFORM_FEEDBACK_ACTIVE,\n GL.TRANSFORM_FEEDBACK_PAUSED,\n\n // setters bindBufferRange/bindBufferBase cannot be pruned based on cache\n GL.TRANSFORM_FEEDBACK_BUFFER_BINDING,\n GL.UNIFORM_BUFFER_BINDING,\n\n // states depending on VERTEX_ARRAY_BINDING\n GL.ELEMENT_ARRAY_BUFFER_BINDING,\n // states depending on READ_FRAMEBUFFER_BINDING\n GL.IMPLEMENTATION_COLOR_READ_FORMAT,\n GL.IMPLEMENTATION_COLOR_READ_TYPE,\n // states depending on FRAMEBUFFER_BINDING\n GL.READ_BUFFER,\n GL.DRAW_BUFFER0,\n GL.DRAW_BUFFER1,\n GL.DRAW_BUFFER2,\n GL.DRAW_BUFFER3,\n GL.DRAW_BUFFER4,\n GL.DRAW_BUFFER5,\n GL.DRAW_BUFFER6,\n GL.DRAW_BUFFER7,\n GL.DRAW_BUFFER8,\n GL.DRAW_BUFFER9,\n GL.DRAW_BUFFER10,\n GL.DRAW_BUFFER11,\n GL.DRAW_BUFFER12,\n GL.DRAW_BUFFER13,\n GL.DRAW_BUFFER14,\n GL.DRAW_BUFFER15,\n // states depending on ACTIVE_TEXTURE\n GL.SAMPLER_BINDING,\n GL.TEXTURE_BINDING_2D,\n GL.TEXTURE_BINDING_2D_ARRAY,\n GL.TEXTURE_BINDING_3D,\n GL.TEXTURE_BINDING_CUBE_MAP\n]);\n"],"file":"webgl-parameter-tables.js"}
@@ -1,14 +0,0 @@
1
- export function getContextData(gl) {
2
- const luma = gl.luma;
3
-
4
- if (!luma) {
5
- const contextState = {
6
- _polyfilled: false,
7
- _extensions: {}
8
- };
9
- gl.luma = contextState;
10
- }
11
-
12
- return gl.luma;
13
- }
14
- //# sourceMappingURL=context-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/context/polyfill/context-data.ts"],"names":["getContextData","gl","luma","contextState","_polyfilled","_extensions"],"mappings":"AAYA,OAAO,SAASA,cAAT,CAAwBC,EAAxB,EAAqE;AAE1E,QAAMC,IAAI,GAAGD,EAAE,CAACC,IAAhB;;AACA,MAAI,CAACA,IAAL,EAAW;AACT,UAAMC,YAA8B,GAAG;AACrCC,MAAAA,WAAW,EAAE,KADwB;AAErCC,MAAAA,WAAW,EAAE;AAFwB,KAAvC;AAKAJ,IAAAA,EAAE,CAACC,IAAH,GAAUC,YAAV;AACD;;AAGD,SAAOF,EAAE,CAACC,IAAV;AACD","sourcesContent":["/**\n * Stores luma.gl specific state associated with a context\n */\nexport interface WebGLContextData {\n _polyfilled: boolean;\n _extensions: Record<string, any>;\n}\n\n/**\n * Gets luma.gl specific state from a context\n * @returns context state\n */\nexport function getContextData(gl: WebGLRenderingContext): WebGLContextData {\n // @ts-expect-error\n const luma = gl.luma as WebGLContextData | null;\n if (!luma) {\n const contextState: WebGLContextData = {\n _polyfilled: false,\n _extensions: {}\n };\n // @ts-expect-error\n gl.luma = contextState;\n }\n\n // @ts-expect-error\n return gl.luma;\n}\n"],"file":"context-data.js"}