@luma.gl/webgl 9.0.0-alpha.4 → 9.0.0-alpha.41

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