@luma.gl/webgl 9.0.0-alpha.16 → 9.0.0-alpha.19

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 (417) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +117 -200
  3. package/dist/adapter/converters/device-parameters.js.map +1 -0
  4. package/dist/adapter/converters/renderbuffer-formats.d.ts +1 -1
  5. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
  6. package/dist/adapter/converters/renderbuffer-formats.js +172 -62
  7. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
  8. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  9. package/dist/adapter/converters/sampler-parameters.js +151 -149
  10. package/dist/adapter/converters/sampler-parameters.js.map +1 -0
  11. package/dist/adapter/converters/texture-formats.d.ts +2 -2
  12. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  13. package/dist/adapter/converters/texture-formats.js +847 -438
  14. package/dist/adapter/converters/texture-formats.js.map +1 -0
  15. package/dist/adapter/converters/vertex-formats.js +24 -15
  16. package/dist/adapter/converters/vertex-formats.js.map +1 -0
  17. package/dist/adapter/device-helpers/device-features.js +84 -120
  18. package/dist/adapter/device-helpers/device-features.js.map +1 -0
  19. package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
  20. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  21. package/dist/adapter/device-helpers/device-limits.js +83 -88
  22. package/dist/adapter/device-helpers/device-limits.js.map +1 -0
  23. package/dist/adapter/device-helpers/get-device-info.js +37 -42
  24. package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
  25. package/dist/adapter/device-helpers/is-old-ie.js +8 -10
  26. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
  27. package/dist/adapter/helpers/attribute-utils.js +57 -50
  28. package/dist/adapter/helpers/attribute-utils.js.map +1 -0
  29. package/dist/adapter/helpers/get-shader-info.d.ts +1 -1
  30. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -1
  31. package/dist/adapter/helpers/get-shader-info.js +19 -21
  32. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  33. package/dist/adapter/helpers/get-shader-layout.js +251 -310
  34. package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
  35. package/dist/adapter/helpers/parse-shader-compiler-log.js +26 -32
  36. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  37. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  38. package/dist/adapter/helpers/set-uniform.js +80 -67
  39. package/dist/adapter/helpers/set-uniform.js.map +1 -0
  40. package/dist/adapter/helpers/uniforms.js +75 -80
  41. package/dist/adapter/helpers/uniforms.js.map +1 -0
  42. package/dist/adapter/objects/constants-to-keys.js +26 -33
  43. package/dist/adapter/objects/constants-to-keys.js.map +1 -0
  44. package/dist/adapter/objects/webgl-renderbuffer.d.ts +1 -1
  45. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  46. package/dist/adapter/objects/webgl-renderbuffer.js +70 -67
  47. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
  48. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  49. package/dist/adapter/objects/webgl-resource.js +158 -213
  50. package/dist/adapter/objects/webgl-resource.js.map +1 -0
  51. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
  52. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  53. package/dist/adapter/objects/webgl-vertex-array-object.js +66 -74
  54. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  55. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  56. package/dist/adapter/resources/webgl-buffer.js +118 -150
  57. package/dist/adapter/resources/webgl-buffer.js.map +1 -0
  58. package/dist/adapter/resources/webgl-command-buffer.d.ts +5 -5
  59. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  60. package/dist/adapter/resources/webgl-command-buffer.js +41 -40
  61. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
  62. package/dist/adapter/resources/webgl-command-encoder.js +37 -26
  63. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
  64. package/dist/adapter/resources/webgl-external-texture.js +1 -91
  65. package/dist/adapter/resources/webgl-external-texture.js.map +1 -0
  66. package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
  67. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  68. package/dist/adapter/resources/webgl-framebuffer.js +198 -231
  69. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
  70. package/dist/adapter/resources/webgl-render-pass.js +11 -8
  71. package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
  72. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  73. package/dist/adapter/resources/webgl-render-pipeline.js +289 -316
  74. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
  75. package/dist/adapter/resources/webgl-sampler.js +35 -42
  76. package/dist/adapter/resources/webgl-sampler.js.map +1 -0
  77. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  78. package/dist/adapter/resources/webgl-shader.js +53 -57
  79. package/dist/adapter/resources/webgl-shader.js.map +1 -0
  80. package/dist/adapter/resources/webgl-texture.d.ts +4 -4
  81. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  82. package/dist/adapter/resources/webgl-texture.js +697 -661
  83. package/dist/adapter/resources/webgl-texture.js.map +1 -0
  84. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  85. package/dist/adapter/webgl-canvas-context.js +35 -55
  86. package/dist/adapter/webgl-canvas-context.js.map +1 -0
  87. package/dist/adapter/webgl-device.d.ts +5 -0
  88. package/dist/adapter/webgl-device.d.ts.map +1 -1
  89. package/dist/adapter/webgl-device.js +270 -287
  90. package/dist/adapter/webgl-device.js.map +1 -0
  91. package/dist/classic/accessor.js +103 -120
  92. package/dist/classic/accessor.js.map +1 -0
  93. package/dist/classic/buffer.d.ts +1 -1
  94. package/dist/classic/buffer.d.ts.map +1 -1
  95. package/dist/classic/buffer.js +300 -325
  96. package/dist/classic/buffer.js.map +1 -0
  97. package/dist/classic/typed-array-utils.d.ts +1 -1
  98. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  99. package/dist/classic/typed-array-utils.js +81 -91
  100. package/dist/classic/typed-array-utils.js.map +1 -0
  101. package/dist/context/context/create-browser-context.d.ts +3 -1
  102. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  103. package/dist/context/context/create-browser-context.js +49 -66
  104. package/dist/context/context/create-browser-context.js.map +1 -0
  105. package/dist/context/context/create-headless-context.d.ts +1 -1
  106. package/dist/context/context/create-headless-context.d.ts.map +1 -1
  107. package/dist/context/context/create-headless-context.js +30 -24
  108. package/dist/context/context/create-headless-context.js.map +1 -0
  109. package/dist/context/context/webgl-checks.js +17 -25
  110. package/dist/context/context/webgl-checks.js.map +1 -0
  111. package/dist/context/debug/spector.d.ts +3 -1
  112. package/dist/context/debug/spector.d.ts.map +1 -1
  113. package/dist/context/debug/spector.js +50 -53
  114. package/dist/context/debug/spector.js.map +1 -0
  115. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  116. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  117. package/dist/context/debug/webgl-developer-tools.js +76 -107
  118. package/dist/context/debug/webgl-developer-tools.js.map +1 -0
  119. package/dist/context/parameters/unified-parameter-api.js +46 -93
  120. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  121. package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
  122. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  123. package/dist/context/parameters/webgl-parameter-tables.js +404 -462
  124. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  125. package/dist/context/polyfill/context-data.js +10 -16
  126. package/dist/context/polyfill/context-data.js.map +1 -0
  127. package/dist/context/polyfill/get-parameter-polyfill.js +71 -91
  128. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  129. package/dist/context/polyfill/polyfill-context.js +73 -75
  130. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  131. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  132. package/dist/context/polyfill/polyfill-table.js +116 -133
  133. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  134. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  135. package/dist/context/polyfill/polyfill-vertex-array-object.js +227 -255
  136. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  137. package/dist/context/state-tracker/deep-array-equal.js +14 -16
  138. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  139. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  140. package/dist/context/state-tracker/track-context-state.js +127 -183
  141. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  142. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  143. package/dist/context/state-tracker/with-parameters.js +29 -43
  144. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  145. package/dist/dist.dev.js +9205 -0
  146. package/dist/index.cjs +5948 -0
  147. package/dist/index.d.ts +0 -2
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +25 -41
  150. package/dist/index.js.map +1 -0
  151. package/dist/types/webgl.d.ts +16 -16
  152. package/dist/types/webgl.d.ts.map +1 -1
  153. package/dist/types/webgl.js +1 -0
  154. package/dist/types/webgl.js.map +1 -0
  155. package/dist/types.d.ts +1 -1
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/types.js +1 -0
  158. package/dist/types.js.map +1 -0
  159. package/dist.min.js +36 -0
  160. package/package.json +18 -9
  161. package/src/adapter/converters/device-parameters.ts +5 -2
  162. package/src/adapter/converters/sampler-parameters.ts +4 -2
  163. package/src/adapter/converters/texture-formats.ts +3 -1
  164. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  165. package/src/adapter/helpers/get-shader-info.ts +1 -1
  166. package/src/adapter/helpers/get-shader-layout.ts +4 -4
  167. package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
  168. package/src/adapter/helpers/set-uniform.ts +2 -0
  169. package/src/adapter/objects/webgl-renderbuffer.ts +1 -1
  170. package/src/adapter/objects/webgl-resource.ts +1 -1
  171. package/src/adapter/objects/webgl-vertex-array-object.ts +1 -1
  172. package/src/adapter/resources/webgl-buffer.ts +6 -6
  173. package/src/adapter/resources/webgl-command-encoder.ts +1 -1
  174. package/src/adapter/resources/webgl-framebuffer.ts +3 -4
  175. package/src/adapter/resources/webgl-render-pipeline.ts +19 -20
  176. package/src/adapter/resources/webgl-shader.ts +1 -1
  177. package/src/adapter/resources/webgl-texture.ts +8 -9
  178. package/src/adapter/webgl-canvas-context.ts +2 -2
  179. package/src/adapter/webgl-device.ts +12 -2
  180. package/src/classic/accessor.ts +1 -1
  181. package/src/classic/buffer.ts +3 -3
  182. package/src/classic/typed-array-utils.ts +1 -1
  183. package/src/context/context/create-browser-context.ts +4 -2
  184. package/src/context/context/create-headless-context.ts +2 -2
  185. package/src/context/debug/spector.ts +5 -4
  186. package/src/context/debug/webgl-developer-tools.ts +1 -0
  187. package/src/context/polyfill/polyfill-table.ts +1 -0
  188. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  189. package/src/context/state-tracker/track-context-state.ts +6 -5
  190. package/src/context/state-tracker/with-parameters.ts +1 -1
  191. package/src/index.ts +1 -5
  192. package/src/types/webgl.ts +2 -0
  193. package/dist/bundle.d.ts +0 -2
  194. package/dist/bundle.d.ts.map +0 -1
  195. package/dist/bundle.js +0 -4
  196. package/dist/dist.min.js +0 -1
  197. package/dist/es5/adapter/converters/device-parameters.js +0 -139
  198. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  199. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -151
  200. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  201. package/dist/es5/adapter/converters/sampler-parameters.js +0 -182
  202. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  203. package/dist/es5/adapter/converters/texture-formats.js +0 -950
  204. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  205. package/dist/es5/adapter/converters/vertex-formats.js +0 -36
  206. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  207. package/dist/es5/adapter/device-helpers/device-features.js +0 -121
  208. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  209. package/dist/es5/adapter/device-helpers/device-limits.js +0 -54
  210. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  211. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -49
  212. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  213. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -15
  214. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  215. package/dist/es5/adapter/helpers/attribute-utils.js +0 -69
  216. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  217. package/dist/es5/adapter/helpers/get-shader-info.js +0 -31
  218. package/dist/es5/adapter/helpers/get-shader-info.js.map +0 -1
  219. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -311
  220. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  221. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -54
  222. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  223. package/dist/es5/adapter/helpers/set-uniform.js +0 -92
  224. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  225. package/dist/es5/adapter/helpers/uniforms.js +0 -88
  226. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  227. package/dist/es5/adapter/objects/constants-to-keys.js +0 -43
  228. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  229. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -122
  230. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  231. package/dist/es5/adapter/objects/webgl-resource.js +0 -233
  232. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  233. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -109
  234. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  235. package/dist/es5/adapter/resources/webgl-buffer.js +0 -196
  236. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  237. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -70
  238. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  239. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -80
  240. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  241. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  242. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  243. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -275
  244. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  245. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -45
  246. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  247. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -385
  248. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  249. package/dist/es5/adapter/resources/webgl-sampler.js +0 -75
  250. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  251. package/dist/es5/adapter/resources/webgl-shader.js +0 -111
  252. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  253. package/dist/es5/adapter/resources/webgl-texture.js +0 -826
  254. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  255. package/dist/es5/adapter/webgl-canvas-context.js +0 -72
  256. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  257. package/dist/es5/adapter/webgl-device.js +0 -387
  258. package/dist/es5/adapter/webgl-device.js.map +0 -1
  259. package/dist/es5/bundle.js +0 -6
  260. package/dist/es5/bundle.js.map +0 -1
  261. package/dist/es5/classic/accessor.js +0 -151
  262. package/dist/es5/classic/accessor.js.map +0 -1
  263. package/dist/es5/classic/buffer.js +0 -398
  264. package/dist/es5/classic/buffer.js.map +0 -1
  265. package/dist/es5/classic/typed-array-utils.js +0 -99
  266. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  267. package/dist/es5/context/context/create-browser-context.js +0 -66
  268. package/dist/es5/context/context/create-browser-context.js.map +0 -1
  269. package/dist/es5/context/context/create-headless-context.js +0 -47
  270. package/dist/es5/context/context/create-headless-context.js.map +0 -1
  271. package/dist/es5/context/context/webgl-checks.js +0 -44
  272. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  273. package/dist/es5/context/debug/spector.js +0 -99
  274. package/dist/es5/context/debug/spector.js.map +0 -1
  275. package/dist/es5/context/debug/webgl-developer-tools.js +0 -146
  276. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  277. package/dist/es5/context/parameters/unified-parameter-api.js +0 -76
  278. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  279. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -346
  280. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  281. package/dist/es5/context/polyfill/context-data.js +0 -18
  282. package/dist/es5/context/polyfill/context-data.js.map +0 -1
  283. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -69
  284. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  285. package/dist/es5/context/polyfill/polyfill-context.js +0 -109
  286. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  287. package/dist/es5/context/polyfill/polyfill-table.js +0 -143
  288. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  289. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -271
  290. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  291. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -23
  292. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  293. package/dist/es5/context/state-tracker/track-context-state.js +0 -167
  294. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  295. package/dist/es5/context/state-tracker/with-parameters.js +0 -40
  296. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  297. package/dist/es5/index.js +0 -249
  298. package/dist/es5/index.js.map +0 -1
  299. package/dist/es5/init.js +0 -7
  300. package/dist/es5/init.js.map +0 -1
  301. package/dist/es5/types/webgl.js +0 -5
  302. package/dist/es5/types/webgl.js.map +0 -1
  303. package/dist/es5/types.js +0 -2
  304. package/dist/es5/types.js.map +0 -1
  305. package/dist/esm/adapter/converters/device-parameters.js +0 -137
  306. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  307. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -181
  308. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  309. package/dist/esm/adapter/converters/sampler-parameters.js +0 -172
  310. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  311. package/dist/esm/adapter/converters/texture-formats.js +0 -901
  312. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  313. package/dist/esm/adapter/converters/vertex-formats.js +0 -29
  314. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  315. package/dist/esm/adapter/device-helpers/device-features.js +0 -95
  316. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  317. package/dist/esm/adapter/device-helpers/device-limits.js +0 -88
  318. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  319. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -42
  320. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  321. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -9
  322. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  323. package/dist/esm/adapter/helpers/attribute-utils.js +0 -64
  324. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  325. package/dist/esm/adapter/helpers/get-shader-info.js +0 -25
  326. package/dist/esm/adapter/helpers/get-shader-info.js.map +0 -1
  327. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -282
  328. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  329. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -30
  330. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  331. package/dist/esm/adapter/helpers/set-uniform.js +0 -85
  332. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  333. package/dist/esm/adapter/helpers/uniforms.js +0 -89
  334. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  335. package/dist/esm/adapter/objects/constants-to-keys.js +0 -35
  336. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  337. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -78
  338. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  339. package/dist/esm/adapter/objects/webgl-resource.js +0 -163
  340. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  341. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -74
  342. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  343. package/dist/esm/adapter/resources/webgl-buffer.js +0 -134
  344. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  345. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -50
  346. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  347. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -41
  348. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  349. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  350. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  351. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -207
  352. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  353. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -14
  354. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  355. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -311
  356. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  357. package/dist/esm/adapter/resources/webgl-sampler.js +0 -42
  358. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  359. package/dist/esm/adapter/resources/webgl-shader.js +0 -62
  360. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  361. package/dist/esm/adapter/resources/webgl-texture.js +0 -714
  362. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  363. package/dist/esm/adapter/webgl-canvas-context.js +0 -41
  364. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  365. package/dist/esm/adapter/webgl-device.js +0 -276
  366. package/dist/esm/adapter/webgl-device.js.map +0 -1
  367. package/dist/esm/bundle.js +0 -4
  368. package/dist/esm/bundle.js.map +0 -1
  369. package/dist/esm/classic/accessor.js +0 -120
  370. package/dist/esm/classic/accessor.js.map +0 -1
  371. package/dist/esm/classic/buffer.js +0 -327
  372. package/dist/esm/classic/buffer.js.map +0 -1
  373. package/dist/esm/classic/typed-array-utils.js +0 -92
  374. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  375. package/dist/esm/context/context/create-browser-context.js +0 -53
  376. package/dist/esm/context/context/create-browser-context.js.map +0 -1
  377. package/dist/esm/context/context/create-headless-context.js +0 -39
  378. package/dist/esm/context/context/create-headless-context.js.map +0 -1
  379. package/dist/esm/context/context/webgl-checks.js +0 -31
  380. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  381. package/dist/esm/context/debug/spector.js +0 -64
  382. package/dist/esm/context/debug/spector.js.map +0 -1
  383. package/dist/esm/context/debug/webgl-developer-tools.js +0 -97
  384. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  385. package/dist/esm/context/parameters/unified-parameter-api.js +0 -55
  386. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  387. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -427
  388. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  389. package/dist/esm/context/polyfill/context-data.js +0 -12
  390. package/dist/esm/context/polyfill/context-data.js.map +0 -1
  391. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -86
  392. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  393. package/dist/esm/context/polyfill/polyfill-context.js +0 -84
  394. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  395. package/dist/esm/context/polyfill/polyfill-table.js +0 -138
  396. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  397. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -265
  398. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  399. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -17
  400. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  401. package/dist/esm/context/state-tracker/track-context-state.js +0 -148
  402. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  403. package/dist/esm/context/state-tracker/with-parameters.js +0 -34
  404. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  405. package/dist/esm/index.js +0 -27
  406. package/dist/esm/index.js.map +0 -1
  407. package/dist/esm/init.js +0 -4
  408. package/dist/esm/init.js.map +0 -1
  409. package/dist/esm/types/webgl.js +0 -2
  410. package/dist/esm/types/webgl.js.map +0 -1
  411. package/dist/esm/types.js +0 -2
  412. package/dist/esm/types.js.map +0 -1
  413. package/dist/init.d.ts +0 -2
  414. package/dist/init.d.ts.map +0 -1
  415. package/dist/init.js +0 -3
  416. package/src/bundle.ts +0 -4
  417. package/src/init.ts +0 -4
@@ -1,82 +1,74 @@
1
1
  import { assert } from '@luma.gl/api';
2
2
  import GL from '@luma.gl/constants';
3
3
  import { getBrowser } from '@probe.gl/env';
4
- import WebGLResource from './webgl-resource.js';
4
+ import WebGLResource from "./webgl-resource.js";
5
5
  const ERR_ELEMENTS = 'elements must be GL.ELEMENT_ARRAY_BUFFER';
6
- /** VertexArrayObject wrapper */
7
6
  export default class WEBGLVertexArrayObject extends WebGLResource {
8
- get [Symbol.toStringTag]() {
9
- return 'BaseVertexArrayObject';
7
+ get [Symbol.toStringTag]() {
8
+ return 'BaseVertexArrayObject';
9
+ }
10
+ constructor(device, props) {
11
+ super(device, props, {});
12
+ }
13
+ _createHandle() {
14
+ return this.gl2.createVertexArray();
15
+ }
16
+ _deleteHandle() {
17
+ this.gl2.deleteVertexArray(this.handle);
18
+ return [this.elements];
19
+ }
20
+ _bindHandle(handle) {
21
+ this.gl2.bindVertexArray(handle);
22
+ }
23
+ setElementBuffer() {
24
+ let elementBuffer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
25
+ let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
26
+ assert(!elementBuffer || elementBuffer.target === GL.ELEMENT_ARRAY_BUFFER, ERR_ELEMENTS);
27
+ this.bind(() => {
28
+ this.gl.bindBuffer(GL.ELEMENT_ARRAY_BUFFER, elementBuffer ? elementBuffer.handle : null);
29
+ });
30
+ return this;
31
+ }
32
+ setBuffer(location, buffer, accessor) {
33
+ if (buffer.target === GL.ELEMENT_ARRAY_BUFFER) {
34
+ return this.setElementBuffer(buffer, accessor);
10
35
  }
11
- constructor(device, props) {
12
- // @ts-expect-error
13
- super(device, props, {});
14
- }
15
- _createHandle() {
16
- return this.gl2.createVertexArray();
17
- }
18
- _deleteHandle() {
19
- this.gl2.deleteVertexArray(this.handle);
20
- // @ts-expect-error
21
- return [this.elements];
22
- // return [this.elements, ...this.buffers];
23
- }
24
- _bindHandle(handle) {
25
- this.gl2.bindVertexArray(handle);
26
- }
27
- // Set (bind) an elements buffer, for indexed rendering.
28
- // Must be a Buffer bound to GL.ELEMENT_ARRAY_BUFFER. Constants not supported
29
- setElementBuffer(elementBuffer = null, opts = {}) {
30
- assert(!elementBuffer || elementBuffer.target === GL.ELEMENT_ARRAY_BUFFER, ERR_ELEMENTS);
31
- // The GL.ELEMENT_ARRAY_BUFFER_BINDING is stored on the VertexArrayObject...
32
- this.bind(() => {
33
- this.gl.bindBuffer(GL.ELEMENT_ARRAY_BUFFER, elementBuffer ? elementBuffer.handle : null);
34
- });
35
- return this;
36
- }
37
- /** Set a location in vertex attributes array to a buffer, enables the location, sets divisor */
38
- setBuffer(location, buffer, accessor) {
39
- // Check target
40
- if (buffer.target === GL.ELEMENT_ARRAY_BUFFER) {
41
- return this.setElementBuffer(buffer, accessor);
42
- }
43
- const { size, type, stride, offset, normalized, integer, divisor } = accessor;
44
- const { gl, gl2 } = this;
45
- location = Number(location);
46
- this.bind(() => {
47
- // A non-zero buffer object must be bound to the GL_ARRAY_BUFFER target
48
- gl.bindBuffer(gl.ARRAY_BUFFER, buffer.handle);
49
- // WebGL2 supports *integer* data formats, i.e. GPU will see integer values
50
- if (integer) {
51
- this.device.assertWebGL2();
52
- gl2.vertexAttribIPointer(location, size, type, stride, offset);
53
- }
54
- else {
55
- // Attaches ARRAY_BUFFER with specified buffer format to location
56
- gl.vertexAttribPointer(location, size, type, normalized, stride, offset);
57
- }
58
- gl.enableVertexAttribArray(location);
59
- gl2.vertexAttribDivisor(location, divisor || 0);
60
- // NOTE We don't unbind buffer here, typically another buffer will be bound just after
61
- });
62
- return this;
63
- }
64
- /**
65
- * Enabling an attribute location makes it reference the currently bound buffer
66
- * Disabling an attribute location makes it reference the global constant value
67
- * TODO - handle single values for size 1 attributes?
68
- * TODO - convert classic arrays based on known type?
69
- */
70
- enable(location, enable = true) {
71
- // Attribute 0 cannot be disabled in most desktop OpenGL based browsers...
72
- const canDisableAttributeZero = this.device.isWebGL2 || getBrowser() === 'Chrome';
73
- const canDisableAttribute = canDisableAttributeZero || location !== 0;
74
- if (enable || canDisableAttribute) {
75
- location = Number(location);
76
- this.bind(() => enable
77
- ? this.gl.enableVertexAttribArray(location)
78
- : this.gl.disableVertexAttribArray(location));
79
- }
80
- return this;
36
+ const {
37
+ size,
38
+ type,
39
+ stride,
40
+ offset,
41
+ normalized,
42
+ integer,
43
+ divisor
44
+ } = accessor;
45
+ const {
46
+ gl,
47
+ gl2
48
+ } = this;
49
+ location = Number(location);
50
+ this.bind(() => {
51
+ gl.bindBuffer(gl.ARRAY_BUFFER, buffer.handle);
52
+ if (integer) {
53
+ this.device.assertWebGL2();
54
+ gl2.vertexAttribIPointer(location, size, type, stride, offset);
55
+ } else {
56
+ gl.vertexAttribPointer(location, size, type, normalized, stride, offset);
57
+ }
58
+ gl.enableVertexAttribArray(location);
59
+ gl2.vertexAttribDivisor(location, divisor || 0);
60
+ });
61
+ return this;
62
+ }
63
+ enable(location) {
64
+ let enable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
65
+ const canDisableAttributeZero = this.device.isWebGL2 || getBrowser() === 'Chrome';
66
+ const canDisableAttribute = canDisableAttributeZero || location !== 0;
67
+ if (enable || canDisableAttribute) {
68
+ location = Number(location);
69
+ this.bind(() => enable ? this.gl.enableVertexAttribArray(location) : this.gl.disableVertexAttribArray(location));
81
70
  }
71
+ return this;
72
+ }
82
73
  }
74
+ //# sourceMappingURL=webgl-vertex-array-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-vertex-array-object.js","names":["assert","GL","getBrowser","WebGLResource","ERR_ELEMENTS","WEBGLVertexArrayObject","Symbol","toStringTag","constructor","device","props","_createHandle","gl2","createVertexArray","_deleteHandle","deleteVertexArray","handle","elements","_bindHandle","bindVertexArray","setElementBuffer","elementBuffer","arguments","length","undefined","opts","target","ELEMENT_ARRAY_BUFFER","bind","gl","bindBuffer","setBuffer","location","buffer","accessor","size","type","stride","offset","normalized","integer","divisor","Number","ARRAY_BUFFER","assertWebGL2","vertexAttribIPointer","vertexAttribPointer","enableVertexAttribArray","vertexAttribDivisor","enable","canDisableAttributeZero","isWebGL2","canDisableAttribute","disableVertexAttribArray"],"sources":["../../../src/adapter/objects/webgl-vertex-array-object.ts"],"sourcesContent":["import {assert, ResourceProps} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {getBrowser} from '@probe.gl/env';\n\nimport WebGLDevice from '../webgl-device';\nimport WebGLResource from './webgl-resource';\n\nimport Buffer from '../resources/webgl-buffer';\n\nconst ERR_ELEMENTS = 'elements must be GL.ELEMENT_ARRAY_BUFFER';\n\n/**\n * VertexArrayObject properties\n */\nexport type VertexArrayObjectProps = ResourceProps & {\n};\n\n/** VertexArrayObject wrapper */\nexport default class WEBGLVertexArrayObject extends WebGLResource<VertexArrayObjectProps> {\n override get [Symbol.toStringTag](): string {\n return 'BaseVertexArrayObject';\n }\n\n constructor(device: WebGLDevice, props?: VertexArrayObjectProps) {\n // @ts-expect-error\n super(device, props, {});\n }\n\n override _createHandle() {\n return this.gl2.createVertexArray();\n }\n\n override _deleteHandle(): void {\n this.gl2.deleteVertexArray(this.handle);\n // @ts-expect-error\n return [this.elements];\n // return [this.elements, ...this.buffers];\n }\n\n override _bindHandle(handle: WEBGLVertexArrayObject): void {\n this.gl2.bindVertexArray(handle);\n }\n\n // Set (bind) an elements buffer, for indexed rendering.\n // Must be a Buffer bound to GL.ELEMENT_ARRAY_BUFFER. Constants not supported\n setElementBuffer(elementBuffer: Buffer | null = null, opts = {}) {\n assert(!elementBuffer || elementBuffer.target === GL.ELEMENT_ARRAY_BUFFER, ERR_ELEMENTS);\n\n // The GL.ELEMENT_ARRAY_BUFFER_BINDING is stored on the VertexArrayObject...\n this.bind(() => {\n this.gl.bindBuffer(GL.ELEMENT_ARRAY_BUFFER, elementBuffer ? elementBuffer.handle : null);\n });\n\n return this;\n }\n\n /** Set a location in vertex attributes array to a buffer, enables the location, sets divisor */\n setBuffer(location: number, buffer: Buffer, accessor: any): this {\n // Check target\n if (buffer.target === GL.ELEMENT_ARRAY_BUFFER) {\n return this.setElementBuffer(buffer, accessor);\n }\n\n const {size, type, stride, offset, normalized, integer, divisor} = accessor;\n\n const {gl, gl2} = this;\n location = Number(location);\n\n this.bind(() => {\n // A non-zero buffer object must be bound to the GL_ARRAY_BUFFER target\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer.handle);\n\n // WebGL2 supports *integer* data formats, i.e. GPU will see integer values\n if (integer) {\n this.device.assertWebGL2();\n gl2.vertexAttribIPointer(location, size, type, stride, offset);\n } else {\n // Attaches ARRAY_BUFFER with specified buffer format to location\n gl.vertexAttribPointer(location, size, type, normalized, stride, offset);\n }\n gl.enableVertexAttribArray(location);\n gl2.vertexAttribDivisor(location, divisor || 0);\n\n // NOTE We don't unbind buffer here, typically another buffer will be bound just after\n });\n\n return this;\n }\n\n /**\n * Enabling an attribute location makes it reference the currently bound buffer\n * Disabling an attribute location makes it reference the global constant value\n * TODO - handle single values for size 1 attributes?\n * TODO - convert classic arrays based on known type?\n */\n enable(location: number, enable = true): this {\n // Attribute 0 cannot be disabled in most desktop OpenGL based browsers...\n const canDisableAttributeZero = this.device.isWebGL2 || getBrowser() === 'Chrome';\n const canDisableAttribute = canDisableAttributeZero || location !== 0;\n\n if (enable || canDisableAttribute) {\n location = Number(location);\n this.bind(() =>\n enable\n ? this.gl.enableVertexAttribArray(location)\n : this.gl.disableVertexAttribArray(location)\n );\n }\n return this;\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-buffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,MAAM,EAAS,MAAM,cAAc,CAAC;AAE5C,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAI1C,6BAA6B;AAC7B,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,MAAM;IAC7C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,WAAW,GAAG,IAAI,CAAQ;IAErC,UAAU,EAAE,MAAM,CAAC;gBAIP,MAAM,EAAE,WAAW,EAAE,KAAK,GAAE,WAAgB;IAqCxD,aAAa,CAAC,IAAI,KAAA,EAAE,UAAU,GAAE,MAAU,EAAE,UAAU,GAAE,MAAqC,GAAG,IAAI;IAmBpG,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAwBpC,OAAO,IAAI,IAAI;IAUf,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,GAAE,MAAU,GAAG,IAAI;IAuBnE,gCAAgC;IACjB,SAAS,CACtB,UAAU,GAAE,MAAU,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC;IAmBvB,oBAAoB;IAIpB,eAAe;IAKf,cAAc;CAIf"}
1
+ {"version":3,"file":"webgl-buffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,MAAM,EAAS,MAAM,cAAc,CAAC;AAE5C,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAI1C,6BAA6B;AAC7B,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,MAAM;IAC7C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,WAAW,GAAG,IAAI,CAAQ;IAErC,UAAU,EAAE,MAAM,CAAC;gBAKP,MAAM,EAAE,WAAW,EAAE,KAAK,GAAE,WAAgB;IAoCxD,aAAa,CAAC,IAAI,KAAA,EAAE,UAAU,GAAE,MAAU,EAAE,UAAU,GAAE,MAAqC,GAAG,IAAI;IAmBpG,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAwBpC,OAAO,IAAI,IAAI;IAUf,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,GAAE,MAAU,GAAG,IAAI;IAuBnE,gCAAgC;IACjB,SAAS,CACtB,UAAU,GAAE,MAAU,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC;IAmBvB,oBAAoB;IAIpB,eAAe;IAKf,cAAc;CAIf"}
@@ -1,165 +1,133 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
1
2
  import { Buffer, assert } from '@luma.gl/api';
2
3
  import GL from '@luma.gl/constants';
3
4
  const DEBUG_DATA_LENGTH = 10;
4
- /** WebGL Buffer interface */
5
5
  export default class WEBGLBuffer extends Buffer {
6
- // accessor: {};
7
- constructor(device, props = {}) {
8
- super(device, props);
9
- this.debugData = null;
10
- this.device = device;
11
- this.gl = this.device.gl;
12
- this.gl2 = this.device.gl2;
13
- const handle = typeof props === 'object' ? props.handle : undefined;
14
- this.handle = handle || this.gl.createBuffer();
15
- // @ts-expect-error Add metadata for spector
16
- this.handle.__SPECTOR_Metadata = { ...this.props, data: typeof this.props.data }; // {name: this.props.id};
17
- // In WebGL1, need to make sure we use GL.ELEMENT_ARRAY_BUFFER when initializing element buffers
18
- // otherwise buffer type will lock to generic (non-element) buffer
19
- // In WebGL2, we can use GL.COPY_READ_BUFFER which avoids locking the type here
20
- // @ts-expect-error Hack - Checking for subclass prop
21
- this.target = this.props.target || getWebGLTarget(this.props.usage);
22
- // @ts-expect-error Hack - Checking for subclass prop
23
- this.webglUsage = this.props.webglUsage || getWebGLUsage(this.props.usage);
24
- this.debugData = null;
25
- // Set data: (re)initializes the buffer
26
- if (props.data) {
27
- this._initWithData(props.data, props.byteOffset, props.byteLength);
28
- }
29
- else {
30
- this._initWithByteLength(props.byteLength || 0);
31
- }
32
- // Deprecated: Merge main props and accessor
33
- // this.accessor = {...props.accessor};
34
- // Object.seal(this);
6
+ constructor(device) {
7
+ let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
8
+ super(device, props);
9
+ _defineProperty(this, "device", void 0);
10
+ _defineProperty(this, "gl", void 0);
11
+ _defineProperty(this, "gl2", void 0);
12
+ _defineProperty(this, "handle", void 0);
13
+ _defineProperty(this, "target", void 0);
14
+ _defineProperty(this, "byteLength", void 0);
15
+ _defineProperty(this, "bytesUsed", void 0);
16
+ _defineProperty(this, "debugData", null);
17
+ _defineProperty(this, "webglUsage", void 0);
18
+ this.device = device;
19
+ this.gl = this.device.gl;
20
+ this.gl2 = this.device.gl2;
21
+ const handle = typeof props === 'object' ? props.handle : undefined;
22
+ this.handle = handle || this.gl.createBuffer();
23
+ device.setSpectorMetadata(this.handle, {
24
+ ...this.props,
25
+ data: typeof this.props.data
26
+ });
27
+ this.target = this.props.target || getWebGLTarget(this.props.usage);
28
+ this.webglUsage = this.props.webglUsage || getWebGLUsage(this.props.usage);
29
+ this.debugData = null;
30
+ if (props.data) {
31
+ this._initWithData(props.data, props.byteOffset, props.byteLength);
32
+ } else {
33
+ this._initWithByteLength(props.byteLength || 0);
35
34
  }
36
- // PRIVATE METHODS
37
- // Allocate a new buffer and initialize to contents of typed array
38
- _initWithData(data, byteOffset = 0, byteLength = data.byteLength + byteOffset) {
39
- assert(ArrayBuffer.isView(data));
40
- const target = this._getWriteTarget();
41
- this.gl.bindBuffer(target, this.handle);
42
- this.gl.bufferData(target, byteLength, this.webglUsage);
43
- this.gl.bufferSubData(target, byteOffset, data);
44
- this.gl.bindBuffer(target, null);
45
- this.debugData = data.slice(0, DEBUG_DATA_LENGTH);
46
- this.bytesUsed = byteLength;
47
- this.byteLength = byteLength;
48
- this.trackAllocatedMemory(byteLength);
49
- return this;
35
+ }
36
+ _initWithData(data) {
37
+ let byteOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
38
+ let byteLength = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : data.byteLength + byteOffset;
39
+ assert(ArrayBuffer.isView(data));
40
+ const target = this._getWriteTarget();
41
+ this.gl.bindBuffer(target, this.handle);
42
+ this.gl.bufferData(target, byteLength, this.webglUsage);
43
+ this.gl.bufferSubData(target, byteOffset, data);
44
+ this.gl.bindBuffer(target, null);
45
+ this.debugData = data.slice(0, DEBUG_DATA_LENGTH);
46
+ this.bytesUsed = byteLength;
47
+ this.byteLength = byteLength;
48
+ this.trackAllocatedMemory(byteLength);
49
+ return this;
50
+ }
51
+ _initWithByteLength(byteLength) {
52
+ assert(byteLength >= 0);
53
+ let data = byteLength;
54
+ if (byteLength === 0) {
55
+ data = new Float32Array(0);
50
56
  }
51
- // Allocate a GPU buffer of specified size.
52
- _initWithByteLength(byteLength) {
53
- assert(byteLength >= 0);
54
- // Workaround needed for Safari (#291):
55
- // gl.bufferData with size equal to 0 crashes. Instead create zero sized array.
56
- let data = byteLength;
57
- if (byteLength === 0) {
58
- // @ts-expect-error
59
- data = new Float32Array(0);
60
- }
61
- const target = this._getWriteTarget();
62
- this.gl.bindBuffer(target, this.handle);
63
- this.gl.bufferData(target, data, this.webglUsage);
64
- this.gl.bindBuffer(target, null);
65
- this.debugData = null;
66
- this.bytesUsed = byteLength;
67
- this.byteLength = byteLength;
68
- return this;
57
+ const target = this._getWriteTarget();
58
+ this.gl.bindBuffer(target, this.handle);
59
+ this.gl.bufferData(target, data, this.webglUsage);
60
+ this.gl.bindBuffer(target, null);
61
+ this.debugData = null;
62
+ this.bytesUsed = byteLength;
63
+ this.byteLength = byteLength;
64
+ return this;
65
+ }
66
+ destroy() {
67
+ if (!this.destroyed && this.handle) {
68
+ this.removeStats();
69
+ this.trackDeallocatedMemory();
70
+ this.gl.deleteBuffer(this.handle);
71
+ this.destroyed = true;
69
72
  }
70
- destroy() {
71
- if (!this.destroyed && this.handle) {
72
- this.removeStats();
73
- this.trackDeallocatedMemory();
74
- this.gl.deleteBuffer(this.handle);
75
- this.destroyed = true;
76
- // this.handle = null;
77
- }
78
- }
79
- write(data, byteOffset = 0) {
80
- const srcOffset = 0;
81
- const byteLength = data.byteLength;
82
- // Create the buffer - binding it here for the first time locks the type
83
- // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type
84
- const target = this.device.isWebGL2 ? GL.COPY_WRITE_BUFFER : this.target;
85
- this.gl.bindBuffer(target, this.handle);
86
- // WebGL2: subData supports additional srcOffset and length parameters
87
- if (srcOffset !== 0 || byteLength !== undefined) {
88
- this.device.assertWebGL2();
89
- // @ts-expect-error
90
- this.gl.bufferSubData(this.target, offset, data, srcOffset, byteLength);
91
- }
92
- else {
93
- this.gl.bufferSubData(target, byteOffset, data);
94
- }
95
- this.gl.bindBuffer(target, null);
96
- // TODO - update local `data` if offsets are right
97
- // this.debugData = data.slice(byteOffset, 40);
98
- }
99
- /** Read data from the buffer */
100
- async readAsync(byteOffset = 0, byteLength) {
101
- this.device.assertWebGL2();
102
- const data = new Uint8Array(byteLength);
103
- const dstOffset = 0;
104
- // Use GL.COPY_READ_BUFFER to avoid disturbing other targets and locking type
105
- this.gl.bindBuffer(GL.COPY_READ_BUFFER, this.handle);
106
- this.gl2.getBufferSubData(GL.COPY_READ_BUFFER, byteOffset, data, dstOffset, byteLength);
107
- this.gl.bindBuffer(GL.COPY_READ_BUFFER, null);
108
- // TODO - update local `data` if offsets are 0
109
- // this.debugData = null;
110
- return data;
111
- }
112
- // PROTECTED METHODS (INTENDED FOR USE BY OTHER FRAMEWORK CODE ONLY)
113
- _invalidateDebugData() {
114
- this.debugData = null;
115
- }
116
- _getWriteTarget() {
117
- return this.target;
118
- // return this.device.isWebGL2 ? GL.COPY_WRITE_BUFFER : this.target;
119
- }
120
- _getReadTarget() {
121
- return this.target;
122
- return this.device.isWebGL2 ? GL.COPY_READ_BUFFER : this.target;
73
+ }
74
+ write(data) {
75
+ let byteOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
76
+ const srcOffset = 0;
77
+ const byteLength = data.byteLength;
78
+ const target = this.device.isWebGL2 ? GL.COPY_WRITE_BUFFER : this.target;
79
+ this.gl.bindBuffer(target, this.handle);
80
+ if (srcOffset !== 0 || byteLength !== undefined) {
81
+ this.device.assertWebGL2();
82
+ this.gl.bufferSubData(this.target, byteOffset, data, srcOffset, byteLength);
83
+ } else {
84
+ this.gl.bufferSubData(target, byteOffset, data);
123
85
  }
86
+ this.gl.bindBuffer(target, null);
87
+ }
88
+ async readAsync() {
89
+ let byteOffset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
90
+ let byteLength = arguments.length > 1 ? arguments[1] : undefined;
91
+ this.device.assertWebGL2();
92
+ const data = new Uint8Array(byteLength);
93
+ const dstOffset = 0;
94
+ this.gl.bindBuffer(GL.COPY_READ_BUFFER, this.handle);
95
+ this.gl2.getBufferSubData(GL.COPY_READ_BUFFER, byteOffset, data, dstOffset, byteLength);
96
+ this.gl.bindBuffer(GL.COPY_READ_BUFFER, null);
97
+ return data;
98
+ }
99
+ _invalidateDebugData() {
100
+ this.debugData = null;
101
+ }
102
+ _getWriteTarget() {
103
+ return this.target;
104
+ }
105
+ _getReadTarget() {
106
+ return this.target;
107
+ }
124
108
  }
125
- // static MAP_READ = 0x01;
126
- // static MAP_WRITE = 0x02;
127
- // static COPY_SRC = 0x0004;
128
- // static COPY_DST = 0x0008;
129
- // static INDEX = 0x0010;
130
- // static VERTEX = 0x0020;
131
- // static UNIFORM = 0x0040;
132
- // static STORAGE = 0x0080;
133
- // static INDIRECT = 0x0100;
134
- // static QUERY_RESOLVE = 0x0200;
135
109
  function getWebGLTarget(usage) {
136
- if (usage & Buffer.INDEX) {
137
- return GL.ELEMENT_ARRAY_BUFFER;
138
- }
139
- if (usage & Buffer.VERTEX) {
140
- return GL.ARRAY_BUFFER;
141
- }
142
- if (usage & Buffer.UNIFORM) {
143
- return GL.UNIFORM_BUFFER;
144
- }
145
- // gl.COPY_READ_BUFFER: Buffer for copying from one buffer object to another.
146
- // gl.COPY_WRITE_BUFFER: Buffer for copying from one buffer object to another.
147
- // gl.TRANSFORM_FEEDBACK_BUFFER: Buffer for transform feedback operations.
148
- // gl.PIXEL_PACK_BUFFER: Buffer used for pixel transfer operations.
149
- // gl.PIXEL_UNPACK_BUFFER: Buffer used for pixel transfer operations.
150
- // Binding a buffer for the first time locks the type
151
- // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type
110
+ if (usage & Buffer.INDEX) {
111
+ return GL.ELEMENT_ARRAY_BUFFER;
112
+ }
113
+ if (usage & Buffer.VERTEX) {
152
114
  return GL.ARRAY_BUFFER;
115
+ }
116
+ if (usage & Buffer.UNIFORM) {
117
+ return GL.UNIFORM_BUFFER;
118
+ }
119
+ return GL.ARRAY_BUFFER;
153
120
  }
154
121
  function getWebGLUsage(usage) {
155
- if (usage & Buffer.INDEX) {
156
- return GL.STATIC_DRAW;
157
- }
158
- if (usage & Buffer.VERTEX) {
159
- return GL.STATIC_DRAW;
160
- }
161
- if (usage & Buffer.UNIFORM) {
162
- return GL.DYNAMIC_DRAW;
163
- }
122
+ if (usage & Buffer.INDEX) {
123
+ return GL.STATIC_DRAW;
124
+ }
125
+ if (usage & Buffer.VERTEX) {
126
+ return GL.STATIC_DRAW;
127
+ }
128
+ if (usage & Buffer.UNIFORM) {
164
129
  return GL.DYNAMIC_DRAW;
130
+ }
131
+ return GL.DYNAMIC_DRAW;
165
132
  }
133
+ //# sourceMappingURL=webgl-buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-buffer.js","names":["Buffer","assert","GL","DEBUG_DATA_LENGTH","WEBGLBuffer","constructor","device","props","arguments","length","undefined","_defineProperty","gl","gl2","handle","createBuffer","setSpectorMetadata","data","target","getWebGLTarget","usage","webglUsage","getWebGLUsage","debugData","_initWithData","byteOffset","byteLength","_initWithByteLength","ArrayBuffer","isView","_getWriteTarget","bindBuffer","bufferData","bufferSubData","slice","bytesUsed","trackAllocatedMemory","Float32Array","destroy","destroyed","removeStats","trackDeallocatedMemory","deleteBuffer","write","srcOffset","isWebGL2","COPY_WRITE_BUFFER","assertWebGL2","readAsync","Uint8Array","dstOffset","COPY_READ_BUFFER","getBufferSubData","_invalidateDebugData","_getReadTarget","INDEX","ELEMENT_ARRAY_BUFFER","VERTEX","ARRAY_BUFFER","UNIFORM","UNIFORM_BUFFER","STATIC_DRAW","DYNAMIC_DRAW"],"sources":["../../../src/adapter/resources/webgl-buffer.ts"],"sourcesContent":["import type {BufferProps} from '@luma.gl/api';\nimport {Buffer, assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport WebGLDevice from '../webgl-device';\n\nconst DEBUG_DATA_LENGTH = 10;\n\n/** WebGL Buffer interface */\nexport default class WEBGLBuffer extends Buffer {\n readonly device: WebGLDevice;\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext | null;\n readonly handle: WebGLBuffer;\n readonly target: number;\n\n byteLength: number;\n bytesUsed: number;\n debugData: ArrayBuffer | null = null;\n\n webglUsage: number;\n\n // accessor: {};\n\n \n constructor(device: WebGLDevice, props: BufferProps = {}) {\n super(device, props);\n\n this.device = device;\n this.gl = this.device.gl;\n this.gl2 = this.device.gl2;\n\n const handle = typeof props === 'object' ? (props ).handle : undefined;\n this.handle = handle || this.gl.createBuffer();\n device.setSpectorMetadata(this.handle, {...this.props, data: typeof this.props.data});\n\n // In WebGL1, need to make sure we use GL.ELEMENT_ARRAY_BUFFER when initializing element buffers\n // otherwise buffer type will lock to generic (non-element) buffer\n // In WebGL2, we can use GL.COPY_READ_BUFFER which avoids locking the type here\n // @ts-expect-error Hack - Checking for subclass prop\n this.target = this.props.target || getWebGLTarget(this.props.usage);\n // @ts-expect-error Hack - Checking for subclass prop\n this.webglUsage = this.props.webglUsage || getWebGLUsage(this.props.usage);\n this.debugData = null;\n\n // Set data: (re)initializes the buffer\n if (props.data) {\n this._initWithData(props.data, props.byteOffset, props.byteLength);\n } else {\n this._initWithByteLength(props.byteLength || 0);\n }\n\n // Deprecated: Merge main props and accessor\n // this.accessor = {...props.accessor};\n\n // Object.seal(this);\n }\n\n // PRIVATE METHODS\n\n // Allocate a new buffer and initialize to contents of typed array\n _initWithData(data, byteOffset: number = 0, byteLength: number = data.byteLength + byteOffset): this {\n assert(ArrayBuffer.isView(data));\n\n const target = this._getWriteTarget();\n\n this.gl.bindBuffer(target, this.handle);\n this.gl.bufferData(target, byteLength, this.webglUsage);\n this.gl.bufferSubData(target, byteOffset, data);\n this.gl.bindBuffer(target, null);\n\n this.debugData = data.slice(0, DEBUG_DATA_LENGTH);\n this.bytesUsed = byteLength;\n this.byteLength = byteLength;\n this.trackAllocatedMemory(byteLength);\n\n return this;\n }\n\n // Allocate a GPU buffer of specified size.\n _initWithByteLength(byteLength: number): this {\n assert(byteLength >= 0);\n\n // Workaround needed for Safari (#291):\n // gl.bufferData with size equal to 0 crashes. Instead create zero sized array.\n let data = byteLength;\n if (byteLength === 0) {\n // @ts-expect-error\n data = new Float32Array(0);\n }\n\n const target = this._getWriteTarget();\n\n this.gl.bindBuffer(target, this.handle);\n this.gl.bufferData(target, data, this.webglUsage);\n this.gl.bindBuffer(target, null);\n\n this.debugData = null;\n this.bytesUsed = byteLength;\n this.byteLength = byteLength;\n\n return this;\n }\n\n override destroy(): void {\n if (!this.destroyed && this.handle) {\n this.removeStats();\n this.trackDeallocatedMemory();\n this.gl.deleteBuffer(this.handle);\n this.destroyed = true;\n // this.handle = null;\n }\n }\n\n override write(data: ArrayBufferView, byteOffset: number = 0): void {\n const srcOffset = 0;\n const byteLength = data.byteLength;\n\n // Create the buffer - binding it here for the first time locks the type\n // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type\n const target = this.device.isWebGL2 ? GL.COPY_WRITE_BUFFER : this.target;\n this.gl.bindBuffer(target, this.handle);\n // WebGL2: subData supports additional srcOffset and length parameters\n if (srcOffset !== 0 || byteLength !== undefined) {\n this.device.assertWebGL2();\n\n // @ts-expect-error\n this.gl.bufferSubData(this.target, byteOffset, data, srcOffset, byteLength);\n } else {\n this.gl.bufferSubData(target, byteOffset, data);\n }\n this.gl.bindBuffer(target, null);\n\n // TODO - update local `data` if offsets are right\n // this.debugData = data.slice(byteOffset, 40);\n }\n\n /** Read data from the buffer */\n override async readAsync(\n byteOffset: number = 0,\n byteLength?: number\n ): Promise<ArrayBuffer> {\n this.device.assertWebGL2();\n\n const data = new Uint8Array(byteLength);\n const dstOffset = 0;\n\n // Use GL.COPY_READ_BUFFER to avoid disturbing other targets and locking type\n this.gl.bindBuffer(GL.COPY_READ_BUFFER, this.handle);\n this.gl2.getBufferSubData(GL.COPY_READ_BUFFER, byteOffset, data, dstOffset, byteLength);\n this.gl.bindBuffer(GL.COPY_READ_BUFFER, null);\n\n // TODO - update local `data` if offsets are 0\n // this.debugData = null;\n\n return data;\n }\n\n // PROTECTED METHODS (INTENDED FOR USE BY OTHER FRAMEWORK CODE ONLY)\n\n _invalidateDebugData() {\n this.debugData = null;\n }\n\n _getWriteTarget() {\n return this.target;\n // return this.device.isWebGL2 ? GL.COPY_WRITE_BUFFER : this.target;\n }\n\n _getReadTarget() {\n return this.target;\n // return this.device.isWebGL2 ? GL.COPY_READ_BUFFER : this.target;\n }\n}\n\n// static MAP_READ = 0x01;\n// static MAP_WRITE = 0x02;\n// static COPY_SRC = 0x0004;\n// static COPY_DST = 0x0008;\n// static INDEX = 0x0010;\n// static VERTEX = 0x0020;\n// static UNIFORM = 0x0040;\n// static STORAGE = 0x0080;\n// static INDIRECT = 0x0100;\n// static QUERY_RESOLVE = 0x0200;\n\nfunction getWebGLTarget(usage: number): GL {\n if (usage & Buffer.INDEX) {\n return GL.ELEMENT_ARRAY_BUFFER;\n }\n if (usage & Buffer.VERTEX) {\n return GL.ARRAY_BUFFER;\n }\n if (usage & Buffer.UNIFORM) {\n return GL.UNIFORM_BUFFER;\n }\n\n // gl.COPY_READ_BUFFER: Buffer for copying from one buffer object to another.\n // gl.COPY_WRITE_BUFFER: Buffer for copying from one buffer object to another.\n // gl.TRANSFORM_FEEDBACK_BUFFER: Buffer for transform feedback operations.\n // gl.PIXEL_PACK_BUFFER: Buffer used for pixel transfer operations.\n // gl.PIXEL_UNPACK_BUFFER: Buffer used for pixel transfer operations.\n\n // Binding a buffer for the first time locks the type\n // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type\n return GL.ARRAY_BUFFER;\n}\n\nfunction getWebGLUsage(usage: number): GL {\n if (usage & Buffer.INDEX) {\n return GL.STATIC_DRAW;\n }\n if (usage & Buffer.VERTEX) {\n return GL.STATIC_DRAW;\n }\n if (usage & Buffer.UNIFORM) {\n return GL.DYNAMIC_DRAW;\n }\n return GL.DYNAMIC_DRAW;\n}\n"],"mappings":"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"}
@@ -1,22 +1,22 @@
1
1
  import type { CopyBufferToBufferOptions, CopyBufferToTextureOptions, CopyTextureToBufferOptions, CopyTextureToTextureOptions } from '@luma.gl/api';
2
2
  import WebGLDevice from '../webgl-device';
3
- type CopyBufferToBufferCommand = {
3
+ declare type CopyBufferToBufferCommand = {
4
4
  name: 'copy-buffer-to-buffer';
5
5
  options: CopyBufferToBufferOptions;
6
6
  };
7
- type CopyBufferToTextureCommand = {
7
+ declare type CopyBufferToTextureCommand = {
8
8
  name: 'copy-buffer-to-texture';
9
9
  options: CopyBufferToTextureOptions;
10
10
  };
11
- type CopyTextureToBufferCommand = {
11
+ declare type CopyTextureToBufferCommand = {
12
12
  name: 'copy-texture-to-buffer';
13
13
  options: CopyTextureToBufferOptions;
14
14
  };
15
- type CopyTextureToTextureCommand = {
15
+ declare type CopyTextureToTextureCommand = {
16
16
  name: 'copy-texture-to-texture';
17
17
  options: CopyTextureToTextureOptions;
18
18
  };
19
- type Command = CopyBufferToBufferCommand | CopyBufferToTextureCommand | CopyTextureToBufferCommand | CopyTextureToTextureCommand;
19
+ declare type Command = CopyBufferToBufferCommand | CopyBufferToTextureCommand | CopyTextureToBufferCommand | CopyTextureToTextureCommand;
20
20
  export default class CommandBuffer {
21
21
  commands: Command[];
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-command-buffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-command-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAO1C,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,yBAAyB,CAAC;CACpC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO,EAAE,0BAA0B,CAAC;CACrC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO,EAAE,0BAA0B,CAAC;CACrC,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,IAAI,EAAE,yBAAyB,CAAC;IAChC,OAAO,EAAE,2BAA2B,CAAC;CACtC,CAAC;AAEF,KAAK,OAAO,GACR,yBAAyB,GACzB,0BAA0B,GAC1B,0BAA0B,GAC1B,2BAA2B,CAAC;AAEhC,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,QAAQ,EAAE,OAAO,EAAE,CAAM;CAC1B;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAE,OAAO,EAAO,QAiB3E"}
1
+ {"version":3,"file":"webgl-command-buffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-command-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAO1C,aAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,yBAAyB,CAAC;CACpC,CAAC;AAEF,aAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO,EAAE,0BAA0B,CAAC;CACrC,CAAC;AAEF,aAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO,EAAE,0BAA0B,CAAC;CACrC,CAAC;AAEF,aAAK,2BAA2B,GAAG;IACjC,IAAI,EAAE,yBAAyB,CAAC;IAChC,OAAO,EAAE,2BAA2B,CAAC;CACtC,CAAC;AAEF,aAAK,OAAO,GACR,yBAAyB,GACzB,0BAA0B,GAC1B,0BAA0B,GAC1B,2BAA2B,CAAC;AAEhC,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,QAAQ,EAAE,OAAO,EAAE,CAAM;CAC1B;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,GAAE,OAAO,EAAO,QAiB3E"}
@@ -1,49 +1,50 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
1
2
  import GL from '@luma.gl/constants';
2
3
  function cast(value) {
3
- return value;
4
+ return value;
4
5
  }
5
6
  export default class CommandBuffer {
6
- constructor() {
7
- this.commands = [];
8
- }
7
+ constructor() {
8
+ _defineProperty(this, "commands", []);
9
+ }
9
10
  }
10
- export function submitCommands(device, commands = []) {
11
- for (const command of commands) {
12
- switch (command.name) {
13
- case 'copy-buffer-to-buffer':
14
- _copyBufferToBuffer(device, command.options);
15
- break;
16
- case 'copy-buffer-to-texture':
17
- _copyBufferToTexture(device, command.options);
18
- break;
19
- case 'copy-texture-to-buffer':
20
- _copyTextureToBuffer(device, command.options);
21
- break;
22
- case 'copy-texture-to-texture':
23
- _copyTextureToTexture(device, command.options);
24
- break;
25
- }
11
+ export function submitCommands(device) {
12
+ let commands = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
13
+ for (const command of commands) {
14
+ switch (command.name) {
15
+ case 'copy-buffer-to-buffer':
16
+ _copyBufferToBuffer(device, command.options);
17
+ break;
18
+ case 'copy-buffer-to-texture':
19
+ _copyBufferToTexture(device, command.options);
20
+ break;
21
+ case 'copy-texture-to-buffer':
22
+ _copyTextureToBuffer(device, command.options);
23
+ break;
24
+ case 'copy-texture-to-texture':
25
+ _copyTextureToTexture(device, command.options);
26
+ break;
26
27
  }
28
+ }
27
29
  }
28
30
  function _copyBufferToBuffer(device, options) {
29
- const source = cast(options.source);
30
- const destination = cast(options.destination);
31
- const { gl2 } = device;
32
- if (gl2) {
33
- // In WebGL2 we can perform the copy on the GPU
34
- // Use GL.COPY_READ_BUFFER+GL.COPY_WRITE_BUFFER avoid disturbing other targets and locking type
35
- gl2.bindBuffer(GL.COPY_READ_BUFFER, source.handle);
36
- gl2.bindBuffer(GL.COPY_WRITE_BUFFER, destination.handle);
37
- gl2.copyBufferSubData(GL.COPY_READ_BUFFER, GL.COPY_WRITE_BUFFER, options.sourceOffset ?? 0, options.destinationOffset ?? 0, options.size);
38
- gl2.bindBuffer(GL.COPY_READ_BUFFER, null);
39
- gl2.bindBuffer(GL.COPY_WRITE_BUFFER, null);
40
- }
41
- else {
42
- // TODO - in WebGL1 we would have to read back to CPU
43
- // read / write buffer from / to CPU
44
- throw new Error('copyBufferToBuffer not implemented in WebGL1');
45
- }
31
+ const source = cast(options.source);
32
+ const destination = cast(options.destination);
33
+ const {
34
+ gl2
35
+ } = device;
36
+ if (gl2) {
37
+ var _options$sourceOffset, _options$destinationO;
38
+ gl2.bindBuffer(GL.COPY_READ_BUFFER, source.handle);
39
+ gl2.bindBuffer(GL.COPY_WRITE_BUFFER, destination.handle);
40
+ gl2.copyBufferSubData(GL.COPY_READ_BUFFER, GL.COPY_WRITE_BUFFER, (_options$sourceOffset = options.sourceOffset) !== null && _options$sourceOffset !== void 0 ? _options$sourceOffset : 0, (_options$destinationO = options.destinationOffset) !== null && _options$destinationO !== void 0 ? _options$destinationO : 0, options.size);
41
+ gl2.bindBuffer(GL.COPY_READ_BUFFER, null);
42
+ gl2.bindBuffer(GL.COPY_WRITE_BUFFER, null);
43
+ } else {
44
+ throw new Error('copyBufferToBuffer not implemented in WebGL1');
45
+ }
46
46
  }
47
- function _copyBufferToTexture(device, options) { }
48
- function _copyTextureToBuffer(device, options) { }
49
- function _copyTextureToTexture(device, options) { }
47
+ function _copyBufferToTexture(device, options) {}
48
+ function _copyTextureToBuffer(device, options) {}
49
+ function _copyTextureToTexture(device, options) {}
50
+ //# sourceMappingURL=webgl-command-buffer.js.map