@luma.gl/webgl 9.0.0-alpha.5 → 9.0.0-alpha.50

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