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

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