@luma.gl/webgl 9.0.0-alpha.4 → 9.0.0-alpha.41

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 (525) 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 +42 -47
  5. package/dist/adapter/converters/device-parameters.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts +5 -5
  7. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  8. package/dist/adapter/converters/sampler-parameters.js +20 -56
  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 +53 -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 +165 -201
  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 +51 -19
  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 +14 -21
  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 +2 -5
  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 +9 -11
  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/{uniforms.js → decode-webgl-types.js} +20 -29
  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 +60 -115
  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 +0 -7
  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 +27 -57
  56. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  57. package/dist/adapter/helpers/webgl-topology-utils.d.ts +11 -0
  58. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
  59. package/dist/adapter/helpers/{attribute-utils.js → webgl-topology-utils.js} +2 -19
  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 +34 -41
  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 +18 -10
  74. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  75. package/dist/adapter/resources/webgl-buffer.js +49 -78
  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 +169 -43
  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 +46 -155
  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 +91 -11
  93. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  94. package/dist/adapter/resources/webgl-render-pipeline.d.ts +53 -19
  95. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  96. package/dist/adapter/resources/webgl-render-pipeline.js +108 -230
  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 +10 -19
  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 +19 -31
  105. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  106. package/dist/adapter/resources/webgl-texture.d.ts +64 -44
  107. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  108. package/dist/adapter/resources/webgl-texture.js +119 -235
  109. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  110. package/dist/adapter/resources/webgl-vertex-array.d.ts +67 -0
  111. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -0
  112. package/dist/adapter/resources/webgl-vertex-array.js +166 -0
  113. package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
  114. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  115. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  116. package/dist/adapter/webgl-canvas-context.js +10 -23
  117. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  118. package/dist/adapter/webgl-device.d.ts +74 -41
  119. package/dist/adapter/webgl-device.d.ts.map +1 -1
  120. package/dist/adapter/webgl-device.js +214 -128
  121. package/dist/adapter/webgl-device.js.map +1 -1
  122. package/dist/classic/accessor.d.ts +3 -3
  123. package/dist/classic/accessor.d.ts.map +1 -1
  124. package/dist/classic/accessor.js +23 -48
  125. package/dist/classic/accessor.js.map +1 -1
  126. package/dist/classic/{buffer.d.ts → buffer-with-accessor.d.ts} +16 -29
  127. package/dist/classic/buffer-with-accessor.d.ts.map +1 -0
  128. package/dist/classic/{buffer.js → buffer-with-accessor.js} +55 -125
  129. package/dist/classic/buffer-with-accessor.js.map +1 -0
  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 +200 -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 +38 -0
  141. package/dist/classic/format-utils.js.map +1 -0
  142. package/dist/classic/typed-array-utils.d.ts +15 -17
  143. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  144. package/dist/classic/typed-array-utils.js +1 -21
  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 +16 -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 +18 -36
  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 +4 -9
  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 +10 -32
  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 +0 -70
  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 +10391 -0
  202. package/dist/index.cjs +6625 -0
  203. package/dist/index.d.ts +27 -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 +37 -0
  211. package/package.json +21 -9
  212. package/src/adapter/converters/device-parameters.ts +124 -36
  213. package/src/adapter/converters/sampler-parameters.ts +22 -9
  214. package/src/adapter/converters/shader-formats.ts +44 -0
  215. package/src/adapter/converters/texture-formats.ts +267 -194
  216. package/src/adapter/converters/vertex-formats.ts +71 -10
  217. package/src/adapter/device-helpers/device-features.ts +13 -3
  218. package/src/adapter/device-helpers/device-limits.ts +5 -3
  219. package/src/adapter/device-helpers/get-device-info.ts +17 -10
  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 +4 -2
  225. package/src/adapter/helpers/set-uniform.ts +39 -35
  226. package/src/adapter/helpers/{attribute-utils.ts → webgl-topology-utils.ts} +7 -5
  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 +59 -58
  231. package/src/adapter/resources/webgl-command-buffer.ts +333 -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 +89 -133
  235. package/src/adapter/resources/webgl-render-pass.ts +160 -4
  236. package/src/adapter/resources/webgl-render-pipeline.ts +265 -170
  237. package/src/adapter/resources/webgl-sampler.ts +15 -9
  238. package/src/adapter/resources/webgl-shader.ts +14 -11
  239. package/src/adapter/resources/webgl-texture.ts +120 -90
  240. package/src/adapter/resources/webgl-vertex-array.ts +279 -0
  241. package/src/adapter/webgl-canvas-context.ts +16 -14
  242. package/src/adapter/webgl-device.ts +321 -78
  243. package/src/classic/accessor.ts +7 -17
  244. package/src/classic/{buffer.ts → buffer-with-accessor.ts} +68 -76
  245. package/src/classic/clear.ts +113 -0
  246. package/src/classic/copy-and-blit.ts +314 -0
  247. package/src/classic/format-utils.ts +46 -0
  248. package/src/classic/typed-array-utils.ts +19 -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 +20 -16
  263. package/src/context/state-tracker/with-parameters.ts +13 -4
  264. package/src/index.ts +69 -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.map +0 -1
  273. package/dist/adapter/helpers/uniforms.d.ts +0 -26
  274. package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
  275. package/dist/adapter/helpers/uniforms.js.map +0 -1
  276. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
  277. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
  278. package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
  279. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  280. package/dist/bundle.d.ts +0 -2
  281. package/dist/bundle.d.ts.map +0 -1
  282. package/dist/bundle.js +0 -5
  283. package/dist/bundle.js.map +0 -1
  284. package/dist/classic/buffer.d.ts.map +0 -1
  285. package/dist/classic/buffer.js.map +0 -1
  286. package/dist/context/context/context-state.d.ts +0 -18
  287. package/dist/context/context/context-state.d.ts.map +0 -1
  288. package/dist/context/context/context-state.js +0 -26
  289. package/dist/context/context/context-state.js.map +0 -1
  290. package/dist/context/context/create-context.d.ts +0 -41
  291. package/dist/context/context/create-context.d.ts.map +0 -1
  292. package/dist/context/context/create-context.js +0 -49
  293. package/dist/context/context/create-context.js.map +0 -1
  294. package/dist/context/context/device-pixels.d.ts +0 -25
  295. package/dist/context/context/device-pixels.d.ts.map +0 -1
  296. package/dist/context/context/device-pixels.js +0 -98
  297. package/dist/context/context/device-pixels.js.map +0 -1
  298. package/dist/es5/adapter/converters/device-parameters.js +0 -170
  299. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  300. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  301. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  302. package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
  303. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  304. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  305. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  306. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  307. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  308. package/dist/es5/adapter/device-helpers/device-features.js +0 -144
  309. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  310. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  311. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  312. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  313. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  314. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  315. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  316. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  317. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  318. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
  319. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  320. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  321. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  322. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  323. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  324. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  325. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  326. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  327. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  328. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  329. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  330. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  331. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  332. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  333. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  334. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  335. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  336. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  337. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  338. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  339. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  340. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  341. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  342. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
  343. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  344. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
  345. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  346. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
  347. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  348. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  349. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  350. package/dist/es5/adapter/resources/webgl-shader.js +0 -149
  351. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  352. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  353. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  354. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  355. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  356. package/dist/es5/adapter/webgl-device.js +0 -399
  357. package/dist/es5/adapter/webgl-device.js.map +0 -1
  358. package/dist/es5/bundle.js +0 -7
  359. package/dist/es5/bundle.js.map +0 -1
  360. package/dist/es5/classic/accessor.js +0 -181
  361. package/dist/es5/classic/accessor.js.map +0 -1
  362. package/dist/es5/classic/buffer.js +0 -470
  363. package/dist/es5/classic/buffer.js.map +0 -1
  364. package/dist/es5/classic/typed-array-utils.js +0 -126
  365. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  366. package/dist/es5/context/context/context-state.js +0 -31
  367. package/dist/es5/context/context/context-state.js.map +0 -1
  368. package/dist/es5/context/context/create-context.js +0 -69
  369. package/dist/es5/context/context/create-context.js.map +0 -1
  370. package/dist/es5/context/context/device-pixels.js +0 -115
  371. package/dist/es5/context/context/device-pixels.js.map +0 -1
  372. package/dist/es5/context/context/webgl-checks.js +0 -54
  373. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  374. package/dist/es5/context/debug/spector.js +0 -133
  375. package/dist/es5/context/debug/spector.js.map +0 -1
  376. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  377. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  378. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  379. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  380. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  381. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  382. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  383. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  384. package/dist/es5/context/polyfill/polyfill-context.js +0 -135
  385. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  386. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  387. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  388. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  389. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  390. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  391. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  392. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  393. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  394. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  395. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  396. package/dist/es5/index.js +0 -276
  397. package/dist/es5/index.js.map +0 -1
  398. package/dist/es5/init.js +0 -10
  399. package/dist/es5/init.js.map +0 -1
  400. package/dist/es5/types/webgl.js +0 -6
  401. package/dist/es5/types/webgl.js.map +0 -1
  402. package/dist/es5/types.js +0 -2
  403. package/dist/es5/types.js.map +0 -1
  404. package/dist/esm/adapter/converters/device-parameters.js +0 -155
  405. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  406. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  407. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  408. package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
  409. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  410. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  411. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  412. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  413. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  414. package/dist/esm/adapter/device-helpers/device-features.js +0 -102
  415. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  416. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  417. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  418. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  419. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  420. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  421. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  422. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  423. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  424. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
  425. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  426. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  427. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  428. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  429. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  430. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  431. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  432. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  433. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  434. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  435. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  436. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  437. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  438. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  439. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  440. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  441. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  442. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  443. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  444. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  445. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  446. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  447. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  448. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
  449. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  450. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
  451. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  452. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  453. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  454. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  455. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  456. package/dist/esm/adapter/resources/webgl-shader.js +0 -75
  457. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  458. package/dist/esm/adapter/resources/webgl-texture.js +0 -831
  459. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  460. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  461. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  462. package/dist/esm/adapter/webgl-device.js +0 -280
  463. package/dist/esm/adapter/webgl-device.js.map +0 -1
  464. package/dist/esm/bundle.js +0 -5
  465. package/dist/esm/bundle.js.map +0 -1
  466. package/dist/esm/classic/accessor.js +0 -144
  467. package/dist/esm/classic/accessor.js.map +0 -1
  468. package/dist/esm/classic/buffer.js +0 -384
  469. package/dist/esm/classic/buffer.js.map +0 -1
  470. package/dist/esm/classic/typed-array-utils.js +0 -112
  471. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  472. package/dist/esm/context/context/context-state.js +0 -26
  473. package/dist/esm/context/context/context-state.js.map +0 -1
  474. package/dist/esm/context/context/create-context.js +0 -49
  475. package/dist/esm/context/context/create-context.js.map +0 -1
  476. package/dist/esm/context/context/device-pixels.js +0 -98
  477. package/dist/esm/context/context/device-pixels.js.map +0 -1
  478. package/dist/esm/context/context/webgl-checks.js +0 -34
  479. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  480. package/dist/esm/context/debug/spector.js +0 -76
  481. package/dist/esm/context/debug/spector.js.map +0 -1
  482. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  483. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  484. package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
  485. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  486. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  487. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  488. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  489. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  490. package/dist/esm/context/polyfill/polyfill-context.js +0 -92
  491. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  492. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  493. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  494. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  495. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  496. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  497. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  498. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  499. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  500. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  501. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  502. package/dist/esm/index.js +0 -27
  503. package/dist/esm/index.js.map +0 -1
  504. package/dist/esm/init.js +0 -4
  505. package/dist/esm/init.js.map +0 -1
  506. package/dist/esm/types/webgl.js +0 -2
  507. package/dist/esm/types/webgl.js.map +0 -1
  508. package/dist/esm/types.js +0 -2
  509. package/dist/esm/types.js.map +0 -1
  510. package/dist/init.d.ts +0 -2
  511. package/dist/init.d.ts.map +0 -1
  512. package/dist/init.js +0 -4
  513. package/dist/init.js.map +0 -1
  514. package/dist/types/webgl.d.ts +0 -144
  515. package/dist/types/webgl.d.ts.map +0 -1
  516. package/dist/types/webgl.js +0 -2
  517. package/dist/types/webgl.js.map +0 -1
  518. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  519. package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
  520. package/src/bundle.ts +0 -4
  521. package/src/context/context/context-state.ts +0 -41
  522. package/src/context/context/create-context.ts +0 -110
  523. package/src/context/context/device-pixels.ts +0 -152
  524. package/src/init.ts +0 -4
  525. package/src/types/webgl.ts +0 -283
@@ -1,13 +1,16 @@
1
- import type {Device, BufferProps, TypedArray} from '@luma.gl/api';
2
- import {Buffer, log, assert, checkProps} from '@luma.gl/api';
3
- import GL from '@luma.gl/constants';
1
+ // luma.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
3
+
4
+ import type {Device, BufferProps, TypedArray} from '@luma.gl/core';
5
+ import {assert, checkProps} from '@luma.gl/core';
6
+ import {GL} from '@luma.gl/constants';
4
7
  import {assertWebGL2Context} from '../context/context/webgl-checks';
5
8
  import {AccessorObject} from '../types';
6
- import Accessor from './accessor';
9
+ import {Accessor} from './accessor';
7
10
  import {getGLTypeFromTypedArray, getTypedArrayFromGLType} from './typed-array-utils';
8
11
 
9
- import WebGLDevice from '../adapter/webgl-device';
10
- import WEBGLBuffer from '../adapter/resources/webgl-buffer';
12
+ import {WebGLDevice} from '../adapter/webgl-device';
13
+ import {WEBGLBuffer} from '../adapter/resources/webgl-buffer';
11
14
 
12
15
  const DEBUG_DATA_LENGTH = 10;
13
16
 
@@ -40,7 +43,7 @@ const PROP_CHECKS_SET_PROPS = {
40
43
  removedProps: DEPRECATED_PROPS
41
44
  };
42
45
 
43
- function getWEBGLBufferProps(props: ClassicBufferProps | ArrayBufferView | number): BufferProps {
46
+ function getWEBGLBufferProps(props: BufferWithAccessorProps | ArrayBufferView | number): BufferProps {
44
47
  // Signature `new Buffer(gl, new Float32Array(...)`
45
48
  if (ArrayBuffer.isView(props)) {
46
49
  return {data: props};
@@ -48,42 +51,40 @@ function getWEBGLBufferProps(props: ClassicBufferProps | ArrayBufferView | numbe
48
51
 
49
52
  // Signature: `new Buffer(gl, 100)`
50
53
  else if (typeof props === 'number') {
51
- return {byteLength: props as number};
54
+ return {byteLength: props };
52
55
  }
53
56
 
54
57
  props = checkProps('Buffer', props, PROP_CHECKS_INITIALIZE);
55
- const bufferProps = {...props as ClassicBufferProps};
56
- if (bufferProps.offset) {
57
- bufferProps.byteOffset = bufferProps.offset;
58
- }
58
+ const bufferProps = {...props };
59
+ // if (bufferProps.offset) {
60
+ // bufferProps.byteOffset = bufferProps.offset;
61
+ // }
59
62
  return bufferProps;
60
63
  }
61
64
 
62
65
  /** WebGL Buffer interface */
63
- export type ClassicBufferProps = BufferProps & {
66
+ export type BufferWithAccessorProps = BufferProps & {
64
67
  handle?: WebGLBuffer;
65
68
 
66
- target?: number;
67
- webglUsage?: number;
68
-
69
69
  accessor?: AccessorObject;
70
70
 
71
- /** @deprecated */
72
- index?: number;
73
- /** @deprecated */
74
- offset?: number;
75
- /** @deprecated */
76
- size?: number;
77
- /** @deprecated */
78
- type?: number
71
+ // target?: number;
72
+ // glUsage?: number;
73
+ // /** @deprecated */
74
+ // index?: number;
75
+ // /** @deprecated */
76
+ // offset?: number;
77
+ // /** @deprecated */
78
+ // size?: number;
79
+ // /** @deprecated */
80
+ // type?: number
79
81
  }
80
82
 
81
83
  /** WebGL Buffer interface */
82
- export default class ClassicBuffer extends WEBGLBuffer {
83
- usage: number;
84
+ export class BufferWithAccessor extends WEBGLBuffer {
84
85
  accessor: Accessor;
85
86
 
86
- constructor(device: Device | WebGLRenderingContext, props?: ClassicBufferProps);
87
+ constructor(device: Device | WebGLRenderingContext, props?: BufferWithAccessorProps);
87
88
  constructor(device: Device | WebGLRenderingContext, data: ArrayBufferView | number[]);
88
89
  constructor(device: Device | WebGLRenderingContext, byteLength: number);
89
90
 
@@ -94,7 +95,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
94
95
  // this.initialize(props);
95
96
 
96
97
  // Deprecated: Merge main props and accessor
97
- this.setAccessor(Object.assign({}, props, (props as ClassicBufferProps).accessor));
98
+ this.setAccessor(Object.assign({}, props, (props as BufferWithAccessorProps).accessor));
98
99
 
99
100
  // infer GL type from supplied typed array
100
101
  if (this.props.data) {
@@ -106,19 +107,10 @@ export default class ClassicBuffer extends WEBGLBuffer {
106
107
  Object.seal(this);
107
108
  }
108
109
 
109
- destroy(): void {
110
- if (this.handle) {
111
- this.removeStats();
112
- this.trackDeallocatedMemory();
113
- this.gl.deleteBuffer(this.handle);
114
- // @ts-expect-error
115
- this.handle = null;
116
- }
117
- }
110
+ // override write(data: TypedArray, byteOffset: number = 0): void {
111
+ // this.subData({data, offset: byteOffset});
112
+ // }
118
113
 
119
- write(data: TypedArray, byteOffset?: number): void {
120
- this.subData({data, offset: byteOffset});
121
- }
122
114
  // returns number of elements in the buffer (assuming that the full buffer is used)
123
115
  getElementCount(accessor: AccessorObject = this.accessor): number {
124
116
  return Math.round(this.byteLength / Accessor.getBytesPerElement(accessor));
@@ -133,7 +125,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
133
125
  // Signature: `new Buffer(gl, {data: new Float32Array(...)})`
134
126
  // Signature: `new Buffer(gl, new Float32Array(...))`
135
127
  // Signature: `new Buffer(gl, 100)`
136
- initialize(props: ClassicBufferProps = {}): this {
128
+ initialize(props: BufferWithAccessorProps = {}): this {
137
129
  // Signature `new Buffer(gl, new Float32Array(...)`
138
130
  if (ArrayBuffer.isView(props)) {
139
131
  props = {data: props};
@@ -148,7 +140,8 @@ export default class ClassicBuffer extends WEBGLBuffer {
148
140
  props = checkProps('Buffer', props, PROP_CHECKS_INITIALIZE);
149
141
 
150
142
  // Initialize member fields
151
- this.webglUsage = props.webglUsage || GL.STATIC_DRAW;
143
+ // @ts-expect-error readonly field
144
+ this.glUsage = props.glUsage || GL.STATIC_DRAW;
152
145
  this.debugData = null;
153
146
 
154
147
  // Deprecated: Merge main props and accessor
@@ -156,7 +149,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
156
149
 
157
150
  // Set data: (re)initializes the buffer
158
151
  if (props.data) {
159
- this._setData(props.data, props.offset, props.byteLength);
152
+ this._setData(props.data, props.byteOffset, props.byteLength);
160
153
  } else {
161
154
  this._setByteLength(props.byteLength || 0);
162
155
  }
@@ -164,7 +157,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
164
157
  return this;
165
158
  }
166
159
 
167
- setProps(props: ClassicBufferProps): this {
160
+ setProps(props: BufferWithAccessorProps): this {
168
161
  props = checkProps('Buffer', props, PROP_CHECKS_SET_PROPS);
169
162
 
170
163
  if ('accessor' in props) {
@@ -204,7 +197,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
204
197
  }
205
198
 
206
199
  // Update with new data. Reinitializes the buffer
207
- setData(props: ClassicBufferProps) {
200
+ setData(props: BufferWithAccessorProps) {
208
201
  return this.initialize(props);
209
202
  }
210
203
 
@@ -227,17 +220,17 @@ export default class ClassicBuffer extends WEBGLBuffer {
227
220
  // Create the buffer - binding it here for the first time locks the type
228
221
  // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type
229
222
  // @ts-expect-error
230
- const target = this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.target;
231
- this.gl.bindBuffer(target, this.handle);
223
+ const glTarget = this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.glTarget;
224
+ this.gl.bindBuffer(glTarget, this.handle);
232
225
  // WebGL2: subData supports additional srcOffset and length parameters
233
226
  if (srcOffset !== 0 || byteLength !== undefined) {
234
227
  assertWebGL2Context(this.gl);
235
228
  // @ts-expect-error
236
- this.gl.bufferSubData(this.target, offset, data, srcOffset, byteLength);
229
+ this.gl.bufferSubData(this.glTarget, offset, data, srcOffset, byteLength);
237
230
  } else {
238
- this.gl.bufferSubData(target, offset, data);
231
+ this.gl.bufferSubData(glTarget, offset, data);
239
232
  }
240
- this.gl.bindBuffer(target, null);
233
+ this.gl.bindBuffer(glTarget, null);
241
234
 
242
235
  // TODO - update local `data` if offsets are right
243
236
  this.debugData = null;
@@ -264,7 +257,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
264
257
  // Use GL.COPY_READ_BUFFER+GL.COPY_WRITE_BUFFER avoid disturbing other targets and locking type
265
258
  gl.bindBuffer(GL.COPY_READ_BUFFER, sourceBuffer.handle);
266
259
  gl.bindBuffer(GL.COPY_WRITE_BUFFER, this.handle);
267
- gl2.copyBufferSubData(GL.COPY_READ_BUFFER, GL.COPY_WRITE_BUFFER, readOffset, writeOffset, size);
260
+ gl2?.copyBufferSubData(GL.COPY_READ_BUFFER, GL.COPY_WRITE_BUFFER, readOffset, writeOffset, size);
268
261
  gl.bindBuffer(GL.COPY_READ_BUFFER, null);
269
262
  gl.bindBuffer(GL.COPY_WRITE_BUFFER, null);
270
263
 
@@ -278,7 +271,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
278
271
  * Reads data from buffer into an ArrayBufferView or SharedArrayBuffer.
279
272
  * @note WEBGL2 ONLY
280
273
  */
281
- getData(options?: {
274
+ override getData(options?: {
282
275
  dstData?: any;
283
276
  srcByteOffset?: number;
284
277
  dstOffset?: number;
@@ -314,7 +307,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
314
307
 
315
308
  // Use GL.COPY_READ_BUFFER to avoid disturbing other targets and locking type
316
309
  this.gl.bindBuffer(GL.COPY_READ_BUFFER, this.handle);
317
- this.gl2.getBufferSubData(GL.COPY_READ_BUFFER, srcByteOffset, dstData, dstOffset, length);
310
+ this.gl2?.getBufferSubData(GL.COPY_READ_BUFFER, srcByteOffset, dstData, dstOffset, length);
318
311
  this.gl.bindBuffer(GL.COPY_READ_BUFFER, null);
319
312
 
320
313
  // TODO - update local `data` if offsets are 0
@@ -328,9 +321,9 @@ export default class ClassicBuffer extends WEBGLBuffer {
328
321
  * - GL.UNIFORM_BUFFER: `offset` must be aligned to GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT.
329
322
  * - GL.UNIFORM_BUFFER: `size` must be a minimum of GL.UNIFORM_BLOCK_SIZE_DATA.
330
323
  */
331
- bind(options?: {target?: number; index?: any; offset?: number; size: any}): this {
324
+ bind(options?: {glTarget?: number; index?: any; offset?: number; size?: any}): this {
332
325
  const {
333
- target = this.target, // target for the bind operation
326
+ glTarget = this.glTarget, // target for the bind operation
334
327
  index = this.accessor && this.accessor.index, // index = index of target (indexed bind point)
335
328
  offset = 0,
336
329
  size
@@ -338,27 +331,27 @@ export default class ClassicBuffer extends WEBGLBuffer {
338
331
  // NOTE: While GL.TRANSFORM_FEEDBACK_BUFFER and GL.UNIFORM_BUFFER could
339
332
  // be used as direct binding points, they will not affect transform feedback or
340
333
  // uniform buffer state. Instead indexed bindings need to be made.
341
- if (target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER) {
334
+ if (glTarget === GL.UNIFORM_BUFFER || glTarget === GL.TRANSFORM_FEEDBACK_BUFFER) {
342
335
  if (size !== undefined) {
343
- this.gl2.bindBufferRange(target, index, this.handle, offset, size);
336
+ this.gl2?.bindBufferRange(glTarget, index, this.handle, offset, size);
344
337
  } else {
345
338
  assert(offset === 0); // Make sure offset wasn't supplied
346
- this.gl2.bindBufferBase(target, index, this.handle);
339
+ this.gl2?.bindBufferBase(glTarget, index, this.handle);
347
340
  }
348
341
  } else {
349
- this.gl.bindBuffer(target, this.handle);
342
+ this.gl.bindBuffer(glTarget, this.handle);
350
343
  }
351
344
 
352
345
  return this;
353
346
  }
354
347
 
355
- unbind(options?: {target?: any; index?: any}): this {
356
- const {target = this.target, index = this.accessor && this.accessor.index} = options || {};
357
- const isIndexedBuffer = target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER;
348
+ unbind(options?: {glTarget?: any; index?: any}): this {
349
+ const {glTarget = this.glTarget, index = this.accessor && this.accessor.index} = options || {};
350
+ const isIndexedBuffer = glTarget === GL.UNIFORM_BUFFER || glTarget === GL.TRANSFORM_FEEDBACK_BUFFER;
358
351
  if (isIndexedBuffer) {
359
- this.gl2.bindBufferBase(target, index, null);
352
+ this.gl2?.bindBufferBase(glTarget, index, null);
360
353
  } else {
361
- this.gl.bindBuffer(target, null);
354
+ this.gl.bindBuffer(glTarget, null);
362
355
  }
363
356
  return this;
364
357
  }
@@ -369,7 +362,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
369
362
  getDebugData(): {
370
363
  data: any;
371
364
  changed: boolean;
372
- } {
365
+ } {
373
366
  if (!this.debugData) {
374
367
  this.debugData = this.getData({length: Math.min(DEBUG_DATA_LENGTH, this.byteLength)});
375
368
  return {data: this.debugData, changed: true};
@@ -391,7 +384,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
391
384
 
392
385
  const target = this._getTarget();
393
386
  this.gl.bindBuffer(target, this.handle);
394
- this.gl.bufferData(target, byteLength, this.webglUsage);
387
+ this.gl.bufferData(target, byteLength, this.glUsage);
395
388
  this.gl.bufferSubData(target, offset, data);
396
389
  this.gl.bindBuffer(target, null);
397
390
 
@@ -408,7 +401,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
408
401
  }
409
402
 
410
403
  // Allocate a GPU buffer of specified size.
411
- _setByteLength(byteLength: number, webglUsage = this.webglUsage): this {
404
+ _setByteLength(byteLength: number): this {
412
405
  assert(byteLength >= 0);
413
406
 
414
407
  this.trackDeallocatedMemory();
@@ -421,12 +414,11 @@ export default class ClassicBuffer extends WEBGLBuffer {
421
414
  data = new Float32Array(0);
422
415
  }
423
416
 
424
- const target = this._getTarget();
425
- this.gl.bindBuffer(target, this.handle);
426
- this.gl.bufferData(target, data, webglUsage);
427
- this.gl.bindBuffer(target, null);
417
+ const glTarget = this._getTarget();
418
+ this.gl.bindBuffer(glTarget, this.handle);
419
+ this.gl.bufferData(glTarget, data, this.glUsage);
420
+ this.gl.bindBuffer(glTarget, null);
428
421
 
429
- this.webglUsage = webglUsage;
430
422
  this.debugData = null;
431
423
  this.bytesUsed = byteLength;
432
424
  this.byteLength = byteLength;
@@ -440,7 +432,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
440
432
  // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type
441
433
  _getTarget() {
442
434
  // @ts-expect-error
443
- return this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.target;
435
+ return this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.glTarget;
444
436
  }
445
437
 
446
438
  _getAvailableElementCount(srcByteOffset: number) {
@@ -460,9 +452,9 @@ export default class ClassicBuffer extends WEBGLBuffer {
460
452
  // RESOURCE METHODS
461
453
 
462
454
  getParameter(pname: GL): any {
463
- this.gl.bindBuffer(this.target, this.handle);
464
- const value = this.gl.getBufferParameter(this.target, pname);
465
- this.gl.bindBuffer(this.target, null);
455
+ this.gl.bindBuffer(this.glTarget, this.handle);
456
+ const value = this.gl.getBufferParameter(this.glTarget, pname);
457
+ this.gl.bindBuffer(this.glTarget, null);
466
458
  return value;
467
459
  }
468
460
 
@@ -0,0 +1,113 @@
1
+ // luma.gl, MIT license
2
+ // Copyright (c) vis.gl contributors
3
+
4
+ import {Device, Framebuffer, assert} from '@luma.gl/core';
5
+ import {WebGLDevice} from '../adapter/webgl-device';
6
+ import {withGLParameters} from '../context/state-tracker/with-parameters';
7
+
8
+ // Should collapse during minification
9
+ const GL_DEPTH_BUFFER_BIT = 0x00000100;
10
+ const GL_STENCIL_BUFFER_BIT = 0x00000400;
11
+ const GL_COLOR_BUFFER_BIT = 0x00004000;
12
+
13
+ const GL_COLOR = 0x1800;
14
+ const GL_DEPTH = 0x1801;
15
+ const GL_STENCIL = 0x1802;
16
+ const GL_DEPTH_STENCIL = 0x84f9;
17
+
18
+ // Should disappear if asserts are removed
19
+ const ERR_ARGUMENTS = 'clear: bad arguments';
20
+
21
+ /**
22
+ * Optionally clears depth, color and stencil buffers
23
+ * @deprecated Set clear color when creating a RenderPass.
24
+ */
25
+ export function clear(
26
+ gl: Device | WebGLRenderingContext,
27
+ options?: {framebuffer?: Framebuffer; color?: any; depth?: any; stencil?: any}
28
+ ): void {
29
+ const device = WebGLDevice.attach(gl);
30
+ const {framebuffer = null, color = null, depth = null, stencil = null} = options || {};
31
+ const parameters: any = {};
32
+
33
+ if (framebuffer) {
34
+ parameters.framebuffer = framebuffer;
35
+ }
36
+
37
+ let clearFlags = 0;
38
+
39
+ if (color) {
40
+ clearFlags |= GL_COLOR_BUFFER_BIT;
41
+ if (color !== true) {
42
+ parameters.clearColor = color;
43
+ }
44
+ }
45
+
46
+ if (depth) {
47
+ clearFlags |= GL_DEPTH_BUFFER_BIT;
48
+ if (depth !== true) {
49
+ parameters.clearDepth = depth;
50
+ }
51
+ }
52
+
53
+ if (stencil) {
54
+ clearFlags |= GL_STENCIL_BUFFER_BIT;
55
+ if (depth !== true) {
56
+ parameters.clearStencil = depth;
57
+ }
58
+ }
59
+
60
+ assert(clearFlags !== 0, ERR_ARGUMENTS);
61
+
62
+ // Temporarily set any clear "colors" and call clear
63
+ withGLParameters(device.gl, parameters, () => {
64
+ device.gl.clear(clearFlags);
65
+ });
66
+ }
67
+
68
+ /**
69
+ * WebGL2 - clear a specific drawing buffer
70
+ * @deprecated Set clear color when creating a RenderPass
71
+ */
72
+ export function clearBuffer(
73
+ gl: Device | WebGLRenderingContext,
74
+ options?: {framebuffer?: Framebuffer; buffer?: any; drawBuffer?: any; value?: any}
75
+ ) {
76
+ const device = WebGLDevice.attach(gl);
77
+
78
+ const {framebuffer = null, buffer = GL_COLOR, drawBuffer = 0, value = [0, 0, 0, 0]} = options || {};
79
+ withGLParameters(device.gl2, {framebuffer}, () => {
80
+ // Method selection per OpenGL ES 3 docs
81
+ switch (buffer) {
82
+ case GL_COLOR:
83
+ switch (value.constructor) {
84
+ case Int32Array:
85
+ device.gl2.clearBufferiv(buffer, drawBuffer, value);
86
+ break;
87
+ case Uint32Array:
88
+ device.gl2.clearBufferuiv(buffer, drawBuffer, value);
89
+ break;
90
+ case Float32Array:
91
+ default:
92
+ device.gl2.clearBufferfv(buffer, drawBuffer, value);
93
+ }
94
+ break;
95
+
96
+ case GL_DEPTH:
97
+ device.gl2.clearBufferfv(GL_DEPTH, 0, [value]);
98
+ break;
99
+
100
+ case GL_STENCIL:
101
+ device.gl2.clearBufferiv(GL_STENCIL, 0, [value]);
102
+ break;
103
+
104
+ case GL_DEPTH_STENCIL:
105
+ const [depth, stencil] = value;
106
+ device.gl2.clearBufferfi(GL_DEPTH_STENCIL, 0, depth, stencil);
107
+ break;
108
+
109
+ default:
110
+ assert(false, ERR_ARGUMENTS);
111
+ }
112
+ });
113
+ }