@luma.gl/webgl 9.0.0-alpha.3 → 9.0.0-alpha.30

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 (500) hide show
  1. package/LICENSE +2 -1
  2. package/dist/adapter/converters/device-parameters.d.ts +14 -4
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/device-parameters.js +28 -46
  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/texture-formats.d.ts +31 -42
  11. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  12. package/dist/adapter/converters/texture-formats.js +163 -178
  13. package/dist/adapter/converters/texture-formats.js.map +1 -1
  14. package/dist/adapter/converters/vertex-formats.d.ts +2 -2
  15. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  16. package/dist/adapter/converters/vertex-formats.js +3 -9
  17. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  18. package/dist/adapter/device-helpers/device-features.d.ts +1 -1
  19. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  20. package/dist/adapter/device-helpers/device-features.js +13 -20
  21. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  22. package/dist/adapter/device-helpers/device-limits.d.ts +3 -3
  23. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  24. package/dist/adapter/device-helpers/device-limits.js +2 -5
  25. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  26. package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
  27. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
  28. package/dist/adapter/device-helpers/get-device-info.js +9 -11
  29. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  30. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  31. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  32. package/dist/adapter/helpers/attribute-utils.d.ts +4 -4
  33. package/dist/adapter/helpers/attribute-utils.d.ts.map +1 -1
  34. package/dist/adapter/helpers/attribute-utils.js +1 -18
  35. package/dist/adapter/helpers/attribute-utils.js.map +1 -1
  36. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  37. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  38. package/dist/adapter/helpers/get-shader-info.js +25 -0
  39. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  40. package/dist/adapter/helpers/get-shader-layout.d.ts +10 -7
  41. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  42. package/dist/adapter/helpers/get-shader-layout.js +101 -84
  43. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  44. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  45. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  46. package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
  47. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  48. package/dist/adapter/helpers/set-uniform.d.ts +2 -2
  49. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  50. package/dist/adapter/helpers/set-uniform.js +3 -33
  51. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  52. package/dist/adapter/helpers/uniforms.d.ts +9 -10
  53. package/dist/adapter/helpers/uniforms.d.ts.map +1 -1
  54. package/dist/adapter/helpers/uniforms.js +8 -18
  55. package/dist/adapter/helpers/uniforms.js.map +1 -1
  56. package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
  57. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  58. package/dist/adapter/objects/constants-to-keys.js +1 -28
  59. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  60. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  61. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  62. package/dist/adapter/objects/webgl-renderbuffer.js +35 -41
  63. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  64. package/dist/adapter/objects/webgl-resource.d.ts +6 -9
  65. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  66. package/dist/adapter/objects/webgl-resource.js +19 -75
  67. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  68. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +38 -11
  69. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  70. package/dist/adapter/objects/webgl-vertex-array-object.js +122 -32
  71. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  72. package/dist/adapter/resources/webgl-buffer.d.ts +18 -10
  73. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  74. package/dist/adapter/resources/webgl-buffer.js +43 -71
  75. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  76. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  77. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  78. package/dist/adapter/resources/webgl-command-buffer.js +169 -41
  79. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  80. package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
  81. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  82. package/dist/adapter/resources/webgl-command-encoder.js +8 -17
  83. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  84. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  85. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -24
  86. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  87. package/dist/adapter/resources/webgl-framebuffer.js +41 -149
  88. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  89. package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
  90. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  91. package/dist/adapter/resources/webgl-render-pass.js +88 -9
  92. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  93. package/dist/adapter/resources/webgl-render-pipeline.d.ts +44 -11
  94. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  95. package/dist/adapter/resources/webgl-render-pipeline.js +90 -152
  96. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  97. package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
  98. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  99. package/dist/adapter/resources/webgl-sampler.js +7 -15
  100. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  101. package/dist/adapter/resources/webgl-shader.d.ts +3 -4
  102. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  103. package/dist/adapter/resources/webgl-shader.js +9 -22
  104. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  105. package/dist/adapter/resources/webgl-texture.d.ts +64 -44
  106. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  107. package/dist/adapter/resources/webgl-texture.js +98 -213
  108. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  109. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  110. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  111. package/dist/adapter/webgl-canvas-context.js +8 -20
  112. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  113. package/dist/adapter/webgl-device.d.ts +64 -41
  114. package/dist/adapter/webgl-device.d.ts.map +1 -1
  115. package/dist/adapter/webgl-device.js +133 -113
  116. package/dist/adapter/webgl-device.js.map +1 -1
  117. package/dist/classic/accessor.d.ts +3 -3
  118. package/dist/classic/accessor.d.ts.map +1 -1
  119. package/dist/classic/accessor.js +14 -38
  120. package/dist/classic/accessor.js.map +1 -1
  121. package/dist/classic/{buffer.d.ts → buffer-with-accessor.d.ts} +16 -28
  122. package/dist/classic/buffer-with-accessor.d.ts.map +1 -0
  123. package/dist/classic/{buffer.js → buffer-with-accessor.js} +54 -122
  124. package/dist/classic/buffer-with-accessor.js.map +1 -0
  125. package/dist/classic/clear.d.ts +22 -0
  126. package/dist/classic/clear.d.ts.map +1 -0
  127. package/dist/classic/clear.js +88 -0
  128. package/dist/classic/clear.js.map +1 -0
  129. package/dist/classic/copy-and-blit.d.ts +62 -0
  130. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  131. package/dist/classic/copy-and-blit.js +202 -0
  132. package/dist/classic/copy-and-blit.js.map +1 -0
  133. package/dist/classic/format-utils.d.ts +3 -0
  134. package/dist/classic/format-utils.d.ts.map +1 -0
  135. package/dist/classic/format-utils.js +38 -0
  136. package/dist/classic/format-utils.js.map +1 -0
  137. package/dist/classic/typed-array-utils.d.ts +15 -17
  138. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  139. package/dist/classic/typed-array-utils.js +1 -21
  140. package/dist/classic/typed-array-utils.js.map +1 -1
  141. package/dist/context/context/create-browser-context.d.ts +40 -0
  142. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  143. package/dist/{esm/context/context/create-context.js → context/context/create-browser-context.js} +23 -19
  144. package/dist/context/context/create-browser-context.js.map +1 -0
  145. package/dist/context/context/create-headless-context.d.ts +9 -0
  146. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  147. package/dist/context/context/create-headless-context.js +42 -0
  148. package/dist/context/context/create-headless-context.js.map +1 -0
  149. package/dist/context/context/webgl-checks.js +1 -4
  150. package/dist/context/context/webgl-checks.js.map +1 -1
  151. package/dist/context/debug/spector.d.ts +1 -2
  152. package/dist/context/debug/spector.d.ts.map +1 -1
  153. package/dist/context/debug/spector.js +8 -20
  154. package/dist/context/debug/spector.js.map +1 -1
  155. package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
  156. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  157. package/dist/context/debug/webgl-developer-tools.js +11 -34
  158. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  159. package/dist/context/parameters/unified-parameter-api.d.ts +8 -7
  160. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  161. package/dist/context/parameters/unified-parameter-api.js +8 -18
  162. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  163. package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
  164. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  165. package/dist/context/parameters/webgl-parameter-tables.js +18 -36
  166. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  167. package/dist/context/polyfill/context-data.d.ts +13 -0
  168. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  169. package/dist/context/polyfill/context-data.js +12 -0
  170. package/dist/context/polyfill/context-data.js.map +1 -0
  171. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  172. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  173. package/dist/context/polyfill/get-parameter-polyfill.js +4 -9
  174. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  175. package/dist/context/polyfill/polyfill-context.js +21 -29
  176. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  177. package/dist/context/polyfill/polyfill-table.d.ts +8 -8
  178. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  179. package/dist/context/polyfill/polyfill-table.js +10 -32
  180. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  181. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  182. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
  183. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  184. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  185. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  186. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  187. package/dist/context/state-tracker/track-context-state.js +16 -51
  188. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  189. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  190. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  191. package/dist/context/state-tracker/with-parameters.js +7 -9
  192. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  193. package/dist/dist.dev.js +10158 -0
  194. package/dist/index.cjs +6604 -0
  195. package/dist/index.d.ts +25 -22
  196. package/dist/index.d.ts.map +1 -1
  197. package/dist/index.js +27 -26
  198. package/dist/index.js.map +1 -1
  199. package/dist/types.d.ts +1 -1
  200. package/dist/types.d.ts.map +1 -1
  201. package/dist/types.js.map +1 -1
  202. package/dist.min.js +37 -0
  203. package/package.json +21 -9
  204. package/src/adapter/converters/device-parameters.ts +88 -35
  205. package/src/adapter/converters/sampler-parameters.ts +19 -9
  206. package/src/adapter/converters/texture-formats.ts +261 -178
  207. package/src/adapter/converters/vertex-formats.ts +3 -2
  208. package/src/adapter/device-helpers/device-features.ts +10 -3
  209. package/src/adapter/device-helpers/device-limits.ts +3 -3
  210. package/src/adapter/device-helpers/get-device-info.ts +14 -10
  211. package/src/adapter/helpers/attribute-utils.ts +4 -5
  212. package/src/adapter/helpers/get-shader-info.ts +40 -0
  213. package/src/adapter/helpers/get-shader-layout.ts +150 -68
  214. package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
  215. package/src/adapter/helpers/set-uniform.ts +7 -6
  216. package/src/adapter/helpers/uniforms.ts +23 -13
  217. package/src/adapter/objects/constants-to-keys.ts +3 -25
  218. package/src/adapter/objects/webgl-renderbuffer.ts +40 -37
  219. package/src/adapter/objects/webgl-resource.ts +14 -23
  220. package/src/adapter/objects/webgl-vertex-array-object.ts +201 -37
  221. package/src/adapter/resources/webgl-buffer.ts +56 -58
  222. package/src/adapter/resources/webgl-command-buffer.ts +332 -25
  223. package/src/adapter/resources/webgl-command-encoder.ts +16 -11
  224. package/src/adapter/resources/webgl-external-texture.ts +2 -2
  225. package/src/adapter/resources/webgl-framebuffer.ts +88 -133
  226. package/src/adapter/resources/webgl-render-pass.ts +155 -4
  227. package/src/adapter/resources/webgl-render-pipeline.ts +161 -104
  228. package/src/adapter/resources/webgl-sampler.ts +13 -8
  229. package/src/adapter/resources/webgl-shader.ts +11 -10
  230. package/src/adapter/resources/webgl-texture.ts +113 -85
  231. package/src/adapter/webgl-canvas-context.ts +14 -14
  232. package/src/adapter/webgl-device.ts +192 -77
  233. package/src/classic/accessor.ts +4 -17
  234. package/src/classic/{buffer.ts → buffer-with-accessor.ts} +67 -75
  235. package/src/classic/clear.ts +110 -0
  236. package/src/classic/copy-and-blit.ts +308 -0
  237. package/src/classic/format-utils.ts +43 -0
  238. package/src/classic/typed-array-utils.ts +18 -27
  239. package/src/context/context/{create-context.ts → create-browser-context.ts} +48 -31
  240. package/src/context/context/create-headless-context.ts +48 -0
  241. package/src/context/context/webgl-checks.ts +1 -1
  242. package/src/context/debug/spector.ts +7 -6
  243. package/src/context/debug/webgl-developer-tools.ts +21 -15
  244. package/src/context/parameters/unified-parameter-api.ts +20 -14
  245. package/src/context/parameters/webgl-parameter-tables.ts +117 -98
  246. package/src/context/polyfill/context-data.ts +27 -0
  247. package/src/context/polyfill/get-parameter-polyfill.ts +8 -7
  248. package/src/context/polyfill/polyfill-context.ts +7 -9
  249. package/src/context/polyfill/polyfill-table.ts +18 -16
  250. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  251. package/src/context/state-tracker/track-context-state.ts +14 -13
  252. package/src/context/state-tracker/with-parameters.ts +8 -2
  253. package/src/index.ts +42 -33
  254. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  255. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  256. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  257. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  258. package/dist/bundle.d.ts +0 -2
  259. package/dist/bundle.d.ts.map +0 -1
  260. package/dist/bundle.js +0 -5
  261. package/dist/bundle.js.map +0 -1
  262. package/dist/classic/buffer.d.ts.map +0 -1
  263. package/dist/classic/buffer.js.map +0 -1
  264. package/dist/context/context/context-state.d.ts +0 -18
  265. package/dist/context/context/context-state.d.ts.map +0 -1
  266. package/dist/context/context/context-state.js +0 -26
  267. package/dist/context/context/context-state.js.map +0 -1
  268. package/dist/context/context/create-context.d.ts +0 -41
  269. package/dist/context/context/create-context.d.ts.map +0 -1
  270. package/dist/context/context/create-context.js +0 -49
  271. package/dist/context/context/create-context.js.map +0 -1
  272. package/dist/context/context/device-pixels.d.ts +0 -25
  273. package/dist/context/context/device-pixels.d.ts.map +0 -1
  274. package/dist/context/context/device-pixels.js +0 -98
  275. package/dist/context/context/device-pixels.js.map +0 -1
  276. package/dist/es5/adapter/converters/device-parameters.js +0 -170
  277. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  278. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  279. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  280. package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
  281. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  282. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  283. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  284. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  285. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  286. package/dist/es5/adapter/device-helpers/device-features.js +0 -144
  287. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  288. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  289. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  290. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  291. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  292. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  293. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  294. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  295. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  296. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
  297. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  298. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  299. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  300. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  301. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  302. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  303. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  304. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  305. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  306. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  307. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  308. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  309. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  310. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  311. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  312. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  313. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  314. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  315. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  316. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  317. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  318. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  319. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  320. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
  321. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  322. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
  323. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  324. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
  325. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  326. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  327. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  328. package/dist/es5/adapter/resources/webgl-shader.js +0 -149
  329. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  330. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  331. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  332. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  333. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  334. package/dist/es5/adapter/webgl-device.js +0 -399
  335. package/dist/es5/adapter/webgl-device.js.map +0 -1
  336. package/dist/es5/bundle.js +0 -7
  337. package/dist/es5/bundle.js.map +0 -1
  338. package/dist/es5/classic/accessor.js +0 -181
  339. package/dist/es5/classic/accessor.js.map +0 -1
  340. package/dist/es5/classic/buffer.js +0 -470
  341. package/dist/es5/classic/buffer.js.map +0 -1
  342. package/dist/es5/classic/typed-array-utils.js +0 -126
  343. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  344. package/dist/es5/context/context/context-state.js +0 -31
  345. package/dist/es5/context/context/context-state.js.map +0 -1
  346. package/dist/es5/context/context/create-context.js +0 -69
  347. package/dist/es5/context/context/create-context.js.map +0 -1
  348. package/dist/es5/context/context/device-pixels.js +0 -115
  349. package/dist/es5/context/context/device-pixels.js.map +0 -1
  350. package/dist/es5/context/context/webgl-checks.js +0 -54
  351. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  352. package/dist/es5/context/debug/spector.js +0 -133
  353. package/dist/es5/context/debug/spector.js.map +0 -1
  354. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  355. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  356. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  357. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  358. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  359. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  360. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  361. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  362. package/dist/es5/context/polyfill/polyfill-context.js +0 -135
  363. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  364. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  365. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  366. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  367. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  368. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  369. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  370. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  371. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  372. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  373. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  374. package/dist/es5/index.js +0 -276
  375. package/dist/es5/index.js.map +0 -1
  376. package/dist/es5/init.js +0 -10
  377. package/dist/es5/init.js.map +0 -1
  378. package/dist/es5/types/webgl.js +0 -6
  379. package/dist/es5/types/webgl.js.map +0 -1
  380. package/dist/es5/types.js +0 -2
  381. package/dist/es5/types.js.map +0 -1
  382. package/dist/esm/adapter/converters/device-parameters.js +0 -155
  383. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  384. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  385. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  386. package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
  387. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  388. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  389. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  390. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  391. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  392. package/dist/esm/adapter/device-helpers/device-features.js +0 -102
  393. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  394. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  395. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  396. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  397. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  398. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  399. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  400. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  401. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  402. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
  403. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  404. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  405. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  406. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  407. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  408. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  409. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  410. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  411. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  412. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  413. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  414. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  415. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  416. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  417. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  418. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  419. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  420. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  421. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  422. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  423. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  424. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  425. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  426. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
  427. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  428. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
  429. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  430. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  431. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  432. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  433. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  434. package/dist/esm/adapter/resources/webgl-shader.js +0 -75
  435. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  436. package/dist/esm/adapter/resources/webgl-texture.js +0 -831
  437. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  438. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  439. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  440. package/dist/esm/adapter/webgl-device.js +0 -280
  441. package/dist/esm/adapter/webgl-device.js.map +0 -1
  442. package/dist/esm/bundle.js +0 -5
  443. package/dist/esm/bundle.js.map +0 -1
  444. package/dist/esm/classic/accessor.js +0 -144
  445. package/dist/esm/classic/accessor.js.map +0 -1
  446. package/dist/esm/classic/buffer.js +0 -384
  447. package/dist/esm/classic/buffer.js.map +0 -1
  448. package/dist/esm/classic/typed-array-utils.js +0 -112
  449. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  450. package/dist/esm/context/context/context-state.js +0 -26
  451. package/dist/esm/context/context/context-state.js.map +0 -1
  452. package/dist/esm/context/context/create-context.js.map +0 -1
  453. package/dist/esm/context/context/device-pixels.js +0 -98
  454. package/dist/esm/context/context/device-pixels.js.map +0 -1
  455. package/dist/esm/context/context/webgl-checks.js +0 -34
  456. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  457. package/dist/esm/context/debug/spector.js +0 -76
  458. package/dist/esm/context/debug/spector.js.map +0 -1
  459. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  460. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  461. package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
  462. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  463. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  464. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  465. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  466. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  467. package/dist/esm/context/polyfill/polyfill-context.js +0 -92
  468. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  469. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  470. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  471. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  472. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  473. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  474. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  475. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  476. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  477. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  478. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  479. package/dist/esm/index.js +0 -27
  480. package/dist/esm/index.js.map +0 -1
  481. package/dist/esm/init.js +0 -4
  482. package/dist/esm/init.js.map +0 -1
  483. package/dist/esm/types/webgl.js +0 -2
  484. package/dist/esm/types/webgl.js.map +0 -1
  485. package/dist/esm/types.js +0 -2
  486. package/dist/esm/types.js.map +0 -1
  487. package/dist/init.d.ts +0 -2
  488. package/dist/init.d.ts.map +0 -1
  489. package/dist/init.js +0 -4
  490. package/dist/init.js.map +0 -1
  491. package/dist/types/webgl.d.ts +0 -144
  492. package/dist/types/webgl.d.ts.map +0 -1
  493. package/dist/types/webgl.js +0 -2
  494. package/dist/types/webgl.js.map +0 -1
  495. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  496. package/src/bundle.ts +0 -4
  497. package/src/context/context/context-state.ts +0 -41
  498. package/src/context/context/device-pixels.ts +0 -152
  499. package/src/init.ts +0 -4
  500. package/src/types/webgl.ts +0 -283
@@ -1,13 +1,15 @@
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
+
3
+ import type {Device, BufferProps, TypedArray} from '@luma.gl/core';
4
+ import {assert, checkProps} from '@luma.gl/core';
5
+ import {GL} from '@luma.gl/constants';
4
6
  import {assertWebGL2Context} from '../context/context/webgl-checks';
5
7
  import {AccessorObject} from '../types';
6
- import Accessor from './accessor';
8
+ import {Accessor} from './accessor';
7
9
  import {getGLTypeFromTypedArray, getTypedArrayFromGLType} from './typed-array-utils';
8
10
 
9
- import WebGLDevice from '../adapter/webgl-device';
10
- import WEBGLBuffer from '../adapter/resources/webgl-buffer';
11
+ import {WebGLDevice} from '../adapter/webgl-device';
12
+ import {WEBGLBuffer} from '../adapter/resources/webgl-buffer';
11
13
 
12
14
  const DEBUG_DATA_LENGTH = 10;
13
15
 
@@ -40,7 +42,7 @@ const PROP_CHECKS_SET_PROPS = {
40
42
  removedProps: DEPRECATED_PROPS
41
43
  };
42
44
 
43
- function getWEBGLBufferProps(props: ClassicBufferProps | ArrayBufferView | number): BufferProps {
45
+ function getWEBGLBufferProps(props: BufferWithAccessorProps | ArrayBufferView | number): BufferProps {
44
46
  // Signature `new Buffer(gl, new Float32Array(...)`
45
47
  if (ArrayBuffer.isView(props)) {
46
48
  return {data: props};
@@ -48,42 +50,41 @@ function getWEBGLBufferProps(props: ClassicBufferProps | ArrayBufferView | numbe
48
50
 
49
51
  // Signature: `new Buffer(gl, 100)`
50
52
  else if (typeof props === 'number') {
51
- return {byteLength: props as number};
53
+ return {byteLength: props };
52
54
  }
53
55
 
54
56
  props = checkProps('Buffer', props, PROP_CHECKS_INITIALIZE);
55
- const bufferProps = {...props as ClassicBufferProps};
56
- if (bufferProps.offset) {
57
- bufferProps.byteOffset = bufferProps.offset;
58
- }
57
+ const bufferProps = {...props };
58
+ // if (bufferProps.offset) {
59
+ // bufferProps.byteOffset = bufferProps.offset;
60
+ // }
59
61
  return bufferProps;
60
62
  }
61
63
 
62
64
  /** WebGL Buffer interface */
63
- export type ClassicBufferProps = BufferProps & {
65
+ export type BufferWithAccessorProps = BufferProps & {
64
66
  handle?: WebGLBuffer;
65
67
 
66
- target?: number;
67
- webglUsage?: number;
68
-
69
68
  accessor?: AccessorObject;
70
69
 
71
- /** @deprecated */
72
- index?: number;
73
- /** @deprecated */
74
- offset?: number;
75
- /** @deprecated */
76
- size?: number;
77
- /** @deprecated */
78
- type?: number
70
+ // target?: number;
71
+ // glUsage?: number;
72
+ // /** @deprecated */
73
+ // index?: number;
74
+ // /** @deprecated */
75
+ // offset?: number;
76
+ // /** @deprecated */
77
+ // size?: number;
78
+ // /** @deprecated */
79
+ // type?: number
79
80
  }
80
81
 
81
82
  /** WebGL Buffer interface */
82
- export default class ClassicBuffer extends WEBGLBuffer {
83
+ export class BufferWithAccessor extends WEBGLBuffer {
83
84
  usage: number;
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,110 @@
1
+ import {Device, Framebuffer, assert} from '@luma.gl/core';
2
+ import {WebGLDevice} from '../adapter/webgl-device';
3
+ import {withParameters} from '../context/state-tracker/with-parameters';
4
+
5
+ // Should collapse during minification
6
+ const GL_DEPTH_BUFFER_BIT = 0x00000100;
7
+ const GL_STENCIL_BUFFER_BIT = 0x00000400;
8
+ const GL_COLOR_BUFFER_BIT = 0x00004000;
9
+
10
+ const GL_COLOR = 0x1800;
11
+ const GL_DEPTH = 0x1801;
12
+ const GL_STENCIL = 0x1802;
13
+ const GL_DEPTH_STENCIL = 0x84f9;
14
+
15
+ // Should disappear if asserts are removed
16
+ const ERR_ARGUMENTS = 'clear: bad arguments';
17
+
18
+ /**
19
+ * Optionally clears depth, color and stencil buffers
20
+ * @deprecated Set clear color when creating a RenderPass.
21
+ */
22
+ export function clear(
23
+ gl: Device | WebGLRenderingContext,
24
+ options?: {framebuffer?: Framebuffer; color?: any; depth?: any; stencil?: any}
25
+ ): void {
26
+ const device = WebGLDevice.attach(gl);
27
+ const {framebuffer = null, color = null, depth = null, stencil = null} = options || {};
28
+ const parameters: any = {};
29
+
30
+ if (framebuffer) {
31
+ parameters.framebuffer = framebuffer;
32
+ }
33
+
34
+ let clearFlags = 0;
35
+
36
+ if (color) {
37
+ clearFlags |= GL_COLOR_BUFFER_BIT;
38
+ if (color !== true) {
39
+ parameters.clearColor = color;
40
+ }
41
+ }
42
+
43
+ if (depth) {
44
+ clearFlags |= GL_DEPTH_BUFFER_BIT;
45
+ if (depth !== true) {
46
+ parameters.clearDepth = depth;
47
+ }
48
+ }
49
+
50
+ if (stencil) {
51
+ clearFlags |= GL_STENCIL_BUFFER_BIT;
52
+ if (depth !== true) {
53
+ parameters.clearStencil = depth;
54
+ }
55
+ }
56
+
57
+ assert(clearFlags !== 0, ERR_ARGUMENTS);
58
+
59
+ // Temporarily set any clear "colors" and call clear
60
+ withParameters(device.gl, parameters, () => {
61
+ device.gl.clear(clearFlags);
62
+ });
63
+ }
64
+
65
+ /**
66
+ * WebGL2 - clear a specific drawing buffer
67
+ * @deprecated Set clear color when creating a RenderPass
68
+ */
69
+ export function clearBuffer(
70
+ gl: Device | WebGLRenderingContext,
71
+ options?: {framebuffer?: Framebuffer; buffer?: any; drawBuffer?: any; value?: any}
72
+ ) {
73
+ const device = WebGLDevice.attach(gl);
74
+
75
+ const {framebuffer = null, buffer = GL_COLOR, drawBuffer = 0, value = [0, 0, 0, 0]} = options || {};
76
+ withParameters(device.gl2, {framebuffer}, () => {
77
+ // Method selection per OpenGL ES 3 docs
78
+ switch (buffer) {
79
+ case GL_COLOR:
80
+ switch (value.constructor) {
81
+ case Int32Array:
82
+ device.gl2.clearBufferiv(buffer, drawBuffer, value);
83
+ break;
84
+ case Uint32Array:
85
+ device.gl2.clearBufferuiv(buffer, drawBuffer, value);
86
+ break;
87
+ case Float32Array:
88
+ default:
89
+ device.gl2.clearBufferfv(buffer, drawBuffer, value);
90
+ }
91
+ break;
92
+
93
+ case GL_DEPTH:
94
+ device.gl2.clearBufferfv(GL_DEPTH, 0, [value]);
95
+ break;
96
+
97
+ case GL_STENCIL:
98
+ device.gl2.clearBufferiv(GL_STENCIL, 0, [value]);
99
+ break;
100
+
101
+ case GL_DEPTH_STENCIL:
102
+ const [depth, stencil] = value;
103
+ device.gl2.clearBufferfi(GL_DEPTH_STENCIL, 0, depth, stencil);
104
+ break;
105
+
106
+ default:
107
+ assert(false, ERR_ARGUMENTS);
108
+ }
109
+ });
110
+ }