@luma.gl/webgl 8.5.9 → 8.6.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 (788) hide show
  1. package/LICENSE +8 -1
  2. package/dist/adapter/converters/set-device-parameters.d.ts +5 -0
  3. package/dist/adapter/converters/set-device-parameters.d.ts.map +1 -0
  4. package/dist/adapter/converters/set-device-parameters.js +124 -0
  5. package/dist/adapter/converters/set-device-parameters.js.map +1 -0
  6. package/dist/adapter/converters/webgpu-texture-formats.d.ts +281 -0
  7. package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +1 -0
  8. package/dist/adapter/converters/webgpu-texture-formats.js +285 -0
  9. package/dist/adapter/converters/webgpu-texture-formats.js.map +1 -0
  10. package/dist/adapter/device-helpers/device-features.d.ts +12 -0
  11. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -0
  12. package/dist/adapter/device-helpers/device-features.js +123 -0
  13. package/dist/adapter/device-helpers/device-features.js.map +1 -0
  14. package/dist/adapter/device-helpers/device-limits.d.ts +51 -0
  15. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -0
  16. package/dist/adapter/device-helpers/device-limits.js +90 -0
  17. package/dist/adapter/device-helpers/device-limits.js.map +1 -0
  18. package/dist/adapter/device-helpers/get-device-info.d.ts +4 -0
  19. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -0
  20. package/dist/adapter/device-helpers/get-device-info.js +44 -0
  21. package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
  22. package/dist/adapter/device-helpers/is-old-ie.d.ts +2 -0
  23. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -0
  24. package/dist/{esm/features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
  25. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
  26. package/dist/adapter/webgl-device.d.ts +111 -0
  27. package/dist/adapter/webgl-device.d.ts.map +1 -0
  28. package/dist/adapter/webgl-device.js +208 -0
  29. package/dist/adapter/webgl-device.js.map +1 -0
  30. package/dist/adapter/webgl-shader.d.ts +18 -0
  31. package/dist/adapter/webgl-shader.d.ts.map +1 -0
  32. package/dist/adapter/webgl-shader.js +82 -0
  33. package/dist/adapter/webgl-shader.js.map +1 -0
  34. package/dist/bundle.d.ts +2 -0
  35. package/dist/bundle.d.ts.map +1 -0
  36. package/dist/bundle.js +5 -0
  37. package/dist/bundle.js.map +1 -0
  38. package/dist/classes/accessor.d.ts +28 -0
  39. package/dist/classes/accessor.d.ts.map +1 -0
  40. package/dist/classes/accessor.js +112 -0
  41. package/dist/classes/accessor.js.map +1 -0
  42. package/dist/classes/accessor.ts.disabled +159 -0
  43. package/dist/classes/clear.d.ts +17 -0
  44. package/dist/classes/clear.d.ts.map +1 -0
  45. package/{src → dist}/classes/clear.js +29 -23
  46. package/dist/classes/clear.js.map +1 -0
  47. package/dist/classes/copy-and-blit.d.ts +86 -0
  48. package/dist/classes/copy-and-blit.d.ts.map +1 -0
  49. package/dist/classes/copy-and-blit.js +338 -0
  50. package/dist/classes/copy-and-blit.js.map +1 -0
  51. package/dist/classes/framebuffer.d.ts +139 -0
  52. package/dist/classes/framebuffer.d.ts.map +1 -0
  53. package/dist/classes/framebuffer.js +656 -0
  54. package/dist/classes/framebuffer.js.map +1 -0
  55. package/dist/classes/program-configuration.d.ts +24 -0
  56. package/dist/classes/program-configuration.d.ts.map +1 -0
  57. package/dist/classes/program-configuration.js +73 -0
  58. package/dist/classes/program-configuration.js.map +1 -0
  59. package/dist/classes/program.d.ts +66 -0
  60. package/dist/classes/program.d.ts.map +1 -0
  61. package/dist/classes/program.js +379 -0
  62. package/dist/classes/program.js.map +1 -0
  63. package/dist/classes/query.d.ts +27 -0
  64. package/dist/classes/query.d.ts.map +1 -0
  65. package/dist/classes/query.js +145 -0
  66. package/dist/classes/query.js.map +1 -0
  67. package/dist/classes/renderbuffer-formats.d.ts +16 -0
  68. package/dist/classes/renderbuffer-formats.d.ts.map +1 -0
  69. package/dist/classes/renderbuffer-formats.js +185 -0
  70. package/dist/classes/renderbuffer-formats.js.map +1 -0
  71. package/dist/classes/renderbuffer.d.ts +60 -0
  72. package/dist/classes/renderbuffer.d.ts.map +1 -0
  73. package/dist/classes/renderbuffer.js +128 -0
  74. package/dist/classes/renderbuffer.js.map +1 -0
  75. package/dist/classes/shader.d.ts +42 -0
  76. package/dist/classes/shader.d.ts.map +1 -0
  77. package/dist/classes/shader.js +118 -0
  78. package/dist/classes/shader.js.map +1 -0
  79. package/dist/classes/texture-2d.d.ts +9 -0
  80. package/dist/classes/texture-2d.d.ts.map +1 -0
  81. package/dist/classes/texture-2d.js +36 -0
  82. package/dist/classes/texture-2d.js.map +1 -0
  83. package/dist/classes/texture-3d.d.ts +29 -0
  84. package/dist/classes/texture-3d.d.ts.map +1 -0
  85. package/dist/classes/texture-3d.js +76 -0
  86. package/dist/classes/texture-3d.js.map +1 -0
  87. package/dist/classes/texture-cube.d.ts +28 -0
  88. package/dist/classes/texture-cube.d.ts.map +1 -0
  89. package/dist/classes/texture-cube.js +130 -0
  90. package/dist/classes/texture-cube.js.map +1 -0
  91. package/dist/classes/texture-formats.d.ts +37 -0
  92. package/dist/classes/texture-formats.d.ts.map +1 -0
  93. package/dist/classes/texture-formats.js +98 -0
  94. package/dist/classes/texture-formats.js.map +1 -0
  95. package/dist/classes/texture.d.ts +123 -0
  96. package/dist/classes/texture.d.ts.map +1 -0
  97. package/dist/classes/texture.js +786 -0
  98. package/dist/classes/texture.js.map +1 -0
  99. package/dist/classes/transform-feedback.d.ts +33 -0
  100. package/dist/classes/transform-feedback.d.ts.map +1 -0
  101. package/dist/classes/transform-feedback.js +198 -0
  102. package/dist/classes/transform-feedback.js.map +1 -0
  103. package/dist/classes/uniform-buffer-layout.d.ts +17 -0
  104. package/dist/classes/uniform-buffer-layout.d.ts.map +1 -0
  105. package/dist/classes/uniform-buffer-layout.js +104 -0
  106. package/dist/classes/uniform-buffer-layout.js.map +1 -0
  107. package/dist/classes/uniforms.d.ts +37 -0
  108. package/dist/classes/uniforms.d.ts.map +1 -0
  109. package/dist/classes/uniforms.js +250 -0
  110. package/dist/classes/uniforms.js.map +1 -0
  111. package/dist/classes/vertex-array-object.d.ts +76 -0
  112. package/dist/classes/vertex-array-object.d.ts.map +1 -0
  113. package/dist/classes/vertex-array-object.js +261 -0
  114. package/dist/classes/vertex-array-object.js.map +1 -0
  115. package/dist/classes/vertex-array.d.ts +75 -0
  116. package/dist/classes/vertex-array.d.ts.map +1 -0
  117. package/dist/classes/vertex-array.js +408 -0
  118. package/dist/classes/vertex-array.js.map +1 -0
  119. package/dist/classes/webgl-buffer.d.ts +100 -0
  120. package/dist/classes/webgl-buffer.d.ts.map +1 -0
  121. package/dist/{esm/classes/buffer.js → classes/webgl-buffer.js} +100 -73
  122. package/dist/classes/webgl-buffer.js.map +1 -0
  123. package/dist/classes/webgl-resource.d.ts +56 -0
  124. package/dist/classes/webgl-resource.d.ts.map +1 -0
  125. package/dist/{esm/classes/resource.js → classes/webgl-resource.js} +35 -52
  126. package/dist/classes/webgl-resource.js.map +1 -0
  127. package/dist/context/context/context-state.d.ts +18 -0
  128. package/dist/context/context/context-state.d.ts.map +1 -0
  129. package/dist/context/context/context-state.js +26 -0
  130. package/dist/context/context/context-state.js.map +1 -0
  131. package/dist/context/context/create-context.d.ts +40 -0
  132. package/dist/context/context/create-context.d.ts.map +1 -0
  133. package/dist/context/context/create-context.js +37 -0
  134. package/dist/context/context/create-context.js.map +1 -0
  135. package/dist/context/context/device-pixels.d.ts +25 -0
  136. package/dist/context/context/device-pixels.d.ts.map +1 -0
  137. package/dist/context/context/device-pixels.js +98 -0
  138. package/dist/context/context/device-pixels.js.map +1 -0
  139. package/dist/context/context/get-canvas.d.ts +13 -0
  140. package/dist/context/context/get-canvas.d.ts.map +1 -0
  141. package/dist/context/context/get-canvas.js +31 -0
  142. package/dist/context/context/get-canvas.js.map +1 -0
  143. package/dist/context/context/resize-context.d.ts +20 -0
  144. package/dist/context/context/resize-context.d.ts.map +1 -0
  145. package/dist/context/context/resize-context.js +15 -0
  146. package/dist/context/context/resize-context.js.map +1 -0
  147. package/dist/context/context/webgl-checks.d.ts +13 -0
  148. package/dist/context/context/webgl-checks.d.ts.map +1 -0
  149. package/dist/context/context/webgl-checks.js +34 -0
  150. package/dist/context/context/webgl-checks.js.map +1 -0
  151. package/dist/context/parameters/unified-parameter-api.d.ts +31 -0
  152. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
  153. package/dist/context/parameters/unified-parameter-api.js +65 -0
  154. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  155. package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
  156. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
  157. package/dist/context/parameters/webgl-parameter-tables.js +445 -0
  158. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  159. package/dist/context/parameters/webgl-parameters.d.ts +144 -0
  160. package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
  161. package/dist/context/parameters/webgl-parameters.js +2 -0
  162. package/dist/context/parameters/webgl-parameters.js.map +1 -0
  163. package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
  164. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
  165. package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
  166. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  167. package/dist/context/polyfill/polyfill-context.d.ts +5 -0
  168. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
  169. package/dist/context/polyfill/polyfill-context.js +91 -0
  170. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  171. package/dist/context/polyfill/polyfill-table.d.ts +48 -0
  172. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
  173. package/dist/context/polyfill/polyfill-table.js +160 -0
  174. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  175. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
  176. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
  177. package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
  178. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  179. package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
  180. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
  181. package/dist/context/state-tracker/deep-array-equal.js +21 -0
  182. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  183. package/dist/context/state-tracker/track-context-state.d.ts +22 -0
  184. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
  185. package/dist/context/state-tracker/track-context-state.js +169 -0
  186. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  187. package/dist/context/state-tracker/with-parameters.d.ts +13 -0
  188. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
  189. package/dist/context/state-tracker/with-parameters.js +36 -0
  190. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  191. package/dist/debug/debug-program-configuration.d.ts +2 -0
  192. package/dist/debug/debug-program-configuration.d.ts.map +1 -0
  193. package/dist/debug/debug-program-configuration.js +40 -0
  194. package/dist/debug/debug-program-configuration.js.map +1 -0
  195. package/dist/debug/debug-uniforms.d.ts +12 -0
  196. package/dist/debug/debug-uniforms.d.ts.map +1 -0
  197. package/dist/debug/debug-uniforms.js +108 -0
  198. package/dist/debug/debug-uniforms.js.map +1 -0
  199. package/dist/debug/debug-vertex-array.d.ts +5 -0
  200. package/dist/debug/debug-vertex-array.d.ts.map +1 -0
  201. package/dist/debug/debug-vertex-array.js +118 -0
  202. package/dist/debug/debug-vertex-array.js.map +1 -0
  203. package/dist/es5/adapter/converters/set-device-parameters.js +138 -0
  204. package/dist/es5/adapter/converters/set-device-parameters.js.map +1 -0
  205. package/dist/es5/adapter/converters/webgpu-texture-formats.js +296 -0
  206. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +1 -0
  207. package/dist/es5/adapter/device-helpers/device-features.js +152 -0
  208. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -0
  209. package/dist/es5/adapter/device-helpers/device-limits.js +64 -0
  210. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -0
  211. package/dist/es5/adapter/device-helpers/get-device-info.js +55 -0
  212. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -0
  213. package/dist/es5/{features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
  214. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -0
  215. package/dist/es5/adapter/webgl-device.js +279 -0
  216. package/dist/es5/adapter/webgl-device.js.map +1 -0
  217. package/dist/es5/adapter/webgl-shader.js +155 -0
  218. package/dist/es5/adapter/webgl-shader.js.map +1 -0
  219. package/dist/es5/bundle.js +2 -4
  220. package/dist/es5/bundle.js.map +1 -1
  221. package/dist/es5/classes/accessor.js +36 -38
  222. package/dist/es5/classes/accessor.js.map +1 -1
  223. package/dist/es5/classes/accessor.ts.disabled +159 -0
  224. package/dist/es5/classes/clear.js +17 -11
  225. package/dist/es5/classes/clear.js.map +1 -1
  226. package/dist/es5/classes/copy-and-blit.js +121 -117
  227. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  228. package/dist/es5/classes/framebuffer.js +435 -423
  229. package/dist/es5/classes/framebuffer.js.map +1 -1
  230. package/dist/es5/classes/program-configuration.js +44 -108
  231. package/dist/es5/classes/program-configuration.js.map +1 -1
  232. package/dist/es5/classes/program.js +108 -85
  233. package/dist/es5/classes/program.js.map +1 -1
  234. package/dist/es5/classes/query.js +58 -59
  235. package/dist/es5/classes/query.js.map +1 -1
  236. package/dist/es5/classes/renderbuffer-formats.js +79 -52
  237. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  238. package/dist/es5/classes/renderbuffer.js +129 -100
  239. package/dist/es5/classes/renderbuffer.js.map +1 -1
  240. package/dist/es5/classes/shader.js +70 -96
  241. package/dist/es5/classes/shader.js.map +1 -1
  242. package/dist/es5/classes/texture-2d.js +25 -21
  243. package/dist/es5/classes/texture-2d.js.map +1 -1
  244. package/dist/es5/classes/texture-3d.js +49 -29
  245. package/dist/es5/classes/texture-3d.js.map +1 -1
  246. package/dist/es5/classes/texture-cube.js +45 -36
  247. package/dist/es5/classes/texture-cube.js.map +1 -1
  248. package/dist/es5/classes/texture-formats.js +35 -33
  249. package/dist/es5/classes/texture-formats.js.map +1 -1
  250. package/dist/es5/classes/texture.js +213 -101
  251. package/dist/es5/classes/texture.js.map +1 -1
  252. package/dist/es5/classes/transform-feedback.js +37 -34
  253. package/dist/es5/classes/transform-feedback.js.map +1 -1
  254. package/dist/es5/classes/uniform-buffer-layout.js +4 -4
  255. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  256. package/dist/es5/classes/uniforms.js +73 -73
  257. package/dist/es5/classes/uniforms.js.map +1 -1
  258. package/dist/es5/classes/vertex-array-object.js +106 -149
  259. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  260. package/dist/es5/classes/vertex-array.js +52 -43
  261. package/dist/es5/classes/vertex-array.js.map +1 -1
  262. package/dist/es5/classes/{buffer.js → webgl-buffer.js} +120 -111
  263. package/dist/es5/classes/webgl-buffer.js.map +1 -0
  264. package/dist/es5/classes/{resource.js → webgl-resource.js} +78 -99
  265. package/dist/es5/classes/webgl-resource.js.map +1 -0
  266. package/dist/es5/context/context/context-state.js +31 -0
  267. package/dist/es5/context/context/context-state.js.map +1 -0
  268. package/dist/es5/context/context/create-context.js +57 -0
  269. package/dist/es5/context/context/create-context.js.map +1 -0
  270. package/dist/es5/context/context/device-pixels.js +115 -0
  271. package/dist/es5/context/context/device-pixels.js.map +1 -0
  272. package/dist/es5/context/context/get-canvas.js +40 -0
  273. package/dist/es5/context/context/get-canvas.js.map +1 -0
  274. package/dist/es5/context/context/resize-context.js +23 -0
  275. package/dist/es5/context/context/resize-context.js.map +1 -0
  276. package/dist/es5/context/context/webgl-checks.js +54 -0
  277. package/dist/es5/context/context/webgl-checks.js.map +1 -0
  278. package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
  279. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
  280. package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
  281. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
  282. package/dist/es5/context/parameters/webgl-parameters.js +6 -0
  283. package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
  284. package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
  285. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
  286. package/dist/es5/context/polyfill/polyfill-context.js +134 -0
  287. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
  288. package/dist/es5/context/polyfill/polyfill-table.js +166 -0
  289. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
  290. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
  291. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  292. package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
  293. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
  294. package/dist/es5/context/state-tracker/track-context-state.js +196 -0
  295. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
  296. package/dist/es5/context/state-tracker/with-parameters.js +44 -0
  297. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
  298. package/dist/es5/debug/debug-program-configuration.js +1 -1
  299. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  300. package/dist/es5/debug/debug-uniforms.js +18 -20
  301. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  302. package/dist/es5/debug/debug-vertex-array.js +16 -16
  303. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  304. package/dist/es5/helpers/get-program-bindings.js +274 -0
  305. package/dist/es5/helpers/get-program-bindings.js.map +1 -0
  306. package/dist/es5/helpers/program-bindings.js +2 -0
  307. package/dist/es5/helpers/program-bindings.js.map +1 -0
  308. package/dist/es5/index.js +159 -99
  309. package/dist/es5/index.js.map +1 -1
  310. package/dist/es5/init.js +21 -41
  311. package/dist/es5/init.js.map +1 -1
  312. package/dist/es5/types/accessor.d.ts +29 -0
  313. package/dist/es5/types.js +2 -0
  314. package/dist/es5/types.js.map +1 -0
  315. package/dist/es5/webgl-utils/attribute-utils.js +4 -4
  316. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  317. package/dist/es5/webgl-utils/constants-to-keys.js +3 -3
  318. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  319. package/dist/es5/webgl-utils/format-utils.js +21 -17
  320. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  321. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  322. package/dist/es5/webgl-utils/index.js +74 -0
  323. package/dist/es5/webgl-utils/index.js.map +1 -0
  324. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +72 -0
  325. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  326. package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
  327. package/dist/es5/webgl-utils/texture-utils.js +6 -4
  328. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  329. package/dist/es5/webgl-utils/typed-array-utils.js +39 -34
  330. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  331. package/dist/esm/adapter/converters/set-device-parameters.js +124 -0
  332. package/dist/esm/adapter/converters/set-device-parameters.js.map +1 -0
  333. package/dist/esm/adapter/converters/webgpu-texture-formats.js +285 -0
  334. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +1 -0
  335. package/dist/esm/adapter/device-helpers/device-features.js +123 -0
  336. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -0
  337. package/dist/esm/adapter/device-helpers/device-limits.js +90 -0
  338. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -0
  339. package/dist/esm/adapter/device-helpers/get-device-info.js +44 -0
  340. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -0
  341. package/dist/esm/adapter/device-helpers/is-old-ie.js +8 -0
  342. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -0
  343. package/dist/esm/adapter/webgl-device.js +208 -0
  344. package/dist/esm/adapter/webgl-device.js.map +1 -0
  345. package/dist/esm/adapter/webgl-shader.js +82 -0
  346. package/dist/esm/adapter/webgl-shader.js.map +1 -0
  347. package/dist/esm/bundle.js +2 -4
  348. package/dist/esm/bundle.js.map +1 -1
  349. package/dist/esm/classes/accessor.js +6 -6
  350. package/dist/esm/classes/accessor.js.map +1 -1
  351. package/dist/esm/classes/accessor.ts.disabled +159 -0
  352. package/dist/esm/classes/clear.js +19 -14
  353. package/dist/esm/classes/clear.js.map +1 -1
  354. package/dist/esm/classes/copy-and-blit.js +67 -64
  355. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  356. package/dist/esm/classes/framebuffer.js +341 -313
  357. package/dist/esm/classes/framebuffer.js.map +1 -1
  358. package/dist/esm/classes/program-configuration.js +25 -104
  359. package/dist/esm/classes/program-configuration.js.map +1 -1
  360. package/dist/esm/classes/program.js +98 -62
  361. package/dist/esm/classes/program.js.map +1 -1
  362. package/dist/esm/classes/query.js +20 -16
  363. package/dist/esm/classes/query.js.map +1 -1
  364. package/dist/esm/classes/renderbuffer-formats.js +72 -49
  365. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  366. package/dist/esm/classes/renderbuffer.js +86 -73
  367. package/dist/esm/classes/renderbuffer.js.map +1 -1
  368. package/dist/esm/classes/shader.js +47 -67
  369. package/dist/esm/classes/shader.js.map +1 -1
  370. package/dist/esm/classes/texture-2d.js +13 -9
  371. package/dist/esm/classes/texture-2d.js.map +1 -1
  372. package/dist/esm/classes/texture-3d.js +28 -16
  373. package/dist/esm/classes/texture-3d.js.map +1 -1
  374. package/dist/esm/classes/texture-cube.js +45 -31
  375. package/dist/esm/classes/texture-cube.js.map +1 -1
  376. package/dist/esm/classes/texture-formats.js +52 -51
  377. package/dist/esm/classes/texture-formats.js.map +1 -1
  378. package/dist/esm/classes/texture.js +174 -58
  379. package/dist/esm/classes/texture.js.map +1 -1
  380. package/dist/esm/classes/transform-feedback.js +26 -14
  381. package/dist/esm/classes/transform-feedback.js.map +1 -1
  382. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  383. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  384. package/dist/esm/classes/uniforms.js +111 -113
  385. package/dist/esm/classes/uniforms.js.map +1 -1
  386. package/dist/esm/classes/vertex-array-object.js +52 -89
  387. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  388. package/dist/esm/classes/vertex-array.js +52 -31
  389. package/dist/esm/classes/vertex-array.js.map +1 -1
  390. package/dist/esm/classes/webgl-buffer.js +382 -0
  391. package/dist/esm/classes/webgl-buffer.js.map +1 -0
  392. package/dist/esm/classes/webgl-resource.js +212 -0
  393. package/dist/esm/classes/webgl-resource.js.map +1 -0
  394. package/dist/esm/context/context/context-state.js +26 -0
  395. package/dist/esm/context/context/context-state.js.map +1 -0
  396. package/dist/esm/context/context/create-context.js +37 -0
  397. package/dist/esm/context/context/create-context.js.map +1 -0
  398. package/dist/esm/context/context/device-pixels.js +98 -0
  399. package/dist/esm/context/context/device-pixels.js.map +1 -0
  400. package/dist/esm/context/context/get-canvas.js +31 -0
  401. package/dist/esm/context/context/get-canvas.js.map +1 -0
  402. package/dist/esm/context/context/resize-context.js +15 -0
  403. package/dist/esm/context/context/resize-context.js.map +1 -0
  404. package/dist/esm/context/context/webgl-checks.js +34 -0
  405. package/dist/esm/context/context/webgl-checks.js.map +1 -0
  406. package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
  407. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
  408. package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
  409. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
  410. package/dist/esm/context/parameters/webgl-parameters.js +2 -0
  411. package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
  412. package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
  413. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
  414. package/dist/esm/context/polyfill/polyfill-context.js +91 -0
  415. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
  416. package/dist/esm/context/polyfill/polyfill-table.js +160 -0
  417. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
  418. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
  419. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  420. package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
  421. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
  422. package/dist/esm/context/state-tracker/track-context-state.js +169 -0
  423. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
  424. package/dist/esm/context/state-tracker/with-parameters.js +36 -0
  425. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
  426. package/dist/esm/debug/debug-program-configuration.js +4 -4
  427. package/dist/esm/debug/debug-program-configuration.js.map +1 -1
  428. package/dist/esm/debug/debug-uniforms.js +9 -9
  429. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  430. package/dist/esm/debug/debug-vertex-array.js +18 -16
  431. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  432. package/dist/esm/helpers/get-program-bindings.js +228 -0
  433. package/dist/esm/helpers/get-program-bindings.js.map +1 -0
  434. package/dist/esm/helpers/program-bindings.js +2 -0
  435. package/dist/esm/helpers/program-bindings.js.map +1 -0
  436. package/dist/esm/index.js +17 -15
  437. package/dist/esm/index.js.map +1 -1
  438. package/dist/esm/init.js +12 -28
  439. package/dist/esm/init.js.map +1 -1
  440. package/dist/esm/types/accessor.d.ts +29 -0
  441. package/dist/esm/types.js +2 -0
  442. package/dist/esm/types.js.map +1 -0
  443. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  444. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  445. package/dist/esm/webgl-utils/constants-to-keys.js +4 -4
  446. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  447. package/dist/esm/webgl-utils/format-utils.js +16 -15
  448. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  449. package/dist/esm/webgl-utils/get-error.js +1 -1
  450. package/dist/esm/webgl-utils/get-error.js.map +1 -1
  451. package/dist/esm/webgl-utils/index.js +5 -0
  452. package/dist/esm/webgl-utils/index.js.map +1 -0
  453. package/dist/esm/webgl-utils/parse-shader-compiler-log.js +37 -0
  454. package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  455. package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
  456. package/dist/esm/webgl-utils/texture-utils.js +4 -3
  457. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  458. package/dist/esm/webgl-utils/typed-array-utils.js +41 -36
  459. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  460. package/dist/helpers/get-program-bindings.d.ts +8 -0
  461. package/dist/helpers/get-program-bindings.d.ts.map +1 -0
  462. package/dist/helpers/get-program-bindings.js +228 -0
  463. package/dist/helpers/get-program-bindings.js.map +1 -0
  464. package/dist/helpers/program-bindings.d.ts +41 -0
  465. package/dist/helpers/program-bindings.d.ts.map +1 -0
  466. package/dist/helpers/program-bindings.js +2 -0
  467. package/dist/helpers/program-bindings.js.map +1 -0
  468. package/dist/index.d.ts +51 -0
  469. package/dist/index.d.ts.map +1 -0
  470. package/dist/index.js +37 -0
  471. package/dist/index.js.map +1 -0
  472. package/dist/init.d.ts +5 -0
  473. package/dist/init.d.ts.map +1 -0
  474. package/dist/init.js +33 -0
  475. package/dist/init.js.map +1 -0
  476. package/dist/types/accessor.d.ts +29 -0
  477. package/dist/types.d.ts +9 -0
  478. package/dist/types.d.ts.map +1 -0
  479. package/dist/types.js +2 -0
  480. package/dist/types.js.map +1 -0
  481. package/dist/webgl-utils/attribute-utils.d.ts +18 -0
  482. package/dist/webgl-utils/attribute-utils.d.ts.map +1 -0
  483. package/dist/webgl-utils/attribute-utils.js +182 -0
  484. package/dist/webgl-utils/attribute-utils.js.map +1 -0
  485. package/dist/webgl-utils/constants-to-keys.d.ts +4 -0
  486. package/dist/webgl-utils/constants-to-keys.d.ts.map +1 -0
  487. package/dist/webgl-utils/constants-to-keys.js +41 -0
  488. package/dist/webgl-utils/constants-to-keys.js.map +1 -0
  489. package/dist/webgl-utils/format-utils.d.ts +3 -0
  490. package/dist/webgl-utils/format-utils.d.ts.map +1 -0
  491. package/dist/webgl-utils/format-utils.js +45 -0
  492. package/dist/webgl-utils/format-utils.js.map +1 -0
  493. package/dist/webgl-utils/get-error.d.ts +3 -0
  494. package/dist/webgl-utils/get-error.d.ts.map +1 -0
  495. package/dist/webgl-utils/get-error.js +41 -0
  496. package/dist/webgl-utils/get-error.js.map +1 -0
  497. package/dist/webgl-utils/index.d.ts +5 -0
  498. package/dist/webgl-utils/index.d.ts.map +1 -0
  499. package/dist/webgl-utils/index.js +5 -0
  500. package/dist/webgl-utils/index.js.map +1 -0
  501. package/dist/webgl-utils/parse-shader-compiler-log.d.ts +8 -0
  502. package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +1 -0
  503. package/dist/webgl-utils/parse-shader-compiler-log.js +37 -0
  504. package/dist/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  505. package/dist/webgl-utils/request-animation-frame.d.ts +4 -0
  506. package/dist/webgl-utils/request-animation-frame.d.ts.map +1 -0
  507. package/dist/webgl-utils/request-animation-frame.js +7 -0
  508. package/dist/webgl-utils/request-animation-frame.js.map +1 -0
  509. package/dist/webgl-utils/texture-utils.d.ts +15 -0
  510. package/dist/webgl-utils/texture-utils.d.ts.map +1 -0
  511. package/dist/webgl-utils/texture-utils.js +48 -0
  512. package/dist/webgl-utils/texture-utils.js.map +1 -0
  513. package/dist/webgl-utils/typed-array-utils.d.ts +43 -0
  514. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -0
  515. package/{src → dist}/webgl-utils/typed-array-utils.js +45 -27
  516. package/dist/webgl-utils/typed-array-utils.js.map +1 -0
  517. package/package.json +9 -9
  518. package/src/.DS_Store +0 -0
  519. package/src/adapter/converters/set-device-parameters.ts +182 -0
  520. package/src/adapter/converters/webgpu-texture-formats.ts +167 -0
  521. package/src/adapter/device-helpers/device-features.ts +227 -0
  522. package/src/adapter/device-helpers/device-limits.ts +150 -0
  523. package/src/adapter/device-helpers/get-device-info.ts +49 -0
  524. package/src/{features/check-old-ie.js → adapter/device-helpers/is-old-ie.ts} +3 -3
  525. package/src/adapter/webgl-device.ts +406 -0
  526. package/src/adapter/webgl-shader.ts +84 -0
  527. package/src/bundle.ts +4 -0
  528. package/src/classes/accessor.js +2 -3
  529. package/src/classes/accessor.ts.disabled +159 -0
  530. package/src/classes/clear.ts +108 -0
  531. package/src/classes/{copy-and-blit.js → copy-and-blit.ts} +143 -55
  532. package/src/classes/{framebuffer.js → framebuffer.ts} +381 -321
  533. package/src/classes/program-configuration.ts +77 -0
  534. package/src/classes/{program.js → program.ts} +111 -77
  535. package/src/classes/{query.js → query.ts} +31 -25
  536. package/src/classes/{renderbuffer-formats.js → renderbuffer-formats.ts} +42 -14
  537. package/src/classes/renderbuffer.ts +154 -0
  538. package/src/classes/shader.ts +129 -0
  539. package/src/classes/texture-2d.ts +35 -0
  540. package/src/classes/{texture-3d.js → texture-3d.ts} +48 -18
  541. package/src/classes/{texture-cube.js → texture-cube.ts} +52 -34
  542. package/src/classes/{texture-formats.js → texture-formats.ts} +10 -2
  543. package/src/classes/{texture.js → texture.ts} +223 -57
  544. package/src/classes/{transform-feedback.js → transform-feedback.ts} +34 -25
  545. package/src/classes/{uniform-buffer-layout.js → uniform-buffer-layout.ts} +10 -6
  546. package/src/classes/{uniforms.js → uniforms.ts} +123 -77
  547. package/src/classes/{vertex-array-object.js → vertex-array-object.ts} +136 -114
  548. package/src/classes/{vertex-array.js → vertex-array.ts} +84 -59
  549. package/src/classes/{buffer.js → webgl-buffer.ts} +126 -50
  550. package/src/classes/{resource.js → webgl-resource.ts} +55 -46
  551. package/src/context/context/context-state.ts +39 -0
  552. package/src/context/context/create-context.ts +83 -0
  553. package/src/context/context/device-pixels.ts +147 -0
  554. package/src/context/context/get-canvas.ts +37 -0
  555. package/src/context/context/resize-context.ts +37 -0
  556. package/src/context/context/webgl-checks.ts +49 -0
  557. package/src/context/parameters/unified-parameter-api.ts +128 -0
  558. package/src/context/parameters/webgl-parameter-tables.ts +625 -0
  559. package/src/context/parameters/webgl-parameters.ts +197 -0
  560. package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
  561. package/src/context/polyfill/polyfill-context.ts +98 -0
  562. package/src/context/polyfill/polyfill-table.ts +162 -0
  563. package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
  564. package/src/context/state-tracker/deep-array-equal.ts +20 -0
  565. package/src/context/state-tracker/track-context-state.ts +250 -0
  566. package/src/context/state-tracker/with-parameters.ts +50 -0
  567. package/src/debug/{debug-program-configuration.js → debug-program-configuration.ts} +0 -0
  568. package/src/debug/{debug-uniforms.js → debug-uniforms.ts} +18 -8
  569. package/src/debug/{debug-vertex-array.js → debug-vertex-array.ts} +6 -5
  570. package/src/helpers/get-program-bindings.ts +244 -0
  571. package/src/helpers/program-bindings.ts +46 -0
  572. package/src/index.ts +133 -0
  573. package/src/{init.js → init.ts} +11 -25
  574. package/src/types/accessor.d.ts +29 -0
  575. package/src/{types.d.ts → types.ts} +1 -1
  576. package/src/webgl-utils/{attribute-utils.js → attribute-utils.ts} +1 -2
  577. package/src/webgl-utils/{constants-to-keys.js → constants-to-keys.ts} +1 -1
  578. package/src/webgl-utils/{format-utils.js → format-utils.ts} +1 -1
  579. package/src/webgl-utils/{get-error.js → get-error.ts} +0 -0
  580. package/src/webgl-utils/index.ts +12 -0
  581. package/src/webgl-utils/parse-shader-compiler-log.ts +48 -0
  582. package/src/webgl-utils/{request-animation-frame.js → request-animation-frame.ts} +3 -2
  583. package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +14 -10
  584. package/src/webgl-utils/typed-array-utils.ts +137 -0
  585. package/dist/dist.js +0 -13555
  586. package/dist/dist.min.js +0 -1
  587. package/dist/es5/classes/buffer.d.ts +0 -84
  588. package/dist/es5/classes/buffer.js.map +0 -1
  589. package/dist/es5/classes/clear.d.ts +0 -11
  590. package/dist/es5/classes/copy-and-blit.d.ts +0 -101
  591. package/dist/es5/classes/framebuffer.d.ts +0 -96
  592. package/dist/es5/classes/program-configuration.d.ts +0 -15
  593. package/dist/es5/classes/program.d.ts +0 -44
  594. package/dist/es5/classes/query.d.ts +0 -21
  595. package/dist/es5/classes/renderbuffer.d.ts +0 -34
  596. package/dist/es5/classes/resource.d.ts +0 -47
  597. package/dist/es5/classes/resource.js.map +0 -1
  598. package/dist/es5/classes/shader.d.ts +0 -29
  599. package/dist/es5/classes/texture-2d.d.ts +0 -11
  600. package/dist/es5/classes/texture-3d.d.ts +0 -29
  601. package/dist/es5/classes/texture-cube.d.ts +0 -23
  602. package/dist/es5/classes/texture.d.ts +0 -80
  603. package/dist/es5/classes/transform-feedback.d.ts +0 -16
  604. package/dist/es5/classes/uniform-buffer-layout.d.ts +0 -18
  605. package/dist/es5/classes/uniforms.d.ts +0 -63
  606. package/dist/es5/classes/vertex-array-object.d.ts +0 -25
  607. package/dist/es5/classes/vertex-array.d.ts +0 -37
  608. package/dist/es5/debug/debug-program-configuration.d.ts +0 -1
  609. package/dist/es5/debug/debug-uniforms.d.ts +0 -11
  610. package/dist/es5/debug/debug-vertex-array.d.ts +0 -1
  611. package/dist/es5/features/check-glsl-extension.js +0 -41
  612. package/dist/es5/features/check-glsl-extension.js.map +0 -1
  613. package/dist/es5/features/check-old-ie.js.map +0 -1
  614. package/dist/es5/features/features.js +0 -99
  615. package/dist/es5/features/features.js.map +0 -1
  616. package/dist/es5/features/index.js +0 -64
  617. package/dist/es5/features/index.js.map +0 -1
  618. package/dist/es5/features/limits.js +0 -64
  619. package/dist/es5/features/limits.js.map +0 -1
  620. package/dist/es5/features/webgl-features-table.js +0 -64
  621. package/dist/es5/features/webgl-features-table.js.map +0 -1
  622. package/dist/es5/features/webgl-limits-table.js +0 -132
  623. package/dist/es5/features/webgl-limits-table.js.map +0 -1
  624. package/dist/es5/glsl-utils/format-glsl-error.d.ts +0 -16
  625. package/dist/es5/glsl-utils/format-glsl-error.js +0 -108
  626. package/dist/es5/glsl-utils/format-glsl-error.js.map +0 -1
  627. package/dist/es5/glsl-utils/get-shader-name.js +0 -14
  628. package/dist/es5/glsl-utils/get-shader-name.js.map +0 -1
  629. package/dist/es5/glsl-utils/get-shader-type-name.js +0 -22
  630. package/dist/es5/glsl-utils/get-shader-type-name.js.map +0 -1
  631. package/dist/es5/glsl-utils/get-shader-version.js +0 -22
  632. package/dist/es5/glsl-utils/get-shader-version.js.map +0 -1
  633. package/dist/es5/glsl-utils/index.js +0 -48
  634. package/dist/es5/glsl-utils/index.js.map +0 -1
  635. package/dist/es5/index.d.ts +0 -71
  636. package/dist/es5/init.d.ts +0 -12
  637. package/dist/es5/types.d.ts +0 -8
  638. package/dist/es5/utils/array-utils-flat.js +0 -51
  639. package/dist/es5/utils/array-utils-flat.js.map +0 -1
  640. package/dist/es5/utils/assert.d.ts +0 -1
  641. package/dist/es5/utils/assert.js +0 -13
  642. package/dist/es5/utils/assert.js.map +0 -1
  643. package/dist/es5/utils/check-props.js +0 -51
  644. package/dist/es5/utils/check-props.js.map +0 -1
  645. package/dist/es5/utils/format-value.js +0 -57
  646. package/dist/es5/utils/format-value.js.map +0 -1
  647. package/dist/es5/utils/is-old-ie.d.ts +0 -1
  648. package/dist/es5/utils/is-old-ie.js +0 -14
  649. package/dist/es5/utils/is-old-ie.js.map +0 -1
  650. package/dist/es5/utils/load-file.js +0 -50
  651. package/dist/es5/utils/load-file.js.map +0 -1
  652. package/dist/es5/utils/stub-methods.js +0 -25
  653. package/dist/es5/utils/stub-methods.js.map +0 -1
  654. package/dist/es5/utils/utils.d.ts +0 -13
  655. package/dist/es5/utils/utils.js +0 -36
  656. package/dist/es5/utils/utils.js.map +0 -1
  657. package/dist/es5/webgl-utils/request-animation-frame.d.ts +0 -3
  658. package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
  659. package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
  660. package/dist/esm/classes/buffer.d.ts +0 -84
  661. package/dist/esm/classes/buffer.js.map +0 -1
  662. package/dist/esm/classes/clear.d.ts +0 -11
  663. package/dist/esm/classes/copy-and-blit.d.ts +0 -101
  664. package/dist/esm/classes/framebuffer.d.ts +0 -96
  665. package/dist/esm/classes/program-configuration.d.ts +0 -15
  666. package/dist/esm/classes/program.d.ts +0 -44
  667. package/dist/esm/classes/query.d.ts +0 -21
  668. package/dist/esm/classes/renderbuffer.d.ts +0 -34
  669. package/dist/esm/classes/resource.d.ts +0 -47
  670. package/dist/esm/classes/resource.js.map +0 -1
  671. package/dist/esm/classes/shader.d.ts +0 -29
  672. package/dist/esm/classes/texture-2d.d.ts +0 -11
  673. package/dist/esm/classes/texture-3d.d.ts +0 -29
  674. package/dist/esm/classes/texture-cube.d.ts +0 -23
  675. package/dist/esm/classes/texture.d.ts +0 -80
  676. package/dist/esm/classes/transform-feedback.d.ts +0 -16
  677. package/dist/esm/classes/uniform-buffer-layout.d.ts +0 -18
  678. package/dist/esm/classes/uniforms.d.ts +0 -63
  679. package/dist/esm/classes/vertex-array-object.d.ts +0 -25
  680. package/dist/esm/classes/vertex-array.d.ts +0 -37
  681. package/dist/esm/debug/debug-program-configuration.d.ts +0 -1
  682. package/dist/esm/debug/debug-uniforms.d.ts +0 -11
  683. package/dist/esm/debug/debug-vertex-array.d.ts +0 -1
  684. package/dist/esm/features/check-glsl-extension.js +0 -27
  685. package/dist/esm/features/check-glsl-extension.js.map +0 -1
  686. package/dist/esm/features/check-old-ie.js.map +0 -1
  687. package/dist/esm/features/features.js +0 -66
  688. package/dist/esm/features/features.js.map +0 -1
  689. package/dist/esm/features/index.js +0 -5
  690. package/dist/esm/features/index.js.map +0 -1
  691. package/dist/esm/features/limits.js +0 -52
  692. package/dist/esm/features/limits.js.map +0 -1
  693. package/dist/esm/features/webgl-features-table.js +0 -71
  694. package/dist/esm/features/webgl-features-table.js.map +0 -1
  695. package/dist/esm/features/webgl-limits-table.js +0 -160
  696. package/dist/esm/features/webgl-limits-table.js.map +0 -1
  697. package/dist/esm/glsl-utils/format-glsl-error.d.ts +0 -16
  698. package/dist/esm/glsl-utils/format-glsl-error.js +0 -93
  699. package/dist/esm/glsl-utils/format-glsl-error.js.map +0 -1
  700. package/dist/esm/glsl-utils/get-shader-name.js +0 -6
  701. package/dist/esm/glsl-utils/get-shader-name.js.map +0 -1
  702. package/dist/esm/glsl-utils/get-shader-type-name.js +0 -15
  703. package/dist/esm/glsl-utils/get-shader-type-name.js.map +0 -1
  704. package/dist/esm/glsl-utils/get-shader-version.js +0 -15
  705. package/dist/esm/glsl-utils/get-shader-version.js.map +0 -1
  706. package/dist/esm/glsl-utils/index.js +0 -5
  707. package/dist/esm/glsl-utils/index.js.map +0 -1
  708. package/dist/esm/index.d.ts +0 -71
  709. package/dist/esm/init.d.ts +0 -12
  710. package/dist/esm/types.d.ts +0 -8
  711. package/dist/esm/utils/array-utils-flat.js +0 -39
  712. package/dist/esm/utils/array-utils-flat.js.map +0 -1
  713. package/dist/esm/utils/assert.d.ts +0 -1
  714. package/dist/esm/utils/assert.js +0 -6
  715. package/dist/esm/utils/assert.js.map +0 -1
  716. package/dist/esm/utils/check-props.js +0 -38
  717. package/dist/esm/utils/check-props.js.map +0 -1
  718. package/dist/esm/utils/format-value.js +0 -50
  719. package/dist/esm/utils/format-value.js.map +0 -1
  720. package/dist/esm/utils/is-old-ie.d.ts +0 -1
  721. package/dist/esm/utils/is-old-ie.js +0 -5
  722. package/dist/esm/utils/is-old-ie.js.map +0 -1
  723. package/dist/esm/utils/load-file.js +0 -30
  724. package/dist/esm/utils/load-file.js.map +0 -1
  725. package/dist/esm/utils/stub-methods.js +0 -17
  726. package/dist/esm/utils/stub-methods.js.map +0 -1
  727. package/dist/esm/utils/utils.d.ts +0 -13
  728. package/dist/esm/utils/utils.js +0 -22
  729. package/dist/esm/utils/utils.js.map +0 -1
  730. package/dist/esm/webgl-utils/request-animation-frame.d.ts +0 -3
  731. package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
  732. package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
  733. package/src/bundle.js +0 -8
  734. package/src/classes/buffer.d.ts +0 -84
  735. package/src/classes/clear.d.ts +0 -11
  736. package/src/classes/copy-and-blit.d.ts +0 -101
  737. package/src/classes/framebuffer.d.ts +0 -96
  738. package/src/classes/program-configuration.d.ts +0 -15
  739. package/src/classes/program-configuration.js +0 -123
  740. package/src/classes/program.d.ts +0 -44
  741. package/src/classes/query.d.ts +0 -21
  742. package/src/classes/renderbuffer.d.ts +0 -34
  743. package/src/classes/renderbuffer.js +0 -105
  744. package/src/classes/resource.d.ts +0 -47
  745. package/src/classes/shader.d.ts +0 -29
  746. package/src/classes/shader.js +0 -147
  747. package/src/classes/texture-2d.d.ts +0 -11
  748. package/src/classes/texture-2d.js +0 -30
  749. package/src/classes/texture-3d.d.ts +0 -29
  750. package/src/classes/texture-cube.d.ts +0 -23
  751. package/src/classes/texture.d.ts +0 -80
  752. package/src/classes/transform-feedback.d.ts +0 -16
  753. package/src/classes/uniform-buffer-layout.d.ts +0 -18
  754. package/src/classes/uniforms.d.ts +0 -63
  755. package/src/classes/vertex-array-object.d.ts +0 -25
  756. package/src/classes/vertex-array.d.ts +0 -37
  757. package/src/debug/debug-program-configuration.d.ts +0 -1
  758. package/src/debug/debug-uniforms.d.ts +0 -11
  759. package/src/debug/debug-vertex-array.d.ts +0 -1
  760. package/src/features/check-glsl-extension.js +0 -34
  761. package/src/features/features.js +0 -79
  762. package/src/features/index.js +0 -5
  763. package/src/features/limits.js +0 -65
  764. package/src/features/webgl-features-table.js +0 -104
  765. package/src/features/webgl-limits-table.js +0 -51
  766. package/src/glsl-utils/format-glsl-error.d.ts +0 -16
  767. package/src/glsl-utils/format-glsl-error.js +0 -107
  768. package/src/glsl-utils/get-shader-name.js +0 -7
  769. package/src/glsl-utils/get-shader-type-name.js +0 -13
  770. package/src/glsl-utils/get-shader-version.js +0 -12
  771. package/src/glsl-utils/index.js +0 -8
  772. package/src/index.d.ts +0 -71
  773. package/src/index.js +0 -70
  774. package/src/init.d.ts +0 -12
  775. package/src/utils/array-utils-flat.js +0 -56
  776. package/src/utils/assert.d.ts +0 -1
  777. package/src/utils/assert.js +0 -7
  778. package/src/utils/check-props.js +0 -68
  779. package/src/utils/format-value.js +0 -37
  780. package/src/utils/is-old-ie.d.ts +0 -1
  781. package/src/utils/is-old-ie.js +0 -6
  782. package/src/utils/load-file.js +0 -39
  783. package/src/utils/stub-methods.js +0 -20
  784. package/src/utils/utils.d.ts +0 -13
  785. package/src/utils/utils.js +0 -36
  786. package/src/webgl-utils/request-animation-frame.d.ts +0 -3
  787. package/src/webgl-utils/texture-utils.d.ts +0 -11
  788. package/src/webgl-utils/typed-array-utils.d.ts +0 -36
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/shader.js"],"names":["ERR_SOURCE","Shader","shaderType","gl","props","source","id","getTypeName","initialize","shaderName","_compile","pname","getShaderParameter","handle","getShaderSource","extension","getExtension","getTranslatedShaderSource","startsWith","shaderSource","compileShader","compileStatus","getParameter","infoLog","getShaderInfoLog","errors","warnings","log","error","warn","Error","deleteShader","type","getSource","Resource","VertexShader","Object","assign","createShader","FragmentShader"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {assertWebGLContext, log} from '@luma.gl/gltools';\nimport {parseGLSLCompilerError, getShaderName} from '../glsl-utils';\nimport {assert} from '../utils/assert';\nimport {uid} from '../utils/utils';\nimport Resource from './resource';\n\nconst ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';\n\n// For now this is an internal class\nexport class Shader extends Resource {\n static getTypeName(shaderType) {\n switch (shaderType) {\n case GL.VERTEX_SHADER:\n return 'vertex-shader';\n case GL.FRAGMENT_SHADER:\n return 'fragment-shader';\n default:\n assert(false);\n return 'unknown';\n }\n }\n\n /* eslint-disable max-statements */\n constructor(gl, props) {\n assertWebGLContext(gl);\n\n // Validate arguments\n assert(typeof props.source === 'string', ERR_SOURCE);\n\n // Deduce an id, from shader source, or supplied id, or shader type\n const id =\n getShaderName(props.source, null) ||\n props.id ||\n uid(`unnamed ${Shader.getTypeName(props.shaderType)}`);\n\n super(gl, {id});\n\n this.shaderType = props.shaderType;\n this.source = props.source;\n\n this.initialize(props);\n }\n\n initialize({source}) {\n const shaderName = getShaderName(source, null);\n if (shaderName) {\n this.id = uid(shaderName);\n }\n this._compile(source);\n }\n\n // Accessors\n\n getParameter(pname) {\n return this.gl.getShaderParameter(this.handle, pname);\n }\n\n toString() {\n return `${Shader.getTypeName(this.shaderType)}:${this.id}`;\n }\n\n getName() {\n return getShaderName(this.source) || 'unnamed-shader';\n }\n\n getSource() {\n return this.gl.getShaderSource(this.handle);\n }\n\n // Debug method - Returns translated source if available\n getTranslatedSource() {\n const extension = this.gl.getExtension('WEBGL_debug_shaders');\n return extension\n ? extension.getTranslatedShaderSource(this.handle)\n : 'No translated source available. WEBGL_debug_shaders not implemented';\n }\n\n // PRIVATE METHODS\n _compile(source = this.source) {\n if (!source.startsWith('#version ')) {\n source = `#version 100\\n${source}`;\n }\n this.source = source;\n this.gl.shaderSource(this.handle, this.source);\n this.gl.compileShader(this.handle);\n\n // TODO - For performance reasons, avoid checking shader compilation errors on production?\n // TODO - Load log even when no error reported, to catch warnings?\n // https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings\n const compileStatus = this.getParameter(GL.COMPILE_STATUS);\n if (!compileStatus) {\n const infoLog = this.gl.getShaderInfoLog(this.handle);\n const {shaderName, errors, warnings} = parseGLSLCompilerError(\n infoLog,\n this.source,\n this.shaderType,\n this.id\n );\n log.error(`GLSL compilation errors in ${shaderName}\\n${errors}`)();\n log.warn(`GLSL compilation warnings in ${shaderName}\\n${warnings}`)();\n throw new Error(`GLSL compilation errors in ${shaderName}`);\n }\n }\n\n _deleteHandle() {\n this.gl.deleteShader(this.handle);\n }\n\n _getOptsFromHandle() {\n return {\n type: this.getParameter(GL.SHADER_TYPE),\n source: this.getSource()\n };\n }\n}\n\nexport class VertexShader extends Shader {\n constructor(gl, props) {\n // Signature: new VertexShader(gl, source)\n if (typeof props === 'string') {\n props = {source: props};\n }\n super(gl, Object.assign({}, props, {shaderType: GL.VERTEX_SHADER}));\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createShader(GL.VERTEX_SHADER);\n }\n}\n\nexport class FragmentShader extends Shader {\n constructor(gl, props) {\n // Signature: new FragmentShader(gl, source)\n if (typeof props === 'string') {\n props = {source: props};\n }\n\n super(gl, Object.assign({}, props, {shaderType: GL.FRAGMENT_SHADER}));\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createShader(GL.FRAGMENT_SHADER);\n }\n}\n"],"file":"shader.js"}
1
+ {"version":3,"sources":["../../../src/classes/shader.ts"],"names":["ERR_SOURCE","Shader","gl","props","source","WebGLDevice","attach","stage","shaderType","GL","VERTEX_SHADER","shaderName","name","id","_compile","pname","getShaderParameter","handle","getTypeName","getShaderSource","extension","getExtension","getTranslatedShaderSource","type","getParameter","SHADER_TYPE","getSource","FRAGMENT_SHADER","WEBGLShader","VertexShader","getShaderProps","createShader","FragmentShader"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport {assert, uid, ShaderProps} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {getShaderInfo} from '@luma.gl/shadertools';\nimport {assertWebGLContext} from '../context/context/webgl-checks';\nimport {WEBGLShader} from '../adapter/webgl-shader'\nimport WebGLDevice from '../adapter/webgl-device'\n\nconst ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';\n\nexport type {ShaderProps};\n\n/**\n * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline\n * This is an internal class, use FragmentShader or VertexShader\n */\nexport class Shader extends WEBGLShader {\n shaderType: GL.FRAGMENT_SHADER | GL.VERTEX_SHADER;\n source: string;\n\n static getTypeName(shaderType: any): 'vertex-shader' | 'fragment-shader' | 'unknown' {\n switch (shaderType) {\n case GL.VERTEX_SHADER:\n return 'vertex-shader';\n case GL.FRAGMENT_SHADER:\n return 'fragment-shader';\n default:\n assert(false);\n return 'unknown';\n }\n }\n\n constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'>) {\n assertWebGLContext(gl);\n assert(typeof props.source === 'string', ERR_SOURCE);\n super(WebGLDevice.attach(gl), {...props, stage: props.shaderType === GL.VERTEX_SHADER ? 'vertex' : 'fragment'});\n\n this.shaderType = props.shaderType;\n this.source = props.source;\n\n const shaderName = getShaderInfo(props.source).name;\n if (shaderName) {\n this.id = uid(shaderName);\n }\n }\n\n initialize(props: ShaderProps): this {\n this._compile(props.source);\n const shaderName = getShaderInfo(props.source).name;\n if (shaderName) {\n this.id = uid(shaderName);\n }\n return this;\n }\n\n // Accessors\n\n getParameter(pname: number): any {\n return this.gl.getShaderParameter(this.handle, pname);\n }\n\n toString(): string {\n return `${Shader.getTypeName(this.shaderType)}:${this.id}`;\n }\n\n getName(): string {\n return getShaderInfo(this.source).name || 'unnamed-shader';\n }\n\n getSource(): string {\n return this.gl.getShaderSource(this.handle);\n }\n\n /** Debug method - Returns translated source if available */\n getTranslatedSource(): string {\n const extension = this.gl.getExtension('WEBGL_debug_shaders');\n return extension\n ? extension.getTranslatedShaderSource(this.handle)\n : 'No translated source available. WEBGL_debug_shaders not implemented';\n }\n\n // PRIVATE METHODS\n\n _getOptsFromHandle() {\n return {\n type: this.getParameter(GL.SHADER_TYPE),\n source: this.getSource()\n };\n }\n}\n\n/**\n * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline\n * @deprecated Use `device.createShader({stage: 'vertex', ...})`\n */\n export class VertexShader extends Shader {\n constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'> | string) {\n super(gl, getShaderProps(props, GL.VERTEX_SHADER));\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createShader(GL.VERTEX_SHADER);\n }\n}\n\n/**\n * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline\n * @deprecated Use `device.createShader({stage: 'fragment', ...})`\n */\n export class FragmentShader extends Shader {\n constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'> | string) {\n super(gl, getShaderProps(props, GL.FRAGMENT_SHADER));\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createShader(GL.FRAGMENT_SHADER);\n }\n}\n\n// HELPERS\n\nfunction getShaderProps(props: Omit<ShaderProps, 'stage'> | string, shaderType: GL.VERTEX_SHADER | GL.FRAGMENT_SHADER): Omit<ShaderProps, 'stage'> {\n if (typeof props === 'string') {\n return {source: props, shaderType};\n }\n return {...props, shaderType};\n}\n"],"file":"shader.js"}
@@ -9,44 +9,37 @@ exports.default = void 0;
9
9
 
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
12
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
-
14
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
13
 
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
16
16
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
17
 
18
18
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
19
 
20
20
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
21
 
22
- var _gltools = require("@luma.gl/gltools");
22
+ var _api = require("@luma.gl/api");
23
23
 
24
- var _texture = _interopRequireDefault(require("./texture"));
24
+ var _constants = _interopRequireDefault(require("@luma.gl/constants"));
25
25
 
26
- var _loadFile = require("../utils/load-file");
26
+ var _texture = _interopRequireDefault(require("./texture"));
27
27
 
28
28
  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); }; }
29
29
 
30
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
30
+ 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; } }
31
31
 
32
- var Texture2D = function (_Texture) {
32
+ var Texture2D = function (_Texture, _Symbol$toStringTag) {
33
33
  (0, _inherits2.default)(Texture2D, _Texture);
34
34
 
35
35
  var _super = _createSuper(Texture2D);
36
36
 
37
- (0, _createClass2.default)(Texture2D, null, [{
38
- key: "isSupported",
39
- value: function isSupported(gl, opts) {
40
- return _texture.default.isSupported(gl, opts);
41
- }
42
- }]);
37
+ function Texture2D(device, props) {
38
+ var _props;
43
39
 
44
- function Texture2D(gl) {
45
40
  var _this;
46
41
 
47
- var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
48
42
  (0, _classCallCheck2.default)(this, Texture2D);
49
- (0, _gltools.assertWebGLContext)(gl);
50
43
 
51
44
  if (props instanceof Promise || typeof props === 'string') {
52
45
  props = {
@@ -54,14 +47,14 @@ var Texture2D = function (_Texture) {
54
47
  };
55
48
  }
56
49
 
57
- if (typeof props.data === 'string') {
50
+ if (typeof ((_props = props) === null || _props === void 0 ? void 0 : _props.data) === 'string') {
58
51
  props = Object.assign({}, props, {
59
- data: (0, _loadFile.loadImage)(props.data)
52
+ data: (0, _api.loadImage)(props.data)
60
53
  });
61
54
  }
62
55
 
63
- _this = _super.call(this, gl, Object.assign({}, props, {
64
- target: 3553
56
+ _this = _super.call(this, device, Object.assign({}, props, {
57
+ target: _constants.default.TEXTURE_2D
65
58
  }));
66
59
 
67
60
  _this.initialize(props);
@@ -70,8 +63,19 @@ var Texture2D = function (_Texture) {
70
63
  return _this;
71
64
  }
72
65
 
66
+ (0, _createClass2.default)(Texture2D, [{
67
+ key: _Symbol$toStringTag,
68
+ get: function get() {
69
+ return 'Texture2D';
70
+ }
71
+ }], [{
72
+ key: "isSupported",
73
+ value: function isSupported(device, opts) {
74
+ return _texture.default.isSupported(device, opts);
75
+ }
76
+ }]);
73
77
  return Texture2D;
74
- }(_texture.default);
78
+ }(_texture.default, Symbol.toStringTag);
75
79
 
76
80
  exports.default = Texture2D;
77
81
  //# sourceMappingURL=texture-2d.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/texture-2d.js"],"names":["Texture2D","gl","opts","Texture","isSupported","props","Promise","data","Object","assign","target","initialize","seal"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;;;IAEqBA,S;;;;;;;gCACAC,E,EAAIC,I,EAAM;AAC3B,aAAOC,iBAAQC,WAAR,CAAoBH,EAApB,EAAwBC,IAAxB,CAAP;AACD;;;AAED,qBAAYD,EAAZ,EAA4B;AAAA;;AAAA,QAAZI,KAAY,uEAAJ,EAAI;AAAA;AAC1B,qCAAmBJ,EAAnB;;AAGA,QAAII,KAAK,YAAYC,OAAjB,IAA4B,OAAOD,KAAP,KAAiB,QAAjD,EAA2D;AACzDA,MAAAA,KAAK,GAAG;AAACE,QAAAA,IAAI,EAAEF;AAAP,OAAR;AACD;;AAGD,QAAI,OAAOA,KAAK,CAACE,IAAb,KAAsB,QAA1B,EAAoC;AAClCF,MAAAA,KAAK,GAAGG,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBJ,KAAlB,EAAyB;AAACE,QAAAA,IAAI,EAAE,yBAAUF,KAAK,CAACE,IAAhB;AAAP,OAAzB,CAAR;AACD;;AAED,8BAAMN,EAAN,EAAUO,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBJ,KAAlB,EAAyB;AAACK,MAAAA,MAAM;AAAP,KAAzB,CAAV;;AAEA,UAAKC,UAAL,CAAgBN,KAAhB;;AAEAG,IAAAA,MAAM,CAACI,IAAP;AAjB0B;AAkB3B;;;EAvBoCT,gB","sourcesContent":["import GL from '@luma.gl/constants';\nimport {assertWebGLContext} from '@luma.gl/gltools';\nimport Texture from './texture';\nimport {loadImage} from '../utils/load-file';\n\nexport default class Texture2D extends Texture {\n static isSupported(gl, opts) {\n return Texture.isSupported(gl, opts);\n }\n\n constructor(gl, props = {}) {\n assertWebGLContext(gl);\n\n // Signature: new Texture2D(gl, url | Promise)\n if (props instanceof Promise || typeof props === 'string') {\n props = {data: props};\n }\n\n // Signature: new Texture2D(gl, {data: url})\n if (typeof props.data === 'string') {\n props = Object.assign({}, props, {data: loadImage(props.data)});\n }\n\n super(gl, Object.assign({}, props, {target: GL.TEXTURE_2D}));\n\n this.initialize(props);\n\n Object.seal(this);\n }\n}\n"],"file":"texture-2d.js"}
1
+ {"version":3,"sources":["../../../src/classes/texture-2d.ts"],"names":["Texture2D","device","props","Promise","data","Object","assign","target","GL","TEXTURE_2D","initialize","seal","opts","Texture","isSupported","Symbol","toStringTag"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;IAMqBA,S;;;;;AAKnB,qBAAYC,MAAZ,EAAoDC,KAApD,EAAsG;AAAA;;AAAA;;AAAA;;AAEpG,QAAIA,KAAK,YAAYC,OAAjB,IAA4B,OAAOD,KAAP,KAAiB,QAAjD,EAA2D;AACzDA,MAAAA,KAAK,GAAG;AAACE,QAAAA,IAAI,EAAEF;AAAP,OAAR;AACD;;AAGD,QAAI,kBAAOA,KAAP,2CAAO,OAAOE,IAAd,MAAuB,QAA3B,EAAqC;AACnCF,MAAAA,KAAK,GAAGG,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBJ,KAAlB,EAAyB;AAACE,QAAAA,IAAI,EAAE,oBAAUF,KAAK,CAACE,IAAhB;AAAP,OAAzB,CAAR;AACD;;AAED,8BAAMH,MAAN,EAAcI,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBJ,KAAlB,EAAyB;AAACK,MAAAA,MAAM,EAAEC,mBAAGC;AAAZ,KAAzB,CAAd;;AAEA,UAAKC,UAAL,CAAgBR,KAAhB;;AAEAG,IAAAA,MAAM,CAACM,IAAP;AAfoG;AAgBrG;;;;SAED,eAAmC;AACjC,aAAO,WAAP;AACD;;;WAxBD,qBAAmBV,MAAnB,EAA2DW,IAA3D,EAAkG;AAChG,aAAOC,iBAAQC,WAAR,CAAoBb,MAApB,EAA4BW,IAA5B,CAAP;AACD;;;EAHoCC,gB,EAuBhCE,MAAM,CAACC,W","sourcesContent":["import {Device, loadImage} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport Texture, {TextureProps, TextureSupportOptions} from './texture';\n\n\nexport type Texture2DProps = TextureProps & {\n};\n\nexport default class Texture2D extends Texture {\n static isSupported(device: Device | WebGLRenderingContext, opts?: TextureSupportOptions): boolean {\n return Texture.isSupported(device, opts);\n }\n\n constructor(device: Device | WebGLRenderingContext, props?: Texture2DProps | Promise<Texture2DProps>) {\n // Signature: new Texture2D(gl, url | Promise)\n if (props instanceof Promise || typeof props === 'string') {\n props = {data: props};\n }\n\n // Signature: new Texture2D(gl, {data: url})\n if (typeof props?.data === 'string') {\n props = Object.assign({}, props, {data: loadImage(props.data)});\n }\n\n super(device, Object.assign({}, props, {target: GL.TEXTURE_2D}));\n\n this.initialize(props);\n\n Object.seal(this);\n }\n\n get [Symbol.toStringTag](): string {\n return 'Texture2D';\n }\n}\n"],"file":"texture-2d.js"}
@@ -7,55 +7,62 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
12
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
13
 
14
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
15
 
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
16
18
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
19
 
18
20
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
21
 
20
22
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
23
 
22
- var _gltools = require("@luma.gl/gltools");
24
+ var _constants = _interopRequireDefault(require("@luma.gl/constants"));
25
+
26
+ var _webglDevice = _interopRequireDefault(require("../adapter/webgl-device"));
27
+
28
+ var _webglChecks = require("../context/context/webgl-checks");
29
+
30
+ var _withParameters = require("../context/state-tracker/with-parameters");
23
31
 
24
32
  var _texture = _interopRequireDefault(require("./texture"));
25
33
 
26
34
  var _textureFormats = require("./texture-formats");
27
35
 
28
- var _buffer = _interopRequireDefault(require("./buffer"));
36
+ var _webglBuffer = _interopRequireDefault(require("./webgl-buffer"));
37
+
38
+ 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; }
39
+
40
+ 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; }
29
41
 
30
42
  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); }; }
31
43
 
32
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
44
+ 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; } }
33
45
 
34
- var Texture3D = function (_Texture) {
46
+ var Texture3D = function (_Texture, _Symbol$toStringTag) {
35
47
  (0, _inherits2.default)(Texture3D, _Texture);
36
48
 
37
49
  var _super = _createSuper(Texture3D);
38
50
 
39
- (0, _createClass2.default)(Texture3D, null, [{
40
- key: "isSupported",
41
- value: function isSupported(gl) {
42
- return (0, _gltools.isWebGL2)(gl);
43
- }
44
- }]);
45
-
46
- function Texture3D(gl) {
51
+ function Texture3D(device) {
47
52
  var _this;
48
53
 
49
54
  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
50
55
  (0, _classCallCheck2.default)(this, Texture3D);
51
- (0, _gltools.assertWebGL2Context)(gl);
56
+ _this = _super.call(this, device, _objectSpread(_objectSpread({}, props), {}, {
57
+ target: _constants.default.TEXTURE_3D
58
+ }));
59
+ (0, _webglChecks.assertWebGL2Context)(_this.gl2);
52
60
  props = Object.assign({
53
61
  depth: 1
54
62
  }, props, {
55
- target: 32879,
63
+ target: _constants.default.TEXTURE_3D,
56
64
  unpackFlipY: false
57
65
  });
58
- _this = _super.call(this, gl, props);
59
66
 
60
67
  _this.initialize(props);
61
68
 
@@ -64,6 +71,11 @@ var Texture3D = function (_Texture) {
64
71
  }
65
72
 
66
73
  (0, _createClass2.default)(Texture3D, [{
74
+ key: _Symbol$toStringTag,
75
+ get: function get() {
76
+ return 'Texture3D';
77
+ }
78
+ }, {
67
79
  key: "setImageData",
68
80
  value: function setImageData(_ref) {
69
81
  var _this2 = this;
@@ -71,7 +83,7 @@ var Texture3D = function (_Texture) {
71
83
  var _ref$level = _ref.level,
72
84
  level = _ref$level === void 0 ? 0 : _ref$level,
73
85
  _ref$dataFormat = _ref.dataFormat,
74
- dataFormat = _ref$dataFormat === void 0 ? 6408 : _ref$dataFormat,
86
+ dataFormat = _ref$dataFormat === void 0 ? _constants.default.RGBA : _ref$dataFormat,
75
87
  width = _ref.width,
76
88
  height = _ref.height,
77
89
  _ref$depth = _ref.depth,
@@ -80,43 +92,51 @@ var Texture3D = function (_Texture) {
80
92
  border = _ref$border === void 0 ? 0 : _ref$border,
81
93
  format = _ref.format,
82
94
  _ref$type = _ref.type,
83
- type = _ref$type === void 0 ? 5121 : _ref$type,
95
+ type = _ref$type === void 0 ? _constants.default.UNSIGNED_BYTE : _ref$type,
84
96
  _ref$offset = _ref.offset,
85
97
  offset = _ref$offset === void 0 ? 0 : _ref$offset,
86
98
  data = _ref.data,
87
99
  _ref$parameters = _ref.parameters,
88
100
  parameters = _ref$parameters === void 0 ? {} : _ref$parameters;
89
-
90
- this._trackDeallocatedMemory('Texture');
91
-
101
+ this.trackDeallocatedMemory('Texture');
92
102
  this.gl.bindTexture(this.target, this.handle);
93
- (0, _gltools.withParameters)(this.gl, parameters, function () {
103
+ (0, _withParameters.withParameters)(this.gl, parameters, function () {
94
104
  if (ArrayBuffer.isView(data)) {
95
105
  _this2.gl.texImage3D(_this2.target, level, dataFormat, width, height, depth, border, format, type, data);
96
106
  }
97
107
 
98
- if (data instanceof _buffer.default) {
99
- _this2.gl.bindBuffer(35052, data.handle);
108
+ if (data instanceof _webglBuffer.default) {
109
+ _this2.gl.bindBuffer(_constants.default.PIXEL_UNPACK_BUFFER, data.handle);
100
110
 
101
111
  _this2.gl.texImage3D(_this2.target, level, dataFormat, width, height, depth, border, format, type, offset);
102
112
  }
103
113
  });
104
114
 
105
115
  if (data && data.byteLength) {
106
- this._trackAllocatedMemory(data.byteLength, 'Texture');
116
+ this.trackAllocatedMemory(data.byteLength, 'Texture');
107
117
  } else {
108
118
  var channels = _textureFormats.DATA_FORMAT_CHANNELS[this.dataFormat] || 4;
109
119
  var channelSize = _textureFormats.TYPE_SIZES[this.type] || 1;
110
-
111
- this._trackAllocatedMemory(this.width * this.height * this.depth * channels * channelSize, 'Texture');
120
+ this.trackAllocatedMemory(this.width * this.height * this.depth * channels * channelSize, 'Texture');
112
121
  }
113
122
 
114
123
  this.loaded = true;
115
124
  return this;
116
125
  }
126
+ }], [{
127
+ key: "isSupported",
128
+ value: function isSupported(device) {
129
+ try {
130
+ var webglDevice = _webglDevice.default.attach(device);
131
+
132
+ return webglDevice.isWebGL2;
133
+ } catch (_unused) {
134
+ return false;
135
+ }
136
+ }
117
137
  }]);
118
138
  return Texture3D;
119
- }(_texture.default);
139
+ }(_texture.default, Symbol.toStringTag);
120
140
 
121
141
  exports.default = Texture3D;
122
142
  //# sourceMappingURL=texture-3d.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/texture-3d.js"],"names":["Texture3D","gl","props","Object","assign","depth","target","unpackFlipY","initialize","seal","level","dataFormat","width","height","border","format","type","offset","data","parameters","_trackDeallocatedMemory","bindTexture","handle","ArrayBuffer","isView","texImage3D","Buffer","bindBuffer","byteLength","_trackAllocatedMemory","channels","DATA_FORMAT_CHANNELS","channelSize","TYPE_SIZES","loaded","Texture"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;;;;;IAEqBA,S;;;;;;;gCACAC,E,EAAI;AACrB,aAAO,uBAASA,EAAT,CAAP;AACD;;;AAED,qBAAYA,EAAZ,EAA4B;AAAA;;AAAA,QAAZC,KAAY,uEAAJ,EAAI;AAAA;AAC1B,sCAAoBD,EAApB;AACAC,IAAAA,KAAK,GAAGC,MAAM,CAACC,MAAP,CAAc;AAACC,MAAAA,KAAK,EAAE;AAAR,KAAd,EAA0BH,KAA1B,EAAiC;AAACI,MAAAA,MAAM,OAAP;AAAwBC,MAAAA,WAAW,EAAE;AAArC,KAAjC,CAAR;AACA,8BAAMN,EAAN,EAAUC,KAAV;;AACA,UAAKM,UAAL,CAAgBN,KAAhB;;AAEAC,IAAAA,MAAM,CAACM,IAAP;AAN0B;AAO3B;;;;uCAeE;AAAA;;AAAA,4BAXDC,KAWC;AAAA,UAXDA,KAWC,2BAXO,CAWP;AAAA,iCAVDC,UAUC;AAAA,UAVDA,UAUC;AAAA,UATDC,KASC,QATDA,KASC;AAAA,UARDC,MAQC,QARDA,MAQC;AAAA,4BAPDR,KAOC;AAAA,UAPDA,KAOC,2BAPO,CAOP;AAAA,6BANDS,MAMC;AAAA,UANDA,MAMC,4BANQ,CAMR;AAAA,UALDC,MAKC,QALDA,MAKC;AAAA,2BAJDC,IAIC;AAAA,UAJDA,IAIC;AAAA,6BAHDC,MAGC;AAAA,UAHDA,MAGC,4BAHQ,CAGR;AAAA,UAFDC,IAEC,QAFDA,IAEC;AAAA,iCADDC,UACC;AAAA,UADDA,UACC,gCADY,EACZ;;AACD,WAAKC,uBAAL,CAA6B,SAA7B;;AAEA,WAAKnB,EAAL,CAAQoB,WAAR,CAAoB,KAAKf,MAAzB,EAAiC,KAAKgB,MAAtC;AAEA,mCAAe,KAAKrB,EAApB,EAAwBkB,UAAxB,EAAoC,YAAM;AACxC,YAAII,WAAW,CAACC,MAAZ,CAAmBN,IAAnB,CAAJ,EAA8B;AAE5B,UAAA,MAAI,CAACjB,EAAL,CAAQwB,UAAR,CACE,MAAI,CAACnB,MADP,EAEEI,KAFF,EAGEC,UAHF,EAIEC,KAJF,EAKEC,MALF,EAMER,KANF,EAOES,MAPF,EAQEC,MARF,EASEC,IATF,EAUEE,IAVF;AAYD;;AAED,YAAIA,IAAI,YAAYQ,eAApB,EAA4B;AAC1B,UAAA,MAAI,CAACzB,EAAL,CAAQ0B,UAAR,QAA2CT,IAAI,CAACI,MAAhD;;AAEA,UAAA,MAAI,CAACrB,EAAL,CAAQwB,UAAR,CACE,MAAI,CAACnB,MADP,EAEEI,KAFF,EAGEC,UAHF,EAIEC,KAJF,EAKEC,MALF,EAMER,KANF,EAOES,MAPF,EAQEC,MARF,EASEC,IATF,EAUEC,MAVF;AAYD;AACF,OAjCD;;AAmCA,UAAIC,IAAI,IAAIA,IAAI,CAACU,UAAjB,EAA6B;AAC3B,aAAKC,qBAAL,CAA2BX,IAAI,CAACU,UAAhC,EAA4C,SAA5C;AACD,OAFD,MAEO;AAGL,YAAME,QAAQ,GAAGC,qCAAqB,KAAKpB,UAA1B,KAAyC,CAA1D;AAEA,YAAMqB,WAAW,GAAGC,2BAAW,KAAKjB,IAAhB,KAAyB,CAA7C;;AAEA,aAAKa,qBAAL,CACE,KAAKjB,KAAL,GAAa,KAAKC,MAAlB,GAA2B,KAAKR,KAAhC,GAAwCyB,QAAxC,GAAmDE,WADrD,EAEE,SAFF;AAID;;AAED,WAAKE,MAAL,GAAc,IAAd;AAEA,aAAO,IAAP;AACD;;;EArFoCC,gB","sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2, assertWebGL2Context, withParameters} from '@luma.gl/gltools';\nimport Texture from './texture';\nimport {DATA_FORMAT_CHANNELS, TYPE_SIZES} from './texture-formats';\nimport Buffer from './buffer';\n\nexport default class Texture3D extends Texture {\n static isSupported(gl) {\n return isWebGL2(gl);\n }\n\n constructor(gl, props = {}) {\n assertWebGL2Context(gl);\n props = Object.assign({depth: 1}, props, {target: GL.TEXTURE_3D, unpackFlipY: false});\n super(gl, props);\n this.initialize(props);\n\n Object.seal(this);\n }\n\n // Image 3D copies from Typed Array or WebGLBuffer\n setImageData({\n level = 0,\n dataFormat = GL.RGBA,\n width,\n height,\n depth = 1,\n border = 0,\n format,\n type = GL.UNSIGNED_BYTE,\n offset = 0,\n data,\n parameters = {}\n }) {\n this._trackDeallocatedMemory('Texture');\n\n this.gl.bindTexture(this.target, this.handle);\n\n withParameters(this.gl, parameters, () => {\n if (ArrayBuffer.isView(data)) {\n // @ts-ignore\n this.gl.texImage3D(\n this.target,\n level,\n dataFormat,\n width,\n height,\n depth,\n border,\n format,\n type,\n data\n );\n }\n\n if (data instanceof Buffer) {\n this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);\n // @ts-ignore\n this.gl.texImage3D(\n this.target,\n level,\n dataFormat,\n width,\n height,\n depth,\n border,\n format,\n type,\n offset\n );\n }\n });\n\n if (data && data.byteLength) {\n this._trackAllocatedMemory(data.byteLength, 'Texture');\n } else {\n // NOTE(Tarek): Default to RGBA bytes\n // @ts-ignore\n const channels = DATA_FORMAT_CHANNELS[this.dataFormat] || 4;\n // @ts-ignore\n const channelSize = TYPE_SIZES[this.type] || 1;\n\n this._trackAllocatedMemory(\n this.width * this.height * this.depth * channels * channelSize,\n 'Texture'\n );\n }\n\n this.loaded = true;\n\n return this;\n }\n}\n"],"file":"texture-3d.js"}
1
+ {"version":3,"sources":["../../../src/classes/texture-3d.ts"],"names":["Texture3D","device","props","target","GL","TEXTURE_3D","gl2","Object","assign","depth","unpackFlipY","initialize","seal","level","dataFormat","RGBA","width","height","border","format","type","UNSIGNED_BYTE","offset","data","parameters","trackDeallocatedMemory","gl","bindTexture","handle","ArrayBuffer","isView","texImage3D","Buffer","bindBuffer","PIXEL_UNPACK_BUFFER","byteLength","trackAllocatedMemory","channels","DATA_FORMAT_CHANNELS","channelSize","TYPE_SIZES","loaded","webglDevice","WebGLDevice","attach","isWebGL2","Texture","Symbol","toStringTag"],"mappings":"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","sourcesContent":["import {Device} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport WebGLDevice from '../adapter/webgl-device';\nimport {assertWebGL2Context} from '../context/context/webgl-checks';\nimport {withParameters} from '../context/state-tracker/with-parameters';\nimport Texture, {TextureProps} from './texture';\nimport {DATA_FORMAT_CHANNELS, TYPE_SIZES} from './texture-formats';\nimport Buffer from './webgl-buffer';\n\nexport type Texture3DProps = TextureProps & {\n};\n\ntype SetImageDataOptions = {\n level?: number;\n dataFormat?: any;\n width: any;\n height: any;\n depth?: number;\n border?: number;\n format: any;\n type?: any;\n offset?: number;\n data: any;\n parameters?: {};\n};\n\n/**\n * Textures that have 3 dimensions: width, height, and depth.\n * They are accessed by 3-dimensional texture coordinates.\n */\nexport default class Texture3D extends Texture {\n static isSupported(device: Device | WebGLRenderingContext): boolean {\n try {\n const webglDevice = WebGLDevice.attach(device);\n return webglDevice.isWebGL2;\n } catch {\n return false;\n }\n }\n\n constructor(device: Device | WebGL2RenderingContext, props: Texture3DProps = {}) {\n super(device, {...props, target: GL.TEXTURE_3D});\n assertWebGL2Context(this.gl2);\n props = Object.assign({depth: 1}, props, {target: GL.TEXTURE_3D, unpackFlipY: false});\n this.initialize(props);\n Object.seal(this);\n }\n\n get [Symbol.toStringTag](): string {\n return 'Texture3D';\n }\n\n /** Image 3D copies from Typed Array or WebGLBuffer */\n setImageData({\n level = 0,\n dataFormat = GL.RGBA,\n width,\n height,\n depth = 1,\n border = 0,\n format,\n type = GL.UNSIGNED_BYTE,\n offset = 0,\n data,\n parameters = {}\n }: SetImageDataOptions) {\n this.trackDeallocatedMemory('Texture');\n\n this.gl.bindTexture(this.target, this.handle);\n\n withParameters(this.gl, parameters, () => {\n if (ArrayBuffer.isView(data)) {\n // @ts-expect-error\n this.gl.texImage3D(\n this.target,\n level,\n dataFormat,\n width,\n height,\n depth,\n border,\n format,\n type,\n data\n );\n }\n\n if (data instanceof Buffer) {\n this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);\n // @ts-expect-error\n this.gl.texImage3D(\n this.target,\n level,\n dataFormat,\n width,\n height,\n depth,\n border,\n format,\n type,\n offset\n );\n }\n });\n\n if (data && data.byteLength) {\n this.trackAllocatedMemory(data.byteLength, 'Texture');\n } else {\n // NOTE(Tarek): Default to RGBA bytes\n const channels = DATA_FORMAT_CHANNELS[this.dataFormat] || 4;\n const channelSize = TYPE_SIZES[this.type] || 1;\n\n this.trackAllocatedMemory(\n this.width * this.height * this.depth * channels * channelSize,\n 'Texture'\n );\n }\n\n this.loaded = true;\n\n return this;\n }\n}\n"],"file":"texture-3d.js"}
@@ -23,30 +23,35 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
23
23
 
24
24
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
25
 
26
- var _gltools = require("@luma.gl/gltools");
26
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
+
28
+ var _api = require("@luma.gl/api");
29
+
30
+ var _constants = _interopRequireDefault(require("@luma.gl/constants"));
27
31
 
28
32
  var _texture = _interopRequireDefault(require("./texture"));
29
33
 
34
+ var _Symbol$toStringTag;
35
+
30
36
  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); }; }
31
37
 
32
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
38
+ 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; } }
33
39
 
34
- var FACES = [34069, 34070, 34071, 34072, 34073, 34074];
40
+ _Symbol$toStringTag = Symbol.toStringTag;
35
41
 
36
- var TextureCube = function (_Texture) {
42
+ var TextureCube = function (_Texture, _Symbol$toStringTag2) {
37
43
  (0, _inherits2.default)(TextureCube, _Texture);
38
44
 
39
45
  var _super = _createSuper(TextureCube);
40
46
 
41
- function TextureCube(gl) {
47
+ function TextureCube(device, props) {
42
48
  var _this;
43
49
 
44
- var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
45
50
  (0, _classCallCheck2.default)(this, TextureCube);
46
- (0, _gltools.assertWebGLContext)(gl);
47
- _this = _super.call(this, gl, Object.assign({}, props, {
48
- target: 34067
51
+ _this = _super.call(this, device, Object.assign({}, props, {
52
+ target: _constants.default.TEXTURE_CUBE_MAP
49
53
  }));
54
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "props", void 0);
50
55
 
51
56
  _this.initialize(props);
52
57
 
@@ -55,16 +60,20 @@ var TextureCube = function (_Texture) {
55
60
  }
56
61
 
57
62
  (0, _createClass2.default)(TextureCube, [{
63
+ key: _Symbol$toStringTag2,
64
+ get: function get() {
65
+ return 'TextureCube';
66
+ }
67
+ }, {
58
68
  key: "initialize",
59
- value: function initialize() {
69
+ value: function initialize(props) {
60
70
  var _this2 = this;
61
71
 
62
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
63
72
  var _props$mipmaps = props.mipmaps,
64
73
  mipmaps = _props$mipmaps === void 0 ? true : _props$mipmaps,
65
74
  _props$parameters = props.parameters,
66
75
  parameters = _props$parameters === void 0 ? {} : _props$parameters;
67
- this.opts = props;
76
+ this.props = props;
68
77
  this.setCubeMapImageData(props).then(function () {
69
78
  _this2.loaded = true;
70
79
 
@@ -78,15 +87,15 @@ var TextureCube = function (_Texture) {
78
87
  }
79
88
  }, {
80
89
  key: "subImage",
81
- value: function subImage(_ref) {
82
- var face = _ref.face,
83
- data = _ref.data,
84
- _ref$x = _ref.x,
85
- x = _ref$x === void 0 ? 0 : _ref$x,
86
- _ref$y = _ref.y,
87
- y = _ref$y === void 0 ? 0 : _ref$y,
88
- _ref$mipmapLevel = _ref.mipmapLevel,
89
- mipmapLevel = _ref$mipmapLevel === void 0 ? 0 : _ref$mipmapLevel;
90
+ value: function subImage(options) {
91
+ var face = options.face,
92
+ data = options.data,
93
+ _options$x = options.x,
94
+ x = _options$x === void 0 ? 0 : _options$x,
95
+ _options$y = options.y,
96
+ y = _options$y === void 0 ? 0 : _options$y,
97
+ _options$mipmapLevel = options.mipmapLevel,
98
+ mipmapLevel = _options$mipmapLevel === void 0 ? 0 : _options$mipmapLevel;
90
99
  return this._subImage({
91
100
  target: face,
92
101
  data: data,
@@ -98,20 +107,20 @@ var TextureCube = function (_Texture) {
98
107
  }, {
99
108
  key: "setCubeMapImageData",
100
109
  value: function () {
101
- var _setCubeMapImageData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(_ref2) {
110
+ var _setCubeMapImageData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
102
111
  var _this3 = this;
103
112
 
104
- var width, height, pixels, data, _ref2$border, border, _ref2$format, format, _ref2$type, type, gl, imageDataMap, resolvedFaces;
113
+ var gl, width, height, pixels, data, _options$border, border, _options$format, format, _options$type, type, imageDataMap, resolvedFaces;
105
114
 
106
115
  return _regenerator.default.wrap(function _callee$(_context) {
107
116
  while (1) {
108
117
  switch (_context.prev = _context.next) {
109
118
  case 0:
110
- width = _ref2.width, height = _ref2.height, pixels = _ref2.pixels, data = _ref2.data, _ref2$border = _ref2.border, border = _ref2$border === void 0 ? 0 : _ref2$border, _ref2$format = _ref2.format, format = _ref2$format === void 0 ? 6408 : _ref2$format, _ref2$type = _ref2.type, type = _ref2$type === void 0 ? 5121 : _ref2$type;
111
119
  gl = this.gl;
120
+ width = options.width, height = options.height, pixels = options.pixels, data = options.data, _options$border = options.border, border = _options$border === void 0 ? 0 : _options$border, _options$format = options.format, format = _options$format === void 0 ? _constants.default.RGBA : _options$format, _options$type = options.type, type = _options$type === void 0 ? _constants.default.UNSIGNED_BYTE : _options$type;
112
121
  imageDataMap = pixels || data;
113
122
  _context.next = 5;
114
- return Promise.all(FACES.map(function (face) {
123
+ return Promise.all(TextureCube.FACES.map(function (face) {
115
124
  var facePixels = imageDataMap[face];
116
125
  return Promise.all(Array.isArray(facePixels) ? facePixels : [facePixels]);
117
126
  }));
@@ -119,9 +128,9 @@ var TextureCube = function (_Texture) {
119
128
  case 5:
120
129
  resolvedFaces = _context.sent;
121
130
  this.bind();
122
- FACES.forEach(function (face, index) {
123
- if (resolvedFaces[index].length > 1 && _this3.opts.mipmaps !== false) {
124
- _gltools.log.warn("".concat(_this3.id, " has mipmap and multiple LODs."))();
131
+ TextureCube.FACES.forEach(function (face, index) {
132
+ if (resolvedFaces[index].length > 1 && _this3.props.mipmaps !== false) {
133
+ _api.log.warn("".concat(_this3.id, " has mipmap and multiple LODs."))();
125
134
  }
126
135
 
127
136
  resolvedFaces[index].forEach(function (image, lodLevel) {
@@ -158,12 +167,12 @@ var TextureCube = function (_Texture) {
158
167
  height = options.height,
159
168
  pixels = options.pixels,
160
169
  data = options.data,
161
- _options$border = options.border,
162
- border = _options$border === void 0 ? 0 : _options$border,
163
- _options$format = options.format,
164
- format = _options$format === void 0 ? 6408 : _options$format,
165
- _options$type = options.type,
166
- type = _options$type === void 0 ? 5121 : _options$type;
170
+ _options$border2 = options.border,
171
+ border = _options$border2 === void 0 ? 0 : _options$border2,
172
+ _options$format2 = options.format,
173
+ format = _options$format2 === void 0 ? _constants.default.RGBA : _options$format2,
174
+ _options$type2 = options.type,
175
+ type = _options$type2 === void 0 ? _constants.default.UNSIGNED_BYTE : _options$type2;
167
176
  var gl = this.gl;
168
177
  var imageData = pixels || data;
169
178
  this.bind();
@@ -186,8 +195,8 @@ var TextureCube = function (_Texture) {
186
195
  }
187
196
  }]);
188
197
  return TextureCube;
189
- }(_texture.default);
198
+ }(_texture.default, _Symbol$toStringTag);
190
199
 
191
200
  exports.default = TextureCube;
192
- TextureCube.FACES = FACES;
201
+ (0, _defineProperty2.default)(TextureCube, "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]);
193
202
  //# sourceMappingURL=texture-cube.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/texture-cube.js"],"names":["FACES","TextureCube","gl","props","Object","assign","target","initialize","seal","mipmaps","parameters","opts","setCubeMapImageData","then","loaded","generateMipmap","setParameters","face","data","x","y","mipmapLevel","_subImage","width","height","pixels","border","format","type","imageDataMap","Promise","all","map","facePixels","Array","isArray","resolvedFaces","bind","forEach","index","length","log","warn","id","image","lodLevel","texImage2D","unbind","options","imageData","resolvedImageData","setImageDataForFace","Texture"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {log, assertWebGLContext} from '@luma.gl/gltools';\nimport Texture from './texture';\n\nconst FACES = [\n GL.TEXTURE_CUBE_MAP_POSITIVE_X,\n GL.TEXTURE_CUBE_MAP_NEGATIVE_X,\n GL.TEXTURE_CUBE_MAP_POSITIVE_Y,\n GL.TEXTURE_CUBE_MAP_NEGATIVE_Y,\n GL.TEXTURE_CUBE_MAP_POSITIVE_Z,\n GL.TEXTURE_CUBE_MAP_NEGATIVE_Z\n];\n\nexport default class TextureCube extends Texture {\n constructor(gl, props = {}) {\n assertWebGLContext(gl);\n\n super(gl, Object.assign({}, props, {target: GL.TEXTURE_CUBE_MAP}));\n\n this.initialize(props);\n\n Object.seal(this);\n }\n\n initialize(props = {}) {\n const {mipmaps = true, parameters = {}} = props;\n\n // Store props for accessors\n this.opts = props;\n\n // @ts-ignore\n this.setCubeMapImageData(props).then(() => {\n this.loaded = true;\n\n // TODO - should genMipmap() be called on the cubemap or on the faces?\n // TODO - without generateMipmap() cube textures do not work at all!!! Why?\n if (mipmaps) {\n this.generateMipmap(props);\n }\n\n this.setParameters(parameters);\n });\n return this;\n }\n\n subImage({face, data, x = 0, y = 0, mipmapLevel = 0}) {\n // @ts-ignore TODO - is this a bug?\n return this._subImage({target: face, data, x, y, mipmapLevel});\n }\n\n /* eslint-disable max-statements, max-len */\n async setCubeMapImageData({\n width,\n height,\n pixels,\n data,\n border = 0,\n format = GL.RGBA,\n type = GL.UNSIGNED_BYTE\n }) {\n const {gl} = this;\n const imageDataMap = pixels || data;\n\n // pixel data (imageDataMap) is an Object from Face to Image or Promise.\n // For example:\n // {\n // GL.TEXTURE_CUBE_MAP_POSITIVE_X : Image-or-Promise,\n // GL.TEXTURE_CUBE_MAP_NEGATIVE_X : Image-or-Promise,\n // ... }\n // To provide multiple level-of-details (LODs) this can be Face to Array\n // of Image or Promise, like this\n // {\n // GL.TEXTURE_CUBE_MAP_POSITIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],\n // GL.TEXTURE_CUBE_MAP_NEGATIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],\n // ... }\n\n const resolvedFaces = await Promise.all(\n FACES.map(face => {\n const facePixels = imageDataMap[face];\n return Promise.all(Array.isArray(facePixels) ? facePixels : [facePixels]);\n })\n );\n\n this.bind();\n\n FACES.forEach((face, index) => {\n if (resolvedFaces[index].length > 1 && this.opts.mipmaps !== false) {\n // If the user provides multiple LODs, then automatic mipmap\n // generation generateMipmap() should be disabled to avoid overwritting them.\n log.warn(`${this.id} has mipmap and multiple LODs.`)();\n }\n resolvedFaces[index].forEach((image, lodLevel) => {\n // TODO: adjust width & height for LOD!\n if (width && height) {\n gl.texImage2D(face, lodLevel, format, width, height, border, format, type, image);\n } else {\n gl.texImage2D(face, lodLevel, format, format, type, image);\n }\n });\n });\n\n this.unbind();\n }\n\n // TODO: update this method to accept LODs\n setImageDataForFace(options) {\n const {\n face,\n width,\n height,\n pixels,\n data,\n border = 0,\n format = GL.RGBA,\n type = GL.UNSIGNED_BYTE\n // generateMipmap = false // TODO\n } = options;\n\n const {gl} = this;\n\n const imageData = pixels || data;\n\n this.bind();\n if (imageData instanceof Promise) {\n imageData.then(resolvedImageData =>\n this.setImageDataForFace(\n Object.assign({}, options, {\n face,\n data: resolvedImageData,\n pixels: resolvedImageData\n })\n )\n );\n } else if (this.width || this.height) {\n gl.texImage2D(face, 0, format, width, height, border, format, type, imageData);\n } else {\n gl.texImage2D(face, 0, format, format, type, imageData);\n }\n\n return this;\n }\n}\n\nTextureCube.FACES = FACES;\n"],"file":"texture-cube.js"}
1
+ {"version":3,"sources":["../../../src/classes/texture-cube.ts"],"names":["Symbol","toStringTag","TextureCube","device","props","Object","assign","target","GL","TEXTURE_CUBE_MAP","initialize","seal","mipmaps","parameters","setCubeMapImageData","then","loaded","generateMipmap","setParameters","options","face","data","x","y","mipmapLevel","_subImage","gl","width","height","pixels","border","format","RGBA","type","UNSIGNED_BYTE","imageDataMap","Promise","all","FACES","map","facePixels","Array","isArray","resolvedFaces","bind","forEach","index","length","log","warn","id","image","lodLevel","texImage2D","unbind","imageData","resolvedImageData","setImageDataForFace","Texture","TEXTURE_CUBE_MAP_POSITIVE_X","TEXTURE_CUBE_MAP_NEGATIVE_X","TEXTURE_CUBE_MAP_POSITIVE_Y","TEXTURE_CUBE_MAP_NEGATIVE_Y","TEXTURE_CUBE_MAP_POSITIVE_Z","TEXTURE_CUBE_MAP_NEGATIVE_Z"],"mappings":"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","sourcesContent":["import {Device, log} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport WebGLDevice from '../adapter/webgl-device';\nimport {assertWebGLContext} from '../context/context/webgl-checks';\nimport Texture, {TextureProps} from './texture';\n\nexport type TextureCubeProps = TextureProps & {\n};\n\nexport default class TextureCube extends Texture {\n static FACES: number[] = [\n GL.TEXTURE_CUBE_MAP_POSITIVE_X,\n GL.TEXTURE_CUBE_MAP_NEGATIVE_X,\n GL.TEXTURE_CUBE_MAP_POSITIVE_Y,\n GL.TEXTURE_CUBE_MAP_NEGATIVE_Y,\n GL.TEXTURE_CUBE_MAP_POSITIVE_Z,\n GL.TEXTURE_CUBE_MAP_NEGATIVE_Z\n ];\n\n props;\n\n constructor(device: Device | WebGLRenderingContext, props?: TextureCubeProps) {\n super(device, Object.assign({}, props, {target: GL.TEXTURE_CUBE_MAP}));\n\n this.initialize(props);\n\n Object.seal(this);\n }\n\n get [Symbol.toStringTag](): string {\n return 'TextureCube';\n }\n\n initialize(props?: TextureCubeProps): this {\n const {mipmaps = true, parameters = {}} = props;\n\n // Store props for accessors\n this.props = props;\n\n // @ts-expect-error\n this.setCubeMapImageData(props).then(() => {\n this.loaded = true;\n\n // TODO - should genMipmap() be called on the cubemap or on the faces?\n // TODO - without generateMipmap() cube textures do not work at all!!! Why?\n if (mipmaps) {\n this.generateMipmap(props);\n }\n\n this.setParameters(parameters);\n });\n return this;\n }\n\n subImage(options: {face: any; data: any; x?: number; y?: number; mipmapLevel?: number}): any {\n const {face, data, x = 0, y = 0, mipmapLevel = 0} = options;\n // @ts-expect-error TODO - is this a bug?\n return this._subImage({target: face, data, x, y, mipmapLevel});\n }\n\n /* eslint-disable max-statements, max-len */\n async setCubeMapImageData(options: {\n width: any;\n height: any;\n pixels: any;\n data: any;\n border?: number;\n format?: any;\n type?: any;\n }): Promise<void>{\n const {gl} = this;\n\n const {\n width,\n height,\n pixels,\n data,\n border = 0,\n format = GL.RGBA,\n type = GL.UNSIGNED_BYTE\n } = options;\n const imageDataMap = pixels || data;\n\n // pixel data (imageDataMap) is an Object from Face to Image or Promise.\n // For example:\n // {\n // GL.TEXTURE_CUBE_MAP_POSITIVE_X : Image-or-Promise,\n // GL.TEXTURE_CUBE_MAP_NEGATIVE_X : Image-or-Promise,\n // ... }\n // To provide multiple level-of-details (LODs) this can be Face to Array\n // of Image or Promise, like this\n // {\n // GL.TEXTURE_CUBE_MAP_POSITIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],\n // GL.TEXTURE_CUBE_MAP_NEGATIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],\n // ... }\n\n const resolvedFaces = await Promise.all(\n TextureCube.FACES.map((face) => {\n const facePixels = imageDataMap[face];\n return Promise.all(Array.isArray(facePixels) ? facePixels : [facePixels]);\n })\n );\n\n this.bind();\n\n TextureCube.FACES.forEach((face, index) => {\n if (resolvedFaces[index].length > 1 && this.props.mipmaps !== false) {\n // If the user provides multiple LODs, then automatic mipmap\n // generation generateMipmap() should be disabled to avoid overwritting them.\n log.warn(`${this.id} has mipmap and multiple LODs.`)();\n }\n resolvedFaces[index].forEach((image, lodLevel) => {\n // TODO: adjust width & height for LOD!\n if (width && height) {\n gl.texImage2D(face, lodLevel, format, width, height, border, format, type, image);\n } else {\n gl.texImage2D(face, lodLevel, format, format, type, image);\n }\n });\n });\n\n this.unbind();\n }\n\n // TODO: update this method to accept LODs\n setImageDataForFace(options) {\n const {\n face,\n width,\n height,\n pixels,\n data,\n border = 0,\n format = GL.RGBA,\n type = GL.UNSIGNED_BYTE\n // generateMipmap = false // TODO\n } = options;\n\n const {gl} = this;\n\n const imageData = pixels || data;\n\n this.bind();\n if (imageData instanceof Promise) {\n imageData.then((resolvedImageData) =>\n this.setImageDataForFace(\n Object.assign({}, options, {\n face,\n data: resolvedImageData,\n pixels: resolvedImageData\n })\n )\n );\n } else if (this.width || this.height) {\n gl.texImage2D(face, 0, format, width, height, border, format, type, imageData);\n } else {\n gl.texImage2D(face, 0, format, format, type, imageData);\n }\n\n return this;\n }\n}\n"],"file":"texture-cube.js"}