@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,97 +1,79 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { isObjectEmpty } from '@luma.gl/api';
3
- import { Texture, cast, log, assert, isPowerOfTwo, loadImage } from '@luma.gl/api';
4
- import GL from '@luma.gl/constants';
5
- import { withParameters } from '../../context/state-tracker/with-parameters';
6
- import { getWebGLTextureFormat, getWebGLTextureParameters, getTextureFormatBytesPerPixel } from '../converters/texture-formats';
7
- import { convertSamplerParametersToWebGL, updateSamplerParametersForNPOT } from '../converters/sampler-parameters';
8
- import WEBGLBuffer from './webgl-buffer';
9
- import WEBGLSampler from './webgl-sampler';
10
- export default class WEBGLTexture extends Texture {
2
+ import { isObjectEmpty } from '@luma.gl/core';
3
+ import { Texture, cast, log, assert, isPowerOfTwo, loadImage } from '@luma.gl/core';
4
+ import { GL } from '@luma.gl/constants';
5
+ import { withParameters } from "../../context/state-tracker/with-parameters.js";
6
+ import { convertTextureFormatToGL, getWebGLTextureParameters, getTextureFormatBytesPerPixel } from "../converters/texture-formats.js";
7
+ import { convertSamplerParametersToWebGL, updateSamplerParametersForNPOT } from "../converters/sampler-parameters.js";
8
+ import { WEBGLBuffer } from "./webgl-buffer.js";
9
+ import { WEBGLSampler } from "./webgl-sampler.js";
10
+ export const DEFAULT_WEBGL_TEXTURE_PROPS = {
11
+ parameters: {},
12
+ pixelStore: {},
13
+ pixels: null,
14
+ border: 0,
15
+ dataFormat: undefined,
16
+ textureUnit: undefined,
17
+ target: undefined
18
+ };
19
+ export class WEBGLTexture extends Texture {
11
20
  constructor(device, props) {
12
21
  var _this$props;
13
-
14
22
  super(device, {
15
- format: GL.RGBA,
23
+ ...DEFAULT_WEBGL_TEXTURE_PROPS,
24
+ format: 'rgba8unorm',
16
25
  ...props
17
26
  });
18
-
19
27
  _defineProperty(this, "MAX_ATTRIBUTES", void 0);
20
-
21
28
  _defineProperty(this, "device", void 0);
22
-
23
29
  _defineProperty(this, "gl", void 0);
24
-
25
30
  _defineProperty(this, "gl2", void 0);
26
-
27
31
  _defineProperty(this, "handle", void 0);
28
-
29
- _defineProperty(this, "data", void 0);
30
-
31
- _defineProperty(this, "width", undefined);
32
-
33
- _defineProperty(this, "height", undefined);
34
-
35
- _defineProperty(this, "depth", undefined);
36
-
37
- _defineProperty(this, "format", undefined);
38
-
32
+ _defineProperty(this, "sampler", undefined);
33
+ _defineProperty(this, "glFormat", undefined);
39
34
  _defineProperty(this, "type", undefined);
40
-
41
35
  _defineProperty(this, "dataFormat", undefined);
42
-
43
36
  _defineProperty(this, "mipmaps", undefined);
44
-
45
37
  _defineProperty(this, "target", void 0);
46
-
47
38
  _defineProperty(this, "textureUnit", undefined);
48
-
49
- _defineProperty(this, "sampler", undefined);
50
-
51
39
  _defineProperty(this, "loaded", false);
52
-
53
40
  _defineProperty(this, "_video", void 0);
54
-
55
41
  this.device = cast(device);
56
42
  this.gl = this.device.gl;
57
43
  this.gl2 = this.device.gl2;
58
44
  this.handle = this.props.handle || this.gl.createTexture();
59
- this.handle.__SPECTOR_Metadata = { ...this.props,
45
+ this.device.setSpectorMetadata(this.handle, {
46
+ ...this.props,
60
47
  data: typeof this.props.data
61
- };
48
+ });
49
+ this.glFormat = GL.RGBA;
62
50
  this.target = getWebGLTextureTarget(this.props);
63
51
  this.loaded = false;
64
-
65
52
  if (typeof ((_this$props = this.props) === null || _this$props === void 0 ? void 0 : _this$props.data) === 'string') {
66
53
  Object.assign(this.props, {
67
54
  data: loadImage(this.props.data)
68
55
  });
69
56
  }
70
-
71
57
  this.initialize(this.props);
72
58
  Object.seal(this);
73
59
  }
74
-
75
60
  destroy() {
76
61
  if (this.handle) {
77
62
  this.gl.deleteTexture(this.handle);
78
63
  this.removeStats();
79
64
  this.trackDeallocatedMemory('Texture');
80
- this.handle = null;
65
+ this.destroyed = true;
81
66
  }
82
67
  }
83
-
84
68
  toString() {
85
69
  return "Texture(".concat(this.id, ",").concat(this.width, "x").concat(this.height, ")");
86
70
  }
87
-
88
- initialize(props = {}) {
71
+ initialize() {
72
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
89
73
  if (this.props.dimension === 'cube') {
90
74
  return this.initializeCube(props);
91
75
  }
92
-
93
76
  let data = props.data;
94
-
95
77
  if (data instanceof Promise) {
96
78
  data.then(resolvedImageData => this.initialize(Object.assign({}, props, {
97
79
  pixels: resolvedImageData,
@@ -99,29 +81,23 @@ export default class WEBGLTexture extends Texture {
99
81
  })));
100
82
  return this;
101
83
  }
102
-
103
84
  const isVideo = typeof HTMLVideoElement !== 'undefined' && data instanceof HTMLVideoElement;
104
-
105
85
  if (isVideo && data.readyState < HTMLVideoElement.HAVE_METADATA) {
106
86
  this._video = null;
107
87
  data.addEventListener('loadeddata', () => this.initialize(props));
108
88
  return this;
109
89
  }
110
-
111
- let {
90
+ const {
112
91
  parameters = {}
113
92
  } = props;
114
93
  const {
115
94
  pixels = null,
116
- recreate = false,
117
95
  pixelStore = {},
118
96
  textureUnit = undefined
119
97
  } = props;
120
-
121
98
  if (!data) {
122
99
  data = pixels;
123
100
  }
124
-
125
101
  let {
126
102
  width,
127
103
  height,
@@ -133,6 +109,7 @@ export default class WEBGLTexture extends Texture {
133
109
  const {
134
110
  depth = 0
135
111
  } = props;
112
+ const glFormat = convertTextureFormatToGL(props.format, this.device.isWebGL2);
136
113
  ({
137
114
  width,
138
115
  height,
@@ -148,49 +125,37 @@ export default class WEBGLTexture extends Texture {
148
125
  width,
149
126
  height
150
127
  }));
151
- const format = getWebGLTextureFormat(this.gl, props.format);
152
128
  this.width = width;
153
129
  this.height = height;
154
- this.depth = depth;
155
- this.format = format;
130
+ this.glFormat = glFormat;
156
131
  this.type = type;
157
132
  this.dataFormat = dataFormat;
158
133
  this.textureUnit = textureUnit;
159
-
160
134
  if (Number.isFinite(this.textureUnit)) {
161
135
  this.gl.activeTexture(GL.TEXTURE0 + this.textureUnit);
162
136
  this.gl.bindTexture(this.target, this.handle);
163
137
  }
164
-
165
138
  if (mipmaps && this.device.isWebGL1 && isNPOT(this.width, this.height)) {
166
139
  log.warn("texture: ".concat(this, " is Non-Power-Of-Two, disabling mipmaps"))();
167
140
  mipmaps = false;
168
141
  }
169
-
170
142
  this.mipmaps = mipmaps;
171
143
  this.setImageData({
172
144
  data,
173
145
  width,
174
146
  height,
175
147
  depth,
176
- format,
148
+ format: glFormat,
177
149
  type,
178
150
  dataFormat,
179
151
  parameters: pixelStore,
180
152
  compressed
181
153
  });
182
154
  this.setSampler(props.sampler);
183
-
184
155
  this._setSamplerParameters(parameters);
185
-
186
156
  if (mipmaps) {
187
157
  this.generateMipmap();
188
158
  }
189
-
190
- if (recreate) {
191
- this.data = data;
192
- }
193
-
194
159
  if (isVideo) {
195
160
  this._video = {
196
161
  video: data,
@@ -198,10 +163,8 @@ export default class WEBGLTexture extends Texture {
198
163
  lastTime: data.readyState >= HTMLVideoElement.HAVE_CURRENT_DATA ? data.currentTime : -1
199
164
  };
200
165
  }
201
-
202
166
  return this;
203
167
  }
204
-
205
168
  initializeCube(props) {
206
169
  const {
207
170
  mipmaps = true,
@@ -209,21 +172,17 @@ export default class WEBGLTexture extends Texture {
209
172
  } = props;
210
173
  this.setCubeMapImageData(props).then(() => {
211
174
  this.loaded = true;
212
-
213
175
  if (mipmaps) {
214
176
  this.generateMipmap(props);
215
177
  }
216
-
217
178
  this.setSampler(props.sampler);
218
-
219
179
  this._setSamplerParameters(parameters);
220
180
  });
221
181
  return this;
222
182
  }
223
-
224
- setSampler(sampler = {}) {
183
+ setSampler() {
184
+ let sampler = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
225
185
  let samplerProps;
226
-
227
186
  if (sampler instanceof WEBGLSampler) {
228
187
  this.sampler = sampler;
229
188
  samplerProps = sampler.props;
@@ -231,19 +190,16 @@ export default class WEBGLTexture extends Texture {
231
190
  this.sampler = new WEBGLSampler(this.device, sampler);
232
191
  samplerProps = sampler;
233
192
  }
234
-
235
193
  const parameters = convertSamplerParametersToWebGL(samplerProps);
236
-
237
194
  this._setSamplerParameters(parameters);
238
-
239
195
  return this;
240
196
  }
241
-
242
- resize({
243
- height,
244
- width,
245
- mipmaps = false
246
- }) {
197
+ resize(options) {
198
+ const {
199
+ height,
200
+ width,
201
+ mipmaps = false
202
+ } = options;
247
203
  if (width !== this.width || height !== this.height) {
248
204
  return this.initialize({
249
205
  width,
@@ -254,10 +210,8 @@ export default class WEBGLTexture extends Texture {
254
210
  mipmaps
255
211
  });
256
212
  }
257
-
258
213
  return this;
259
214
  }
260
-
261
215
  update() {
262
216
  if (this._video) {
263
217
  const {
@@ -265,30 +219,25 @@ export default class WEBGLTexture extends Texture {
265
219
  parameters,
266
220
  lastTime
267
221
  } = this._video;
268
-
269
222
  if (lastTime === video.currentTime || video.readyState < HTMLVideoElement.HAVE_CURRENT_DATA) {
270
223
  return;
271
224
  }
272
-
273
225
  this.setSubImageData({
274
226
  data: video,
275
227
  parameters
276
228
  });
277
-
278
229
  if (this.mipmaps) {
279
230
  this.generateMipmap();
280
231
  }
281
-
282
232
  this._video.lastTime = video.currentTime;
283
233
  }
284
234
  }
285
-
286
- generateMipmap(params = {}) {
235
+ generateMipmap() {
236
+ let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
287
237
  if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
288
238
  log.warn("texture: ".concat(this, " is Non-Power-Of-Two, disabling mipmaping"))();
289
239
  return this;
290
240
  }
291
-
292
241
  this.mipmaps = true;
293
242
  this.gl.bindTexture(this.target, this.handle);
294
243
  withParameters(this.gl, params, () => {
@@ -297,18 +246,16 @@ export default class WEBGLTexture extends Texture {
297
246
  this.gl.bindTexture(this.target, null);
298
247
  return this;
299
248
  }
300
-
301
249
  setImageData(options) {
302
- if (this.props.dimension === '3d') {
250
+ if (this.props.dimension === '3d' || this.props.dimension === '2d-array') {
303
251
  return this.setImageData3D(options);
304
252
  }
305
-
306
253
  this.trackDeallocatedMemory('Texture');
307
254
  const {
308
255
  target = this.target,
309
256
  pixels = null,
310
257
  level = 0,
311
- format = this.format,
258
+ glFormat = this.glFormat,
312
259
  offset = 0,
313
260
  parameters = {}
314
261
  } = options;
@@ -320,11 +267,9 @@ export default class WEBGLTexture extends Texture {
320
267
  dataFormat = this.dataFormat,
321
268
  compressed = false
322
269
  } = options;
323
-
324
270
  if (!data) {
325
271
  data = pixels;
326
272
  }
327
-
328
273
  ({
329
274
  type,
330
275
  dataFormat,
@@ -356,68 +301,59 @@ export default class WEBGLTexture extends Texture {
356
301
  withParameters(this.gl, parameters, () => {
357
302
  switch (dataType) {
358
303
  case 'null':
359
- gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data);
304
+ gl.texImage2D(target, level, glFormat, width, height, 0, dataFormat, type, data);
360
305
  break;
361
-
362
306
  case 'typed-array':
363
- gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data, offset);
307
+ gl.texImage2D(target, level, glFormat, width, height, 0, dataFormat, type, data, offset);
364
308
  break;
365
-
366
309
  case 'buffer':
367
310
  gl2 = this.device.assertWebGL2();
368
311
  gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle || data);
369
- gl2.texImage2D(target, level, format, width, height, 0, dataFormat, type, offset);
312
+ gl2.texImage2D(target, level, glFormat, width, height, 0, dataFormat, type, offset);
370
313
  gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, null);
371
314
  break;
372
-
373
315
  case 'browser-object':
374
316
  if (this.device.isWebGL2) {
375
- gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data);
317
+ gl.texImage2D(target, level, glFormat, width, height, 0, dataFormat, type, data);
376
318
  } else {
377
- gl.texImage2D(target, level, format, dataFormat, type, data);
319
+ gl.texImage2D(target, level, glFormat, dataFormat, type, data);
378
320
  }
379
-
380
321
  break;
381
-
382
322
  case 'compressed':
383
323
  for (const [levelIndex, levelData] of data.entries()) {
384
324
  gl.compressedTexImage2D(target, levelIndex, levelData.format, levelData.width, levelData.height, 0, levelData.data);
385
325
  }
386
-
387
326
  break;
388
-
389
327
  default:
390
328
  assert(false, 'Unknown image data type');
391
329
  }
392
330
  });
393
-
394
331
  if (data && data.byteLength) {
395
332
  this.trackAllocatedMemory(data.byteLength, 'Texture');
396
333
  } else {
397
- const bytesPerPixel = getTextureFormatBytesPerPixel(this.gl, this.props.format);
334
+ const bytesPerPixel = getTextureFormatBytesPerPixel(this.props.format, this.device.isWebGL2);
398
335
  this.trackAllocatedMemory(this.width * this.height * bytesPerPixel, 'Texture');
399
336
  }
400
-
401
337
  this.loaded = true;
402
338
  return this;
403
339
  }
404
-
405
- setSubImageData({
406
- target = this.target,
407
- pixels = null,
408
- data = null,
409
- x = 0,
410
- y = 0,
411
- width = this.width,
412
- height = this.height,
413
- level = 0,
414
- format = this.format,
415
- type = this.type,
416
- dataFormat = this.dataFormat,
417
- compressed = false,
418
- offset = 0,
419
- parameters = {}
420
- }) {
340
+ setSubImageData(_ref) {
341
+ let {
342
+ target = this.target,
343
+ pixels = null,
344
+ data = null,
345
+ x = 0,
346
+ y = 0,
347
+ width = this.width,
348
+ height = this.height,
349
+ level = 0,
350
+ glFormat = this.glFormat,
351
+ type = this.type,
352
+ dataFormat = this.dataFormat,
353
+ compressed = false,
354
+ offset = 0,
355
+ parameters = {}
356
+ } = _ref;
421
357
  ({
422
358
  type,
423
359
  dataFormat,
@@ -434,26 +370,22 @@ export default class WEBGLTexture extends Texture {
434
370
  height
435
371
  }));
436
372
  assert(this.depth === 1, 'texSubImage not supported for 3D textures');
437
-
438
373
  if (!data) {
439
374
  data = pixels;
440
375
  }
441
-
442
376
  if (data && data.data) {
443
377
  const ndarray = data;
444
378
  data = ndarray.data;
445
379
  width = ndarray.shape[0];
446
380
  height = ndarray.shape[1];
447
381
  }
448
-
449
382
  if (data instanceof WEBGLBuffer) {
450
383
  data = data.handle;
451
384
  }
452
-
453
385
  this.gl.bindTexture(this.target, this.handle);
454
386
  withParameters(this.gl, parameters, () => {
455
387
  if (compressed) {
456
- this.gl.compressedTexSubImage2D(target, level, x, y, width, height, format, data);
388
+ this.gl.compressedTexSubImage2D(target, level, x, y, width, height, glFormat, data);
457
389
  } else if (data === null) {
458
390
  this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
459
391
  } else if (ArrayBuffer.isView(data)) {
@@ -472,89 +404,78 @@ export default class WEBGLTexture extends Texture {
472
404
  });
473
405
  this.gl.bindTexture(this.target, null);
474
406
  }
475
-
476
- copyFramebuffer(opts = {}) {
407
+ copyFramebuffer() {
408
+ let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
477
409
  log.error('Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})')();
478
410
  return null;
479
411
  }
480
-
481
412
  getActiveUnit() {
482
413
  return this.gl.getParameter(GL.ACTIVE_TEXTURE) - GL.TEXTURE0;
483
414
  }
484
-
485
- bind(textureUnit = this.textureUnit) {
415
+ bind() {
416
+ let textureUnit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.textureUnit;
486
417
  const {
487
418
  gl
488
419
  } = this;
489
-
490
420
  if (textureUnit !== undefined) {
491
421
  this.textureUnit = textureUnit;
492
422
  gl.activeTexture(gl.TEXTURE0 + textureUnit);
493
423
  }
494
-
495
424
  gl.bindTexture(this.target, this.handle);
496
425
  return textureUnit;
497
426
  }
498
-
499
- unbind(textureUnit = this.textureUnit) {
427
+ unbind() {
428
+ let textureUnit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.textureUnit;
500
429
  const {
501
430
  gl
502
431
  } = this;
503
-
504
432
  if (textureUnit !== undefined) {
505
433
  this.textureUnit = textureUnit;
506
434
  gl.activeTexture(gl.TEXTURE0 + textureUnit);
507
435
  }
508
-
509
436
  gl.bindTexture(this.target, null);
510
437
  return textureUnit;
511
438
  }
512
-
513
- _getDataType({
514
- data,
515
- compressed = false
516
- }) {
439
+ _getDataType(_ref2) {
440
+ let {
441
+ data,
442
+ compressed = false
443
+ } = _ref2;
517
444
  if (compressed) {
518
445
  return {
519
446
  data,
520
447
  dataType: 'compressed'
521
448
  };
522
449
  }
523
-
524
450
  if (data === null) {
525
451
  return {
526
452
  data,
527
453
  dataType: 'null'
528
454
  };
529
455
  }
530
-
531
456
  if (ArrayBuffer.isView(data)) {
532
457
  return {
533
458
  data,
534
459
  dataType: 'typed-array'
535
460
  };
536
461
  }
537
-
538
462
  if (data instanceof WEBGLBuffer) {
539
463
  return {
540
464
  data: data.handle,
541
465
  dataType: 'buffer'
542
466
  };
543
467
  }
544
-
545
468
  if (typeof WebGLBuffer !== 'undefined' && data instanceof WebGLBuffer) {
546
469
  return {
547
470
  data,
548
471
  dataType: 'buffer'
549
472
  };
550
473
  }
551
-
552
474
  return {
553
475
  data,
554
476
  dataType: 'browser-object'
555
477
  };
556
478
  }
557
-
558
479
  _deduceParameters(opts) {
559
480
  const {
560
481
  format,
@@ -567,7 +488,7 @@ export default class WEBGLTexture extends Texture {
567
488
  type,
568
489
  compressed
569
490
  } = opts;
570
- const parameters = getWebGLTextureParameters(this.gl, format);
491
+ const parameters = getWebGLTextureParameters(format, this.device.isWebGL2);
571
492
  dataFormat = dataFormat || parameters.dataFormat;
572
493
  type = type || parameters.type;
573
494
  compressed = compressed || parameters.compressed;
@@ -585,10 +506,8 @@ export default class WEBGLTexture extends Texture {
585
506
  data
586
507
  };
587
508
  }
588
-
589
509
  _deduceImageSize(data, width, height) {
590
510
  let size;
591
-
592
511
  if (typeof ImageData !== 'undefined' && data instanceof ImageData) {
593
512
  size = {
594
513
  width: data.width,
@@ -625,13 +544,11 @@ export default class WEBGLTexture extends Texture {
625
544
  height
626
545
  };
627
546
  }
628
-
629
547
  assert(size, 'Could not deduced texture size');
630
548
  assert(width === undefined || size.width === width, 'Deduced texture width does not match supplied width');
631
549
  assert(height === undefined || size.height === height, 'Deduced texture height does not match supplied height');
632
550
  return size;
633
551
  }
634
-
635
552
  async setCubeMapImageData(options) {
636
553
  const {
637
554
  gl
@@ -654,7 +571,6 @@ export default class WEBGLTexture extends Texture {
654
571
  if (resolvedFaces[index].length > 1 && this.props.mipmaps !== false) {
655
572
  log.warn("".concat(this.id, " has mipmap and multiple LODs."))();
656
573
  }
657
-
658
574
  resolvedFaces[index].forEach((image, lodLevel) => {
659
575
  if (width && height) {
660
576
  gl.texImage2D(face, lodLevel, format, width, height, 0, format, type, image);
@@ -665,7 +581,6 @@ export default class WEBGLTexture extends Texture {
665
581
  });
666
582
  this.unbind();
667
583
  }
668
-
669
584
  setImageDataForFace(options) {
670
585
  const {
671
586
  face,
@@ -681,7 +596,6 @@ export default class WEBGLTexture extends Texture {
681
596
  } = this;
682
597
  const imageData = pixels || data;
683
598
  this.bind();
684
-
685
599
  if (imageData instanceof Promise) {
686
600
  imageData.then(resolvedImageData => this.setImageDataForFace(Object.assign({}, options, {
687
601
  face,
@@ -693,139 +607,110 @@ export default class WEBGLTexture extends Texture {
693
607
  } else {
694
608
  gl.texImage2D(face, 0, format, format, type, imageData);
695
609
  }
696
-
697
610
  return this;
698
611
  }
699
-
700
- setImageData3D({
701
- level = 0,
702
- dataFormat,
703
- format,
704
- type,
705
- width,
706
- height,
707
- depth = 1,
708
- offset = 0,
709
- data,
710
- parameters = {}
711
- }) {
612
+ setImageData3D(options) {
613
+ const {
614
+ level = 0,
615
+ dataFormat,
616
+ format,
617
+ type,
618
+ width,
619
+ height,
620
+ depth = 1,
621
+ offset = 0,
622
+ data,
623
+ parameters = {}
624
+ } = options;
712
625
  this.trackDeallocatedMemory('Texture');
713
626
  this.gl.bindTexture(this.target, this.handle);
714
- const webglTextureFormat = getWebGLTextureParameters(this.gl, format);
627
+ const webglTextureFormat = getWebGLTextureParameters(format, this.device.isWebGL2);
715
628
  withParameters(this.gl, parameters, () => {
716
629
  if (ArrayBuffer.isView(data)) {
717
630
  this.gl.texImage3D(this.target, level, webglTextureFormat.format, width, height, depth, 0, webglTextureFormat.dataFormat, webglTextureFormat.type, data);
718
631
  }
719
-
720
632
  if (data instanceof WEBGLBuffer) {
721
633
  this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);
722
634
  this.gl.texImage3D(this.target, level, dataFormat, width, height, depth, 0, format, type, offset);
723
635
  }
724
636
  });
725
-
726
637
  if (data && data.byteLength) {
727
638
  this.trackAllocatedMemory(data.byteLength, 'Texture');
728
639
  } else {
729
- const bytesPerPixel = getTextureFormatBytesPerPixel(this.gl, this.props.format);
640
+ const bytesPerPixel = getTextureFormatBytesPerPixel(this.props.format, this.device.isWebGL2);
730
641
  this.trackAllocatedMemory(this.width * this.height * this.depth * bytesPerPixel, 'Texture');
731
642
  }
732
-
733
643
  this.loaded = true;
734
644
  return this;
735
645
  }
736
-
737
646
  _setSamplerParameters(parameters) {
738
647
  if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
739
648
  parameters = updateSamplerParametersForNPOT(parameters);
740
649
  }
741
-
742
650
  if (isObjectEmpty(parameters)) {
743
651
  return;
744
652
  }
745
-
746
653
  logParameters(parameters);
747
654
  this.gl.bindTexture(this.target, this.handle);
748
-
749
655
  for (const [pname, pvalue] of Object.entries(parameters)) {
750
656
  const param = Number(pname);
751
- let value = pvalue;
752
-
657
+ const value = pvalue;
753
658
  switch (param) {
754
659
  case GL.TEXTURE_MIN_LOD:
755
660
  case GL.TEXTURE_MAX_LOD:
756
661
  this.gl.texParameterf(this.target, param, value);
757
662
  break;
758
-
759
663
  default:
760
664
  this.gl.texParameteri(this.target, param, value);
761
665
  break;
762
666
  }
763
667
  }
764
-
765
668
  this.gl.bindTexture(this.target, null);
766
- return this;
669
+ return;
767
670
  }
768
-
769
671
  _getWebGL1NPOTParameterOverride(pname, value) {
770
672
  const npot = this.device.isWebGL1 && isNPOT(this.width, this.height);
771
-
772
673
  if (npot) {
773
674
  switch (pname) {
774
675
  case GL.TEXTURE_MIN_FILTER:
775
676
  if (value !== GL.LINEAR && value !== GL.NEAREST) {
776
677
  return GL.LINEAR;
777
678
  }
778
-
779
679
  break;
780
-
781
680
  case GL.TEXTURE_WRAP_S:
782
681
  case GL.TEXTURE_WRAP_T:
783
682
  return GL.CLAMP_TO_EDGE;
784
-
785
683
  default:
786
684
  break;
787
685
  }
788
686
  }
789
-
790
687
  return value;
791
688
  }
792
-
793
689
  }
794
-
795
690
  _defineProperty(WEBGLTexture, "FACES", [GL.TEXTURE_CUBE_MAP_POSITIVE_X, GL.TEXTURE_CUBE_MAP_NEGATIVE_X, GL.TEXTURE_CUBE_MAP_POSITIVE_Y, GL.TEXTURE_CUBE_MAP_NEGATIVE_Y, GL.TEXTURE_CUBE_MAP_POSITIVE_Z, GL.TEXTURE_CUBE_MAP_NEGATIVE_Z]);
796
-
797
691
  function getWebGLTextureTarget(props) {
798
692
  switch (props.dimension) {
799
693
  case '2d':
800
694
  return GL.TEXTURE_2D;
801
-
802
695
  case 'cube':
803
696
  return GL.TEXTURE_CUBE_MAP;
804
-
805
697
  case '2d-array':
806
698
  return GL.TEXTURE_2D_ARRAY;
807
-
808
699
  case '3d':
809
700
  return GL.TEXTURE_3D;
810
-
811
701
  case '1d':
812
702
  case 'cube-array':
813
703
  default:
814
704
  throw new Error(props.dimension);
815
705
  }
816
706
  }
817
-
818
707
  function isNPOT(width, height) {
819
708
  if (!width || !height) {
820
709
  return false;
821
710
  }
822
-
823
711
  return !isPowerOfTwo(width) || !isPowerOfTwo(height);
824
712
  }
825
-
826
713
  function logParameters(parameters) {
827
714
  log.log(1, 'texture sampler parameters', parameters)();
828
-
829
- for (const [pname, pvalue] of Object.entries(parameters)) {}
830
715
  }
831
716
  //# sourceMappingURL=webgl-texture.js.map