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

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 (525) hide show
  1. package/LICENSE +3 -1
  2. package/dist/adapter/converters/device-parameters.d.ts +12 -3
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/device-parameters.js +89 -74
  5. package/dist/adapter/converters/device-parameters.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts +4 -10
  7. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  8. package/dist/adapter/converters/sampler-parameters.js +29 -180
  9. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  10. package/dist/adapter/converters/shader-formats.d.ts +9 -0
  11. package/dist/adapter/converters/shader-formats.d.ts.map +1 -0
  12. package/dist/adapter/converters/shader-formats.js +52 -0
  13. package/dist/adapter/converters/shader-formats.js.map +1 -0
  14. package/dist/adapter/converters/texture-formats.d.ts +32 -44
  15. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  16. package/dist/adapter/converters/texture-formats.js +306 -343
  17. package/dist/adapter/converters/texture-formats.js.map +1 -1
  18. package/dist/adapter/converters/vertex-formats.d.ts +9 -3
  19. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  20. package/dist/adapter/converters/vertex-formats.js +53 -22
  21. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  22. package/dist/adapter/device-helpers/device-features.d.ts +1 -1
  23. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  24. package/dist/adapter/device-helpers/device-features.js +9 -25
  25. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  26. package/dist/adapter/device-helpers/device-limits.d.ts +3 -3
  27. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  28. package/dist/adapter/device-helpers/device-limits.js +54 -58
  29. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  30. package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
  31. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
  32. package/dist/adapter/device-helpers/get-device-info.js +49 -22
  33. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  34. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -1
  35. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  36. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  37. package/dist/adapter/helpers/decode-webgl-types.d.ts +26 -0
  38. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -0
  39. package/dist/adapter/helpers/decode-webgl-types.js +89 -0
  40. package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
  41. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -48
  42. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  43. package/dist/adapter/helpers/get-shader-layout.js +58 -138
  44. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  45. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  46. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  47. package/dist/adapter/helpers/parse-shader-compiler-log.js +16 -11
  48. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  49. package/dist/adapter/helpers/set-uniform.d.ts +3 -2
  50. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  51. package/dist/adapter/helpers/set-uniform.js +51 -82
  52. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  53. package/dist/adapter/helpers/webgl-topology-utils.d.ts +16 -0
  54. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
  55. package/dist/adapter/helpers/webgl-topology-utils.js +103 -0
  56. package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
  57. package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
  58. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  59. package/dist/adapter/objects/constants-to-keys.js +2 -29
  60. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  61. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  62. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  63. package/dist/adapter/objects/webgl-renderbuffer.js +36 -44
  64. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  65. package/dist/adapter/objects/webgl-resource.d.ts +6 -9
  66. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  67. package/dist/adapter/objects/webgl-resource.js +26 -83
  68. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  69. package/dist/adapter/resources/webgl-buffer.d.ts +19 -14
  70. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  71. package/dist/adapter/resources/webgl-buffer.js +67 -101
  72. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  73. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  74. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  75. package/dist/adapter/resources/webgl-command-buffer.js +175 -48
  76. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  77. package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
  78. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  79. package/dist/adapter/resources/webgl-command-encoder.js +10 -20
  80. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  81. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  82. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -25
  83. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  84. package/dist/adapter/resources/webgl-framebuffer.js +63 -175
  85. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  86. package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
  87. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  88. package/dist/adapter/resources/webgl-render-pass.js +98 -12
  89. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  90. package/dist/adapter/resources/webgl-render-pipeline.d.ts +34 -20
  91. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  92. package/dist/adapter/resources/webgl-render-pipeline.js +110 -293
  93. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  94. package/dist/adapter/resources/webgl-sampler.d.ts +5 -4
  95. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  96. package/dist/adapter/resources/webgl-sampler.js +11 -21
  97. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  98. package/dist/adapter/resources/webgl-shader.d.ts +5 -5
  99. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  100. package/dist/adapter/resources/webgl-shader.js +18 -44
  101. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  102. package/dist/adapter/resources/webgl-texture.d.ts +51 -31
  103. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  104. package/dist/adapter/resources/webgl-texture.js +123 -244
  105. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  106. package/dist/adapter/resources/webgl-transform-feedback.d.ts +47 -0
  107. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -0
  108. package/dist/adapter/resources/webgl-transform-feedback.js +164 -0
  109. package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -0
  110. package/dist/adapter/resources/webgl-vertex-array.d.ts +67 -0
  111. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -0
  112. package/dist/adapter/resources/webgl-vertex-array.js +167 -0
  113. package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
  114. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  115. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  116. package/dist/adapter/webgl-canvas-context.js +12 -23
  117. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  118. package/dist/adapter/webgl-device.d.ts +92 -41
  119. package/dist/adapter/webgl-device.d.ts.map +1 -1
  120. package/dist/adapter/webgl-device.js +205 -158
  121. package/dist/adapter/webgl-device.js.map +1 -1
  122. package/dist/classic/accessor.d.ts +3 -3
  123. package/dist/classic/accessor.d.ts.map +1 -1
  124. package/dist/classic/accessor.js +26 -52
  125. package/dist/classic/accessor.js.map +1 -1
  126. package/dist/classic/clear.d.ts +22 -0
  127. package/dist/classic/clear.d.ts.map +1 -0
  128. package/dist/classic/clear.js +88 -0
  129. package/dist/classic/clear.js.map +1 -0
  130. package/dist/classic/copy-and-blit.d.ts +62 -0
  131. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  132. package/dist/classic/copy-and-blit.js +192 -0
  133. package/dist/classic/copy-and-blit.js.map +1 -0
  134. package/dist/classic/format-utils.d.ts +3 -0
  135. package/dist/classic/format-utils.d.ts.map +1 -0
  136. package/dist/classic/format-utils.js +37 -0
  137. package/dist/classic/format-utils.js.map +1 -0
  138. package/dist/classic/typed-array-utils.d.ts +17 -17
  139. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  140. package/dist/classic/typed-array-utils.js +18 -39
  141. package/dist/classic/typed-array-utils.js.map +1 -1
  142. package/dist/context/context/create-browser-context.d.ts +17 -18
  143. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  144. package/dist/context/context/create-browser-context.js +11 -19
  145. package/dist/context/context/create-browser-context.js.map +1 -1
  146. package/dist/context/context/create-headless-context.d.ts +1 -1
  147. package/dist/context/context/create-headless-context.d.ts.map +1 -1
  148. package/dist/context/context/create-headless-context.js +6 -7
  149. package/dist/context/context/create-headless-context.js.map +1 -1
  150. package/dist/context/context/webgl-checks.d.ts.map +1 -1
  151. package/dist/context/context/webgl-checks.js +1 -4
  152. package/dist/context/context/webgl-checks.js.map +1 -1
  153. package/dist/context/debug/spector.d.ts +1 -2
  154. package/dist/context/debug/spector.d.ts.map +1 -1
  155. package/dist/context/debug/spector.js +7 -19
  156. package/dist/context/debug/spector.js.map +1 -1
  157. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  158. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  159. package/dist/context/debug/webgl-developer-tools.js +18 -41
  160. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  161. package/dist/context/parameters/unified-parameter-api.d.ts +5 -5
  162. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  163. package/dist/context/parameters/unified-parameter-api.js +9 -17
  164. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  165. package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
  166. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  167. package/dist/context/parameters/webgl-parameter-tables.js +267 -286
  168. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  169. package/dist/context/polyfill/context-data.d.ts +13 -0
  170. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  171. package/dist/context/polyfill/context-data.js +12 -0
  172. package/dist/context/polyfill/context-data.js.map +1 -0
  173. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  174. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  175. package/dist/context/polyfill/get-parameter-polyfill.js +37 -43
  176. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  177. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -1
  178. package/dist/context/polyfill/polyfill-context.js +27 -31
  179. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  180. package/dist/context/polyfill/polyfill-table.d.ts +7 -7
  181. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  182. package/dist/context/polyfill/polyfill-table.js +17 -40
  183. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  184. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  185. package/dist/context/polyfill/polyfill-vertex-array-object.js +17 -87
  186. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  187. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  188. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  189. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  190. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  191. package/dist/context/state-tracker/track-context-state.js +25 -61
  192. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  193. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  194. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  195. package/dist/context/state-tracker/with-parameters.js +8 -10
  196. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  197. package/dist/dist.dev.js +9344 -0
  198. package/dist/index.cjs +6556 -0
  199. package/dist/index.d.ts +23 -24
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +27 -27
  202. package/dist/index.js.map +1 -1
  203. package/dist/types.d.ts +3 -1
  204. package/dist/types.d.ts.map +1 -1
  205. package/dist/types.js.map +1 -1
  206. package/dist.min.js +52 -0
  207. package/package.json +21 -9
  208. package/src/adapter/converters/device-parameters.ts +120 -43
  209. package/src/adapter/converters/sampler-parameters.ts +54 -126
  210. package/src/adapter/converters/shader-formats.ts +44 -0
  211. package/src/adapter/converters/texture-formats.ts +265 -192
  212. package/src/adapter/converters/vertex-formats.ts +71 -10
  213. package/src/adapter/device-helpers/device-features.ts +5 -2
  214. package/src/adapter/device-helpers/device-limits.ts +4 -2
  215. package/src/adapter/device-helpers/get-device-info.ts +72 -18
  216. package/src/adapter/device-helpers/is-old-ie.ts +3 -0
  217. package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +31 -24
  218. package/src/adapter/helpers/get-shader-layout.ts +87 -131
  219. package/src/adapter/helpers/parse-shader-compiler-log.ts +24 -8
  220. package/src/adapter/helpers/set-uniform.ts +39 -35
  221. package/src/adapter/helpers/webgl-topology-utils.ts +103 -0
  222. package/src/adapter/objects/constants-to-keys.ts +6 -25
  223. package/src/adapter/objects/webgl-renderbuffer.ts +43 -37
  224. package/src/adapter/objects/webgl-resource.ts +16 -23
  225. package/src/adapter/resources/webgl-buffer.ts +101 -106
  226. package/src/adapter/resources/webgl-command-buffer.ts +327 -25
  227. package/src/adapter/resources/webgl-command-encoder.ts +20 -12
  228. package/src/adapter/resources/webgl-external-texture.ts +5 -2
  229. package/src/adapter/resources/webgl-framebuffer.ts +86 -133
  230. package/src/adapter/resources/webgl-render-pass.ts +165 -4
  231. package/src/adapter/resources/webgl-render-pipeline.ts +209 -205
  232. package/src/adapter/resources/webgl-sampler.ts +12 -8
  233. package/src/adapter/resources/webgl-shader.ts +32 -27
  234. package/src/adapter/resources/webgl-texture.ts +117 -91
  235. package/src/adapter/resources/webgl-transform-feedback.ts +202 -0
  236. package/src/adapter/resources/webgl-vertex-array.ts +283 -0
  237. package/src/adapter/webgl-canvas-context.ts +18 -13
  238. package/src/adapter/webgl-device.ts +327 -92
  239. package/src/classic/accessor.ts +8 -5
  240. package/src/classic/clear.ts +113 -0
  241. package/src/classic/copy-and-blit.ts +312 -0
  242. package/src/classic/format-utils.ts +46 -0
  243. package/src/classic/typed-array-utils.ts +19 -27
  244. package/src/context/context/create-browser-context.ts +53 -31
  245. package/src/context/context/create-headless-context.ts +5 -2
  246. package/src/context/context/webgl-checks.ts +3 -1
  247. package/src/context/debug/spector.ts +8 -5
  248. package/src/context/debug/webgl-developer-tools.ts +26 -17
  249. package/src/context/parameters/unified-parameter-api.ts +15 -9
  250. package/src/context/parameters/webgl-parameter-tables.ts +120 -98
  251. package/src/context/polyfill/context-data.ts +30 -0
  252. package/src/context/polyfill/get-parameter-polyfill.ts +11 -7
  253. package/src/context/polyfill/polyfill-context.ts +15 -8
  254. package/src/context/polyfill/polyfill-table.ts +20 -15
  255. package/src/context/polyfill/polyfill-vertex-array-object.ts +5 -0
  256. package/src/context/state-tracker/deep-array-equal.ts +2 -0
  257. package/src/context/state-tracker/track-context-state.ts +13 -10
  258. package/src/context/state-tracker/with-parameters.ts +13 -4
  259. package/src/index.ts +65 -39
  260. package/src/types.ts +5 -0
  261. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  262. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  263. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  264. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  265. package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
  266. package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
  267. package/dist/adapter/helpers/attribute-utils.js +0 -81
  268. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  269. package/dist/adapter/helpers/uniforms.d.ts +0 -26
  270. package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
  271. package/dist/adapter/helpers/uniforms.js +0 -99
  272. package/dist/adapter/helpers/uniforms.js.map +0 -1
  273. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
  274. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
  275. package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
  276. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  277. package/dist/bundle.d.ts +0 -2
  278. package/dist/bundle.d.ts.map +0 -1
  279. package/dist/bundle.js +0 -5
  280. package/dist/bundle.js.map +0 -1
  281. package/dist/classic/buffer.d.ts +0 -95
  282. package/dist/classic/buffer.d.ts.map +0 -1
  283. package/dist/classic/buffer.js +0 -392
  284. package/dist/classic/buffer.js.map +0 -1
  285. package/dist/context/context/context-state.d.ts +0 -18
  286. package/dist/context/context/context-state.d.ts.map +0 -1
  287. package/dist/context/context/context-state.js +0 -26
  288. package/dist/context/context/context-state.js.map +0 -1
  289. package/dist/context/context/device-pixels.d.ts +0 -25
  290. package/dist/context/context/device-pixels.d.ts.map +0 -1
  291. package/dist/context/context/device-pixels.js +0 -103
  292. package/dist/context/context/device-pixels.js.map +0 -1
  293. package/dist/es5/adapter/converters/device-parameters.js +0 -185
  294. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  295. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  296. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  297. package/dist/es5/adapter/converters/sampler-parameters.js +0 -245
  298. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  299. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  300. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  301. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  302. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  303. package/dist/es5/adapter/device-helpers/device-features.js +0 -155
  304. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  305. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  306. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  307. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  308. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  309. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  310. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  311. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  312. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  313. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -391
  314. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  315. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  316. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  317. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  318. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  319. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  320. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  321. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  322. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  323. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  324. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  325. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  326. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  327. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  328. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  329. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  330. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  331. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  332. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  333. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  334. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  335. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  336. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  337. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -346
  338. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  339. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -62
  340. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  341. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -530
  342. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  343. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  344. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  345. package/dist/es5/adapter/resources/webgl-shader.js +0 -150
  346. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  347. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  348. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  349. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  350. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  351. package/dist/es5/adapter/webgl-device.js +0 -463
  352. package/dist/es5/adapter/webgl-device.js.map +0 -1
  353. package/dist/es5/bundle.js +0 -7
  354. package/dist/es5/bundle.js.map +0 -1
  355. package/dist/es5/classic/accessor.js +0 -181
  356. package/dist/es5/classic/accessor.js.map +0 -1
  357. package/dist/es5/classic/buffer.js +0 -478
  358. package/dist/es5/classic/buffer.js.map +0 -1
  359. package/dist/es5/classic/typed-array-utils.js +0 -126
  360. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  361. package/dist/es5/context/context/context-state.js +0 -31
  362. package/dist/es5/context/context/context-state.js.map +0 -1
  363. package/dist/es5/context/context/create-browser-context.js +0 -83
  364. package/dist/es5/context/context/create-browser-context.js.map +0 -1
  365. package/dist/es5/context/context/create-headless-context.js +0 -60
  366. package/dist/es5/context/context/create-headless-context.js.map +0 -1
  367. package/dist/es5/context/context/device-pixels.js +0 -121
  368. package/dist/es5/context/context/device-pixels.js.map +0 -1
  369. package/dist/es5/context/context/webgl-checks.js +0 -54
  370. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  371. package/dist/es5/context/debug/spector.js +0 -133
  372. package/dist/es5/context/debug/spector.js.map +0 -1
  373. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  374. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  375. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  376. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  377. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  378. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  379. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  380. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  381. package/dist/es5/context/polyfill/polyfill-context.js +0 -134
  382. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  383. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  384. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  385. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  386. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  387. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  388. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  389. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  390. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  391. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  392. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  393. package/dist/es5/index.js +0 -290
  394. package/dist/es5/index.js.map +0 -1
  395. package/dist/es5/init.js +0 -10
  396. package/dist/es5/init.js.map +0 -1
  397. package/dist/es5/types/webgl.js +0 -6
  398. package/dist/es5/types/webgl.js.map +0 -1
  399. package/dist/es5/types.js +0 -2
  400. package/dist/es5/types.js.map +0 -1
  401. package/dist/esm/adapter/converters/device-parameters.js +0 -168
  402. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  403. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  404. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  405. package/dist/esm/adapter/converters/sampler-parameters.js +0 -227
  406. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  407. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  408. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  409. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  410. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  411. package/dist/esm/adapter/device-helpers/device-features.js +0 -112
  412. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  413. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  414. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  415. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  416. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  417. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  418. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  419. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  420. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  421. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -330
  422. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  423. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  424. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  425. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  426. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  427. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  428. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  429. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  430. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  431. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  432. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  433. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  434. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  435. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  436. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  437. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  438. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  439. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  440. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  441. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  442. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  443. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  444. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  445. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -267
  446. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  447. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -21
  448. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  449. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -428
  450. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  451. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  452. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  453. package/dist/esm/adapter/resources/webgl-shader.js +0 -76
  454. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  455. package/dist/esm/adapter/resources/webgl-texture.js +0 -834
  456. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  457. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  458. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  459. package/dist/esm/adapter/webgl-device.js +0 -337
  460. package/dist/esm/adapter/webgl-device.js.map +0 -1
  461. package/dist/esm/bundle.js +0 -5
  462. package/dist/esm/bundle.js.map +0 -1
  463. package/dist/esm/classic/accessor.js +0 -144
  464. package/dist/esm/classic/accessor.js.map +0 -1
  465. package/dist/esm/classic/buffer.js +0 -392
  466. package/dist/esm/classic/buffer.js.map +0 -1
  467. package/dist/esm/classic/typed-array-utils.js +0 -112
  468. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  469. package/dist/esm/context/context/context-state.js +0 -26
  470. package/dist/esm/context/context/context-state.js.map +0 -1
  471. package/dist/esm/context/context/create-browser-context.js +0 -61
  472. package/dist/esm/context/context/create-browser-context.js.map +0 -1
  473. package/dist/esm/context/context/create-headless-context.js +0 -43
  474. package/dist/esm/context/context/create-headless-context.js.map +0 -1
  475. package/dist/esm/context/context/device-pixels.js +0 -103
  476. package/dist/esm/context/context/device-pixels.js.map +0 -1
  477. package/dist/esm/context/context/webgl-checks.js +0 -34
  478. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  479. package/dist/esm/context/debug/spector.js +0 -76
  480. package/dist/esm/context/debug/spector.js.map +0 -1
  481. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  482. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  483. package/dist/esm/context/parameters/unified-parameter-api.js +0 -63
  484. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  485. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  486. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  487. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  488. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  489. package/dist/esm/context/polyfill/polyfill-context.js +0 -91
  490. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  491. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  492. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  493. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  494. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  495. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  496. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  497. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  498. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  499. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  500. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  501. package/dist/esm/index.js +0 -28
  502. package/dist/esm/index.js.map +0 -1
  503. package/dist/esm/init.js +0 -4
  504. package/dist/esm/init.js.map +0 -1
  505. package/dist/esm/types/webgl.js +0 -2
  506. package/dist/esm/types/webgl.js.map +0 -1
  507. package/dist/esm/types.js +0 -2
  508. package/dist/esm/types.js.map +0 -1
  509. package/dist/init.d.ts +0 -2
  510. package/dist/init.d.ts.map +0 -1
  511. package/dist/init.js +0 -4
  512. package/dist/init.js.map +0 -1
  513. package/dist/types/webgl.d.ts +0 -145
  514. package/dist/types/webgl.d.ts.map +0 -1
  515. package/dist/types/webgl.js +0 -2
  516. package/dist/types/webgl.js.map +0 -1
  517. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  518. package/src/adapter/helpers/attribute-utils.ts +0 -61
  519. package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
  520. package/src/bundle.ts +0 -4
  521. package/src/classic/buffer.ts +0 -474
  522. package/src/context/context/context-state.ts +0 -41
  523. package/src/context/context/device-pixels.ts +0 -158
  524. package/src/init.ts +0 -4
  525. package/src/types/webgl.ts +0 -284
@@ -1,121 +0,0 @@
1
- import { log, loadScript } from '@luma.gl/api/';
2
- import GL from '@luma.gl/constants';
3
- const WEBGL_DEBUG_CDN_URL = 'https://unpkg.com/webgl-debug@2.0.1/index.js';
4
- const DEFAULT_DEBUG_CONTEXT_PROPS = {
5
- debug: true,
6
- throwOnError: false,
7
- break: [],
8
- webgl2: false
9
- };
10
-
11
- function getContextData(gl) {
12
- gl.luma = gl.luma || {};
13
- return gl.luma;
14
- }
15
-
16
- export async function loadWebGLDeveloperTools() {
17
- if (!globalThis.WebGLDebugUtils) {
18
- globalThis.global = globalThis.global || globalThis;
19
- globalThis.global.module = {};
20
- await loadScript(WEBGL_DEBUG_CDN_URL);
21
- }
22
- }
23
- export function makeDebugContext(gl, props = {}) {
24
- if (!gl) {
25
- return null;
26
- }
27
-
28
- return props.debug ? getDebugContext(gl, props) : getRealContext(gl);
29
- }
30
-
31
- function getRealContext(gl) {
32
- const data = getContextData(gl);
33
- return data.realContext ? data.realContext : gl;
34
- }
35
-
36
- function getDebugContext(gl, props) {
37
- if (!globalThis.WebGLDebugUtils) {
38
- log.warn('webgl-debug not loaded')();
39
- return gl;
40
- }
41
-
42
- const data = getContextData(gl);
43
-
44
- if (data.debugContext) {
45
- return data.debugContext;
46
- }
47
-
48
- globalThis.WebGLDebugUtils.init({ ...GL,
49
- ...gl
50
- });
51
- const glDebug = globalThis.WebGLDebugUtils.makeDebugContext(gl, onGLError.bind(null, props), onValidateGLFunc.bind(null, props));
52
-
53
- for (const key in GL) {
54
- if (!(key in glDebug) && typeof GL[key] === 'number') {
55
- glDebug[key] = GL[key];
56
- }
57
- }
58
-
59
- class WebGLDebugContext {}
60
-
61
- Object.setPrototypeOf(glDebug, Object.getPrototypeOf(gl));
62
- Object.setPrototypeOf(WebGLDebugContext, glDebug);
63
- const debugContext = Object.create(WebGLDebugContext);
64
- data.realContext = gl;
65
- data.debugContext = debugContext;
66
- debugContext.debug = true;
67
- return debugContext;
68
- }
69
-
70
- function getFunctionString(functionName, functionArgs) {
71
- functionArgs = Array.from(functionArgs).map(arg => arg === undefined ? 'undefined' : arg);
72
- let args = globalThis.WebGLDebugUtils.glFunctionArgsToString(functionName, functionArgs);
73
- args = "".concat(args.slice(0, 100)).concat(args.length > 100 ? '...' : '');
74
- return "gl.".concat(functionName, "(").concat(args, ")");
75
- }
76
-
77
- function onGLError(props, err, functionName, args) {
78
- args = Array.from(args).map(arg => arg === undefined ? 'undefined' : arg);
79
- const errorMessage = globalThis.WebGLDebugUtils.glEnumToString(err);
80
- const functionArgs = globalThis.WebGLDebugUtils.glFunctionArgsToString(functionName, args);
81
- const glName = props.webgl2 ? 'gl2' : 'gl1';
82
- const message = "".concat(errorMessage, " in ").concat(glName, ".").concat(functionName, "(").concat(functionArgs, ")");
83
- log.error(message)();
84
- debugger;
85
-
86
- if (props.throwOnError) {
87
- throw new Error(message);
88
- }
89
- }
90
-
91
- function onValidateGLFunc(props, functionName, functionArgs) {
92
- let functionString = '';
93
-
94
- if (log.level >= 1) {
95
- functionString = getFunctionString(functionName, functionArgs);
96
- log.log(1, functionString)();
97
- }
98
-
99
- if (props.break) {
100
- functionString = functionString || getFunctionString(functionName, functionArgs);
101
- const isBreakpoint = props.break && props.break.every(breakOn => functionString.indexOf(breakOn) !== -1);
102
-
103
- if (isBreakpoint) {
104
- debugger;
105
- }
106
- }
107
-
108
- for (const arg of functionArgs) {
109
- if (arg === undefined) {
110
- functionString = functionString || getFunctionString(functionName, functionArgs);
111
-
112
- if (props.throwOnError) {
113
- throw new Error("Undefined argument: ".concat(functionString));
114
- } else {
115
- log.error("Undefined argument: ".concat(functionString))();
116
- debugger;
117
- }
118
- }
119
- }
120
- }
121
- //# sourceMappingURL=webgl-developer-tools.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/context/debug/webgl-developer-tools.ts"],"names":["log","loadScript","GL","WEBGL_DEBUG_CDN_URL","DEFAULT_DEBUG_CONTEXT_PROPS","debug","throwOnError","break","webgl2","getContextData","gl","luma","loadWebGLDeveloperTools","globalThis","WebGLDebugUtils","global","module","makeDebugContext","props","getDebugContext","getRealContext","data","realContext","warn","debugContext","init","glDebug","onGLError","bind","onValidateGLFunc","key","WebGLDebugContext","Object","setPrototypeOf","getPrototypeOf","create","getFunctionString","functionName","functionArgs","Array","from","map","arg","undefined","args","glFunctionArgsToString","slice","length","err","errorMessage","glEnumToString","glName","message","error","Error","functionString","level","isBreakpoint","every","breakOn","indexOf"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport {log, loadScript} from '@luma.gl/api/';\nimport GL from '@luma.gl/constants';\n\nconst WEBGL_DEBUG_CDN_URL = 'https://unpkg.com/webgl-debug@2.0.1/index.js';\n\ntype DebugContextProps = {\n debug?: boolean;\n throwOnError?: boolean;\n break?: string[];\n webgl2?: boolean;\n};\n\nconst DEFAULT_DEBUG_CONTEXT_PROPS: Required<DebugContextProps> = {\n debug: true,\n throwOnError: false,\n break: [],\n webgl2: false,\n}\n\n// Helper to get shared context data\nfunction getContextData(gl: any) {\n gl.luma = gl.luma || {};\n return gl.luma;\n}\n\ndeclare global {\n var WebGLDebugUtils: any;\n}\n\n/**\n * Loads Khronos WebGLDeveloperTools from CDN if not already installed \n * const WebGLDebugUtils = require('webgl-debug');\n * @see https://github.com/KhronosGroup/WebGLDeveloperTools\n * @see https://github.com/vorg/webgl-debug\n */\nexport async function loadWebGLDeveloperTools(): Promise<void> {\n if (!globalThis.WebGLDebugUtils) {\n // @ts-expect-error Developer tools expects global to be set\n globalThis.global = globalThis.global || globalThis;\n // @ts-expect-error Developer tools expects global to be set\n globalThis.global.module = {};\n await loadScript(WEBGL_DEBUG_CDN_URL);\n }\n}\n\n// Returns (a potentially new) context with debug instrumentation turned off or on.\n// Note that this actually returns a new context\nexport function makeDebugContext(gl: WebGLRenderingContext, props: DebugContextProps = {}): WebGLRenderingContext | null {\n // Return null to ensure we don't try to create a context in this case (TODO what case is that?)\n if (!gl) {\n return null;\n }\n\n return props.debug ? getDebugContext(gl, props) : getRealContext(gl);\n}\n\n// Returns the real context from either of the real/debug contexts\nfunction getRealContext(gl: WebGLRenderingContext): WebGLRenderingContext {\n const data = getContextData(gl);\n // If the context has a realContext member, it is a debug context so return the realContext\n return data.realContext ? data.realContext : gl;\n}\n\n// Returns the debug context from either of the real/debug contexts\nfunction getDebugContext(gl: WebGLRenderingContext, props: DebugContextProps): WebGLRenderingContext {\n if (!globalThis.WebGLDebugUtils) {\n log.warn('webgl-debug not loaded')();\n return gl;\n }\n\n const data = getContextData(gl);\n\n // If this already has a debug context, return it.\n if (data.debugContext) {\n return data.debugContext;\n }\n\n // Create a new debug context\n globalThis.WebGLDebugUtils.init({...GL, ...gl});\n const glDebug = globalThis.WebGLDebugUtils.makeDebugContext(\n gl,\n onGLError.bind(null, props),\n onValidateGLFunc.bind(null, props)\n );\n\n // Make sure we have all WebGL2 and extension constants (todo dynamic import to circumvent minification?)\n for (const key in GL) {\n if (!(key in glDebug) && typeof GL[key] === 'number') {\n glDebug[key] = GL[key];\n }\n }\n \n // Ensure we have a clean prototype on the instrumented object\n // Note: setPrototypeOf does come with perf warnings, but we already take a bigger perf reduction\n // by synchronizing the WebGL errors after each WebGL call.\n class WebGLDebugContext {}\n Object.setPrototypeOf(glDebug, Object.getPrototypeOf(gl));\n Object.setPrototypeOf(WebGLDebugContext, glDebug);\n const debugContext = Object.create(WebGLDebugContext);\n // Store the debug context\n data.realContext = gl;\n data.debugContext = debugContext;\n debugContext.debug = true;\n\n // Return it\n return debugContext;\n}\n\n// DEBUG TRACING\n\nfunction getFunctionString(functionName: string, functionArgs): string {\n // Cover bug in webgl-debug-tools\n functionArgs = Array.from(functionArgs).map(arg => arg === undefined ? 'undefined' : arg);\n let args = globalThis.WebGLDebugUtils.glFunctionArgsToString(functionName, functionArgs);\n args = `${args.slice(0, 100)}${args.length > 100 ? '...' : ''}`;\n return `gl.${functionName}(${args})`;\n}\n\nfunction onGLError(props: DebugContextProps, err, functionName: string, args: any[]): void {\n // Cover bug in webgl-debug-tools\n args = Array.from(args).map(arg => arg === undefined ? 'undefined' : arg);\n const errorMessage = globalThis.WebGLDebugUtils.glEnumToString(err);\n const functionArgs = globalThis.WebGLDebugUtils.glFunctionArgsToString(functionName, args);\n const glName = props.webgl2 ? 'gl2' : 'gl1';\n const message = `${errorMessage} in ${glName}.${functionName}(${functionArgs})`;\n log.error(message)();\n debugger; // eslint-disable-line\n if (props.throwOnError) {\n throw new Error(message);\n }\n}\n\n// Don't generate function string until it is needed\nfunction onValidateGLFunc(props: DebugContextProps, functionName: string, functionArgs: any[]): void {\n let functionString: string = '';\n if (log.level >= 1) {\n functionString = getFunctionString(functionName, functionArgs);\n log.log(1, functionString)();\n }\n\n if (props.break) {\n functionString = functionString || getFunctionString(functionName, functionArgs);\n const isBreakpoint =\n props.break && props.break.every((breakOn: string) => functionString.indexOf(breakOn) !== -1);\n if (isBreakpoint) {\n debugger; // eslint-disable-line\n }\n }\n\n for (const arg of functionArgs) {\n if (arg === undefined) {\n functionString = functionString || getFunctionString(functionName, functionArgs);\n if (props.throwOnError) {\n throw new Error(`Undefined argument: ${functionString}`);\n } else {\n log.error(`Undefined argument: ${functionString}`)();\n debugger; // eslint-disable-line\n }\n }\n }\n}\n"],"file":"webgl-developer-tools.js"}
@@ -1,63 +0,0 @@
1
- import { GL_PARAMETER_DEFAULTS, GL_PARAMETER_SETTERS, GL_COMPOSITE_PARAMETER_SETTERS, GL_PARAMETER_GETTERS } from './webgl-parameter-tables';
2
- import WebGLDevice from '../../adapter/webgl-device';
3
- export function setParameters(device, parameters) {
4
- const webglDevice = WebGLDevice.attach(device);
5
- const gl = webglDevice.gl;
6
-
7
- if (isObjectEmpty(parameters)) {
8
- return;
9
- }
10
-
11
- const compositeSetters = {};
12
-
13
- for (const key in parameters) {
14
- const glConstant = Number(key);
15
- const setter = GL_PARAMETER_SETTERS[key];
16
-
17
- if (setter) {
18
- if (typeof setter === 'string') {
19
- compositeSetters[setter] = true;
20
- } else {
21
- setter(gl, parameters[key], glConstant);
22
- }
23
- }
24
- }
25
-
26
- const cache = gl.state && gl.state.cache;
27
-
28
- if (cache) {
29
- for (const key in compositeSetters) {
30
- const compositeSetter = GL_COMPOSITE_PARAMETER_SETTERS[key];
31
- compositeSetter(gl, parameters, cache);
32
- }
33
- }
34
- }
35
- export function getParameters(gl, parameters = GL_PARAMETER_DEFAULTS) {
36
- if (typeof parameters === 'number') {
37
- const key = parameters;
38
- const getter = GL_PARAMETER_GETTERS[key];
39
- return getter ? getter(gl, key) : gl.getParameter(key);
40
- }
41
-
42
- const parameterKeys = Array.isArray(parameters) ? parameters : Object.keys(parameters);
43
- const state = {};
44
-
45
- for (const key of parameterKeys) {
46
- const getter = GL_PARAMETER_GETTERS[key];
47
- state[key] = getter ? getter(gl, Number(key)) : gl.getParameter(Number(key));
48
- }
49
-
50
- return state;
51
- }
52
- export function resetParameters(gl) {
53
- setParameters(gl, GL_PARAMETER_DEFAULTS);
54
- }
55
-
56
- function isObjectEmpty(object) {
57
- for (const key in object) {
58
- return false;
59
- }
60
-
61
- return true;
62
- }
63
- //# sourceMappingURL=unified-parameter-api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/context/parameters/unified-parameter-api.ts"],"names":["GL_PARAMETER_DEFAULTS","GL_PARAMETER_SETTERS","GL_COMPOSITE_PARAMETER_SETTERS","GL_PARAMETER_GETTERS","WebGLDevice","setParameters","device","parameters","webglDevice","attach","gl","isObjectEmpty","compositeSetters","key","glConstant","Number","setter","cache","state","compositeSetter","getParameters","getter","getParameter","parameterKeys","Array","isArray","Object","keys","resetParameters","object"],"mappings":"AAKA,SACEA,qBADF,EAEEC,oBAFF,EAGEC,8BAHF,EAIEC,oBAJF,QAKO,0BALP;AAQA,OAAOC,WAAP,MAAwB,4BAAxB;AAUA,OAAO,SAASC,aAAT,CACLC,MADK,EAELC,UAFK,EAGC;AACN,QAAMC,WAAW,GAAGJ,WAAW,CAACK,MAAZ,CAAmBH,MAAnB,CAApB;AACA,QAAMI,EAAE,GAAGF,WAAW,CAACE,EAAvB;;AAEA,MAAIC,aAAa,CAACJ,UAAD,CAAjB,EAA+B;AAC7B;AACD;;AAED,QAAMK,gBAAgB,GAAG,EAAzB;;AAIA,OAAK,MAAMC,GAAX,IAAkBN,UAAlB,EAA8B;AAC5B,UAAMO,UAAU,GAAGC,MAAM,CAACF,GAAD,CAAzB;AACA,UAAMG,MAAM,GAAGf,oBAAoB,CAACY,GAAD,CAAnC;;AACA,QAAIG,MAAJ,EAAY;AAEV,UAAI,OAAOA,MAAP,KAAkB,QAAtB,EAAgC;AAC9BJ,QAAAA,gBAAgB,CAACI,MAAD,CAAhB,GAA2B,IAA3B;AACD,OAFD,MAEO;AAKLA,QAAAA,MAAM,CAACN,EAAD,EAAKH,UAAU,CAACM,GAAD,CAAf,EAAsBC,UAAtB,CAAN;AACD;AACF;AACF;;AAUD,QAAMG,KAAK,GAAGP,EAAE,CAACQ,KAAH,IAAYR,EAAE,CAACQ,KAAH,CAASD,KAAnC;;AACA,MAAIA,KAAJ,EAAW;AACT,SAAK,MAAMJ,GAAX,IAAkBD,gBAAlB,EAAoC;AAElC,YAAMO,eAAe,GAAGjB,8BAA8B,CAACW,GAAD,CAAtD;AAGAM,MAAAA,eAAe,CAACT,EAAD,EAAKH,UAAL,EAAiBU,KAAjB,CAAf;AACD;AACF;AAGF;AAgBD,OAAO,SAASG,aAAT,CACLV,EADK,EAELH,UAAsE,GAAGP,qBAFpE,EAGS;AAGd,MAAI,OAAOO,UAAP,KAAsB,QAA1B,EAAoC;AAElC,UAAMM,GAAG,GAAGN,UAAZ;AACA,UAAMc,MAAM,GAAGlB,oBAAoB,CAACU,GAAD,CAAnC;AACA,WAAOQ,MAAM,GAAGA,MAAM,CAACX,EAAD,EAAKG,GAAL,CAAT,GAAqBH,EAAE,CAACY,YAAH,CAAgBT,GAAhB,CAAlC;AACD;;AAED,QAAMU,aAAa,GAAGC,KAAK,CAACC,OAAN,CAAclB,UAAd,IAA4BA,UAA5B,GAAyCmB,MAAM,CAACC,IAAP,CAAYpB,UAAZ,CAA/D;AAEA,QAAMW,KAAK,GAAG,EAAd;;AACA,OAAK,MAAML,GAAX,IAAkBU,aAAlB,EAAiC;AAC/B,UAAMF,MAAM,GAAGlB,oBAAoB,CAACU,GAAD,CAAnC;AACAK,IAAAA,KAAK,CAACL,GAAD,CAAL,GAAaQ,MAAM,GAAGA,MAAM,CAACX,EAAD,EAAKK,MAAM,CAACF,GAAD,CAAX,CAAT,GAA6BH,EAAE,CAACY,YAAH,CAAgBP,MAAM,CAACF,GAAD,CAAtB,CAAhD;AACD;;AACD,SAAOK,KAAP;AACD;AAQD,OAAO,SAASU,eAAT,CAAyBlB,EAAzB,EAA0D;AAC/DL,EAAAA,aAAa,CAACK,EAAD,EAAKV,qBAAL,CAAb;AACD;;AAKD,SAASW,aAAT,CAAuBkB,MAAvB,EAA+B;AAC7B,OAAK,MAAMhB,GAAX,IAAkBgB,MAAlB,EAA0B;AACxB,WAAO,KAAP;AACD;;AACD,SAAO,IAAP;AACD","sourcesContent":["// Provides a unified API for getting and setting any WebGL parameter\n// Also knows default values of all parameters, enabling fast cache initialization\n// Provides base functionality for the state caching.\nimport {Device} from '@luma.gl/api';\nimport type {GLParameters} from '../../types/webgl';\nimport {\n GL_PARAMETER_DEFAULTS,\n GL_PARAMETER_SETTERS,\n GL_COMPOSITE_PARAMETER_SETTERS,\n GL_PARAMETER_GETTERS\n} from './webgl-parameter-tables';\n\nimport {isWebGL} from '../context/webgl-checks';\nimport WebGLDevice from '../../adapter/webgl-device';\n\nexport type {GLParameters};\n\n/**\n * Sets any GL parameter regardless of function (gl.blendMode, ...)\n *\n * @note requires a `cache` object to be set on the context (gl.state.cache)\n * This object is used to fill in any missing values for composite setter functions\n */\nexport function setParameters(\n device: Device | WebGLRenderingContext,\n parameters: GLParameters\n): void {\n const webglDevice = WebGLDevice.attach(device);\n const gl = webglDevice.gl;\n\n if (isObjectEmpty(parameters)) {\n return;\n }\n\n const compositeSetters = {};\n\n // HANDLE PRIMITIVE SETTERS (and make note of any composite setters)\n\n for (const key in parameters) {\n const glConstant = Number(key);\n const setter = GL_PARAMETER_SETTERS[key];\n if (setter) {\n // Composite setters should only be called once, so save them\n if (typeof setter === 'string') {\n compositeSetters[setter] = true;\n } else {\n // if (gl[glConstant] !== undefined) {\n // TODO - added above check since this is being called on WebGL2 parameters in WebGL1...\n // TODO - deep equal on values? only call setter if value has changed?\n // NOTE - the setter will automatically update this.state\n setter(gl, parameters[key], glConstant);\n }\n }\n }\n\n // HANDLE COMPOSITE SETTERS\n\n // NOTE: any non-provided values needed by composite setters are filled in from state cache\n // The cache parameter is automatically retrieved from the context\n // This depends on `trackContextState`, which is technically a \"circular\" dependency.\n // But it is too inconvenient to always require a cache parameter here.\n // This is the ONLY external dependency in this module/\n // @ts-expect-error\n const cache = gl.state && gl.state.cache;\n if (cache) {\n for (const key in compositeSetters) {\n // TODO - avoid calling composite setters if values have not changed.\n const compositeSetter = GL_COMPOSITE_PARAMETER_SETTERS[key];\n // Note - if `trackContextState` has been called,\n // the setter will automatically update this.state.cache\n compositeSetter(gl, parameters, cache);\n }\n }\n\n // Add a log for the else case?\n}\n\n/**\n * Reads the entire WebGL state from a context\n\n // default to querying all parameters\n\n * @returns - a newly created map, with values keyed by GL parameters\n *\n * @note Copies the state from a context (gl.getParameter should not be overriden)\n * Reads the entire WebGL state from a context\n *\n * @note This can generates a huge amount of synchronous driver roundtrips and should be\n * considered a very slow operation, to be used only if/when a context already manipulated\n * by external code needs to be synchronized for the first time\n */\nexport function getParameters(\n gl: WebGLRenderingContext,\n parameters: keyof GLParameters | (keyof GLParameters)[] | GLParameters = GL_PARAMETER_DEFAULTS\n): GLParameters {\n // support both arrays of parameters and objects (keys represent parameters)\n\n if (typeof parameters === 'number') {\n // single GL enum\n const key = parameters;\n const getter = GL_PARAMETER_GETTERS[key];\n return getter ? getter(gl, key) : gl.getParameter(key);\n }\n\n const parameterKeys = Array.isArray(parameters) ? parameters : Object.keys(parameters);\n\n const state = {};\n for (const key of parameterKeys) {\n const getter = GL_PARAMETER_GETTERS[key];\n state[key] = getter ? getter(gl, Number(key)) : gl.getParameter(Number(key));\n }\n return state;\n}\n\n/**\n * Reset all parameters to a (almost) pure context state\n * @note viewport and scissor will be set to the values in GL_PARAMETER_DEFAULTS,\n * NOT the canvas size dimensions, so they will have to be properly set after\n * calling this function.\n */\nexport function resetParameters(gl: WebGLRenderingContext): void {\n setParameters(gl, GL_PARAMETER_DEFAULTS);\n}\n\n// Helpers\n\n// Returns true if given object is empty, false otherwise.\nfunction isObjectEmpty(object) {\n for (const key in object) {\n return false;\n }\n return true;\n}\n"],"file":"unified-parameter-api.js"}
@@ -1,445 +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 target = {
99
- [GL.ARRAY_BUFFER_BINDING]: [GL.ARRAY_BUFFER],
100
- [GL.COPY_READ_BUFFER_BINDING]: [GL.COPY_READ_BUFFER],
101
- [GL.COPY_WRITE_BUFFER_BINDING]: [GL.COPY_WRITE_BUFFER],
102
- [GL.PIXEL_PACK_BUFFER_BINDING]: [GL.PIXEL_PACK_BUFFER],
103
- [GL.PIXEL_UNPACK_BUFFER_BINDING]: [GL.PIXEL_UNPACK_BUFFER]
104
- }[key];
105
- gl.bindBuffer(target, value);
106
- };
107
-
108
- function isArray(array) {
109
- return Array.isArray(array) || ArrayBuffer.isView(array);
110
- }
111
-
112
- export const GL_PARAMETER_SETTERS = {
113
- [GL.BLEND]: enable,
114
- [GL.BLEND_COLOR]: (gl, value) => gl.blendColor(...value),
115
- [GL.BLEND_EQUATION_RGB]: 'blendEquation',
116
- [GL.BLEND_EQUATION_ALPHA]: 'blendEquation',
117
- [GL.BLEND_SRC_RGB]: 'blendFunc',
118
- [GL.BLEND_DST_RGB]: 'blendFunc',
119
- [GL.BLEND_SRC_ALPHA]: 'blendFunc',
120
- [GL.BLEND_DST_ALPHA]: 'blendFunc',
121
- [GL.COLOR_CLEAR_VALUE]: (gl, value) => gl.clearColor(...value),
122
- [GL.COLOR_WRITEMASK]: (gl, value) => gl.colorMask(...value),
123
- [GL.CULL_FACE]: enable,
124
- [GL.CULL_FACE_MODE]: (gl, value) => gl.cullFace(value),
125
- [GL.DEPTH_TEST]: enable,
126
- [GL.DEPTH_CLEAR_VALUE]: (gl, value) => gl.clearDepth(value),
127
- [GL.DEPTH_FUNC]: (gl, value) => gl.depthFunc(value),
128
- [GL.DEPTH_RANGE]: (gl, value) => gl.depthRange(...value),
129
- [GL.DEPTH_WRITEMASK]: (gl, value) => gl.depthMask(value),
130
- [GL.DITHER]: enable,
131
- [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]: hint,
132
- [GL.CURRENT_PROGRAM]: (gl, value) => gl.useProgram(value),
133
- [GL.RENDERBUFFER_BINDING]: (gl, value) => gl.bindRenderbuffer(GL.RENDERBUFFER, value),
134
- [GL.TRANSFORM_FEEDBACK_BINDING]: (gl, value) => {
135
- var _gl$bindTransformFeed;
136
-
137
- return (_gl$bindTransformFeed = gl.bindTransformFeedback) === null || _gl$bindTransformFeed === void 0 ? void 0 : _gl$bindTransformFeed.call(gl, GL.TRANSFORM_FEEDBACK, value);
138
- },
139
- [GL.VERTEX_ARRAY_BINDING]: (gl, value) => gl.bindVertexArray(value),
140
- [GL.FRAMEBUFFER_BINDING]: bindFramebuffer,
141
- [GL.READ_FRAMEBUFFER_BINDING]: bindFramebuffer,
142
- [GL.ARRAY_BUFFER_BINDING]: bindBuffer,
143
- [GL.COPY_READ_BUFFER_BINDING]: bindBuffer,
144
- [GL.COPY_WRITE_BUFFER_BINDING]: bindBuffer,
145
- [GL.PIXEL_PACK_BUFFER_BINDING]: bindBuffer,
146
- [GL.PIXEL_UNPACK_BUFFER_BINDING]: bindBuffer,
147
- [GL.FRONT_FACE]: (gl, value) => gl.frontFace(value),
148
- [GL.GENERATE_MIPMAP_HINT]: hint,
149
- [GL.LINE_WIDTH]: (gl, value) => gl.lineWidth(value),
150
- [GL.POLYGON_OFFSET_FILL]: enable,
151
- [GL.POLYGON_OFFSET_FACTOR]: 'polygonOffset',
152
- [GL.POLYGON_OFFSET_UNITS]: 'polygonOffset',
153
- [GL.RASTERIZER_DISCARD]: enable,
154
- [GL.SAMPLE_ALPHA_TO_COVERAGE]: enable,
155
- [GL.SAMPLE_COVERAGE]: enable,
156
- [GL.SAMPLE_COVERAGE_VALUE]: 'sampleCoverage',
157
- [GL.SAMPLE_COVERAGE_INVERT]: 'sampleCoverage',
158
- [GL.SCISSOR_TEST]: enable,
159
- [GL.SCISSOR_BOX]: (gl, value) => gl.scissor(...value),
160
- [GL.STENCIL_TEST]: enable,
161
- [GL.STENCIL_CLEAR_VALUE]: (gl, value) => gl.clearStencil(value),
162
- [GL.STENCIL_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.FRONT, value),
163
- [GL.STENCIL_BACK_WRITEMASK]: (gl, value) => gl.stencilMaskSeparate(GL.BACK, value),
164
- [GL.STENCIL_FUNC]: 'stencilFuncFront',
165
- [GL.STENCIL_REF]: 'stencilFuncFront',
166
- [GL.STENCIL_VALUE_MASK]: 'stencilFuncFront',
167
- [GL.STENCIL_BACK_FUNC]: 'stencilFuncBack',
168
- [GL.STENCIL_BACK_REF]: 'stencilFuncBack',
169
- [GL.STENCIL_BACK_VALUE_MASK]: 'stencilFuncBack',
170
- [GL.STENCIL_FAIL]: 'stencilOpFront',
171
- [GL.STENCIL_PASS_DEPTH_FAIL]: 'stencilOpFront',
172
- [GL.STENCIL_PASS_DEPTH_PASS]: 'stencilOpFront',
173
- [GL.STENCIL_BACK_FAIL]: 'stencilOpBack',
174
- [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: 'stencilOpBack',
175
- [GL.STENCIL_BACK_PASS_DEPTH_PASS]: 'stencilOpBack',
176
- [GL.VIEWPORT]: (gl, value) => gl.viewport(...value),
177
- [GL.PACK_ALIGNMENT]: pixelStorei,
178
- [GL.UNPACK_ALIGNMENT]: pixelStorei,
179
- [GL.UNPACK_FLIP_Y_WEBGL]: pixelStorei,
180
- [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]: pixelStorei,
181
- [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]: pixelStorei,
182
- [GL.PACK_ROW_LENGTH]: pixelStorei,
183
- [GL.PACK_SKIP_PIXELS]: pixelStorei,
184
- [GL.PACK_SKIP_ROWS]: pixelStorei,
185
- [GL.UNPACK_ROW_LENGTH]: pixelStorei,
186
- [GL.UNPACK_IMAGE_HEIGHT]: pixelStorei,
187
- [GL.UNPACK_SKIP_PIXELS]: pixelStorei,
188
- [GL.UNPACK_SKIP_ROWS]: pixelStorei,
189
- [GL.UNPACK_SKIP_IMAGES]: pixelStorei,
190
- framebuffer: (gl, framebuffer) => {
191
- const handle = framebuffer && 'handle' in framebuffer ? framebuffer.handle : framebuffer;
192
- return gl.bindFramebuffer(GL.FRAMEBUFFER, handle);
193
- },
194
- blend: (gl, value) => value ? gl.enable(GL.BLEND) : gl.disable(GL.BLEND),
195
- blendColor: (gl, value) => gl.blendColor(...value),
196
- blendEquation: (gl, args) => {
197
- args = isArray(args) ? args : [args, args];
198
- gl.blendEquationSeparate(...args);
199
- },
200
- blendFunc: (gl, args) => {
201
- args = isArray(args) && args.length === 2 ? [...args, ...args] : args;
202
- gl.blendFuncSeparate(...args);
203
- },
204
- clearColor: (gl, value) => gl.clearColor(...value),
205
- clearDepth: (gl, value) => gl.clearDepth(value),
206
- clearStencil: (gl, value) => gl.clearStencil(value),
207
- colorMask: (gl, value) => gl.colorMask(...value),
208
- cull: (gl, value) => value ? gl.enable(GL.CULL_FACE) : gl.disable(GL.CULL_FACE),
209
- cullFace: (gl, value) => gl.cullFace(value),
210
- depthTest: (gl, value) => value ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST),
211
- depthFunc: (gl, value) => gl.depthFunc(value),
212
- depthMask: (gl, value) => gl.depthMask(value),
213
- depthRange: (gl, value) => gl.depthRange(...value),
214
- dither: (gl, value) => value ? gl.enable(GL.DITHER) : gl.disable(GL.DITHER),
215
- derivativeHint: (gl, value) => {
216
- gl.hint(GL.FRAGMENT_SHADER_DERIVATIVE_HINT, value);
217
- },
218
- frontFace: (gl, value) => gl.frontFace(value),
219
- mipmapHint: (gl, value) => gl.hint(GL.GENERATE_MIPMAP_HINT, value),
220
- lineWidth: (gl, value) => gl.lineWidth(value),
221
- polygonOffsetFill: (gl, value) => value ? gl.enable(GL.POLYGON_OFFSET_FILL) : gl.disable(GL.POLYGON_OFFSET_FILL),
222
- polygonOffset: (gl, value) => gl.polygonOffset(...value),
223
- sampleCoverage: (gl, value) => gl.sampleCoverage(...value),
224
- scissorTest: (gl, value) => value ? gl.enable(GL.SCISSOR_TEST) : gl.disable(GL.SCISSOR_TEST),
225
- scissor: (gl, value) => gl.scissor(...value),
226
- stencilTest: (gl, value) => value ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST),
227
- stencilMask: (gl, value) => {
228
- value = isArray(value) ? value : [value, value];
229
- const [mask, backMask] = value;
230
- gl.stencilMaskSeparate(GL.FRONT, mask);
231
- gl.stencilMaskSeparate(GL.BACK, backMask);
232
- },
233
- stencilFunc: (gl, args) => {
234
- args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
235
- const [func, ref, mask, backFunc, backRef, backMask] = args;
236
- gl.stencilFuncSeparate(GL.FRONT, func, ref, mask);
237
- gl.stencilFuncSeparate(GL.BACK, backFunc, backRef, backMask);
238
- },
239
- stencilOp: (gl, args) => {
240
- args = isArray(args) && args.length === 3 ? [...args, ...args] : args;
241
- const [sfail, dpfail, dppass, backSfail, backDpfail, backDppass] = args;
242
- gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);
243
- gl.stencilOpSeparate(GL.BACK, backSfail, backDpfail, backDppass);
244
- },
245
- viewport: (gl, value) => gl.viewport(...value)
246
- };
247
-
248
- function getValue(glEnum, values, cache) {
249
- return values[glEnum] !== undefined ? values[glEnum] : cache[glEnum];
250
- }
251
-
252
- export const GL_COMPOSITE_PARAMETER_SETTERS = {
253
- blendEquation: (gl, values, cache) => gl.blendEquationSeparate(getValue(GL.BLEND_EQUATION_RGB, values, cache), getValue(GL.BLEND_EQUATION_ALPHA, values, cache)),
254
- blendFunc: (gl, values, cache) => gl.blendFuncSeparate(getValue(GL.BLEND_SRC_RGB, values, cache), getValue(GL.BLEND_DST_RGB, values, cache), getValue(GL.BLEND_SRC_ALPHA, values, cache), getValue(GL.BLEND_DST_ALPHA, values, cache)),
255
- polygonOffset: (gl, values, cache) => gl.polygonOffset(getValue(GL.POLYGON_OFFSET_FACTOR, values, cache), getValue(GL.POLYGON_OFFSET_UNITS, values, cache)),
256
- sampleCoverage: (gl, values, cache) => gl.sampleCoverage(getValue(GL.SAMPLE_COVERAGE_VALUE, values, cache), getValue(GL.SAMPLE_COVERAGE_INVERT, values, cache)),
257
- stencilFuncFront: (gl, values, cache) => gl.stencilFuncSeparate(GL.FRONT, getValue(GL.STENCIL_FUNC, values, cache), getValue(GL.STENCIL_REF, values, cache), getValue(GL.STENCIL_VALUE_MASK, values, cache)),
258
- stencilFuncBack: (gl, values, cache) => gl.stencilFuncSeparate(GL.BACK, getValue(GL.STENCIL_BACK_FUNC, values, cache), getValue(GL.STENCIL_BACK_REF, values, cache), getValue(GL.STENCIL_BACK_VALUE_MASK, values, cache)),
259
- stencilOpFront: (gl, values, cache) => gl.stencilOpSeparate(GL.FRONT, getValue(GL.STENCIL_FAIL, values, cache), getValue(GL.STENCIL_PASS_DEPTH_FAIL, values, cache), getValue(GL.STENCIL_PASS_DEPTH_PASS, values, cache)),
260
- stencilOpBack: (gl, values, cache) => gl.stencilOpSeparate(GL.BACK, getValue(GL.STENCIL_BACK_FAIL, values, cache), getValue(GL.STENCIL_BACK_PASS_DEPTH_FAIL, values, cache), getValue(GL.STENCIL_BACK_PASS_DEPTH_PASS, values, cache))
261
- };
262
- export const GL_HOOKED_SETTERS = {
263
- enable: (update, capability) => update({
264
- [capability]: true
265
- }),
266
- disable: (update, capability) => update({
267
- [capability]: false
268
- }),
269
- pixelStorei: (update, pname, value) => update({
270
- [pname]: value
271
- }),
272
- hint: (update, pname, hint) => update({
273
- [pname]: hint
274
- }),
275
- useProgram: (update, value) => update({
276
- [GL.CURRENT_PROGRAM]: value
277
- }),
278
- bindRenderbuffer: (update, target, value) => update({
279
- [GL.RENDERBUFFER_BINDING]: value
280
- }),
281
- bindTransformFeedback: (update, target, value) => update({
282
- [GL.TRANSFORM_FEEDBACK_BINDING]: value
283
- }),
284
- bindVertexArray: (update, value) => update({
285
- [GL.VERTEX_ARRAY_BINDING]: value
286
- }),
287
- bindFramebuffer: (update, target, framebuffer) => {
288
- switch (target) {
289
- case GL.FRAMEBUFFER:
290
- return update({
291
- [GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer,
292
- [GL.READ_FRAMEBUFFER_BINDING]: framebuffer
293
- });
294
-
295
- case GL.DRAW_FRAMEBUFFER:
296
- return update({
297
- [GL.DRAW_FRAMEBUFFER_BINDING]: framebuffer
298
- });
299
-
300
- case GL.READ_FRAMEBUFFER:
301
- return update({
302
- [GL.READ_FRAMEBUFFER_BINDING]: framebuffer
303
- });
304
-
305
- default:
306
- return null;
307
- }
308
- },
309
- bindBuffer: (update, target, buffer) => {
310
- const pname = {
311
- [GL.ARRAY_BUFFER]: [GL.ARRAY_BUFFER_BINDING],
312
- [GL.COPY_READ_BUFFER]: [GL.COPY_READ_BUFFER_BINDING],
313
- [GL.COPY_WRITE_BUFFER]: [GL.COPY_WRITE_BUFFER_BINDING],
314
- [GL.PIXEL_PACK_BUFFER]: [GL.PIXEL_PACK_BUFFER_BINDING],
315
- [GL.PIXEL_UNPACK_BUFFER]: [GL.PIXEL_UNPACK_BUFFER_BINDING]
316
- }[target];
317
-
318
- if (pname) {
319
- return update({
320
- [pname]: buffer
321
- });
322
- }
323
-
324
- return {
325
- valueChanged: true
326
- };
327
- },
328
- blendColor: (update, r, g, b, a) => update({
329
- [GL.BLEND_COLOR]: new Float32Array([r, g, b, a])
330
- }),
331
- blendEquation: (update, mode) => update({
332
- [GL.BLEND_EQUATION_RGB]: mode,
333
- [GL.BLEND_EQUATION_ALPHA]: mode
334
- }),
335
- blendEquationSeparate: (update, modeRGB, modeAlpha) => update({
336
- [GL.BLEND_EQUATION_RGB]: modeRGB,
337
- [GL.BLEND_EQUATION_ALPHA]: modeAlpha
338
- }),
339
- blendFunc: (update, src, dst) => update({
340
- [GL.BLEND_SRC_RGB]: src,
341
- [GL.BLEND_DST_RGB]: dst,
342
- [GL.BLEND_SRC_ALPHA]: src,
343
- [GL.BLEND_DST_ALPHA]: dst
344
- }),
345
- blendFuncSeparate: (update, srcRGB, dstRGB, srcAlpha, dstAlpha) => update({
346
- [GL.BLEND_SRC_RGB]: srcRGB,
347
- [GL.BLEND_DST_RGB]: dstRGB,
348
- [GL.BLEND_SRC_ALPHA]: srcAlpha,
349
- [GL.BLEND_DST_ALPHA]: dstAlpha
350
- }),
351
- clearColor: (update, r, g, b, a) => update({
352
- [GL.COLOR_CLEAR_VALUE]: new Float32Array([r, g, b, a])
353
- }),
354
- clearDepth: (update, depth) => update({
355
- [GL.DEPTH_CLEAR_VALUE]: depth
356
- }),
357
- clearStencil: (update, s) => update({
358
- [GL.STENCIL_CLEAR_VALUE]: s
359
- }),
360
- colorMask: (update, r, g, b, a) => update({
361
- [GL.COLOR_WRITEMASK]: [r, g, b, a]
362
- }),
363
- cullFace: (update, mode) => update({
364
- [GL.CULL_FACE_MODE]: mode
365
- }),
366
- depthFunc: (update, func) => update({
367
- [GL.DEPTH_FUNC]: func
368
- }),
369
- depthRange: (update, zNear, zFar) => update({
370
- [GL.DEPTH_RANGE]: new Float32Array([zNear, zFar])
371
- }),
372
- depthMask: (update, mask) => update({
373
- [GL.DEPTH_WRITEMASK]: mask
374
- }),
375
- frontFace: (update, face) => update({
376
- [GL.FRONT_FACE]: face
377
- }),
378
- lineWidth: (update, width) => update({
379
- [GL.LINE_WIDTH]: width
380
- }),
381
- polygonOffset: (update, factor, units) => update({
382
- [GL.POLYGON_OFFSET_FACTOR]: factor,
383
- [GL.POLYGON_OFFSET_UNITS]: units
384
- }),
385
- sampleCoverage: (update, value, invert) => update({
386
- [GL.SAMPLE_COVERAGE_VALUE]: value,
387
- [GL.SAMPLE_COVERAGE_INVERT]: invert
388
- }),
389
- scissor: (update, x, y, width, height) => update({
390
- [GL.SCISSOR_BOX]: new Int32Array([x, y, width, height])
391
- }),
392
- stencilMask: (update, mask) => update({
393
- [GL.STENCIL_WRITEMASK]: mask,
394
- [GL.STENCIL_BACK_WRITEMASK]: mask
395
- }),
396
- stencilMaskSeparate: (update, face, mask) => update({
397
- [face === GL.FRONT ? GL.STENCIL_WRITEMASK : GL.STENCIL_BACK_WRITEMASK]: mask
398
- }),
399
- stencilFunc: (update, func, ref, mask) => update({
400
- [GL.STENCIL_FUNC]: func,
401
- [GL.STENCIL_REF]: ref,
402
- [GL.STENCIL_VALUE_MASK]: mask,
403
- [GL.STENCIL_BACK_FUNC]: func,
404
- [GL.STENCIL_BACK_REF]: ref,
405
- [GL.STENCIL_BACK_VALUE_MASK]: mask
406
- }),
407
- stencilFuncSeparate: (update, face, func, ref, mask) => update({
408
- [face === GL.FRONT ? GL.STENCIL_FUNC : GL.STENCIL_BACK_FUNC]: func,
409
- [face === GL.FRONT ? GL.STENCIL_REF : GL.STENCIL_BACK_REF]: ref,
410
- [face === GL.FRONT ? GL.STENCIL_VALUE_MASK : GL.STENCIL_BACK_VALUE_MASK]: mask
411
- }),
412
- stencilOp: (update, fail, zfail, zpass) => update({
413
- [GL.STENCIL_FAIL]: fail,
414
- [GL.STENCIL_PASS_DEPTH_FAIL]: zfail,
415
- [GL.STENCIL_PASS_DEPTH_PASS]: zpass,
416
- [GL.STENCIL_BACK_FAIL]: fail,
417
- [GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,
418
- [GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass
419
- }),
420
- stencilOpSeparate: (update, face, fail, zfail, zpass) => update({
421
- [face === GL.FRONT ? GL.STENCIL_FAIL : GL.STENCIL_BACK_FAIL]: fail,
422
- [face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_FAIL : GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,
423
- [face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_PASS : GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass
424
- }),
425
- viewport: (update, x, y, width, height) => update({
426
- [GL.VIEWPORT]: [x, y, width, height]
427
- })
428
- };
429
-
430
- const isEnabled = (gl, key) => gl.isEnabled(key);
431
-
432
- export const GL_PARAMETER_GETTERS = {
433
- [GL.BLEND]: isEnabled,
434
- [GL.CULL_FACE]: isEnabled,
435
- [GL.DEPTH_TEST]: isEnabled,
436
- [GL.DITHER]: isEnabled,
437
- [GL.POLYGON_OFFSET_FILL]: isEnabled,
438
- [GL.SAMPLE_ALPHA_TO_COVERAGE]: isEnabled,
439
- [GL.SAMPLE_COVERAGE]: isEnabled,
440
- [GL.SCISSOR_TEST]: isEnabled,
441
- [GL.STENCIL_TEST]: isEnabled,
442
- [GL.RASTERIZER_DISCARD]: isEnabled
443
- };
444
- export const NON_CACHE_PARAMETERS = new Set([GL.ACTIVE_TEXTURE, GL.TRANSFORM_FEEDBACK_ACTIVE, GL.TRANSFORM_FEEDBACK_PAUSED, GL.TRANSFORM_FEEDBACK_BUFFER_BINDING, GL.UNIFORM_BUFFER_BINDING, GL.ELEMENT_ARRAY_BUFFER_BINDING, GL.IMPLEMENTATION_COLOR_READ_FORMAT, GL.IMPLEMENTATION_COLOR_READ_TYPE, GL.READ_BUFFER, GL.DRAW_BUFFER0, GL.DRAW_BUFFER1, GL.DRAW_BUFFER2, GL.DRAW_BUFFER3, GL.DRAW_BUFFER4, GL.DRAW_BUFFER5, GL.DRAW_BUFFER6, GL.DRAW_BUFFER7, GL.DRAW_BUFFER8, GL.DRAW_BUFFER9, GL.DRAW_BUFFER10, GL.DRAW_BUFFER11, GL.DRAW_BUFFER12, GL.DRAW_BUFFER13, GL.DRAW_BUFFER14, GL.DRAW_BUFFER15, GL.SAMPLER_BINDING, GL.TEXTURE_BINDING_2D, GL.TEXTURE_BINDING_2D_ARRAY, GL.TEXTURE_BINDING_3D, GL.TEXTURE_BINDING_CUBE_MAP]);
445
- //# sourceMappingURL=webgl-parameter-tables.js.map