@luma.gl/webgl 8.6.0-alpha.4 → 9.0.0-alpha.10

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 (783) hide show
  1. package/README.md +3 -67
  2. package/dist/adapter/converters/device-parameters.d.ts +27 -0
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -0
  4. package/dist/adapter/converters/{set-device-parameters.js → device-parameters.js} +50 -6
  5. package/dist/adapter/converters/device-parameters.js.map +1 -0
  6. package/dist/{classes → adapter/converters}/renderbuffer-formats.d.ts +0 -0
  7. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -0
  8. package/dist/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
  9. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
  10. package/dist/adapter/converters/sampler-parameters.d.ts +19 -0
  11. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -0
  12. package/dist/adapter/converters/sampler-parameters.js +227 -0
  13. package/dist/adapter/converters/sampler-parameters.js.map +1 -0
  14. package/dist/adapter/converters/texture-formats.d.ts +93 -0
  15. package/dist/adapter/converters/texture-formats.d.ts.map +1 -0
  16. package/dist/adapter/converters/texture-formats.js +954 -0
  17. package/dist/adapter/converters/texture-formats.js.map +1 -0
  18. package/dist/adapter/converters/vertex-formats.d.ts +4 -0
  19. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -0
  20. package/dist/adapter/converters/vertex-formats.js +35 -0
  21. package/dist/adapter/converters/vertex-formats.js.map +1 -0
  22. package/dist/adapter/device-helpers/device-features.d.ts +3 -6
  23. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  24. package/dist/adapter/device-helpers/device-features.js +39 -50
  25. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  26. package/dist/adapter/device-helpers/device-limits.d.ts +1 -0
  27. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  28. package/dist/adapter/device-helpers/device-limits.js +1 -0
  29. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  30. package/dist/adapter/device-helpers/get-device-info.js +7 -7
  31. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  32. package/dist/adapter/helpers/attribute-utils.d.ts +11 -0
  33. package/dist/adapter/helpers/attribute-utils.d.ts.map +1 -0
  34. package/dist/adapter/helpers/attribute-utils.js +81 -0
  35. package/dist/adapter/helpers/attribute-utils.js.map +1 -0
  36. package/dist/adapter/helpers/get-shader-layout.d.ts +55 -0
  37. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -0
  38. package/dist/adapter/helpers/get-shader-layout.js +330 -0
  39. package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
  40. package/dist/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.d.ts +0 -0
  41. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -0
  42. package/dist/{esm/webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
  43. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  44. package/dist/adapter/helpers/set-uniform.d.ts +4 -0
  45. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -0
  46. package/dist/adapter/helpers/set-uniform.js +115 -0
  47. package/dist/adapter/helpers/set-uniform.js.map +1 -0
  48. package/dist/adapter/helpers/uniforms.d.ts +26 -0
  49. package/dist/adapter/helpers/uniforms.d.ts.map +1 -0
  50. package/dist/adapter/helpers/uniforms.js +99 -0
  51. package/dist/adapter/helpers/uniforms.js.map +1 -0
  52. package/dist/adapter/objects/constants-to-keys.d.ts +5 -0
  53. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -0
  54. package/dist/{esm/webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
  55. package/dist/adapter/objects/constants-to-keys.js.map +1 -0
  56. package/dist/adapter/objects/webgl-renderbuffer.d.ts +40 -0
  57. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -0
  58. package/dist/{esm/classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +38 -72
  59. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
  60. package/dist/{classes → adapter/objects}/webgl-resource.d.ts +15 -14
  61. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -0
  62. package/dist/{classes → adapter/objects}/webgl-resource.js +7 -3
  63. package/dist/adapter/objects/webgl-resource.js.map +1 -0
  64. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +27 -0
  65. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -0
  66. package/dist/adapter/objects/webgl-vertex-array-object.js +84 -0
  67. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  68. package/dist/adapter/resources/webgl-buffer.d.ts +27 -0
  69. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -0
  70. package/dist/adapter/resources/webgl-buffer.js +164 -0
  71. package/dist/adapter/resources/webgl-buffer.js.map +1 -0
  72. package/dist/adapter/resources/webgl-command-buffer.d.ts +25 -0
  73. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -0
  74. package/dist/adapter/resources/webgl-command-buffer.js +65 -0
  75. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
  76. package/dist/adapter/resources/webgl-command-encoder.d.ts +18 -0
  77. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -0
  78. package/dist/adapter/resources/webgl-command-encoder.js +53 -0
  79. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
  80. package/dist/adapter/resources/webgl-external-texture.d.ts +1 -0
  81. package/dist/adapter/resources/webgl-external-texture.d.ts.map +1 -0
  82. package/dist/adapter/resources/webgl-external-texture.js +2 -0
  83. package/dist/{es5/helpers/program-bindings.js.map → adapter/resources/webgl-external-texture.js.map} +1 -1
  84. package/dist/adapter/resources/webgl-framebuffer.d.ts +41 -0
  85. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -0
  86. package/dist/adapter/resources/webgl-framebuffer.js +267 -0
  87. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
  88. package/dist/adapter/resources/webgl-render-pass.d.ts +11 -0
  89. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -0
  90. package/dist/adapter/resources/webgl-render-pass.js +21 -0
  91. package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
  92. package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -0
  93. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -0
  94. package/dist/adapter/resources/webgl-render-pipeline.js +428 -0
  95. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
  96. package/dist/adapter/resources/webgl-sampler.d.ts +20 -0
  97. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -0
  98. package/dist/adapter/resources/webgl-sampler.js +50 -0
  99. package/dist/adapter/resources/webgl-sampler.js.map +1 -0
  100. package/dist/adapter/{webgl-shader.d.ts → resources/webgl-shader.d.ts} +3 -6
  101. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -0
  102. package/dist/{esm/adapter → adapter/resources}/webgl-shader.js +17 -23
  103. package/dist/adapter/resources/webgl-shader.js.map +1 -0
  104. package/dist/adapter/resources/webgl-texture.d.ts +193 -0
  105. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -0
  106. package/dist/{classes/texture.js → adapter/resources/webgl-texture.js} +280 -232
  107. package/dist/adapter/resources/webgl-texture.js.map +1 -0
  108. package/dist/adapter/webgl-canvas-context.d.ts +36 -0
  109. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -0
  110. package/dist/adapter/webgl-canvas-context.js +54 -0
  111. package/dist/adapter/webgl-canvas-context.js.map +1 -0
  112. package/dist/adapter/webgl-device.d.ts +63 -76
  113. package/dist/adapter/webgl-device.d.ts.map +1 -1
  114. package/dist/adapter/webgl-device.js +244 -115
  115. package/dist/adapter/webgl-device.js.map +1 -1
  116. package/dist/classic/accessor.d.ts +32 -0
  117. package/dist/classic/accessor.d.ts.map +1 -0
  118. package/dist/{classes → classic}/accessor.js +33 -1
  119. package/dist/classic/accessor.js.map +1 -0
  120. package/dist/{classes/webgl-buffer.d.ts → classic/buffer.d.ts} +28 -33
  121. package/dist/classic/buffer.d.ts.map +1 -0
  122. package/dist/{esm/classes/webgl-buffer.js → classic/buffer.js} +67 -57
  123. package/dist/classic/buffer.js.map +1 -0
  124. package/dist/{webgl-utils → classic}/typed-array-utils.d.ts +3 -2
  125. package/dist/classic/typed-array-utils.d.ts.map +1 -0
  126. package/dist/{esm/webgl-utils → classic}/typed-array-utils.js +0 -0
  127. package/dist/classic/typed-array-utils.js.map +1 -0
  128. package/dist/context/context/context-state.d.ts.map +1 -1
  129. package/dist/context/context/context-state.js +1 -1
  130. package/dist/context/context/context-state.js.map +1 -1
  131. package/dist/context/context/{create-context.d.ts → create-browser-context.d.ts} +2 -1
  132. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  133. package/dist/{esm/context/context/create-context.js → context/context/create-browser-context.js} +27 -3
  134. package/dist/context/context/create-browser-context.js.map +1 -0
  135. package/dist/context/context/create-headless-context.d.ts +9 -0
  136. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  137. package/dist/context/context/create-headless-context.js +43 -0
  138. package/dist/context/context/create-headless-context.js.map +1 -0
  139. package/dist/context/context/device-pixels.d.ts +1 -1
  140. package/dist/context/context/device-pixels.d.ts.map +1 -1
  141. package/dist/context/context/device-pixels.js +13 -8
  142. package/dist/context/context/device-pixels.js.map +1 -1
  143. package/dist/context/debug/spector.d.ts +18 -0
  144. package/dist/context/debug/spector.d.ts.map +1 -0
  145. package/dist/context/debug/spector.js +76 -0
  146. package/dist/context/debug/spector.js.map +1 -0
  147. package/dist/context/debug/webgl-developer-tools.d.ts +19 -0
  148. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -0
  149. package/dist/context/debug/webgl-developer-tools.js +121 -0
  150. package/dist/context/debug/webgl-developer-tools.js.map +1 -0
  151. package/dist/context/parameters/unified-parameter-api.d.ts +9 -7
  152. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  153. package/dist/context/parameters/unified-parameter-api.js +9 -8
  154. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  155. package/dist/context/parameters/webgl-parameter-tables.d.ts +40 -36
  156. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  157. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  158. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  159. package/dist/context/polyfill/polyfill-context.js +3 -3
  160. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  161. package/dist/context/polyfill/polyfill-table.d.ts +1 -1
  162. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  163. package/dist/context/polyfill/polyfill-table.js +1 -1
  164. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  165. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  166. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  167. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  168. package/dist/context/state-tracker/track-context-state.js +26 -12
  169. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  170. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  171. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  172. package/dist/context/state-tracker/with-parameters.js +6 -2
  173. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  174. package/dist/es5/adapter/converters/{set-device-parameters.js → device-parameters.js} +53 -6
  175. package/dist/es5/adapter/converters/device-parameters.js.map +1 -0
  176. package/dist/es5/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
  177. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -0
  178. package/dist/es5/adapter/converters/sampler-parameters.js +245 -0
  179. package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -0
  180. package/dist/es5/adapter/converters/texture-formats.js +1031 -0
  181. package/dist/es5/adapter/converters/texture-formats.js.map +1 -0
  182. package/dist/es5/adapter/converters/vertex-formats.js +45 -0
  183. package/dist/es5/adapter/converters/vertex-formats.js.map +1 -0
  184. package/dist/es5/adapter/device-helpers/device-features.js +61 -58
  185. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
  186. package/dist/es5/adapter/device-helpers/device-limits.js +1 -1
  187. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
  188. package/dist/es5/adapter/device-helpers/get-device-info.js +7 -7
  189. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
  190. package/dist/es5/adapter/helpers/attribute-utils.js +91 -0
  191. package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -0
  192. package/dist/es5/{helpers/get-program-bindings.js → adapter/helpers/get-shader-layout.js} +211 -94
  193. package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -0
  194. package/dist/es5/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
  195. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  196. package/dist/es5/adapter/helpers/set-uniform.js +125 -0
  197. package/dist/es5/adapter/helpers/set-uniform.js.map +1 -0
  198. package/dist/es5/adapter/helpers/uniforms.js +112 -0
  199. package/dist/es5/adapter/helpers/uniforms.js.map +1 -0
  200. package/dist/es5/{webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
  201. package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -0
  202. package/dist/es5/{classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +48 -98
  203. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -0
  204. package/dist/es5/{classes → adapter/objects}/webgl-resource.js +8 -3
  205. package/dist/es5/adapter/objects/webgl-resource.js.map +1 -0
  206. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +137 -0
  207. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  208. package/dist/es5/adapter/resources/webgl-buffer.js +243 -0
  209. package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -0
  210. package/dist/es5/adapter/resources/webgl-command-buffer.js +96 -0
  211. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -0
  212. package/dist/es5/adapter/resources/webgl-command-encoder.js +98 -0
  213. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -0
  214. package/dist/es5/adapter/resources/webgl-external-texture.js +2 -0
  215. package/dist/{esm/helpers/program-bindings.js.map → es5/adapter/resources/webgl-external-texture.js.map} +1 -1
  216. package/dist/es5/adapter/resources/webgl-framebuffer.js +346 -0
  217. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -0
  218. package/dist/es5/{classes/texture-2d.js → adapter/resources/webgl-render-pass.js} +26 -45
  219. package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -0
  220. package/dist/es5/adapter/resources/webgl-render-pipeline.js +530 -0
  221. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -0
  222. package/dist/es5/adapter/resources/webgl-sampler.js +96 -0
  223. package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -0
  224. package/dist/es5/adapter/{webgl-shader.js → resources/webgl-shader.js} +16 -21
  225. package/dist/es5/adapter/resources/webgl-shader.js.map +1 -0
  226. package/dist/es5/{classes/texture.js → adapter/resources/webgl-texture.js} +374 -298
  227. package/dist/es5/adapter/resources/webgl-texture.js.map +1 -0
  228. package/dist/es5/adapter/webgl-canvas-context.js +97 -0
  229. package/dist/es5/adapter/webgl-canvas-context.js.map +1 -0
  230. package/dist/es5/adapter/webgl-device.js +316 -132
  231. package/dist/es5/adapter/webgl-device.js.map +1 -1
  232. package/dist/es5/{classes → classic}/accessor.js +25 -1
  233. package/dist/es5/classic/accessor.js.map +1 -0
  234. package/dist/es5/{classes/webgl-buffer.js → classic/buffer.js} +88 -72
  235. package/dist/es5/classic/buffer.js.map +1 -0
  236. package/dist/es5/{webgl-utils → classic}/typed-array-utils.js +0 -0
  237. package/dist/es5/classic/typed-array-utils.js.map +1 -0
  238. package/dist/es5/context/context/context-state.js +1 -1
  239. package/dist/es5/context/context/context-state.js.map +1 -1
  240. package/dist/es5/context/context/{create-context.js → create-browser-context.js} +29 -3
  241. package/dist/es5/context/context/create-browser-context.js.map +1 -0
  242. package/dist/es5/context/context/create-headless-context.js +60 -0
  243. package/dist/es5/context/context/create-headless-context.js.map +1 -0
  244. package/dist/es5/context/context/device-pixels.js +14 -8
  245. package/dist/es5/context/context/device-pixels.js.map +1 -1
  246. package/dist/es5/context/debug/spector.js +133 -0
  247. package/dist/es5/context/debug/spector.js.map +1 -0
  248. package/dist/es5/context/debug/webgl-developer-tools.js +198 -0
  249. package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -0
  250. package/dist/es5/context/parameters/unified-parameter-api.js +15 -9
  251. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
  252. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
  253. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
  254. package/dist/es5/context/polyfill/polyfill-context.js +3 -3
  255. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
  256. package/dist/es5/context/polyfill/polyfill-table.js +1 -1
  257. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
  258. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
  259. package/dist/es5/context/state-tracker/track-context-state.js +39 -24
  260. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
  261. package/dist/es5/context/state-tracker/with-parameters.js +8 -2
  262. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
  263. package/dist/es5/index.js +72 -300
  264. package/dist/es5/index.js.map +1 -1
  265. package/dist/es5/init.js +1 -41
  266. package/dist/es5/init.js.map +1 -1
  267. package/dist/es5/{context/parameters/webgl-parameters.js → types/webgl.js} +1 -1
  268. package/dist/es5/types/webgl.js.map +1 -0
  269. package/dist/esm/adapter/converters/{set-device-parameters.js → device-parameters.js} +50 -6
  270. package/dist/esm/adapter/converters/device-parameters.js.map +1 -0
  271. package/dist/esm/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
  272. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -0
  273. package/dist/esm/adapter/converters/sampler-parameters.js +227 -0
  274. package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -0
  275. package/dist/esm/adapter/converters/texture-formats.js +954 -0
  276. package/dist/esm/adapter/converters/texture-formats.js.map +1 -0
  277. package/dist/esm/adapter/converters/vertex-formats.js +35 -0
  278. package/dist/esm/adapter/converters/vertex-formats.js.map +1 -0
  279. package/dist/esm/adapter/device-helpers/device-features.js +39 -50
  280. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
  281. package/dist/esm/adapter/device-helpers/device-limits.js +1 -0
  282. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
  283. package/dist/esm/adapter/device-helpers/get-device-info.js +7 -7
  284. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
  285. package/dist/esm/adapter/helpers/attribute-utils.js +81 -0
  286. package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -0
  287. package/dist/esm/adapter/helpers/get-shader-layout.js +330 -0
  288. package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -0
  289. package/dist/{webgl-utils → esm/adapter/helpers}/parse-shader-compiler-log.js +0 -0
  290. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  291. package/dist/esm/adapter/helpers/set-uniform.js +115 -0
  292. package/dist/esm/adapter/helpers/set-uniform.js.map +1 -0
  293. package/dist/esm/adapter/helpers/uniforms.js +99 -0
  294. package/dist/esm/adapter/helpers/uniforms.js.map +1 -0
  295. package/dist/{webgl-utils → esm/adapter/objects}/constants-to-keys.js +1 -0
  296. package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -0
  297. package/dist/{classes/renderbuffer.js → esm/adapter/objects/webgl-renderbuffer.js} +38 -72
  298. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -0
  299. package/dist/esm/{classes → adapter/objects}/webgl-resource.js +7 -3
  300. package/dist/esm/adapter/objects/webgl-resource.js.map +1 -0
  301. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +84 -0
  302. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  303. package/dist/esm/adapter/resources/webgl-buffer.js +164 -0
  304. package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -0
  305. package/dist/esm/adapter/resources/webgl-command-buffer.js +65 -0
  306. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -0
  307. package/dist/esm/adapter/resources/webgl-command-encoder.js +53 -0
  308. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -0
  309. package/dist/esm/adapter/resources/webgl-external-texture.js +2 -0
  310. package/dist/{helpers/program-bindings.js.map → esm/adapter/resources/webgl-external-texture.js.map} +1 -1
  311. package/dist/esm/adapter/resources/webgl-framebuffer.js +267 -0
  312. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -0
  313. package/dist/esm/adapter/resources/webgl-render-pass.js +21 -0
  314. package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -0
  315. package/dist/esm/adapter/resources/webgl-render-pipeline.js +428 -0
  316. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -0
  317. package/dist/esm/adapter/resources/webgl-sampler.js +50 -0
  318. package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -0
  319. package/dist/{adapter → esm/adapter/resources}/webgl-shader.js +17 -23
  320. package/dist/esm/adapter/resources/webgl-shader.js.map +1 -0
  321. package/dist/esm/{classes/texture.js → adapter/resources/webgl-texture.js} +280 -232
  322. package/dist/esm/adapter/resources/webgl-texture.js.map +1 -0
  323. package/dist/esm/adapter/webgl-canvas-context.js +54 -0
  324. package/dist/esm/adapter/webgl-canvas-context.js.map +1 -0
  325. package/dist/esm/adapter/webgl-device.js +244 -115
  326. package/dist/esm/adapter/webgl-device.js.map +1 -1
  327. package/dist/esm/{classes → classic}/accessor.js +33 -1
  328. package/dist/esm/classic/accessor.js.map +1 -0
  329. package/dist/{classes/webgl-buffer.js → esm/classic/buffer.js} +67 -57
  330. package/dist/esm/classic/buffer.js.map +1 -0
  331. package/dist/{webgl-utils → esm/classic}/typed-array-utils.js +0 -0
  332. package/dist/esm/classic/typed-array-utils.js.map +1 -0
  333. package/dist/esm/context/context/context-state.js +1 -1
  334. package/dist/esm/context/context/context-state.js.map +1 -1
  335. package/dist/{context/context/create-context.js → esm/context/context/create-browser-context.js} +27 -3
  336. package/dist/esm/context/context/create-browser-context.js.map +1 -0
  337. package/dist/esm/context/context/create-headless-context.js +43 -0
  338. package/dist/esm/context/context/create-headless-context.js.map +1 -0
  339. package/dist/esm/context/context/device-pixels.js +13 -8
  340. package/dist/esm/context/context/device-pixels.js.map +1 -1
  341. package/dist/esm/context/debug/spector.js +76 -0
  342. package/dist/esm/context/debug/spector.js.map +1 -0
  343. package/dist/esm/context/debug/webgl-developer-tools.js +121 -0
  344. package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -0
  345. package/dist/esm/context/parameters/unified-parameter-api.js +9 -8
  346. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
  347. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
  348. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
  349. package/dist/esm/context/polyfill/polyfill-context.js +3 -3
  350. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
  351. package/dist/esm/context/polyfill/polyfill-table.js +1 -1
  352. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
  353. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
  354. package/dist/esm/context/state-tracker/track-context-state.js +26 -12
  355. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
  356. package/dist/esm/context/state-tracker/with-parameters.js +6 -2
  357. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
  358. package/dist/esm/index.js +20 -31
  359. package/dist/esm/index.js.map +1 -1
  360. package/dist/esm/init.js +2 -31
  361. package/dist/esm/init.js.map +1 -1
  362. package/dist/esm/types/webgl.js +2 -0
  363. package/dist/esm/types/webgl.js.map +1 -0
  364. package/dist/index.d.ts +25 -46
  365. package/dist/index.d.ts.map +1 -1
  366. package/dist/index.js +20 -31
  367. package/dist/index.js.map +1 -1
  368. package/dist/init.d.ts +1 -4
  369. package/dist/init.d.ts.map +1 -1
  370. package/dist/init.js +2 -31
  371. package/dist/init.js.map +1 -1
  372. package/dist/types/webgl.d.ts +145 -0
  373. package/dist/types/webgl.d.ts.map +1 -0
  374. package/dist/types/webgl.js +2 -0
  375. package/dist/types/webgl.js.map +1 -0
  376. package/package.json +5 -5
  377. package/src/adapter/converters/{set-device-parameters.ts → device-parameters.ts} +81 -12
  378. package/src/{classes → adapter/converters}/renderbuffer-formats.ts +1 -1
  379. package/src/adapter/converters/sampler-parameters.ts +184 -0
  380. package/src/adapter/converters/texture-formats.ts +633 -0
  381. package/src/adapter/converters/vertex-formats.ts +22 -0
  382. package/src/adapter/device-helpers/device-features.ts +55 -124
  383. package/src/adapter/device-helpers/device-limits.ts +6 -3
  384. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  385. package/src/adapter/helpers/attribute-utils.ts +61 -0
  386. package/src/adapter/helpers/get-shader-layout.ts +407 -0
  387. package/src/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.ts +0 -0
  388. package/src/adapter/helpers/set-uniform.ts +87 -0
  389. package/src/adapter/helpers/uniforms.ts +121 -0
  390. package/src/{webgl-utils → adapter/objects}/constants-to-keys.ts +6 -3
  391. package/src/adapter/objects/webgl-renderbuffer.ts +104 -0
  392. package/src/{classes → adapter/objects}/webgl-resource.ts +23 -17
  393. package/src/adapter/objects/webgl-vertex-array-object.ts +111 -0
  394. package/src/adapter/resources/webgl-buffer.ts +219 -0
  395. package/src/adapter/resources/webgl-command-buffer.ts +94 -0
  396. package/src/adapter/resources/webgl-command-encoder.ts +58 -0
  397. package/src/adapter/resources/webgl-external-texture.ts +92 -0
  398. package/src/adapter/resources/webgl-framebuffer.ts +282 -0
  399. package/src/adapter/resources/webgl-render-pass.ts +24 -0
  400. package/src/adapter/resources/webgl-render-pipeline.ts +425 -0
  401. package/src/adapter/resources/webgl-sampler.ts +56 -0
  402. package/src/adapter/{webgl-shader.ts → resources/webgl-shader.ts} +19 -24
  403. package/src/adapter/resources/webgl-texture.ts +1036 -0
  404. package/src/adapter/webgl-canvas-context.ts +74 -0
  405. package/src/adapter/webgl-device.ts +297 -289
  406. package/{dist/esm/classes/accessor.ts.disabled → src/classic/accessor.ts} +38 -37
  407. package/src/{classes/webgl-buffer.ts → classic/buffer.ts} +76 -84
  408. package/src/{webgl-utils → classic}/typed-array-utils.ts +5 -1
  409. package/src/context/context/context-state.ts +4 -2
  410. package/src/context/context/{create-context.ts → create-browser-context.ts} +41 -6
  411. package/src/context/context/create-headless-context.ts +48 -0
  412. package/src/context/context/device-pixels.ts +24 -13
  413. package/src/context/debug/spector.ts +92 -0
  414. package/src/context/debug/webgl-developer-tools.ts +162 -0
  415. package/src/context/parameters/unified-parameter-api.ts +21 -13
  416. package/src/context/parameters/webgl-parameter-tables.ts +38 -36
  417. package/src/context/polyfill/get-parameter-polyfill.ts +1 -1
  418. package/src/context/polyfill/polyfill-context.ts +4 -5
  419. package/src/context/polyfill/polyfill-table.ts +1 -1
  420. package/src/context/state-tracker/deep-array-equal.ts +1 -1
  421. package/src/context/state-tracker/track-context-state.ts +34 -26
  422. package/src/context/state-tracker/with-parameters.ts +7 -2
  423. package/src/index.ts +42 -102
  424. package/src/init.ts +2 -46
  425. package/src/types/webgl.ts +284 -0
  426. package/dist/_deprecated/context-api.d.ts +0 -85
  427. package/dist/_deprecated/context-api.d.ts.map +0 -1
  428. package/dist/_deprecated/context-api.js +0 -70
  429. package/dist/_deprecated/context-api.js.map +0 -1
  430. package/dist/_deprecated/features.d.ts +0 -27
  431. package/dist/_deprecated/features.d.ts.map +0 -1
  432. package/dist/_deprecated/features.js +0 -111
  433. package/dist/_deprecated/features.js.map +0 -1
  434. package/dist/adapter/converters/set-device-parameters.d.ts +0 -5
  435. package/dist/adapter/converters/set-device-parameters.d.ts.map +0 -1
  436. package/dist/adapter/converters/set-device-parameters.js.map +0 -1
  437. package/dist/adapter/converters/webgpu-texture-formats.d.ts +0 -281
  438. package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +0 -1
  439. package/dist/adapter/converters/webgpu-texture-formats.js +0 -285
  440. package/dist/adapter/converters/webgpu-texture-formats.js.map +0 -1
  441. package/dist/adapter/webgl-shader.d.ts.map +0 -1
  442. package/dist/adapter/webgl-shader.js.map +0 -1
  443. package/dist/classes/accessor.d.ts +0 -28
  444. package/dist/classes/accessor.d.ts.map +0 -1
  445. package/dist/classes/accessor.js.map +0 -1
  446. package/dist/classes/accessor.ts.disabled +0 -159
  447. package/dist/classes/clear.d.ts +0 -17
  448. package/dist/classes/clear.d.ts.map +0 -1
  449. package/dist/classes/clear.js +0 -105
  450. package/dist/classes/clear.js.map +0 -1
  451. package/dist/classes/copy-and-blit.d.ts +0 -86
  452. package/dist/classes/copy-and-blit.d.ts.map +0 -1
  453. package/dist/classes/copy-and-blit.js +0 -338
  454. package/dist/classes/copy-and-blit.js.map +0 -1
  455. package/dist/classes/framebuffer.d.ts +0 -139
  456. package/dist/classes/framebuffer.d.ts.map +0 -1
  457. package/dist/classes/framebuffer.js +0 -656
  458. package/dist/classes/framebuffer.js.map +0 -1
  459. package/dist/classes/program-configuration.d.ts +0 -24
  460. package/dist/classes/program-configuration.d.ts.map +0 -1
  461. package/dist/classes/program-configuration.js +0 -73
  462. package/dist/classes/program-configuration.js.map +0 -1
  463. package/dist/classes/program.d.ts +0 -66
  464. package/dist/classes/program.d.ts.map +0 -1
  465. package/dist/classes/program.js +0 -379
  466. package/dist/classes/program.js.map +0 -1
  467. package/dist/classes/query.d.ts +0 -27
  468. package/dist/classes/query.d.ts.map +0 -1
  469. package/dist/classes/query.js +0 -145
  470. package/dist/classes/query.js.map +0 -1
  471. package/dist/classes/renderbuffer-formats.d.ts.map +0 -1
  472. package/dist/classes/renderbuffer-formats.js.map +0 -1
  473. package/dist/classes/renderbuffer.d.ts +0 -60
  474. package/dist/classes/renderbuffer.d.ts.map +0 -1
  475. package/dist/classes/renderbuffer.js.map +0 -1
  476. package/dist/classes/shader.d.ts +0 -42
  477. package/dist/classes/shader.d.ts.map +0 -1
  478. package/dist/classes/shader.js +0 -118
  479. package/dist/classes/shader.js.map +0 -1
  480. package/dist/classes/texture-2d.d.ts +0 -9
  481. package/dist/classes/texture-2d.d.ts.map +0 -1
  482. package/dist/classes/texture-2d.js +0 -36
  483. package/dist/classes/texture-2d.js.map +0 -1
  484. package/dist/classes/texture-3d.d.ts +0 -29
  485. package/dist/classes/texture-3d.d.ts.map +0 -1
  486. package/dist/classes/texture-3d.js +0 -76
  487. package/dist/classes/texture-3d.js.map +0 -1
  488. package/dist/classes/texture-cube.d.ts +0 -28
  489. package/dist/classes/texture-cube.d.ts.map +0 -1
  490. package/dist/classes/texture-cube.js +0 -130
  491. package/dist/classes/texture-cube.js.map +0 -1
  492. package/dist/classes/texture-formats.d.ts +0 -37
  493. package/dist/classes/texture-formats.d.ts.map +0 -1
  494. package/dist/classes/texture-formats.js +0 -98
  495. package/dist/classes/texture-formats.js.map +0 -1
  496. package/dist/classes/texture.d.ts +0 -123
  497. package/dist/classes/texture.d.ts.map +0 -1
  498. package/dist/classes/texture.js.map +0 -1
  499. package/dist/classes/transform-feedback.d.ts +0 -33
  500. package/dist/classes/transform-feedback.d.ts.map +0 -1
  501. package/dist/classes/transform-feedback.js +0 -198
  502. package/dist/classes/transform-feedback.js.map +0 -1
  503. package/dist/classes/uniform-buffer-layout.d.ts +0 -17
  504. package/dist/classes/uniform-buffer-layout.d.ts.map +0 -1
  505. package/dist/classes/uniform-buffer-layout.js +0 -104
  506. package/dist/classes/uniform-buffer-layout.js.map +0 -1
  507. package/dist/classes/uniforms.d.ts +0 -37
  508. package/dist/classes/uniforms.d.ts.map +0 -1
  509. package/dist/classes/uniforms.js +0 -250
  510. package/dist/classes/uniforms.js.map +0 -1
  511. package/dist/classes/vertex-array-object.d.ts +0 -76
  512. package/dist/classes/vertex-array-object.d.ts.map +0 -1
  513. package/dist/classes/vertex-array-object.js +0 -261
  514. package/dist/classes/vertex-array-object.js.map +0 -1
  515. package/dist/classes/vertex-array.d.ts +0 -75
  516. package/dist/classes/vertex-array.d.ts.map +0 -1
  517. package/dist/classes/vertex-array.js +0 -408
  518. package/dist/classes/vertex-array.js.map +0 -1
  519. package/dist/classes/webgl-buffer.d.ts.map +0 -1
  520. package/dist/classes/webgl-buffer.js.map +0 -1
  521. package/dist/classes/webgl-resource.d.ts.map +0 -1
  522. package/dist/classes/webgl-resource.js.map +0 -1
  523. package/dist/context/context/create-context.d.ts.map +0 -1
  524. package/dist/context/context/create-context.js.map +0 -1
  525. package/dist/context/context/get-canvas.d.ts +0 -13
  526. package/dist/context/context/get-canvas.d.ts.map +0 -1
  527. package/dist/context/context/get-canvas.js +0 -31
  528. package/dist/context/context/get-canvas.js.map +0 -1
  529. package/dist/context/context/resize-context.d.ts +0 -20
  530. package/dist/context/context/resize-context.d.ts.map +0 -1
  531. package/dist/context/context/resize-context.js +0 -15
  532. package/dist/context/context/resize-context.js.map +0 -1
  533. package/dist/context/parameters/webgl-parameters.d.ts +0 -144
  534. package/dist/context/parameters/webgl-parameters.d.ts.map +0 -1
  535. package/dist/context/parameters/webgl-parameters.js +0 -2
  536. package/dist/context/parameters/webgl-parameters.js.map +0 -1
  537. package/dist/debug/debug-program-configuration.d.ts +0 -2
  538. package/dist/debug/debug-program-configuration.d.ts.map +0 -1
  539. package/dist/debug/debug-program-configuration.js +0 -40
  540. package/dist/debug/debug-program-configuration.js.map +0 -1
  541. package/dist/debug/debug-uniforms.d.ts +0 -12
  542. package/dist/debug/debug-uniforms.d.ts.map +0 -1
  543. package/dist/debug/debug-uniforms.js +0 -108
  544. package/dist/debug/debug-uniforms.js.map +0 -1
  545. package/dist/debug/debug-vertex-array.d.ts +0 -5
  546. package/dist/debug/debug-vertex-array.d.ts.map +0 -1
  547. package/dist/debug/debug-vertex-array.js +0 -118
  548. package/dist/debug/debug-vertex-array.js.map +0 -1
  549. package/dist/es5/_deprecated/context-api.js +0 -110
  550. package/dist/es5/_deprecated/context-api.js.map +0 -1
  551. package/dist/es5/_deprecated/features.js +0 -118
  552. package/dist/es5/_deprecated/features.js.map +0 -1
  553. package/dist/es5/adapter/converters/set-device-parameters.js.map +0 -1
  554. package/dist/es5/adapter/converters/webgpu-texture-formats.js +0 -296
  555. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +0 -1
  556. package/dist/es5/adapter/webgl-shader.js.map +0 -1
  557. package/dist/es5/classes/accessor.d.ts +0 -28
  558. package/dist/es5/classes/accessor.js.map +0 -1
  559. package/dist/es5/classes/accessor.ts.disabled +0 -159
  560. package/dist/es5/classes/clear.js +0 -135
  561. package/dist/es5/classes/clear.js.map +0 -1
  562. package/dist/es5/classes/copy-and-blit.js +0 -382
  563. package/dist/es5/classes/copy-and-blit.js.map +0 -1
  564. package/dist/es5/classes/framebuffer.js +0 -807
  565. package/dist/es5/classes/framebuffer.js.map +0 -1
  566. package/dist/es5/classes/program-configuration.js +0 -119
  567. package/dist/es5/classes/program-configuration.js.map +0 -1
  568. package/dist/es5/classes/program.js +0 -471
  569. package/dist/es5/classes/program.js.map +0 -1
  570. package/dist/es5/classes/query.js +0 -222
  571. package/dist/es5/classes/query.js.map +0 -1
  572. package/dist/es5/classes/renderbuffer-formats.js.map +0 -1
  573. package/dist/es5/classes/renderbuffer.js.map +0 -1
  574. package/dist/es5/classes/shader.js +0 -195
  575. package/dist/es5/classes/shader.js.map +0 -1
  576. package/dist/es5/classes/texture-2d.js.map +0 -1
  577. package/dist/es5/classes/texture-3d.js +0 -142
  578. package/dist/es5/classes/texture-3d.js.map +0 -1
  579. package/dist/es5/classes/texture-cube.js +0 -202
  580. package/dist/es5/classes/texture-cube.js.map +0 -1
  581. package/dist/es5/classes/texture-formats.js +0 -87
  582. package/dist/es5/classes/texture-formats.js.map +0 -1
  583. package/dist/es5/classes/texture.js.map +0 -1
  584. package/dist/es5/classes/transform-feedback.js +0 -267
  585. package/dist/es5/classes/transform-feedback.js.map +0 -1
  586. package/dist/es5/classes/uniform-buffer-layout.js +0 -130
  587. package/dist/es5/classes/uniform-buffer-layout.js.map +0 -1
  588. package/dist/es5/classes/uniforms.js +0 -232
  589. package/dist/es5/classes/uniforms.js.map +0 -1
  590. package/dist/es5/classes/vertex-array-object.js +0 -337
  591. package/dist/es5/classes/vertex-array-object.js.map +0 -1
  592. package/dist/es5/classes/vertex-array.js +0 -465
  593. package/dist/es5/classes/vertex-array.js.map +0 -1
  594. package/dist/es5/classes/webgl-buffer.js.map +0 -1
  595. package/dist/es5/classes/webgl-resource.js.map +0 -1
  596. package/dist/es5/context/context/create-context.js.map +0 -1
  597. package/dist/es5/context/context/get-canvas.js +0 -40
  598. package/dist/es5/context/context/get-canvas.js.map +0 -1
  599. package/dist/es5/context/context/resize-context.js +0 -23
  600. package/dist/es5/context/context/resize-context.js.map +0 -1
  601. package/dist/es5/context/parameters/webgl-parameters.js.map +0 -1
  602. package/dist/es5/debug/debug-program-configuration.js +0 -76
  603. package/dist/es5/debug/debug-program-configuration.js.map +0 -1
  604. package/dist/es5/debug/debug-uniforms.js +0 -156
  605. package/dist/es5/debug/debug-uniforms.js.map +0 -1
  606. package/dist/es5/debug/debug-vertex-array.js +0 -126
  607. package/dist/es5/debug/debug-vertex-array.js.map +0 -1
  608. package/dist/es5/helpers/get-program-bindings.js.map +0 -1
  609. package/dist/es5/helpers/program-bindings.js +0 -2
  610. package/dist/es5/types/accessor.d.ts +0 -29
  611. package/dist/es5/webgl-utils/attribute-utils.js +0 -186
  612. package/dist/es5/webgl-utils/attribute-utils.js.map +0 -1
  613. package/dist/es5/webgl-utils/constants-to-keys.js.map +0 -1
  614. package/dist/es5/webgl-utils/format-utils.js +0 -58
  615. package/dist/es5/webgl-utils/format-utils.js.map +0 -1
  616. package/dist/es5/webgl-utils/get-error.js +0 -49
  617. package/dist/es5/webgl-utils/get-error.js.map +0 -1
  618. package/dist/es5/webgl-utils/index.js +0 -74
  619. package/dist/es5/webgl-utils/index.js.map +0 -1
  620. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  621. package/dist/es5/webgl-utils/request-animation-frame.js +0 -16
  622. package/dist/es5/webgl-utils/request-animation-frame.js.map +0 -1
  623. package/dist/es5/webgl-utils/texture-utils.js +0 -61
  624. package/dist/es5/webgl-utils/texture-utils.js.map +0 -1
  625. package/dist/es5/webgl-utils/typed-array-utils.js.map +0 -1
  626. package/dist/esm/_deprecated/context-api.js +0 -70
  627. package/dist/esm/_deprecated/context-api.js.map +0 -1
  628. package/dist/esm/_deprecated/features.js +0 -111
  629. package/dist/esm/_deprecated/features.js.map +0 -1
  630. package/dist/esm/adapter/converters/set-device-parameters.js.map +0 -1
  631. package/dist/esm/adapter/converters/webgpu-texture-formats.js +0 -285
  632. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +0 -1
  633. package/dist/esm/adapter/webgl-shader.js.map +0 -1
  634. package/dist/esm/classes/accessor.d.ts +0 -28
  635. package/dist/esm/classes/accessor.js.map +0 -1
  636. package/dist/esm/classes/clear.js +0 -105
  637. package/dist/esm/classes/clear.js.map +0 -1
  638. package/dist/esm/classes/copy-and-blit.js +0 -338
  639. package/dist/esm/classes/copy-and-blit.js.map +0 -1
  640. package/dist/esm/classes/framebuffer.js +0 -656
  641. package/dist/esm/classes/framebuffer.js.map +0 -1
  642. package/dist/esm/classes/program-configuration.js +0 -73
  643. package/dist/esm/classes/program-configuration.js.map +0 -1
  644. package/dist/esm/classes/program.js +0 -379
  645. package/dist/esm/classes/program.js.map +0 -1
  646. package/dist/esm/classes/query.js +0 -145
  647. package/dist/esm/classes/query.js.map +0 -1
  648. package/dist/esm/classes/renderbuffer-formats.js.map +0 -1
  649. package/dist/esm/classes/renderbuffer.js.map +0 -1
  650. package/dist/esm/classes/shader.js +0 -118
  651. package/dist/esm/classes/shader.js.map +0 -1
  652. package/dist/esm/classes/texture-2d.js +0 -36
  653. package/dist/esm/classes/texture-2d.js.map +0 -1
  654. package/dist/esm/classes/texture-3d.js +0 -76
  655. package/dist/esm/classes/texture-3d.js.map +0 -1
  656. package/dist/esm/classes/texture-cube.js +0 -130
  657. package/dist/esm/classes/texture-cube.js.map +0 -1
  658. package/dist/esm/classes/texture-formats.js +0 -98
  659. package/dist/esm/classes/texture-formats.js.map +0 -1
  660. package/dist/esm/classes/texture.js.map +0 -1
  661. package/dist/esm/classes/transform-feedback.js +0 -198
  662. package/dist/esm/classes/transform-feedback.js.map +0 -1
  663. package/dist/esm/classes/uniform-buffer-layout.js +0 -104
  664. package/dist/esm/classes/uniform-buffer-layout.js.map +0 -1
  665. package/dist/esm/classes/uniforms.js +0 -250
  666. package/dist/esm/classes/uniforms.js.map +0 -1
  667. package/dist/esm/classes/vertex-array-object.js +0 -261
  668. package/dist/esm/classes/vertex-array-object.js.map +0 -1
  669. package/dist/esm/classes/vertex-array.js +0 -408
  670. package/dist/esm/classes/vertex-array.js.map +0 -1
  671. package/dist/esm/classes/webgl-buffer.js.map +0 -1
  672. package/dist/esm/classes/webgl-resource.js.map +0 -1
  673. package/dist/esm/context/context/create-context.js.map +0 -1
  674. package/dist/esm/context/context/get-canvas.js +0 -31
  675. package/dist/esm/context/context/get-canvas.js.map +0 -1
  676. package/dist/esm/context/context/resize-context.js +0 -15
  677. package/dist/esm/context/context/resize-context.js.map +0 -1
  678. package/dist/esm/context/parameters/webgl-parameters.js +0 -2
  679. package/dist/esm/context/parameters/webgl-parameters.js.map +0 -1
  680. package/dist/esm/debug/debug-program-configuration.js +0 -40
  681. package/dist/esm/debug/debug-program-configuration.js.map +0 -1
  682. package/dist/esm/debug/debug-uniforms.js +0 -108
  683. package/dist/esm/debug/debug-uniforms.js.map +0 -1
  684. package/dist/esm/debug/debug-vertex-array.js +0 -118
  685. package/dist/esm/debug/debug-vertex-array.js.map +0 -1
  686. package/dist/esm/helpers/get-program-bindings.js +0 -228
  687. package/dist/esm/helpers/get-program-bindings.js.map +0 -1
  688. package/dist/esm/helpers/program-bindings.js +0 -2
  689. package/dist/esm/types/accessor.d.ts +0 -29
  690. package/dist/esm/webgl-utils/attribute-utils.js +0 -182
  691. package/dist/esm/webgl-utils/attribute-utils.js.map +0 -1
  692. package/dist/esm/webgl-utils/constants-to-keys.js.map +0 -1
  693. package/dist/esm/webgl-utils/format-utils.js +0 -45
  694. package/dist/esm/webgl-utils/format-utils.js.map +0 -1
  695. package/dist/esm/webgl-utils/get-error.js +0 -41
  696. package/dist/esm/webgl-utils/get-error.js.map +0 -1
  697. package/dist/esm/webgl-utils/index.js +0 -5
  698. package/dist/esm/webgl-utils/index.js.map +0 -1
  699. package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  700. package/dist/esm/webgl-utils/request-animation-frame.js +0 -7
  701. package/dist/esm/webgl-utils/request-animation-frame.js.map +0 -1
  702. package/dist/esm/webgl-utils/texture-utils.js +0 -48
  703. package/dist/esm/webgl-utils/texture-utils.js.map +0 -1
  704. package/dist/esm/webgl-utils/typed-array-utils.js.map +0 -1
  705. package/dist/helpers/get-program-bindings.d.ts +0 -8
  706. package/dist/helpers/get-program-bindings.d.ts.map +0 -1
  707. package/dist/helpers/get-program-bindings.js +0 -228
  708. package/dist/helpers/get-program-bindings.js.map +0 -1
  709. package/dist/helpers/program-bindings.d.ts +0 -41
  710. package/dist/helpers/program-bindings.d.ts.map +0 -1
  711. package/dist/helpers/program-bindings.js +0 -2
  712. package/dist/types/accessor.d.ts +0 -29
  713. package/dist/webgl-utils/attribute-utils.d.ts +0 -18
  714. package/dist/webgl-utils/attribute-utils.d.ts.map +0 -1
  715. package/dist/webgl-utils/attribute-utils.js +0 -182
  716. package/dist/webgl-utils/attribute-utils.js.map +0 -1
  717. package/dist/webgl-utils/constants-to-keys.d.ts +0 -4
  718. package/dist/webgl-utils/constants-to-keys.d.ts.map +0 -1
  719. package/dist/webgl-utils/constants-to-keys.js.map +0 -1
  720. package/dist/webgl-utils/format-utils.d.ts +0 -3
  721. package/dist/webgl-utils/format-utils.d.ts.map +0 -1
  722. package/dist/webgl-utils/format-utils.js +0 -45
  723. package/dist/webgl-utils/format-utils.js.map +0 -1
  724. package/dist/webgl-utils/get-error.d.ts +0 -3
  725. package/dist/webgl-utils/get-error.d.ts.map +0 -1
  726. package/dist/webgl-utils/get-error.js +0 -41
  727. package/dist/webgl-utils/get-error.js.map +0 -1
  728. package/dist/webgl-utils/index.d.ts +0 -5
  729. package/dist/webgl-utils/index.d.ts.map +0 -1
  730. package/dist/webgl-utils/index.js +0 -5
  731. package/dist/webgl-utils/index.js.map +0 -1
  732. package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +0 -1
  733. package/dist/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  734. package/dist/webgl-utils/request-animation-frame.d.ts +0 -4
  735. package/dist/webgl-utils/request-animation-frame.d.ts.map +0 -1
  736. package/dist/webgl-utils/request-animation-frame.js +0 -7
  737. package/dist/webgl-utils/request-animation-frame.js.map +0 -1
  738. package/dist/webgl-utils/texture-utils.d.ts +0 -15
  739. package/dist/webgl-utils/texture-utils.d.ts.map +0 -1
  740. package/dist/webgl-utils/texture-utils.js +0 -48
  741. package/dist/webgl-utils/texture-utils.js.map +0 -1
  742. package/dist/webgl-utils/typed-array-utils.d.ts.map +0 -1
  743. package/dist/webgl-utils/typed-array-utils.js.map +0 -1
  744. package/src/.DS_Store +0 -0
  745. package/src/_deprecated/context-api.ts +0 -140
  746. package/src/_deprecated/features.ts +0 -159
  747. package/src/adapter/converters/webgpu-texture-formats.ts +0 -167
  748. package/src/classes/accessor.d.ts +0 -28
  749. package/src/classes/accessor.js +0 -129
  750. package/src/classes/accessor.ts.disabled +0 -159
  751. package/src/classes/clear.ts +0 -108
  752. package/src/classes/copy-and-blit.ts +0 -460
  753. package/src/classes/framebuffer.ts +0 -763
  754. package/src/classes/program-configuration.ts +0 -77
  755. package/src/classes/program.ts +0 -431
  756. package/src/classes/query.ts +0 -171
  757. package/src/classes/renderbuffer.ts +0 -154
  758. package/src/classes/shader.ts +0 -129
  759. package/src/classes/texture-2d.ts +0 -35
  760. package/src/classes/texture-3d.ts +0 -123
  761. package/src/classes/texture-cube.ts +0 -162
  762. package/src/classes/texture-formats.ts +0 -171
  763. package/src/classes/texture.ts +0 -965
  764. package/src/classes/transform-feedback.ts +0 -191
  765. package/src/classes/uniform-buffer-layout.ts +0 -113
  766. package/src/classes/uniforms.ts +0 -394
  767. package/src/classes/vertex-array-object.ts +0 -339
  768. package/src/classes/vertex-array.ts +0 -484
  769. package/src/context/context/get-canvas.ts +0 -37
  770. package/src/context/context/resize-context.ts +0 -37
  771. package/src/context/parameters/webgl-parameters.ts +0 -197
  772. package/src/debug/debug-program-configuration.ts +0 -32
  773. package/src/debug/debug-uniforms.ts +0 -100
  774. package/src/debug/debug-vertex-array.ts +0 -123
  775. package/src/helpers/get-program-bindings.ts +0 -244
  776. package/src/helpers/program-bindings.ts +0 -46
  777. package/src/types/accessor.d.ts +0 -29
  778. package/src/webgl-utils/attribute-utils.ts +0 -171
  779. package/src/webgl-utils/format-utils.ts +0 -43
  780. package/src/webgl-utils/get-error.ts +0 -56
  781. package/src/webgl-utils/index.ts +0 -12
  782. package/src/webgl-utils/request-animation-frame.ts +0 -14
  783. package/src/webgl-utils/texture-utils.ts +0 -60
@@ -7,8 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
10
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
15
 
16
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
+
12
18
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
19
 
14
20
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -27,17 +33,15 @@ var _api = require("@luma.gl/api");
27
33
 
28
34
  var _constants = _interopRequireDefault(require("@luma.gl/constants"));
29
35
 
30
- var _webglChecks = require("../context/context/webgl-checks");
36
+ var _withParameters = require("../../context/state-tracker/with-parameters");
31
37
 
32
- var _withParameters = require("../context/state-tracker/with-parameters");
38
+ var _textureFormats = require("../converters/texture-formats");
33
39
 
34
- var _constantsToKeys = require("../webgl-utils/constants-to-keys");
35
-
36
- var _webglDevice = _interopRequireDefault(require("../adapter/webgl-device"));
40
+ var _samplerParameters = require("../converters/sampler-parameters");
37
41
 
38
42
  var _webglBuffer = _interopRequireDefault(require("./webgl-buffer"));
39
43
 
40
- var _textureFormats = require("./texture-formats");
44
+ var _webglSampler = _interopRequireDefault(require("./webgl-sampler"));
41
45
 
42
46
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
43
47
 
@@ -45,60 +49,65 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
45
49
 
46
50
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
47
51
 
52
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
53
+
54
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
55
+
48
56
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
49
57
 
50
58
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
51
59
 
52
- var NPOT_MIN_FILTERS = [_constants.default.LINEAR, _constants.default.NEAREST];
53
-
54
60
  var WEBGLTexture = function (_Texture) {
55
61
  (0, _inherits2.default)(WEBGLTexture, _Texture);
56
62
 
57
63
  var _super = _createSuper(WEBGLTexture);
58
64
 
59
65
  function WEBGLTexture(device, props) {
66
+ var _this$props;
67
+
60
68
  var _this;
61
69
 
62
70
  (0, _classCallCheck2.default)(this, WEBGLTexture);
63
- _this = _super.call(this, _webglDevice.default.attach(device), props);
71
+ _this = _super.call(this, device, _objectSpread({
72
+ format: _constants.default.RGBA
73
+ }, props));
64
74
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "MAX_ATTRIBUTES", void 0);
65
75
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "device", void 0);
66
76
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "gl", void 0);
67
77
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "gl2", void 0);
68
78
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handle", void 0);
69
79
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "data", void 0);
70
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "width", void 0);
71
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "height", void 0);
72
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "depth", void 0);
80
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "width", undefined);
81
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "height", undefined);
82
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "depth", undefined);
73
83
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "format", undefined);
74
84
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "type", undefined);
75
85
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "dataFormat", undefined);
76
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "border", undefined);
77
86
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mipmaps", undefined);
78
87
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "target", void 0);
79
88
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "textureUnit", undefined);
89
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sampler", undefined);
80
90
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "loaded", false);
81
91
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_video", void 0);
82
- var _props$id = props.id,
83
- id = _props$id === void 0 ? (0, _api.uid)('texture') : _props$id,
84
- handle = props.handle,
85
- target = props.target;
86
- _this.target = target;
87
- _this.textureUnit = undefined;
88
- _this.loaded = false;
89
- _this.width = undefined;
90
- _this.height = undefined;
91
- _this.depth = undefined;
92
- _this.format = undefined;
93
- _this.type = undefined;
94
- _this.dataFormat = undefined;
95
- _this.border = undefined;
96
- _this.textureUnit = undefined;
97
- _this.mipmaps = undefined;
98
- _this.device = _webglDevice.default.attach(device);
92
+ _this.device = (0, _api.cast)(device);
99
93
  _this.gl = _this.device.gl;
100
94
  _this.gl2 = _this.device.gl2;
101
95
  _this.handle = _this.props.handle || _this.gl.createTexture();
96
+ _this.handle.__SPECTOR_Metadata = _objectSpread(_objectSpread({}, _this.props), {}, {
97
+ data: (0, _typeof2.default)(_this.props.data)
98
+ });
99
+ _this.target = getWebGLTextureTarget(_this.props);
100
+ _this.loaded = false;
101
+
102
+ if (typeof ((_this$props = _this.props) === null || _this$props === void 0 ? void 0 : _this$props.data) === 'string') {
103
+ Object.assign(_this.props, {
104
+ data: (0, _api.loadImage)(_this.props.data)
105
+ });
106
+ }
107
+
108
+ _this.initialize(_this.props);
109
+
110
+ Object.seal((0, _assertThisInitialized2.default)(_this));
102
111
  return _this;
103
112
  }
104
113
 
@@ -109,7 +118,7 @@ var WEBGLTexture = function (_Texture) {
109
118
  this.gl.deleteTexture(this.handle);
110
119
  this.removeStats();
111
120
  this.trackDeallocatedMemory('Texture');
112
- this.handle = null;
121
+ this.destroyed = true;
113
122
  }
114
123
  }
115
124
  }, {
@@ -123,6 +132,11 @@ var WEBGLTexture = function (_Texture) {
123
132
  var _this2 = this;
124
133
 
125
134
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
135
+
136
+ if (this.props.dimension === 'cube') {
137
+ return this.initializeCube(props);
138
+ }
139
+
126
140
  var data = props.data;
127
141
 
128
142
  if (data instanceof Promise) {
@@ -145,16 +159,12 @@ var WEBGLTexture = function (_Texture) {
145
159
  return this;
146
160
  }
147
161
 
162
+ var _props$parameters = props.parameters,
163
+ parameters = _props$parameters === void 0 ? {} : _props$parameters;
148
164
  var _props$pixels = props.pixels,
149
165
  pixels = _props$pixels === void 0 ? null : _props$pixels,
150
- _props$format = props.format,
151
- format = _props$format === void 0 ? _constants.default.RGBA : _props$format,
152
- _props$border = props.border,
153
- border = _props$border === void 0 ? 0 : _props$border,
154
166
  _props$recreate = props.recreate,
155
167
  recreate = _props$recreate === void 0 ? false : _props$recreate,
156
- _props$parameters = props.parameters,
157
- parameters = _props$parameters === void 0 ? {} : _props$parameters,
158
168
  _props$pixelStore = props.pixelStore,
159
169
  pixelStore = _props$pixelStore === void 0 ? {} : _props$pixelStore,
160
170
  _props$textureUnit = props.textureUnit,
@@ -176,7 +186,7 @@ var WEBGLTexture = function (_Texture) {
176
186
  depth = _props$depth === void 0 ? 0 : _props$depth;
177
187
 
178
188
  var _this$_deduceParamete = this._deduceParameters({
179
- format: format,
189
+ format: props.format,
180
190
  type: type,
181
191
  dataFormat: dataFormat,
182
192
  compressed: compressed,
@@ -190,13 +200,13 @@ var WEBGLTexture = function (_Texture) {
190
200
  compressed = _this$_deduceParamete.compressed;
191
201
  dataFormat = _this$_deduceParamete.dataFormat;
192
202
  type = _this$_deduceParamete.type;
203
+ var format = (0, _textureFormats.getWebGLTextureFormat)(this.gl, props.format);
193
204
  this.width = width;
194
205
  this.height = height;
195
206
  this.depth = depth;
196
207
  this.format = format;
197
208
  this.type = type;
198
209
  this.dataFormat = dataFormat;
199
- this.border = border;
200
210
  this.textureUnit = textureUnit;
201
211
 
202
212
  if (Number.isFinite(this.textureUnit)) {
@@ -204,12 +214,10 @@ var WEBGLTexture = function (_Texture) {
204
214
  this.gl.bindTexture(this.target, this.handle);
205
215
  }
206
216
 
207
- if (mipmaps && this._isNPOT()) {
208
- _api.log.warn("texture: ".concat(this, " is Non-Power-Of-Two, disabling mipmaping"))();
217
+ if (mipmaps && this.device.isWebGL1 && isNPOT(this.width, this.height)) {
218
+ _api.log.warn("texture: ".concat(this, " is Non-Power-Of-Two, disabling mipmaps"))();
209
219
 
210
220
  mipmaps = false;
211
-
212
- this._updateForNPOT(parameters);
213
221
  }
214
222
 
215
223
  this.mipmaps = mipmaps;
@@ -221,18 +229,17 @@ var WEBGLTexture = function (_Texture) {
221
229
  format: format,
222
230
  type: type,
223
231
  dataFormat: dataFormat,
224
- border: border,
225
- mipmaps: mipmaps,
226
232
  parameters: pixelStore,
227
233
  compressed: compressed
228
234
  });
235
+ this.setSampler(props.sampler);
236
+
237
+ this._setSamplerParameters(parameters);
229
238
 
230
239
  if (mipmaps) {
231
240
  this.generateMipmap();
232
241
  }
233
242
 
234
- this.setParameters(parameters);
235
-
236
243
  if (recreate) {
237
244
  this.data = data;
238
245
  }
@@ -248,6 +255,69 @@ var WEBGLTexture = function (_Texture) {
248
255
  return this;
249
256
  }
250
257
  }, {
258
+ key: "initializeCube",
259
+ value: function initializeCube(props) {
260
+ var _this3 = this;
261
+
262
+ var _props$mipmaps2 = props.mipmaps,
263
+ mipmaps = _props$mipmaps2 === void 0 ? true : _props$mipmaps2,
264
+ _props$parameters2 = props.parameters,
265
+ parameters = _props$parameters2 === void 0 ? {} : _props$parameters2;
266
+ this.setCubeMapImageData(props).then(function () {
267
+ _this3.loaded = true;
268
+
269
+ if (mipmaps) {
270
+ _this3.generateMipmap(props);
271
+ }
272
+
273
+ _this3.setSampler(props.sampler);
274
+
275
+ _this3._setSamplerParameters(parameters);
276
+ });
277
+ return this;
278
+ }
279
+ }, {
280
+ key: "setSampler",
281
+ value: function setSampler() {
282
+ var sampler = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
283
+ var samplerProps;
284
+
285
+ if (sampler instanceof _webglSampler.default) {
286
+ this.sampler = sampler;
287
+ samplerProps = sampler.props;
288
+ } else {
289
+ this.sampler = new _webglSampler.default(this.device, sampler);
290
+ samplerProps = sampler;
291
+ }
292
+
293
+ var parameters = (0, _samplerParameters.convertSamplerParametersToWebGL)(samplerProps);
294
+
295
+ this._setSamplerParameters(parameters);
296
+
297
+ return this;
298
+ }
299
+ }, {
300
+ key: "resize",
301
+ value: function resize(options) {
302
+ var height = options.height,
303
+ width = options.width,
304
+ _options$mipmaps = options.mipmaps,
305
+ mipmaps = _options$mipmaps === void 0 ? false : _options$mipmaps;
306
+
307
+ if (width !== this.width || height !== this.height) {
308
+ return this.initialize({
309
+ width: width,
310
+ height: height,
311
+ format: this.format,
312
+ type: this.type,
313
+ dataFormat: this.dataFormat,
314
+ mipmaps: mipmaps
315
+ });
316
+ }
317
+
318
+ return this;
319
+ }
320
+ }, {
251
321
  key: "update",
252
322
  value: function update() {
253
323
  if (this._video) {
@@ -272,36 +342,14 @@ var WEBGLTexture = function (_Texture) {
272
342
  this._video.lastTime = video.currentTime;
273
343
  }
274
344
  }
275
- }, {
276
- key: "resize",
277
- value: function resize(_ref) {
278
- var height = _ref.height,
279
- width = _ref.width,
280
- _ref$mipmaps = _ref.mipmaps,
281
- mipmaps = _ref$mipmaps === void 0 ? false : _ref$mipmaps;
282
-
283
- if (width !== this.width || height !== this.height) {
284
- return this.initialize({
285
- width: width,
286
- height: height,
287
- format: this.format,
288
- type: this.type,
289
- dataFormat: this.dataFormat,
290
- border: this.border,
291
- mipmaps: mipmaps
292
- });
293
- }
294
-
295
- return this;
296
- }
297
345
  }, {
298
346
  key: "generateMipmap",
299
347
  value: function generateMipmap() {
300
- var _this3 = this;
348
+ var _this4 = this;
301
349
 
302
350
  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
303
351
 
304
- if (this._isNPOT()) {
352
+ if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
305
353
  _api.log.warn("texture: ".concat(this, " is Non-Power-Of-Two, disabling mipmaping"))();
306
354
 
307
355
  return this;
@@ -310,7 +358,7 @@ var WEBGLTexture = function (_Texture) {
310
358
  this.mipmaps = true;
311
359
  this.gl.bindTexture(this.target, this.handle);
312
360
  (0, _withParameters.withParameters)(this.gl, params, function () {
313
- _this3.gl.generateMipmap(_this3.target);
361
+ _this4.gl.generateMipmap(_this4.target);
314
362
  });
315
363
  this.gl.bindTexture(this.target, null);
316
364
  return this;
@@ -318,6 +366,12 @@ var WEBGLTexture = function (_Texture) {
318
366
  }, {
319
367
  key: "setImageData",
320
368
  value: function setImageData(options) {
369
+ var _this5 = this;
370
+
371
+ if (this.props.dimension === '3d') {
372
+ return this.setImageData3D(options);
373
+ }
374
+
321
375
  this.trackDeallocatedMemory('Texture');
322
376
  var _options$target = options.target,
323
377
  target = _options$target === void 0 ? this.target : _options$target,
@@ -327,8 +381,6 @@ var WEBGLTexture = function (_Texture) {
327
381
  level = _options$level === void 0 ? 0 : _options$level,
328
382
  _options$format = options.format,
329
383
  format = _options$format === void 0 ? this.format : _options$format,
330
- _options$border = options.border,
331
- border = _options$border === void 0 ? this.border : _options$border,
332
384
  _options$offset = options.offset,
333
385
  offset = _options$offset === void 0 ? 0 : _options$offset,
334
386
  _options$parameters = options.parameters,
@@ -351,7 +403,7 @@ var WEBGLTexture = function (_Texture) {
351
403
  }
352
404
 
353
405
  var _this$_deduceParamete2 = this._deduceParameters({
354
- format: format,
406
+ format: this.props.format,
355
407
  type: type,
356
408
  dataFormat: dataFormat,
357
409
  compressed: compressed,
@@ -380,23 +432,23 @@ var WEBGLTexture = function (_Texture) {
380
432
  (0, _withParameters.withParameters)(this.gl, parameters, function () {
381
433
  switch (dataType) {
382
434
  case 'null':
383
- gl.texImage2D(target, level, format, width, height, border, dataFormat, type, data);
435
+ gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data);
384
436
  break;
385
437
 
386
438
  case 'typed-array':
387
- gl.texImage2D(target, level, format, width, height, border, dataFormat, type, data, offset);
439
+ gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data, offset);
388
440
  break;
389
441
 
390
442
  case 'buffer':
391
- gl2 = (0, _webglChecks.assertWebGL2Context)(gl);
443
+ gl2 = _this5.device.assertWebGL2();
392
444
  gl2.bindBuffer(_constants.default.PIXEL_UNPACK_BUFFER, data.handle || data);
393
- gl2.texImage2D(target, level, format, width, height, border, dataFormat, type, offset);
445
+ gl2.texImage2D(target, level, format, width, height, 0, dataFormat, type, offset);
394
446
  gl2.bindBuffer(_constants.default.PIXEL_UNPACK_BUFFER, null);
395
447
  break;
396
448
 
397
449
  case 'browser-object':
398
- if ((0, _webglChecks.isWebGL2)(gl)) {
399
- gl.texImage2D(target, level, format, width, height, border, dataFormat, type, data);
450
+ if (_this5.device.isWebGL2) {
451
+ gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data);
400
452
  } else {
401
453
  gl.texImage2D(target, level, format, dataFormat, type, data);
402
454
  }
@@ -413,7 +465,7 @@ var WEBGLTexture = function (_Texture) {
413
465
  levelIndex = _step$value[0],
414
466
  levelData = _step$value[1];
415
467
 
416
- gl.compressedTexImage2D(target, levelIndex, levelData.format, levelData.width, levelData.height, border, levelData.data);
468
+ gl.compressedTexImage2D(target, levelIndex, levelData.format, levelData.width, levelData.height, 0, levelData.data);
417
469
  }
418
470
  } catch (err) {
419
471
  _iterator.e(err);
@@ -431,9 +483,8 @@ var WEBGLTexture = function (_Texture) {
431
483
  if (data && data.byteLength) {
432
484
  this.trackAllocatedMemory(data.byteLength, 'Texture');
433
485
  } else {
434
- var channels = _textureFormats.DATA_FORMAT_CHANNELS[this.dataFormat] || 4;
435
- var channelSize = _textureFormats.TYPE_SIZES[this.type] || 1;
436
- this.trackAllocatedMemory(this.width * this.height * channels * channelSize, 'Texture');
486
+ var bytesPerPixel = (0, _textureFormats.getTextureFormatBytesPerPixel)(this.gl, this.props.format);
487
+ this.trackAllocatedMemory(this.width * this.height * bytesPerPixel, 'Texture');
437
488
  }
438
489
 
439
490
  this.loaded = true;
@@ -441,42 +492,40 @@ var WEBGLTexture = function (_Texture) {
441
492
  }
442
493
  }, {
443
494
  key: "setSubImageData",
444
- value: function setSubImageData(_ref2) {
445
- var _this4 = this;
446
-
447
- var _ref2$target = _ref2.target,
448
- target = _ref2$target === void 0 ? this.target : _ref2$target,
449
- _ref2$pixels = _ref2.pixels,
450
- pixels = _ref2$pixels === void 0 ? null : _ref2$pixels,
451
- _ref2$data = _ref2.data,
452
- data = _ref2$data === void 0 ? null : _ref2$data,
453
- _ref2$x = _ref2.x,
454
- x = _ref2$x === void 0 ? 0 : _ref2$x,
455
- _ref2$y = _ref2.y,
456
- y = _ref2$y === void 0 ? 0 : _ref2$y,
457
- _ref2$width = _ref2.width,
458
- width = _ref2$width === void 0 ? this.width : _ref2$width,
459
- _ref2$height = _ref2.height,
460
- height = _ref2$height === void 0 ? this.height : _ref2$height,
461
- _ref2$level = _ref2.level,
462
- level = _ref2$level === void 0 ? 0 : _ref2$level,
463
- _ref2$format = _ref2.format,
464
- format = _ref2$format === void 0 ? this.format : _ref2$format,
465
- _ref2$type = _ref2.type,
466
- type = _ref2$type === void 0 ? this.type : _ref2$type,
467
- _ref2$dataFormat = _ref2.dataFormat,
468
- dataFormat = _ref2$dataFormat === void 0 ? this.dataFormat : _ref2$dataFormat,
469
- _ref2$compressed = _ref2.compressed,
470
- compressed = _ref2$compressed === void 0 ? false : _ref2$compressed,
471
- _ref2$offset = _ref2.offset,
472
- offset = _ref2$offset === void 0 ? 0 : _ref2$offset,
473
- _ref2$border = _ref2.border,
474
- border = _ref2$border === void 0 ? this.border : _ref2$border,
475
- _ref2$parameters = _ref2.parameters,
476
- parameters = _ref2$parameters === void 0 ? {} : _ref2$parameters;
495
+ value: function setSubImageData(_ref) {
496
+ var _this6 = this;
497
+
498
+ var _ref$target = _ref.target,
499
+ target = _ref$target === void 0 ? this.target : _ref$target,
500
+ _ref$pixels = _ref.pixels,
501
+ pixels = _ref$pixels === void 0 ? null : _ref$pixels,
502
+ _ref$data = _ref.data,
503
+ data = _ref$data === void 0 ? null : _ref$data,
504
+ _ref$x = _ref.x,
505
+ x = _ref$x === void 0 ? 0 : _ref$x,
506
+ _ref$y = _ref.y,
507
+ y = _ref$y === void 0 ? 0 : _ref$y,
508
+ _ref$width = _ref.width,
509
+ width = _ref$width === void 0 ? this.width : _ref$width,
510
+ _ref$height = _ref.height,
511
+ height = _ref$height === void 0 ? this.height : _ref$height,
512
+ _ref$level = _ref.level,
513
+ level = _ref$level === void 0 ? 0 : _ref$level,
514
+ _ref$format = _ref.format,
515
+ format = _ref$format === void 0 ? this.format : _ref$format,
516
+ _ref$type = _ref.type,
517
+ type = _ref$type === void 0 ? this.type : _ref$type,
518
+ _ref$dataFormat = _ref.dataFormat,
519
+ dataFormat = _ref$dataFormat === void 0 ? this.dataFormat : _ref$dataFormat,
520
+ _ref$compressed = _ref.compressed,
521
+ compressed = _ref$compressed === void 0 ? false : _ref$compressed,
522
+ _ref$offset = _ref.offset,
523
+ offset = _ref$offset === void 0 ? 0 : _ref$offset,
524
+ _ref$parameters = _ref.parameters,
525
+ parameters = _ref$parameters === void 0 ? {} : _ref$parameters;
477
526
 
478
527
  var _this$_deduceParamete3 = this._deduceParameters({
479
- format: format,
528
+ format: this.props.format,
480
529
  type: type,
481
530
  dataFormat: dataFormat,
482
531
  compressed: compressed,
@@ -490,7 +539,7 @@ var WEBGLTexture = function (_Texture) {
490
539
  compressed = _this$_deduceParamete3.compressed;
491
540
  width = _this$_deduceParamete3.width;
492
541
  height = _this$_deduceParamete3.height;
493
- (0, _api.assert)(this.depth === 0, 'texSubImage not supported for 3D textures');
542
+ (0, _api.assert)(this.depth === 1, 'texSubImage not supported for 3D textures');
494
543
 
495
544
  if (!data) {
496
545
  data = pixels;
@@ -510,22 +559,23 @@ var WEBGLTexture = function (_Texture) {
510
559
  this.gl.bindTexture(this.target, this.handle);
511
560
  (0, _withParameters.withParameters)(this.gl, parameters, function () {
512
561
  if (compressed) {
513
- _this4.gl.compressedTexSubImage2D(target, level, x, y, width, height, format, data);
562
+ _this6.gl.compressedTexSubImage2D(target, level, x, y, width, height, format, data);
514
563
  } else if (data === null) {
515
- _this4.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
564
+ _this6.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
516
565
  } else if (ArrayBuffer.isView(data)) {
517
- _this4.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data, offset);
566
+ _this6.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data, offset);
518
567
  } else if (typeof WebGLBuffer !== 'undefined' && data instanceof WebGLBuffer) {
519
- var gl2 = (0, _webglChecks.assertWebGL2Context)(_this4.gl);
568
+ var gl2 = _this6.device.assertWebGL2();
569
+
520
570
  gl2.bindBuffer(_constants.default.PIXEL_UNPACK_BUFFER, data);
521
571
  gl2.texSubImage2D(target, level, x, y, width, height, dataFormat, type, offset);
522
572
  gl2.bindBuffer(_constants.default.PIXEL_UNPACK_BUFFER, null);
523
- } else if ((0, _webglChecks.isWebGL2)(_this4.gl)) {
524
- var _gl = (0, _webglChecks.assertWebGL2Context)(_this4.gl);
573
+ } else if (_this6.device.isWebGL2) {
574
+ var _gl = _this6.device.assertWebGL2();
525
575
 
526
576
  _gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data);
527
577
  } else {
528
- _this4.gl.texSubImage2D(target, level, x, y, dataFormat, type, data);
578
+ _this6.gl.texSubImage2D(target, level, x, y, dataFormat, type, data);
529
579
  }
530
580
  });
531
581
  this.gl.bindTexture(this.target, null);
@@ -574,10 +624,10 @@ var WEBGLTexture = function (_Texture) {
574
624
  }
575
625
  }, {
576
626
  key: "_getDataType",
577
- value: function _getDataType(_ref3) {
578
- var data = _ref3.data,
579
- _ref3$compressed = _ref3.compressed,
580
- compressed = _ref3$compressed === void 0 ? false : _ref3$compressed;
627
+ value: function _getDataType(_ref2) {
628
+ var data = _ref2.data,
629
+ _ref2$compressed = _ref2.compressed,
630
+ compressed = _ref2$compressed === void 0 ? false : _ref2$compressed;
581
631
 
582
632
  if (compressed) {
583
633
  return {
@@ -629,10 +679,10 @@ var WEBGLTexture = function (_Texture) {
629
679
  dataFormat = opts.dataFormat,
630
680
  type = opts.type,
631
681
  compressed = opts.compressed;
632
- var textureFormat = _textureFormats.TEXTURE_FORMATS[format];
633
- dataFormat = dataFormat || textureFormat && textureFormat.dataFormat;
634
- type = type || textureFormat && textureFormat.types[0];
635
- compressed = compressed || textureFormat && textureFormat.compressed;
682
+ var parameters = (0, _textureFormats.getWebGLTextureParameters)(this.gl, format);
683
+ dataFormat = dataFormat || parameters.dataFormat;
684
+ type = type || parameters.type;
685
+ compressed = compressed || parameters.compressed;
636
686
 
637
687
  var _this$_deduceImageSiz = this._deduceImageSize(data, width, height);
638
688
 
@@ -696,215 +746,241 @@ var WEBGLTexture = function (_Texture) {
696
746
  return size;
697
747
  }
698
748
  }, {
699
- key: "getParameter",
700
- value: function getParameter(pname) {
701
- var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
702
- pname = (0, _constantsToKeys.getKeyValue)(this.gl, pname);
703
- (0, _api.assert)(pname);
704
- var parameters = this.constructor.PARAMETERS || {};
705
- var parameter = parameters[pname];
706
-
707
- if (parameter) {
708
- var isWebgl2 = (0, _webglChecks.isWebGL2)(this.gl);
709
- var parameterAvailable = (!('webgl2' in parameter) || isWebgl2) && (!('extension' in parameter) || this.gl.getExtension(parameter.extension));
710
-
711
- if (!parameterAvailable) {
712
- var webgl1Default = parameter.webgl1;
713
- var webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;
714
- var defaultValue = isWebgl2 ? webgl2Default : webgl1Default;
715
- return defaultValue;
716
- }
717
- }
718
-
719
- return this._getParameter(pname, props);
720
- }
721
- }, {
722
- key: "getParameters",
723
- value: function getParameters() {
724
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
725
- var parameters = options.parameters,
726
- keys = options.keys;
727
- var PARAMETERS = this.constructor.PARAMETERS || {};
728
- var isWebgl2 = (0, _webglChecks.isWebGL2)(this.gl);
729
- var values = {};
730
- var parameterKeys = parameters || Object.keys(PARAMETERS);
731
-
732
- var _iterator2 = _createForOfIteratorHelper(parameterKeys),
733
- _step2;
734
-
735
- try {
736
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
737
- var pname = _step2.value;
738
- var parameter = PARAMETERS[pname];
739
- var parameterAvailable = parameter && (!('webgl2' in parameter) || isWebgl2) && (!('extension' in parameter) || this.gl.getExtension(parameter.extension));
740
-
741
- if (parameterAvailable) {
742
- var key = keys ? (0, _constantsToKeys.getKey)(this.gl, pname) : pname;
743
- values[key] = this.getParameter(pname, options);
744
-
745
- if (keys && parameter.type === 'GLenum') {
746
- values[key] = (0, _constantsToKeys.getKey)(this.gl, values[key]);
749
+ key: "setCubeMapImageData",
750
+ value: function () {
751
+ var _setCubeMapImageData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
752
+ var _this7 = this;
753
+
754
+ var gl, width, height, pixels, data, _options$format2, format, _options$type2, type, imageDataMap, resolvedFaces;
755
+
756
+ return _regenerator.default.wrap(function _callee$(_context) {
757
+ while (1) {
758
+ switch (_context.prev = _context.next) {
759
+ case 0:
760
+ gl = this.gl;
761
+ width = options.width, height = options.height, pixels = options.pixels, data = options.data, _options$format2 = options.format, format = _options$format2 === void 0 ? _constants.default.RGBA : _options$format2, _options$type2 = options.type, type = _options$type2 === void 0 ? _constants.default.UNSIGNED_BYTE : _options$type2;
762
+ imageDataMap = pixels || data;
763
+ _context.next = 5;
764
+ return Promise.all(WEBGLTexture.FACES.map(function (face) {
765
+ var facePixels = imageDataMap[face];
766
+ return Promise.all(Array.isArray(facePixels) ? facePixels : [facePixels]);
767
+ }));
768
+
769
+ case 5:
770
+ resolvedFaces = _context.sent;
771
+ this.bind();
772
+ WEBGLTexture.FACES.forEach(function (face, index) {
773
+ if (resolvedFaces[index].length > 1 && _this7.props.mipmaps !== false) {
774
+ _api.log.warn("".concat(_this7.id, " has mipmap and multiple LODs."))();
775
+ }
776
+
777
+ resolvedFaces[index].forEach(function (image, lodLevel) {
778
+ if (width && height) {
779
+ gl.texImage2D(face, lodLevel, format, width, height, 0, format, type, image);
780
+ } else {
781
+ gl.texImage2D(face, lodLevel, format, format, type, image);
782
+ }
783
+ });
784
+ });
785
+ this.unbind();
786
+
787
+ case 9:
788
+ case "end":
789
+ return _context.stop();
747
790
  }
748
791
  }
749
- }
750
- } catch (err) {
751
- _iterator2.e(err);
752
- } finally {
753
- _iterator2.f();
754
- }
792
+ }, _callee, this);
793
+ }));
755
794
 
756
- return values;
757
- }
758
- }, {
759
- key: "setParameter",
760
- value: function setParameter(pname, value) {
761
- pname = (0, _constantsToKeys.getKeyValue)(this.gl, pname);
762
- (0, _api.assert)(pname);
763
- var parameters = this.constructor.PARAMETERS || {};
764
- var parameter = parameters[pname];
765
-
766
- if (parameter) {
767
- var isWebgl2 = (0, _webglChecks.isWebGL2)(this.gl);
768
- var parameterAvailable = (!('webgl2' in parameter) || isWebgl2) && (!('extension' in parameter) || this.gl.getExtension(parameter.extension));
769
-
770
- if (!parameterAvailable) {
771
- throw new Error('Parameter not available on this platform');
772
- }
773
-
774
- if (parameter.type === 'GLenum') {
775
- value = (0, _constantsToKeys.getKeyValue)(value);
776
- }
795
+ function setCubeMapImageData(_x) {
796
+ return _setCubeMapImageData.apply(this, arguments);
777
797
  }
778
798
 
779
- this._setParameter(pname, value);
780
-
781
- return this;
782
- }
799
+ return setCubeMapImageData;
800
+ }()
783
801
  }, {
784
- key: "setParameters",
785
- value: function setParameters(parameters) {
786
- for (var pname in parameters) {
787
- this.setParameter(pname, parameters[pname]);
802
+ key: "setImageDataForFace",
803
+ value: function setImageDataForFace(options) {
804
+ var _this8 = this;
805
+
806
+ var face = options.face,
807
+ width = options.width,
808
+ height = options.height,
809
+ pixels = options.pixels,
810
+ data = options.data,
811
+ _options$format3 = options.format,
812
+ format = _options$format3 === void 0 ? _constants.default.RGBA : _options$format3,
813
+ _options$type3 = options.type,
814
+ type = _options$type3 === void 0 ? _constants.default.UNSIGNED_BYTE : _options$type3;
815
+ var gl = this.gl;
816
+ var imageData = pixels || data;
817
+ this.bind();
818
+
819
+ if (imageData instanceof Promise) {
820
+ imageData.then(function (resolvedImageData) {
821
+ return _this8.setImageDataForFace(Object.assign({}, options, {
822
+ face: face,
823
+ data: resolvedImageData,
824
+ pixels: resolvedImageData
825
+ }));
826
+ });
827
+ } else if (this.width || this.height) {
828
+ gl.texImage2D(face, 0, format, width, height, 0, format, type, imageData);
829
+ } else {
830
+ gl.texImage2D(face, 0, format, format, type, imageData);
788
831
  }
789
832
 
790
833
  return this;
791
834
  }
792
835
  }, {
793
- key: "_getParameter",
794
- value: function _getParameter(pname, props) {
795
- switch (pname) {
796
- case _constants.default.TEXTURE_WIDTH:
797
- return this.width;
798
-
799
- case _constants.default.TEXTURE_HEIGHT:
800
- return this.height;
801
-
802
- default:
803
- this.gl.bindTexture(this.target, this.handle);
804
- var value = this.gl.getTexParameter(this.target, pname);
805
- this.gl.bindTexture(this.target, null);
806
- return value;
807
- }
808
- }
809
- }, {
810
- key: "_setParameter",
811
- value: function _setParameter(pname, param) {
836
+ key: "setImageData3D",
837
+ value: function setImageData3D(options) {
838
+ var _this9 = this;
839
+
840
+ var _options$level2 = options.level,
841
+ level = _options$level2 === void 0 ? 0 : _options$level2,
842
+ dataFormat = options.dataFormat,
843
+ format = options.format,
844
+ type = options.type,
845
+ width = options.width,
846
+ height = options.height,
847
+ _options$depth = options.depth,
848
+ depth = _options$depth === void 0 ? 1 : _options$depth,
849
+ _options$offset2 = options.offset,
850
+ offset = _options$offset2 === void 0 ? 0 : _options$offset2,
851
+ data = options.data,
852
+ _options$parameters2 = options.parameters,
853
+ parameters = _options$parameters2 === void 0 ? {} : _options$parameters2;
854
+ this.trackDeallocatedMemory('Texture');
812
855
  this.gl.bindTexture(this.target, this.handle);
813
- param = this._getNPOTParam(pname, param);
856
+ var webglTextureFormat = (0, _textureFormats.getWebGLTextureParameters)(this.gl, format);
857
+ (0, _withParameters.withParameters)(this.gl, parameters, function () {
858
+ if (ArrayBuffer.isView(data)) {
859
+ _this9.gl.texImage3D(_this9.target, level, webglTextureFormat.format, width, height, depth, 0, webglTextureFormat.dataFormat, webglTextureFormat.type, data);
860
+ }
814
861
 
815
- switch (pname) {
816
- case _constants.default.TEXTURE_MIN_LOD:
817
- case _constants.default.TEXTURE_MAX_LOD:
818
- this.gl.texParameterf(this.target, pname, param);
819
- break;
862
+ if (data instanceof _webglBuffer.default) {
863
+ _this9.gl.bindBuffer(_constants.default.PIXEL_UNPACK_BUFFER, data.handle);
820
864
 
821
- case _constants.default.TEXTURE_WIDTH:
822
- case _constants.default.TEXTURE_HEIGHT:
823
- (0, _api.assert)(false);
824
- break;
865
+ _this9.gl.texImage3D(_this9.target, level, dataFormat, width, height, depth, 0, format, type, offset);
866
+ }
867
+ });
825
868
 
826
- default:
827
- this.gl.texParameteri(this.target, pname, param);
828
- break;
869
+ if (data && data.byteLength) {
870
+ this.trackAllocatedMemory(data.byteLength, 'Texture');
871
+ } else {
872
+ var bytesPerPixel = (0, _textureFormats.getTextureFormatBytesPerPixel)(this.gl, this.props.format);
873
+ this.trackAllocatedMemory(this.width * this.height * this.depth * bytesPerPixel, 'Texture');
829
874
  }
830
875
 
831
- this.gl.bindTexture(this.target, null);
876
+ this.loaded = true;
832
877
  return this;
833
878
  }
834
879
  }, {
835
- key: "_isNPOT",
836
- value: function _isNPOT() {
837
- if ((0, _webglChecks.isWebGL2)(this.gl)) {
838
- return false;
880
+ key: "_setSamplerParameters",
881
+ value: function _setSamplerParameters(parameters) {
882
+ if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
883
+ parameters = (0, _samplerParameters.updateSamplerParametersForNPOT)(parameters);
839
884
  }
840
885
 
841
- if (!this.width || !this.height) {
842
- return false;
886
+ if ((0, _api.isObjectEmpty)(parameters)) {
887
+ return;
843
888
  }
844
889
 
845
- return !(0, _api.isPowerOfTwo)(this.width) || !(0, _api.isPowerOfTwo)(this.height);
846
- }
847
- }, {
848
- key: "_updateForNPOT",
849
- value: function _updateForNPOT(parameters) {
850
- if (parameters[this.gl.TEXTURE_MIN_FILTER] === undefined) {
851
- parameters[this.gl.TEXTURE_MIN_FILTER] = this.gl.LINEAR;
852
- }
890
+ logParameters(parameters);
891
+ this.gl.bindTexture(this.target, this.handle);
853
892
 
854
- if (parameters[this.gl.TEXTURE_WRAP_S] === undefined) {
855
- parameters[this.gl.TEXTURE_WRAP_S] = this.gl.CLAMP_TO_EDGE;
856
- }
893
+ for (var _i = 0, _Object$entries = Object.entries(parameters); _i < _Object$entries.length; _i++) {
894
+ var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
895
+ pname = _Object$entries$_i[0],
896
+ pvalue = _Object$entries$_i[1];
857
897
 
858
- if (parameters[this.gl.TEXTURE_WRAP_T] === undefined) {
859
- parameters[this.gl.TEXTURE_WRAP_T] = this.gl.CLAMP_TO_EDGE;
898
+ var param = Number(pname);
899
+ var value = pvalue;
900
+
901
+ switch (param) {
902
+ case _constants.default.TEXTURE_MIN_LOD:
903
+ case _constants.default.TEXTURE_MAX_LOD:
904
+ this.gl.texParameterf(this.target, param, value);
905
+ break;
906
+
907
+ default:
908
+ this.gl.texParameteri(this.target, param, value);
909
+ break;
910
+ }
860
911
  }
912
+
913
+ this.gl.bindTexture(this.target, null);
914
+ return this;
861
915
  }
862
916
  }, {
863
- key: "_getNPOTParam",
864
- value: function _getNPOTParam(pname, param) {
865
- if (this._isNPOT()) {
917
+ key: "_getWebGL1NPOTParameterOverride",
918
+ value: function _getWebGL1NPOTParameterOverride(pname, value) {
919
+ var npot = this.device.isWebGL1 && isNPOT(this.width, this.height);
920
+
921
+ if (npot) {
866
922
  switch (pname) {
867
923
  case _constants.default.TEXTURE_MIN_FILTER:
868
- if (NPOT_MIN_FILTERS.indexOf(param) === -1) {
869
- param = _constants.default.LINEAR;
924
+ if (value !== _constants.default.LINEAR && value !== _constants.default.NEAREST) {
925
+ return _constants.default.LINEAR;
870
926
  }
871
927
 
872
928
  break;
873
929
 
874
930
  case _constants.default.TEXTURE_WRAP_S:
875
931
  case _constants.default.TEXTURE_WRAP_T:
876
- if (param !== _constants.default.CLAMP_TO_EDGE) {
877
- param = _constants.default.CLAMP_TO_EDGE;
878
- }
879
-
880
- break;
932
+ return _constants.default.CLAMP_TO_EDGE;
881
933
 
882
934
  default:
883
935
  break;
884
936
  }
885
937
  }
886
938
 
887
- return param;
888
- }
889
- }], [{
890
- key: "isSupported",
891
- value: function isSupported(device, options) {
892
- var webglDevice = _webglDevice.default.attach(device);
893
-
894
- var format = options.format,
895
- linearFiltering = options.linearFiltering;
896
- var supported = true;
897
-
898
- if (format) {
899
- supported = supported && (0, _textureFormats.isFormatSupported)(webglDevice.gl, format);
900
- supported = supported && (!linearFiltering || (0, _textureFormats.isLinearFilteringSupported)(webglDevice.gl, format));
901
- }
902
-
903
- return supported;
939
+ return value;
904
940
  }
905
941
  }]);
906
942
  return WEBGLTexture;
907
943
  }(_api.Texture);
908
944
 
909
945
  exports.default = WEBGLTexture;
910
- //# sourceMappingURL=texture.js.map
946
+ (0, _defineProperty2.default)(WEBGLTexture, "FACES", [_constants.default.TEXTURE_CUBE_MAP_POSITIVE_X, _constants.default.TEXTURE_CUBE_MAP_NEGATIVE_X, _constants.default.TEXTURE_CUBE_MAP_POSITIVE_Y, _constants.default.TEXTURE_CUBE_MAP_NEGATIVE_Y, _constants.default.TEXTURE_CUBE_MAP_POSITIVE_Z, _constants.default.TEXTURE_CUBE_MAP_NEGATIVE_Z]);
947
+
948
+ function getWebGLTextureTarget(props) {
949
+ switch (props.dimension) {
950
+ case '2d':
951
+ return _constants.default.TEXTURE_2D;
952
+
953
+ case 'cube':
954
+ return _constants.default.TEXTURE_CUBE_MAP;
955
+
956
+ case '2d-array':
957
+ return _constants.default.TEXTURE_2D_ARRAY;
958
+
959
+ case '3d':
960
+ return _constants.default.TEXTURE_3D;
961
+
962
+ case '1d':
963
+ case 'cube-array':
964
+ default:
965
+ throw new Error(props.dimension);
966
+ }
967
+ }
968
+
969
+ function isNPOT(width, height) {
970
+ if (!width || !height) {
971
+ return false;
972
+ }
973
+
974
+ return !(0, _api.isPowerOfTwo)(width) || !(0, _api.isPowerOfTwo)(height);
975
+ }
976
+
977
+ function logParameters(parameters) {
978
+ _api.log.log(1, 'texture sampler parameters', parameters)();
979
+
980
+ for (var _i2 = 0, _Object$entries2 = Object.entries(parameters); _i2 < _Object$entries2.length; _i2++) {
981
+ var _Object$entries2$_i = (0, _slicedToArray2.default)(_Object$entries2[_i2], 2),
982
+ pname = _Object$entries2$_i[0],
983
+ pvalue = _Object$entries2$_i[1];
984
+ }
985
+ }
986
+ //# sourceMappingURL=webgl-texture.js.map