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

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 (512) 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/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 +48 -16
  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 +13 -20
  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.js +2 -1
  35. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  36. package/dist/adapter/helpers/decode-webgl-types.d.ts +26 -0
  37. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -0
  38. package/dist/adapter/helpers/{uniforms.js → decode-webgl-types.js} +20 -29
  39. package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
  40. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  41. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  42. package/dist/adapter/helpers/get-shader-info.js +25 -0
  43. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  44. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -48
  45. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  46. package/dist/adapter/helpers/get-shader-layout.js +58 -113
  47. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  48. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  49. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  50. package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
  51. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  52. package/dist/adapter/helpers/set-uniform.d.ts +2 -2
  53. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  54. package/dist/adapter/helpers/set-uniform.js +3 -33
  55. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  56. package/dist/adapter/helpers/webgl-topology-utils.d.ts +11 -0
  57. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
  58. package/dist/adapter/helpers/{attribute-utils.js → webgl-topology-utils.js} +2 -19
  59. package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
  60. package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
  61. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  62. package/dist/adapter/objects/constants-to-keys.js +1 -28
  63. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  64. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  65. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  66. package/dist/adapter/objects/webgl-renderbuffer.js +35 -41
  67. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  68. package/dist/adapter/objects/webgl-resource.d.ts +6 -9
  69. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  70. package/dist/adapter/objects/webgl-resource.js +19 -75
  71. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  72. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +39 -11
  73. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  74. package/dist/adapter/objects/webgl-vertex-array-object.js +122 -32
  75. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  76. package/dist/adapter/resources/webgl-buffer.d.ts +18 -10
  77. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  78. package/dist/adapter/resources/webgl-buffer.js +43 -71
  79. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  80. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  81. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  82. package/dist/adapter/resources/webgl-command-buffer.js +169 -41
  83. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  84. package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
  85. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  86. package/dist/adapter/resources/webgl-command-encoder.js +9 -18
  87. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  88. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  89. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -24
  90. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  91. package/dist/adapter/resources/webgl-framebuffer.js +41 -149
  92. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  93. package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
  94. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  95. package/dist/adapter/resources/webgl-render-pass.js +88 -9
  96. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  97. package/dist/adapter/resources/webgl-render-pipeline.d.ts +52 -14
  98. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  99. package/dist/adapter/resources/webgl-render-pipeline.js +119 -182
  100. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  101. package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
  102. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  103. package/dist/adapter/resources/webgl-sampler.js +7 -15
  104. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  105. package/dist/adapter/resources/webgl-shader.d.ts +3 -4
  106. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  107. package/dist/adapter/resources/webgl-shader.js +9 -22
  108. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  109. package/dist/adapter/resources/webgl-texture.d.ts +64 -44
  110. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  111. package/dist/adapter/resources/webgl-texture.js +98 -213
  112. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  113. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  114. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  115. package/dist/adapter/webgl-canvas-context.js +8 -20
  116. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  117. package/dist/adapter/webgl-device.d.ts +64 -41
  118. package/dist/adapter/webgl-device.d.ts.map +1 -1
  119. package/dist/adapter/webgl-device.js +133 -113
  120. package/dist/adapter/webgl-device.js.map +1 -1
  121. package/dist/classic/accessor.d.ts +3 -3
  122. package/dist/classic/accessor.d.ts.map +1 -1
  123. package/dist/classic/accessor.js +14 -38
  124. package/dist/classic/accessor.js.map +1 -1
  125. package/dist/classic/{buffer.d.ts → buffer-with-accessor.d.ts} +16 -28
  126. package/dist/classic/buffer-with-accessor.d.ts.map +1 -0
  127. package/dist/classic/{buffer.js → buffer-with-accessor.js} +54 -122
  128. package/dist/classic/buffer-with-accessor.js.map +1 -0
  129. package/dist/classic/clear.d.ts +22 -0
  130. package/dist/classic/clear.d.ts.map +1 -0
  131. package/dist/classic/clear.js +88 -0
  132. package/dist/classic/clear.js.map +1 -0
  133. package/dist/classic/copy-and-blit.d.ts +62 -0
  134. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  135. package/dist/classic/copy-and-blit.js +202 -0
  136. package/dist/classic/copy-and-blit.js.map +1 -0
  137. package/dist/classic/format-utils.d.ts +3 -0
  138. package/dist/classic/format-utils.d.ts.map +1 -0
  139. package/dist/classic/format-utils.js +38 -0
  140. package/dist/classic/format-utils.js.map +1 -0
  141. package/dist/classic/typed-array-utils.d.ts +15 -17
  142. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  143. package/dist/classic/typed-array-utils.js +1 -21
  144. package/dist/classic/typed-array-utils.js.map +1 -1
  145. package/dist/context/context/create-browser-context.d.ts +40 -0
  146. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  147. package/dist/{esm/context/context/create-context.js → context/context/create-browser-context.js} +23 -19
  148. package/dist/context/context/create-browser-context.js.map +1 -0
  149. package/dist/context/context/create-headless-context.d.ts +9 -0
  150. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  151. package/dist/context/context/create-headless-context.js +42 -0
  152. package/dist/context/context/create-headless-context.js.map +1 -0
  153. package/dist/context/context/webgl-checks.js +1 -4
  154. package/dist/context/context/webgl-checks.js.map +1 -1
  155. package/dist/context/debug/spector.d.ts +1 -2
  156. package/dist/context/debug/spector.d.ts.map +1 -1
  157. package/dist/context/debug/spector.js +8 -20
  158. package/dist/context/debug/spector.js.map +1 -1
  159. package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
  160. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  161. package/dist/context/debug/webgl-developer-tools.js +11 -34
  162. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  163. package/dist/context/parameters/unified-parameter-api.d.ts +8 -7
  164. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  165. package/dist/context/parameters/unified-parameter-api.js +8 -18
  166. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  167. package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
  168. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  169. package/dist/context/parameters/webgl-parameter-tables.js +18 -36
  170. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  171. package/dist/context/polyfill/context-data.d.ts +13 -0
  172. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  173. package/dist/context/polyfill/context-data.js +12 -0
  174. package/dist/context/polyfill/context-data.js.map +1 -0
  175. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  176. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  177. package/dist/context/polyfill/get-parameter-polyfill.js +4 -9
  178. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  179. package/dist/context/polyfill/polyfill-context.js +21 -29
  180. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  181. package/dist/context/polyfill/polyfill-table.d.ts +8 -8
  182. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  183. package/dist/context/polyfill/polyfill-table.js +10 -32
  184. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  185. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  186. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
  187. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  188. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  189. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  190. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  191. package/dist/context/state-tracker/track-context-state.js +16 -51
  192. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  193. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  194. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  195. package/dist/context/state-tracker/with-parameters.js +7 -9
  196. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  197. package/dist/dist.dev.js +10245 -0
  198. package/dist/index.cjs +6550 -0
  199. package/dist/index.d.ts +25 -22
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +27 -26
  202. package/dist/index.js.map +1 -1
  203. package/dist/types.d.ts +3 -1
  204. package/dist/types.d.ts.map +1 -1
  205. package/dist/types.js.map +1 -1
  206. package/dist.min.js +37 -0
  207. package/package.json +21 -9
  208. package/src/adapter/converters/device-parameters.ts +88 -35
  209. package/src/adapter/converters/sampler-parameters.ts +19 -9
  210. package/src/adapter/converters/shader-formats.ts +41 -0
  211. package/src/adapter/converters/texture-formats.ts +264 -194
  212. package/src/adapter/converters/vertex-formats.ts +68 -10
  213. package/src/adapter/device-helpers/device-features.ts +10 -3
  214. package/src/adapter/device-helpers/device-limits.ts +3 -3
  215. package/src/adapter/device-helpers/get-device-info.ts +14 -10
  216. package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +36 -21
  217. package/src/adapter/helpers/get-shader-info.ts +40 -0
  218. package/src/adapter/helpers/get-shader-layout.ts +120 -146
  219. package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
  220. package/src/adapter/helpers/set-uniform.ts +7 -6
  221. package/src/adapter/helpers/{attribute-utils.ts → webgl-topology-utils.ts} +4 -5
  222. package/src/adapter/objects/constants-to-keys.ts +3 -25
  223. package/src/adapter/objects/webgl-renderbuffer.ts +40 -37
  224. package/src/adapter/objects/webgl-resource.ts +14 -23
  225. package/src/adapter/objects/webgl-vertex-array-object.ts +202 -37
  226. package/src/adapter/resources/webgl-buffer.ts +56 -58
  227. package/src/adapter/resources/webgl-command-buffer.ts +332 -25
  228. package/src/adapter/resources/webgl-command-encoder.ts +17 -12
  229. package/src/adapter/resources/webgl-external-texture.ts +2 -2
  230. package/src/adapter/resources/webgl-framebuffer.ts +88 -133
  231. package/src/adapter/resources/webgl-render-pass.ts +155 -4
  232. package/src/adapter/resources/webgl-render-pipeline.ts +232 -131
  233. package/src/adapter/resources/webgl-sampler.ts +13 -8
  234. package/src/adapter/resources/webgl-shader.ts +11 -10
  235. package/src/adapter/resources/webgl-texture.ts +113 -85
  236. package/src/adapter/webgl-canvas-context.ts +14 -14
  237. package/src/adapter/webgl-device.ts +192 -77
  238. package/src/classic/accessor.ts +4 -17
  239. package/src/classic/{buffer.ts → buffer-with-accessor.ts} +67 -75
  240. package/src/classic/clear.ts +110 -0
  241. package/src/classic/copy-and-blit.ts +308 -0
  242. package/src/classic/format-utils.ts +43 -0
  243. package/src/classic/typed-array-utils.ts +18 -27
  244. package/src/context/context/{create-context.ts → create-browser-context.ts} +48 -31
  245. package/src/context/context/create-headless-context.ts +48 -0
  246. package/src/context/context/webgl-checks.ts +1 -1
  247. package/src/context/debug/spector.ts +7 -6
  248. package/src/context/debug/webgl-developer-tools.ts +21 -15
  249. package/src/context/parameters/unified-parameter-api.ts +20 -14
  250. package/src/context/parameters/webgl-parameter-tables.ts +117 -98
  251. package/src/context/polyfill/context-data.ts +27 -0
  252. package/src/context/polyfill/get-parameter-polyfill.ts +8 -7
  253. package/src/context/polyfill/polyfill-context.ts +7 -9
  254. package/src/context/polyfill/polyfill-table.ts +18 -16
  255. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  256. package/src/context/state-tracker/track-context-state.ts +14 -13
  257. package/src/context/state-tracker/with-parameters.ts +8 -2
  258. package/src/index.ts +42 -33
  259. package/src/types.ts +2 -0
  260. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  261. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  262. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  263. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  264. package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
  265. package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
  266. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  267. package/dist/adapter/helpers/uniforms.d.ts +0 -26
  268. package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
  269. package/dist/adapter/helpers/uniforms.js.map +0 -1
  270. package/dist/bundle.d.ts +0 -2
  271. package/dist/bundle.d.ts.map +0 -1
  272. package/dist/bundle.js +0 -5
  273. package/dist/bundle.js.map +0 -1
  274. package/dist/classic/buffer.d.ts.map +0 -1
  275. package/dist/classic/buffer.js.map +0 -1
  276. package/dist/context/context/context-state.d.ts +0 -18
  277. package/dist/context/context/context-state.d.ts.map +0 -1
  278. package/dist/context/context/context-state.js +0 -26
  279. package/dist/context/context/context-state.js.map +0 -1
  280. package/dist/context/context/create-context.d.ts +0 -41
  281. package/dist/context/context/create-context.d.ts.map +0 -1
  282. package/dist/context/context/create-context.js +0 -49
  283. package/dist/context/context/create-context.js.map +0 -1
  284. package/dist/context/context/device-pixels.d.ts +0 -25
  285. package/dist/context/context/device-pixels.d.ts.map +0 -1
  286. package/dist/context/context/device-pixels.js +0 -98
  287. package/dist/context/context/device-pixels.js.map +0 -1
  288. package/dist/es5/adapter/converters/device-parameters.js +0 -170
  289. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  290. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  291. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  292. package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
  293. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  294. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  295. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  296. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  297. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  298. package/dist/es5/adapter/device-helpers/device-features.js +0 -144
  299. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  300. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  301. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  302. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  303. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  304. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  305. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  306. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  307. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  308. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
  309. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  310. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  311. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  312. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  313. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  314. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  315. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  316. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  317. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  318. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  319. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  320. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  321. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  322. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  323. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  324. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  325. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  326. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  327. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  328. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  329. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  330. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  331. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  332. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
  333. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  334. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
  335. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  336. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
  337. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  338. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  339. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  340. package/dist/es5/adapter/resources/webgl-shader.js +0 -149
  341. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  342. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  343. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  344. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  345. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  346. package/dist/es5/adapter/webgl-device.js +0 -399
  347. package/dist/es5/adapter/webgl-device.js.map +0 -1
  348. package/dist/es5/bundle.js +0 -7
  349. package/dist/es5/bundle.js.map +0 -1
  350. package/dist/es5/classic/accessor.js +0 -181
  351. package/dist/es5/classic/accessor.js.map +0 -1
  352. package/dist/es5/classic/buffer.js +0 -470
  353. package/dist/es5/classic/buffer.js.map +0 -1
  354. package/dist/es5/classic/typed-array-utils.js +0 -126
  355. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  356. package/dist/es5/context/context/context-state.js +0 -31
  357. package/dist/es5/context/context/context-state.js.map +0 -1
  358. package/dist/es5/context/context/create-context.js +0 -69
  359. package/dist/es5/context/context/create-context.js.map +0 -1
  360. package/dist/es5/context/context/device-pixels.js +0 -115
  361. package/dist/es5/context/context/device-pixels.js.map +0 -1
  362. package/dist/es5/context/context/webgl-checks.js +0 -54
  363. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  364. package/dist/es5/context/debug/spector.js +0 -133
  365. package/dist/es5/context/debug/spector.js.map +0 -1
  366. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  367. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  368. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  369. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  370. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  371. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  372. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  373. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  374. package/dist/es5/context/polyfill/polyfill-context.js +0 -135
  375. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  376. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  377. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  378. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  379. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  380. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  381. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  382. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  383. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  384. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  385. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  386. package/dist/es5/index.js +0 -276
  387. package/dist/es5/index.js.map +0 -1
  388. package/dist/es5/init.js +0 -10
  389. package/dist/es5/init.js.map +0 -1
  390. package/dist/es5/types/webgl.js +0 -6
  391. package/dist/es5/types/webgl.js.map +0 -1
  392. package/dist/es5/types.js +0 -2
  393. package/dist/es5/types.js.map +0 -1
  394. package/dist/esm/adapter/converters/device-parameters.js +0 -155
  395. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  396. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  397. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  398. package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
  399. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  400. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  401. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  402. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  403. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  404. package/dist/esm/adapter/device-helpers/device-features.js +0 -102
  405. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  406. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  407. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  408. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  409. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  410. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  411. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  412. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  413. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  414. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
  415. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  416. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  417. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  418. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  419. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  420. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  421. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  422. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  423. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  424. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  425. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  426. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  427. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  428. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  429. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  430. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  431. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  432. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  433. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  434. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  435. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  436. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  437. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  438. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
  439. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  440. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
  441. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  442. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  443. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  444. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  445. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  446. package/dist/esm/adapter/resources/webgl-shader.js +0 -75
  447. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  448. package/dist/esm/adapter/resources/webgl-texture.js +0 -831
  449. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  450. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  451. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  452. package/dist/esm/adapter/webgl-device.js +0 -280
  453. package/dist/esm/adapter/webgl-device.js.map +0 -1
  454. package/dist/esm/bundle.js +0 -5
  455. package/dist/esm/bundle.js.map +0 -1
  456. package/dist/esm/classic/accessor.js +0 -144
  457. package/dist/esm/classic/accessor.js.map +0 -1
  458. package/dist/esm/classic/buffer.js +0 -384
  459. package/dist/esm/classic/buffer.js.map +0 -1
  460. package/dist/esm/classic/typed-array-utils.js +0 -112
  461. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  462. package/dist/esm/context/context/context-state.js +0 -26
  463. package/dist/esm/context/context/context-state.js.map +0 -1
  464. package/dist/esm/context/context/create-context.js.map +0 -1
  465. package/dist/esm/context/context/device-pixels.js +0 -98
  466. package/dist/esm/context/context/device-pixels.js.map +0 -1
  467. package/dist/esm/context/context/webgl-checks.js +0 -34
  468. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  469. package/dist/esm/context/debug/spector.js +0 -76
  470. package/dist/esm/context/debug/spector.js.map +0 -1
  471. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  472. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  473. package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
  474. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  475. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  476. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  477. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  478. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  479. package/dist/esm/context/polyfill/polyfill-context.js +0 -92
  480. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  481. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  482. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  483. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  484. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  485. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  486. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  487. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  488. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  489. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  490. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  491. package/dist/esm/index.js +0 -27
  492. package/dist/esm/index.js.map +0 -1
  493. package/dist/esm/init.js +0 -4
  494. package/dist/esm/init.js.map +0 -1
  495. package/dist/esm/types/webgl.js +0 -2
  496. package/dist/esm/types/webgl.js.map +0 -1
  497. package/dist/esm/types.js +0 -2
  498. package/dist/esm/types.js.map +0 -1
  499. package/dist/init.d.ts +0 -2
  500. package/dist/init.d.ts.map +0 -1
  501. package/dist/init.js +0 -4
  502. package/dist/init.js.map +0 -1
  503. package/dist/types/webgl.d.ts +0 -144
  504. package/dist/types/webgl.d.ts.map +0 -1
  505. package/dist/types/webgl.js +0 -2
  506. package/dist/types/webgl.js.map +0 -1
  507. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  508. package/src/bundle.ts +0 -4
  509. package/src/context/context/context-state.ts +0 -41
  510. package/src/context/context/device-pixels.ts +0 -152
  511. package/src/init.ts +0 -4
  512. 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
+ }