@luma.gl/webgl 9.0.0-alpha.9 → 9.0.0-beta.10

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