@luma.gl/webgl 8.6.0-alpha.1 → 8.6.0-alpha.5

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 (701) 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 +76 -0
  5. package/dist/_deprecated/context-api.js.map +1 -0
  6. package/dist/{features/webgl-features-table.d.ts → _deprecated/features.d.ts} +4 -7
  7. package/dist/_deprecated/features.d.ts.map +1 -0
  8. package/dist/_deprecated/features.js +111 -0
  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 +110 -0
  35. package/dist/adapter/webgl-device.d.ts.map +1 -0
  36. package/dist/adapter/webgl-device.js +207 -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/classes/accessor.js +2 -2
  43. package/dist/classes/accessor.js.map +1 -1
  44. package/dist/classes/accessor.ts.disabled +1 -1
  45. package/dist/classes/clear.d.ts +3 -2
  46. package/dist/classes/clear.d.ts.map +1 -1
  47. package/dist/classes/clear.js +7 -4
  48. package/dist/classes/clear.js.map +1 -1
  49. package/dist/classes/copy-and-blit.d.ts +18 -1
  50. package/dist/classes/copy-and-blit.d.ts.map +1 -1
  51. package/dist/classes/copy-and-blit.js +30 -25
  52. package/dist/classes/copy-and-blit.js.map +1 -1
  53. package/dist/classes/framebuffer.d.ts +10 -1
  54. package/dist/classes/framebuffer.d.ts.map +1 -1
  55. package/dist/classes/framebuffer.js +15 -15
  56. package/dist/classes/framebuffer.js.map +1 -1
  57. package/dist/classes/program-configuration.d.ts +14 -17
  58. package/dist/classes/program-configuration.d.ts.map +1 -1
  59. package/dist/classes/program-configuration.js +10 -97
  60. package/dist/classes/program-configuration.js.map +1 -1
  61. package/dist/classes/program.d.ts +25 -20
  62. package/dist/classes/program.d.ts.map +1 -1
  63. package/dist/classes/program.js +39 -28
  64. package/dist/classes/program.js.map +1 -1
  65. package/dist/classes/query.d.ts.map +1 -1
  66. package/dist/classes/query.js +6 -5
  67. package/dist/classes/query.js.map +1 -1
  68. package/dist/classes/renderbuffer-formats.js +1 -1
  69. package/dist/classes/renderbuffer-formats.js.map +1 -1
  70. package/dist/classes/renderbuffer.d.ts.map +1 -1
  71. package/dist/classes/renderbuffer.js +4 -3
  72. package/dist/classes/renderbuffer.js.map +1 -1
  73. package/dist/classes/{webgl-shader.d.ts → shader.d.ts} +4 -13
  74. package/dist/classes/shader.d.ts.map +1 -0
  75. package/dist/classes/{webgl-shader.js → shader.js} +7 -79
  76. package/dist/classes/shader.js.map +1 -0
  77. package/dist/classes/texture-2d.d.ts +4 -3
  78. package/dist/classes/texture-2d.d.ts.map +1 -1
  79. package/dist/classes/texture-2d.js +5 -8
  80. package/dist/classes/texture-2d.js.map +1 -1
  81. package/dist/classes/texture-3d.d.ts +3 -2
  82. package/dist/classes/texture-3d.d.ts.map +1 -1
  83. package/dist/classes/texture-3d.js +15 -6
  84. package/dist/classes/texture-3d.js.map +1 -1
  85. package/dist/classes/texture-cube.d.ts +2 -1
  86. package/dist/classes/texture-cube.d.ts.map +1 -1
  87. package/dist/classes/texture-cube.js +3 -4
  88. package/dist/classes/texture-cube.js.map +1 -1
  89. package/dist/classes/texture-formats.js +1 -1
  90. package/dist/classes/texture-formats.js.map +1 -1
  91. package/dist/classes/texture.d.ts +14 -9
  92. package/dist/classes/texture.d.ts.map +1 -1
  93. package/dist/classes/texture.js +19 -18
  94. package/dist/classes/texture.js.map +1 -1
  95. package/dist/classes/transform-feedback.d.ts.map +1 -1
  96. package/dist/classes/transform-feedback.js +5 -4
  97. package/dist/classes/transform-feedback.js.map +1 -1
  98. package/dist/classes/uniform-buffer-layout.js +1 -1
  99. package/dist/classes/uniform-buffer-layout.js.map +1 -1
  100. package/dist/classes/uniforms.d.ts +0 -1
  101. package/dist/classes/uniforms.d.ts.map +1 -1
  102. package/dist/classes/uniforms.js +1 -2
  103. package/dist/classes/uniforms.js.map +1 -1
  104. package/dist/classes/vertex-array-object.d.ts +7 -6
  105. package/dist/classes/vertex-array-object.d.ts.map +1 -1
  106. package/dist/classes/vertex-array-object.js +11 -12
  107. package/dist/classes/vertex-array-object.js.map +1 -1
  108. package/dist/classes/vertex-array.d.ts +14 -14
  109. package/dist/classes/vertex-array.d.ts.map +1 -1
  110. package/dist/classes/vertex-array.js +3 -4
  111. package/dist/classes/vertex-array.js.map +1 -1
  112. package/dist/classes/webgl-buffer.d.ts +2 -0
  113. package/dist/classes/webgl-buffer.d.ts.map +1 -1
  114. package/dist/classes/webgl-buffer.js +8 -5
  115. package/dist/classes/webgl-buffer.js.map +1 -1
  116. package/dist/classes/webgl-resource.d.ts +6 -4
  117. package/dist/classes/webgl-resource.d.ts.map +1 -1
  118. package/dist/classes/webgl-resource.js +12 -8
  119. package/dist/classes/webgl-resource.js.map +1 -1
  120. package/dist/context/context/context-state.d.ts +18 -0
  121. package/dist/context/context/context-state.d.ts.map +1 -0
  122. package/dist/context/context/context-state.js +26 -0
  123. package/dist/context/context/context-state.js.map +1 -0
  124. package/dist/context/context/create-context.d.ts +40 -0
  125. package/dist/context/context/create-context.d.ts.map +1 -0
  126. package/dist/context/context/create-context.js +37 -0
  127. package/dist/context/context/create-context.js.map +1 -0
  128. package/dist/context/context/device-pixels.d.ts +25 -0
  129. package/dist/context/context/device-pixels.d.ts.map +1 -0
  130. package/dist/context/context/device-pixels.js +98 -0
  131. package/dist/context/context/device-pixels.js.map +1 -0
  132. package/dist/context/context/get-canvas.d.ts +13 -0
  133. package/dist/context/context/get-canvas.d.ts.map +1 -0
  134. package/dist/context/context/get-canvas.js +31 -0
  135. package/dist/context/context/get-canvas.js.map +1 -0
  136. package/dist/context/context/resize-context.d.ts +20 -0
  137. package/dist/context/context/resize-context.d.ts.map +1 -0
  138. package/dist/context/context/resize-context.js +15 -0
  139. package/dist/context/context/resize-context.js.map +1 -0
  140. package/dist/context/context/webgl-checks.d.ts +13 -0
  141. package/dist/context/context/webgl-checks.d.ts.map +1 -0
  142. package/dist/context/context/webgl-checks.js +34 -0
  143. package/dist/context/context/webgl-checks.js.map +1 -0
  144. package/dist/context/parameters/unified-parameter-api.d.ts +31 -0
  145. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
  146. package/dist/context/parameters/unified-parameter-api.js +65 -0
  147. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  148. package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
  149. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
  150. package/dist/context/parameters/webgl-parameter-tables.js +445 -0
  151. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  152. package/dist/context/parameters/webgl-parameters.d.ts +144 -0
  153. package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
  154. package/dist/context/parameters/webgl-parameters.js +2 -0
  155. package/dist/context/parameters/webgl-parameters.js.map +1 -0
  156. package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
  157. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
  158. package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
  159. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  160. package/dist/context/polyfill/polyfill-context.d.ts +5 -0
  161. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
  162. package/dist/context/polyfill/polyfill-context.js +91 -0
  163. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  164. package/dist/context/polyfill/polyfill-table.d.ts +48 -0
  165. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
  166. package/dist/context/polyfill/polyfill-table.js +160 -0
  167. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  168. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
  169. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
  170. package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
  171. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  172. package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
  173. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
  174. package/dist/context/state-tracker/deep-array-equal.js +21 -0
  175. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  176. package/dist/context/state-tracker/track-context-state.d.ts +22 -0
  177. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
  178. package/dist/context/state-tracker/track-context-state.js +169 -0
  179. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  180. package/dist/context/state-tracker/with-parameters.d.ts +13 -0
  181. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
  182. package/dist/context/state-tracker/with-parameters.js +36 -0
  183. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  184. package/dist/debug/debug-uniforms.js +1 -1
  185. package/dist/debug/debug-uniforms.js.map +1 -1
  186. package/dist/debug/debug-vertex-array.js +2 -2
  187. package/dist/debug/debug-vertex-array.js.map +1 -1
  188. package/dist/es5/_deprecated/context-api.js +116 -0
  189. package/dist/es5/_deprecated/context-api.js.map +1 -0
  190. package/dist/es5/_deprecated/features.js +118 -0
  191. package/dist/es5/_deprecated/features.js.map +1 -0
  192. package/dist/es5/adapter/converters/set-device-parameters.js +138 -0
  193. package/dist/es5/adapter/converters/set-device-parameters.js.map +1 -0
  194. package/dist/es5/adapter/converters/webgpu-texture-formats.js +296 -0
  195. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +1 -0
  196. package/dist/es5/adapter/device-helpers/device-features.js +152 -0
  197. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -0
  198. package/dist/es5/adapter/device-helpers/device-limits.js +64 -0
  199. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -0
  200. package/dist/es5/adapter/device-helpers/get-device-info.js +55 -0
  201. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -0
  202. package/dist/es5/adapter/device-helpers/is-old-ie.js +16 -0
  203. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -0
  204. package/dist/es5/adapter/webgl-device.js +279 -0
  205. package/dist/es5/adapter/webgl-device.js.map +1 -0
  206. package/dist/es5/adapter/webgl-shader.js +155 -0
  207. package/dist/es5/adapter/webgl-shader.js.map +1 -0
  208. package/dist/es5/bundle.js +1 -1
  209. package/dist/es5/bundle.js.map +1 -1
  210. package/dist/es5/classes/accessor.js +104 -74
  211. package/dist/es5/classes/accessor.js.map +1 -1
  212. package/dist/es5/classes/accessor.ts.disabled +1 -1
  213. package/dist/es5/classes/clear.js +55 -34
  214. package/dist/es5/classes/clear.js.map +1 -1
  215. package/dist/es5/classes/copy-and-blit.js +175 -156
  216. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  217. package/dist/es5/classes/framebuffer.js +647 -518
  218. package/dist/es5/classes/framebuffer.js.map +1 -1
  219. package/dist/es5/classes/program-configuration.js +78 -128
  220. package/dist/es5/classes/program-configuration.js.map +1 -1
  221. package/dist/es5/classes/program.js +379 -292
  222. package/dist/es5/classes/program.js.map +1 -1
  223. package/dist/es5/classes/query.js +172 -107
  224. package/dist/es5/classes/query.js.map +1 -1
  225. package/dist/es5/classes/renderbuffer-formats.js +126 -164
  226. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  227. package/dist/es5/classes/renderbuffer.js +151 -98
  228. package/dist/es5/classes/renderbuffer.js.map +1 -1
  229. package/dist/es5/classes/shader.js +195 -0
  230. package/dist/es5/classes/shader.js.map +1 -0
  231. package/dist/es5/classes/texture-2d.js +44 -17
  232. package/dist/es5/classes/texture-2d.js.map +1 -1
  233. package/dist/es5/classes/texture-3d.js +107 -48
  234. package/dist/es5/classes/texture-3d.js.map +1 -1
  235. package/dist/es5/classes/texture-cube.js +169 -110
  236. package/dist/es5/classes/texture-cube.js.map +1 -1
  237. package/dist/es5/classes/texture-formats.js +42 -71
  238. package/dist/es5/classes/texture-formats.js.map +1 -1
  239. package/dist/es5/classes/texture.js +780 -665
  240. package/dist/es5/classes/texture.js.map +1 -1
  241. package/dist/es5/classes/transform-feedback.js +206 -150
  242. package/dist/es5/classes/transform-feedback.js.map +1 -1
  243. package/dist/es5/classes/uniform-buffer-layout.js +103 -89
  244. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  245. package/dist/es5/classes/uniforms.js +39 -80
  246. package/dist/es5/classes/uniforms.js.map +1 -1
  247. package/dist/es5/classes/vertex-array-object.js +268 -209
  248. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  249. package/dist/es5/classes/vertex-array.js +348 -303
  250. package/dist/es5/classes/vertex-array.js.map +1 -1
  251. package/dist/es5/classes/webgl-buffer.js +374 -303
  252. package/dist/es5/classes/webgl-buffer.js.map +1 -1
  253. package/dist/es5/classes/webgl-resource.js +231 -161
  254. package/dist/es5/classes/webgl-resource.js.map +1 -1
  255. package/dist/es5/context/context/context-state.js +31 -0
  256. package/dist/es5/context/context/context-state.js.map +1 -0
  257. package/dist/es5/context/context/create-context.js +57 -0
  258. package/dist/es5/context/context/create-context.js.map +1 -0
  259. package/dist/es5/context/context/device-pixels.js +115 -0
  260. package/dist/es5/context/context/device-pixels.js.map +1 -0
  261. package/dist/es5/context/context/get-canvas.js +40 -0
  262. package/dist/es5/context/context/get-canvas.js.map +1 -0
  263. package/dist/es5/context/context/resize-context.js +23 -0
  264. package/dist/es5/context/context/resize-context.js.map +1 -0
  265. package/dist/es5/context/context/webgl-checks.js +54 -0
  266. package/dist/es5/context/context/webgl-checks.js.map +1 -0
  267. package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
  268. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
  269. package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
  270. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
  271. package/dist/es5/context/parameters/webgl-parameters.js +6 -0
  272. package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
  273. package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
  274. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
  275. package/dist/es5/context/polyfill/polyfill-context.js +134 -0
  276. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
  277. package/dist/es5/context/polyfill/polyfill-table.js +166 -0
  278. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
  279. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
  280. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  281. package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
  282. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
  283. package/dist/es5/context/state-tracker/track-context-state.js +196 -0
  284. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
  285. package/dist/es5/context/state-tracker/with-parameters.js +44 -0
  286. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
  287. package/dist/es5/debug/debug-program-configuration.js +48 -20
  288. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  289. package/dist/es5/debug/debug-uniforms.js +110 -70
  290. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  291. package/dist/es5/debug/debug-vertex-array.js +49 -54
  292. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  293. package/dist/es5/helpers/get-program-bindings.js +274 -0
  294. package/dist/es5/helpers/get-program-bindings.js.map +1 -0
  295. package/dist/es5/helpers/program-bindings.js +2 -0
  296. package/dist/es5/helpers/program-bindings.js.map +1 -0
  297. package/dist/es5/index.js +268 -192
  298. package/dist/es5/index.js.map +1 -1
  299. package/dist/es5/init.js +18 -14
  300. package/dist/es5/init.js.map +1 -1
  301. package/dist/es5/types/accessor.d.ts +29 -0
  302. package/dist/es5/webgl-utils/attribute-utils.js +74 -87
  303. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  304. package/dist/es5/webgl-utils/constants-to-keys.js +7 -7
  305. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  306. package/dist/es5/webgl-utils/format-utils.js +4 -4
  307. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  308. package/dist/es5/webgl-utils/get-error.js +18 -18
  309. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  310. package/dist/es5/webgl-utils/index.js +10 -10
  311. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +53 -25
  312. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -1
  313. package/dist/es5/webgl-utils/texture-utils.js +32 -36
  314. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  315. package/dist/es5/webgl-utils/typed-array-utils.js +33 -32
  316. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  317. package/dist/esm/_deprecated/context-api.js +76 -0
  318. package/dist/esm/_deprecated/context-api.js.map +1 -0
  319. package/dist/esm/_deprecated/features.js +111 -0
  320. package/dist/esm/_deprecated/features.js.map +1 -0
  321. package/dist/esm/adapter/converters/set-device-parameters.js +124 -0
  322. package/dist/esm/adapter/converters/set-device-parameters.js.map +1 -0
  323. package/dist/esm/adapter/converters/webgpu-texture-formats.js +285 -0
  324. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +1 -0
  325. package/dist/esm/adapter/device-helpers/device-features.js +123 -0
  326. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -0
  327. package/dist/esm/adapter/device-helpers/device-limits.js +90 -0
  328. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -0
  329. package/dist/esm/adapter/device-helpers/get-device-info.js +44 -0
  330. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -0
  331. package/dist/{features/check-old-ie.js → esm/adapter/device-helpers/is-old-ie.js} +3 -3
  332. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -0
  333. package/dist/esm/adapter/webgl-device.js +207 -0
  334. package/dist/esm/adapter/webgl-device.js.map +1 -0
  335. package/dist/esm/adapter/webgl-shader.js +82 -0
  336. package/dist/esm/adapter/webgl-shader.js.map +1 -0
  337. package/dist/esm/classes/accessor.js +2 -2
  338. package/dist/esm/classes/accessor.js.map +1 -1
  339. package/dist/esm/classes/accessor.ts.disabled +1 -1
  340. package/dist/esm/classes/clear.js +7 -4
  341. package/dist/esm/classes/clear.js.map +1 -1
  342. package/dist/esm/classes/copy-and-blit.js +30 -25
  343. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  344. package/dist/esm/classes/framebuffer.js +15 -15
  345. package/dist/esm/classes/framebuffer.js.map +1 -1
  346. package/dist/esm/classes/program-configuration.js +10 -97
  347. package/dist/esm/classes/program-configuration.js.map +1 -1
  348. package/dist/esm/classes/program.js +39 -28
  349. package/dist/esm/classes/program.js.map +1 -1
  350. package/dist/esm/classes/query.js +6 -5
  351. package/dist/esm/classes/query.js.map +1 -1
  352. package/dist/esm/classes/renderbuffer-formats.js +1 -1
  353. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  354. package/dist/esm/classes/renderbuffer.js +4 -3
  355. package/dist/esm/classes/renderbuffer.js.map +1 -1
  356. package/dist/esm/classes/{webgl-shader.js → shader.js} +7 -79
  357. package/dist/esm/classes/shader.js.map +1 -0
  358. package/dist/esm/classes/texture-2d.js +5 -8
  359. package/dist/esm/classes/texture-2d.js.map +1 -1
  360. package/dist/esm/classes/texture-3d.js +15 -6
  361. package/dist/esm/classes/texture-3d.js.map +1 -1
  362. package/dist/esm/classes/texture-cube.js +3 -4
  363. package/dist/esm/classes/texture-cube.js.map +1 -1
  364. package/dist/esm/classes/texture-formats.js +1 -1
  365. package/dist/esm/classes/texture-formats.js.map +1 -1
  366. package/dist/esm/classes/texture.js +19 -18
  367. package/dist/esm/classes/texture.js.map +1 -1
  368. package/dist/esm/classes/transform-feedback.js +5 -4
  369. package/dist/esm/classes/transform-feedback.js.map +1 -1
  370. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  371. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  372. package/dist/esm/classes/uniforms.js +1 -2
  373. package/dist/esm/classes/uniforms.js.map +1 -1
  374. package/dist/esm/classes/vertex-array-object.js +11 -12
  375. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  376. package/dist/esm/classes/vertex-array.js +3 -4
  377. package/dist/esm/classes/vertex-array.js.map +1 -1
  378. package/dist/esm/classes/webgl-buffer.js +8 -5
  379. package/dist/esm/classes/webgl-buffer.js.map +1 -1
  380. package/dist/esm/classes/webgl-resource.js +12 -8
  381. package/dist/esm/classes/webgl-resource.js.map +1 -1
  382. package/dist/esm/context/context/context-state.js +26 -0
  383. package/dist/esm/context/context/context-state.js.map +1 -0
  384. package/dist/esm/context/context/create-context.js +37 -0
  385. package/dist/esm/context/context/create-context.js.map +1 -0
  386. package/dist/esm/context/context/device-pixels.js +98 -0
  387. package/dist/esm/context/context/device-pixels.js.map +1 -0
  388. package/dist/esm/context/context/get-canvas.js +31 -0
  389. package/dist/esm/context/context/get-canvas.js.map +1 -0
  390. package/dist/esm/context/context/resize-context.js +15 -0
  391. package/dist/esm/context/context/resize-context.js.map +1 -0
  392. package/dist/esm/context/context/webgl-checks.js +34 -0
  393. package/dist/esm/context/context/webgl-checks.js.map +1 -0
  394. package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
  395. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
  396. package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
  397. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
  398. package/dist/esm/context/parameters/webgl-parameters.js +2 -0
  399. package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
  400. package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
  401. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
  402. package/dist/esm/context/polyfill/polyfill-context.js +91 -0
  403. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
  404. package/dist/esm/context/polyfill/polyfill-table.js +160 -0
  405. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
  406. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
  407. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  408. package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
  409. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
  410. package/dist/esm/context/state-tracker/track-context-state.js +169 -0
  411. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
  412. package/dist/esm/context/state-tracker/with-parameters.js +36 -0
  413. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
  414. package/dist/esm/debug/debug-uniforms.js +1 -1
  415. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  416. package/dist/esm/debug/debug-vertex-array.js +2 -2
  417. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  418. package/dist/esm/helpers/get-program-bindings.js +228 -0
  419. package/dist/esm/helpers/get-program-bindings.js.map +1 -0
  420. package/dist/esm/helpers/program-bindings.js +2 -0
  421. package/dist/esm/helpers/program-bindings.js.map +1 -0
  422. package/dist/esm/index.js +26 -20
  423. package/dist/esm/index.js.map +1 -1
  424. package/dist/esm/init.js +11 -8
  425. package/dist/esm/init.js.map +1 -1
  426. package/dist/esm/types/accessor.d.ts +29 -0
  427. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  428. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  429. package/dist/esm/webgl-utils/constants-to-keys.js +1 -1
  430. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  431. package/dist/esm/webgl-utils/format-utils.js +1 -1
  432. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  433. package/dist/esm/webgl-utils/texture-utils.js +2 -2
  434. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  435. package/dist/esm/webgl-utils/typed-array-utils.js +22 -18
  436. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  437. package/dist/helpers/get-program-bindings.d.ts +8 -0
  438. package/dist/helpers/get-program-bindings.d.ts.map +1 -0
  439. package/dist/helpers/get-program-bindings.js +228 -0
  440. package/dist/helpers/get-program-bindings.js.map +1 -0
  441. package/dist/helpers/program-bindings.d.ts +41 -0
  442. package/dist/helpers/program-bindings.d.ts.map +1 -0
  443. package/dist/helpers/program-bindings.js +2 -0
  444. package/dist/helpers/program-bindings.js.map +1 -0
  445. package/dist/index.d.ts +41 -20
  446. package/dist/index.d.ts.map +1 -1
  447. package/dist/index.js +26 -20
  448. package/dist/index.js.map +1 -1
  449. package/dist/init.d.ts.map +1 -1
  450. package/dist/init.js +11 -8
  451. package/dist/init.js.map +1 -1
  452. package/dist/types/accessor.d.ts +29 -0
  453. package/dist/webgl-utils/attribute-utils.d.ts +1 -1
  454. package/dist/webgl-utils/attribute-utils.js +1 -1
  455. package/dist/webgl-utils/attribute-utils.js.map +1 -1
  456. package/dist/webgl-utils/constants-to-keys.js +1 -1
  457. package/dist/webgl-utils/constants-to-keys.js.map +1 -1
  458. package/dist/webgl-utils/format-utils.d.ts +2 -2
  459. package/dist/webgl-utils/format-utils.js +1 -1
  460. package/dist/webgl-utils/format-utils.js.map +1 -1
  461. package/dist/webgl-utils/texture-utils.d.ts +12 -8
  462. package/dist/webgl-utils/texture-utils.d.ts.map +1 -1
  463. package/dist/webgl-utils/texture-utils.js +2 -2
  464. package/dist/webgl-utils/texture-utils.js.map +1 -1
  465. package/dist/webgl-utils/typed-array-utils.d.ts +39 -32
  466. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -1
  467. package/dist/webgl-utils/typed-array-utils.js +22 -18
  468. package/dist/webgl-utils/typed-array-utils.js.map +1 -1
  469. package/package.json +5 -6
  470. package/src/.DS_Store +0 -0
  471. package/src/_deprecated/context-api.ts +146 -0
  472. package/src/_deprecated/features.ts +159 -0
  473. package/src/adapter/converters/set-device-parameters.ts +182 -0
  474. package/src/adapter/converters/webgpu-texture-formats.ts +167 -0
  475. package/src/adapter/device-helpers/device-features.ts +227 -0
  476. package/src/adapter/device-helpers/device-limits.ts +150 -0
  477. package/src/adapter/device-helpers/get-device-info.ts +49 -0
  478. package/src/{features/check-old-ie.ts → adapter/device-helpers/is-old-ie.ts} +3 -3
  479. package/src/adapter/webgl-device.ts +399 -0
  480. package/src/adapter/webgl-shader.ts +84 -0
  481. package/src/classes/accessor.js +2 -2
  482. package/src/classes/accessor.ts.disabled +1 -1
  483. package/src/classes/clear.ts +9 -4
  484. package/src/classes/copy-and-blit.ts +49 -52
  485. package/src/classes/framebuffer.ts +38 -35
  486. package/src/classes/program-configuration.ts +28 -81
  487. package/src/classes/program.ts +89 -75
  488. package/src/classes/query.ts +6 -6
  489. package/src/classes/renderbuffer-formats.ts +1 -1
  490. package/src/classes/renderbuffer.ts +5 -4
  491. package/src/classes/{webgl-shader.ts → shader.ts} +7 -78
  492. package/src/classes/texture-2d.ts +6 -11
  493. package/src/classes/texture-3d.ts +16 -11
  494. package/src/classes/texture-cube.ts +7 -7
  495. package/src/classes/texture-formats.ts +1 -1
  496. package/src/classes/texture.ts +39 -40
  497. package/src/classes/transform-feedback.ts +14 -13
  498. package/src/classes/uniform-buffer-layout.ts +1 -1
  499. package/src/classes/uniforms.ts +4 -10
  500. package/src/classes/vertex-array-object.ts +17 -20
  501. package/src/classes/vertex-array.ts +16 -11
  502. package/src/classes/webgl-buffer.ts +7 -5
  503. package/src/classes/webgl-resource.ts +20 -18
  504. package/src/context/context/context-state.ts +39 -0
  505. package/src/context/context/create-context.ts +83 -0
  506. package/src/context/context/device-pixels.ts +147 -0
  507. package/src/context/context/get-canvas.ts +37 -0
  508. package/src/context/context/resize-context.ts +37 -0
  509. package/src/context/context/webgl-checks.ts +49 -0
  510. package/src/context/parameters/unified-parameter-api.ts +128 -0
  511. package/src/context/parameters/webgl-parameter-tables.ts +625 -0
  512. package/src/context/parameters/webgl-parameters.ts +197 -0
  513. package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
  514. package/src/context/polyfill/polyfill-context.ts +98 -0
  515. package/src/context/polyfill/polyfill-table.ts +162 -0
  516. package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
  517. package/src/context/state-tracker/deep-array-equal.ts +20 -0
  518. package/src/context/state-tracker/track-context-state.ts +250 -0
  519. package/src/context/state-tracker/with-parameters.ts +50 -0
  520. package/src/debug/debug-uniforms.ts +1 -1
  521. package/src/debug/debug-vertex-array.ts +2 -4
  522. package/src/helpers/get-program-bindings.ts +244 -0
  523. package/src/helpers/program-bindings.ts +46 -0
  524. package/src/index.ts +94 -23
  525. package/src/init.ts +12 -9
  526. package/src/types/accessor.d.ts +29 -0
  527. package/src/types.ts +1 -1
  528. package/src/webgl-utils/attribute-utils.ts +1 -1
  529. package/src/webgl-utils/constants-to-keys.ts +1 -1
  530. package/src/webgl-utils/format-utils.ts +1 -1
  531. package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +13 -10
  532. package/src/webgl-utils/{typed-array-utils.js → typed-array-utils.ts} +59 -16
  533. package/dist/classes/webgl-shader.d.ts.map +0 -1
  534. package/dist/classes/webgl-shader.js.map +0 -1
  535. package/dist/context/gl-context.d.ts +0 -15
  536. package/dist/context/gl-context.d.ts.map +0 -1
  537. package/dist/context/gl-context.js +0 -32
  538. package/dist/context/gl-context.js.map +0 -1
  539. package/dist/context/luma-context-data.d.ts +0 -31
  540. package/dist/context/luma-context-data.d.ts.map +0 -1
  541. package/dist/context/luma-context-data.js +0 -5
  542. package/dist/context/luma-context-data.js.map +0 -1
  543. package/dist/es5/classes/webgl-shader.js +0 -213
  544. package/dist/es5/classes/webgl-shader.js.map +0 -1
  545. package/dist/es5/context/gl-context.js +0 -46
  546. package/dist/es5/context/gl-context.js.map +0 -1
  547. package/dist/es5/context/luma-context-data.js +0 -12
  548. package/dist/es5/context/luma-context-data.js.map +0 -1
  549. package/dist/es5/features/check-glsl-extension.js +0 -40
  550. package/dist/es5/features/check-glsl-extension.js.map +0 -1
  551. package/dist/es5/features/check-old-ie.js +0 -15
  552. package/dist/es5/features/check-old-ie.js.map +0 -1
  553. package/dist/es5/features/features.js +0 -85
  554. package/dist/es5/features/features.js.map +0 -1
  555. package/dist/es5/features/index.js +0 -64
  556. package/dist/es5/features/index.js.map +0 -1
  557. package/dist/es5/features/limits.js +0 -72
  558. package/dist/es5/features/limits.js.map +0 -1
  559. package/dist/es5/features/webgl-features-table.js +0 -84
  560. package/dist/es5/features/webgl-features-table.js.map +0 -1
  561. package/dist/es5/features/webgl-limits-table.js +0 -172
  562. package/dist/es5/features/webgl-limits-table.js.map +0 -1
  563. package/dist/es5/utils/array-utils-flat.js +0 -50
  564. package/dist/es5/utils/array-utils-flat.js.map +0 -1
  565. package/dist/es5/utils/assert.js +0 -13
  566. package/dist/es5/utils/assert.js.map +0 -1
  567. package/dist/es5/utils/check-props.js +0 -50
  568. package/dist/es5/utils/check-props.js.map +0 -1
  569. package/dist/es5/utils/format-value.js +0 -57
  570. package/dist/es5/utils/format-value.js.map +0 -1
  571. package/dist/es5/utils/index.js +0 -68
  572. package/dist/es5/utils/index.js.map +0 -1
  573. package/dist/es5/utils/is-old-ie.js +0 -13
  574. package/dist/es5/utils/is-old-ie.js.map +0 -1
  575. package/dist/es5/utils/load-file.js +0 -43
  576. package/dist/es5/utils/load-file.js.map +0 -1
  577. package/dist/es5/utils/stub-methods.js +0 -25
  578. package/dist/es5/utils/stub-methods.js.map +0 -1
  579. package/dist/es5/utils/utils.js +0 -31
  580. package/dist/es5/utils/utils.js.map +0 -1
  581. package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
  582. package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
  583. package/dist/esm/classes/webgl-shader.js.map +0 -1
  584. package/dist/esm/context/gl-context.js +0 -32
  585. package/dist/esm/context/gl-context.js.map +0 -1
  586. package/dist/esm/context/luma-context-data.js +0 -5
  587. package/dist/esm/context/luma-context-data.js.map +0 -1
  588. package/dist/esm/features/check-glsl-extension.js +0 -27
  589. package/dist/esm/features/check-glsl-extension.js.map +0 -1
  590. package/dist/esm/features/check-old-ie.js.map +0 -1
  591. package/dist/esm/features/features.js +0 -67
  592. package/dist/esm/features/features.js.map +0 -1
  593. package/dist/esm/features/index.js +0 -5
  594. package/dist/esm/features/index.js.map +0 -1
  595. package/dist/esm/features/limits.js +0 -55
  596. package/dist/esm/features/limits.js.map +0 -1
  597. package/dist/esm/features/webgl-features-table.js +0 -71
  598. package/dist/esm/features/webgl-features-table.js.map +0 -1
  599. package/dist/esm/features/webgl-limits-table.js +0 -161
  600. package/dist/esm/features/webgl-limits-table.js.map +0 -1
  601. package/dist/esm/utils/array-utils-flat.js +0 -39
  602. package/dist/esm/utils/array-utils-flat.js.map +0 -1
  603. package/dist/esm/utils/assert.js +0 -6
  604. package/dist/esm/utils/assert.js.map +0 -1
  605. package/dist/esm/utils/check-props.js +0 -38
  606. package/dist/esm/utils/check-props.js.map +0 -1
  607. package/dist/esm/utils/format-value.js +0 -50
  608. package/dist/esm/utils/format-value.js.map +0 -1
  609. package/dist/esm/utils/index.js +0 -7
  610. package/dist/esm/utils/index.js.map +0 -1
  611. package/dist/esm/utils/is-old-ie.js +0 -5
  612. package/dist/esm/utils/is-old-ie.js.map +0 -1
  613. package/dist/esm/utils/load-file.js +0 -30
  614. package/dist/esm/utils/load-file.js.map +0 -1
  615. package/dist/esm/utils/stub-methods.js +0 -16
  616. package/dist/esm/utils/stub-methods.js.map +0 -1
  617. package/dist/esm/utils/utils.js +0 -20
  618. package/dist/esm/utils/utils.js.map +0 -1
  619. package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
  620. package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
  621. package/dist/features/check-glsl-extension.d.ts +0 -2
  622. package/dist/features/check-glsl-extension.d.ts.map +0 -1
  623. package/dist/features/check-glsl-extension.js +0 -27
  624. package/dist/features/check-glsl-extension.js.map +0 -1
  625. package/dist/features/check-old-ie.d.ts +0 -2
  626. package/dist/features/check-old-ie.d.ts.map +0 -1
  627. package/dist/features/check-old-ie.js.map +0 -1
  628. package/dist/features/features.d.ts +0 -6
  629. package/dist/features/features.d.ts.map +0 -1
  630. package/dist/features/features.js +0 -67
  631. package/dist/features/features.js.map +0 -1
  632. package/dist/features/index.d.ts +0 -5
  633. package/dist/features/index.d.ts.map +0 -1
  634. package/dist/features/index.js +0 -5
  635. package/dist/features/index.js.map +0 -1
  636. package/dist/features/limits.d.ts +0 -28
  637. package/dist/features/limits.d.ts.map +0 -1
  638. package/dist/features/limits.js +0 -55
  639. package/dist/features/limits.js.map +0 -1
  640. package/dist/features/webgl-features-table.d.ts.map +0 -1
  641. package/dist/features/webgl-features-table.js +0 -71
  642. package/dist/features/webgl-features-table.js.map +0 -1
  643. package/dist/features/webgl-limits-table.d.ts +0 -161
  644. package/dist/features/webgl-limits-table.d.ts.map +0 -1
  645. package/dist/features/webgl-limits-table.js +0 -161
  646. package/dist/features/webgl-limits-table.js.map +0 -1
  647. package/dist/utils/array-utils-flat.d.ts +0 -9
  648. package/dist/utils/array-utils-flat.d.ts.map +0 -1
  649. package/dist/utils/array-utils-flat.js +0 -39
  650. package/dist/utils/array-utils-flat.js.map +0 -1
  651. package/dist/utils/assert.d.ts +0 -2
  652. package/dist/utils/assert.d.ts.map +0 -1
  653. package/dist/utils/assert.js +0 -6
  654. package/dist/utils/assert.js.map +0 -1
  655. package/dist/utils/check-props.d.ts +0 -2
  656. package/dist/utils/check-props.d.ts.map +0 -1
  657. package/dist/utils/check-props.js +0 -38
  658. package/dist/utils/check-props.js.map +0 -1
  659. package/dist/utils/format-value.d.ts +0 -5
  660. package/dist/utils/format-value.d.ts.map +0 -1
  661. package/dist/utils/format-value.js +0 -50
  662. package/dist/utils/format-value.js.map +0 -1
  663. package/dist/utils/index.d.ts +0 -7
  664. package/dist/utils/index.d.ts.map +0 -1
  665. package/dist/utils/index.js +0 -7
  666. package/dist/utils/index.js.map +0 -1
  667. package/dist/utils/is-old-ie.d.ts +0 -4
  668. package/dist/utils/is-old-ie.d.ts.map +0 -1
  669. package/dist/utils/is-old-ie.js +0 -5
  670. package/dist/utils/is-old-ie.js.map +0 -1
  671. package/dist/utils/load-file.d.ts +0 -4
  672. package/dist/utils/load-file.d.ts.map +0 -1
  673. package/dist/utils/load-file.js +0 -30
  674. package/dist/utils/load-file.js.map +0 -1
  675. package/dist/utils/stub-methods.d.ts +0 -2
  676. package/dist/utils/stub-methods.d.ts.map +0 -1
  677. package/dist/utils/stub-methods.js +0 -16
  678. package/dist/utils/stub-methods.js.map +0 -1
  679. package/dist/utils/utils.d.ts +0 -15
  680. package/dist/utils/utils.d.ts.map +0 -1
  681. package/dist/utils/utils.js +0 -20
  682. package/dist/utils/utils.js.map +0 -1
  683. package/src/context/gl-context.ts +0 -31
  684. package/src/context/luma-context-data.ts +0 -27
  685. package/src/features/check-glsl-extension.ts +0 -34
  686. package/src/features/features.ts +0 -80
  687. package/src/features/index.ts +0 -5
  688. package/src/features/limits.ts +0 -66
  689. package/src/features/webgl-features-table.ts +0 -104
  690. package/src/features/webgl-limits-table.ts +0 -51
  691. package/src/utils/array-utils-flat.ts +0 -56
  692. package/src/utils/assert.ts +0 -7
  693. package/src/utils/check-props.ts +0 -68
  694. package/src/utils/format-value.ts +0 -37
  695. package/src/utils/index.ts +0 -6
  696. package/src/utils/is-old-ie.ts +0 -6
  697. package/src/utils/load-file.ts +0 -40
  698. package/src/utils/stub-methods.ts +0 -20
  699. package/src/utils/utils.ts +0 -35
  700. package/src/webgl-utils/texture-utils.d.ts +0 -11
  701. package/src/webgl-utils/typed-array-utils.d.ts +0 -36
@@ -1,4 +1,4 @@
1
- import { assert } from '../utils';
1
+ import { assert } from '@luma.gl/api';
2
2
  export function getKeyValue(gl, name) {
3
3
  if (typeof name !== 'string') {
4
4
  return name;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/webgl-utils/constants-to-keys.ts"],"names":["assert","getKeyValue","gl","name","number","Number","isNaN","replace","value","undefined","getKey","key","String","getKeyType"],"mappings":"AAAA,SAAQA,MAAR,QAAqB,UAArB;AAGA,OAAO,SAASC,WAAT,CAAqBC,EAArB,EAAyBC,IAAzB,EAA+B;AAEpC,MAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AAC5B,WAAOA,IAAP;AACD;;AAGD,QAAMC,MAAM,GAAGC,MAAM,CAACF,IAAD,CAArB;;AACA,MAAI,CAACG,KAAK,CAACF,MAAD,CAAV,EAAoB;AAClB,WAAOA,MAAP;AACD;;AAGDD,EAAAA,IAAI,GAAGA,IAAI,CAACI,OAAL,CAAa,OAAb,EAAsB,EAAtB,CAAP;AACA,QAAMC,KAAK,GAAGN,EAAE,CAACC,IAAD,CAAhB;AACAH,EAAAA,MAAM,CAACQ,KAAK,KAAKC,SAAX,4CAAyDN,IAAzD,EAAN;AACA,SAAOK,KAAP;AACD;AAED,OAAO,SAASE,MAAT,CAAgBR,EAAhB,EAAoBM,KAApB,EAA2B;AAChCA,EAAAA,KAAK,GAAGH,MAAM,CAACG,KAAD,CAAd;;AACA,OAAK,MAAMG,GAAX,IAAkBT,EAAlB,EAAsB;AACpB,QAAIA,EAAE,CAACS,GAAD,CAAF,KAAYH,KAAhB,EAAuB;AACrB,0BAAaG,GAAb;AACD;AACF;;AACD,SAAOC,MAAM,CAACJ,KAAD,CAAb;AACD;AAED,OAAO,SAASK,UAAT,CAAoBX,EAApB,EAAwBM,KAAxB,EAA+B;AACpCR,EAAAA,MAAM,CAACQ,KAAK,KAAKC,SAAX,EAAsB,eAAtB,CAAN;AACAD,EAAAA,KAAK,GAAGH,MAAM,CAACG,KAAD,CAAd;;AACA,OAAK,MAAMG,GAAX,IAAkBT,EAAlB,EAAsB;AACpB,QAAIA,EAAE,CAACS,GAAD,CAAF,KAAYH,KAAhB,EAAuB;AACrB,0BAAaG,GAAb;AACD;AACF;;AACD,SAAOC,MAAM,CAACJ,KAAD,CAAb;AACD","sourcesContent":["import {assert} from '../utils';\n\n// Resolve a WebGL enumeration name (returns itself if already a number)\nexport function getKeyValue(gl, name) {\n // If not a string, return (assume number)\n if (typeof name !== 'string') {\n return name;\n }\n\n // If string converts to number, return number\n const number = Number(name);\n if (!isNaN(number)) {\n return number;\n }\n\n // Look up string, after removing any 'GL.' or 'gl.' prefix\n name = name.replace(/^.*\\./, '');\n const value = gl[name];\n assert(value !== undefined, `Accessing undefined constant GL.${name}`);\n return value;\n}\n\nexport function getKey(gl, value) {\n value = Number(value);\n for (const key in gl) {\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n\nexport function getKeyType(gl, value) {\n assert(value !== undefined, 'undefined key');\n value = Number(value);\n for (const key in gl) {\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n"],"file":"constants-to-keys.js"}
1
+ {"version":3,"sources":["../../../src/webgl-utils/constants-to-keys.ts"],"names":["assert","getKeyValue","gl","name","number","Number","isNaN","replace","value","undefined","getKey","key","String","getKeyType"],"mappings":"AAAA,SAAQA,MAAR,QAAqB,cAArB;AAGA,OAAO,SAASC,WAAT,CAAqBC,EAArB,EAAyBC,IAAzB,EAA+B;AAEpC,MAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AAC5B,WAAOA,IAAP;AACD;;AAGD,QAAMC,MAAM,GAAGC,MAAM,CAACF,IAAD,CAArB;;AACA,MAAI,CAACG,KAAK,CAACF,MAAD,CAAV,EAAoB;AAClB,WAAOA,MAAP;AACD;;AAGDD,EAAAA,IAAI,GAAGA,IAAI,CAACI,OAAL,CAAa,OAAb,EAAsB,EAAtB,CAAP;AACA,QAAMC,KAAK,GAAGN,EAAE,CAACC,IAAD,CAAhB;AACAH,EAAAA,MAAM,CAACQ,KAAK,KAAKC,SAAX,4CAAyDN,IAAzD,EAAN;AACA,SAAOK,KAAP;AACD;AAED,OAAO,SAASE,MAAT,CAAgBR,EAAhB,EAAoBM,KAApB,EAA2B;AAChCA,EAAAA,KAAK,GAAGH,MAAM,CAACG,KAAD,CAAd;;AACA,OAAK,MAAMG,GAAX,IAAkBT,EAAlB,EAAsB;AACpB,QAAIA,EAAE,CAACS,GAAD,CAAF,KAAYH,KAAhB,EAAuB;AACrB,0BAAaG,GAAb;AACD;AACF;;AACD,SAAOC,MAAM,CAACJ,KAAD,CAAb;AACD;AAED,OAAO,SAASK,UAAT,CAAoBX,EAApB,EAAwBM,KAAxB,EAA+B;AACpCR,EAAAA,MAAM,CAACQ,KAAK,KAAKC,SAAX,EAAsB,eAAtB,CAAN;AACAD,EAAAA,KAAK,GAAGH,MAAM,CAACG,KAAD,CAAd;;AACA,OAAK,MAAMG,GAAX,IAAkBT,EAAlB,EAAsB;AACpB,QAAIA,EAAE,CAACS,GAAD,CAAF,KAAYH,KAAhB,EAAuB;AACrB,0BAAaG,GAAb;AACD;AACF;;AACD,SAAOC,MAAM,CAACJ,KAAD,CAAb;AACD","sourcesContent":["import {assert} from '@luma.gl/api';\n\n// Resolve a WebGL enumeration name (returns itself if already a number)\nexport function getKeyValue(gl, name) {\n // If not a string, return (assume number)\n if (typeof name !== 'string') {\n return name;\n }\n\n // If string converts to number, return number\n const number = Number(name);\n if (!isNaN(number)) {\n return number;\n }\n\n // Look up string, after removing any 'GL.' or 'gl.' prefix\n name = name.replace(/^.*\\./, '');\n const value = gl[name];\n assert(value !== undefined, `Accessing undefined constant GL.${name}`);\n return value;\n}\n\nexport function getKey(gl, value) {\n value = Number(value);\n for (const key in gl) {\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n\nexport function getKeyType(gl, value) {\n assert(value !== undefined, 'undefined key');\n value = Number(value);\n for (const key in gl) {\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n"],"file":"constants-to-keys.js"}
@@ -1,5 +1,5 @@
1
+ import { assert } from '@luma.gl/api';
1
2
  import GL from '@luma.gl/constants';
2
- import { assert } from '../utils';
3
3
  export function glFormatToComponents(format) {
4
4
  switch (format) {
5
5
  case GL.ALPHA:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/webgl-utils/format-utils.ts"],"names":["GL","assert","glFormatToComponents","format","ALPHA","R32F","RED","RG32F","RG","RGB","RGB32F","RGBA","RGBA32F","glTypeToBytes","type","UNSIGNED_BYTE","UNSIGNED_SHORT_5_6_5","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","FLOAT"],"mappings":"AAAA,OAAOA,EAAP,MAAe,oBAAf;AACA,SAAQC,MAAR,QAAqB,UAArB;AAGA,OAAO,SAASC,oBAAT,CAA8BC,MAA9B,EAAsC;AAC3C,UAAQA,MAAR;AACE,SAAKH,EAAE,CAACI,KAAR;AACA,SAAKJ,EAAE,CAACK,IAAR;AACA,SAAKL,EAAE,CAACM,GAAR;AACE,aAAO,CAAP;;AACF,SAAKN,EAAE,CAACO,KAAR;AACA,SAAKP,EAAE,CAACQ,EAAR;AACE,aAAO,CAAP;;AACF,SAAKR,EAAE,CAACS,GAAR;AACA,SAAKT,EAAE,CAACU,MAAR;AACE,aAAO,CAAP;;AACF,SAAKV,EAAE,CAACW,IAAR;AACA,SAAKX,EAAE,CAACY,OAAR;AACE,aAAO,CAAP;;AAEF;AACEX,MAAAA,MAAM,CAAC,KAAD,CAAN;AACA,aAAO,CAAP;AAjBJ;AAmBD;AAGD,OAAO,SAASY,aAAT,CAAuBC,IAAvB,EAA6B;AAClC,UAAQA,IAAR;AACE,SAAKd,EAAE,CAACe,aAAR;AACE,aAAO,CAAP;;AACF,SAAKf,EAAE,CAACgB,oBAAR;AACA,SAAKhB,EAAE,CAACiB,sBAAR;AACA,SAAKjB,EAAE,CAACkB,sBAAR;AACE,aAAO,CAAP;;AACF,SAAKlB,EAAE,CAACmB,KAAR;AACE,aAAO,CAAP;;AAEF;AACElB,MAAAA,MAAM,CAAC,KAAD,CAAN;AACA,aAAO,CAAP;AAZJ;AAcD","sourcesContent":["import GL from '@luma.gl/constants';\nimport {assert} from '../utils';\n\n// Returns number of components in a specific readPixels WebGL format\nexport function glFormatToComponents(format) {\n switch (format) {\n case GL.ALPHA:\n case GL.R32F:\n case GL.RED:\n return 1;\n case GL.RG32F:\n case GL.RG:\n return 2;\n case GL.RGB:\n case GL.RGB32F:\n return 3;\n case GL.RGBA:\n case GL.RGBA32F:\n return 4;\n // TODO: Add support for additional WebGL2 formats\n default:\n assert(false);\n return 0;\n }\n}\n\n// Return byte count for given readPixels WebGL type\nexport function glTypeToBytes(type) {\n switch (type) {\n case GL.UNSIGNED_BYTE:\n return 1;\n case GL.UNSIGNED_SHORT_5_6_5:\n case GL.UNSIGNED_SHORT_4_4_4_4:\n case GL.UNSIGNED_SHORT_5_5_5_1:\n return 2;\n case GL.FLOAT:\n return 4;\n // TODO: Add support for additional WebGL2 types\n default:\n assert(false);\n return 0;\n }\n}\n"],"file":"format-utils.js"}
1
+ {"version":3,"sources":["../../../src/webgl-utils/format-utils.ts"],"names":["assert","GL","glFormatToComponents","format","ALPHA","R32F","RED","RG32F","RG","RGB","RGB32F","RGBA","RGBA32F","glTypeToBytes","type","UNSIGNED_BYTE","UNSIGNED_SHORT_5_6_5","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","FLOAT"],"mappings":"AAAA,SAAQA,MAAR,QAAqB,cAArB;AACA,OAAOC,EAAP,MAAe,oBAAf;AAGA,OAAO,SAASC,oBAAT,CAA8BC,MAA9B,EAAsC;AAC3C,UAAQA,MAAR;AACE,SAAKF,EAAE,CAACG,KAAR;AACA,SAAKH,EAAE,CAACI,IAAR;AACA,SAAKJ,EAAE,CAACK,GAAR;AACE,aAAO,CAAP;;AACF,SAAKL,EAAE,CAACM,KAAR;AACA,SAAKN,EAAE,CAACO,EAAR;AACE,aAAO,CAAP;;AACF,SAAKP,EAAE,CAACQ,GAAR;AACA,SAAKR,EAAE,CAACS,MAAR;AACE,aAAO,CAAP;;AACF,SAAKT,EAAE,CAACU,IAAR;AACA,SAAKV,EAAE,CAACW,OAAR;AACE,aAAO,CAAP;;AAEF;AACEZ,MAAAA,MAAM,CAAC,KAAD,CAAN;AACA,aAAO,CAAP;AAjBJ;AAmBD;AAGD,OAAO,SAASa,aAAT,CAAuBC,IAAvB,EAA6B;AAClC,UAAQA,IAAR;AACE,SAAKb,EAAE,CAACc,aAAR;AACE,aAAO,CAAP;;AACF,SAAKd,EAAE,CAACe,oBAAR;AACA,SAAKf,EAAE,CAACgB,sBAAR;AACA,SAAKhB,EAAE,CAACiB,sBAAR;AACE,aAAO,CAAP;;AACF,SAAKjB,EAAE,CAACkB,KAAR;AACE,aAAO,CAAP;;AAEF;AACEnB,MAAAA,MAAM,CAAC,KAAD,CAAN;AACA,aAAO,CAAP;AAZJ;AAcD","sourcesContent":["import {assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\n\n// Returns number of components in a specific readPixels WebGL format\nexport function glFormatToComponents(format) {\n switch (format) {\n case GL.ALPHA:\n case GL.R32F:\n case GL.RED:\n return 1;\n case GL.RG32F:\n case GL.RG:\n return 2;\n case GL.RGB:\n case GL.RGB32F:\n return 3;\n case GL.RGBA:\n case GL.RGBA32F:\n return 4;\n // TODO: Add support for additional WebGL2 formats\n default:\n assert(false);\n return 0;\n }\n}\n\n// Return byte count for given readPixels WebGL type\nexport function glTypeToBytes(type) {\n switch (type) {\n case GL.UNSIGNED_BYTE:\n return 1;\n case GL.UNSIGNED_SHORT_5_6_5:\n case GL.UNSIGNED_SHORT_4_4_4_4:\n case GL.UNSIGNED_SHORT_5_5_5_1:\n return 2;\n case GL.FLOAT:\n return 4;\n // TODO: Add support for additional WebGL2 types\n default:\n assert(false);\n return 0;\n }\n}\n"],"file":"format-utils.js"}
@@ -1,9 +1,9 @@
1
+ import { assert } from '@luma.gl/api';
2
+ import GL from '@luma.gl/constants';
1
3
  import Texture2D from '../classes/texture-2d';
2
4
  import TextureCube from '../classes/texture-cube';
3
5
  import Texture3D from '../classes/texture-3d';
4
6
  import Framebuffer from '../classes/framebuffer';
5
- import GL from '@luma.gl/constants';
6
- import { assert } from '../utils';
7
7
  export function cloneTextureFrom(refTexture, overrides) {
8
8
  assert(refTexture instanceof Texture2D || refTexture instanceof TextureCube || refTexture instanceof Texture3D);
9
9
  const TextureType = refTexture.constructor;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/webgl-utils/texture-utils.js"],"names":["Texture2D","TextureCube","Texture3D","Framebuffer","GL","assert","cloneTextureFrom","refTexture","overrides","TextureType","constructor","gl","width","height","format","type","dataFormat","border","mipmaps","textureOptions","Object","assign","toFramebuffer","texture","opts","id","framebuffer","attachments","COLOR_ATTACHMENT0"],"mappings":"AACA,OAAOA,SAAP,MAAsB,uBAAtB;AACA,OAAOC,WAAP,MAAwB,yBAAxB;AACA,OAAOC,SAAP,MAAsB,uBAAtB;AACA,OAAOC,WAAP,MAAwB,wBAAxB;AACA,OAAOC,EAAP,MAAe,oBAAf;AACA,SAAQC,MAAR,QAAqB,UAArB;AAIA,OAAO,SAASC,gBAAT,CAA0BC,UAA1B,EAAsCC,SAAtC,EAAiD;AACtDH,EAAAA,MAAM,CACJE,UAAU,YAAYP,SAAtB,IACEO,UAAU,YAAYN,WADxB,IAEEM,UAAU,YAAYL,SAHpB,CAAN;AAMA,QAAMO,WAAW,GAAGF,UAAU,CAACG,WAA/B;AAEA,QAAM;AAACC,IAAAA,EAAD;AAAKC,IAAAA,KAAL;AAAYC,IAAAA,MAAZ;AAAoBC,IAAAA,MAApB;AAA4BC,IAAAA,IAA5B;AAAkCC,IAAAA,UAAlC;AAA8CC,IAAAA,MAA9C;AAAsDC,IAAAA;AAAtD,MAAiEX,UAAvE;AAEA,QAAMY,cAAc,GAAGC,MAAM,CAACC,MAAP,CACrB;AACET,IAAAA,KADF;AAEEC,IAAAA,MAFF;AAGEC,IAAAA,MAHF;AAIEC,IAAAA,IAJF;AAKEC,IAAAA,UALF;AAMEC,IAAAA,MANF;AAOEC,IAAAA;AAPF,GADqB,EAUrBV,SAVqB,CAAvB;AAeA,SAAO,IAAIC,WAAJ,CAAgBE,EAAhB,EAAoBQ,cAApB,CAAP;AACD;AAKD,OAAO,SAASG,aAAT,CAAuBC,OAAvB,EAAgCC,IAAhC,EAAsC;AAC3C,QAAM;AAACb,IAAAA,EAAD;AAAKC,IAAAA,KAAL;AAAYC,IAAAA,MAAZ;AAAoBY,IAAAA;AAApB,MAA0BF,OAAhC;AACA,QAAMG,WAAW,GAAG,IAAIvB,WAAJ,CAClBQ,EADkB,EAElBS,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBG,IAAlB,EAAwB;AACtBC,IAAAA,EAAE,4BAAqBA,EAArB,CADoB;AAEtBb,IAAAA,KAFsB;AAGtBC,IAAAA,MAHsB;AAItBc,IAAAA,WAAW,EAAE;AACX,OAACvB,EAAE,CAACwB,iBAAJ,GAAwBL;AADb;AAJS,GAAxB,CAFkB,CAApB;AAWA,SAAOG,WAAP;AACD","sourcesContent":["// TODO: Two subdirectories must not depend on each other (classes vs utils)!\nimport Texture2D from '../classes/texture-2d';\nimport TextureCube from '../classes/texture-cube';\nimport Texture3D from '../classes/texture-3d';\nimport Framebuffer from '../classes/framebuffer';\nimport GL from '@luma.gl/constants';\nimport {assert} from '../utils';\n\n// Clone a new texture object from a reference texture object.\n/** @type {import('./texture-utils').cloneTextureFrom} */\nexport function cloneTextureFrom(refTexture, overrides) {\n assert(\n refTexture instanceof Texture2D ||\n refTexture instanceof TextureCube ||\n refTexture instanceof Texture3D\n );\n\n const TextureType = refTexture.constructor;\n\n const {gl, width, height, format, type, dataFormat, border, mipmaps} = refTexture;\n\n const textureOptions = Object.assign(\n {\n width,\n height,\n format,\n type,\n dataFormat,\n border,\n mipmaps\n },\n overrides\n );\n\n // TODO: move this to `Texture` class as instance method and use this.constructor\n // @ts-expect-error\n return new TextureType(gl, textureOptions);\n}\n\n// Wraps a given texture into a framebuffer object, that can be further used\n// to read data from the texture object.\n/** @type {import('./texture-utils').toFramebuffer} */\nexport function toFramebuffer(texture, opts) {\n const {gl, width, height, id} = texture;\n const framebuffer = new Framebuffer(\n gl,\n Object.assign({}, opts, {\n id: `framebuffer-for-${id}`,\n width,\n height,\n attachments: {\n [GL.COLOR_ATTACHMENT0]: texture\n }\n })\n );\n return framebuffer;\n}\n"],"file":"texture-utils.js"}
1
+ {"version":3,"sources":["../../../src/webgl-utils/texture-utils.ts"],"names":["assert","GL","Texture2D","TextureCube","Texture3D","Framebuffer","cloneTextureFrom","refTexture","overrides","TextureType","constructor","gl","width","height","format","type","dataFormat","border","mipmaps","textureOptions","Object","assign","toFramebuffer","texture","opts","id","framebuffer","attachments","COLOR_ATTACHMENT0"],"mappings":"AACA,SAAQA,MAAR,QAAqB,cAArB;AACA,OAAOC,EAAP,MAAe,oBAAf;AAEA,OAAOC,SAAP,MAAsB,uBAAtB;AACA,OAAOC,WAAP,MAAwB,yBAAxB;AACA,OAAOC,SAAP,MAAsB,uBAAtB;AACA,OAAOC,WAAP,MAA4C,wBAA5C;AAKA,OAAO,SAASC,gBAAT,CAAiDC,UAAjD,EAAgEC,SAAhE,EAAoF;AACzFR,EAAAA,MAAM,CACJO,UAAU,YAAYL,SAAtB,IACEK,UAAU,YAAYJ,WADxB,IAEEI,UAAU,YAAYH,SAHpB,CAAN;AAMA,QAAMK,WAAW,GAAGF,UAAU,CAACG,WAA/B;AAEA,QAAM;AAACC,IAAAA,EAAD;AAAKC,IAAAA,KAAL;AAAYC,IAAAA,MAAZ;AAAoBC,IAAAA,MAApB;AAA4BC,IAAAA,IAA5B;AAAkCC,IAAAA,UAAlC;AAA8CC,IAAAA,MAA9C;AAAsDC,IAAAA;AAAtD,MAAiEX,UAAvE;AAEA,QAAMY,cAAc,GAAGC,MAAM,CAACC,MAAP,CACrB;AACET,IAAAA,KADF;AAEEC,IAAAA,MAFF;AAGEC,IAAAA,MAHF;AAIEC,IAAAA,IAJF;AAKEC,IAAAA,UALF;AAMEC,IAAAA,MANF;AAOEC,IAAAA;AAPF,GADqB,EAUrBV,SAVqB,CAAvB;AAeA,SAAO,IAAIC,WAAJ,CAAgBE,EAAhB,EAAoBQ,cAApB,CAAP;AACD;AAMD,OAAO,SAASG,aAAT,CAAuBC,OAAvB,EAAyCC,IAAzC,EAA+E;AACpF,QAAM;AAACb,IAAAA,EAAD;AAAKC,IAAAA,KAAL;AAAYC,IAAAA,MAAZ;AAAoBY,IAAAA;AAApB,MAA0BF,OAAhC;AACA,QAAMG,WAAW,GAAG,IAAIrB,WAAJ,CAClBM,EADkB,EAElBS,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBG,IAAlB,EAAwB;AACtBC,IAAAA,EAAE,4BAAqBA,EAArB,CADoB;AAEtBb,IAAAA,KAFsB;AAGtBC,IAAAA,MAHsB;AAItBc,IAAAA,WAAW,EAAE;AACX,OAAC1B,EAAE,CAAC2B,iBAAJ,GAAwBL;AADb;AAJS,GAAxB,CAFkB,CAApB;AAWA,SAAOG,WAAP;AACD","sourcesContent":["// TODO: Two subdirectories must not depend on each other (classes vs utils)!\nimport {assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport Texture from '../classes/texture';\nimport Texture2D from '../classes/texture-2d';\nimport TextureCube from '../classes/texture-cube';\nimport Texture3D from '../classes/texture-3d';\nimport Framebuffer, {FramebufferProps} from '../classes/framebuffer';\n\ntype TextureType = Texture2D | TextureCube | Texture3D;\n\n/** Clone a new texture object from a reference texture object. */\nexport function cloneTextureFrom<T extends TextureType>(refTexture: T, overrides?: any): T {\n assert(\n refTexture instanceof Texture2D ||\n refTexture instanceof TextureCube ||\n refTexture instanceof Texture3D\n );\n\n const TextureType = refTexture.constructor;\n\n const {gl, width, height, format, type, dataFormat, border, mipmaps} = refTexture;\n\n const textureOptions = Object.assign(\n {\n width,\n height,\n format,\n type,\n dataFormat,\n border,\n mipmaps\n },\n overrides\n );\n\n // TODO: move this to `Texture` class as instance method and use this.constructor\n // @ts-expect-error\n return new TextureType(gl, textureOptions);\n}\n\n/**\n * Wraps a given texture into a framebuffer object, that can be further used\n * to read data from the texture object.\n */ \nexport function toFramebuffer(texture: Texture, opts?: FramebufferProps): Framebuffer {\n const {gl, width, height, id} = texture;\n const framebuffer = new Framebuffer(\n gl,\n Object.assign({}, opts, {\n id: `framebuffer-for-${id}`,\n width,\n height,\n attachments: {\n [GL.COLOR_ATTACHMENT0]: texture\n }\n })\n );\n return framebuffer;\n}\n"],"file":"texture-utils.js"}
@@ -32,9 +32,11 @@ export function getGLTypeFromTypedArray(arrayOrType) {
32
32
  throw new Error(ERR_TYPE_DEDUCTION);
33
33
  }
34
34
  }
35
- export function getTypedArrayFromGLType(glType, {
36
- clamped = true
37
- } = {}) {
35
+ export function getTypedArrayFromGLType(glType, options) {
36
+ const {
37
+ clamped = true
38
+ } = options || {};
39
+
38
40
  switch (glType) {
39
41
  case GL.FLOAT:
40
42
  return Float32Array;
@@ -64,29 +66,31 @@ export function getTypedArrayFromGLType(glType, {
64
66
  throw new Error('Failed to deduce typed array type from GL constant');
65
67
  }
66
68
  }
67
- export function flipRows({
68
- data,
69
- width,
70
- height,
71
- bytesPerPixel = 4,
72
- temp
73
- }) {
69
+ export function flipRows(options) {
70
+ const {
71
+ data,
72
+ width,
73
+ height,
74
+ bytesPerPixel = 4,
75
+ temp
76
+ } = options;
74
77
  const bytesPerRow = width * bytesPerPixel;
75
- temp = temp || new Uint8Array(bytesPerRow);
78
+ const tempBuffer = temp || new Uint8Array(bytesPerRow);
76
79
 
77
80
  for (let y = 0; y < height / 2; ++y) {
78
81
  const topOffset = y * bytesPerRow;
79
82
  const bottomOffset = (height - y - 1) * bytesPerRow;
80
- temp.set(data.subarray(topOffset, topOffset + bytesPerRow));
83
+ tempBuffer.set(data.subarray(topOffset, topOffset + bytesPerRow));
81
84
  data.copyWithin(topOffset, bottomOffset, bottomOffset + bytesPerRow);
82
- data.set(temp, bottomOffset);
85
+ data.set(tempBuffer, bottomOffset);
83
86
  }
84
87
  }
85
- export function scalePixels({
86
- data,
87
- width,
88
- height
89
- }) {
88
+ export function scalePixels(options) {
89
+ const {
90
+ data,
91
+ width,
92
+ height
93
+ } = options;
90
94
  const newWidth = Math.round(width / 2);
91
95
  const newHeight = Math.round(height / 2);
92
96
  const newData = new Uint8Array(newWidth * newHeight * 4);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/webgl-utils/typed-array-utils.js"],"names":["GL","ERR_TYPE_DEDUCTION","getGLTypeFromTypedArray","arrayOrType","type","ArrayBuffer","isView","constructor","Float32Array","FLOAT","Uint16Array","UNSIGNED_SHORT","Uint32Array","UNSIGNED_INT","Uint8Array","UNSIGNED_BYTE","Uint8ClampedArray","Int8Array","BYTE","Int16Array","SHORT","Int32Array","INT","Error","getTypedArrayFromGLType","glType","clamped","UNSIGNED_SHORT_5_6_5","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","flipRows","data","width","height","bytesPerPixel","temp","bytesPerRow","y","topOffset","bottomOffset","set","subarray","copyWithin","scalePixels","newWidth","Math","round","newHeight","newData","x","c"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\n\nconst ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';\n\n// Converts TYPED ARRAYS to corresponding GL constant\n// Used to auto deduce gl parameter types\nexport function getGLTypeFromTypedArray(arrayOrType) {\n // If typed array, look up constructor\n const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;\n switch (type) {\n case Float32Array:\n return GL.FLOAT;\n case Uint16Array:\n return GL.UNSIGNED_SHORT;\n case Uint32Array:\n return GL.UNSIGNED_INT;\n case Uint8Array:\n return GL.UNSIGNED_BYTE;\n case Uint8ClampedArray:\n return GL.UNSIGNED_BYTE;\n case Int8Array:\n return GL.BYTE;\n case Int16Array:\n return GL.SHORT;\n case Int32Array:\n return GL.INT;\n default:\n throw new Error(ERR_TYPE_DEDUCTION);\n }\n}\n\n// Converts GL constant to corresponding TYPED ARRAY\n// Used to auto deduce gl parameter types\n\n/* eslint-disable complexity */\nexport function getTypedArrayFromGLType(glType, {clamped = true} = {}) {\n // Sorted in some order of likelihood to reduce amount of comparisons\n switch (glType) {\n case GL.FLOAT:\n return Float32Array;\n case GL.UNSIGNED_SHORT:\n case GL.UNSIGNED_SHORT_5_6_5:\n case GL.UNSIGNED_SHORT_4_4_4_4:\n case GL.UNSIGNED_SHORT_5_5_5_1:\n return Uint16Array;\n case GL.UNSIGNED_INT:\n return Uint32Array;\n case GL.UNSIGNED_BYTE:\n return clamped ? Uint8ClampedArray : Uint8Array;\n case GL.BYTE:\n return Int8Array;\n case GL.SHORT:\n return Int16Array;\n case GL.INT:\n return Int32Array;\n default:\n throw new Error('Failed to deduce typed array type from GL constant');\n }\n}\n/* eslint-enable complexity */\n\n// Flip rows (can be used on arrays returned from `Framebuffer.readPixels`)\n// https://stackoverflow.com/questions/41969562/\n// how-can-i-flip-the-result-of-webglrenderingcontext-readpixels\nexport function flipRows({data, width, height, bytesPerPixel = 4, temp}) {\n const bytesPerRow = width * bytesPerPixel;\n\n // make a temp buffer to hold one row\n temp = temp || new Uint8Array(bytesPerRow);\n for (let y = 0; y < height / 2; ++y) {\n const topOffset = y * bytesPerRow;\n const bottomOffset = (height - y - 1) * bytesPerRow;\n // make copy of a row on the top half\n temp.set(data.subarray(topOffset, topOffset + bytesPerRow));\n // copy a row from the bottom half to the top\n data.copyWithin(topOffset, bottomOffset, bottomOffset + bytesPerRow);\n // copy the copy of the top half row to the bottom half\n data.set(temp, bottomOffset);\n }\n}\n\nexport function scalePixels({data, width, height}) {\n const newWidth = Math.round(width / 2);\n const newHeight = Math.round(height / 2);\n const newData = new Uint8Array(newWidth * newHeight * 4);\n for (let y = 0; y < newHeight; y++) {\n for (let x = 0; x < newWidth; x++) {\n for (let c = 0; c < 4; c++) {\n newData[(y * newWidth + x) * 4 + c] = data[(y * 2 * width + x * 2) * 4 + c];\n }\n }\n }\n return {data: newData, width: newWidth, height: newHeight};\n}\n"],"file":"typed-array-utils.js"}
1
+ {"version":3,"sources":["../../../src/webgl-utils/typed-array-utils.ts"],"names":["GL","ERR_TYPE_DEDUCTION","getGLTypeFromTypedArray","arrayOrType","type","ArrayBuffer","isView","constructor","Float32Array","FLOAT","Uint16Array","UNSIGNED_SHORT","Uint32Array","UNSIGNED_INT","Uint8Array","UNSIGNED_BYTE","Uint8ClampedArray","Int8Array","BYTE","Int16Array","SHORT","Int32Array","INT","Error","getTypedArrayFromGLType","glType","options","clamped","UNSIGNED_SHORT_5_6_5","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","flipRows","data","width","height","bytesPerPixel","temp","bytesPerRow","tempBuffer","y","topOffset","bottomOffset","set","subarray","copyWithin","scalePixels","newWidth","Math","round","newHeight","newData","x","c"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\n\nconst ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';\n\ntype TypedArrayConstructor =\n | Float32ArrayConstructor\n | Uint16ArrayConstructor\n | Uint32ArrayConstructor\n | Uint8ArrayConstructor\n | Uint8ClampedArrayConstructor\n | Int8ArrayConstructor\n | Int16ArrayConstructor\n | Int32ArrayConstructor;\n\n/**\n * Converts TYPED ARRAYS to corresponding GL constant\n * Used to auto deduce gl parameter types\n * @param {*} arrayOrType\n * @returns\n */\nexport function getGLTypeFromTypedArray(arrayOrType) {\n // If typed array, look up constructor\n const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;\n switch (type) {\n case Float32Array:\n return GL.FLOAT;\n case Uint16Array:\n return GL.UNSIGNED_SHORT;\n case Uint32Array:\n return GL.UNSIGNED_INT;\n case Uint8Array:\n return GL.UNSIGNED_BYTE;\n case Uint8ClampedArray:\n return GL.UNSIGNED_BYTE;\n case Int8Array:\n return GL.BYTE;\n case Int16Array:\n return GL.SHORT;\n case Int32Array:\n return GL.INT;\n default:\n throw new Error(ERR_TYPE_DEDUCTION);\n }\n}\n\n/**\n * Converts GL constant to corresponding TYPED ARRAY\n * Used to auto deduce gl parameter types\n * @param {*} glType\n * @param {*} param1\n * @returns\n */\n// eslint-disable-next-line complexity\nexport function getTypedArrayFromGLType(\n glType: any,\n options?: {\n clamped?: boolean;\n }\n): TypedArrayConstructor {\n const {clamped = true} = options || {};\n // Sorted in some order of likelihood to reduce amount of comparisons\n switch (glType) {\n case GL.FLOAT:\n return Float32Array;\n case GL.UNSIGNED_SHORT:\n case GL.UNSIGNED_SHORT_5_6_5:\n case GL.UNSIGNED_SHORT_4_4_4_4:\n case GL.UNSIGNED_SHORT_5_5_5_1:\n return Uint16Array;\n case GL.UNSIGNED_INT:\n return Uint32Array;\n case GL.UNSIGNED_BYTE:\n return clamped ? Uint8ClampedArray : Uint8Array;\n case GL.BYTE:\n return Int8Array;\n case GL.SHORT:\n return Int16Array;\n case GL.INT:\n return Int32Array;\n default:\n throw new Error('Failed to deduce typed array type from GL constant');\n }\n}\n\n/**\n * Flip rows (can be used on arrays returned from `Framebuffer.readPixels`)\n * https: *stackoverflow.com/questions/41969562/\n * how-can-i-flip-the-result-of-webglrenderingcontext-readpixels\n * @param {*} param0\n */\n export function flipRows(options: {\n data: any;\n width: any;\n height: any;\n bytesPerPixel?: number;\n temp?: any;\n}): void {\n const {data, width, height, bytesPerPixel = 4, temp} = options;\n const bytesPerRow = width * bytesPerPixel;\n\n // make a temp buffer to hold one row\n const tempBuffer = temp || new Uint8Array(bytesPerRow);\n for (let y = 0; y < height / 2; ++y) {\n const topOffset = y * bytesPerRow;\n const bottomOffset = (height - y - 1) * bytesPerRow;\n // make copy of a row on the top half\n tempBuffer.set(data.subarray(topOffset, topOffset + bytesPerRow));\n // copy a row from the bottom half to the top\n data.copyWithin(topOffset, bottomOffset, bottomOffset + bytesPerRow);\n // copy the copy of the top half row to the bottom half\n data.set(tempBuffer, bottomOffset);\n }\n}\n\n\nexport function scalePixels(options: {\n data: any;\n width: any;\n height: any;\n}): {\n data: Uint8Array;\n width: number;\n height: number;\n} {\n const {data, width, height} = options;\n const newWidth = Math.round(width / 2);\n const newHeight = Math.round(height / 2);\n const newData = new Uint8Array(newWidth * newHeight * 4);\n for (let y = 0; y < newHeight; y++) {\n for (let x = 0; x < newWidth; x++) {\n for (let c = 0; c < 4; c++) {\n newData[(y * newWidth + x) * 4 + c] = data[(y * 2 * width + x * 2) * 4 + c];\n }\n }\n }\n return {data: newData, width: newWidth, height: newHeight};\n}\n"],"file":"typed-array-utils.js"}
@@ -0,0 +1,8 @@
1
+ import { ProgramBindings } from './program-bindings';
2
+ /**
3
+ * Extract metadata describing binding information for a program's shaders
4
+ * Note: `linkProgram()` needs to have been called
5
+ * (although linking does not need to have been successful).
6
+ */
7
+ export declare function getProgramBindings(gl: WebGL2RenderingContext, program: WebGLProgram): ProgramBindings;
8
+ //# sourceMappingURL=get-program-bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-program-bindings.d.ts","sourceRoot":"","sources":["../../src/helpers/get-program-bindings.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAwE,MAAM,oBAAoB,CAAA;AAIzH;;;;EAIE;AACF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,sBAAsB,EAAE,OAAO,EAAE,YAAY,GAAG,eAAe,CAWrG"}
@@ -0,0 +1,228 @@
1
+ import GL from '@luma.gl/constants';
2
+ import { isWebGL2 } from '../context/context/webgl-checks';
3
+ import Accessor from '../classes/accessor';
4
+ import { decomposeCompositeGLType } from '../webgl-utils/attribute-utils';
5
+ export function getProgramBindings(gl, program) {
6
+ const config = {
7
+ attributes: readAttributeBindings(gl, program),
8
+ uniforms: readUniformBindings(gl, program),
9
+ uniformBlocks: readUniformBlocks(gl, program),
10
+ varyings: readVaryings(gl, program)
11
+ };
12
+ Object.seal(config);
13
+ return config;
14
+ }
15
+
16
+ function readAttributeBindings(gl, program) {
17
+ const attributes = [];
18
+ const count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
19
+
20
+ for (let index = 0; index < count; index++) {
21
+ const {
22
+ name,
23
+ type: compositeType,
24
+ size
25
+ } = gl.getActiveAttrib(program, index);
26
+ const location = gl.getAttribLocation(program, name);
27
+
28
+ if (location >= 0) {
29
+ const {
30
+ type,
31
+ components
32
+ } = decomposeCompositeGLType(compositeType);
33
+ const accessor = {
34
+ type,
35
+ size: size * components
36
+ };
37
+ inferProperties(location, name, accessor);
38
+ const attributeInfo = {
39
+ location,
40
+ name,
41
+ accessor: new Accessor(accessor)
42
+ };
43
+ attributes.push(attributeInfo);
44
+ }
45
+ }
46
+
47
+ attributes.sort((a, b) => a.location - b.location);
48
+ return attributes;
49
+ }
50
+
51
+ function readVaryings(gl, program) {
52
+ if (!isWebGL2(gl)) {
53
+ return [];
54
+ }
55
+
56
+ const varyings = [];
57
+ const count = gl.getProgramParameter(program, gl.TRANSFORM_FEEDBACK_VARYINGS);
58
+
59
+ for (let location = 0; location < count; location++) {
60
+ const {
61
+ name,
62
+ type: compositeType,
63
+ size
64
+ } = gl.getTransformFeedbackVarying(program, location);
65
+ const {
66
+ type,
67
+ components
68
+ } = decomposeCompositeGLType(compositeType);
69
+ const accessor = new Accessor({
70
+ type,
71
+ size: size * components
72
+ });
73
+ const varying = {
74
+ location,
75
+ name,
76
+ accessor
77
+ };
78
+ varyings.push(varying);
79
+ }
80
+
81
+ varyings.sort((a, b) => a.location - b.location);
82
+ return varyings;
83
+ }
84
+
85
+ function readUniformBindings(gl, program) {
86
+ const uniforms = [];
87
+ const uniformCount = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);
88
+
89
+ for (let i = 0; i < uniformCount; i++) {
90
+ const {
91
+ name: rawName,
92
+ size,
93
+ type
94
+ } = gl.getActiveUniform(program, i);
95
+ const {
96
+ name,
97
+ isArray
98
+ } = parseUniformName(rawName);
99
+ let webglLocation = gl.getUniformLocation(program, name);
100
+ const uniformInfo = {
101
+ location: webglLocation,
102
+ name,
103
+ size,
104
+ type,
105
+ isArray
106
+ };
107
+ uniforms.push(uniformInfo);
108
+
109
+ if (uniformInfo.size > 1) {
110
+ for (let j = 0; j < uniformInfo.size; j++) {
111
+ const elementName = "".concat(name, "[").concat(j, "]");
112
+ webglLocation = gl.getUniformLocation(program, elementName);
113
+ const arrayElementUniformInfo = { ...uniformInfo,
114
+ name: elementName,
115
+ location: webglLocation
116
+ };
117
+ uniforms.push(arrayElementUniformInfo);
118
+ }
119
+ }
120
+ }
121
+
122
+ return uniforms;
123
+ }
124
+
125
+ function readUniformBlocks(gl, program) {
126
+ const getBlockParameter = (blockIndex, pname) => gl.getActiveUniformBlockParameter(program, blockIndex, pname);
127
+
128
+ const uniformBlocks = [];
129
+ const blockCount = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);
130
+
131
+ for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {
132
+ const blockInfo = {
133
+ name: gl.getActiveUniformBlockName(program, blockIndex),
134
+ location: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_BINDING),
135
+ byteLength: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE),
136
+ vertex: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),
137
+ fragment: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),
138
+ uniformCount: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS),
139
+ uniformIndices: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES),
140
+ uniforms: []
141
+ };
142
+
143
+ for (let uniformIndex = 0; uniformIndex < blockInfo.uniformCount; ++uniformIndex) {}
144
+
145
+ uniformBlocks.push(blockInfo);
146
+ }
147
+
148
+ uniformBlocks.sort((a, b) => a.location - b.location);
149
+ return uniformBlocks;
150
+ }
151
+
152
+ const SAMPLER_UNIFORMS_GL_TO_GPU = {
153
+ [GL.SAMPLER_2D]: ['2d', 'float'],
154
+ [GL.SAMPLER_CUBE]: ['cube', 'float'],
155
+ [GL.SAMPLER_3D]: ['3d', 'float'],
156
+ [GL.SAMPLER_2D_SHADOW]: ['3d', 'depth'],
157
+ [GL.SAMPLER_2D_ARRAY]: ['2d-array', 'float'],
158
+ [GL.SAMPLER_2D_ARRAY_SHADOW]: ['2d-array', 'depth'],
159
+ [GL.SAMPLER_CUBE_SHADOW]: ['cube', 'float'],
160
+ [GL.INT_SAMPLER_2D]: ['2d', 'sint'],
161
+ [GL.INT_SAMPLER_3D]: ['3d', 'sint'],
162
+ [GL.INT_SAMPLER_CUBE]: ['cube', 'sint'],
163
+ [GL.INT_SAMPLER_2D_ARRAY]: ['2d-array', 'sint'],
164
+ [GL.UNSIGNED_INT_SAMPLER_2D]: ['2d', 'sint'],
165
+ [GL.UNSIGNED_INT_SAMPLER_3D]: ['3d', 'sint'],
166
+ [GL.UNSIGNED_INT_SAMPLER_CUBE]: ['cube', 'sint'],
167
+ [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: ['2d-array', 'sint']
168
+ };
169
+
170
+ function generateWebGPUStyleBindings(config) {
171
+ const bindings = [];
172
+
173
+ for (const blockInfo of config.uniformBlocks) {
174
+ bindings.push({
175
+ binding: blockInfo.location,
176
+ visibility: (blockInfo.vertex ? 0x1 : 0) & (blockInfo.fragment ? 0x2 : 0),
177
+ buffer: {
178
+ type: 'uniform'
179
+ }
180
+ });
181
+ }
182
+
183
+ for (const uniformInfo of config.uniforms) {
184
+ let sampler = SAMPLER_UNIFORMS_GL_TO_GPU[uniformInfo.type];
185
+
186
+ if (sampler) {
187
+ const [viewDimension, sampleType] = sampler;
188
+ bindings.push({
189
+ binding: uniformInfo.location,
190
+ visibility: 0,
191
+ texture: {
192
+ viewDimension,
193
+ sampleType
194
+ }
195
+ });
196
+ }
197
+ }
198
+ }
199
+
200
+ function parseUniformName(name) {
201
+ if (name[name.length - 1] !== ']') {
202
+ return {
203
+ name,
204
+ length: 1,
205
+ isArray: false
206
+ };
207
+ }
208
+
209
+ const UNIFORM_NAME_REGEXP = /([^[]*)(\[[0-9]+\])?/;
210
+ const matches = name.match(UNIFORM_NAME_REGEXP);
211
+
212
+ if (!matches || matches.length < 2) {
213
+ throw new Error("Failed to parse GLSL uniform name ".concat(name));
214
+ }
215
+
216
+ return {
217
+ name: matches[1],
218
+ length: matches[2] || 1,
219
+ isArray: Boolean(matches[2])
220
+ };
221
+ }
222
+
223
+ function inferProperties(accessor, location, name) {
224
+ if (/instance/i.test(name)) {
225
+ accessor.divisor = 1;
226
+ }
227
+ }
228
+ //# sourceMappingURL=get-program-bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/helpers/get-program-bindings.ts"],"names":["GL","isWebGL2","Accessor","decomposeCompositeGLType","getProgramBindings","gl","program","config","attributes","readAttributeBindings","uniforms","readUniformBindings","uniformBlocks","readUniformBlocks","varyings","readVaryings","Object","seal","count","getProgramParameter","ACTIVE_ATTRIBUTES","index","name","type","compositeType","size","getActiveAttrib","location","getAttribLocation","components","accessor","inferProperties","attributeInfo","push","sort","a","b","TRANSFORM_FEEDBACK_VARYINGS","getTransformFeedbackVarying","varying","uniformCount","ACTIVE_UNIFORMS","i","rawName","getActiveUniform","isArray","parseUniformName","webglLocation","getUniformLocation","uniformInfo","j","elementName","arrayElementUniformInfo","getBlockParameter","blockIndex","pname","getActiveUniformBlockParameter","blockCount","ACTIVE_UNIFORM_BLOCKS","blockInfo","getActiveUniformBlockName","UNIFORM_BLOCK_BINDING","byteLength","UNIFORM_BLOCK_DATA_SIZE","vertex","UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER","fragment","UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER","UNIFORM_BLOCK_ACTIVE_UNIFORMS","uniformIndices","UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES","uniformIndex","SAMPLER_UNIFORMS_GL_TO_GPU","SAMPLER_2D","SAMPLER_CUBE","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","generateWebGPUStyleBindings","bindings","binding","visibility","buffer","sampler","viewDimension","sampleType","texture","length","UNIFORM_NAME_REGEXP","matches","match","Error","Boolean","test","divisor"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2} from '../context/context/webgl-checks';\nimport {ProgramBindings, AttributeBinding, UniformBinding, UniformBlockBinding, VaryingBinding} from './program-bindings'\nimport Accessor from '../classes/accessor';\nimport {decomposeCompositeGLType} from '../webgl-utils/attribute-utils';\n\n/**\n * Extract metadata describing binding information for a program's shaders\n * Note: `linkProgram()` needs to have been called\n * (although linking does not need to have been successful).\n*/\nexport function getProgramBindings(gl: WebGL2RenderingContext, program: WebGLProgram): ProgramBindings {\n const config: ProgramBindings = {\n attributes: readAttributeBindings(gl, program),\n uniforms: readUniformBindings(gl, program),\n uniformBlocks: readUniformBlocks(gl, program),\n varyings: readVaryings(gl, program)\n };\n\n Object.seal(config);\n return config;\n // generateWebGPUStyleBindings(bindings);\n}\n\n\n/**\n * Extract info about all transform feedback varyings\n *\n * linkProgram needs to have been called, although linking does not need to have been successful\n */\nfunction readAttributeBindings(gl: WebGL2RenderingContext, program: WebGLProgram): AttributeBinding[] {\n const attributes: AttributeBinding[] = [];\n\n const count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n\n for (let index = 0; index < count; index++) {\n const {name, type: compositeType, size} = gl.getActiveAttrib(program, index);\n const location = gl.getAttribLocation(program, name);\n // Add only user provided attributes, for built-in attributes like\n // `gl_InstanceID` locaiton will be < 0\n if (location >= 0) {\n const {type, components} = decomposeCompositeGLType(compositeType);\n const accessor = {type, size: size * components};\n inferProperties(location, name, accessor);\n \n const attributeInfo = {location, name, accessor: new Accessor(accessor)}; // Base values\n attributes.push(attributeInfo);\n }\n }\n\n attributes.sort((a, b) => a.location - b.location);\n return attributes;\n}\n\n/**\n * Extract info about all transform feedback varyings\n *\n * linkProgram needs to have been called, although linking does not need to have been successful\n */\nfunction readVaryings(gl: WebGL2RenderingContext, program: WebGLProgram): VaryingBinding[] {\n if (!isWebGL2(gl)) {\n return [];\n }\n\n const varyings = [];\n\n const count = gl.getProgramParameter(program, gl.TRANSFORM_FEEDBACK_VARYINGS);\n for (let location = 0; location < count; location++) {\n const {name, type: compositeType, size} = gl.getTransformFeedbackVarying(program, location);\n const {type, components} = decomposeCompositeGLType(compositeType);\n const accessor = new Accessor({type, size: size * components});\n const varying = {location, name, accessor}; // Base values\n varyings.push(varying);\n }\n\n varyings.sort((a, b) => a.location - b.location);\n return varyings;\n}\n\n/**\n * Extract info about all uniforms\n *\n * Query uniform locations and build name to setter map.\n */\nfunction readUniformBindings(gl: WebGL2RenderingContext, program: WebGLProgram): UniformBinding[] {\n const uniforms: UniformBinding[] = [];\n\n const uniformCount = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n for (let i = 0; i < uniformCount; i++) {\n const {name: rawName, size, type} = gl.getActiveUniform(program, i);\n const {name, isArray} = parseUniformName(rawName);\n let webglLocation = gl.getUniformLocation(program, name);\n const uniformInfo = {\n // WebGL locations are uniquely typed but just numbers\n location: webglLocation as number,\n name,\n size,\n type,\n isArray\n };\n uniforms.push(uniformInfo);\n\n // Array (e.g. matrix) uniforms can occupy several 4x4 byte banks\n if (uniformInfo.size > 1) {\n for (let j = 0; j < uniformInfo.size; j++) {\n const elementName = `${name}[${j}]`;\n\n webglLocation = gl.getUniformLocation(program, elementName);\n\n const arrayElementUniformInfo = {\n ...uniformInfo,\n name: elementName,\n location: webglLocation as number\n };\n\n uniforms.push(arrayElementUniformInfo);\n }\n }\n }\n return uniforms;\n}\n\n/**\n * Extract info about all \"active\" uniform blocks\n *\n * (\"Active\" just means that unused (aka inactive) blocks may have been\n * optimized away during linking)\n */\nfunction readUniformBlocks(gl: WebGL2RenderingContext, program: WebGLProgram): UniformBlockBinding[] {\n const getBlockParameter = (blockIndex, pname) => gl.getActiveUniformBlockParameter(program, blockIndex, pname);\n\n const uniformBlocks: UniformBlockBinding[] = [];\n\n const blockCount = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);\n for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {\n\n const blockInfo = {\n name: gl.getActiveUniformBlockName(program, blockIndex),\n location: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_BINDING),\n byteLength: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE),\n vertex: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),\n fragment: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),\n uniformCount: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS),\n uniformIndices: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES),\n uniforms: []\n }\n\n for (let uniformIndex = 0; uniformIndex < blockInfo.uniformCount; ++uniformIndex) {\n // TODO - Can we extract more?\n }\n\n uniformBlocks.push(blockInfo);\n }\n\n uniformBlocks.sort((a, b) => a.location - b.location);\n return uniformBlocks;\n}\n\nconst SAMPLER_UNIFORMS_GL_TO_GPU = {\n [GL.SAMPLER_2D]: ['2d', 'float'],\n [GL.SAMPLER_CUBE]: ['cube', 'float'],\n [GL.SAMPLER_3D]: ['3d', 'float'],\n [GL.SAMPLER_2D_SHADOW]: ['3d', 'depth'],\n [GL.SAMPLER_2D_ARRAY]: ['2d-array', 'float'],\n [GL.SAMPLER_2D_ARRAY_SHADOW]: ['2d-array', 'depth'],\n [GL.SAMPLER_CUBE_SHADOW]: ['cube', 'float'],\n [GL.INT_SAMPLER_2D]: ['2d', 'sint'],\n [GL.INT_SAMPLER_3D]: ['3d', 'sint'],\n [GL.INT_SAMPLER_CUBE]: ['cube', 'sint'],\n [GL.INT_SAMPLER_2D_ARRAY]: ['2d-array', 'sint'],\n [GL.UNSIGNED_INT_SAMPLER_2D]: ['2d', 'sint'],\n [GL.UNSIGNED_INT_SAMPLER_3D]: ['3d', 'sint'],\n [GL.UNSIGNED_INT_SAMPLER_CUBE]: ['cube', 'sint'],\n [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: ['2d-array', 'sint']\n};\n\n/**\n * Generate a list of \"WebGPU-style\" bindings for this program\n */\nfunction generateWebGPUStyleBindings(config: ProgramBindings) {\n const bindings: any = [];\n\n // Uniform blocks\n for (const blockInfo of config.uniformBlocks) {\n bindings.push({\n binding: blockInfo.location,\n visibility: (blockInfo.vertex ? 0x1 : 0) & (blockInfo.fragment ? 0x2 : 0),\n buffer: {\n type: 'uniform',\n // minBindingSize: blockInfo.size\n }\n })\n }\n\n // Sampler uniforms\n for (const uniformInfo of config.uniforms) {\n let sampler = SAMPLER_UNIFORMS_GL_TO_GPU[uniformInfo.type];\n if (sampler) {\n const [viewDimension, sampleType] = sampler;\n bindings.push({\n binding: uniformInfo.location,\n visibility: 0, // Not available in WebGL on individual uniforms?\n texture: {\n viewDimension,\n sampleType\n }\n });\n }\n }\n}\n\n// HELPERS\n\nfunction 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}\n\n// Extract additional attribute metadata from shader names (based on attribute naming conventions)\nfunction inferProperties(accessor, location, name) {\n if (/instance/i.test(name)) {\n // Any attribute containing the word \"instance\" will be assumed to be instanced\n accessor.divisor = 1;\n }\n}\n"],"file":"get-program-bindings.js"}
@@ -0,0 +1,41 @@
1
+ import { Accessor } from '../types/accessor';
2
+ /** Describes an attribute binding for a program */
3
+ export declare type AttributeBinding = {
4
+ location: number;
5
+ name: string;
6
+ accessor: Accessor;
7
+ };
8
+ /** Describes a varying binding for a program */
9
+ export declare type VaryingBinding = {
10
+ location: number;
11
+ name: string;
12
+ accessor: Accessor;
13
+ };
14
+ /** Describes a uniform block binding for a program */
15
+ export declare type UniformBlockBinding = {
16
+ location: number;
17
+ name: string;
18
+ byteLength: number;
19
+ vertex: boolean;
20
+ fragment: boolean;
21
+ uniformCount: number;
22
+ uniformIndices: number[];
23
+ };
24
+ /** Describes a uniform (sampler etc) binding for a program */
25
+ export declare type UniformBinding = {
26
+ location: number;
27
+ name: string;
28
+ size: number;
29
+ type: number;
30
+ isArray: boolean;
31
+ };
32
+ /**
33
+ * Holds metadata describing attribute configurations for a program's shaders
34
+ */
35
+ export declare type ProgramBindings = {
36
+ readonly attributes: AttributeBinding[];
37
+ readonly varyings: VaryingBinding[];
38
+ readonly uniformBlocks: UniformBlockBinding[];
39
+ readonly uniforms: UniformBinding[];
40
+ };
41
+ //# sourceMappingURL=program-bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"program-bindings.d.ts","sourceRoot":"","sources":["../../src/helpers/program-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,mDAAmD;AACnD,oBAAY,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAA;AAED,gDAAgD;AAChD,oBAAY,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAA;AAED,sDAAsD;AACtD,oBAAY,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAA;AAED,8DAA8D;AAC9D,oBAAY,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB,CAAA;AAED;;GAEG;AACH,oBAAY,eAAe,GAAG;IAC5B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,mBAAmB,EAAE,CAAC;IAE9C,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;CACrC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=program-bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"program-bindings.js"}
package/dist/index.d.ts CHANGED
@@ -1,33 +1,54 @@
1
- export { lumaStats } from './init';
1
+ import './init';
2
+ export type { WebGLDeviceProps } from './adapter/webgl-device';
3
+ export { default as WebGLDevice, getWebGLDevice } from './adapter/webgl-device';
2
4
  export { requestAnimationFrame, cancelAnimationFrame } from './webgl-utils/request-animation-frame';
3
5
  export { cloneTextureFrom } from './webgl-utils/texture-utils';
4
6
  export { getKeyValue, getKey } from './webgl-utils/constants-to-keys';
5
- export { getContextInfo, getGLContextInfo, getContextLimits } from './features/limits';
6
- export { FEATURES } from './features/webgl-features-table';
7
- export { hasFeature, hasFeatures, getFeatures } from './features/features';
8
- export { default as canCompileGLGSExtension } from './features/check-glsl-extension';
9
7
  export { default as Accessor } from './classes/accessor';
8
+ export type { BufferProps } from '@luma.gl/api';
10
9
  export { default as Buffer } from './classes/webgl-buffer';
11
- export { default as Texture2D, Texture2DProps } from './classes/texture-2d';
12
- export { default as TextureCube, TextureCubeProps } from './classes/texture-cube';
13
- export { Shader, VertexShader, FragmentShader, ShaderProps } from './classes/webgl-shader';
14
- export { default as Program, ProgramProps } from './classes/program';
15
- export { default as Framebuffer, FramebufferProps } from './classes/framebuffer';
16
- export { default as Renderbuffer, RenderbufferProps } from './classes/renderbuffer';
10
+ export type { Texture2DProps } from './classes/texture-2d';
11
+ export { default as Texture2D } from './classes/texture-2d';
12
+ export type { TextureCubeProps } from './classes/texture-cube';
13
+ export { default as TextureCube } from './classes/texture-cube';
14
+ export type { ProgramProps } from './classes/program';
15
+ export { default as Program } from './classes/program';
16
+ export type { FramebufferProps } from './classes/framebuffer';
17
+ export { default as Framebuffer } from './classes/framebuffer';
18
+ export type { RenderbufferProps } from './classes/renderbuffer';
19
+ export { default as Renderbuffer } from './classes/renderbuffer';
20
+ export type { ShaderProps } from './classes/shader';
21
+ export { Shader, VertexShader, FragmentShader } from './classes/shader';
17
22
  export { clear, clearBuffer } from './classes/clear';
18
23
  export { readPixelsToArray, readPixelsToBuffer, copyToDataUrl, copyToImage, copyToTexture, blit } from './classes/copy-and-blit';
19
- export { default as Query, QueryProps } from './classes/query';
20
- export { default as Texture3D, Texture3DProps } from './classes/texture-3d';
21
- export { default as TransformFeedback, TransformFeedbackProps } from './classes/transform-feedback';
22
- export { default as VertexArrayObject, VertexArrayObjectProps } from './classes/vertex-array-object';
23
- export { default as VertexArray, VertexArrayProps } from './classes/vertex-array';
24
+ export type { QueryProps } from './classes/query';
25
+ export { default as Query } from './classes/query';
26
+ export type { Texture3DProps } from './classes/texture-3d';
27
+ export { default as Texture3D } from './classes/texture-3d';
28
+ export type { TransformFeedbackProps } from './classes/transform-feedback';
29
+ export { default as TransformFeedback } from './classes/transform-feedback';
30
+ export type { VertexArrayObjectProps } from './classes/vertex-array-object';
31
+ export { default as VertexArrayObject } from './classes/vertex-array-object';
32
+ export type { VertexArrayProps } from './classes/vertex-array';
33
+ export { default as VertexArray } from './classes/vertex-array';
24
34
  export { default as UniformBufferLayout } from './classes/uniform-buffer-layout';
25
- export { setPathPrefix, loadFile, loadImage } from './utils/load-file';
26
- export { log } from '@luma.gl/gltools';
27
- export { default as assert } from './utils/assert';
28
- export { uid, isObjectEmpty } from './utils/utils';
35
+ export { setDeviceParameters } from './adapter/converters/set-device-parameters';
36
+ export { isWebGL, isWebGL2, getWebGL2Context, assertWebGLContext, assertWebGL2Context } from './context/context/webgl-checks';
37
+ export { cssToDeviceRatio, cssToDevicePixels } from './context/context/device-pixels';
38
+ export type { GLParameters } from './context/parameters/webgl-parameters';
39
+ export { getParameters, setParameters, resetParameters } from './context/parameters/unified-parameter-api';
40
+ export { withParameters } from './context/state-tracker/with-parameters';
41
+ export { trackContextState, pushContextState, popContextState } from './context/state-tracker/track-context-state';
42
+ export { polyfillContext } from './context/polyfill/polyfill-context';
29
43
  export { parseUniformName, getUniformSetter } from './classes/uniforms';
30
44
  export { getDebugTableForUniforms } from './debug/debug-uniforms';
31
45
  export { getDebugTableForVertexArray } from './debug/debug-vertex-array';
32
46
  export { getDebugTableForProgramConfiguration } from './debug/debug-program-configuration';
47
+ export { getProgramBindings } from './helpers/get-program-bindings';
48
+ export { lumaStats } from './init';
49
+ export { log, assert, uid, isObjectEmpty } from '@luma.gl/api';
50
+ export { setPathPrefix, loadFile, loadImage } from '@luma.gl/api';
51
+ export type { GLContextOptions } from './_deprecated/context-api';
52
+ export { createGLContext, instrumentGLContext, resizeGLContext, hasFeature, hasFeatures, getFeatures, getContextInfo, getGLContextInfo, getContextLimits, getContextDebugInfo } from './_deprecated/context-api';
53
+ export { DEPRECATED_FEATURES as FEATURES } from './_deprecated/features';
33
54
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AAGjC,OAAO,EAAC,qBAAqB,EAAE,oBAAoB,EAAC,MAAM,uCAAuC,CAAC;AAGlG,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,WAAW,EAAE,MAAM,EAAC,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAC,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAC,QAAQ,EAAC,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAC,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAC,OAAO,IAAI,uBAAuB,EAAC,MAAM,iCAAiC,CAAC;AAGnF,OAAO,EAAC,OAAO,IAAI,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAIvD,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,OAAO,IAAI,SAAS,EAAE,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAC,OAAO,IAAI,WAAW,EAAE,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAEhF,OAAO,EAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAC,MAAM,wBAAwB,CAAC;AACzF,OAAO,EAAC,OAAO,IAAI,OAAO,EAAE,YAAY,EAAC,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAC,OAAO,IAAI,WAAW,EAAE,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAC,OAAO,IAAI,YAAY,EAAE,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAElF,OAAO,EAAC,KAAK,EAAE,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,aAAa,EACb,IAAI,EACL,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAC,OAAO,IAAI,KAAK,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAC,OAAO,IAAI,SAAS,EAAE,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AAClG,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,+BAA+B,CAAC;AACnG,OAAO,EAAC,OAAO,IAAI,WAAW,EAAE,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAC,OAAO,IAAI,mBAAmB,EAAC,MAAM,iCAAiC,CAAC;AAI/E,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAC,GAAG,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AAGjD,OAAO,EAAC,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAC,wBAAwB,EAAC,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAC,2BAA2B,EAAC,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAC,oCAAoC,EAAC,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}