@luma.gl/webgl 9.0.0-alpha.5 → 9.0.0-alpha.50

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 (531) hide show
  1. package/LICENSE +3 -1
  2. package/dist/adapter/converters/device-parameters.d.ts +23 -4
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/device-parameters.js +101 -73
  5. package/dist/adapter/converters/device-parameters.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts +6 -6
  7. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  8. package/dist/adapter/converters/sampler-parameters.js +74 -111
  9. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  10. package/dist/adapter/converters/shader-formats.d.ts +9 -0
  11. package/dist/adapter/converters/shader-formats.d.ts.map +1 -0
  12. package/dist/adapter/converters/shader-formats.js +52 -0
  13. package/dist/adapter/converters/shader-formats.js.map +1 -0
  14. package/dist/adapter/converters/texture-formats.d.ts +32 -44
  15. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  16. package/dist/adapter/converters/texture-formats.js +309 -346
  17. package/dist/adapter/converters/texture-formats.js.map +1 -1
  18. package/dist/adapter/converters/vertex-formats.d.ts +9 -3
  19. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  20. package/dist/adapter/converters/vertex-formats.js +53 -22
  21. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  22. package/dist/adapter/device-helpers/device-features.d.ts +1 -1
  23. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  24. package/dist/adapter/device-helpers/device-features.js +17 -23
  25. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  26. package/dist/adapter/device-helpers/device-limits.d.ts +3 -3
  27. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  28. package/dist/adapter/device-helpers/device-limits.js +54 -58
  29. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  30. package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
  31. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
  32. package/dist/adapter/device-helpers/get-device-info.js +31 -22
  33. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  34. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -1
  35. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  36. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  37. package/dist/adapter/helpers/decode-webgl-types.d.ts +26 -0
  38. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -0
  39. package/dist/adapter/helpers/decode-webgl-types.js +89 -0
  40. package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
  41. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  42. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  43. package/dist/adapter/helpers/get-shader-info.js +25 -0
  44. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  45. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -48
  46. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  47. package/dist/adapter/helpers/get-shader-layout.js +87 -143
  48. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  49. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  50. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  51. package/dist/adapter/helpers/parse-shader-compiler-log.js +16 -11
  52. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  53. package/dist/adapter/helpers/set-uniform.d.ts +3 -2
  54. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  55. package/dist/adapter/helpers/set-uniform.js +51 -82
  56. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  57. package/dist/adapter/helpers/webgl-topology-utils.d.ts +16 -0
  58. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
  59. package/dist/adapter/helpers/webgl-topology-utils.js +103 -0
  60. package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
  61. package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
  62. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  63. package/dist/adapter/objects/constants-to-keys.js +2 -29
  64. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  65. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  66. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  67. package/dist/adapter/objects/webgl-renderbuffer.js +36 -44
  68. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  69. package/dist/adapter/objects/webgl-resource.d.ts +6 -9
  70. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  71. package/dist/adapter/objects/webgl-resource.js +26 -83
  72. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  73. package/dist/adapter/resources/webgl-buffer.d.ts +19 -11
  74. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  75. package/dist/adapter/resources/webgl-buffer.js +60 -88
  76. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  77. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  78. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  79. package/dist/adapter/resources/webgl-command-buffer.js +175 -48
  80. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  81. package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
  82. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  83. package/dist/adapter/resources/webgl-command-encoder.js +10 -20
  84. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  85. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  86. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -24
  87. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  88. package/dist/adapter/resources/webgl-framebuffer.js +63 -173
  89. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  90. package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
  91. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  92. package/dist/adapter/resources/webgl-render-pass.js +99 -11
  93. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  94. package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -21
  95. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  96. package/dist/adapter/resources/webgl-render-pipeline.js +108 -270
  97. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  98. package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
  99. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  100. package/dist/adapter/resources/webgl-sampler.js +11 -21
  101. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  102. package/dist/adapter/resources/webgl-shader.d.ts +3 -4
  103. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  104. package/dist/adapter/resources/webgl-shader.js +21 -34
  105. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  106. package/dist/adapter/resources/webgl-texture.d.ts +62 -42
  107. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  108. package/dist/adapter/resources/webgl-texture.js +137 -256
  109. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  110. package/dist/adapter/resources/webgl-transform-feedback.d.ts +47 -0
  111. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -0
  112. package/dist/adapter/resources/webgl-transform-feedback.js +164 -0
  113. package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -0
  114. package/dist/adapter/resources/webgl-vertex-array.d.ts +67 -0
  115. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -0
  116. package/dist/adapter/resources/webgl-vertex-array.js +167 -0
  117. package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
  118. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  119. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  120. package/dist/adapter/webgl-canvas-context.js +10 -23
  121. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  122. package/dist/adapter/webgl-device.d.ts +76 -41
  123. package/dist/adapter/webgl-device.d.ts.map +1 -1
  124. package/dist/adapter/webgl-device.js +219 -129
  125. package/dist/adapter/webgl-device.js.map +1 -1
  126. package/dist/classic/accessor.d.ts +3 -3
  127. package/dist/classic/accessor.d.ts.map +1 -1
  128. package/dist/classic/accessor.js +26 -52
  129. package/dist/classic/accessor.js.map +1 -1
  130. package/dist/classic/clear.d.ts +22 -0
  131. package/dist/classic/clear.d.ts.map +1 -0
  132. package/dist/classic/clear.js +88 -0
  133. package/dist/classic/clear.js.map +1 -0
  134. package/dist/classic/copy-and-blit.d.ts +62 -0
  135. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  136. package/dist/classic/copy-and-blit.js +191 -0
  137. package/dist/classic/copy-and-blit.js.map +1 -0
  138. package/dist/classic/format-utils.d.ts +3 -0
  139. package/dist/classic/format-utils.d.ts.map +1 -0
  140. package/dist/classic/format-utils.js +37 -0
  141. package/dist/classic/format-utils.js.map +1 -0
  142. package/dist/classic/typed-array-utils.d.ts +17 -17
  143. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  144. package/dist/classic/typed-array-utils.js +18 -39
  145. package/dist/classic/typed-array-utils.js.map +1 -1
  146. package/dist/context/context/create-browser-context.d.ts +40 -0
  147. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  148. package/dist/context/context/create-browser-context.js +53 -0
  149. package/dist/context/context/create-browser-context.js.map +1 -0
  150. package/dist/context/context/create-headless-context.d.ts +9 -0
  151. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  152. package/dist/context/context/create-headless-context.js +42 -0
  153. package/dist/context/context/create-headless-context.js.map +1 -0
  154. package/dist/context/context/webgl-checks.d.ts.map +1 -1
  155. package/dist/context/context/webgl-checks.js +1 -4
  156. package/dist/context/context/webgl-checks.js.map +1 -1
  157. package/dist/context/debug/spector.d.ts +1 -2
  158. package/dist/context/debug/spector.d.ts.map +1 -1
  159. package/dist/context/debug/spector.js +8 -20
  160. package/dist/context/debug/spector.js.map +1 -1
  161. package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
  162. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  163. package/dist/context/debug/webgl-developer-tools.js +15 -39
  164. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  165. package/dist/context/parameters/unified-parameter-api.d.ts +9 -8
  166. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  167. package/dist/context/parameters/unified-parameter-api.js +9 -19
  168. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  169. package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
  170. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  171. package/dist/context/parameters/webgl-parameter-tables.js +267 -286
  172. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  173. package/dist/context/polyfill/context-data.d.ts +13 -0
  174. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  175. package/dist/context/polyfill/context-data.js +12 -0
  176. package/dist/context/polyfill/context-data.js.map +1 -0
  177. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  178. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  179. package/dist/context/polyfill/get-parameter-polyfill.js +37 -43
  180. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  181. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -1
  182. package/dist/context/polyfill/polyfill-context.js +22 -30
  183. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  184. package/dist/context/polyfill/polyfill-table.d.ts +8 -8
  185. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  186. package/dist/context/polyfill/polyfill-table.js +18 -41
  187. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  188. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  189. package/dist/context/polyfill/polyfill-vertex-array-object.js +17 -87
  190. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  191. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  192. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  193. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  194. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  195. package/dist/context/state-tracker/track-context-state.js +26 -62
  196. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  197. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  198. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  199. package/dist/context/state-tracker/with-parameters.js +8 -10
  200. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  201. package/dist/dist.dev.js +8555 -0
  202. package/dist/index.cjs +6602 -0
  203. package/dist/index.d.ts +26 -24
  204. package/dist/index.d.ts.map +1 -1
  205. package/dist/index.js +27 -26
  206. package/dist/index.js.map +1 -1
  207. package/dist/types.d.ts +3 -1
  208. package/dist/types.d.ts.map +1 -1
  209. package/dist/types.js.map +1 -1
  210. package/dist.min.js +49 -0
  211. package/package.json +21 -9
  212. package/src/adapter/converters/device-parameters.ts +144 -41
  213. package/src/adapter/converters/sampler-parameters.ts +103 -41
  214. package/src/adapter/converters/shader-formats.ts +44 -0
  215. package/src/adapter/converters/texture-formats.ts +268 -195
  216. package/src/adapter/converters/vertex-formats.ts +71 -10
  217. package/src/adapter/device-helpers/device-features.ts +14 -3
  218. package/src/adapter/device-helpers/device-limits.ts +5 -3
  219. package/src/adapter/device-helpers/get-device-info.ts +53 -18
  220. package/src/adapter/device-helpers/is-old-ie.ts +3 -0
  221. package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +39 -21
  222. package/src/adapter/helpers/get-shader-info.ts +41 -0
  223. package/src/adapter/helpers/get-shader-layout.ts +121 -146
  224. package/src/adapter/helpers/parse-shader-compiler-log.ts +24 -8
  225. package/src/adapter/helpers/set-uniform.ts +39 -35
  226. package/src/adapter/helpers/webgl-topology-utils.ts +103 -0
  227. package/src/adapter/objects/constants-to-keys.ts +6 -25
  228. package/src/adapter/objects/webgl-renderbuffer.ts +43 -37
  229. package/src/adapter/objects/webgl-resource.ts +16 -23
  230. package/src/adapter/resources/webgl-buffer.ts +67 -62
  231. package/src/adapter/resources/webgl-command-buffer.ts +327 -25
  232. package/src/adapter/resources/webgl-command-encoder.ts +20 -12
  233. package/src/adapter/resources/webgl-external-texture.ts +5 -2
  234. package/src/adapter/resources/webgl-framebuffer.ts +90 -134
  235. package/src/adapter/resources/webgl-render-pass.ts +166 -4
  236. package/src/adapter/resources/webgl-render-pipeline.ts +256 -192
  237. package/src/adapter/resources/webgl-sampler.ts +16 -10
  238. package/src/adapter/resources/webgl-shader.ts +14 -11
  239. package/src/adapter/resources/webgl-texture.ts +138 -99
  240. package/src/adapter/resources/webgl-transform-feedback.ts +202 -0
  241. package/src/adapter/resources/webgl-vertex-array.ts +283 -0
  242. package/src/adapter/webgl-canvas-context.ts +16 -14
  243. package/src/adapter/webgl-device.ts +328 -79
  244. package/src/classic/accessor.ts +8 -18
  245. package/src/classic/clear.ts +113 -0
  246. package/src/classic/copy-and-blit.ts +311 -0
  247. package/src/classic/format-utils.ts +46 -0
  248. package/src/classic/typed-array-utils.ts +21 -27
  249. package/src/context/context/create-browser-context.ts +140 -0
  250. package/src/context/context/create-headless-context.ts +51 -0
  251. package/src/context/context/webgl-checks.ts +3 -1
  252. package/src/context/debug/spector.ts +9 -6
  253. package/src/context/debug/webgl-developer-tools.ts +23 -15
  254. package/src/context/parameters/unified-parameter-api.ts +23 -14
  255. package/src/context/parameters/webgl-parameter-tables.ts +120 -98
  256. package/src/context/polyfill/context-data.ts +30 -0
  257. package/src/context/polyfill/get-parameter-polyfill.ts +11 -7
  258. package/src/context/polyfill/polyfill-context.ts +10 -9
  259. package/src/context/polyfill/polyfill-table.ts +21 -16
  260. package/src/context/polyfill/polyfill-vertex-array-object.ts +5 -0
  261. package/src/context/state-tracker/deep-array-equal.ts +2 -0
  262. package/src/context/state-tracker/track-context-state.ts +14 -11
  263. package/src/context/state-tracker/with-parameters.ts +13 -4
  264. package/src/index.ts +70 -35
  265. package/src/types.ts +5 -0
  266. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  267. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  268. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  269. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  270. package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
  271. package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
  272. package/dist/adapter/helpers/attribute-utils.js +0 -81
  273. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  274. package/dist/adapter/helpers/uniforms.d.ts +0 -26
  275. package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
  276. package/dist/adapter/helpers/uniforms.js +0 -99
  277. package/dist/adapter/helpers/uniforms.js.map +0 -1
  278. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
  279. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
  280. package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
  281. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  282. package/dist/bundle.d.ts +0 -2
  283. package/dist/bundle.d.ts.map +0 -1
  284. package/dist/bundle.js +0 -5
  285. package/dist/bundle.js.map +0 -1
  286. package/dist/classic/buffer.d.ts +0 -95
  287. package/dist/classic/buffer.d.ts.map +0 -1
  288. package/dist/classic/buffer.js +0 -384
  289. package/dist/classic/buffer.js.map +0 -1
  290. package/dist/context/context/context-state.d.ts +0 -18
  291. package/dist/context/context/context-state.d.ts.map +0 -1
  292. package/dist/context/context/context-state.js +0 -26
  293. package/dist/context/context/context-state.js.map +0 -1
  294. package/dist/context/context/create-context.d.ts +0 -41
  295. package/dist/context/context/create-context.d.ts.map +0 -1
  296. package/dist/context/context/create-context.js +0 -49
  297. package/dist/context/context/create-context.js.map +0 -1
  298. package/dist/context/context/device-pixels.d.ts +0 -25
  299. package/dist/context/context/device-pixels.d.ts.map +0 -1
  300. package/dist/context/context/device-pixels.js +0 -98
  301. package/dist/context/context/device-pixels.js.map +0 -1
  302. package/dist/es5/adapter/converters/device-parameters.js +0 -170
  303. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  304. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  305. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  306. package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
  307. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  308. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  309. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  310. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  311. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  312. package/dist/es5/adapter/device-helpers/device-features.js +0 -144
  313. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  314. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  315. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  316. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  317. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  318. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  319. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  320. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  321. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  322. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
  323. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  324. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  325. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  326. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  327. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  328. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  329. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  330. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  331. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  332. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  333. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  334. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  335. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  336. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  337. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  338. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  339. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  340. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  341. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  342. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  343. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  344. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  345. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  346. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
  347. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  348. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
  349. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  350. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
  351. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  352. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  353. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  354. package/dist/es5/adapter/resources/webgl-shader.js +0 -149
  355. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  356. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  357. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  358. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  359. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  360. package/dist/es5/adapter/webgl-device.js +0 -399
  361. package/dist/es5/adapter/webgl-device.js.map +0 -1
  362. package/dist/es5/bundle.js +0 -7
  363. package/dist/es5/bundle.js.map +0 -1
  364. package/dist/es5/classic/accessor.js +0 -181
  365. package/dist/es5/classic/accessor.js.map +0 -1
  366. package/dist/es5/classic/buffer.js +0 -470
  367. package/dist/es5/classic/buffer.js.map +0 -1
  368. package/dist/es5/classic/typed-array-utils.js +0 -126
  369. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  370. package/dist/es5/context/context/context-state.js +0 -31
  371. package/dist/es5/context/context/context-state.js.map +0 -1
  372. package/dist/es5/context/context/create-context.js +0 -69
  373. package/dist/es5/context/context/create-context.js.map +0 -1
  374. package/dist/es5/context/context/device-pixels.js +0 -115
  375. package/dist/es5/context/context/device-pixels.js.map +0 -1
  376. package/dist/es5/context/context/webgl-checks.js +0 -54
  377. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  378. package/dist/es5/context/debug/spector.js +0 -133
  379. package/dist/es5/context/debug/spector.js.map +0 -1
  380. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  381. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  382. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  383. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  384. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  385. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  386. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  387. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  388. package/dist/es5/context/polyfill/polyfill-context.js +0 -135
  389. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  390. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  391. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  392. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  393. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  394. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  395. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  396. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  397. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  398. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  399. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  400. package/dist/es5/index.js +0 -276
  401. package/dist/es5/index.js.map +0 -1
  402. package/dist/es5/init.js +0 -10
  403. package/dist/es5/init.js.map +0 -1
  404. package/dist/es5/types/webgl.js +0 -6
  405. package/dist/es5/types/webgl.js.map +0 -1
  406. package/dist/es5/types.js +0 -2
  407. package/dist/es5/types.js.map +0 -1
  408. package/dist/esm/adapter/converters/device-parameters.js +0 -155
  409. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  410. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  411. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  412. package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
  413. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  414. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  415. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  416. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  417. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  418. package/dist/esm/adapter/device-helpers/device-features.js +0 -102
  419. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  420. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  421. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  422. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  423. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  424. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  425. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  426. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  427. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  428. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
  429. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  430. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  431. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  432. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  433. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  434. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  435. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  436. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  437. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  438. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  439. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  440. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  441. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  442. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  443. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  444. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  445. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  446. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  447. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  448. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  449. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  450. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  451. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  452. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
  453. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  454. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
  455. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  456. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  457. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  458. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  459. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  460. package/dist/esm/adapter/resources/webgl-shader.js +0 -75
  461. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  462. package/dist/esm/adapter/resources/webgl-texture.js +0 -833
  463. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  464. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  465. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  466. package/dist/esm/adapter/webgl-device.js +0 -280
  467. package/dist/esm/adapter/webgl-device.js.map +0 -1
  468. package/dist/esm/bundle.js +0 -5
  469. package/dist/esm/bundle.js.map +0 -1
  470. package/dist/esm/classic/accessor.js +0 -144
  471. package/dist/esm/classic/accessor.js.map +0 -1
  472. package/dist/esm/classic/buffer.js +0 -384
  473. package/dist/esm/classic/buffer.js.map +0 -1
  474. package/dist/esm/classic/typed-array-utils.js +0 -112
  475. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  476. package/dist/esm/context/context/context-state.js +0 -26
  477. package/dist/esm/context/context/context-state.js.map +0 -1
  478. package/dist/esm/context/context/create-context.js +0 -49
  479. package/dist/esm/context/context/create-context.js.map +0 -1
  480. package/dist/esm/context/context/device-pixels.js +0 -98
  481. package/dist/esm/context/context/device-pixels.js.map +0 -1
  482. package/dist/esm/context/context/webgl-checks.js +0 -34
  483. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  484. package/dist/esm/context/debug/spector.js +0 -76
  485. package/dist/esm/context/debug/spector.js.map +0 -1
  486. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  487. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  488. package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
  489. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  490. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  491. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  492. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  493. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  494. package/dist/esm/context/polyfill/polyfill-context.js +0 -92
  495. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  496. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  497. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  498. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  499. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  500. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  501. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  502. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  503. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  504. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  505. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  506. package/dist/esm/index.js +0 -27
  507. package/dist/esm/index.js.map +0 -1
  508. package/dist/esm/init.js +0 -4
  509. package/dist/esm/init.js.map +0 -1
  510. package/dist/esm/types/webgl.js +0 -2
  511. package/dist/esm/types/webgl.js.map +0 -1
  512. package/dist/esm/types.js +0 -2
  513. package/dist/esm/types.js.map +0 -1
  514. package/dist/init.d.ts +0 -2
  515. package/dist/init.d.ts.map +0 -1
  516. package/dist/init.js +0 -4
  517. package/dist/init.js.map +0 -1
  518. package/dist/types/webgl.d.ts +0 -145
  519. package/dist/types/webgl.d.ts.map +0 -1
  520. package/dist/types/webgl.js +0 -2
  521. package/dist/types/webgl.js.map +0 -1
  522. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  523. package/src/adapter/helpers/attribute-utils.ts +0 -61
  524. package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
  525. package/src/bundle.ts +0 -4
  526. package/src/classic/buffer.ts +0 -474
  527. package/src/context/context/context-state.ts +0 -41
  528. package/src/context/context/create-context.ts +0 -110
  529. package/src/context/context/device-pixels.ts +0 -152
  530. package/src/init.ts +0 -4
  531. package/src/types/webgl.ts +0 -284
@@ -1,11 +1,9 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { assert, checkProps } from '@luma.gl/api';
3
- import GL from '@luma.gl/constants';
4
- import { getTypedArrayFromGLType } from './typed-array-utils';
1
+ import { assert, checkProps } from '@luma.gl/core';
2
+ import { getTypedArrayFromGLType } from "./typed-array-utils.js";
5
3
  const DEFAULT_ACCESSOR_VALUES = {
6
4
  offset: 0,
7
5
  stride: 0,
8
- type: GL.FLOAT,
6
+ type: 5126,
9
7
  size: 1,
10
8
  divisor: 0,
11
9
  normalized: false,
@@ -17,100 +15,80 @@ const PROP_CHECKS = {
17
15
  isInstanced: 'divisor'
18
16
  }
19
17
  };
20
- export default class Accessor {
18
+ export class Accessor {
21
19
  static getBytesPerElement(accessor) {
22
- const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);
20
+ const ArrayType = getTypedArrayFromGLType(accessor.type || 5126);
23
21
  return ArrayType.BYTES_PER_ELEMENT;
24
22
  }
25
-
26
23
  static getBytesPerVertex(accessor) {
27
24
  assert(accessor.size);
28
- const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);
25
+ const ArrayType = getTypedArrayFromGLType(accessor.type || 5126);
29
26
  return ArrayType.BYTES_PER_ELEMENT * accessor.size;
30
27
  }
31
-
32
- static resolve(...accessors) {
28
+ static resolve() {
29
+ for (var _len = arguments.length, accessors = new Array(_len), _key = 0; _key < _len; _key++) {
30
+ accessors[_key] = arguments[_key];
31
+ }
33
32
  return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]);
34
33
  }
35
-
36
- constructor(...accessors) {
37
- _defineProperty(this, "offset", void 0);
38
-
39
- _defineProperty(this, "stride", void 0);
40
-
41
- _defineProperty(this, "type", void 0);
42
-
43
- _defineProperty(this, "size", void 0);
44
-
45
- _defineProperty(this, "divisor", void 0);
46
-
47
- _defineProperty(this, "normalized", void 0);
48
-
49
- _defineProperty(this, "integer", void 0);
50
-
51
- _defineProperty(this, "buffer", void 0);
52
-
53
- _defineProperty(this, "index", void 0);
54
-
34
+ constructor() {
35
+ this.offset = void 0;
36
+ this.stride = void 0;
37
+ this.type = void 0;
38
+ this.size = void 0;
39
+ this.divisor = void 0;
40
+ this.normalized = void 0;
41
+ this.integer = void 0;
42
+ this.buffer = void 0;
43
+ this.index = void 0;
44
+ for (var _len2 = arguments.length, accessors = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
45
+ accessors[_key2] = arguments[_key2];
46
+ }
55
47
  accessors.forEach(accessor => this._assign(accessor));
56
48
  Object.freeze(this);
57
49
  }
58
-
59
50
  toString() {
60
51
  return JSON.stringify(this);
61
52
  }
62
-
63
53
  get BYTES_PER_ELEMENT() {
64
54
  return Accessor.getBytesPerElement(this);
65
55
  }
66
-
67
56
  get BYTES_PER_VERTEX() {
68
57
  return Accessor.getBytesPerVertex(this);
69
58
  }
70
-
71
- _assign(props = {}) {
59
+ _assign() {
60
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
72
61
  props = checkProps('Accessor', props, PROP_CHECKS);
73
-
74
62
  if (props.type !== undefined) {
75
63
  this.type = props.type;
76
-
77
- if (props.type === GL.INT || props.type === GL.UNSIGNED_INT) {
64
+ if (props.type === 5124 || props.type === 5125) {
78
65
  this.integer = true;
79
66
  }
80
67
  }
81
-
82
68
  if (props.size !== undefined) {
83
69
  this.size = props.size;
84
70
  }
85
-
86
71
  if (props.offset !== undefined) {
87
72
  this.offset = props.offset;
88
73
  }
89
-
90
74
  if (props.stride !== undefined) {
91
75
  this.stride = props.stride;
92
76
  }
93
-
94
77
  if (props.normalize !== undefined) {
95
78
  this.normalized = props.normalize;
96
79
  }
97
-
98
80
  if (props.normalized !== undefined) {
99
81
  this.normalized = props.normalized;
100
82
  }
101
-
102
83
  if (props.integer !== undefined) {
103
84
  this.integer = props.integer;
104
85
  }
105
-
106
86
  if (props.divisor !== undefined) {
107
87
  this.divisor = props.divisor;
108
88
  }
109
-
110
89
  if (props.buffer !== undefined) {
111
90
  this.buffer = props.buffer;
112
91
  }
113
-
114
92
  if (props.index !== undefined) {
115
93
  if (typeof props.index === 'boolean') {
116
94
  this.index = props.index ? 1 : 0;
@@ -118,15 +96,12 @@ export default class Accessor {
118
96
  this.index = props.index;
119
97
  }
120
98
  }
121
-
122
99
  if (props.instanced !== undefined) {
123
100
  this.divisor = props.instanced ? 1 : 0;
124
101
  }
125
-
126
102
  if (props.isInstanced !== undefined) {
127
103
  this.divisor = props.isInstanced ? 1 : 0;
128
104
  }
129
-
130
105
  if (this.offset === undefined) delete this.offset;
131
106
  if (this.stride === undefined) delete this.stride;
132
107
  if (this.type === undefined) delete this.type;
@@ -138,7 +113,6 @@ export default class Accessor {
138
113
  if (this.index === undefined) delete this.index;
139
114
  return this;
140
115
  }
141
-
142
116
  }
143
117
  export { DEFAULT_ACCESSOR_VALUES };
144
118
  //# sourceMappingURL=accessor.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/classic/accessor.ts"],"names":["assert","checkProps","GL","getTypedArrayFromGLType","DEFAULT_ACCESSOR_VALUES","offset","stride","type","FLOAT","size","divisor","normalized","integer","PROP_CHECKS","deprecatedProps","instanced","isInstanced","Accessor","getBytesPerElement","accessor","ArrayType","BYTES_PER_ELEMENT","getBytesPerVertex","resolve","accessors","constructor","forEach","_assign","Object","freeze","toString","JSON","stringify","BYTES_PER_VERTEX","props","undefined","INT","UNSIGNED_INT","normalize","buffer","index"],"mappings":"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","sourcesContent":["import {assert, checkProps, Buffer, AccessorObject} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {getTypedArrayFromGLType} from './typed-array-utils';\n\n// export interface AccessorObject {\n// offset?: number;\n// stride?: number;\n// type?: number;\n// size?: number;\n// divisor?: number;\n// normalized?: boolean;\n// integer?: boolean;\n\n// buffer?: Buffer;\n// index?: number;\n// }\n\nconst DEFAULT_ACCESSOR_VALUES = {\n offset: 0,\n stride: 0,\n type: GL.FLOAT,\n size: 1,\n divisor: 0,\n normalized: false,\n integer: false\n};\n\nconst PROP_CHECKS = {\n deprecatedProps: {\n instanced: 'divisor',\n isInstanced: 'divisor'\n }\n};\n\nexport default class Accessor implements AccessorObject {\n offset?: number;\n stride?: number;\n type?: number;\n size?: number;\n divisor?: number;\n normalized?: boolean;\n integer?: boolean;\n\n buffer?: Buffer;\n index?: number;\n\n static getBytesPerElement(accessor: Accessor | AccessorObject): number {\n // TODO: using `FLOAT` when type is not specified,\n // ensure this assumption is valid or force API to specify type.\n const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);\n return ArrayType.BYTES_PER_ELEMENT;\n }\n\n static getBytesPerVertex(accessor: AccessorObject): number {\n assert(accessor.size);\n // TODO: using `FLOAT` when type is not specified,\n // ensure this assumption is valid or force API to specify type.\n const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);\n return ArrayType.BYTES_PER_ELEMENT * accessor.size;\n }\n\n // Combines (merges) a list of accessors. On top of default values\n // Usually [programAccessor, bufferAccessor, appAccessor]\n // All props will be set in the returned object.\n // TODO check for conflicts between values in the supplied accessors\n static resolve(...accessors: AccessorObject[]): Accessor {\n return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]); // Default values\n }\n\n constructor(...accessors: AccessorObject[]) {\n accessors.forEach((accessor) => this._assign(accessor)); // Merge in sequence\n Object.freeze(this);\n }\n\n toString(): string {\n return JSON.stringify(this);\n }\n\n // ACCESSORS\n\n // TODO - remove>\n get BYTES_PER_ELEMENT(): number {\n return Accessor.getBytesPerElement(this);\n }\n\n get BYTES_PER_VERTEX(): number {\n return Accessor.getBytesPerVertex(this);\n }\n\n // PRIVATE\n\n // eslint-disable-next-line complexity, max-statements\n _assign(props: AccessorObject = {}): this {\n props = checkProps('Accessor', props, PROP_CHECKS);\n\n if (props.type !== undefined) {\n this.type = props.type;\n\n // Auto-deduce integer type?\n if (props.type === GL.INT || props.type === GL.UNSIGNED_INT) {\n this.integer = true;\n }\n }\n if (props.size !== undefined) {\n this.size = props.size;\n }\n if (props.offset !== undefined) {\n this.offset = props.offset;\n }\n if (props.stride !== undefined) {\n this.stride = props.stride;\n }\n // @ts-expect-error\n if (props.normalize !== undefined) {\n // @ts-expect-error\n this.normalized = props.normalize;\n }\n if (props.normalized !== undefined) {\n this.normalized = props.normalized;\n }\n if (props.integer !== undefined) {\n this.integer = props.integer;\n }\n\n // INSTANCE DIVISOR\n if (props.divisor !== undefined) {\n this.divisor = props.divisor;\n }\n\n // Buffer is optional\n if (props.buffer !== undefined) {\n this.buffer = props.buffer;\n }\n\n // The binding index (for binding e.g. Transform feedbacks and Uniform buffers)\n // TODO - should this be part of accessor?\n if (props.index !== undefined) {\n if (typeof props.index === 'boolean') {\n this.index = props.index ? 1 : 0;\n } else {\n this.index = props.index;\n }\n }\n\n // DEPRECATED\n // @ts-expect-error\n if (props.instanced !== undefined) {\n // @ts-expect-error\n this.divisor = props.instanced ? 1 : 0;\n }\n // @ts-expect-error\n if (props.isInstanced !== undefined) {\n // @ts-expect-error\n this.divisor = props.isInstanced ? 1 : 0;\n }\n\n if (this.offset === undefined) delete this.offset;\n if (this.stride === undefined) delete this.stride;\n if (this.type === undefined) delete this.type;\n if (this.size === undefined) delete this.size;\n if (this.divisor === undefined) delete this.divisor;\n if (this.normalized === undefined) delete this.normalized;\n if (this.integer === undefined) delete this.integer;\n \n if (this.buffer === undefined) delete this.buffer;\n if (this.index === undefined) delete this.index;\n \n return this;\n }\n}\n\n// TEST EXPORTS\nexport {DEFAULT_ACCESSOR_VALUES};\n"],"file":"accessor.js"}
1
+ {"version":3,"file":"accessor.js","names":["assert","checkProps","getTypedArrayFromGLType","DEFAULT_ACCESSOR_VALUES","offset","stride","type","size","divisor","normalized","integer","PROP_CHECKS","deprecatedProps","instanced","isInstanced","Accessor","getBytesPerElement","accessor","ArrayType","BYTES_PER_ELEMENT","getBytesPerVertex","resolve","_len","arguments","length","accessors","Array","_key","constructor","buffer","index","_len2","_key2","forEach","_assign","Object","freeze","toString","JSON","stringify","BYTES_PER_VERTEX","props","undefined","normalize"],"sources":["../../src/classic/accessor.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport {assert, checkProps, Buffer, AccessorObject} from '@luma.gl/core';\nimport {GL} from '@luma.gl/constants';\nimport {getTypedArrayFromGLType} from './typed-array-utils';\n\nconst DEFAULT_ACCESSOR_VALUES = {\n offset: 0,\n stride: 0,\n type: GL.FLOAT,\n size: 1,\n divisor: 0,\n normalized: false,\n integer: false\n};\n\nconst PROP_CHECKS = {\n deprecatedProps: {\n instanced: 'divisor',\n isInstanced: 'divisor'\n }\n};\n\nexport class Accessor implements AccessorObject {\n offset?: number;\n stride?: number;\n type?: number;\n size?: number;\n divisor?: number;\n normalized?: boolean;\n integer?: boolean;\n\n buffer?: Buffer;\n index?: number;\n\n static getBytesPerElement(accessor: Accessor | AccessorObject): number {\n // TODO: using `FLOAT` when type is not specified,\n // ensure this assumption is valid or force API to specify type.\n const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);\n return ArrayType.BYTES_PER_ELEMENT;\n }\n\n static getBytesPerVertex(accessor: AccessorObject): number {\n assert(accessor.size);\n // TODO: using `FLOAT` when type is not specified,\n // ensure this assumption is valid or force API to specify type.\n const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);\n return ArrayType.BYTES_PER_ELEMENT * accessor.size;\n }\n\n // Combines (merges) a list of accessors. On top of default values\n // Usually [programAccessor, bufferAccessor, appAccessor]\n // All props will be set in the returned object.\n // TODO check for conflicts between values in the supplied accessors\n static resolve(...accessors: AccessorObject[]): Accessor {\n return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]); // Default values\n }\n\n constructor(...accessors: AccessorObject[]) {\n accessors.forEach((accessor) => this._assign(accessor)); // Merge in sequence\n Object.freeze(this);\n }\n\n toString(): string {\n return JSON.stringify(this);\n }\n\n // ACCESSORS\n\n // TODO - remove>\n get BYTES_PER_ELEMENT(): number {\n return Accessor.getBytesPerElement(this);\n }\n\n get BYTES_PER_VERTEX(): number {\n return Accessor.getBytesPerVertex(this);\n }\n\n // PRIVATE\n\n // eslint-disable-next-line complexity, max-statements\n _assign(props: AccessorObject = {}): this {\n props = checkProps('Accessor', props, PROP_CHECKS);\n\n if (props.type !== undefined) {\n this.type = props.type;\n\n // Auto-deduce integer type?\n if ((props.type as GL) === GL.INT || (props.type as GL) === GL.UNSIGNED_INT) {\n this.integer = true;\n }\n }\n if (props.size !== undefined) {\n this.size = props.size;\n }\n if (props.offset !== undefined) {\n this.offset = props.offset;\n }\n if (props.stride !== undefined) {\n this.stride = props.stride;\n }\n // @ts-expect-error\n if (props.normalize !== undefined) {\n // @ts-expect-error\n this.normalized = props.normalize;\n }\n if (props.normalized !== undefined) {\n this.normalized = props.normalized;\n }\n if (props.integer !== undefined) {\n this.integer = props.integer;\n }\n\n // INSTANCE DIVISOR\n if (props.divisor !== undefined) {\n this.divisor = props.divisor;\n }\n\n // Buffer is optional\n if (props.buffer !== undefined) {\n this.buffer = props.buffer;\n }\n\n // The binding index (for binding e.g. Transform feedbacks and Uniform buffers)\n // TODO - should this be part of accessor?\n if (props.index !== undefined) {\n if (typeof props.index === 'boolean') {\n this.index = props.index ? 1 : 0;\n } else {\n this.index = props.index;\n }\n }\n\n // DEPRECATED\n // @ts-expect-error\n if (props.instanced !== undefined) {\n // @ts-expect-error\n this.divisor = props.instanced ? 1 : 0;\n }\n // @ts-expect-error\n if (props.isInstanced !== undefined) {\n // @ts-expect-error\n this.divisor = props.isInstanced ? 1 : 0;\n }\n\n if (this.offset === undefined) delete this.offset;\n if (this.stride === undefined) delete this.stride;\n if (this.type === undefined) delete this.type;\n if (this.size === undefined) delete this.size;\n if (this.divisor === undefined) delete this.divisor;\n if (this.normalized === undefined) delete this.normalized;\n if (this.integer === undefined) delete this.integer;\n \n if (this.buffer === undefined) delete this.buffer;\n if (this.index === undefined) delete this.index;\n \n return this;\n }\n}\n\n// TEST EXPORTS\nexport {DEFAULT_ACCESSOR_VALUES};\n"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { Device, Framebuffer } from '@luma.gl/core';
2
+ /**
3
+ * Optionally clears depth, color and stencil buffers
4
+ * @deprecated Set clear color when creating a RenderPass.
5
+ */
6
+ export declare function clear(gl: Device | WebGLRenderingContext, options?: {
7
+ framebuffer?: Framebuffer;
8
+ color?: any;
9
+ depth?: any;
10
+ stencil?: any;
11
+ }): void;
12
+ /**
13
+ * WebGL2 - clear a specific drawing buffer
14
+ * @deprecated Set clear color when creating a RenderPass
15
+ */
16
+ export declare function clearBuffer(gl: Device | WebGLRenderingContext, options?: {
17
+ framebuffer?: Framebuffer;
18
+ buffer?: any;
19
+ drawBuffer?: any;
20
+ value?: any;
21
+ }): void;
22
+ //# sourceMappingURL=clear.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../src/classic/clear.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAS,MAAM,eAAe,CAAC;AAiB1D;;;GAGG;AACH,wBAAgB,KAAK,CACnB,EAAE,EAAE,MAAM,GAAG,qBAAqB,EAClC,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,CAAA;CAAC,GAC7E,IAAI,CAsCN;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,GAAG,qBAAqB,EAClC,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAC;IAAC,KAAK,CAAC,EAAE,GAAG,CAAA;CAAC,QAuCnF"}
@@ -0,0 +1,88 @@
1
+ import { assert } from '@luma.gl/core';
2
+ import { WebGLDevice } from "../adapter/webgl-device.js";
3
+ import { withGLParameters } from "../context/state-tracker/with-parameters.js";
4
+ const GL_DEPTH_BUFFER_BIT = 0x00000100;
5
+ const GL_STENCIL_BUFFER_BIT = 0x00000400;
6
+ const GL_COLOR_BUFFER_BIT = 0x00004000;
7
+ const GL_COLOR = 0x1800;
8
+ const GL_DEPTH = 0x1801;
9
+ const GL_STENCIL = 0x1802;
10
+ const GL_DEPTH_STENCIL = 0x84f9;
11
+ const ERR_ARGUMENTS = 'clear: bad arguments';
12
+ export function clear(gl, options) {
13
+ const device = WebGLDevice.attach(gl);
14
+ const {
15
+ framebuffer = null,
16
+ color = null,
17
+ depth = null,
18
+ stencil = null
19
+ } = options || {};
20
+ const parameters = {};
21
+ if (framebuffer) {
22
+ parameters.framebuffer = framebuffer;
23
+ }
24
+ let clearFlags = 0;
25
+ if (color) {
26
+ clearFlags |= GL_COLOR_BUFFER_BIT;
27
+ if (color !== true) {
28
+ parameters.clearColor = color;
29
+ }
30
+ }
31
+ if (depth) {
32
+ clearFlags |= GL_DEPTH_BUFFER_BIT;
33
+ if (depth !== true) {
34
+ parameters.clearDepth = depth;
35
+ }
36
+ }
37
+ if (stencil) {
38
+ clearFlags |= GL_STENCIL_BUFFER_BIT;
39
+ if (depth !== true) {
40
+ parameters.clearStencil = depth;
41
+ }
42
+ }
43
+ assert(clearFlags !== 0, ERR_ARGUMENTS);
44
+ withGLParameters(device.gl, parameters, () => {
45
+ device.gl.clear(clearFlags);
46
+ });
47
+ }
48
+ export function clearBuffer(gl, options) {
49
+ const device = WebGLDevice.attach(gl);
50
+ const {
51
+ framebuffer = null,
52
+ buffer = GL_COLOR,
53
+ drawBuffer = 0,
54
+ value = [0, 0, 0, 0]
55
+ } = options || {};
56
+ withGLParameters(device.gl2, {
57
+ framebuffer
58
+ }, () => {
59
+ switch (buffer) {
60
+ case GL_COLOR:
61
+ switch (value.constructor) {
62
+ case Int32Array:
63
+ device.gl2.clearBufferiv(buffer, drawBuffer, value);
64
+ break;
65
+ case Uint32Array:
66
+ device.gl2.clearBufferuiv(buffer, drawBuffer, value);
67
+ break;
68
+ case Float32Array:
69
+ default:
70
+ device.gl2.clearBufferfv(buffer, drawBuffer, value);
71
+ }
72
+ break;
73
+ case GL_DEPTH:
74
+ device.gl2.clearBufferfv(GL_DEPTH, 0, [value]);
75
+ break;
76
+ case GL_STENCIL:
77
+ device.gl2.clearBufferiv(GL_STENCIL, 0, [value]);
78
+ break;
79
+ case GL_DEPTH_STENCIL:
80
+ const [depth, stencil] = value;
81
+ device.gl2.clearBufferfi(GL_DEPTH_STENCIL, 0, depth, stencil);
82
+ break;
83
+ default:
84
+ assert(false, ERR_ARGUMENTS);
85
+ }
86
+ });
87
+ }
88
+ //# sourceMappingURL=clear.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear.js","names":["assert","WebGLDevice","withGLParameters","GL_DEPTH_BUFFER_BIT","GL_STENCIL_BUFFER_BIT","GL_COLOR_BUFFER_BIT","GL_COLOR","GL_DEPTH","GL_STENCIL","GL_DEPTH_STENCIL","ERR_ARGUMENTS","clear","gl","options","device","attach","framebuffer","color","depth","stencil","parameters","clearFlags","clearColor","clearDepth","clearStencil","clearBuffer","buffer","drawBuffer","value","gl2","constructor","Int32Array","clearBufferiv","Uint32Array","clearBufferuiv","Float32Array","clearBufferfv","clearBufferfi"],"sources":["../../src/classic/clear.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport {Device, Framebuffer, assert} from '@luma.gl/core';\nimport {WebGLDevice} from '../adapter/webgl-device';\nimport {withGLParameters} from '../context/state-tracker/with-parameters';\n\n// Should collapse during minification\nconst GL_DEPTH_BUFFER_BIT = 0x00000100;\nconst GL_STENCIL_BUFFER_BIT = 0x00000400;\nconst GL_COLOR_BUFFER_BIT = 0x00004000;\n\nconst GL_COLOR = 0x1800;\nconst GL_DEPTH = 0x1801;\nconst GL_STENCIL = 0x1802;\nconst GL_DEPTH_STENCIL = 0x84f9;\n\n// Should disappear if asserts are removed\nconst ERR_ARGUMENTS = 'clear: bad arguments';\n\n/** \n * Optionally clears depth, color and stencil buffers \n * @deprecated Set clear color when creating a RenderPass.\n */\nexport function clear(\n gl: Device | WebGLRenderingContext,\n options?: {framebuffer?: Framebuffer; color?: any; depth?: any; stencil?: any}\n): void {\n const device = WebGLDevice.attach(gl);\n const {framebuffer = null, color = null, depth = null, stencil = null} = options || {};\n const parameters: any = {};\n\n if (framebuffer) {\n parameters.framebuffer = framebuffer;\n }\n\n let clearFlags = 0;\n\n if (color) {\n clearFlags |= GL_COLOR_BUFFER_BIT;\n if (color !== true) {\n parameters.clearColor = color;\n }\n }\n\n if (depth) {\n clearFlags |= GL_DEPTH_BUFFER_BIT;\n if (depth !== true) {\n parameters.clearDepth = depth;\n }\n }\n\n if (stencil) {\n clearFlags |= GL_STENCIL_BUFFER_BIT;\n if (depth !== true) {\n parameters.clearStencil = depth;\n }\n }\n\n assert(clearFlags !== 0, ERR_ARGUMENTS);\n\n // Temporarily set any clear \"colors\" and call clear\n withGLParameters(device.gl, parameters, () => {\n device.gl.clear(clearFlags);\n });\n}\n\n/** \n * WebGL2 - clear a specific drawing buffer \n * @deprecated Set clear color when creating a RenderPass\n */\nexport function clearBuffer(\n gl: Device | WebGLRenderingContext,\n options?: {framebuffer?: Framebuffer; buffer?: any; drawBuffer?: any; value?: any}\n) {\n const device = WebGLDevice.attach(gl);\n\n const {framebuffer = null, buffer = GL_COLOR, drawBuffer = 0, value = [0, 0, 0, 0]} = options || {};\n withGLParameters(device.gl2, {framebuffer}, () => {\n // Method selection per OpenGL ES 3 docs\n switch (buffer) {\n case GL_COLOR:\n switch (value.constructor) {\n case Int32Array:\n device.gl2.clearBufferiv(buffer, drawBuffer, value);\n break;\n case Uint32Array:\n device.gl2.clearBufferuiv(buffer, drawBuffer, value);\n break;\n case Float32Array:\n default:\n device.gl2.clearBufferfv(buffer, drawBuffer, value);\n }\n break;\n\n case GL_DEPTH:\n device.gl2.clearBufferfv(GL_DEPTH, 0, [value]);\n break;\n\n case GL_STENCIL:\n device.gl2.clearBufferiv(GL_STENCIL, 0, [value]);\n break;\n\n case GL_DEPTH_STENCIL:\n const [depth, stencil] = value;\n device.gl2.clearBufferfi(GL_DEPTH_STENCIL, 0, depth, stencil);\n break;\n\n default:\n assert(false, ERR_ARGUMENTS);\n }\n });\n}\n"],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { Texture, Framebuffer, FramebufferProps } from '@luma.gl/core';
2
+ import { GL } from '@luma.gl/constants';
3
+ import { WEBGLBuffer } from '../adapter/resources/webgl-buffer';
4
+ /**
5
+ * Copies data from a type or a Texture object into ArrayBuffer object.
6
+ * App can provide targetPixelArray or have it auto allocated by this method
7
+ * newly allocated by this method unless provided by app.
8
+ * @deprecated Use CommandEncoder.copyTextureToBuffer and Buffer.read
9
+ * @note Slow requires roundtrip to GPU
10
+ *
11
+ * @param source
12
+ * @param options
13
+ * @returns pixel array,
14
+ */
15
+ export declare function readPixelsToArray(source: Framebuffer | Texture, options?: {
16
+ sourceX?: number;
17
+ sourceY?: number;
18
+ sourceFormat?: number;
19
+ sourceAttachment?: number;
20
+ target?: Uint8Array | Uint16Array | Float32Array;
21
+ sourceWidth?: number;
22
+ sourceHeight?: number;
23
+ sourceType?: number;
24
+ }): Uint8Array | Uint16Array | Float32Array;
25
+ /**
26
+ * Copies data from a Framebuffer or a Texture object into a Buffer object.
27
+ * NOTE: doesn't wait for copy to be complete, it programs GPU to perform a DMA transffer.
28
+ * @deprecated Use CommandEncoder
29
+ * @param source
30
+ * @param options
31
+ */
32
+ export declare function readPixelsToBuffer(source: Framebuffer | Texture, options?: {
33
+ sourceX?: number;
34
+ sourceY?: number;
35
+ sourceFormat?: number;
36
+ target?: WEBGLBuffer;
37
+ targetByteOffset?: number;
38
+ sourceWidth?: number;
39
+ sourceHeight?: number;
40
+ sourceType?: number;
41
+ }): WEBGLBuffer;
42
+ /**
43
+ * Copy a rectangle from a Framebuffer or Texture object into a texture (at an offset)
44
+ * @deprecated Use CommandEncoder
45
+ */
46
+ export declare function copyToTexture(source: Framebuffer | Texture, target: Texture | GL, options?: {
47
+ sourceX?: number;
48
+ sourceY?: number;
49
+ targetX?: number;
50
+ targetY?: number;
51
+ targetZ?: number;
52
+ targetMipmaplevel?: number;
53
+ targetInternalFormat?: number;
54
+ width?: number;
55
+ height?: number;
56
+ }): Texture;
57
+ /**
58
+ * Wraps a given texture into a framebuffer object, that can be further used
59
+ * to read data from the texture object.
60
+ */
61
+ export declare function toFramebuffer(texture: Texture, props?: FramebufferProps): Framebuffer;
62
+ //# sourceMappingURL=copy-and-blit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy-and-blit.d.ts","sourceRoot":"","sources":["../../src/classic/copy-and-blit.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AAMtC,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAE9D;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;IAEjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,UAAU,GAAG,WAAW,GAAG,YAAY,CAiDzC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,WAAW,CAwCb;AAED;;;GAGG;AAEH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,GAAG,OAAO,EAC7B,MAAM,EAAE,OAAO,GAAG,EAAE,EACpB,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAgGT;AAYD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,gBAAgB,GAAG,WAAW,CAUrF"}
@@ -0,0 +1,191 @@
1
+ import { assert, Texture, Framebuffer } from '@luma.gl/core';
2
+ import { getGLTypeFromTypedArray, getTypedArrayFromGLType } from "./typed-array-utils.js";
3
+ import { glFormatToComponents, glTypeToBytes } from "./format-utils.js";
4
+ export function readPixelsToArray(source, options) {
5
+ var _framebuffer$colorAtt;
6
+ const {
7
+ sourceX = 0,
8
+ sourceY = 0,
9
+ sourceFormat = 6408,
10
+ sourceAttachment = 36064
11
+ } = options || {};
12
+ let {
13
+ target = null,
14
+ sourceWidth,
15
+ sourceHeight,
16
+ sourceType
17
+ } = options || {};
18
+ const {
19
+ framebuffer,
20
+ deleteFramebuffer
21
+ } = getFramebuffer(source);
22
+ assert(framebuffer);
23
+ const {
24
+ gl,
25
+ handle
26
+ } = framebuffer;
27
+ sourceWidth = sourceWidth || framebuffer.width;
28
+ sourceHeight = sourceHeight || framebuffer.height;
29
+ const attachment = sourceAttachment - 36064;
30
+ sourceType = sourceType || ((_framebuffer$colorAtt = framebuffer.colorAttachments[attachment]) === null || _framebuffer$colorAtt === void 0 ? void 0 : _framebuffer$colorAtt.type) || 5121;
31
+ target = getPixelArray(target, sourceType, sourceFormat, sourceWidth, sourceHeight);
32
+ sourceType = sourceType || getGLTypeFromTypedArray(target);
33
+ const prevHandle = gl.bindFramebuffer(36160, handle);
34
+ gl.readPixels(sourceX, sourceY, sourceWidth, sourceHeight, sourceFormat, sourceType, target);
35
+ gl.bindFramebuffer(36160, prevHandle || null);
36
+ if (deleteFramebuffer) {
37
+ framebuffer.destroy();
38
+ }
39
+ return target;
40
+ }
41
+ export function readPixelsToBuffer(source, options) {
42
+ const {
43
+ sourceX = 0,
44
+ sourceY = 0,
45
+ sourceFormat = 6408,
46
+ targetByteOffset = 0
47
+ } = options || {};
48
+ let {
49
+ target,
50
+ sourceWidth,
51
+ sourceHeight,
52
+ sourceType
53
+ } = options || {};
54
+ const {
55
+ framebuffer,
56
+ deleteFramebuffer
57
+ } = getFramebuffer(source);
58
+ assert(framebuffer);
59
+ sourceWidth = sourceWidth || framebuffer.width;
60
+ sourceHeight = sourceHeight || framebuffer.height;
61
+ const webglFramebuffer = framebuffer;
62
+ sourceType = sourceType || 5121;
63
+ if (!target) {
64
+ const components = glFormatToComponents(sourceFormat);
65
+ const byteCount = glTypeToBytes(sourceType);
66
+ const byteLength = targetByteOffset + sourceWidth * sourceHeight * components * byteCount;
67
+ target = webglFramebuffer.device.createBuffer({
68
+ byteLength
69
+ });
70
+ }
71
+ const commandEncoder = source.device.createCommandEncoder();
72
+ commandEncoder.copyTextureToBuffer({
73
+ source: source,
74
+ width: sourceWidth,
75
+ height: sourceHeight,
76
+ origin: [sourceX, sourceY],
77
+ destination: target,
78
+ byteOffset: targetByteOffset
79
+ });
80
+ commandEncoder.destroy();
81
+ if (deleteFramebuffer) {
82
+ framebuffer.destroy();
83
+ }
84
+ return target;
85
+ }
86
+ export function copyToTexture(source, target, options) {
87
+ const {
88
+ sourceX = 0,
89
+ sourceY = 0,
90
+ targetMipmaplevel = 0,
91
+ targetInternalFormat = 6408
92
+ } = options || {};
93
+ let {
94
+ targetX,
95
+ targetY,
96
+ targetZ,
97
+ width,
98
+ height
99
+ } = options || {};
100
+ const {
101
+ framebuffer,
102
+ deleteFramebuffer
103
+ } = getFramebuffer(source);
104
+ assert(framebuffer);
105
+ const webglFramebuffer = framebuffer;
106
+ const {
107
+ device,
108
+ handle
109
+ } = webglFramebuffer;
110
+ const isSubCopy = typeof targetX !== 'undefined' || typeof targetY !== 'undefined' || typeof targetZ !== 'undefined';
111
+ targetX = targetX || 0;
112
+ targetY = targetY || 0;
113
+ targetZ = targetZ || 0;
114
+ const prevHandle = device.gl.bindFramebuffer(36160, handle);
115
+ assert(target);
116
+ let texture = null;
117
+ let textureTarget;
118
+ if (target instanceof Texture) {
119
+ texture = target;
120
+ width = Number.isFinite(width) ? width : texture.width;
121
+ height = Number.isFinite(height) ? height : texture.height;
122
+ texture.bind(0);
123
+ textureTarget = texture.target;
124
+ } else {
125
+ textureTarget = target;
126
+ }
127
+ if (!isSubCopy) {
128
+ device.gl.copyTexImage2D(textureTarget, targetMipmaplevel, targetInternalFormat, sourceX, sourceY, width, height, 0);
129
+ } else {
130
+ switch (textureTarget) {
131
+ case 3553:
132
+ case 34067:
133
+ device.gl.copyTexSubImage2D(textureTarget, targetMipmaplevel, targetX, targetY, sourceX, sourceY, width, height);
134
+ break;
135
+ case 35866:
136
+ case 32879:
137
+ device.assertWebGL2();
138
+ device.gl2.copyTexSubImage3D(textureTarget, targetMipmaplevel, targetX, targetY, targetZ, sourceX, sourceY, width, height);
139
+ break;
140
+ default:
141
+ }
142
+ }
143
+ if (texture) {
144
+ texture.unbind();
145
+ }
146
+ device.gl.bindFramebuffer(36160, prevHandle || null);
147
+ if (deleteFramebuffer) {
148
+ framebuffer.destroy();
149
+ }
150
+ return texture;
151
+ }
152
+ function getFramebuffer(source) {
153
+ if (!(source instanceof Framebuffer)) {
154
+ return {
155
+ framebuffer: toFramebuffer(source),
156
+ deleteFramebuffer: true
157
+ };
158
+ }
159
+ return {
160
+ framebuffer: source,
161
+ deleteFramebuffer: false
162
+ };
163
+ }
164
+ export function toFramebuffer(texture, props) {
165
+ const {
166
+ device,
167
+ width,
168
+ height,
169
+ id
170
+ } = texture;
171
+ const framebuffer = device.createFramebuffer({
172
+ ...props,
173
+ id: `framebuffer-for-${id}`,
174
+ width,
175
+ height,
176
+ colorAttachments: [texture]
177
+ });
178
+ return framebuffer;
179
+ }
180
+ function getPixelArray(pixelArray, type, format, width, height) {
181
+ if (pixelArray) {
182
+ return pixelArray;
183
+ }
184
+ type = type || 5121;
185
+ const ArrayType = getTypedArrayFromGLType(type, {
186
+ clamped: false
187
+ });
188
+ const components = glFormatToComponents(format);
189
+ return new ArrayType(width * height * components);
190
+ }
191
+ //# sourceMappingURL=copy-and-blit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copy-and-blit.js","names":["assert","Texture","Framebuffer","getGLTypeFromTypedArray","getTypedArrayFromGLType","glFormatToComponents","glTypeToBytes","readPixelsToArray","source","options","_framebuffer$colorAtt","sourceX","sourceY","sourceFormat","sourceAttachment","target","sourceWidth","sourceHeight","sourceType","framebuffer","deleteFramebuffer","getFramebuffer","gl","handle","width","height","attachment","colorAttachments","type","getPixelArray","prevHandle","bindFramebuffer","readPixels","destroy","readPixelsToBuffer","targetByteOffset","webglFramebuffer","components","byteCount","byteLength","device","createBuffer","commandEncoder","createCommandEncoder","copyTextureToBuffer","origin","destination","byteOffset","copyToTexture","targetMipmaplevel","targetInternalFormat","targetX","targetY","targetZ","isSubCopy","texture","textureTarget","Number","isFinite","bind","copyTexImage2D","copyTexSubImage2D","assertWebGL2","gl2","copyTexSubImage3D","unbind","toFramebuffer","props","id","createFramebuffer","pixelArray","format","ArrayType","clamped"],"sources":["../../src/classic/copy-and-blit.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport {assert, Texture, Framebuffer, FramebufferProps} from '@luma.gl/core';\nimport {GL} from '@luma.gl/constants';\n\nimport {WEBGLTexture} from '../adapter/resources/webgl-texture';\nimport {WEBGLFramebuffer} from '../adapter/resources/webgl-framebuffer';\nimport {getGLTypeFromTypedArray, getTypedArrayFromGLType} from './typed-array-utils';\nimport {glFormatToComponents, glTypeToBytes} from './format-utils';\nimport {WEBGLBuffer} from '../adapter/resources/webgl-buffer';\n\n/**\n * Copies data from a type or a Texture object into ArrayBuffer object.\n * App can provide targetPixelArray or have it auto allocated by this method\n * newly allocated by this method unless provided by app.\n * @deprecated Use CommandEncoder.copyTextureToBuffer and Buffer.read\n * @note Slow requires roundtrip to GPU\n *\n * @param source\n * @param options\n * @returns pixel array,\n */\nexport function readPixelsToArray(\n source: Framebuffer | Texture,\n options?: {\n sourceX?: number;\n sourceY?: number;\n sourceFormat?: number;\n sourceAttachment?: number;\n target?: Uint8Array | Uint16Array | Float32Array;\n // following parameters are auto deduced if not provided\n sourceWidth?: number;\n sourceHeight?: number;\n sourceType?: number;\n }\n): Uint8Array | Uint16Array | Float32Array {\n const {\n sourceX = 0,\n sourceY = 0,\n sourceFormat = GL.RGBA,\n sourceAttachment = GL.COLOR_ATTACHMENT0 // TODO - support gl.readBuffer\n } = options || {};\n let {\n target = null,\n // following parameters are auto deduced if not provided\n sourceWidth,\n sourceHeight,\n sourceType\n } = options || {};\n\n const {framebuffer, deleteFramebuffer} = getFramebuffer(source);\n assert(framebuffer);\n const {gl, handle} = framebuffer as WEBGLFramebuffer;\n sourceWidth = sourceWidth || framebuffer.width;\n sourceHeight = sourceHeight || framebuffer.height;\n\n // TODO - Set and unset gl.readBuffer\n // if (sourceAttachment === GL.COLOR_ATTACHMENT0 && handle === null) {\n // sourceAttachment = GL.FRONT;\n // }\n\n const attachment = sourceAttachment - GL.COLOR_ATTACHMENT0;\n // assert(attachments[sourceAttachment]);\n\n // Deduce the type from color attachment if not provided.\n sourceType =\n sourceType ||\n (framebuffer.colorAttachments[attachment] as WEBGLTexture)?.type ||\n GL.UNSIGNED_BYTE;\n\n // Deduce type and allocated pixelArray if needed\n target = getPixelArray(target, sourceType, sourceFormat, sourceWidth, sourceHeight);\n\n // Pixel array available, if necessary, deduce type from it.\n sourceType = sourceType || getGLTypeFromTypedArray(target);\n\n const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, handle);\n gl.readPixels(sourceX, sourceY, sourceWidth, sourceHeight, sourceFormat, sourceType, target);\n // @ts-expect-error\n gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n if (deleteFramebuffer) {\n framebuffer.destroy();\n }\n return target;\n}\n\n/**\n * Copies data from a Framebuffer or a Texture object into a Buffer object.\n * NOTE: doesn't wait for copy to be complete, it programs GPU to perform a DMA transffer.\n * @deprecated Use CommandEncoder\n * @param source\n * @param options\n */\nexport function readPixelsToBuffer(\n source: Framebuffer | Texture,\n options?: {\n sourceX?: number;\n sourceY?: number;\n sourceFormat?: number;\n target?: WEBGLBuffer; // A new Buffer object is created when not provided.\n targetByteOffset?: number; // byte offset in buffer object\n // following parameters are auto deduced if not provided\n sourceWidth?: number;\n sourceHeight?: number;\n sourceType?: number;\n }\n): WEBGLBuffer {\n const {sourceX = 0, sourceY = 0, sourceFormat = GL.RGBA, targetByteOffset = 0} = options || {};\n // following parameters are auto deduced if not provided\n let {target, sourceWidth, sourceHeight, sourceType} = options || {};\n const {framebuffer, deleteFramebuffer} = getFramebuffer(source);\n assert(framebuffer);\n sourceWidth = sourceWidth || framebuffer.width;\n sourceHeight = sourceHeight || framebuffer.height;\n\n // Asynchronous read (PIXEL_PACK_BUFFER) is WebGL2 only feature\n const webglFramebuffer = framebuffer as WEBGLFramebuffer;\n\n // deduce type if not available.\n sourceType = sourceType || GL.UNSIGNED_BYTE;\n\n if (!target) {\n // Create new buffer with enough size\n const components = glFormatToComponents(sourceFormat);\n const byteCount = glTypeToBytes(sourceType);\n const byteLength = targetByteOffset + sourceWidth * sourceHeight * components * byteCount;\n target = webglFramebuffer.device.createBuffer({byteLength});\n }\n\n // TODO(donmccurdy): Do we have tests to confirm this is working?\n const commandEncoder = source.device.createCommandEncoder();\n commandEncoder.copyTextureToBuffer({\n source: source as Texture,\n width: sourceWidth,\n height: sourceHeight,\n origin: [sourceX, sourceY],\n destination: target,\n byteOffset: targetByteOffset\n });\n commandEncoder.destroy();\n\n if (deleteFramebuffer) {\n framebuffer.destroy();\n }\n\n return target;\n}\n\n/**\n * Copy a rectangle from a Framebuffer or Texture object into a texture (at an offset)\n * @deprecated Use CommandEncoder\n */\n// eslint-disable-next-line complexity, max-statements\nexport function copyToTexture(\n source: Framebuffer | Texture,\n target: Texture | GL,\n options?: {\n sourceX?: number;\n sourceY?: number;\n\n targetX?: number;\n targetY?: number;\n targetZ?: number;\n targetMipmaplevel?: number;\n targetInternalFormat?: number;\n\n width?: number; // defaults to target width\n height?: number; // defaults to target height\n }\n): Texture {\n const {\n sourceX = 0,\n sourceY = 0,\n // attachment = GL.COLOR_ATTACHMENT0, // TODO - support gl.readBuffer\n targetMipmaplevel = 0,\n targetInternalFormat = GL.RGBA\n } = options || {};\n let {\n targetX,\n targetY,\n targetZ,\n width, // defaults to target width\n height // defaults to target height\n } = options || {};\n\n const {framebuffer, deleteFramebuffer} = getFramebuffer(source);\n assert(framebuffer);\n const webglFramebuffer = framebuffer as WEBGLFramebuffer;\n const {device, handle} = webglFramebuffer;\n const isSubCopy =\n typeof targetX !== 'undefined' ||\n typeof targetY !== 'undefined' ||\n typeof targetZ !== 'undefined';\n targetX = targetX || 0;\n targetY = targetY || 0;\n targetZ = targetZ || 0;\n const prevHandle = device.gl.bindFramebuffer(GL.FRAMEBUFFER, handle);\n // TODO - support gl.readBuffer (WebGL2 only)\n // const prevBuffer = gl.readBuffer(attachment);\n assert(target);\n let texture = null;\n let textureTarget: GL;\n if (target instanceof Texture) {\n texture = target;\n width = Number.isFinite(width) ? width : texture.width;\n height = Number.isFinite(height) ? height : texture.height;\n texture.bind(0);\n textureTarget = texture.target;\n } else {\n textureTarget = target;\n }\n\n if (!isSubCopy) {\n device.gl.copyTexImage2D(\n textureTarget,\n targetMipmaplevel,\n targetInternalFormat,\n sourceX,\n sourceY,\n width,\n height,\n 0 /* border must be 0 */\n );\n } else {\n switch (textureTarget) {\n case GL.TEXTURE_2D:\n case GL.TEXTURE_CUBE_MAP:\n device.gl.copyTexSubImage2D(\n textureTarget,\n targetMipmaplevel,\n targetX,\n targetY,\n sourceX,\n sourceY,\n width,\n height\n );\n break;\n case GL.TEXTURE_2D_ARRAY:\n case GL.TEXTURE_3D:\n device.assertWebGL2();\n device.gl2.copyTexSubImage3D(\n textureTarget,\n targetMipmaplevel,\n targetX,\n targetY,\n targetZ,\n sourceX,\n sourceY,\n width,\n height\n );\n break;\n default:\n }\n }\n if (texture) {\n texture.unbind();\n }\n // @ts-expect-error\n device.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n if (deleteFramebuffer) {\n framebuffer.destroy();\n }\n return texture;\n}\n\nfunction getFramebuffer(source: Texture | Framebuffer): {\n framebuffer: Framebuffer;\n deleteFramebuffer: boolean;\n} {\n if (!(source instanceof Framebuffer)) {\n return {framebuffer: toFramebuffer(source), deleteFramebuffer: true};\n }\n return {framebuffer: source, deleteFramebuffer: false};\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, props?: FramebufferProps): Framebuffer {\n const {device, width, height, id} = texture;\n const framebuffer = device.createFramebuffer({\n ...props,\n id: `framebuffer-for-${id}`,\n width,\n height,\n colorAttachments: [texture]\n });\n return framebuffer;\n}\n\nfunction getPixelArray(\n pixelArray,\n type,\n format,\n width: number,\n height: number\n): Uint8Array | Uint16Array | Float32Array {\n if (pixelArray) {\n return pixelArray;\n }\n // Allocate pixel array if not already available, using supplied type\n type = type || GL.UNSIGNED_BYTE;\n const ArrayType = getTypedArrayFromGLType(type, {clamped: false});\n const components = glFormatToComponents(format);\n // TODO - check for composite type (components = 1).\n return new ArrayType(width * height * components) as Uint8Array | Uint16Array | Float32Array;\n}\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function glFormatToComponents(format: any): 2 | 0 | 1 | 4 | 3;
2
+ export declare function glTypeToBytes(type: any): 2 | 0 | 1 | 4;
3
+ //# sourceMappingURL=format-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-utils.d.ts","sourceRoot":"","sources":["../../src/classic/format-utils.ts"],"names":[],"mappings":"AAOA,wBAAgB,oBAAoB,CAAC,MAAM,KAAA,qBAoB1C;AAGD,wBAAgB,aAAa,CAAC,IAAI,KAAA,iBAejC"}