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

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