@luma.gl/webgl 9.0.0-alpha.3 → 9.0.0-alpha.30

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 (500) hide show
  1. package/LICENSE +2 -1
  2. package/dist/adapter/converters/device-parameters.d.ts +14 -4
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/device-parameters.js +28 -46
  5. package/dist/adapter/converters/device-parameters.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts +5 -5
  7. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  8. package/dist/adapter/converters/sampler-parameters.js +20 -56
  9. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  10. package/dist/adapter/converters/texture-formats.d.ts +31 -42
  11. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  12. package/dist/adapter/converters/texture-formats.js +163 -178
  13. package/dist/adapter/converters/texture-formats.js.map +1 -1
  14. package/dist/adapter/converters/vertex-formats.d.ts +2 -2
  15. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  16. package/dist/adapter/converters/vertex-formats.js +3 -9
  17. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  18. package/dist/adapter/device-helpers/device-features.d.ts +1 -1
  19. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  20. package/dist/adapter/device-helpers/device-features.js +13 -20
  21. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  22. package/dist/adapter/device-helpers/device-limits.d.ts +3 -3
  23. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  24. package/dist/adapter/device-helpers/device-limits.js +2 -5
  25. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  26. package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
  27. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
  28. package/dist/adapter/device-helpers/get-device-info.js +9 -11
  29. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  30. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  31. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  32. package/dist/adapter/helpers/attribute-utils.d.ts +4 -4
  33. package/dist/adapter/helpers/attribute-utils.d.ts.map +1 -1
  34. package/dist/adapter/helpers/attribute-utils.js +1 -18
  35. package/dist/adapter/helpers/attribute-utils.js.map +1 -1
  36. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  37. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  38. package/dist/adapter/helpers/get-shader-info.js +25 -0
  39. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  40. package/dist/adapter/helpers/get-shader-layout.d.ts +10 -7
  41. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  42. package/dist/adapter/helpers/get-shader-layout.js +101 -84
  43. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  44. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  45. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  46. package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
  47. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  48. package/dist/adapter/helpers/set-uniform.d.ts +2 -2
  49. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  50. package/dist/adapter/helpers/set-uniform.js +3 -33
  51. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  52. package/dist/adapter/helpers/uniforms.d.ts +9 -10
  53. package/dist/adapter/helpers/uniforms.d.ts.map +1 -1
  54. package/dist/adapter/helpers/uniforms.js +8 -18
  55. package/dist/adapter/helpers/uniforms.js.map +1 -1
  56. package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
  57. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  58. package/dist/adapter/objects/constants-to-keys.js +1 -28
  59. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  60. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  61. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  62. package/dist/adapter/objects/webgl-renderbuffer.js +35 -41
  63. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  64. package/dist/adapter/objects/webgl-resource.d.ts +6 -9
  65. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  66. package/dist/adapter/objects/webgl-resource.js +19 -75
  67. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  68. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +38 -11
  69. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  70. package/dist/adapter/objects/webgl-vertex-array-object.js +122 -32
  71. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  72. package/dist/adapter/resources/webgl-buffer.d.ts +18 -10
  73. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  74. package/dist/adapter/resources/webgl-buffer.js +43 -71
  75. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  76. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  77. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  78. package/dist/adapter/resources/webgl-command-buffer.js +169 -41
  79. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  80. package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
  81. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  82. package/dist/adapter/resources/webgl-command-encoder.js +8 -17
  83. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  84. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  85. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -24
  86. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  87. package/dist/adapter/resources/webgl-framebuffer.js +41 -149
  88. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  89. package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
  90. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  91. package/dist/adapter/resources/webgl-render-pass.js +88 -9
  92. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  93. package/dist/adapter/resources/webgl-render-pipeline.d.ts +44 -11
  94. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  95. package/dist/adapter/resources/webgl-render-pipeline.js +90 -152
  96. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  97. package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
  98. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  99. package/dist/adapter/resources/webgl-sampler.js +7 -15
  100. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  101. package/dist/adapter/resources/webgl-shader.d.ts +3 -4
  102. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  103. package/dist/adapter/resources/webgl-shader.js +9 -22
  104. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  105. package/dist/adapter/resources/webgl-texture.d.ts +64 -44
  106. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  107. package/dist/adapter/resources/webgl-texture.js +98 -213
  108. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  109. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  110. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  111. package/dist/adapter/webgl-canvas-context.js +8 -20
  112. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  113. package/dist/adapter/webgl-device.d.ts +64 -41
  114. package/dist/adapter/webgl-device.d.ts.map +1 -1
  115. package/dist/adapter/webgl-device.js +133 -113
  116. package/dist/adapter/webgl-device.js.map +1 -1
  117. package/dist/classic/accessor.d.ts +3 -3
  118. package/dist/classic/accessor.d.ts.map +1 -1
  119. package/dist/classic/accessor.js +14 -38
  120. package/dist/classic/accessor.js.map +1 -1
  121. package/dist/classic/{buffer.d.ts → buffer-with-accessor.d.ts} +16 -28
  122. package/dist/classic/buffer-with-accessor.d.ts.map +1 -0
  123. package/dist/classic/{buffer.js → buffer-with-accessor.js} +54 -122
  124. package/dist/classic/buffer-with-accessor.js.map +1 -0
  125. package/dist/classic/clear.d.ts +22 -0
  126. package/dist/classic/clear.d.ts.map +1 -0
  127. package/dist/classic/clear.js +88 -0
  128. package/dist/classic/clear.js.map +1 -0
  129. package/dist/classic/copy-and-blit.d.ts +62 -0
  130. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  131. package/dist/classic/copy-and-blit.js +202 -0
  132. package/dist/classic/copy-and-blit.js.map +1 -0
  133. package/dist/classic/format-utils.d.ts +3 -0
  134. package/dist/classic/format-utils.d.ts.map +1 -0
  135. package/dist/classic/format-utils.js +38 -0
  136. package/dist/classic/format-utils.js.map +1 -0
  137. package/dist/classic/typed-array-utils.d.ts +15 -17
  138. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  139. package/dist/classic/typed-array-utils.js +1 -21
  140. package/dist/classic/typed-array-utils.js.map +1 -1
  141. package/dist/context/context/create-browser-context.d.ts +40 -0
  142. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  143. package/dist/{esm/context/context/create-context.js → context/context/create-browser-context.js} +23 -19
  144. package/dist/context/context/create-browser-context.js.map +1 -0
  145. package/dist/context/context/create-headless-context.d.ts +9 -0
  146. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  147. package/dist/context/context/create-headless-context.js +42 -0
  148. package/dist/context/context/create-headless-context.js.map +1 -0
  149. package/dist/context/context/webgl-checks.js +1 -4
  150. package/dist/context/context/webgl-checks.js.map +1 -1
  151. package/dist/context/debug/spector.d.ts +1 -2
  152. package/dist/context/debug/spector.d.ts.map +1 -1
  153. package/dist/context/debug/spector.js +8 -20
  154. package/dist/context/debug/spector.js.map +1 -1
  155. package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
  156. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  157. package/dist/context/debug/webgl-developer-tools.js +11 -34
  158. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  159. package/dist/context/parameters/unified-parameter-api.d.ts +8 -7
  160. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  161. package/dist/context/parameters/unified-parameter-api.js +8 -18
  162. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  163. package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
  164. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  165. package/dist/context/parameters/webgl-parameter-tables.js +18 -36
  166. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  167. package/dist/context/polyfill/context-data.d.ts +13 -0
  168. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  169. package/dist/context/polyfill/context-data.js +12 -0
  170. package/dist/context/polyfill/context-data.js.map +1 -0
  171. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  172. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  173. package/dist/context/polyfill/get-parameter-polyfill.js +4 -9
  174. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  175. package/dist/context/polyfill/polyfill-context.js +21 -29
  176. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  177. package/dist/context/polyfill/polyfill-table.d.ts +8 -8
  178. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  179. package/dist/context/polyfill/polyfill-table.js +10 -32
  180. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  181. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  182. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
  183. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  184. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  185. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  186. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  187. package/dist/context/state-tracker/track-context-state.js +16 -51
  188. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  189. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  190. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  191. package/dist/context/state-tracker/with-parameters.js +7 -9
  192. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  193. package/dist/dist.dev.js +10158 -0
  194. package/dist/index.cjs +6604 -0
  195. package/dist/index.d.ts +25 -22
  196. package/dist/index.d.ts.map +1 -1
  197. package/dist/index.js +27 -26
  198. package/dist/index.js.map +1 -1
  199. package/dist/types.d.ts +1 -1
  200. package/dist/types.d.ts.map +1 -1
  201. package/dist/types.js.map +1 -1
  202. package/dist.min.js +37 -0
  203. package/package.json +21 -9
  204. package/src/adapter/converters/device-parameters.ts +88 -35
  205. package/src/adapter/converters/sampler-parameters.ts +19 -9
  206. package/src/adapter/converters/texture-formats.ts +261 -178
  207. package/src/adapter/converters/vertex-formats.ts +3 -2
  208. package/src/adapter/device-helpers/device-features.ts +10 -3
  209. package/src/adapter/device-helpers/device-limits.ts +3 -3
  210. package/src/adapter/device-helpers/get-device-info.ts +14 -10
  211. package/src/adapter/helpers/attribute-utils.ts +4 -5
  212. package/src/adapter/helpers/get-shader-info.ts +40 -0
  213. package/src/adapter/helpers/get-shader-layout.ts +150 -68
  214. package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
  215. package/src/adapter/helpers/set-uniform.ts +7 -6
  216. package/src/adapter/helpers/uniforms.ts +23 -13
  217. package/src/adapter/objects/constants-to-keys.ts +3 -25
  218. package/src/adapter/objects/webgl-renderbuffer.ts +40 -37
  219. package/src/adapter/objects/webgl-resource.ts +14 -23
  220. package/src/adapter/objects/webgl-vertex-array-object.ts +201 -37
  221. package/src/adapter/resources/webgl-buffer.ts +56 -58
  222. package/src/adapter/resources/webgl-command-buffer.ts +332 -25
  223. package/src/adapter/resources/webgl-command-encoder.ts +16 -11
  224. package/src/adapter/resources/webgl-external-texture.ts +2 -2
  225. package/src/adapter/resources/webgl-framebuffer.ts +88 -133
  226. package/src/adapter/resources/webgl-render-pass.ts +155 -4
  227. package/src/adapter/resources/webgl-render-pipeline.ts +161 -104
  228. package/src/adapter/resources/webgl-sampler.ts +13 -8
  229. package/src/adapter/resources/webgl-shader.ts +11 -10
  230. package/src/adapter/resources/webgl-texture.ts +113 -85
  231. package/src/adapter/webgl-canvas-context.ts +14 -14
  232. package/src/adapter/webgl-device.ts +192 -77
  233. package/src/classic/accessor.ts +4 -17
  234. package/src/classic/{buffer.ts → buffer-with-accessor.ts} +67 -75
  235. package/src/classic/clear.ts +110 -0
  236. package/src/classic/copy-and-blit.ts +308 -0
  237. package/src/classic/format-utils.ts +43 -0
  238. package/src/classic/typed-array-utils.ts +18 -27
  239. package/src/context/context/{create-context.ts → create-browser-context.ts} +48 -31
  240. package/src/context/context/create-headless-context.ts +48 -0
  241. package/src/context/context/webgl-checks.ts +1 -1
  242. package/src/context/debug/spector.ts +7 -6
  243. package/src/context/debug/webgl-developer-tools.ts +21 -15
  244. package/src/context/parameters/unified-parameter-api.ts +20 -14
  245. package/src/context/parameters/webgl-parameter-tables.ts +117 -98
  246. package/src/context/polyfill/context-data.ts +27 -0
  247. package/src/context/polyfill/get-parameter-polyfill.ts +8 -7
  248. package/src/context/polyfill/polyfill-context.ts +7 -9
  249. package/src/context/polyfill/polyfill-table.ts +18 -16
  250. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  251. package/src/context/state-tracker/track-context-state.ts +14 -13
  252. package/src/context/state-tracker/with-parameters.ts +8 -2
  253. package/src/index.ts +42 -33
  254. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  255. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  256. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  257. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  258. package/dist/bundle.d.ts +0 -2
  259. package/dist/bundle.d.ts.map +0 -1
  260. package/dist/bundle.js +0 -5
  261. package/dist/bundle.js.map +0 -1
  262. package/dist/classic/buffer.d.ts.map +0 -1
  263. package/dist/classic/buffer.js.map +0 -1
  264. package/dist/context/context/context-state.d.ts +0 -18
  265. package/dist/context/context/context-state.d.ts.map +0 -1
  266. package/dist/context/context/context-state.js +0 -26
  267. package/dist/context/context/context-state.js.map +0 -1
  268. package/dist/context/context/create-context.d.ts +0 -41
  269. package/dist/context/context/create-context.d.ts.map +0 -1
  270. package/dist/context/context/create-context.js +0 -49
  271. package/dist/context/context/create-context.js.map +0 -1
  272. package/dist/context/context/device-pixels.d.ts +0 -25
  273. package/dist/context/context/device-pixels.d.ts.map +0 -1
  274. package/dist/context/context/device-pixels.js +0 -98
  275. package/dist/context/context/device-pixels.js.map +0 -1
  276. package/dist/es5/adapter/converters/device-parameters.js +0 -170
  277. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  278. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  279. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  280. package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
  281. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  282. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  283. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  284. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  285. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  286. package/dist/es5/adapter/device-helpers/device-features.js +0 -144
  287. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  288. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  289. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  290. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  291. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  292. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  293. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  294. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  295. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  296. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
  297. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  298. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  299. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  300. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  301. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  302. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  303. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  304. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  305. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  306. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  307. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  308. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  309. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  310. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  311. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  312. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  313. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  314. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  315. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  316. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  317. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  318. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  319. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  320. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
  321. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  322. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
  323. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  324. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
  325. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  326. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  327. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  328. package/dist/es5/adapter/resources/webgl-shader.js +0 -149
  329. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  330. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  331. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  332. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  333. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  334. package/dist/es5/adapter/webgl-device.js +0 -399
  335. package/dist/es5/adapter/webgl-device.js.map +0 -1
  336. package/dist/es5/bundle.js +0 -7
  337. package/dist/es5/bundle.js.map +0 -1
  338. package/dist/es5/classic/accessor.js +0 -181
  339. package/dist/es5/classic/accessor.js.map +0 -1
  340. package/dist/es5/classic/buffer.js +0 -470
  341. package/dist/es5/classic/buffer.js.map +0 -1
  342. package/dist/es5/classic/typed-array-utils.js +0 -126
  343. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  344. package/dist/es5/context/context/context-state.js +0 -31
  345. package/dist/es5/context/context/context-state.js.map +0 -1
  346. package/dist/es5/context/context/create-context.js +0 -69
  347. package/dist/es5/context/context/create-context.js.map +0 -1
  348. package/dist/es5/context/context/device-pixels.js +0 -115
  349. package/dist/es5/context/context/device-pixels.js.map +0 -1
  350. package/dist/es5/context/context/webgl-checks.js +0 -54
  351. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  352. package/dist/es5/context/debug/spector.js +0 -133
  353. package/dist/es5/context/debug/spector.js.map +0 -1
  354. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  355. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  356. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  357. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  358. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  359. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  360. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  361. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  362. package/dist/es5/context/polyfill/polyfill-context.js +0 -135
  363. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  364. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  365. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  366. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  367. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  368. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  369. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  370. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  371. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  372. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  373. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  374. package/dist/es5/index.js +0 -276
  375. package/dist/es5/index.js.map +0 -1
  376. package/dist/es5/init.js +0 -10
  377. package/dist/es5/init.js.map +0 -1
  378. package/dist/es5/types/webgl.js +0 -6
  379. package/dist/es5/types/webgl.js.map +0 -1
  380. package/dist/es5/types.js +0 -2
  381. package/dist/es5/types.js.map +0 -1
  382. package/dist/esm/adapter/converters/device-parameters.js +0 -155
  383. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  384. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  385. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  386. package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
  387. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  388. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  389. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  390. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  391. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  392. package/dist/esm/adapter/device-helpers/device-features.js +0 -102
  393. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  394. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  395. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  396. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  397. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  398. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  399. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  400. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  401. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  402. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
  403. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  404. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  405. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  406. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  407. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  408. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  409. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  410. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  411. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  412. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  413. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  414. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  415. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  416. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  417. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  418. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  419. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  420. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  421. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  422. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  423. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  424. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  425. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  426. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
  427. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  428. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
  429. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  430. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  431. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  432. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  433. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  434. package/dist/esm/adapter/resources/webgl-shader.js +0 -75
  435. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  436. package/dist/esm/adapter/resources/webgl-texture.js +0 -831
  437. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  438. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  439. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  440. package/dist/esm/adapter/webgl-device.js +0 -280
  441. package/dist/esm/adapter/webgl-device.js.map +0 -1
  442. package/dist/esm/bundle.js +0 -5
  443. package/dist/esm/bundle.js.map +0 -1
  444. package/dist/esm/classic/accessor.js +0 -144
  445. package/dist/esm/classic/accessor.js.map +0 -1
  446. package/dist/esm/classic/buffer.js +0 -384
  447. package/dist/esm/classic/buffer.js.map +0 -1
  448. package/dist/esm/classic/typed-array-utils.js +0 -112
  449. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  450. package/dist/esm/context/context/context-state.js +0 -26
  451. package/dist/esm/context/context/context-state.js.map +0 -1
  452. package/dist/esm/context/context/create-context.js.map +0 -1
  453. package/dist/esm/context/context/device-pixels.js +0 -98
  454. package/dist/esm/context/context/device-pixels.js.map +0 -1
  455. package/dist/esm/context/context/webgl-checks.js +0 -34
  456. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  457. package/dist/esm/context/debug/spector.js +0 -76
  458. package/dist/esm/context/debug/spector.js.map +0 -1
  459. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  460. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  461. package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
  462. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  463. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  464. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  465. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  466. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  467. package/dist/esm/context/polyfill/polyfill-context.js +0 -92
  468. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  469. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  470. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  471. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  472. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  473. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  474. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  475. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  476. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  477. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  478. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  479. package/dist/esm/index.js +0 -27
  480. package/dist/esm/index.js.map +0 -1
  481. package/dist/esm/init.js +0 -4
  482. package/dist/esm/init.js.map +0 -1
  483. package/dist/esm/types/webgl.js +0 -2
  484. package/dist/esm/types/webgl.js.map +0 -1
  485. package/dist/esm/types.js +0 -2
  486. package/dist/esm/types.js.map +0 -1
  487. package/dist/init.d.ts +0 -2
  488. package/dist/init.d.ts.map +0 -1
  489. package/dist/init.js +0 -4
  490. package/dist/init.js.map +0 -1
  491. package/dist/types/webgl.d.ts +0 -144
  492. package/dist/types/webgl.d.ts.map +0 -1
  493. package/dist/types/webgl.js +0 -2
  494. package/dist/types/webgl.js.map +0 -1
  495. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  496. package/src/bundle.ts +0 -4
  497. package/src/context/context/context-state.ts +0 -41
  498. package/src/context/context/device-pixels.ts +0 -152
  499. package/src/init.ts +0 -4
  500. package/src/types/webgl.ts +0 -283
@@ -1,6 +1,6 @@
1
- import { decodeTextureFormat } from '@luma.gl/api';
2
- import GL from '@luma.gl/constants';
3
- import { isWebGL2 } from '../../context/context/webgl-checks';
1
+ import { decodeTextureFormat } from '@luma.gl/core';
2
+ import { GL } from '@luma.gl/constants';
3
+ import { isWebGL2 } from "../../context/context/webgl-checks.js";
4
4
  const texture_compression_bc = 'texture-compression-bc';
5
5
  const texture_compression_astc = 'texture-compression-astc';
6
6
  const texture_compression_etc2 = 'texture-compression-etc2';
@@ -20,12 +20,8 @@ const EXT_SRGB = 'EXT_sRGB';
20
20
  const EXT_TEXTURE_NORM16 = 'EXT_texture_norm16';
21
21
  const EXT_FLOAT_WEBGL1 = 'WEBGL_color_buffer_float';
22
22
  const EXT_FLOAT_RENDER_WEBGL2 = 'EXT_color_buffer_float';
23
- const EXT_HALF_FLOAT_WEBGL1 = 'WEBGL_color_buffer_half_float';
24
-
25
23
  const checkExtension = (gl, extension) => gl.getExtension(extension);
26
-
27
24
  const checkExtensions = (gl, extensions) => extensions.every(extension => gl.getExtension(extension));
28
-
29
25
  const TEXTURE_FEATURE_CHECKS = {
30
26
  'texture-blend-float-webgl1': gl => isWebGL2(gl) ? true : checkExtension(gl, 'EXT_float_blend'),
31
27
  'texture-formats-srgb-webgl1': gl => isWebGL2(gl) ? true : checkExtension(gl, EXT_SRGB),
@@ -48,12 +44,9 @@ const TEXTURE_FEATURE_CHECKS = {
48
44
  };
49
45
  export function checkTextureFeature(gl, feature) {
50
46
  var _TEXTURE_FEATURE_CHEC;
51
-
52
- return (_TEXTURE_FEATURE_CHEC = TEXTURE_FEATURE_CHECKS[feature]) === null || _TEXTURE_FEATURE_CHEC === void 0 ? void 0 : _TEXTURE_FEATURE_CHEC.call(TEXTURE_FEATURE_CHECKS, gl);
47
+ return ((_TEXTURE_FEATURE_CHEC = TEXTURE_FEATURE_CHECKS[feature]) === null || _TEXTURE_FEATURE_CHEC === void 0 ? void 0 : _TEXTURE_FEATURE_CHEC.call(TEXTURE_FEATURE_CHECKS, gl)) || false;
53
48
  }
54
-
55
49
  const checkTextureFeatures = (gl, features) => features.every(feature => checkTextureFeature(gl, feature));
56
-
57
50
  export function getTextureFeatures(gl) {
58
51
  const textureFeatures = Object.keys(TEXTURE_FEATURE_CHECKS);
59
52
  return textureFeatures.filter(feature => checkTextureFeature(gl, feature));
@@ -80,7 +73,8 @@ export const TEXTURE_FORMATS = {
80
73
  'r8unorm': {
81
74
  gl: GL.R8,
82
75
  b: 1,
83
- c: 1
76
+ c: 1,
77
+ renderbuffer: true
84
78
  },
85
79
  'r8snorm': {
86
80
  gl: GL.R8_SNORM,
@@ -90,17 +84,20 @@ export const TEXTURE_FORMATS = {
90
84
  'r8uint': {
91
85
  gl: GL.R8UI,
92
86
  b: 1,
93
- c: 1
87
+ c: 1,
88
+ renderbuffer: true
94
89
  },
95
90
  'r8sint': {
96
91
  gl: GL.R8I,
97
92
  b: 1,
98
- c: 1
93
+ c: 1,
94
+ renderbuffer: true
99
95
  },
100
96
  'rg8unorm': {
101
97
  gl: GL.RG8,
102
98
  b: 2,
103
- c: 2
99
+ c: 2,
100
+ renderbuffer: true
104
101
  },
105
102
  'rg8snorm': {
106
103
  gl: GL.RG8_SNORM,
@@ -110,67 +107,78 @@ export const TEXTURE_FORMATS = {
110
107
  'rg8uint': {
111
108
  gl: GL.RG8UI,
112
109
  b: 2,
113
- c: 2
110
+ c: 2,
111
+ renderbuffer: true
114
112
  },
115
113
  'rg8sint': {
116
114
  gl: GL.RG8I,
117
115
  b: 2,
118
- c: 2
116
+ c: 2,
117
+ renderbuffer: true
119
118
  },
120
119
  'r16uint': {
121
120
  gl: GL.R16UI,
122
121
  b: 2,
123
- c: 1
122
+ c: 1,
123
+ renderbuffer: true
124
124
  },
125
125
  'r16sint': {
126
126
  gl: GL.R16I,
127
127
  b: 2,
128
- c: 1
128
+ c: 1,
129
+ renderbuffer: true
129
130
  },
130
131
  'r16float': {
131
132
  gl: GL.R16F,
132
133
  b: 2,
133
134
  c: 1,
134
135
  render: 'texture-renderable-float16-webgl',
135
- filter: 'texture-filter-linear-float16-webgl'
136
+ filter: 'texture-filter-linear-float16-webgl',
137
+ renderbuffer: true
136
138
  },
137
139
  'r16unorm-webgl': {
138
140
  gl: GL.R16_EXT,
139
141
  b: 2,
140
142
  c: 1,
141
- f: 'texture-formats-norm16-webgl'
143
+ f: 'texture-formats-norm16-webgl',
144
+ renderbuffer: true,
145
+ x: EXT_TEXTURE_NORM16
142
146
  },
143
147
  'r16snorm-webgl': {
144
148
  gl: GL.R16_SNORM_EXT,
145
149
  b: 2,
146
150
  c: 1,
147
- f: 'texture-formats-norm16-webgl'
151
+ f: 'texture-formats-norm16-webgl',
152
+ x: EXT_TEXTURE_NORM16
148
153
  },
149
154
  'rgba4unorm-webgl': {
150
155
  gl: GL.RGBA4,
151
156
  b: 2,
152
157
  c: 4,
153
- wgpu: false
158
+ wgpu: false,
159
+ renderbuffer: true
154
160
  },
155
161
  'rgb565unorm-webgl': {
156
162
  gl: GL.RGB565,
157
163
  b: 2,
158
164
  c: 4,
159
- wgpu: false
165
+ wgpu: false,
166
+ renderbuffer: true
160
167
  },
161
168
  'rgb5a1unorm-webgl': {
162
169
  gl: GL.RGB5_A1,
163
170
  b: 2,
164
171
  c: 4,
165
- wgpu: false
172
+ wgpu: false,
173
+ renderbuffer: true
166
174
  },
167
- 'rbg8unorm-webgl': {
175
+ 'rgb8unorm-webgl': {
168
176
  gl: GL.RGB8,
169
177
  b: 3,
170
178
  c: 3,
171
179
  wgpu: false
172
180
  },
173
- 'rbg8snorm-webgl': {
181
+ 'rgb8snorm-webgl': {
174
182
  gl: GL.RGB8_SNORM,
175
183
  b: 3,
176
184
  c: 3,
@@ -234,31 +242,36 @@ export const TEXTURE_FORMATS = {
234
242
  b: 4,
235
243
  c: 2,
236
244
  render: 'texture-renderable-float16-webgl',
237
- filter: 'texture-filter-linear-float16-webgl'
245
+ filter: 'texture-filter-linear-float16-webgl',
246
+ renderbuffer: true
238
247
  },
239
248
  'rg16unorm-webgl': {
240
249
  gl: GL.RG16_EXT,
241
250
  b: 2,
242
251
  c: 2,
243
- f: 'texture-formats-norm16-webgl'
252
+ f: 'texture-formats-norm16-webgl',
253
+ x: EXT_TEXTURE_NORM16
244
254
  },
245
255
  'rg16snorm-webgl': {
246
256
  gl: GL.RG16_SNORM_EXT,
247
257
  b: 2,
248
258
  c: 2,
249
- f: 'texture-formats-norm16-webgl'
259
+ f: 'texture-formats-norm16-webgl',
260
+ x: EXT_TEXTURE_NORM16
250
261
  },
251
262
  'r32uint': {
252
263
  gl: GL.R32UI,
253
264
  b: 4,
254
265
  c: 1,
255
- bpp: 4
266
+ bpp: 4,
267
+ renderbuffer: true
256
268
  },
257
269
  'r32sint': {
258
270
  gl: GL.R32I,
259
271
  b: 4,
260
272
  c: 1,
261
- bpp: 4
273
+ bpp: 4,
274
+ renderbuffer: true
262
275
  },
263
276
  'r32float': {
264
277
  gl: GL.R32F,
@@ -281,13 +294,15 @@ export const TEXTURE_FORMATS = {
281
294
  b: 4,
282
295
  c: 3,
283
296
  p: 1,
284
- render: 'texture-renderable-float32-webgl'
297
+ render: 'texture-renderable-float32-webgl',
298
+ renderbuffer: true
285
299
  },
286
300
  'rgb10a2unorm': {
287
301
  gl: GL.RGB10_A2,
288
302
  b: 4,
289
303
  c: 4,
290
- p: 1
304
+ p: 1,
305
+ renderbuffer: true
291
306
  },
292
307
  'rgb10a2unorm-webgl': {
293
308
  b: 4,
@@ -295,46 +310,54 @@ export const TEXTURE_FORMATS = {
295
310
  gl: GL.RGB10_A2UI,
296
311
  p: 1,
297
312
  wgpu: false,
298
- bpp: 4
313
+ bpp: 4,
314
+ renderbuffer: true
299
315
  },
300
316
  'rgb16unorm-webgl': {
301
317
  gl: GL.RGB16_EXT,
302
318
  b: 2,
303
319
  c: 3,
304
- f: 'texture-formats-norm16-webgl'
320
+ f: 'texture-formats-norm16-webgl',
321
+ x: EXT_TEXTURE_NORM16
305
322
  },
306
323
  'rgb16snorm-webgl': {
307
324
  gl: GL.RGB16_SNORM_EXT,
308
325
  b: 2,
309
326
  c: 3,
310
- f: 'texture-formats-norm16-webgl'
327
+ f: 'texture-formats-norm16-webgl',
328
+ x: EXT_TEXTURE_NORM16
311
329
  },
312
330
  'rg32uint': {
313
331
  gl: GL.RG32UI,
314
332
  b: 8,
315
- c: 2
333
+ c: 2,
334
+ renderbuffer: true
316
335
  },
317
336
  'rg32sint': {
318
337
  gl: GL.RG32I,
319
338
  b: 8,
320
- c: 2
339
+ c: 2,
340
+ renderbuffer: true
321
341
  },
322
342
  'rg32float': {
323
343
  gl: GL.RG32F,
324
344
  b: 8,
325
345
  c: 2,
326
346
  render: 'texture-renderable-float32-webgl',
327
- filter: 'texture-filter-linear-float32-webgl'
347
+ filter: 'texture-filter-linear-float32-webgl',
348
+ renderbuffer: true
328
349
  },
329
350
  'rgba16uint': {
330
351
  gl: GL.RGBA16UI,
331
352
  b: 8,
332
- c: 4
353
+ c: 4,
354
+ renderbuffer: true
333
355
  },
334
356
  'rgba16sint': {
335
357
  gl: GL.RGBA16I,
336
358
  b: 8,
337
- c: 4
359
+ c: 4,
360
+ renderbuffer: true
338
361
  },
339
362
  'rgba16float': {
340
363
  gl: GL.RGBA16F,
@@ -348,13 +371,16 @@ export const TEXTURE_FORMATS = {
348
371
  gl: GL.RGBA16_EXT,
349
372
  b: 2,
350
373
  c: 4,
351
- f: 'texture-formats-norm16-webgl'
374
+ f: 'texture-formats-norm16-webgl',
375
+ renderbuffer: true,
376
+ x: EXT_TEXTURE_NORM16
352
377
  },
353
378
  'rgba16snorm-webgl': {
354
379
  gl: GL.RGBA16_SNORM_EXT,
355
380
  b: 2,
356
381
  c: 4,
357
- f: 'texture-formats-norm16-webgl'
382
+ f: 'texture-formats-norm16-webgl',
383
+ x: EXT_TEXTURE_NORM16
358
384
  },
359
385
  'rgb32float-webgl': {
360
386
  gl: GL.RGB32F,
@@ -369,33 +395,38 @@ export const TEXTURE_FORMATS = {
369
395
  'rgba32uint': {
370
396
  gl: GL.RGBA32UI,
371
397
  b: 16,
372
- c: 4
398
+ c: 4,
399
+ renderbuffer: true
373
400
  },
374
401
  'rgba32sint': {
375
402
  gl: GL.RGBA32I,
376
403
  b: 16,
377
- c: 4
404
+ c: 4,
405
+ renderbuffer: true
378
406
  },
379
407
  'rgba32float': {
380
408
  gl: GL.RGBA32F,
381
- gl1: GL.RGBA,
382
409
  b: 16,
383
410
  c: 4,
384
411
  render: 'texture-renderable-float32-webgl',
385
- filter: 'texture-filter-linear-float32-webgl'
412
+ filter: 'texture-filter-linear-float32-webgl',
413
+ renderbuffer: true
386
414
  },
387
415
  'stencil8': {
388
416
  gl: GL.STENCIL_INDEX8,
417
+ gl1: GL.STENCIL_INDEX8,
389
418
  b: 1,
390
419
  c: 1,
391
- attachment: GL.STENCIL_ATTACHMENT
420
+ attachment: GL.STENCIL_ATTACHMENT,
421
+ renderbuffer: true
392
422
  },
393
423
  'depth16unorm': {
394
424
  gl: GL.DEPTH_COMPONENT16,
395
425
  gl1: GL.DEPTH_COMPONENT16,
396
426
  b: 2,
397
427
  c: 1,
398
- attachment: GL.DEPTH_ATTACHMENT
428
+ attachment: GL.DEPTH_ATTACHMENT,
429
+ renderbuffer: true
399
430
  },
400
431
  'depth24plus': {
401
432
  gl: GL.DEPTH_COMPONENT24,
@@ -407,29 +438,34 @@ export const TEXTURE_FORMATS = {
407
438
  gl: GL.DEPTH_COMPONENT32F,
408
439
  b: 4,
409
440
  c: 1,
410
- attachment: GL.DEPTH_ATTACHMENT
441
+ attachment: GL.DEPTH_ATTACHMENT,
442
+ renderbuffer: true
411
443
  },
412
444
  'depth24plus-stencil8': {
413
- b: 4,
414
- gl: GL.UNSIGNED_INT_24_8,
445
+ gl: GL.DEPTH_STENCIL,
415
446
  gl1: GL.DEPTH_STENCIL,
447
+ b: 4,
416
448
  c: 2,
417
449
  p: 1,
418
- attachment: GL.DEPTH_STENCIL_ATTACHMENT
450
+ attachment: GL.DEPTH_STENCIL_ATTACHMENT,
451
+ renderbuffer: true,
452
+ depthTexture: true
419
453
  },
420
454
  'depth24unorm-stencil8': {
421
455
  gl: GL.DEPTH24_STENCIL8,
422
456
  b: 4,
423
457
  c: 2,
424
458
  p: 1,
425
- attachment: GL.DEPTH_STENCIL_ATTACHMENT
459
+ attachment: GL.DEPTH_STENCIL_ATTACHMENT,
460
+ renderbuffer: true
426
461
  },
427
- "depth32float-stencil8": {
462
+ 'depth32float-stencil8': {
428
463
  gl: GL.DEPTH32F_STENCIL8,
429
464
  b: 5,
430
465
  c: 2,
431
466
  p: 1,
432
- attachment: GL.DEPTH_STENCIL_ATTACHMENT
467
+ attachment: GL.DEPTH_STENCIL_ATTACHMENT,
468
+ renderbuffer: true
433
469
  },
434
470
  'bc1-rgb-unorm-webgl': {
435
471
  gl: GL.COMPRESSED_RGB_S3TC_DXT1_EXT,
@@ -696,61 +732,81 @@ export const TEXTURE_FORMATS = {
696
732
  f: texture_compression_atc_webgl
697
733
  }
698
734
  };
699
-
700
- function getTextureFormat(format) {
701
- if (typeof format === 'string') {
702
- return format;
703
- }
704
-
705
- const entry = Object.entries(TEXTURE_FORMATS).find(([, entry]) => entry.gl === format || entry.gl1 === format);
706
-
707
- if (!entry) {
708
- throw new Error("Unknown texture format ".concat(format));
709
- }
710
-
711
- return entry[0];
712
- }
713
-
735
+ const DATA_FORMAT_CHANNELS = {
736
+ [GL.RED]: 1,
737
+ [GL.RED_INTEGER]: 1,
738
+ [GL.RG]: 2,
739
+ [GL.RG_INTEGER]: 2,
740
+ [GL.RGB]: 3,
741
+ [GL.RGB_INTEGER]: 3,
742
+ [GL.RGBA]: 4,
743
+ [GL.RGBA_INTEGER]: 4,
744
+ [GL.DEPTH_COMPONENT]: 1,
745
+ [GL.DEPTH_STENCIL]: 1,
746
+ [GL.ALPHA]: 1,
747
+ [GL.LUMINANCE]: 1,
748
+ [GL.LUMINANCE_ALPHA]: 2
749
+ };
750
+ const TYPE_SIZES = {
751
+ [GL.FLOAT]: 4,
752
+ [GL.UNSIGNED_INT]: 4,
753
+ [GL.INT]: 4,
754
+ [GL.UNSIGNED_SHORT]: 2,
755
+ [GL.SHORT]: 2,
756
+ [GL.HALF_FLOAT]: 2,
757
+ [GL.BYTE]: 1,
758
+ [GL.UNSIGNED_BYTE]: 1
759
+ };
714
760
  export function isTextureFormatSupported(gl, formatOrGL) {
715
- const format = getTextureFormat(formatOrGL);
761
+ const format = convertGLToTextureFormat(formatOrGL);
716
762
  const info = TEXTURE_FORMATS[format];
717
-
718
763
  if (!info) {
719
764
  return false;
720
765
  }
721
-
722
766
  if (isWebGL2(gl) ? info.gl === undefined : info.gl1 === undefined) {
723
767
  return false;
724
768
  }
725
-
726
769
  const extension = info.x || (isWebGL2(gl) ? info.gl2ext || info.gl1ext : info.gl1ext);
727
-
728
770
  if (extension) {
729
771
  return Boolean(gl.getExtension(extension));
730
772
  }
731
-
732
773
  return true;
733
774
  }
775
+ export function isRenderbufferFormatSupported(gl, format) {
776
+ var _TEXTURE_FORMATS$form;
777
+ return isTextureFormatSupported(gl, format) && ((_TEXTURE_FORMATS$form = TEXTURE_FORMATS[format]) === null || _TEXTURE_FORMATS$form === void 0 ? void 0 : _TEXTURE_FORMATS$form.renderbuffer);
778
+ }
779
+ export function convertGLToTextureFormat(format) {
780
+ if (typeof format === 'string') {
781
+ return format;
782
+ }
783
+ const entry = Object.entries(TEXTURE_FORMATS).find(_ref => {
784
+ let [, entry] = _ref;
785
+ return entry.gl === format || entry.gl1 === format;
786
+ });
787
+ if (!entry) {
788
+ throw new Error("Unknown texture format ".concat(format));
789
+ }
790
+ return entry[0];
791
+ }
792
+ export function convertTextureFormatToGL(format, isWebGL2) {
793
+ const formatInfo = TEXTURE_FORMATS[format];
794
+ const webglFormat = isWebGL2 ? formatInfo === null || formatInfo === void 0 ? void 0 : formatInfo.gl : formatInfo === null || formatInfo === void 0 ? void 0 : formatInfo.gl1;
795
+ if (webglFormat === undefined) {
796
+ throw new Error("Unsupported texture format ".concat(format));
797
+ }
798
+ return webglFormat;
799
+ }
734
800
  export function getTextureFormatSupport(gl, formatOrGL) {
735
- const format = getTextureFormat(formatOrGL);
801
+ const format = convertGLToTextureFormat(formatOrGL);
736
802
  const info = TEXTURE_FORMATS[format];
737
-
738
803
  if (!info) {
739
804
  return {
740
805
  supported: false
741
806
  };
742
807
  }
743
-
744
- let decoded;
745
-
746
- try {
747
- decoded = decodeTextureFormat(format);
748
- } catch {}
749
-
750
808
  let supported = isWebGL2(gl) ? info.gl === undefined : info.gl1 === undefined;
751
809
  supported = supported && checkTextureFeatures(gl, [info.f]);
752
- const filterable = info.filter ? checkTextureFeatures(gl, [info.filter]) : decoded && !decoded.signed;
753
- const renderable = info.filter ? checkTextureFeatures(gl, [info.render]) : decoded && !decoded.signed;
754
810
  return {
755
811
  supported,
756
812
  renderable: supported && checkTextureFeatures(gl, [info.render]),
@@ -760,63 +816,39 @@ export function getTextureFormatSupport(gl, formatOrGL) {
760
816
  };
761
817
  }
762
818
  export function isTextureFormatFilterable(gl, formatOrGL) {
763
- const format = getTextureFormat(formatOrGL);
764
-
819
+ const format = convertGLToTextureFormat(formatOrGL);
765
820
  if (!isTextureFormatSupported(gl, format)) {
766
821
  return false;
767
822
  }
768
-
769
823
  try {
770
824
  const decoded = decodeTextureFormat(format);
771
-
772
825
  if (decoded.signed) {
773
826
  return false;
774
827
  }
775
828
  } catch {
776
829
  return false;
777
830
  }
778
-
779
831
  if (format.endsWith('32float')) {
780
832
  return Boolean(gl.getExtension('OES_texture_float_linear'));
781
833
  }
782
-
783
834
  if (format.endsWith('16float')) {
784
835
  return Boolean(gl.getExtension('OES_texture_half_float_linear'));
785
836
  }
786
-
787
837
  return true;
788
838
  }
789
839
  export function isTextureFormatRenderable(gl, formatOrGL) {
790
- const format = getTextureFormat(formatOrGL);
791
-
840
+ const format = convertGLToTextureFormat(formatOrGL);
792
841
  if (!isTextureFormatSupported(gl, format)) {
793
842
  return false;
794
843
  }
795
-
796
844
  if (typeof format === 'number') {
797
845
  return false;
798
846
  }
799
-
800
847
  return true;
801
848
  }
802
- export function getWebGLTextureFormat(gl, formatOrGL) {
803
- const format = getTextureFormat(formatOrGL);
804
- const formatInfo = TEXTURE_FORMATS[format];
805
- const webglFormat = isWebGL2(gl) ? formatInfo === null || formatInfo === void 0 ? void 0 : formatInfo.gl : formatInfo === null || formatInfo === void 0 ? void 0 : formatInfo.gl1;
806
-
807
- if (typeof format === 'number') {
808
- return webglFormat || format;
809
- }
810
-
811
- if (webglFormat === undefined) {
812
- throw new Error("Unsupported texture format ".concat(format));
813
- }
814
-
815
- return webglFormat;
816
- }
817
- export function getWebGLTextureParameters(gl, formatOrGL) {
818
- const format = getTextureFormat(formatOrGL);
819
- const webglFormat = getWebGLTextureFormat(gl, format);
849
+ export function getWebGLTextureParameters(formatOrGL, isWebGL2) {
850
+ const format = convertGLToTextureFormat(formatOrGL);
851
+ const webglFormat = convertTextureFormatToGL(format, isWebGL2);
820
852
  const decoded = decodeTextureFormat(format);
821
853
  return {
822
854
  format: webglFormat,
@@ -825,26 +857,19 @@ export function getWebGLTextureParameters(gl, formatOrGL) {
825
857
  compressed: decoded.compressed
826
858
  };
827
859
  }
828
- export function getWebGLDepthStencilAttachment(formatOrGL) {
829
- const format = getTextureFormat(formatOrGL);
830
-
831
- if (typeof format === 'number') {
832
- throw new Error('unsupported depth stencil format');
833
- }
834
-
860
+ export function getDepthStencilAttachmentWebGL(format) {
835
861
  const info = TEXTURE_FORMATS[format];
836
- const attachment = info.attachment;
837
-
838
- if (!attachment) {
839
- throw new Error('not a depth stencil format');
862
+ if (!(info !== null && info !== void 0 && info.attachment)) {
863
+ throw new Error("".concat(format, " is not a depth stencil format"));
840
864
  }
841
-
842
- return attachment;
865
+ return info.attachment;
843
866
  }
844
- export function _checkFloat32ColorAttachment(gl, internalFormat = gl.RGBA, srcFormat = GL.RGBA, srcType = GL.UNSIGNED_BYTE) {
845
- let texture;
846
- let framebuffer;
847
-
867
+ export function _checkFloat32ColorAttachment(gl) {
868
+ let internalFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : gl.RGBA;
869
+ let srcFormat = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : GL.RGBA;
870
+ let srcType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : GL.UNSIGNED_BYTE;
871
+ let texture = null;
872
+ let framebuffer = null;
848
873
  try {
849
874
  texture = gl.createTexture();
850
875
  gl.bindTexture(GL.TEXTURE_2D, texture);
@@ -865,88 +890,48 @@ export function _checkFloat32ColorAttachment(gl, internalFormat = gl.RGBA, srcFo
865
890
  gl.deleteFramebuffer(framebuffer);
866
891
  }
867
892
  }
868
- const DATA_FORMAT_CHANNELS = {
869
- [GL.RED]: 1,
870
- [GL.RED_INTEGER]: 1,
871
- [GL.RG]: 2,
872
- [GL.RG_INTEGER]: 2,
873
- [GL.RGB]: 3,
874
- [GL.RGB_INTEGER]: 3,
875
- [GL.RGBA]: 4,
876
- [GL.RGBA_INTEGER]: 4,
877
- [GL.DEPTH_COMPONENT]: 1,
878
- [GL.DEPTH_STENCIL]: 1,
879
- [GL.ALPHA]: 1,
880
- [GL.LUMINANCE]: 1,
881
- [GL.LUMINANCE_ALPHA]: 2
882
- };
883
- const TYPE_SIZES = {
884
- [GL.FLOAT]: 4,
885
- [GL.UNSIGNED_INT]: 4,
886
- [GL.INT]: 4,
887
- [GL.UNSIGNED_SHORT]: 2,
888
- [GL.SHORT]: 2,
889
- [GL.HALF_FLOAT]: 2,
890
- [GL.BYTE]: 1,
891
- [GL.UNSIGNED_BYTE]: 1
892
- };
893
- export function getTextureFormatBytesPerPixel(gl, formatOrGL) {
894
- const format = getTextureFormat(formatOrGL);
895
- const params = getWebGLTextureParameters(gl, format);
893
+ export function getTextureFormatBytesPerPixel(formatOrGL, isWebGL2) {
894
+ const format = convertGLToTextureFormat(formatOrGL);
895
+ const params = getWebGLTextureParameters(format, isWebGL2);
896
896
  const channels = DATA_FORMAT_CHANNELS[params.dataFormat] || 4;
897
897
  const channelSize = TYPE_SIZES[params.type] || 1;
898
898
  return channels * channelSize;
899
899
  }
900
-
901
900
  function getWebGLPixelDataFormat(dataFormat, integer, normalized, format) {
902
901
  if (format === GL.RGBA || format === GL.RGB) {
903
902
  return format;
904
903
  }
905
-
906
904
  switch (dataFormat) {
907
905
  case 'r':
908
906
  return integer && !normalized ? GL.RED_INTEGER : GL.RED;
909
-
910
907
  case 'rg':
911
908
  return integer && !normalized ? GL.RG_INTEGER : GL.RG;
912
-
913
909
  case 'rgb':
914
910
  return integer && !normalized ? GL.RGB_INTEGER : GL.RGB;
915
-
916
911
  case 'rgba':
917
912
  return integer && !normalized ? GL.RGBA_INTEGER : GL.RGBA;
918
-
919
913
  default:
920
914
  return GL.RGBA;
921
915
  }
922
916
  }
923
-
924
917
  export function getWebGLDataType(dataType) {
925
918
  switch (dataType) {
926
919
  case 'uint8':
927
920
  return GL.UNSIGNED_BYTE;
928
-
929
921
  case 'sint8':
930
922
  return GL.BYTE;
931
-
932
923
  case 'uint16':
933
924
  return GL.UNSIGNED_SHORT;
934
-
935
925
  case 'sint16':
936
926
  return GL.SHORT;
937
-
938
927
  case 'uint32':
939
928
  return GL.UNSIGNED_INT;
940
-
941
929
  case 'sint32':
942
930
  return GL.INT;
943
-
944
931
  case 'float16':
945
932
  return GL.HALF_FLOAT;
946
-
947
933
  case 'float32':
948
934
  return GL.FLOAT;
949
-
950
935
  default:
951
936
  return GL.UNSIGNED_BYTE;
952
937
  }