@luma.gl/webgl 8.5.10 → 8.6.0-alpha.4

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 (804) hide show
  1. package/LICENSE +8 -1
  2. package/dist/_deprecated/context-api.d.ts +85 -0
  3. package/dist/_deprecated/context-api.d.ts.map +1 -0
  4. package/dist/_deprecated/context-api.js +70 -0
  5. package/dist/_deprecated/context-api.js.map +1 -0
  6. package/dist/_deprecated/features.d.ts +27 -0
  7. package/dist/_deprecated/features.d.ts.map +1 -0
  8. package/{src/features/webgl-features-table.js → dist/_deprecated/features.js} +66 -59
  9. package/dist/_deprecated/features.js.map +1 -0
  10. package/dist/adapter/converters/set-device-parameters.d.ts +5 -0
  11. package/dist/adapter/converters/set-device-parameters.d.ts.map +1 -0
  12. package/dist/adapter/converters/set-device-parameters.js +124 -0
  13. package/dist/adapter/converters/set-device-parameters.js.map +1 -0
  14. package/dist/adapter/converters/webgpu-texture-formats.d.ts +281 -0
  15. package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +1 -0
  16. package/dist/adapter/converters/webgpu-texture-formats.js +285 -0
  17. package/dist/adapter/converters/webgpu-texture-formats.js.map +1 -0
  18. package/dist/adapter/device-helpers/device-features.d.ts +12 -0
  19. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -0
  20. package/dist/adapter/device-helpers/device-features.js +123 -0
  21. package/dist/adapter/device-helpers/device-features.js.map +1 -0
  22. package/dist/adapter/device-helpers/device-limits.d.ts +51 -0
  23. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -0
  24. package/dist/adapter/device-helpers/device-limits.js +90 -0
  25. package/dist/adapter/device-helpers/device-limits.js.map +1 -0
  26. package/dist/adapter/device-helpers/get-device-info.d.ts +4 -0
  27. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -0
  28. package/dist/adapter/device-helpers/get-device-info.js +44 -0
  29. package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
  30. package/dist/adapter/device-helpers/is-old-ie.d.ts +2 -0
  31. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -0
  32. package/dist/{esm/features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
  33. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
  34. package/dist/adapter/webgl-device.d.ts +111 -0
  35. package/dist/adapter/webgl-device.d.ts.map +1 -0
  36. package/dist/adapter/webgl-device.js +208 -0
  37. package/dist/adapter/webgl-device.js.map +1 -0
  38. package/dist/adapter/webgl-shader.d.ts +18 -0
  39. package/dist/adapter/webgl-shader.d.ts.map +1 -0
  40. package/dist/adapter/webgl-shader.js +82 -0
  41. package/dist/adapter/webgl-shader.js.map +1 -0
  42. package/dist/bundle.d.ts +2 -0
  43. package/dist/bundle.d.ts.map +1 -0
  44. package/dist/bundle.js +5 -0
  45. package/dist/bundle.js.map +1 -0
  46. package/dist/classes/accessor.d.ts +28 -0
  47. package/dist/classes/accessor.d.ts.map +1 -0
  48. package/dist/classes/accessor.js +112 -0
  49. package/dist/classes/accessor.js.map +1 -0
  50. package/dist/classes/accessor.ts.disabled +159 -0
  51. package/dist/classes/clear.d.ts +17 -0
  52. package/dist/classes/clear.d.ts.map +1 -0
  53. package/{src → dist}/classes/clear.js +29 -23
  54. package/dist/classes/clear.js.map +1 -0
  55. package/dist/classes/copy-and-blit.d.ts +86 -0
  56. package/dist/classes/copy-and-blit.d.ts.map +1 -0
  57. package/dist/classes/copy-and-blit.js +338 -0
  58. package/dist/classes/copy-and-blit.js.map +1 -0
  59. package/dist/classes/framebuffer.d.ts +139 -0
  60. package/dist/classes/framebuffer.d.ts.map +1 -0
  61. package/dist/classes/framebuffer.js +656 -0
  62. package/dist/classes/framebuffer.js.map +1 -0
  63. package/dist/classes/program-configuration.d.ts +24 -0
  64. package/dist/classes/program-configuration.d.ts.map +1 -0
  65. package/dist/classes/program-configuration.js +73 -0
  66. package/dist/classes/program-configuration.js.map +1 -0
  67. package/dist/classes/program.d.ts +66 -0
  68. package/dist/classes/program.d.ts.map +1 -0
  69. package/dist/classes/program.js +379 -0
  70. package/dist/classes/program.js.map +1 -0
  71. package/dist/classes/query.d.ts +27 -0
  72. package/dist/classes/query.d.ts.map +1 -0
  73. package/dist/classes/query.js +145 -0
  74. package/dist/classes/query.js.map +1 -0
  75. package/dist/classes/renderbuffer-formats.d.ts +16 -0
  76. package/dist/classes/renderbuffer-formats.d.ts.map +1 -0
  77. package/dist/classes/renderbuffer-formats.js +185 -0
  78. package/dist/classes/renderbuffer-formats.js.map +1 -0
  79. package/dist/classes/renderbuffer.d.ts +60 -0
  80. package/dist/classes/renderbuffer.d.ts.map +1 -0
  81. package/dist/classes/renderbuffer.js +128 -0
  82. package/dist/classes/renderbuffer.js.map +1 -0
  83. package/dist/classes/shader.d.ts +42 -0
  84. package/dist/classes/shader.d.ts.map +1 -0
  85. package/dist/classes/shader.js +118 -0
  86. package/dist/classes/shader.js.map +1 -0
  87. package/dist/classes/texture-2d.d.ts +9 -0
  88. package/dist/classes/texture-2d.d.ts.map +1 -0
  89. package/dist/classes/texture-2d.js +36 -0
  90. package/dist/classes/texture-2d.js.map +1 -0
  91. package/dist/classes/texture-3d.d.ts +29 -0
  92. package/dist/classes/texture-3d.d.ts.map +1 -0
  93. package/dist/classes/texture-3d.js +76 -0
  94. package/dist/classes/texture-3d.js.map +1 -0
  95. package/dist/classes/texture-cube.d.ts +28 -0
  96. package/dist/classes/texture-cube.d.ts.map +1 -0
  97. package/dist/classes/texture-cube.js +130 -0
  98. package/dist/classes/texture-cube.js.map +1 -0
  99. package/dist/classes/texture-formats.d.ts +37 -0
  100. package/dist/classes/texture-formats.d.ts.map +1 -0
  101. package/dist/classes/texture-formats.js +98 -0
  102. package/dist/classes/texture-formats.js.map +1 -0
  103. package/dist/classes/texture.d.ts +123 -0
  104. package/dist/classes/texture.d.ts.map +1 -0
  105. package/dist/classes/texture.js +786 -0
  106. package/dist/classes/texture.js.map +1 -0
  107. package/dist/classes/transform-feedback.d.ts +33 -0
  108. package/dist/classes/transform-feedback.d.ts.map +1 -0
  109. package/dist/classes/transform-feedback.js +198 -0
  110. package/dist/classes/transform-feedback.js.map +1 -0
  111. package/dist/classes/uniform-buffer-layout.d.ts +17 -0
  112. package/dist/classes/uniform-buffer-layout.d.ts.map +1 -0
  113. package/dist/classes/uniform-buffer-layout.js +104 -0
  114. package/dist/classes/uniform-buffer-layout.js.map +1 -0
  115. package/dist/classes/uniforms.d.ts +37 -0
  116. package/dist/classes/uniforms.d.ts.map +1 -0
  117. package/dist/classes/uniforms.js +250 -0
  118. package/dist/classes/uniforms.js.map +1 -0
  119. package/dist/classes/vertex-array-object.d.ts +76 -0
  120. package/dist/classes/vertex-array-object.d.ts.map +1 -0
  121. package/dist/classes/vertex-array-object.js +261 -0
  122. package/dist/classes/vertex-array-object.js.map +1 -0
  123. package/dist/classes/vertex-array.d.ts +75 -0
  124. package/dist/classes/vertex-array.d.ts.map +1 -0
  125. package/dist/classes/vertex-array.js +408 -0
  126. package/dist/classes/vertex-array.js.map +1 -0
  127. package/dist/classes/webgl-buffer.d.ts +100 -0
  128. package/dist/classes/webgl-buffer.d.ts.map +1 -0
  129. package/dist/{esm/classes/buffer.js → classes/webgl-buffer.js} +100 -73
  130. package/dist/classes/webgl-buffer.js.map +1 -0
  131. package/dist/classes/webgl-resource.d.ts +56 -0
  132. package/dist/classes/webgl-resource.d.ts.map +1 -0
  133. package/dist/{esm/classes/resource.js → classes/webgl-resource.js} +35 -52
  134. package/dist/classes/webgl-resource.js.map +1 -0
  135. package/dist/context/context/context-state.d.ts +18 -0
  136. package/dist/context/context/context-state.d.ts.map +1 -0
  137. package/dist/context/context/context-state.js +26 -0
  138. package/dist/context/context/context-state.js.map +1 -0
  139. package/dist/context/context/create-context.d.ts +40 -0
  140. package/dist/context/context/create-context.d.ts.map +1 -0
  141. package/dist/context/context/create-context.js +37 -0
  142. package/dist/context/context/create-context.js.map +1 -0
  143. package/dist/context/context/device-pixels.d.ts +25 -0
  144. package/dist/context/context/device-pixels.d.ts.map +1 -0
  145. package/dist/context/context/device-pixels.js +98 -0
  146. package/dist/context/context/device-pixels.js.map +1 -0
  147. package/dist/context/context/get-canvas.d.ts +13 -0
  148. package/dist/context/context/get-canvas.d.ts.map +1 -0
  149. package/dist/context/context/get-canvas.js +31 -0
  150. package/dist/context/context/get-canvas.js.map +1 -0
  151. package/dist/context/context/resize-context.d.ts +20 -0
  152. package/dist/context/context/resize-context.d.ts.map +1 -0
  153. package/dist/context/context/resize-context.js +15 -0
  154. package/dist/context/context/resize-context.js.map +1 -0
  155. package/dist/context/context/webgl-checks.d.ts +13 -0
  156. package/dist/context/context/webgl-checks.d.ts.map +1 -0
  157. package/dist/context/context/webgl-checks.js +34 -0
  158. package/dist/context/context/webgl-checks.js.map +1 -0
  159. package/dist/context/parameters/unified-parameter-api.d.ts +31 -0
  160. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
  161. package/dist/context/parameters/unified-parameter-api.js +65 -0
  162. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  163. package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
  164. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
  165. package/dist/context/parameters/webgl-parameter-tables.js +445 -0
  166. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  167. package/dist/context/parameters/webgl-parameters.d.ts +144 -0
  168. package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
  169. package/dist/context/parameters/webgl-parameters.js +2 -0
  170. package/dist/context/parameters/webgl-parameters.js.map +1 -0
  171. package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
  172. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
  173. package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
  174. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  175. package/dist/context/polyfill/polyfill-context.d.ts +5 -0
  176. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
  177. package/dist/context/polyfill/polyfill-context.js +91 -0
  178. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  179. package/dist/context/polyfill/polyfill-table.d.ts +48 -0
  180. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
  181. package/dist/context/polyfill/polyfill-table.js +160 -0
  182. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  183. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
  184. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
  185. package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
  186. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  187. package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
  188. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
  189. package/dist/context/state-tracker/deep-array-equal.js +21 -0
  190. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  191. package/dist/context/state-tracker/track-context-state.d.ts +22 -0
  192. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
  193. package/dist/context/state-tracker/track-context-state.js +169 -0
  194. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  195. package/dist/context/state-tracker/with-parameters.d.ts +13 -0
  196. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
  197. package/dist/context/state-tracker/with-parameters.js +36 -0
  198. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  199. package/dist/debug/debug-program-configuration.d.ts +2 -0
  200. package/dist/debug/debug-program-configuration.d.ts.map +1 -0
  201. package/dist/debug/debug-program-configuration.js +40 -0
  202. package/dist/debug/debug-program-configuration.js.map +1 -0
  203. package/dist/debug/debug-uniforms.d.ts +12 -0
  204. package/dist/debug/debug-uniforms.d.ts.map +1 -0
  205. package/dist/debug/debug-uniforms.js +108 -0
  206. package/dist/debug/debug-uniforms.js.map +1 -0
  207. package/dist/debug/debug-vertex-array.d.ts +5 -0
  208. package/dist/debug/debug-vertex-array.d.ts.map +1 -0
  209. package/dist/debug/debug-vertex-array.js +118 -0
  210. package/dist/debug/debug-vertex-array.js.map +1 -0
  211. package/dist/es5/_deprecated/context-api.js +110 -0
  212. package/dist/es5/_deprecated/context-api.js.map +1 -0
  213. package/dist/es5/_deprecated/features.js +118 -0
  214. package/dist/es5/_deprecated/features.js.map +1 -0
  215. package/dist/es5/adapter/converters/set-device-parameters.js +138 -0
  216. package/dist/es5/adapter/converters/set-device-parameters.js.map +1 -0
  217. package/dist/es5/adapter/converters/webgpu-texture-formats.js +296 -0
  218. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +1 -0
  219. package/dist/es5/adapter/device-helpers/device-features.js +152 -0
  220. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -0
  221. package/dist/es5/adapter/device-helpers/device-limits.js +64 -0
  222. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -0
  223. package/dist/es5/adapter/device-helpers/get-device-info.js +55 -0
  224. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -0
  225. package/dist/es5/{features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
  226. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -0
  227. package/dist/es5/adapter/webgl-device.js +279 -0
  228. package/dist/es5/adapter/webgl-device.js.map +1 -0
  229. package/dist/es5/adapter/webgl-shader.js +155 -0
  230. package/dist/es5/adapter/webgl-shader.js.map +1 -0
  231. package/dist/es5/bundle.js +2 -4
  232. package/dist/es5/bundle.js.map +1 -1
  233. package/dist/es5/classes/accessor.js +36 -38
  234. package/dist/es5/classes/accessor.js.map +1 -1
  235. package/dist/es5/classes/accessor.ts.disabled +159 -0
  236. package/dist/es5/classes/clear.js +17 -11
  237. package/dist/es5/classes/clear.js.map +1 -1
  238. package/dist/es5/classes/copy-and-blit.js +121 -117
  239. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  240. package/dist/es5/classes/framebuffer.js +435 -423
  241. package/dist/es5/classes/framebuffer.js.map +1 -1
  242. package/dist/es5/classes/program-configuration.js +44 -108
  243. package/dist/es5/classes/program-configuration.js.map +1 -1
  244. package/dist/es5/classes/program.js +108 -85
  245. package/dist/es5/classes/program.js.map +1 -1
  246. package/dist/es5/classes/query.js +58 -59
  247. package/dist/es5/classes/query.js.map +1 -1
  248. package/dist/es5/classes/renderbuffer-formats.js +79 -52
  249. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  250. package/dist/es5/classes/renderbuffer.js +129 -100
  251. package/dist/es5/classes/renderbuffer.js.map +1 -1
  252. package/dist/es5/classes/shader.js +70 -96
  253. package/dist/es5/classes/shader.js.map +1 -1
  254. package/dist/es5/classes/texture-2d.js +25 -21
  255. package/dist/es5/classes/texture-2d.js.map +1 -1
  256. package/dist/es5/classes/texture-3d.js +49 -29
  257. package/dist/es5/classes/texture-3d.js.map +1 -1
  258. package/dist/es5/classes/texture-cube.js +45 -36
  259. package/dist/es5/classes/texture-cube.js.map +1 -1
  260. package/dist/es5/classes/texture-formats.js +35 -33
  261. package/dist/es5/classes/texture-formats.js.map +1 -1
  262. package/dist/es5/classes/texture.js +213 -101
  263. package/dist/es5/classes/texture.js.map +1 -1
  264. package/dist/es5/classes/transform-feedback.js +37 -34
  265. package/dist/es5/classes/transform-feedback.js.map +1 -1
  266. package/dist/es5/classes/uniform-buffer-layout.js +4 -4
  267. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  268. package/dist/es5/classes/uniforms.js +73 -73
  269. package/dist/es5/classes/uniforms.js.map +1 -1
  270. package/dist/es5/classes/vertex-array-object.js +106 -149
  271. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  272. package/dist/es5/classes/vertex-array.js +52 -43
  273. package/dist/es5/classes/vertex-array.js.map +1 -1
  274. package/dist/es5/classes/{buffer.js → webgl-buffer.js} +120 -111
  275. package/dist/es5/classes/webgl-buffer.js.map +1 -0
  276. package/dist/es5/classes/{resource.js → webgl-resource.js} +78 -99
  277. package/dist/es5/classes/webgl-resource.js.map +1 -0
  278. package/dist/es5/context/context/context-state.js +31 -0
  279. package/dist/es5/context/context/context-state.js.map +1 -0
  280. package/dist/es5/context/context/create-context.js +57 -0
  281. package/dist/es5/context/context/create-context.js.map +1 -0
  282. package/dist/es5/context/context/device-pixels.js +115 -0
  283. package/dist/es5/context/context/device-pixels.js.map +1 -0
  284. package/dist/es5/context/context/get-canvas.js +40 -0
  285. package/dist/es5/context/context/get-canvas.js.map +1 -0
  286. package/dist/es5/context/context/resize-context.js +23 -0
  287. package/dist/es5/context/context/resize-context.js.map +1 -0
  288. package/dist/es5/context/context/webgl-checks.js +54 -0
  289. package/dist/es5/context/context/webgl-checks.js.map +1 -0
  290. package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
  291. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
  292. package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
  293. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
  294. package/dist/es5/context/parameters/webgl-parameters.js +6 -0
  295. package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
  296. package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
  297. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
  298. package/dist/es5/context/polyfill/polyfill-context.js +134 -0
  299. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
  300. package/dist/es5/context/polyfill/polyfill-table.js +166 -0
  301. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
  302. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
  303. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  304. package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
  305. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
  306. package/dist/es5/context/state-tracker/track-context-state.js +196 -0
  307. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
  308. package/dist/es5/context/state-tracker/with-parameters.js +44 -0
  309. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
  310. package/dist/es5/debug/debug-program-configuration.js +1 -1
  311. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  312. package/dist/es5/debug/debug-uniforms.js +18 -20
  313. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  314. package/dist/es5/debug/debug-vertex-array.js +16 -16
  315. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  316. package/dist/es5/helpers/get-program-bindings.js +274 -0
  317. package/dist/es5/helpers/get-program-bindings.js.map +1 -0
  318. package/dist/es5/helpers/program-bindings.js +2 -0
  319. package/dist/es5/helpers/program-bindings.js.map +1 -0
  320. package/dist/es5/index.js +229 -99
  321. package/dist/es5/index.js.map +1 -1
  322. package/dist/es5/init.js +21 -41
  323. package/dist/es5/init.js.map +1 -1
  324. package/dist/es5/types/accessor.d.ts +29 -0
  325. package/dist/es5/types.js +2 -0
  326. package/dist/es5/types.js.map +1 -0
  327. package/dist/es5/webgl-utils/attribute-utils.js +4 -4
  328. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  329. package/dist/es5/webgl-utils/constants-to-keys.js +3 -3
  330. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  331. package/dist/es5/webgl-utils/format-utils.js +21 -17
  332. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  333. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  334. package/dist/es5/webgl-utils/index.js +74 -0
  335. package/dist/es5/webgl-utils/index.js.map +1 -0
  336. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +72 -0
  337. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  338. package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
  339. package/dist/es5/webgl-utils/texture-utils.js +6 -4
  340. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  341. package/dist/es5/webgl-utils/typed-array-utils.js +39 -34
  342. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  343. package/dist/esm/_deprecated/context-api.js +70 -0
  344. package/dist/esm/_deprecated/context-api.js.map +1 -0
  345. package/dist/esm/{features/webgl-features-table.js → _deprecated/features.js} +66 -26
  346. package/dist/esm/_deprecated/features.js.map +1 -0
  347. package/dist/esm/adapter/converters/set-device-parameters.js +124 -0
  348. package/dist/esm/adapter/converters/set-device-parameters.js.map +1 -0
  349. package/dist/esm/adapter/converters/webgpu-texture-formats.js +285 -0
  350. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +1 -0
  351. package/dist/esm/adapter/device-helpers/device-features.js +123 -0
  352. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -0
  353. package/dist/esm/adapter/device-helpers/device-limits.js +90 -0
  354. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -0
  355. package/dist/esm/adapter/device-helpers/get-device-info.js +44 -0
  356. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -0
  357. package/dist/esm/adapter/device-helpers/is-old-ie.js +8 -0
  358. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -0
  359. package/dist/esm/adapter/webgl-device.js +208 -0
  360. package/dist/esm/adapter/webgl-device.js.map +1 -0
  361. package/dist/esm/adapter/webgl-shader.js +82 -0
  362. package/dist/esm/adapter/webgl-shader.js.map +1 -0
  363. package/dist/esm/bundle.js +2 -4
  364. package/dist/esm/bundle.js.map +1 -1
  365. package/dist/esm/classes/accessor.js +6 -6
  366. package/dist/esm/classes/accessor.js.map +1 -1
  367. package/dist/esm/classes/accessor.ts.disabled +159 -0
  368. package/dist/esm/classes/clear.js +19 -14
  369. package/dist/esm/classes/clear.js.map +1 -1
  370. package/dist/esm/classes/copy-and-blit.js +67 -64
  371. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  372. package/dist/esm/classes/framebuffer.js +341 -313
  373. package/dist/esm/classes/framebuffer.js.map +1 -1
  374. package/dist/esm/classes/program-configuration.js +25 -104
  375. package/dist/esm/classes/program-configuration.js.map +1 -1
  376. package/dist/esm/classes/program.js +98 -62
  377. package/dist/esm/classes/program.js.map +1 -1
  378. package/dist/esm/classes/query.js +20 -16
  379. package/dist/esm/classes/query.js.map +1 -1
  380. package/dist/esm/classes/renderbuffer-formats.js +72 -49
  381. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  382. package/dist/esm/classes/renderbuffer.js +86 -73
  383. package/dist/esm/classes/renderbuffer.js.map +1 -1
  384. package/dist/esm/classes/shader.js +47 -67
  385. package/dist/esm/classes/shader.js.map +1 -1
  386. package/dist/esm/classes/texture-2d.js +13 -9
  387. package/dist/esm/classes/texture-2d.js.map +1 -1
  388. package/dist/esm/classes/texture-3d.js +28 -16
  389. package/dist/esm/classes/texture-3d.js.map +1 -1
  390. package/dist/esm/classes/texture-cube.js +45 -31
  391. package/dist/esm/classes/texture-cube.js.map +1 -1
  392. package/dist/esm/classes/texture-formats.js +52 -51
  393. package/dist/esm/classes/texture-formats.js.map +1 -1
  394. package/dist/esm/classes/texture.js +174 -58
  395. package/dist/esm/classes/texture.js.map +1 -1
  396. package/dist/esm/classes/transform-feedback.js +26 -14
  397. package/dist/esm/classes/transform-feedback.js.map +1 -1
  398. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  399. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  400. package/dist/esm/classes/uniforms.js +111 -113
  401. package/dist/esm/classes/uniforms.js.map +1 -1
  402. package/dist/esm/classes/vertex-array-object.js +52 -89
  403. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  404. package/dist/esm/classes/vertex-array.js +52 -31
  405. package/dist/esm/classes/vertex-array.js.map +1 -1
  406. package/dist/esm/classes/webgl-buffer.js +382 -0
  407. package/dist/esm/classes/webgl-buffer.js.map +1 -0
  408. package/dist/esm/classes/webgl-resource.js +212 -0
  409. package/dist/esm/classes/webgl-resource.js.map +1 -0
  410. package/dist/esm/context/context/context-state.js +26 -0
  411. package/dist/esm/context/context/context-state.js.map +1 -0
  412. package/dist/esm/context/context/create-context.js +37 -0
  413. package/dist/esm/context/context/create-context.js.map +1 -0
  414. package/dist/esm/context/context/device-pixels.js +98 -0
  415. package/dist/esm/context/context/device-pixels.js.map +1 -0
  416. package/dist/esm/context/context/get-canvas.js +31 -0
  417. package/dist/esm/context/context/get-canvas.js.map +1 -0
  418. package/dist/esm/context/context/resize-context.js +15 -0
  419. package/dist/esm/context/context/resize-context.js.map +1 -0
  420. package/dist/esm/context/context/webgl-checks.js +34 -0
  421. package/dist/esm/context/context/webgl-checks.js.map +1 -0
  422. package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
  423. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
  424. package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
  425. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
  426. package/dist/esm/context/parameters/webgl-parameters.js +2 -0
  427. package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
  428. package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
  429. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
  430. package/dist/esm/context/polyfill/polyfill-context.js +91 -0
  431. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
  432. package/dist/esm/context/polyfill/polyfill-table.js +160 -0
  433. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
  434. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
  435. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  436. package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
  437. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
  438. package/dist/esm/context/state-tracker/track-context-state.js +169 -0
  439. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
  440. package/dist/esm/context/state-tracker/with-parameters.js +36 -0
  441. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
  442. package/dist/esm/debug/debug-program-configuration.js +4 -4
  443. package/dist/esm/debug/debug-program-configuration.js.map +1 -1
  444. package/dist/esm/debug/debug-uniforms.js +9 -9
  445. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  446. package/dist/esm/debug/debug-vertex-array.js +18 -16
  447. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  448. package/dist/esm/helpers/get-program-bindings.js +228 -0
  449. package/dist/esm/helpers/get-program-bindings.js.map +1 -0
  450. package/dist/esm/helpers/program-bindings.js +2 -0
  451. package/dist/esm/helpers/program-bindings.js.map +1 -0
  452. package/dist/esm/index.js +19 -15
  453. package/dist/esm/index.js.map +1 -1
  454. package/dist/esm/init.js +12 -28
  455. package/dist/esm/init.js.map +1 -1
  456. package/dist/esm/types/accessor.d.ts +29 -0
  457. package/dist/esm/types.js +2 -0
  458. package/dist/esm/types.js.map +1 -0
  459. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  460. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  461. package/dist/esm/webgl-utils/constants-to-keys.js +4 -4
  462. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  463. package/dist/esm/webgl-utils/format-utils.js +16 -15
  464. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  465. package/dist/esm/webgl-utils/get-error.js +1 -1
  466. package/dist/esm/webgl-utils/get-error.js.map +1 -1
  467. package/dist/esm/webgl-utils/index.js +5 -0
  468. package/dist/esm/webgl-utils/index.js.map +1 -0
  469. package/dist/esm/webgl-utils/parse-shader-compiler-log.js +37 -0
  470. package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  471. package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
  472. package/dist/esm/webgl-utils/texture-utils.js +4 -3
  473. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  474. package/dist/esm/webgl-utils/typed-array-utils.js +41 -36
  475. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  476. package/dist/helpers/get-program-bindings.d.ts +8 -0
  477. package/dist/helpers/get-program-bindings.d.ts.map +1 -0
  478. package/dist/helpers/get-program-bindings.js +228 -0
  479. package/dist/helpers/get-program-bindings.js.map +1 -0
  480. package/dist/helpers/program-bindings.d.ts +41 -0
  481. package/dist/helpers/program-bindings.d.ts.map +1 -0
  482. package/dist/helpers/program-bindings.js +2 -0
  483. package/dist/helpers/program-bindings.js.map +1 -0
  484. package/dist/index.d.ts +54 -0
  485. package/dist/index.d.ts.map +1 -0
  486. package/dist/index.js +39 -0
  487. package/dist/index.js.map +1 -0
  488. package/dist/init.d.ts +5 -0
  489. package/dist/init.d.ts.map +1 -0
  490. package/dist/init.js +33 -0
  491. package/dist/init.js.map +1 -0
  492. package/dist/types/accessor.d.ts +29 -0
  493. package/dist/types.d.ts +9 -0
  494. package/dist/types.d.ts.map +1 -0
  495. package/dist/types.js +2 -0
  496. package/dist/types.js.map +1 -0
  497. package/dist/webgl-utils/attribute-utils.d.ts +18 -0
  498. package/dist/webgl-utils/attribute-utils.d.ts.map +1 -0
  499. package/dist/webgl-utils/attribute-utils.js +182 -0
  500. package/dist/webgl-utils/attribute-utils.js.map +1 -0
  501. package/dist/webgl-utils/constants-to-keys.d.ts +4 -0
  502. package/dist/webgl-utils/constants-to-keys.d.ts.map +1 -0
  503. package/dist/webgl-utils/constants-to-keys.js +41 -0
  504. package/dist/webgl-utils/constants-to-keys.js.map +1 -0
  505. package/dist/webgl-utils/format-utils.d.ts +3 -0
  506. package/dist/webgl-utils/format-utils.d.ts.map +1 -0
  507. package/dist/webgl-utils/format-utils.js +45 -0
  508. package/dist/webgl-utils/format-utils.js.map +1 -0
  509. package/dist/webgl-utils/get-error.d.ts +3 -0
  510. package/dist/webgl-utils/get-error.d.ts.map +1 -0
  511. package/dist/webgl-utils/get-error.js +41 -0
  512. package/dist/webgl-utils/get-error.js.map +1 -0
  513. package/dist/webgl-utils/index.d.ts +5 -0
  514. package/dist/webgl-utils/index.d.ts.map +1 -0
  515. package/dist/webgl-utils/index.js +5 -0
  516. package/dist/webgl-utils/index.js.map +1 -0
  517. package/dist/webgl-utils/parse-shader-compiler-log.d.ts +8 -0
  518. package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +1 -0
  519. package/dist/webgl-utils/parse-shader-compiler-log.js +37 -0
  520. package/dist/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  521. package/dist/webgl-utils/request-animation-frame.d.ts +4 -0
  522. package/dist/webgl-utils/request-animation-frame.d.ts.map +1 -0
  523. package/dist/webgl-utils/request-animation-frame.js +7 -0
  524. package/dist/webgl-utils/request-animation-frame.js.map +1 -0
  525. package/dist/webgl-utils/texture-utils.d.ts +15 -0
  526. package/dist/webgl-utils/texture-utils.d.ts.map +1 -0
  527. package/dist/webgl-utils/texture-utils.js +48 -0
  528. package/dist/webgl-utils/texture-utils.js.map +1 -0
  529. package/dist/webgl-utils/typed-array-utils.d.ts +43 -0
  530. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -0
  531. package/{src → dist}/webgl-utils/typed-array-utils.js +45 -27
  532. package/dist/webgl-utils/typed-array-utils.js.map +1 -0
  533. package/package.json +9 -9
  534. package/src/.DS_Store +0 -0
  535. package/src/_deprecated/context-api.ts +140 -0
  536. package/src/_deprecated/features.ts +159 -0
  537. package/src/adapter/converters/set-device-parameters.ts +182 -0
  538. package/src/adapter/converters/webgpu-texture-formats.ts +167 -0
  539. package/src/adapter/device-helpers/device-features.ts +227 -0
  540. package/src/adapter/device-helpers/device-limits.ts +150 -0
  541. package/src/adapter/device-helpers/get-device-info.ts +49 -0
  542. package/src/{features/check-old-ie.js → adapter/device-helpers/is-old-ie.ts} +3 -3
  543. package/src/adapter/webgl-device.ts +406 -0
  544. package/src/adapter/webgl-shader.ts +84 -0
  545. package/src/bundle.ts +4 -0
  546. package/src/classes/accessor.js +2 -3
  547. package/src/classes/accessor.ts.disabled +159 -0
  548. package/src/classes/clear.ts +108 -0
  549. package/src/classes/{copy-and-blit.js → copy-and-blit.ts} +143 -55
  550. package/src/classes/{framebuffer.js → framebuffer.ts} +381 -321
  551. package/src/classes/program-configuration.ts +77 -0
  552. package/src/classes/{program.js → program.ts} +111 -77
  553. package/src/classes/{query.js → query.ts} +31 -25
  554. package/src/classes/{renderbuffer-formats.js → renderbuffer-formats.ts} +42 -14
  555. package/src/classes/renderbuffer.ts +154 -0
  556. package/src/classes/shader.ts +129 -0
  557. package/src/classes/texture-2d.ts +35 -0
  558. package/src/classes/{texture-3d.js → texture-3d.ts} +48 -18
  559. package/src/classes/{texture-cube.js → texture-cube.ts} +52 -34
  560. package/src/classes/{texture-formats.js → texture-formats.ts} +10 -2
  561. package/src/classes/{texture.js → texture.ts} +223 -57
  562. package/src/classes/{transform-feedback.js → transform-feedback.ts} +34 -25
  563. package/src/classes/{uniform-buffer-layout.js → uniform-buffer-layout.ts} +10 -6
  564. package/src/classes/{uniforms.js → uniforms.ts} +123 -77
  565. package/src/classes/{vertex-array-object.js → vertex-array-object.ts} +136 -114
  566. package/src/classes/{vertex-array.js → vertex-array.ts} +84 -59
  567. package/src/classes/{buffer.js → webgl-buffer.ts} +126 -50
  568. package/src/classes/{resource.js → webgl-resource.ts} +55 -46
  569. package/src/context/context/context-state.ts +39 -0
  570. package/src/context/context/create-context.ts +83 -0
  571. package/src/context/context/device-pixels.ts +147 -0
  572. package/src/context/context/get-canvas.ts +37 -0
  573. package/src/context/context/resize-context.ts +37 -0
  574. package/src/context/context/webgl-checks.ts +49 -0
  575. package/src/context/parameters/unified-parameter-api.ts +128 -0
  576. package/src/context/parameters/webgl-parameter-tables.ts +625 -0
  577. package/src/context/parameters/webgl-parameters.ts +197 -0
  578. package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
  579. package/src/context/polyfill/polyfill-context.ts +98 -0
  580. package/src/context/polyfill/polyfill-table.ts +162 -0
  581. package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
  582. package/src/context/state-tracker/deep-array-equal.ts +20 -0
  583. package/src/context/state-tracker/track-context-state.ts +250 -0
  584. package/src/context/state-tracker/with-parameters.ts +50 -0
  585. package/src/debug/{debug-program-configuration.js → debug-program-configuration.ts} +0 -0
  586. package/src/debug/{debug-uniforms.js → debug-uniforms.ts} +18 -8
  587. package/src/debug/{debug-vertex-array.js → debug-vertex-array.ts} +6 -5
  588. package/src/helpers/get-program-bindings.ts +244 -0
  589. package/src/helpers/program-bindings.ts +46 -0
  590. package/src/index.ts +144 -0
  591. package/src/{init.js → init.ts} +11 -25
  592. package/src/types/accessor.d.ts +29 -0
  593. package/src/{types.d.ts → types.ts} +1 -1
  594. package/src/webgl-utils/{attribute-utils.js → attribute-utils.ts} +1 -2
  595. package/src/webgl-utils/{constants-to-keys.js → constants-to-keys.ts} +1 -1
  596. package/src/webgl-utils/{format-utils.js → format-utils.ts} +1 -1
  597. package/src/webgl-utils/{get-error.js → get-error.ts} +0 -0
  598. package/src/webgl-utils/index.ts +12 -0
  599. package/src/webgl-utils/parse-shader-compiler-log.ts +48 -0
  600. package/src/webgl-utils/{request-animation-frame.js → request-animation-frame.ts} +3 -2
  601. package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +14 -10
  602. package/src/webgl-utils/typed-array-utils.ts +137 -0
  603. package/dist/dist.js +0 -13555
  604. package/dist/dist.min.js +0 -1
  605. package/dist/es5/classes/buffer.d.ts +0 -84
  606. package/dist/es5/classes/buffer.js.map +0 -1
  607. package/dist/es5/classes/clear.d.ts +0 -11
  608. package/dist/es5/classes/copy-and-blit.d.ts +0 -101
  609. package/dist/es5/classes/framebuffer.d.ts +0 -96
  610. package/dist/es5/classes/program-configuration.d.ts +0 -15
  611. package/dist/es5/classes/program.d.ts +0 -44
  612. package/dist/es5/classes/query.d.ts +0 -21
  613. package/dist/es5/classes/renderbuffer.d.ts +0 -34
  614. package/dist/es5/classes/resource.d.ts +0 -47
  615. package/dist/es5/classes/resource.js.map +0 -1
  616. package/dist/es5/classes/shader.d.ts +0 -29
  617. package/dist/es5/classes/texture-2d.d.ts +0 -11
  618. package/dist/es5/classes/texture-3d.d.ts +0 -29
  619. package/dist/es5/classes/texture-cube.d.ts +0 -23
  620. package/dist/es5/classes/texture.d.ts +0 -80
  621. package/dist/es5/classes/transform-feedback.d.ts +0 -16
  622. package/dist/es5/classes/uniform-buffer-layout.d.ts +0 -18
  623. package/dist/es5/classes/uniforms.d.ts +0 -63
  624. package/dist/es5/classes/vertex-array-object.d.ts +0 -25
  625. package/dist/es5/classes/vertex-array.d.ts +0 -37
  626. package/dist/es5/debug/debug-program-configuration.d.ts +0 -1
  627. package/dist/es5/debug/debug-uniforms.d.ts +0 -11
  628. package/dist/es5/debug/debug-vertex-array.d.ts +0 -1
  629. package/dist/es5/features/check-glsl-extension.js +0 -41
  630. package/dist/es5/features/check-glsl-extension.js.map +0 -1
  631. package/dist/es5/features/check-old-ie.js.map +0 -1
  632. package/dist/es5/features/features.js +0 -99
  633. package/dist/es5/features/features.js.map +0 -1
  634. package/dist/es5/features/index.js +0 -64
  635. package/dist/es5/features/index.js.map +0 -1
  636. package/dist/es5/features/limits.js +0 -64
  637. package/dist/es5/features/limits.js.map +0 -1
  638. package/dist/es5/features/webgl-features-table.js +0 -64
  639. package/dist/es5/features/webgl-features-table.js.map +0 -1
  640. package/dist/es5/features/webgl-limits-table.js +0 -132
  641. package/dist/es5/features/webgl-limits-table.js.map +0 -1
  642. package/dist/es5/glsl-utils/format-glsl-error.d.ts +0 -16
  643. package/dist/es5/glsl-utils/format-glsl-error.js +0 -108
  644. package/dist/es5/glsl-utils/format-glsl-error.js.map +0 -1
  645. package/dist/es5/glsl-utils/get-shader-name.js +0 -14
  646. package/dist/es5/glsl-utils/get-shader-name.js.map +0 -1
  647. package/dist/es5/glsl-utils/get-shader-type-name.js +0 -22
  648. package/dist/es5/glsl-utils/get-shader-type-name.js.map +0 -1
  649. package/dist/es5/glsl-utils/get-shader-version.js +0 -22
  650. package/dist/es5/glsl-utils/get-shader-version.js.map +0 -1
  651. package/dist/es5/glsl-utils/index.js +0 -48
  652. package/dist/es5/glsl-utils/index.js.map +0 -1
  653. package/dist/es5/index.d.ts +0 -71
  654. package/dist/es5/init.d.ts +0 -12
  655. package/dist/es5/types.d.ts +0 -8
  656. package/dist/es5/utils/array-utils-flat.js +0 -51
  657. package/dist/es5/utils/array-utils-flat.js.map +0 -1
  658. package/dist/es5/utils/assert.d.ts +0 -1
  659. package/dist/es5/utils/assert.js +0 -13
  660. package/dist/es5/utils/assert.js.map +0 -1
  661. package/dist/es5/utils/check-props.js +0 -51
  662. package/dist/es5/utils/check-props.js.map +0 -1
  663. package/dist/es5/utils/format-value.js +0 -57
  664. package/dist/es5/utils/format-value.js.map +0 -1
  665. package/dist/es5/utils/is-old-ie.d.ts +0 -1
  666. package/dist/es5/utils/is-old-ie.js +0 -14
  667. package/dist/es5/utils/is-old-ie.js.map +0 -1
  668. package/dist/es5/utils/load-file.js +0 -50
  669. package/dist/es5/utils/load-file.js.map +0 -1
  670. package/dist/es5/utils/stub-methods.js +0 -25
  671. package/dist/es5/utils/stub-methods.js.map +0 -1
  672. package/dist/es5/utils/utils.d.ts +0 -13
  673. package/dist/es5/utils/utils.js +0 -36
  674. package/dist/es5/utils/utils.js.map +0 -1
  675. package/dist/es5/webgl-utils/request-animation-frame.d.ts +0 -3
  676. package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
  677. package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
  678. package/dist/esm/classes/buffer.d.ts +0 -84
  679. package/dist/esm/classes/buffer.js.map +0 -1
  680. package/dist/esm/classes/clear.d.ts +0 -11
  681. package/dist/esm/classes/copy-and-blit.d.ts +0 -101
  682. package/dist/esm/classes/framebuffer.d.ts +0 -96
  683. package/dist/esm/classes/program-configuration.d.ts +0 -15
  684. package/dist/esm/classes/program.d.ts +0 -44
  685. package/dist/esm/classes/query.d.ts +0 -21
  686. package/dist/esm/classes/renderbuffer.d.ts +0 -34
  687. package/dist/esm/classes/resource.d.ts +0 -47
  688. package/dist/esm/classes/resource.js.map +0 -1
  689. package/dist/esm/classes/shader.d.ts +0 -29
  690. package/dist/esm/classes/texture-2d.d.ts +0 -11
  691. package/dist/esm/classes/texture-3d.d.ts +0 -29
  692. package/dist/esm/classes/texture-cube.d.ts +0 -23
  693. package/dist/esm/classes/texture.d.ts +0 -80
  694. package/dist/esm/classes/transform-feedback.d.ts +0 -16
  695. package/dist/esm/classes/uniform-buffer-layout.d.ts +0 -18
  696. package/dist/esm/classes/uniforms.d.ts +0 -63
  697. package/dist/esm/classes/vertex-array-object.d.ts +0 -25
  698. package/dist/esm/classes/vertex-array.d.ts +0 -37
  699. package/dist/esm/debug/debug-program-configuration.d.ts +0 -1
  700. package/dist/esm/debug/debug-uniforms.d.ts +0 -11
  701. package/dist/esm/debug/debug-vertex-array.d.ts +0 -1
  702. package/dist/esm/features/check-glsl-extension.js +0 -27
  703. package/dist/esm/features/check-glsl-extension.js.map +0 -1
  704. package/dist/esm/features/check-old-ie.js.map +0 -1
  705. package/dist/esm/features/features.js +0 -66
  706. package/dist/esm/features/features.js.map +0 -1
  707. package/dist/esm/features/index.js +0 -5
  708. package/dist/esm/features/index.js.map +0 -1
  709. package/dist/esm/features/limits.js +0 -52
  710. package/dist/esm/features/limits.js.map +0 -1
  711. package/dist/esm/features/webgl-features-table.js.map +0 -1
  712. package/dist/esm/features/webgl-limits-table.js +0 -160
  713. package/dist/esm/features/webgl-limits-table.js.map +0 -1
  714. package/dist/esm/glsl-utils/format-glsl-error.d.ts +0 -16
  715. package/dist/esm/glsl-utils/format-glsl-error.js +0 -93
  716. package/dist/esm/glsl-utils/format-glsl-error.js.map +0 -1
  717. package/dist/esm/glsl-utils/get-shader-name.js +0 -6
  718. package/dist/esm/glsl-utils/get-shader-name.js.map +0 -1
  719. package/dist/esm/glsl-utils/get-shader-type-name.js +0 -15
  720. package/dist/esm/glsl-utils/get-shader-type-name.js.map +0 -1
  721. package/dist/esm/glsl-utils/get-shader-version.js +0 -15
  722. package/dist/esm/glsl-utils/get-shader-version.js.map +0 -1
  723. package/dist/esm/glsl-utils/index.js +0 -5
  724. package/dist/esm/glsl-utils/index.js.map +0 -1
  725. package/dist/esm/index.d.ts +0 -71
  726. package/dist/esm/init.d.ts +0 -12
  727. package/dist/esm/types.d.ts +0 -8
  728. package/dist/esm/utils/array-utils-flat.js +0 -39
  729. package/dist/esm/utils/array-utils-flat.js.map +0 -1
  730. package/dist/esm/utils/assert.d.ts +0 -1
  731. package/dist/esm/utils/assert.js +0 -6
  732. package/dist/esm/utils/assert.js.map +0 -1
  733. package/dist/esm/utils/check-props.js +0 -38
  734. package/dist/esm/utils/check-props.js.map +0 -1
  735. package/dist/esm/utils/format-value.js +0 -50
  736. package/dist/esm/utils/format-value.js.map +0 -1
  737. package/dist/esm/utils/is-old-ie.d.ts +0 -1
  738. package/dist/esm/utils/is-old-ie.js +0 -5
  739. package/dist/esm/utils/is-old-ie.js.map +0 -1
  740. package/dist/esm/utils/load-file.js +0 -30
  741. package/dist/esm/utils/load-file.js.map +0 -1
  742. package/dist/esm/utils/stub-methods.js +0 -17
  743. package/dist/esm/utils/stub-methods.js.map +0 -1
  744. package/dist/esm/utils/utils.d.ts +0 -13
  745. package/dist/esm/utils/utils.js +0 -22
  746. package/dist/esm/utils/utils.js.map +0 -1
  747. package/dist/esm/webgl-utils/request-animation-frame.d.ts +0 -3
  748. package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
  749. package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
  750. package/src/bundle.js +0 -8
  751. package/src/classes/buffer.d.ts +0 -84
  752. package/src/classes/clear.d.ts +0 -11
  753. package/src/classes/copy-and-blit.d.ts +0 -101
  754. package/src/classes/framebuffer.d.ts +0 -96
  755. package/src/classes/program-configuration.d.ts +0 -15
  756. package/src/classes/program-configuration.js +0 -123
  757. package/src/classes/program.d.ts +0 -44
  758. package/src/classes/query.d.ts +0 -21
  759. package/src/classes/renderbuffer.d.ts +0 -34
  760. package/src/classes/renderbuffer.js +0 -105
  761. package/src/classes/resource.d.ts +0 -47
  762. package/src/classes/shader.d.ts +0 -29
  763. package/src/classes/shader.js +0 -147
  764. package/src/classes/texture-2d.d.ts +0 -11
  765. package/src/classes/texture-2d.js +0 -30
  766. package/src/classes/texture-3d.d.ts +0 -29
  767. package/src/classes/texture-cube.d.ts +0 -23
  768. package/src/classes/texture.d.ts +0 -80
  769. package/src/classes/transform-feedback.d.ts +0 -16
  770. package/src/classes/uniform-buffer-layout.d.ts +0 -18
  771. package/src/classes/uniforms.d.ts +0 -63
  772. package/src/classes/vertex-array-object.d.ts +0 -25
  773. package/src/classes/vertex-array.d.ts +0 -37
  774. package/src/debug/debug-program-configuration.d.ts +0 -1
  775. package/src/debug/debug-uniforms.d.ts +0 -11
  776. package/src/debug/debug-vertex-array.d.ts +0 -1
  777. package/src/features/check-glsl-extension.js +0 -34
  778. package/src/features/features.js +0 -79
  779. package/src/features/index.js +0 -5
  780. package/src/features/limits.js +0 -65
  781. package/src/features/webgl-limits-table.js +0 -51
  782. package/src/glsl-utils/format-glsl-error.d.ts +0 -16
  783. package/src/glsl-utils/format-glsl-error.js +0 -107
  784. package/src/glsl-utils/get-shader-name.js +0 -7
  785. package/src/glsl-utils/get-shader-type-name.js +0 -13
  786. package/src/glsl-utils/get-shader-version.js +0 -12
  787. package/src/glsl-utils/index.js +0 -8
  788. package/src/index.d.ts +0 -71
  789. package/src/index.js +0 -70
  790. package/src/init.d.ts +0 -12
  791. package/src/utils/array-utils-flat.js +0 -56
  792. package/src/utils/assert.d.ts +0 -1
  793. package/src/utils/assert.js +0 -7
  794. package/src/utils/check-props.js +0 -68
  795. package/src/utils/format-value.js +0 -37
  796. package/src/utils/is-old-ie.d.ts +0 -1
  797. package/src/utils/is-old-ie.js +0 -6
  798. package/src/utils/load-file.js +0 -39
  799. package/src/utils/stub-methods.js +0 -20
  800. package/src/utils/utils.d.ts +0 -13
  801. package/src/utils/utils.js +0 -36
  802. package/src/webgl-utils/request-animation-frame.d.ts +0 -3
  803. package/src/webgl-utils/texture-utils.d.ts +0 -11
  804. package/src/webgl-utils/typed-array-utils.d.ts +0 -36
@@ -12,7 +12,9 @@ exports.copyUniform = copyUniform;
12
12
 
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
14
 
15
- var _gltools = require("@luma.gl/gltools");
15
+ var _api = require("@luma.gl/api");
16
+
17
+ var _constants = _interopRequireDefault(require("@luma.gl/constants"));
16
18
 
17
19
  var _framebuffer = _interopRequireDefault(require("./framebuffer"));
18
20
 
@@ -20,62 +22,14 @@ var _renderbuffer = _interopRequireDefault(require("./renderbuffer"));
20
22
 
21
23
  var _texture = _interopRequireDefault(require("./texture"));
22
24
 
23
- var _assert = require("../utils/assert");
24
-
25
25
  var _UNIFORM_SETTERS;
26
26
 
27
- var UNIFORM_SETTERS = (_UNIFORM_SETTERS = {}, (0, _defineProperty2.default)(_UNIFORM_SETTERS, 5126, getArraySetter.bind(null, 'uniform1fv', toFloatArray, 1, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35664, getArraySetter.bind(null, 'uniform2fv', toFloatArray, 2, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35665, getArraySetter.bind(null, 'uniform3fv', toFloatArray, 3, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35666, getArraySetter.bind(null, 'uniform4fv', toFloatArray, 4, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 5124, getArraySetter.bind(null, 'uniform1iv', toIntArray, 1, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35667, getArraySetter.bind(null, 'uniform2iv', toIntArray, 2, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35668, getArraySetter.bind(null, 'uniform3iv', toIntArray, 3, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35669, getArraySetter.bind(null, 'uniform4iv', toIntArray, 4, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35670, getArraySetter.bind(null, 'uniform1iv', toIntArray, 1, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35671, getArraySetter.bind(null, 'uniform2iv', toIntArray, 2, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35672, getArraySetter.bind(null, 'uniform3iv', toIntArray, 3, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35673, getArraySetter.bind(null, 'uniform4iv', toIntArray, 4, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35674, getArraySetter.bind(null, 'uniformMatrix2fv', toFloatArray, 4, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35675, getArraySetter.bind(null, 'uniformMatrix3fv', toFloatArray, 9, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35676, getArraySetter.bind(null, 'uniformMatrix4fv', toFloatArray, 16, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35678, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35680, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 5125, getArraySetter.bind(null, 'uniform1uiv', toUIntArray, 1, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 36294, getArraySetter.bind(null, 'uniform2uiv', toUIntArray, 2, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 36295, getArraySetter.bind(null, 'uniform3uiv', toUIntArray, 3, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 36296, getArraySetter.bind(null, 'uniform4uiv', toUIntArray, 4, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35685, getArraySetter.bind(null, 'uniformMatrix2x3fv', toFloatArray, 6, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35686, getArraySetter.bind(null, 'uniformMatrix2x4fv', toFloatArray, 8, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35687, getArraySetter.bind(null, 'uniformMatrix3x2fv', toFloatArray, 6, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35688, getArraySetter.bind(null, 'uniformMatrix3x4fv', toFloatArray, 12, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35689, getArraySetter.bind(null, 'uniformMatrix4x2fv', toFloatArray, 8, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35690, getArraySetter.bind(null, 'uniformMatrix4x3fv', toFloatArray, 12, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35678, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35680, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35679, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 35682, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 36289, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 36292, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 36293, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 36298, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 36299, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 36300, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 36303, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 36306, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 36307, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 36308, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, 36311, getSamplerSetter), _UNIFORM_SETTERS);
27
+ var UNIFORM_SETTERS = (_UNIFORM_SETTERS = {}, (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT, getArraySetter.bind(null, 'uniform1fv', toFloatArray, 1, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_VEC2, getArraySetter.bind(null, 'uniform2fv', toFloatArray, 2, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_VEC3, getArraySetter.bind(null, 'uniform3fv', toFloatArray, 3, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_VEC4, getArraySetter.bind(null, 'uniform4fv', toFloatArray, 4, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT, getArraySetter.bind(null, 'uniform1iv', toIntArray, 1, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT_VEC2, getArraySetter.bind(null, 'uniform2iv', toIntArray, 2, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT_VEC3, getArraySetter.bind(null, 'uniform3iv', toIntArray, 3, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT_VEC4, getArraySetter.bind(null, 'uniform4iv', toIntArray, 4, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.BOOL, getArraySetter.bind(null, 'uniform1iv', toIntArray, 1, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.BOOL_VEC2, getArraySetter.bind(null, 'uniform2iv', toIntArray, 2, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.BOOL_VEC3, getArraySetter.bind(null, 'uniform3iv', toIntArray, 3, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.BOOL_VEC4, getArraySetter.bind(null, 'uniform4iv', toIntArray, 4, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT2, getArraySetter.bind(null, 'uniformMatrix2fv', toFloatArray, 4, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT3, getArraySetter.bind(null, 'uniformMatrix3fv', toFloatArray, 9, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT4, getArraySetter.bind(null, 'uniformMatrix4fv', toFloatArray, 16, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_2D, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_CUBE, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT, getArraySetter.bind(null, 'uniform1uiv', toUIntArray, 1, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT_VEC2, getArraySetter.bind(null, 'uniform2uiv', toUIntArray, 2, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT_VEC3, getArraySetter.bind(null, 'uniform3uiv', toUIntArray, 3, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT_VEC4, getArraySetter.bind(null, 'uniform4uiv', toUIntArray, 4, setVectorUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT2x3, getArraySetter.bind(null, 'uniformMatrix2x3fv', toFloatArray, 6, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT2x4, getArraySetter.bind(null, 'uniformMatrix2x4fv', toFloatArray, 8, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT3x2, getArraySetter.bind(null, 'uniformMatrix3x2fv', toFloatArray, 6, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT3x4, getArraySetter.bind(null, 'uniformMatrix3x4fv', toFloatArray, 12, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT4x2, getArraySetter.bind(null, 'uniformMatrix4x2fv', toFloatArray, 8, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.FLOAT_MAT4x3, getArraySetter.bind(null, 'uniformMatrix4x3fv', toFloatArray, 12, setMatrixUniform)), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_2D, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_CUBE, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_3D, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_2D_SHADOW, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_2D_ARRAY, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_2D_ARRAY_SHADOW, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.SAMPLER_CUBE_SHADOW, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT_SAMPLER_2D, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT_SAMPLER_3D, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT_SAMPLER_CUBE, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.INT_SAMPLER_2D_ARRAY, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT_SAMPLER_2D, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT_SAMPLER_3D, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT_SAMPLER_CUBE, getSamplerSetter), (0, _defineProperty2.default)(_UNIFORM_SETTERS, _constants.default.UNSIGNED_INT_SAMPLER_2D_ARRAY, getSamplerSetter), _UNIFORM_SETTERS);
28
28
  var FLOAT_ARRAY = {};
29
29
  var INT_ARRAY = {};
30
30
  var UINT_ARRAY = {};
31
31
  var array1 = [0];
32
32
 
33
- function toTypedArray(value, uniformLength, Type, cache) {
34
- if (uniformLength === 1 && typeof value === 'boolean') {
35
- value = value ? 1 : 0;
36
- }
37
-
38
- if (Number.isFinite(value)) {
39
- array1[0] = value;
40
- value = array1;
41
- }
42
-
43
- var length = value.length;
44
-
45
- if (length % uniformLength) {
46
- _gltools.log.warn("Uniform size should be multiples of ".concat(uniformLength), value)();
47
- }
48
-
49
- if (value instanceof Type) {
50
- return value;
51
- }
52
-
53
- var result = cache[length];
54
-
55
- if (!result) {
56
- result = new Type(length);
57
- cache[length] = result;
58
- }
59
-
60
- for (var i = 0; i < length; i++) {
61
- result[i] = value[i];
62
- }
63
-
64
- return result;
65
- }
66
-
67
- function toFloatArray(value, uniformLength) {
68
- return toTypedArray(value, uniformLength, Float32Array, FLOAT_ARRAY);
69
- }
70
-
71
- function toIntArray(value, uniformLength) {
72
- return toTypedArray(value, uniformLength, Int32Array, INT_ARRAY);
73
- }
74
-
75
- function toUIntArray(value, uniformLength) {
76
- return toTypedArray(value, uniformLength, Uint32Array, UINT_ARRAY);
77
- }
78
-
79
33
  function getUniformSetter(gl, location, info) {
80
34
  var setter = UNIFORM_SETTERS[info.type];
81
35
 
@@ -104,26 +58,42 @@ function parseUniformName(name) {
104
58
 
105
59
  return {
106
60
  name: matches[1],
107
- length: matches[2] || 1,
61
+ length: Number(matches[2]) || 1,
108
62
  isArray: Boolean(matches[2])
109
63
  };
110
64
  }
111
65
 
112
66
  function checkUniformValues(uniforms, source, uniformMap) {
113
- for (var uniformName in uniforms) {
114
- var value = uniforms[uniformName];
115
- var shouldCheck = !uniformMap || Boolean(uniformMap[uniformName]);
67
+ for (var _uniformName in uniforms) {
68
+ var value = uniforms[_uniformName];
69
+ var shouldCheck = !uniformMap || Boolean(uniformMap[_uniformName]);
116
70
 
117
71
  if (shouldCheck && !checkUniformValue(value)) {
118
72
  source = source ? "".concat(source, " ") : '';
119
- console.error("".concat(source, " Bad uniform ").concat(uniformName), value);
120
- throw new Error("".concat(source, " Bad uniform ").concat(uniformName));
73
+ console.error("".concat(source, " Bad uniform ").concat(_uniformName), value);
74
+ throw new Error("".concat(source, " Bad uniform ").concat(_uniformName));
121
75
  }
122
76
  }
123
77
 
124
78
  return true;
125
79
  }
126
80
 
81
+ function copyUniform(uniforms, key, value) {
82
+ if (Array.isArray(value) || ArrayBuffer.isView(value)) {
83
+ if (uniforms[key]) {
84
+ var dest = uniforms[key];
85
+
86
+ for (var i = 0, len = value.length; i < len; ++i) {
87
+ dest[i] = value[i];
88
+ }
89
+ } else {
90
+ uniforms[key] = value.slice();
91
+ }
92
+ } else {
93
+ uniforms[key] = value;
94
+ }
95
+ }
96
+
127
97
  function checkUniformValue(value) {
128
98
  if (Array.isArray(value) || ArrayBuffer.isView(value)) {
129
99
  return checkUniformArray(value);
@@ -144,22 +114,6 @@ function checkUniformValue(value) {
144
114
  return false;
145
115
  }
146
116
 
147
- function copyUniform(uniforms, key, value) {
148
- if (Array.isArray(value) || ArrayBuffer.isView(value)) {
149
- if (uniforms[key]) {
150
- var dest = uniforms[key];
151
-
152
- for (var i = 0, len = value.length; i < len; ++i) {
153
- dest[i] = value[i];
154
- }
155
- } else {
156
- uniforms[key] = value.slice();
157
- }
158
- } else {
159
- uniforms[key] = value;
160
- }
161
- }
162
-
163
117
  function checkUniformArray(value) {
164
118
  if (value.length === 0) {
165
119
  return false;
@@ -203,7 +157,7 @@ function getArraySetter(functionName, toArray, size, uniformSetter) {
203
157
  cacheLength = length;
204
158
  update = true;
205
159
  } else {
206
- (0, _assert.assert)(cacheLength === length, 'Uniform length cannot change.');
160
+ (0, _api.assert)(cacheLength === length, 'Uniform length cannot change.');
207
161
 
208
162
  for (var i = 0; i < length; ++i) {
209
163
  if (arrayValue[i] !== cache[i]) {
@@ -229,4 +183,50 @@ function setVectorUniform(gl, functionName, location, value) {
229
183
  function setMatrixUniform(gl, functionName, location, value) {
230
184
  gl[functionName](location, false, value);
231
185
  }
186
+
187
+ function toTypedArray(value, uniformLength, Type, cache) {
188
+ if (uniformLength === 1 && typeof value === 'boolean') {
189
+ value = value ? 1 : 0;
190
+ }
191
+
192
+ if (Number.isFinite(value)) {
193
+ array1[0] = value;
194
+ value = array1;
195
+ }
196
+
197
+ var length = value.length;
198
+
199
+ if (length % uniformLength) {
200
+ _api.log.warn("Uniform size should be multiples of ".concat(uniformLength), value)();
201
+ }
202
+
203
+ if (value instanceof Type) {
204
+ return value;
205
+ }
206
+
207
+ var result = cache[length];
208
+
209
+ if (!result) {
210
+ result = new Type(length);
211
+ cache[length] = result;
212
+ }
213
+
214
+ for (var i = 0; i < length; i++) {
215
+ result[i] = value[i];
216
+ }
217
+
218
+ return result;
219
+ }
220
+
221
+ function toFloatArray(value, uniformLength) {
222
+ return toTypedArray(value, uniformLength, Float32Array, FLOAT_ARRAY);
223
+ }
224
+
225
+ function toIntArray(value, uniformLength) {
226
+ return toTypedArray(value, uniformLength, Int32Array, INT_ARRAY);
227
+ }
228
+
229
+ function toUIntArray(value, uniformLength) {
230
+ return toTypedArray(value, uniformLength, Uint32Array, UINT_ARRAY);
231
+ }
232
232
  //# sourceMappingURL=uniforms.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/uniforms.js"],"names":["UNIFORM_SETTERS","getArraySetter","bind","toFloatArray","setVectorUniform","toIntArray","setMatrixUniform","getSamplerSetter","toUIntArray","FLOAT_ARRAY","INT_ARRAY","UINT_ARRAY","array1","toTypedArray","value","uniformLength","Type","cache","Number","isFinite","length","log","warn","result","i","Float32Array","Int32Array","Uint32Array","getUniformSetter","gl","location","info","setter","type","Error","parseUniformName","name","isArray","UNIFORM_NAME_REGEXP","matches","match","Boolean","checkUniformValues","uniforms","source","uniformMap","uniformName","shouldCheck","checkUniformValue","console","error","Array","ArrayBuffer","isView","checkUniformArray","Texture","Renderbuffer","Framebuffer","texture","copyUniform","key","dest","len","slice","checkLength","Math","min","update","uniform1i","functionName","toArray","size","uniformSetter","cacheLength","arrayValue","set"],"mappings":"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","sourcesContent":["/** @typedef {import('./uniforms')} types */\n\nimport GL from '@luma.gl/constants';\nimport {log} from '@luma.gl/gltools';\n\nimport Framebuffer from './framebuffer';\nimport Renderbuffer from './renderbuffer';\nimport Texture from './texture';\nimport {assert} from '../utils/assert';\n\nconst UNIFORM_SETTERS = {\n // WEBGL1\n\n /* eslint-disable max-len */\n [GL.FLOAT]: getArraySetter.bind(null, 'uniform1fv', toFloatArray, 1, setVectorUniform),\n [GL.FLOAT_VEC2]: getArraySetter.bind(null, 'uniform2fv', toFloatArray, 2, setVectorUniform),\n [GL.FLOAT_VEC3]: getArraySetter.bind(null, 'uniform3fv', toFloatArray, 3, setVectorUniform),\n [GL.FLOAT_VEC4]: getArraySetter.bind(null, 'uniform4fv', toFloatArray, 4, setVectorUniform),\n\n [GL.INT]: getArraySetter.bind(null, 'uniform1iv', toIntArray, 1, setVectorUniform),\n [GL.INT_VEC2]: getArraySetter.bind(null, 'uniform2iv', toIntArray, 2, setVectorUniform),\n [GL.INT_VEC3]: getArraySetter.bind(null, 'uniform3iv', toIntArray, 3, setVectorUniform),\n [GL.INT_VEC4]: getArraySetter.bind(null, 'uniform4iv', toIntArray, 4, setVectorUniform),\n\n [GL.BOOL]: getArraySetter.bind(null, 'uniform1iv', toIntArray, 1, setVectorUniform),\n [GL.BOOL_VEC2]: getArraySetter.bind(null, 'uniform2iv', toIntArray, 2, setVectorUniform),\n [GL.BOOL_VEC3]: getArraySetter.bind(null, 'uniform3iv', toIntArray, 3, setVectorUniform),\n [GL.BOOL_VEC4]: getArraySetter.bind(null, 'uniform4iv', toIntArray, 4, setVectorUniform),\n\n // uniformMatrix(false): don't transpose the matrix\n [GL.FLOAT_MAT2]: getArraySetter.bind(null, 'uniformMatrix2fv', toFloatArray, 4, setMatrixUniform),\n [GL.FLOAT_MAT3]: getArraySetter.bind(null, 'uniformMatrix3fv', toFloatArray, 9, setMatrixUniform),\n [GL.FLOAT_MAT4]: getArraySetter.bind(\n null,\n 'uniformMatrix4fv',\n toFloatArray,\n 16,\n setMatrixUniform\n ),\n\n [GL.SAMPLER_2D]: getSamplerSetter,\n [GL.SAMPLER_CUBE]: getSamplerSetter,\n\n // WEBGL2 - unsigned integers, irregular matrices, additional texture samplers\n\n [GL.UNSIGNED_INT]: getArraySetter.bind(null, 'uniform1uiv', toUIntArray, 1, setVectorUniform),\n [GL.UNSIGNED_INT_VEC2]: getArraySetter.bind(\n null,\n 'uniform2uiv',\n toUIntArray,\n 2,\n setVectorUniform\n ),\n [GL.UNSIGNED_INT_VEC3]: getArraySetter.bind(\n null,\n 'uniform3uiv',\n toUIntArray,\n 3,\n setVectorUniform\n ),\n [GL.UNSIGNED_INT_VEC4]: getArraySetter.bind(\n null,\n 'uniform4uiv',\n toUIntArray,\n 4,\n setVectorUniform\n ),\n\n // uniformMatrix(false): don't transpose the matrix\n [GL.FLOAT_MAT2x3]: getArraySetter.bind(\n null,\n 'uniformMatrix2x3fv',\n toFloatArray,\n 6,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT2x4]: getArraySetter.bind(\n null,\n 'uniformMatrix2x4fv',\n toFloatArray,\n 8,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT3x2]: getArraySetter.bind(\n null,\n 'uniformMatrix3x2fv',\n toFloatArray,\n 6,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT3x4]: getArraySetter.bind(\n null,\n 'uniformMatrix3x4fv',\n toFloatArray,\n 12,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT4x2]: getArraySetter.bind(\n null,\n 'uniformMatrix4x2fv',\n toFloatArray,\n 8,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT4x3]: getArraySetter.bind(\n null,\n 'uniformMatrix4x3fv',\n toFloatArray,\n 12,\n setMatrixUniform\n ),\n\n [GL.SAMPLER_2D]: getSamplerSetter,\n [GL.SAMPLER_CUBE]: getSamplerSetter,\n\n [GL.SAMPLER_3D]: getSamplerSetter,\n [GL.SAMPLER_2D_SHADOW]: getSamplerSetter,\n [GL.SAMPLER_2D_ARRAY]: getSamplerSetter,\n [GL.SAMPLER_2D_ARRAY_SHADOW]: getSamplerSetter,\n [GL.SAMPLER_CUBE_SHADOW]: getSamplerSetter,\n [GL.INT_SAMPLER_2D]: getSamplerSetter,\n [GL.INT_SAMPLER_3D]: getSamplerSetter,\n [GL.INT_SAMPLER_CUBE]: getSamplerSetter,\n [GL.INT_SAMPLER_2D_ARRAY]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_2D]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_3D]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_CUBE]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: getSamplerSetter\n /* eslint-enable max-len */\n};\n\n// Pre-allocated typed arrays for temporary conversion\nconst FLOAT_ARRAY = {};\nconst INT_ARRAY = {};\nconst UINT_ARRAY = {};\n\nconst array1 = [0];\n\n// Functions to ensure the type of uniform values\n// This is done because uniform*v functions\n// are extremely slow when consuming JS arrays directly.\nfunction toTypedArray(value, uniformLength, Type, cache) {\n // convert boolean uniforms to Number\n if (uniformLength === 1 && typeof value === 'boolean') {\n value = value ? 1 : 0;\n }\n if (Number.isFinite(value)) {\n array1[0] = value;\n value = array1;\n }\n const length = value.length;\n if (length % uniformLength) {\n log.warn(`Uniform size should be multiples of ${uniformLength}`, value)();\n }\n\n if (value instanceof Type) {\n return value;\n }\n let result = cache[length];\n if (!result) {\n result = new Type(length);\n cache[length] = result;\n }\n for (let i = 0; i < length; i++) {\n result[i] = value[i];\n }\n return result;\n}\n\nfunction toFloatArray(value, uniformLength) {\n return toTypedArray(value, uniformLength, Float32Array, FLOAT_ARRAY);\n}\n\nfunction toIntArray(value, uniformLength) {\n return toTypedArray(value, uniformLength, Int32Array, INT_ARRAY);\n}\n\nfunction toUIntArray(value, uniformLength) {\n return toTypedArray(value, uniformLength, Uint32Array, UINT_ARRAY);\n} // Returns a Magic Uniform Setter\n\n// PUBLIC API\n\n/** @type {types['getUniformSetter']} */ export function getUniformSetter(gl, location, info) {\n const setter = UNIFORM_SETTERS[info.type];\n if (!setter) {\n throw new Error(`Unknown GLSL uniform type ${info.type}`);\n }\n\n // NOTE(Tarek): This construction is the ensure\n // separate caches for all setters.\n return setter().bind(null, gl, location);\n}\n\n/** @type {types['parseUniformName']} */\nexport function parseUniformName(name) {\n // Shortcut to avoid redundant or bad matches\n if (name[name.length - 1] !== ']') {\n return {\n name,\n length: 1,\n isArray: false\n };\n }\n\n // if array name then clean the array brackets\n const UNIFORM_NAME_REGEXP = /([^[]*)(\\[[0-9]+\\])?/;\n const matches = name.match(UNIFORM_NAME_REGEXP);\n if (!matches || matches.length < 2) {\n throw new Error(`Failed to parse GLSL uniform name ${name}`);\n }\n\n return {\n name: matches[1],\n length: matches[2] || 1,\n isArray: Boolean(matches[2])\n };\n} // To facilitate early detection of e.g. undefined values in JavaScript\n\n// Basic checks of uniform values (with or without knowledge of program)\n\n/** @type {types['checkUniformValues']} */\nexport function checkUniformValues(uniforms, source, uniformMap) {\n for (const uniformName in uniforms) {\n const value = uniforms[uniformName];\n const shouldCheck = !uniformMap || Boolean(uniformMap[uniformName]);\n if (shouldCheck && !checkUniformValue(value)) {\n // Add space to source\n source = source ? `${source} ` : '';\n // Value could be unprintable so write the object on console\n console.error(`${source} Bad uniform ${uniformName}`, value); // eslint-disable-line\n /* eslint-enable no-console */\n throw new Error(`${source} Bad uniform ${uniformName}`);\n }\n }\n return true;\n}\n\n// TODO use type information during validation\nfunction checkUniformValue(value) {\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n return checkUniformArray(value);\n }\n\n // Check if single value is a number\n if (isFinite(value)) {\n return true;\n } else if (value === true || value === false) {\n return true;\n } else if (value instanceof Texture) {\n return true;\n } else if (value instanceof Renderbuffer) {\n return true;\n } else if (value instanceof Framebuffer) {\n return Boolean(value.texture);\n }\n return false;\n}\n\n/** @type {types['copyUniform']} */\nexport function copyUniform(uniforms, key, value) {\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n if (uniforms[key]) {\n const dest = uniforms[key];\n // @ts-ignore\n for (let i = 0, len = value.length; i < len; ++i) {\n dest[i] = value[i];\n }\n } else {\n // @ts-ignore\n uniforms[key] = value.slice();\n }\n } else {\n uniforms[key] = value;\n }\n}\n\n// HELPERS\n\nfunction checkUniformArray(value) {\n // Check that every element in array is a number, and at least 1 element\n if (value.length === 0) {\n return false;\n }\n\n const checkLength = Math.min(value.length, 16);\n\n for (let i = 0; i < checkLength; ++i) {\n if (!Number.isFinite(value[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n// NOTE(Tarek): Setters maintain a cache\n// of the previously set value, and\n// avoid resetting it if it's the same.\nfunction getSamplerSetter() {\n let cache = null;\n return (gl, location, value) => {\n const update = cache !== value;\n if (update) {\n gl.uniform1i(location, value);\n cache = value;\n }\n\n return update;\n };\n}\n\nfunction getArraySetter(functionName, toArray, size, uniformSetter) {\n let cache = null;\n let cacheLength = null;\n return (gl, location, value) => {\n const arrayValue = toArray(value, size);\n const length = arrayValue.length;\n let update = false;\n if (cache === null) {\n cache = new Float32Array(length);\n cacheLength = length;\n update = true;\n } else {\n assert(cacheLength === length, 'Uniform length cannot change.');\n for (let i = 0; i < length; ++i) {\n if (arrayValue[i] !== cache[i]) {\n update = true;\n break;\n }\n }\n }\n if (update) {\n uniformSetter(gl, functionName, location, arrayValue);\n cache.set(arrayValue);\n }\n\n return update;\n };\n}\n\nfunction setVectorUniform(gl, functionName, location, value) {\n gl[functionName](location, value);\n}\n\nfunction setMatrixUniform(gl, functionName, location, value) {\n gl[functionName](location, false, value);\n}\n"],"file":"uniforms.js"}
1
+ {"version":3,"sources":["../../../src/classes/uniforms.ts"],"names":["UNIFORM_SETTERS","GL","FLOAT","getArraySetter","bind","toFloatArray","setVectorUniform","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","INT","toIntArray","INT_VEC2","INT_VEC3","INT_VEC4","BOOL","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","FLOAT_MAT2","setMatrixUniform","FLOAT_MAT3","FLOAT_MAT4","SAMPLER_2D","getSamplerSetter","SAMPLER_CUBE","UNSIGNED_INT","toUIntArray","UNSIGNED_INT_VEC2","UNSIGNED_INT_VEC3","UNSIGNED_INT_VEC4","FLOAT_MAT2x3","FLOAT_MAT2x4","FLOAT_MAT3x2","FLOAT_MAT3x4","FLOAT_MAT4x2","FLOAT_MAT4x3","SAMPLER_3D","SAMPLER_2D_SHADOW","SAMPLER_2D_ARRAY","SAMPLER_2D_ARRAY_SHADOW","SAMPLER_CUBE_SHADOW","INT_SAMPLER_2D","INT_SAMPLER_3D","INT_SAMPLER_CUBE","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_2D_ARRAY","FLOAT_ARRAY","INT_ARRAY","UINT_ARRAY","array1","getUniformSetter","gl","location","info","setter","type","Error","parseUniformName","name","length","isArray","UNIFORM_NAME_REGEXP","matches","match","Number","Boolean","checkUniformValues","uniforms","source","uniformMap","uniformName","value","shouldCheck","checkUniformValue","console","error","copyUniform","key","Array","ArrayBuffer","isView","dest","i","len","slice","checkUniformArray","isFinite","Texture","Renderbuffer","Framebuffer","texture","checkLength","Math","min","cache","update","uniform1i","functionName","toArray","size","uniformSetter","cacheLength","arrayValue","Float32Array","set","toTypedArray","uniformLength","Type","log","warn","result","Int32Array","Uint32Array"],"mappings":"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","sourcesContent":["import {log, assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {Matrix4} from '@math.gl/core';\n\nimport Framebuffer from './framebuffer';\nimport Renderbuffer from './renderbuffer';\nimport Texture from './texture';\n\ntype NumberUniformInfo = {\n type: 'number'\n value: number\n min: number\n max: number\n}\n\ntype BooleanUniformInfo = {\n type: 'boolean'\n value: boolean\n}\n\ntype ArrayUniformInfo = {\n type: 'array'\n value: Array<any>\n}\n\ntype ObjectUniformInfo = {\n type: 'object'\n value: Object\n}\n\ntype UniformInfo = NumberUniformInfo |\n BooleanUniformInfo |\n ArrayUniformInfo |\n ObjectUniformInfo\n\n// https://luma.gl/docs/developer-guide/shader-modules#getuniforms\ntype UniformsOptions = {\n [uniformName: string]: UniformInfo\n}\n\ntype Uniform = UniformInfo |\n Buffer | (() => Buffer) | Framebuffer |\n Texture |\n Matrix4 | // TODO: which other math.gl classes?\n number | [number, number] | [number, number, number] | [number, number, number, number]\n\ntype Uniforms = {\n [uniformName: string]: Uniform\n}\n\nconst UNIFORM_SETTERS = {\n // WEBGL1\n\n [GL.FLOAT]: getArraySetter.bind(null, 'uniform1fv', toFloatArray, 1, setVectorUniform),\n [GL.FLOAT_VEC2]: getArraySetter.bind(null, 'uniform2fv', toFloatArray, 2, setVectorUniform),\n [GL.FLOAT_VEC3]: getArraySetter.bind(null, 'uniform3fv', toFloatArray, 3, setVectorUniform),\n [GL.FLOAT_VEC4]: getArraySetter.bind(null, 'uniform4fv', toFloatArray, 4, setVectorUniform),\n\n [GL.INT]: getArraySetter.bind(null, 'uniform1iv', toIntArray, 1, setVectorUniform),\n [GL.INT_VEC2]: getArraySetter.bind(null, 'uniform2iv', toIntArray, 2, setVectorUniform),\n [GL.INT_VEC3]: getArraySetter.bind(null, 'uniform3iv', toIntArray, 3, setVectorUniform),\n [GL.INT_VEC4]: getArraySetter.bind(null, 'uniform4iv', toIntArray, 4, setVectorUniform),\n\n [GL.BOOL]: getArraySetter.bind(null, 'uniform1iv', toIntArray, 1, setVectorUniform),\n [GL.BOOL_VEC2]: getArraySetter.bind(null, 'uniform2iv', toIntArray, 2, setVectorUniform),\n [GL.BOOL_VEC3]: getArraySetter.bind(null, 'uniform3iv', toIntArray, 3, setVectorUniform),\n [GL.BOOL_VEC4]: getArraySetter.bind(null, 'uniform4iv', toIntArray, 4, setVectorUniform),\n\n // uniformMatrix(false): don't transpose the matrix\n [GL.FLOAT_MAT2]: getArraySetter.bind(null, 'uniformMatrix2fv', toFloatArray, 4, setMatrixUniform),\n [GL.FLOAT_MAT3]: getArraySetter.bind(null, 'uniformMatrix3fv', toFloatArray, 9, setMatrixUniform),\n [GL.FLOAT_MAT4]: getArraySetter.bind(\n null,\n 'uniformMatrix4fv',\n toFloatArray,\n 16,\n setMatrixUniform\n ),\n\n [GL.SAMPLER_2D]: getSamplerSetter,\n [GL.SAMPLER_CUBE]: getSamplerSetter,\n\n // WEBGL2 - unsigned integers, irregular matrices, additional texture samplers\n\n [GL.UNSIGNED_INT]: getArraySetter.bind(null, 'uniform1uiv', toUIntArray, 1, setVectorUniform),\n [GL.UNSIGNED_INT_VEC2]: getArraySetter.bind(\n null,\n 'uniform2uiv',\n toUIntArray,\n 2,\n setVectorUniform\n ),\n [GL.UNSIGNED_INT_VEC3]: getArraySetter.bind(\n null,\n 'uniform3uiv',\n toUIntArray,\n 3,\n setVectorUniform\n ),\n [GL.UNSIGNED_INT_VEC4]: getArraySetter.bind(\n null,\n 'uniform4uiv',\n toUIntArray,\n 4,\n setVectorUniform\n ),\n\n // uniformMatrix(false): don't transpose the matrix\n [GL.FLOAT_MAT2x3]: getArraySetter.bind(\n null,\n 'uniformMatrix2x3fv',\n toFloatArray,\n 6,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT2x4]: getArraySetter.bind(\n null,\n 'uniformMatrix2x4fv',\n toFloatArray,\n 8,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT3x2]: getArraySetter.bind(\n null,\n 'uniformMatrix3x2fv',\n toFloatArray,\n 6,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT3x4]: getArraySetter.bind(\n null,\n 'uniformMatrix3x4fv',\n toFloatArray,\n 12,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT4x2]: getArraySetter.bind(\n null,\n 'uniformMatrix4x2fv',\n toFloatArray,\n 8,\n setMatrixUniform\n ),\n [GL.FLOAT_MAT4x3]: getArraySetter.bind(\n null,\n 'uniformMatrix4x3fv',\n toFloatArray,\n 12,\n setMatrixUniform\n ),\n\n [GL.SAMPLER_2D]: getSamplerSetter,\n [GL.SAMPLER_CUBE]: getSamplerSetter,\n\n [GL.SAMPLER_3D]: getSamplerSetter,\n [GL.SAMPLER_2D_SHADOW]: getSamplerSetter,\n [GL.SAMPLER_2D_ARRAY]: getSamplerSetter,\n [GL.SAMPLER_2D_ARRAY_SHADOW]: getSamplerSetter,\n [GL.SAMPLER_CUBE_SHADOW]: getSamplerSetter,\n [GL.INT_SAMPLER_2D]: getSamplerSetter,\n [GL.INT_SAMPLER_3D]: getSamplerSetter,\n [GL.INT_SAMPLER_CUBE]: getSamplerSetter,\n [GL.INT_SAMPLER_2D_ARRAY]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_2D]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_3D]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_CUBE]: getSamplerSetter,\n [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: getSamplerSetter\n};\n\n// Pre-allocated typed arrays for temporary conversion\nconst FLOAT_ARRAY = {};\nconst INT_ARRAY = {};\nconst UINT_ARRAY = {};\n\nconst array1 = [0];\n\n// PUBLIC API\n\n/** Returns a Magic Uniform Setter */\nexport function getUniformSetter(gl: WebGLRenderingContext, location: number, info: UniformInfo): any {\n const setter = UNIFORM_SETTERS[info.type];\n if (!setter) {\n throw new Error(`Unknown GLSL uniform type ${info.type}`);\n }\n\n // NOTE(Tarek): This construction is the ensure\n // separate caches for all setters.\n return setter().bind(null, gl, location);\n}\n\nexport function parseUniformName(name: string): {name: string; isArray: boolean, length: number} {\n // Shortcut to avoid redundant or bad matches\n if (name[name.length - 1] !== ']') {\n return {\n name,\n length: 1,\n isArray: false\n };\n }\n\n // if array name then clean the array brackets\n const UNIFORM_NAME_REGEXP = /([^[]*)(\\[[0-9]+\\])?/;\n const matches = name.match(UNIFORM_NAME_REGEXP);\n if (!matches || matches.length < 2) {\n throw new Error(`Failed to parse GLSL uniform name ${name}`);\n }\n\n return {\n name: matches[1],\n length: Number(matches[2]) || 1,\n isArray: Boolean(matches[2])\n };\n}\n\n// To facilitate early detection of e.g. undefined values in JavaScript\n\n// Basic checks of uniform values (with or without knowledge of program)\n\n/**\n * Basic checks of uniform values (with or without knowledge of program)\n * To facilitate early detection of e.g. undefined values in JavaScript\n */\n export function checkUniformValues(uniforms: object, source?: string, uniformMap?: object): boolean {\n for (const uniformName in uniforms) {\n const value = uniforms[uniformName];\n const shouldCheck = !uniformMap || Boolean(uniformMap[uniformName]);\n if (shouldCheck && !checkUniformValue(value)) {\n // Add space to source\n source = source ? `${source} ` : '';\n // Value could be unprintable so write the object on console\n console.error(`${source} Bad uniform ${uniformName}`, value); // eslint-disable-line no-console\n throw new Error(`${source} Bad uniform ${uniformName}`);\n }\n }\n return true;\n}\n\n /**\n * Creates a copy of the uniform\n */\nexport function copyUniform(uniforms: object, key: string, value: any): void {\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n if (uniforms[key]) {\n const dest = uniforms[key];\n // @ts-expect-error\n for (let i = 0, len = value.length; i < len; ++i) {\n dest[i] = value[i];\n }\n } else {\n // @ts-expect-error\n uniforms[key] = value.slice();\n }\n } else {\n uniforms[key] = value;\n }\n}\n\n// HELPERS\n\n// TODO use type information during validation\nfunction checkUniformValue(value) {\n if (Array.isArray(value) || ArrayBuffer.isView(value)) {\n return checkUniformArray(value);\n }\n\n // Check if single value is a number\n if (isFinite(value)) {\n return true;\n } else if (value === true || value === false) {\n return true;\n } else if (value instanceof Texture) {\n return true;\n } else if (value instanceof Renderbuffer) {\n return true;\n } else if (value instanceof Framebuffer) {\n return Boolean(value.texture);\n }\n return false;\n}\n\n\nfunction checkUniformArray(value) {\n // Check that every element in array is a number, and at least 1 element\n if (value.length === 0) {\n return false;\n }\n\n const checkLength = Math.min(value.length, 16);\n\n for (let i = 0; i < checkLength; ++i) {\n if (!Number.isFinite(value[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n// NOTE(Tarek): Setters maintain a cache\n// of the previously set value, and\n// avoid resetting it if it's the same.\nfunction getSamplerSetter() {\n let cache = null;\n return (gl, location, value) => {\n const update = cache !== value;\n if (update) {\n gl.uniform1i(location, value);\n cache = value;\n }\n\n return update;\n };\n}\n\nfunction getArraySetter(functionName, toArray, size, uniformSetter) {\n let cache = null;\n let cacheLength = null;\n return (gl, location, value) => {\n const arrayValue = toArray(value, size);\n const length = arrayValue.length;\n let update = false;\n if (cache === null) {\n cache = new Float32Array(length);\n cacheLength = length;\n update = true;\n } else {\n assert(cacheLength === length, 'Uniform length cannot change.');\n for (let i = 0; i < length; ++i) {\n if (arrayValue[i] !== cache[i]) {\n update = true;\n break;\n }\n }\n }\n if (update) {\n uniformSetter(gl, functionName, location, arrayValue);\n cache.set(arrayValue);\n }\n\n return update;\n };\n}\n\nfunction setVectorUniform(gl, functionName, location, value) {\n gl[functionName](location, value);\n}\n\nfunction setMatrixUniform(gl, functionName, location, value) {\n gl[functionName](location, false, value);\n}\n\n// Functions to ensure the type of uniform values\n// This is done because uniform*v functions\n// are extremely slow when consuming JS arrays directly.\n\nfunction toTypedArray(value, uniformLength, Type, cache) {\n // convert boolean uniforms to Number\n if (uniformLength === 1 && typeof value === 'boolean') {\n value = value ? 1 : 0;\n }\n if (Number.isFinite(value)) {\n array1[0] = value;\n value = array1;\n }\n const length = value.length;\n if (length % uniformLength) {\n log.warn(`Uniform size should be multiples of ${uniformLength}`, value)();\n }\n\n if (value instanceof Type) {\n return value;\n }\n let result = cache[length];\n if (!result) {\n result = new Type(length);\n cache[length] = result;\n }\n for (let i = 0; i < length; i++) {\n result[i] = value[i];\n }\n return result;\n}\n\nfunction toFloatArray(value, uniformLength) {\n return toTypedArray(value, uniformLength, Float32Array, FLOAT_ARRAY);\n}\n\nfunction toIntArray(value, uniformLength) {\n return toTypedArray(value, uniformLength, Int32Array, INT_ARRAY);\n}\n\nfunction toUIntArray(value, uniformLength) {\n return toTypedArray(value, uniformLength, Uint32Array, UINT_ARRAY);\n}\n"],"file":"uniforms.js"}