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

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