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

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 (367) hide show
  1. package/dist/adapter/converters/device-parameters.js +199 -136
  2. package/dist/adapter/converters/renderbuffer-formats.d.ts +1 -1
  3. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
  4. package/dist/adapter/converters/renderbuffer-formats.js +62 -176
  5. package/dist/adapter/converters/sampler-parameters.js +149 -206
  6. package/dist/adapter/converters/texture-formats.d.ts +2 -2
  7. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  8. package/dist/adapter/converters/texture-formats.js +437 -890
  9. package/dist/adapter/converters/vertex-formats.js +15 -33
  10. package/dist/adapter/device-helpers/device-features.js +119 -100
  11. package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
  12. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  13. package/dist/adapter/device-helpers/device-limits.js +88 -86
  14. package/dist/adapter/device-helpers/get-device-info.js +42 -43
  15. package/dist/adapter/device-helpers/is-old-ie.js +9 -6
  16. package/dist/adapter/helpers/attribute-utils.js +50 -74
  17. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  18. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  19. package/dist/adapter/helpers/get-shader-info.js +27 -0
  20. package/dist/adapter/helpers/get-shader-layout.js +307 -296
  21. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  22. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  23. package/dist/adapter/helpers/parse-shader-compiler-log.js +32 -33
  24. package/dist/adapter/helpers/set-uniform.js +67 -110
  25. package/dist/adapter/helpers/uniforms.js +80 -85
  26. package/dist/adapter/objects/constants-to-keys.js +33 -33
  27. package/dist/adapter/objects/webgl-renderbuffer.d.ts +1 -1
  28. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  29. package/dist/adapter/objects/webgl-renderbuffer.js +67 -86
  30. package/dist/adapter/objects/webgl-resource.js +213 -205
  31. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
  32. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  33. package/dist/adapter/objects/webgl-vertex-array-object.js +74 -76
  34. package/dist/adapter/resources/webgl-buffer.js +150 -147
  35. package/dist/adapter/resources/webgl-command-buffer.d.ts +5 -5
  36. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  37. package/dist/adapter/resources/webgl-command-buffer.js +39 -55
  38. package/dist/adapter/resources/webgl-command-encoder.js +25 -49
  39. package/dist/adapter/resources/webgl-external-texture.js +91 -1
  40. package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
  41. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  42. package/dist/adapter/resources/webgl-framebuffer.js +231 -258
  43. package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
  44. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  45. package/dist/adapter/resources/webgl-render-pass.js +8 -18
  46. package/dist/adapter/resources/webgl-render-pipeline.js +316 -378
  47. package/dist/adapter/resources/webgl-sampler.js +42 -47
  48. package/dist/adapter/resources/webgl-shader.d.ts +1 -2
  49. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  50. package/dist/adapter/resources/webgl-shader.js +58 -68
  51. package/dist/adapter/resources/webgl-texture.d.ts +5 -5
  52. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  53. package/dist/adapter/resources/webgl-texture.js +661 -815
  54. package/dist/adapter/webgl-canvas-context.js +55 -49
  55. package/dist/adapter/webgl-device.js +288 -338
  56. package/dist/bundle.js +1 -2
  57. package/dist/classic/accessor.js +120 -127
  58. package/dist/classic/buffer.d.ts +1 -1
  59. package/dist/classic/buffer.d.ts.map +1 -1
  60. package/dist/classic/buffer.js +325 -356
  61. package/dist/classic/typed-array-utils.d.ts +1 -1
  62. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  63. package/dist/classic/typed-array-utils.js +91 -101
  64. package/dist/context/context/create-browser-context.d.ts +1 -2
  65. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  66. package/dist/context/context/create-browser-context.js +61 -52
  67. package/dist/context/context/create-headless-context.d.ts +1 -1
  68. package/dist/context/context/create-headless-context.d.ts.map +1 -1
  69. package/dist/context/context/create-headless-context.js +26 -33
  70. package/dist/context/context/webgl-checks.js +25 -20
  71. package/dist/context/debug/spector.d.ts +1 -2
  72. package/dist/context/debug/spector.d.ts.map +1 -1
  73. package/dist/context/debug/spector.js +53 -62
  74. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  75. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  76. package/dist/context/debug/webgl-developer-tools.js +106 -93
  77. package/dist/context/parameters/unified-parameter-api.js +91 -55
  78. package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
  79. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  80. package/dist/context/parameters/webgl-parameter-tables.js +462 -423
  81. package/dist/context/polyfill/context-data.js +16 -12
  82. package/dist/context/polyfill/get-parameter-polyfill.js +91 -76
  83. package/dist/context/polyfill/polyfill-context.js +75 -80
  84. package/dist/context/polyfill/polyfill-table.js +133 -139
  85. package/dist/context/polyfill/polyfill-vertex-array-object.js +255 -297
  86. package/dist/context/state-tracker/deep-array-equal.js +16 -18
  87. package/dist/context/state-tracker/track-context-state.js +183 -161
  88. package/dist/context/state-tracker/with-parameters.js +43 -35
  89. package/dist/dist.min.js +1 -0
  90. package/dist/es5/adapter/converters/device-parameters.js +3 -38
  91. package/dist/es5/adapter/converters/device-parameters.js.map +1 -1
  92. package/dist/es5/adapter/converters/renderbuffer-formats.js +2 -14
  93. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -1
  94. package/dist/es5/adapter/converters/sampler-parameters.js +2 -65
  95. package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -1
  96. package/dist/es5/adapter/converters/texture-formats.js +9 -81
  97. package/dist/es5/adapter/converters/texture-formats.js.map +1 -1
  98. package/dist/es5/adapter/converters/vertex-formats.js +0 -12
  99. package/dist/es5/adapter/converters/vertex-formats.js.map +1 -1
  100. package/dist/es5/adapter/device-helpers/device-features.js +6 -40
  101. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
  102. package/dist/es5/adapter/device-helpers/device-limits.js +0 -10
  103. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
  104. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -10
  105. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
  106. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -1
  107. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -1
  108. package/dist/es5/adapter/helpers/attribute-utils.js +3 -25
  109. package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -1
  110. package/dist/es5/adapter/helpers/get-shader-info.js +31 -0
  111. package/dist/es5/adapter/helpers/get-shader-info.js.map +1 -0
  112. package/dist/es5/adapter/helpers/get-shader-layout.js +23 -101
  113. package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -1
  114. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +6 -24
  115. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  116. package/dist/es5/adapter/helpers/set-uniform.js +0 -33
  117. package/dist/es5/adapter/helpers/set-uniform.js.map +1 -1
  118. package/dist/es5/adapter/helpers/uniforms.js +13 -37
  119. package/dist/es5/adapter/helpers/uniforms.js.map +1 -1
  120. package/dist/es5/adapter/objects/constants-to-keys.js +1 -12
  121. package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -1
  122. package/dist/es5/adapter/objects/webgl-renderbuffer.js +5 -33
  123. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -1
  124. package/dist/es5/adapter/objects/webgl-resource.js +6 -60
  125. package/dist/es5/adapter/objects/webgl-resource.js.map +1 -1
  126. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +7 -35
  127. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  128. package/dist/es5/adapter/resources/webgl-buffer.js +20 -66
  129. package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -1
  130. package/dist/es5/adapter/resources/webgl-command-buffer.js +6 -32
  131. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -1
  132. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -18
  133. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -1
  134. package/dist/es5/adapter/resources/webgl-external-texture.js.map +1 -1
  135. package/dist/es5/adapter/resources/webgl-framebuffer.js +10 -82
  136. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -1
  137. package/dist/es5/adapter/resources/webgl-render-pass.js +2 -19
  138. package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -1
  139. package/dist/es5/adapter/resources/webgl-render-pipeline.js +24 -133
  140. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -1
  141. package/dist/es5/adapter/resources/webgl-sampler.js +2 -28
  142. package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -1
  143. package/dist/es5/adapter/resources/webgl-shader.js +13 -52
  144. package/dist/es5/adapter/resources/webgl-shader.js.map +1 -1
  145. package/dist/es5/adapter/resources/webgl-texture.js +137 -291
  146. package/dist/es5/adapter/resources/webgl-texture.js.map +1 -1
  147. package/dist/es5/adapter/webgl-canvas-context.js +0 -24
  148. package/dist/es5/adapter/webgl-canvas-context.js.map +1 -1
  149. package/dist/es5/adapter/webgl-device.js +40 -127
  150. package/dist/es5/adapter/webgl-device.js.map +1 -1
  151. package/dist/es5/bundle.js +0 -1
  152. package/dist/es5/bundle.js.map +1 -1
  153. package/dist/es5/classic/accessor.js +1 -31
  154. package/dist/es5/classic/accessor.js.map +1 -1
  155. package/dist/es5/classic/buffer.js +32 -102
  156. package/dist/es5/classic/buffer.js.map +1 -1
  157. package/dist/es5/classic/typed-array-utils.js +10 -37
  158. package/dist/es5/classic/typed-array-utils.js.map +1 -1
  159. package/dist/es5/context/context/create-browser-context.js +4 -21
  160. package/dist/es5/context/context/create-browser-context.js.map +1 -1
  161. package/dist/es5/context/context/create-headless-context.js +8 -21
  162. package/dist/es5/context/context/create-headless-context.js.map +1 -1
  163. package/dist/es5/context/context/webgl-checks.js +4 -14
  164. package/dist/es5/context/context/webgl-checks.js.map +1 -1
  165. package/dist/es5/context/debug/spector.js +20 -54
  166. package/dist/es5/context/debug/spector.js.map +1 -1
  167. package/dist/es5/context/debug/webgl-developer-tools.js +19 -65
  168. package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -1
  169. package/dist/es5/context/parameters/unified-parameter-api.js +3 -28
  170. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
  171. package/dist/es5/context/parameters/webgl-parameter-tables.js +18 -65
  172. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
  173. package/dist/es5/context/polyfill/context-data.js +0 -3
  174. package/dist/es5/context/polyfill/context-data.js.map +1 -1
  175. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -12
  176. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
  177. package/dist/es5/context/polyfill/polyfill-context.js +8 -33
  178. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
  179. package/dist/es5/context/polyfill/polyfill-table.js +3 -27
  180. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
  181. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -70
  182. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  183. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -5
  184. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
  185. package/dist/es5/context/state-tracker/track-context-state.js +10 -53
  186. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
  187. package/dist/es5/context/state-tracker/with-parameters.js +1 -13
  188. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
  189. package/dist/es5/index.js +72 -99
  190. package/dist/es5/index.js.map +1 -1
  191. package/dist/es5/init.js +0 -3
  192. package/dist/es5/init.js.map +1 -1
  193. package/dist/es5/types/webgl.js +0 -1
  194. package/dist/es5/types/webgl.js.map +1 -1
  195. package/dist/es5/types.js.map +1 -1
  196. package/dist/esm/adapter/converters/device-parameters.js +0 -20
  197. package/dist/esm/adapter/converters/device-parameters.js.map +1 -1
  198. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -4
  199. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -1
  200. package/dist/esm/adapter/converters/sampler-parameters.js +2 -57
  201. package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -1
  202. package/dist/esm/adapter/converters/texture-formats.js +8 -52
  203. package/dist/esm/adapter/converters/texture-formats.js.map +1 -1
  204. package/dist/esm/adapter/converters/vertex-formats.js +0 -9
  205. package/dist/esm/adapter/converters/vertex-formats.js.map +1 -1
  206. package/dist/esm/adapter/device-helpers/device-features.js +2 -19
  207. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
  208. package/dist/esm/adapter/device-helpers/device-limits.js +0 -3
  209. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
  210. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -6
  211. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
  212. package/dist/esm/adapter/device-helpers/is-old-ie.js +2 -1
  213. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -1
  214. package/dist/esm/adapter/helpers/attribute-utils.js +0 -17
  215. package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -1
  216. package/dist/esm/adapter/helpers/get-shader-info.js +25 -0
  217. package/dist/esm/adapter/helpers/get-shader-info.js.map +1 -0
  218. package/dist/esm/adapter/helpers/get-shader-layout.js +2 -48
  219. package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -1
  220. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -7
  221. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  222. package/dist/esm/adapter/helpers/set-uniform.js +0 -30
  223. package/dist/esm/adapter/helpers/set-uniform.js.map +1 -1
  224. package/dist/esm/adapter/helpers/uniforms.js +0 -10
  225. package/dist/esm/adapter/helpers/uniforms.js.map +1 -1
  226. package/dist/esm/adapter/objects/constants-to-keys.js +0 -7
  227. package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -1
  228. package/dist/esm/adapter/objects/webgl-renderbuffer.js +2 -18
  229. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -1
  230. package/dist/esm/adapter/objects/webgl-resource.js +10 -57
  231. package/dist/esm/adapter/objects/webgl-resource.js.map +1 -1
  232. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +5 -15
  233. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  234. package/dist/esm/adapter/resources/webgl-buffer.js +12 -40
  235. package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -1
  236. package/dist/esm/adapter/resources/webgl-command-buffer.js +2 -17
  237. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -1
  238. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -12
  239. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -1
  240. package/dist/esm/adapter/resources/webgl-external-texture.js.map +1 -1
  241. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -60
  242. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -1
  243. package/dist/esm/adapter/resources/webgl-render-pass.js +1 -8
  244. package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -1
  245. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -89
  246. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -1
  247. package/dist/esm/adapter/resources/webgl-sampler.js +0 -12
  248. package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -1
  249. package/dist/esm/adapter/resources/webgl-shader.js +2 -16
  250. package/dist/esm/adapter/resources/webgl-shader.js.map +1 -1
  251. package/dist/esm/adapter/resources/webgl-texture.js +36 -154
  252. package/dist/esm/adapter/resources/webgl-texture.js.map +1 -1
  253. package/dist/esm/adapter/webgl-canvas-context.js +0 -14
  254. package/dist/esm/adapter/webgl-canvas-context.js.map +1 -1
  255. package/dist/esm/adapter/webgl-device.js +19 -89
  256. package/dist/esm/adapter/webgl-device.js.map +1 -1
  257. package/dist/esm/bundle.js +0 -1
  258. package/dist/esm/bundle.js.map +1 -1
  259. package/dist/esm/classic/accessor.js +10 -34
  260. package/dist/esm/classic/accessor.js.map +1 -1
  261. package/dist/esm/classic/buffer.js +15 -71
  262. package/dist/esm/classic/buffer.js.map +1 -1
  263. package/dist/esm/classic/typed-array-utils.js +0 -20
  264. package/dist/esm/classic/typed-array-utils.js.map +1 -1
  265. package/dist/esm/context/context/create-browser-context.js +6 -14
  266. package/dist/esm/context/context/create-browser-context.js.map +1 -1
  267. package/dist/esm/context/context/create-headless-context.js +2 -6
  268. package/dist/esm/context/context/create-headless-context.js.map +1 -1
  269. package/dist/esm/context/context/webgl-checks.js +0 -3
  270. package/dist/esm/context/context/webgl-checks.js.map +1 -1
  271. package/dist/esm/context/debug/spector.js +2 -14
  272. package/dist/esm/context/debug/spector.js.map +1 -1
  273. package/dist/esm/context/debug/webgl-developer-tools.js +4 -22
  274. package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -1
  275. package/dist/esm/context/parameters/unified-parameter-api.js +2 -13
  276. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
  277. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -19
  278. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
  279. package/dist/esm/context/polyfill/context-data.js +0 -2
  280. package/dist/esm/context/polyfill/context-data.js.map +1 -1
  281. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -5
  282. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
  283. package/dist/esm/context/polyfill/polyfill-context.js +14 -21
  284. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
  285. package/dist/esm/context/polyfill/polyfill-table.js +0 -23
  286. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
  287. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -70
  288. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  289. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -4
  290. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
  291. package/dist/esm/context/state-tracker/track-context-state.js +11 -45
  292. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
  293. package/dist/esm/context/state-tracker/with-parameters.js +0 -6
  294. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
  295. package/dist/esm/index.js.map +1 -1
  296. package/dist/esm/init.js.map +1 -1
  297. package/dist/esm/types/webgl.js.map +1 -1
  298. package/dist/esm/types.js.map +1 -1
  299. package/dist/index.js +39 -25
  300. package/dist/init.js +1 -2
  301. package/dist/types/webgl.d.ts +20 -20
  302. package/dist/types/webgl.d.ts.map +1 -1
  303. package/dist/types/webgl.js +0 -1
  304. package/dist/types.d.ts +1 -1
  305. package/dist/types.d.ts.map +1 -1
  306. package/dist/types.js +0 -1
  307. package/package.json +8 -8
  308. package/src/adapter/helpers/get-shader-info.ts +37 -0
  309. package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
  310. package/src/adapter/resources/webgl-render-pass.ts +1 -1
  311. package/src/adapter/resources/webgl-shader.ts +2 -2
  312. package/src/adapter/webgl-device.ts +1 -1
  313. package/src/context/debug/webgl-developer-tools.ts +0 -1
  314. package/src/types/webgl.ts +4 -4
  315. package/dist/adapter/converters/device-parameters.js.map +0 -1
  316. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  317. package/dist/adapter/converters/sampler-parameters.js.map +0 -1
  318. package/dist/adapter/converters/texture-formats.js.map +0 -1
  319. package/dist/adapter/converters/vertex-formats.js.map +0 -1
  320. package/dist/adapter/device-helpers/device-features.js.map +0 -1
  321. package/dist/adapter/device-helpers/device-limits.js.map +0 -1
  322. package/dist/adapter/device-helpers/get-device-info.js.map +0 -1
  323. package/dist/adapter/device-helpers/is-old-ie.js.map +0 -1
  324. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  325. package/dist/adapter/helpers/get-shader-layout.js.map +0 -1
  326. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  327. package/dist/adapter/helpers/set-uniform.js.map +0 -1
  328. package/dist/adapter/helpers/uniforms.js.map +0 -1
  329. package/dist/adapter/objects/constants-to-keys.js.map +0 -1
  330. package/dist/adapter/objects/webgl-renderbuffer.js.map +0 -1
  331. package/dist/adapter/objects/webgl-resource.js.map +0 -1
  332. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  333. package/dist/adapter/resources/webgl-buffer.js.map +0 -1
  334. package/dist/adapter/resources/webgl-command-buffer.js.map +0 -1
  335. package/dist/adapter/resources/webgl-command-encoder.js.map +0 -1
  336. package/dist/adapter/resources/webgl-external-texture.js.map +0 -1
  337. package/dist/adapter/resources/webgl-framebuffer.js.map +0 -1
  338. package/dist/adapter/resources/webgl-render-pass.js.map +0 -1
  339. package/dist/adapter/resources/webgl-render-pipeline.js.map +0 -1
  340. package/dist/adapter/resources/webgl-sampler.js.map +0 -1
  341. package/dist/adapter/resources/webgl-shader.js.map +0 -1
  342. package/dist/adapter/resources/webgl-texture.js.map +0 -1
  343. package/dist/adapter/webgl-canvas-context.js.map +0 -1
  344. package/dist/adapter/webgl-device.js.map +0 -1
  345. package/dist/bundle.js.map +0 -1
  346. package/dist/classic/accessor.js.map +0 -1
  347. package/dist/classic/buffer.js.map +0 -1
  348. package/dist/classic/typed-array-utils.js.map +0 -1
  349. package/dist/context/context/create-browser-context.js.map +0 -1
  350. package/dist/context/context/create-headless-context.js.map +0 -1
  351. package/dist/context/context/webgl-checks.js.map +0 -1
  352. package/dist/context/debug/spector.js.map +0 -1
  353. package/dist/context/debug/webgl-developer-tools.js.map +0 -1
  354. package/dist/context/parameters/unified-parameter-api.js.map +0 -1
  355. package/dist/context/parameters/webgl-parameter-tables.js.map +0 -1
  356. package/dist/context/polyfill/context-data.js.map +0 -1
  357. package/dist/context/polyfill/get-parameter-polyfill.js.map +0 -1
  358. package/dist/context/polyfill/polyfill-context.js.map +0 -1
  359. package/dist/context/polyfill/polyfill-table.js.map +0 -1
  360. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  361. package/dist/context/state-tracker/deep-array-equal.js.map +0 -1
  362. package/dist/context/state-tracker/track-context-state.js.map +0 -1
  363. package/dist/context/state-tracker/with-parameters.js.map +0 -1
  364. package/dist/index.js.map +0 -1
  365. package/dist/init.js.map +0 -1
  366. package/dist/types/webgl.js.map +0 -1
  367. package/dist/types.js.map +0 -1
@@ -1,54 +1,32 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
11
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
12
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
13
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
15
  var _api = require("@luma.gl/api");
25
-
26
16
  var _webglChecks = require("../../context/context/webgl-checks");
27
-
28
17
  var _webglDevice = _interopRequireDefault(require("../webgl-device"));
29
-
30
18
  var _constantsToKeys = require("./constants-to-keys");
31
-
32
19
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
33
-
34
20
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
35
-
36
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
37
-
21
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
38
22
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
39
-
40
23
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
-
42
24
  var ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual methods';
43
-
44
25
  var WebGLResource = function (_Resource) {
45
26
  (0, _inherits2.default)(WebGLResource, _Resource);
46
-
47
27
  var _super = _createSuper(WebGLResource);
48
-
49
28
  function WebGLResource(device, props, defaultProps) {
50
29
  var _this;
51
-
52
30
  (0, _classCallCheck2.default)(this, WebGLResource);
53
31
  _this = _super.call(this, device, props, defaultProps);
54
32
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "device", void 0);
@@ -60,23 +38,18 @@ var WebGLResource = function (_Resource) {
60
38
  _this.device = _webglDevice.default.attach(device);
61
39
  var gl = _this.device.gl;
62
40
  (0, _webglChecks.assertWebGLContext)(gl);
63
-
64
41
  var _ref = props || {},
65
- id = _ref.id;
66
-
42
+ id = _ref.id;
67
43
  _this.gl = gl;
68
44
  _this.gl2 = gl;
69
45
  _this.id = id || (0, _api.uid)(_this.constructor.name);
70
46
  _this._handle = props === null || props === void 0 ? void 0 : props.handle;
71
-
72
47
  if (_this._handle === undefined) {
73
48
  _this._handle = _this._createHandle();
74
49
  }
75
-
76
50
  _this.byteLength = 0;
77
51
  return _this;
78
52
  }
79
-
80
53
  (0, _createClass2.default)(WebGLResource, [{
81
54
  key: "toString",
82
55
  value: function toString() {
@@ -96,50 +69,38 @@ var WebGLResource = function (_Resource) {
96
69
  key: "delete",
97
70
  value: function _delete() {
98
71
  var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
99
- _ref2$deleteChildren = _ref2.deleteChildren,
100
- deleteChildren = _ref2$deleteChildren === void 0 ? false : _ref2$deleteChildren;
101
-
72
+ _ref2$deleteChildren = _ref2.deleteChildren,
73
+ deleteChildren = _ref2$deleteChildren === void 0 ? false : _ref2$deleteChildren;
102
74
  var children = this._handle && this._deleteHandle(this._handle);
103
-
104
75
  if (this._handle) {
105
76
  this.removeStats();
106
77
  }
107
-
108
78
  this._handle = null;
109
-
110
79
  if (children && deleteChildren) {
111
80
  children.filter(Boolean).forEach(function (child) {
112
81
  return child.delete();
113
82
  });
114
83
  }
115
-
116
84
  return this;
117
85
  }
118
86
  }, {
119
87
  key: "bind",
120
88
  value: function bind() {
121
89
  var funcOrHandle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.handle;
122
-
123
90
  if (typeof funcOrHandle !== 'function') {
124
91
  this._bindHandle(funcOrHandle);
125
-
126
92
  return this;
127
93
  }
128
-
129
94
  var value;
130
-
131
95
  if (!this._bound) {
132
96
  this._bindHandle(this.handle);
133
-
134
97
  this._bound = true;
135
98
  value = funcOrHandle();
136
99
  this._bound = false;
137
-
138
100
  this._bindHandle(null);
139
101
  } else {
140
102
  value = funcOrHandle();
141
103
  }
142
-
143
104
  return value;
144
105
  }
145
106
  }, {
@@ -155,11 +116,9 @@ var WebGLResource = function (_Resource) {
155
116
  (0, _api.assert)(pname);
156
117
  var parameters = this.constructor.PARAMETERS || {};
157
118
  var parameter = parameters[pname];
158
-
159
119
  if (parameter) {
160
120
  var isWebgl2 = (0, _webglChecks.isWebGL2)(this.gl);
161
121
  var parameterAvailable = (!('webgl2' in parameter) || isWebgl2) && (!('extension' in parameter) || this.gl.getExtension(parameter.extension));
162
-
163
122
  if (!parameterAvailable) {
164
123
  var webgl1Default = parameter.webgl1;
165
124
  var webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;
@@ -167,7 +126,6 @@ var WebGLResource = function (_Resource) {
167
126
  return defaultValue;
168
127
  }
169
128
  }
170
-
171
129
  return this._getParameter(pname, props);
172
130
  }
173
131
  }, {
@@ -175,25 +133,21 @@ var WebGLResource = function (_Resource) {
175
133
  value: function getParameters() {
176
134
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
177
135
  var parameters = options.parameters,
178
- keys = options.keys;
136
+ keys = options.keys;
179
137
  var PARAMETERS = this.constructor.PARAMETERS || {};
180
138
  var isWebgl2 = (0, _webglChecks.isWebGL2)(this.gl);
181
139
  var values = {};
182
140
  var parameterKeys = parameters || Object.keys(PARAMETERS);
183
-
184
141
  var _iterator = _createForOfIteratorHelper(parameterKeys),
185
- _step;
186
-
142
+ _step;
187
143
  try {
188
144
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
189
145
  var pname = _step.value;
190
146
  var parameter = PARAMETERS[pname];
191
147
  var parameterAvailable = parameter && (!('webgl2' in parameter) || isWebgl2) && (!('extension' in parameter) || this.gl.getExtension(parameter.extension));
192
-
193
148
  if (parameterAvailable) {
194
149
  var key = keys ? (0, _constantsToKeys.getKey)(this.gl, pname) : pname;
195
150
  values[key] = this.getParameter(pname, options);
196
-
197
151
  if (keys && parameter.type === 'GLenum') {
198
152
  values[key] = (0, _constantsToKeys.getKey)(this.gl, values[key]);
199
153
  }
@@ -204,7 +158,6 @@ var WebGLResource = function (_Resource) {
204
158
  } finally {
205
159
  _iterator.f();
206
160
  }
207
-
208
161
  return values;
209
162
  }
210
163
  }, {
@@ -214,22 +167,17 @@ var WebGLResource = function (_Resource) {
214
167
  (0, _api.assert)(pname);
215
168
  var parameters = this.constructor.PARAMETERS || {};
216
169
  var parameter = parameters[pname];
217
-
218
170
  if (parameter) {
219
171
  var isWebgl2 = (0, _webglChecks.isWebGL2)(this.gl);
220
172
  var parameterAvailable = (!('webgl2' in parameter) || isWebgl2) && (!('extension' in parameter) || this.gl.getExtension(parameter.extension));
221
-
222
173
  if (!parameterAvailable) {
223
174
  throw new Error('Parameter not available on this platform');
224
175
  }
225
-
226
176
  if (parameter.type === 'GLenum') {
227
177
  value = (0, _constantsToKeys.getKeyValue)(value);
228
178
  }
229
179
  }
230
-
231
180
  this._setParameter(pname, value);
232
-
233
181
  return this;
234
182
  }
235
183
  }, {
@@ -238,7 +186,6 @@ var WebGLResource = function (_Resource) {
238
186
  for (var pname in parameters) {
239
187
  this.setParameter(pname, parameters[pname]);
240
188
  }
241
-
242
189
  return this;
243
190
  }
244
191
  }, {
@@ -282,6 +229,5 @@ var WebGLResource = function (_Resource) {
282
229
  }]);
283
230
  return WebGLResource;
284
231
  }(_api.Resource);
285
-
286
232
  exports.default = WebGLResource;
287
233
  //# sourceMappingURL=webgl-resource.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapter/objects/webgl-resource.ts"],"names":["ERR_RESOURCE_METHOD_UNDEFINED","WebGLResource","device","props","defaultProps","WebGLDevice","attach","gl","id","gl2","constructor","name","_handle","handle","undefined","_createHandle","byteLength","delete","deleteChildren","children","_deleteHandle","removeStats","filter","Boolean","forEach","child","funcOrHandle","_bindHandle","value","_bound","bind","pname","parameters","PARAMETERS","parameter","isWebgl2","parameterAvailable","getExtension","extension","webgl1Default","webgl1","webgl2Default","webgl2","defaultValue","_getParameter","options","keys","values","parameterKeys","Object","key","getParameter","type","Error","_setParameter","setParameter","className","version","methodNames","Resource"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;AAGA;;AACA;;AAGA;;;;;;;;;;;;AAEA,IAAMA,6BAA6B,GAAG,+CAAtC;;IAK+BC,a;;;;;AAU7B,yBAAYC,MAAZ,EAA4BC,KAA5B,EAA0CC,YAA1C,EAAyE;AAAA;;AAAA;AACvE,8BAAMF,MAAN,EAAcC,KAAd,EAAqBC,YAArB;AADuE;AAAA;AAAA;AAAA;AAAA,yFAJxD,KAIwD;AAAA,6FAF5D,CAE4D;AAGvE,UAAKF,MAAL,GAAcG,qBAAYC,MAAZ,CAAmBJ,MAAnB,CAAd;AACA,QAAMK,EAAE,GAAG,MAAKL,MAAL,CAAYK,EAAvB;AAEA,yCAAmBA,EAAnB;;AAGA,eAAaJ,KAAK,IAAI,EAAtB;AAAA,QAAOK,EAAP,QAAOA,EAAP;;AACA,UAAKD,EAAL,GAAUA,EAAV;AACA,UAAKE,GAAL,GAAWF,EAAX;AACA,UAAKC,EAAL,GAAUA,EAAE,IAAI,cAAI,MAAKE,WAAL,CAAiBC,IAArB,CAAhB;AASA,UAAKC,OAAL,GAAeT,KAAf,aAAeA,KAAf,uBAAeA,KAAK,CAAEU,MAAtB;;AACA,QAAI,MAAKD,OAAL,KAAiBE,SAArB,EAAgC;AAC9B,YAAKF,OAAL,GAAe,MAAKG,aAAL,EAAf;AACD;;AAED,UAAKC,UAAL,GAAkB,CAAlB;AA1BuE;AA2BxE;;;;WAED,oBAA4B;AAC1B,uBAAU,KAAKN,WAAL,CAAiBC,IAA3B,cAAmC,KAAKH,EAAxC;AACD;;;SAED,eAAa;AAUX,aAAO,KAAKI,OAAZ;AACD;;;WAED,mBAAyB;AACvB,WAAKK,MAAL;AACD;;;WAED,mBAA+C;AAAA,sFAAJ,EAAI;AAAA,uCAA9BC,cAA8B;AAAA,UAA9BA,cAA8B,qCAAb,KAAa;;AAG7C,UAAMC,QAAQ,GAAG,KAAKP,OAAL,IAAgB,KAAKQ,aAAL,CAAmB,KAAKR,OAAxB,CAAjC;;AACA,UAAI,KAAKA,OAAT,EAAkB;AAChB,aAAKS,WAAL;AACD;;AACD,WAAKT,OAAL,GAAe,IAAf;;AAIA,UAAIO,QAAQ,IAAID,cAAhB,EAAgC;AAE9BC,QAAAA,QAAQ,CAACG,MAAT,CAAgBC,OAAhB,EAAyBC,OAAzB,CAAiC,UAACC,KAAD;AAAA,iBAAWA,KAAK,CAACR,MAAN,EAAX;AAAA,SAAjC;AACD;;AAED,aAAO,IAAP;AACD;;;WAED,gBAAiC;AAAA,UAA5BS,YAA4B,uEAAb,KAAKb,MAAQ;;AAC/B,UAAI,OAAOa,YAAP,KAAwB,UAA5B,EAAwC;AACtC,aAAKC,WAAL,CAAiBD,YAAjB;;AACA,eAAO,IAAP;AACD;;AAED,UAAIE,KAAJ;;AAEA,UAAI,CAAC,KAAKC,MAAV,EAAkB;AAChB,aAAKF,WAAL,CAAiB,KAAKd,MAAtB;;AACA,aAAKgB,MAAL,GAAc,IAAd;AAEAD,QAAAA,KAAK,GAAGF,YAAY,EAApB;AAEA,aAAKG,MAAL,GAAc,KAAd;;AACA,aAAKF,WAAL,CAAiB,IAAjB;AACD,OARD,MAQO;AACLC,QAAAA,KAAK,GAAGF,YAAY,EAApB;AACD;;AAED,aAAOE,KAAP;AACD;;;WAED,kBAAS;AACP,WAAKE,IAAL,CAAU,IAAV;AACD;;;WAQD,sBAAaC,KAAb,EAAkD;AAAA,UAAtB5B,KAAsB,uEAAT,EAAS;AAChD4B,MAAAA,KAAK,GAAG,kCAAY,KAAKxB,EAAjB,EAAqBwB,KAArB,CAAR;AACA,uBAAOA,KAAP;AAGA,UAAMC,UAAU,GAAG,KAAKtB,WAAL,CAAiBuB,UAAjB,IAA+B,EAAlD;AAGA,UAAMC,SAAS,GAAGF,UAAU,CAACD,KAAD,CAA5B;;AACA,UAAIG,SAAJ,EAAe;AACb,YAAMC,QAAQ,GAAG,2BAAS,KAAK5B,EAAd,CAAjB;AAGA,YAAM6B,kBAAkB,GACtB,CAAC,EAAE,YAAYF,SAAd,KAA4BC,QAA7B,MACC,EAAE,eAAeD,SAAjB,KAA+B,KAAK3B,EAAL,CAAQ8B,YAAR,CAAqBH,SAAS,CAACI,SAA/B,CADhC,CADF;;AAIA,YAAI,CAACF,kBAAL,EAAyB;AACvB,cAAMG,aAAa,GAAGL,SAAS,CAACM,MAAhC;AACA,cAAMC,aAAa,GAAG,YAAYP,SAAZ,GAAwBA,SAAS,CAACQ,MAAlC,GAA2CR,SAAS,CAACM,MAA3E;AACA,cAAMG,YAAY,GAAGR,QAAQ,GAAGM,aAAH,GAAmBF,aAAhD;AACA,iBAAOI,YAAP;AACD;AACF;;AAID,aAAO,KAAKC,aAAL,CAAmBb,KAAnB,EAA0B5B,KAA1B,CAAP;AACD;;;WAKD,yBAA4D;AAAA,UAA9C0C,OAA8C,uEAAJ,EAAI;AAC1D,UAAOb,UAAP,GAA2Ba,OAA3B,CAAOb,UAAP;AAAA,UAAmBc,IAAnB,GAA2BD,OAA3B,CAAmBC,IAAnB;AAIA,UAAMb,UAAU,GAAG,KAAKvB,WAAL,CAAiBuB,UAAjB,IAA+B,EAAlD;AAEA,UAAME,QAAQ,GAAG,2BAAS,KAAK5B,EAAd,CAAjB;AAEA,UAAMwC,MAA2B,GAAG,EAApC;AAGA,UAAMC,aAAa,GAAGhB,UAAU,IAAIiB,MAAM,CAACH,IAAP,CAAYb,UAAZ,CAApC;;AAZ0D,iDAetCe,aAfsC;AAAA;;AAAA;AAe1D,4DAAmC;AAAA,cAAxBjB,KAAwB;AACjC,cAAMG,SAAS,GAAGD,UAAU,CAACF,KAAD,CAA5B;AAGA,cAAMK,kBAAkB,GACtBF,SAAS,KACR,EAAE,YAAYA,SAAd,KAA4BC,QADpB,CAAT,KAEC,EAAE,eAAeD,SAAjB,KAA+B,KAAK3B,EAAL,CAAQ8B,YAAR,CAAqBH,SAAS,CAACI,SAA/B,CAFhC,CADF;;AAKA,cAAIF,kBAAJ,EAAwB;AACtB,gBAAMc,GAAG,GAAGJ,IAAI,GAAG,6BAAO,KAAKvC,EAAZ,EAAgBwB,KAAhB,CAAH,GAA4BA,KAA5C;AACAgB,YAAAA,MAAM,CAACG,GAAD,CAAN,GAAc,KAAKC,YAAL,CAAkBpB,KAAlB,EAAyBc,OAAzB,CAAd;;AACA,gBAAIC,IAAI,IAAIZ,SAAS,CAACkB,IAAV,KAAmB,QAA/B,EAAyC;AACvCL,cAAAA,MAAM,CAACG,GAAD,CAAN,GAAc,6BAAO,KAAK3C,EAAZ,EAAgBwC,MAAM,CAACG,GAAD,CAAtB,CAAd;AACD;AACF;AACF;AA/ByD;AAAA;AAAA;AAAA;AAAA;;AAiC1D,aAAOH,MAAP;AACD;;;WAWD,sBAAahB,KAAb,EAAiCH,KAAjC,EAAmD;AACjDG,MAAAA,KAAK,GAAG,kCAAY,KAAKxB,EAAjB,EAAqBwB,KAArB,CAAR;AACA,uBAAOA,KAAP;AAGA,UAAMC,UAAU,GAAG,KAAKtB,WAAL,CAAiBuB,UAAjB,IAA+B,EAAlD;AAEA,UAAMC,SAAS,GAAGF,UAAU,CAACD,KAAD,CAA5B;;AACA,UAAIG,SAAJ,EAAe;AACb,YAAMC,QAAQ,GAAG,2BAAS,KAAK5B,EAAd,CAAjB;AAGA,YAAM6B,kBAAkB,GACtB,CAAC,EAAE,YAAYF,SAAd,KAA4BC,QAA7B,MACC,EAAE,eAAeD,SAAjB,KAA+B,KAAK3B,EAAL,CAAQ8B,YAAR,CAAqBH,SAAS,CAACI,SAA/B,CADhC,CADF;;AAIA,YAAI,CAACF,kBAAL,EAAyB;AACvB,gBAAM,IAAIiB,KAAJ,CAAU,0CAAV,CAAN;AACD;;AAGD,YAAInB,SAAS,CAACkB,IAAV,KAAmB,QAAvB,EAAiC;AAE/BxB,UAAAA,KAAK,GAAG,kCAAYA,KAAZ,CAAR;AACD;AACF;;AAID,WAAK0B,aAAL,CAAmBvB,KAAnB,EAA0BH,KAA1B;;AACA,aAAO,IAAP;AACD;;;WAMD,uBAAcI,UAAd,EAA2C;AACzC,WAAK,IAAMD,KAAX,IAAoBC,UAApB,EAAgC;AAC9B,aAAKuB,YAAL,CAAkBxB,KAAlB,EAAyBC,UAAU,CAACD,KAAD,CAAnC;AACD;;AACD,aAAO,IAAP;AACD;;;WAGD,4BAAmByB,SAAnB,EAAsCC,OAAtC,EAAuDC,WAAvD,EAA8E;AAC5E,aAAO,6BAAmB,IAAnB,EAAyBF,SAAzB,EAAoCC,OAApC,EAA6CC,WAA7C,CAAP;AACD;;;WAGD,oBAAWvD,KAAX,EAAiC,CAAE;;;WAGnC,yBAAgB;AACd,YAAM,IAAIkD,KAAJ,CAAUrD,6BAAV,CAAN;AACD;;;WAED,yBAAgB;AACd,YAAM,IAAIqD,KAAJ,CAAUrD,6BAAV,CAAN;AACD;;;WAED,qBAAYa,MAAZ,EAAyB;AACvB,YAAM,IAAIwC,KAAJ,CAAUrD,6BAAV,CAAN;AACD;;;WAED,8BAAqB;AACnB,YAAM,IAAIqD,KAAJ,CAAUrD,6BAAV,CAAN;AACD;;;WAED,uBAAc+B,KAAd,EAAyB5B,KAAzB,EAA6D;AAC3D,YAAM,IAAIkD,KAAJ,CAAUrD,6BAAV,CAAN;AACD;;;WAED,uBAAc+B,KAAd,EAAkCH,KAAlC,EAA8C;AAC5C,YAAM,IAAIyB,KAAJ,CAAUrD,6BAAV,CAAN;AACD;;;EAzQ+E2D,a","sourcesContent":["// luma.gl, MIT license\nimport {Resource, assert, uid, stubRemovedMethods} from '@luma.gl/api';\nimport type {Device, ResourceProps} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2, assertWebGLContext} from '../../context/context/webgl-checks';\nimport WebGLDevice from '../webgl-device';\n\n// Requires full GL enum to be bundled... Make these bindings dependent on dynamic import (debug)?\nimport {getKey, getKeyValue} from './constants-to-keys';\n\nconst ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual methods';\n\n/**\n * Base class for WebGL object wrappers\n */\n export default abstract class WebGLResource<Props extends ResourceProps> extends Resource<Props> {\n readonly device: WebGLDevice;\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext;\n private _handle: any;\n\n private _bound = false;\n // Only meaningful for resources that allocate GPU memory\n byteLength = 0;\n\n constructor(device: Device, props: Props, defaultProps: Required<Props>) {\n super(device, props, defaultProps);\n\n this.device = WebGLDevice.attach(device);\n const gl = this.device.gl;\n\n assertWebGLContext(gl);\n\n // extends \n const {id} = props || {};\n this.gl = gl;\n this.gl2 = gl as WebGL2RenderingContext;\n this.id = id || uid(this.constructor.name);\n\n // Set the handle\n // If handle was provided, use it, otherwise create a new handle\n\n // TODO - Stores the handle with context loss information\n // this.glCount = glGetContextLossCount(this.gl);\n\n // Default VertexArray needs to be created with null handle, so compare against undefined\n this._handle = props?.handle;\n if (this._handle === undefined) {\n this._handle = this._createHandle();\n }\n\n this.byteLength = 0;\n }\n\n override toString(): string {\n return `${this.constructor.name}(${this.id})`;\n }\n\n get handle() {\n // TODO - Add context loss handling\n // Will regenerate and reinitialize the handle if necessary\n // const glCount = glGetContextLossCount(this.gl);\n // if (this.glCount !== glCount) {\n // this._handle = this._createHandle(this.props);\n // this._glCount = glCount;\n // // Reinitialize object\n // this.initialize(this.props);\n // }\n return this._handle;\n }\n\n override destroy(): void {\n this.delete();\n }\n\n override delete({deleteChildren = false} = {}) {\n // Delete this object, and get refs to any children\n // @ts-expect-error\n const children = this._handle && this._deleteHandle(this._handle);\n if (this._handle) {\n this.removeStats();\n }\n this._handle = null;\n\n // Optionally, recursively delete the children\n // @ts-expect-error\n if (children && deleteChildren) {\n // @ts-expect-error\n children.filter(Boolean).forEach((child) => child.delete());\n }\n\n return this;\n }\n\n bind(funcOrHandle = this.handle) {\n if (typeof funcOrHandle !== 'function') {\n this._bindHandle(funcOrHandle);\n return this;\n }\n\n let value;\n\n if (!this._bound) {\n this._bindHandle(this.handle);\n this._bound = true;\n\n value = funcOrHandle();\n\n this._bound = false;\n this._bindHandle(null);\n } else {\n value = funcOrHandle();\n }\n\n return value;\n }\n\n unbind() {\n this.bind(null);\n }\n\n /**\n * Query a Resource parameter\n *\n * @param name\n * @return param\n */\n getParameter(pname: number, props: any = {}): any {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-expect-error\n const parameters = this.constructor.PARAMETERS || {};\n\n // Use parameter definitions to handle unsupported parameters\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if we can query for this parameter\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n const webgl1Default = parameter.webgl1;\n const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;\n const defaultValue = isWebgl2 ? webgl2Default : webgl1Default;\n return defaultValue;\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // Attempt to query for it and let WebGL report errors\n return this._getParameter(pname, props);\n }\n\n // Many resources support a getParameter call -\n // getParameters will get all parameters - slow but useful for debugging\n // eslint-disable-next-line complexity\n getParameters(options: {parameters?: any, keys?: any} = {}) {\n const {parameters, keys} = options;\n\n // Get parameter definitions for this Resource\n // @ts-expect-error\n const PARAMETERS = this.constructor.PARAMETERS || {};\n\n const isWebgl2 = isWebGL2(this.gl);\n\n const values: Record<string, any> = {};\n\n // Query all parameters if no list provided\n const parameterKeys = parameters || Object.keys(PARAMETERS);\n\n // WEBGL limits\n for (const pname of parameterKeys) {\n const parameter = PARAMETERS[pname];\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n parameter &&\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (parameterAvailable) {\n const key = keys ? getKey(this.gl, pname) : pname;\n values[key] = this.getParameter(pname, options);\n if (keys && parameter.type === 'GLenum') {\n values[key] = getKey(this.gl, values[key]);\n }\n }\n }\n\n return values;\n }\n\n /**\n * Update a Resource setting\n *\n * @todo - cache parameter to avoid issuing WebGL calls?\n *\n * @param pname - parameter (GL constant, value or key)\n * @param value {GLint|GLfloat|GLenum} \n * @return returns self to enable chaining\n */\n setParameter(pname: GL | string, value: any): this {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-expect-error\n const parameters = this.constructor.PARAMETERS || {};\n\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n throw new Error('Parameter not available on this platform');\n }\n\n // Handle string keys\n if (parameter.type === 'GLenum') {\n // @ts-expect-error\n value = getKeyValue(value);\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // attempt to set it and let WebGL report errors\n this._setParameter(pname, value);\n return this;\n }\n\n /*\n * Batch update resource parameters\n * Assumes the subclass supports a setParameter call\n */\n setParameters(parameters: Record<GL, any>) {\n for (const pname in parameters) {\n this.setParameter(pname, parameters[pname]);\n }\n return this;\n }\n\n // Install stubs for removed methods\n stubRemovedMethods(className: string, version: string, methodNames: string[]) {\n return stubRemovedMethods(this, className, version, methodNames);\n }\n\n // PUBLIC VIRTUAL METHODS\n initialize(props: ResourceProps) {}\n\n // PROTECTED METHODS - These must be overridden by subclass\n _createHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _deleteHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _bindHandle(handle: any) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getOptsFromHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getParameter(pname: GL, props: Record<string, any>): number {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _setParameter(pname: GL | string, value: any) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n // PRIVATE METHODS\n\n /*\n _addStats() {\n const name = this.constructor.name;\n const stats = lumaStats.get('Resource Counts');\n\n stats.get('Resources Created').incrementCount();\n stats.get(`${name}s Created`).incrementCount();\n stats.get(`${name}s Active`).incrementCount();\n }\n\n _removeStats() {\n const name = this.constructor.name;\n const stats = lumaStats.get('Resource Counts');\n\n stats.get(`${name}s Active`).decrementCount();\n }\n\n trackAllocatedMemory(bytes, name = this.constructor.name) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').addCount(bytes);\n stats.get(`${name} Memory`).addCount(bytes);\n this.byteLength = bytes;\n }\n\n trackDeallocatedMemory(name = this.constructor.name) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').subtractCount(this.byteLength);\n stats.get(`${name} Memory`).subtractCount(this.byteLength);\n this.byteLength = 0;\n }\n */\n}\n"],"file":"webgl-resource.js"}
1
+ {"version":3,"file":"webgl-resource.js","names":["_api","require","_webglChecks","_webglDevice","_interopRequireDefault","_constantsToKeys","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","ERR_RESOURCE_METHOD_UNDEFINED","WebGLResource","_Resource","_inherits2","_super","device","props","defaultProps","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","WebGLDevice","attach","gl","assertWebGLContext","_ref","id","gl2","uid","_handle","handle","undefined","_createHandle","byteLength","_createClass2","key","concat","get","destroy","delete","_delete","_ref2","_ref2$deleteChildren","deleteChildren","children","_deleteHandle","removeStats","filter","forEach","child","bind","funcOrHandle","_bindHandle","_bound","unbind","getParameter","pname","getKeyValue","assert","parameters","PARAMETERS","parameter","isWebgl2","isWebGL2","parameterAvailable","getExtension","extension","webgl1Default","webgl1","webgl2Default","webgl2","defaultValue","_getParameter","getParameters","options","keys","values","parameterKeys","_iterator","_step","getKey","type","setParameter","Error","_setParameter","setParameters","stubRemovedMethods","className","version","methodNames","initialize","_getOptsFromHandle","Resource","exports"],"sources":["../../../../src/adapter/objects/webgl-resource.ts"],"sourcesContent":["// luma.gl, MIT license\nimport {Resource, assert, uid, stubRemovedMethods} from '@luma.gl/api';\nimport type {Device, ResourceProps} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2, assertWebGLContext} from '../../context/context/webgl-checks';\nimport WebGLDevice from '../webgl-device';\n\n// Requires full GL enum to be bundled... Make these bindings dependent on dynamic import (debug)?\nimport {getKey, getKeyValue} from './constants-to-keys';\n\nconst ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual methods';\n\n/**\n * Base class for WebGL object wrappers\n */\n export default abstract class WebGLResource<Props extends ResourceProps> extends Resource<Props> {\n readonly device: WebGLDevice;\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext;\n private _handle: any;\n\n private _bound = false;\n // Only meaningful for resources that allocate GPU memory\n byteLength = 0;\n\n constructor(device: Device, props: Props, defaultProps: Required<Props>) {\n super(device, props, defaultProps);\n\n this.device = WebGLDevice.attach(device);\n const gl = this.device.gl;\n\n assertWebGLContext(gl);\n\n // extends \n const {id} = props || {};\n this.gl = gl;\n this.gl2 = gl as WebGL2RenderingContext;\n this.id = id || uid(this.constructor.name);\n\n // Set the handle\n // If handle was provided, use it, otherwise create a new handle\n\n // TODO - Stores the handle with context loss information\n // this.glCount = glGetContextLossCount(this.gl);\n\n // Default VertexArray needs to be created with null handle, so compare against undefined\n this._handle = props?.handle;\n if (this._handle === undefined) {\n this._handle = this._createHandle();\n }\n\n this.byteLength = 0;\n }\n\n override toString(): string {\n return `${this.constructor.name}(${this.id})`;\n }\n\n get handle() {\n // TODO - Add context loss handling\n // Will regenerate and reinitialize the handle if necessary\n // const glCount = glGetContextLossCount(this.gl);\n // if (this.glCount !== glCount) {\n // this._handle = this._createHandle(this.props);\n // this._glCount = glCount;\n // // Reinitialize object\n // this.initialize(this.props);\n // }\n return this._handle;\n }\n\n override destroy(): void {\n this.delete();\n }\n\n override delete({deleteChildren = false} = {}) {\n // Delete this object, and get refs to any children\n // @ts-expect-error\n const children = this._handle && this._deleteHandle(this._handle);\n if (this._handle) {\n this.removeStats();\n }\n this._handle = null;\n\n // Optionally, recursively delete the children\n // @ts-expect-error\n if (children && deleteChildren) {\n // @ts-expect-error\n children.filter(Boolean).forEach((child) => child.delete());\n }\n\n return this;\n }\n\n bind(funcOrHandle = this.handle) {\n if (typeof funcOrHandle !== 'function') {\n this._bindHandle(funcOrHandle);\n return this;\n }\n\n let value;\n\n if (!this._bound) {\n this._bindHandle(this.handle);\n this._bound = true;\n\n value = funcOrHandle();\n\n this._bound = false;\n this._bindHandle(null);\n } else {\n value = funcOrHandle();\n }\n\n return value;\n }\n\n unbind() {\n this.bind(null);\n }\n\n /**\n * Query a Resource parameter\n *\n * @param name\n * @return param\n */\n getParameter(pname: number, props: any = {}): any {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-expect-error\n const parameters = this.constructor.PARAMETERS || {};\n\n // Use parameter definitions to handle unsupported parameters\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if we can query for this parameter\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n const webgl1Default = parameter.webgl1;\n const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;\n const defaultValue = isWebgl2 ? webgl2Default : webgl1Default;\n return defaultValue;\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // Attempt to query for it and let WebGL report errors\n return this._getParameter(pname, props);\n }\n\n // Many resources support a getParameter call -\n // getParameters will get all parameters - slow but useful for debugging\n // eslint-disable-next-line complexity\n getParameters(options: {parameters?: any, keys?: any} = {}) {\n const {parameters, keys} = options;\n\n // Get parameter definitions for this Resource\n // @ts-expect-error\n const PARAMETERS = this.constructor.PARAMETERS || {};\n\n const isWebgl2 = isWebGL2(this.gl);\n\n const values: Record<string, any> = {};\n\n // Query all parameters if no list provided\n const parameterKeys = parameters || Object.keys(PARAMETERS);\n\n // WEBGL limits\n for (const pname of parameterKeys) {\n const parameter = PARAMETERS[pname];\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n parameter &&\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (parameterAvailable) {\n const key = keys ? getKey(this.gl, pname) : pname;\n values[key] = this.getParameter(pname, options);\n if (keys && parameter.type === 'GLenum') {\n values[key] = getKey(this.gl, values[key]);\n }\n }\n }\n\n return values;\n }\n\n /**\n * Update a Resource setting\n *\n * @todo - cache parameter to avoid issuing WebGL calls?\n *\n * @param pname - parameter (GL constant, value or key)\n * @param value {GLint|GLfloat|GLenum} \n * @return returns self to enable chaining\n */\n setParameter(pname: GL | string, value: any): this {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-expect-error\n const parameters = this.constructor.PARAMETERS || {};\n\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n throw new Error('Parameter not available on this platform');\n }\n\n // Handle string keys\n if (parameter.type === 'GLenum') {\n // @ts-expect-error\n value = getKeyValue(value);\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // attempt to set it and let WebGL report errors\n this._setParameter(pname, value);\n return this;\n }\n\n /*\n * Batch update resource parameters\n * Assumes the subclass supports a setParameter call\n */\n setParameters(parameters: Record<GL, any>) {\n for (const pname in parameters) {\n this.setParameter(pname, parameters[pname]);\n }\n return this;\n }\n\n // Install stubs for removed methods\n stubRemovedMethods(className: string, version: string, methodNames: string[]) {\n return stubRemovedMethods(this, className, version, methodNames);\n }\n\n // PUBLIC VIRTUAL METHODS\n initialize(props: ResourceProps) {}\n\n // PROTECTED METHODS - These must be overridden by subclass\n _createHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _deleteHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _bindHandle(handle: any) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getOptsFromHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getParameter(pname: GL, props: Record<string, any>): number {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _setParameter(pname: GL | string, value: any) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n // PRIVATE METHODS\n\n /*\n _addStats() {\n const name = this.constructor.name;\n const stats = lumaStats.get('Resource Counts');\n\n stats.get('Resources Created').incrementCount();\n stats.get(`${name}s Created`).incrementCount();\n stats.get(`${name}s Active`).incrementCount();\n }\n\n _removeStats() {\n const name = this.constructor.name;\n const stats = lumaStats.get('Resource Counts');\n\n stats.get(`${name}s Active`).decrementCount();\n }\n\n trackAllocatedMemory(bytes, name = this.constructor.name) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').addCount(bytes);\n stats.get(`${name} Memory`).addCount(bytes);\n this.byteLength = bytes;\n }\n\n trackDeallocatedMemory(name = this.constructor.name) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').subtractCount(this.byteLength);\n stats.get(`${name} Memory`).subtractCount(this.byteLength);\n this.byteLength = 0;\n }\n */\n}\n"],"mappings":"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"}
@@ -1,46 +1,29 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
11
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
12
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
13
  var _api = require("@luma.gl/api");
21
-
22
14
  var _constants = _interopRequireDefault(require("@luma.gl/constants"));
23
-
24
15
  var _env = require("@probe.gl/env");
25
-
26
16
  var _webglResource = _interopRequireDefault(require("./webgl-resource"));
27
-
28
17
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
29
-
30
18
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
31
-
32
19
  var ERR_ELEMENTS = 'elements must be GL.ELEMENT_ARRAY_BUFFER';
33
-
34
20
  var WEBGLVertexArrayObject = function (_WebGLResource, _Symbol$toStringTag) {
35
21
  (0, _inherits2.default)(WEBGLVertexArrayObject, _WebGLResource);
36
-
37
22
  var _super = _createSuper(WEBGLVertexArrayObject);
38
-
39
23
  function WEBGLVertexArrayObject(device, props) {
40
24
  (0, _classCallCheck2.default)(this, WEBGLVertexArrayObject);
41
25
  return _super.call(this, device, props, {});
42
26
  }
43
-
44
27
  (0, _createClass2.default)(WEBGLVertexArrayObject, [{
45
28
  key: _Symbol$toStringTag,
46
29
  get: function get() {
@@ -66,7 +49,6 @@ var WEBGLVertexArrayObject = function (_WebGLResource, _Symbol$toStringTag) {
66
49
  key: "setElementBuffer",
67
50
  value: function setElementBuffer() {
68
51
  var _this = this;
69
-
70
52
  var elementBuffer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
71
53
  var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
72
54
  (0, _api.assert)(!elementBuffer || elementBuffer.target === _constants.default.ELEMENT_ARRAY_BUFFER, ERR_ELEMENTS);
@@ -79,32 +61,27 @@ var WEBGLVertexArrayObject = function (_WebGLResource, _Symbol$toStringTag) {
79
61
  key: "setBuffer",
80
62
  value: function setBuffer(location, buffer, accessor) {
81
63
  var _this2 = this;
82
-
83
64
  if (buffer.target === _constants.default.ELEMENT_ARRAY_BUFFER) {
84
65
  return this.setElementBuffer(buffer, accessor);
85
66
  }
86
-
87
67
  var size = accessor.size,
88
- type = accessor.type,
89
- stride = accessor.stride,
90
- offset = accessor.offset,
91
- normalized = accessor.normalized,
92
- integer = accessor.integer,
93
- divisor = accessor.divisor;
68
+ type = accessor.type,
69
+ stride = accessor.stride,
70
+ offset = accessor.offset,
71
+ normalized = accessor.normalized,
72
+ integer = accessor.integer,
73
+ divisor = accessor.divisor;
94
74
  var gl = this.gl,
95
- gl2 = this.gl2;
75
+ gl2 = this.gl2;
96
76
  location = Number(location);
97
77
  this.bind(function () {
98
78
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer.handle);
99
-
100
79
  if (integer) {
101
80
  _this2.device.assertWebGL2();
102
-
103
81
  gl2.vertexAttribIPointer(location, size, type, stride, offset);
104
82
  } else {
105
83
  gl.vertexAttribPointer(location, size, type, normalized, stride, offset);
106
84
  }
107
-
108
85
  gl.enableVertexAttribArray(location);
109
86
  gl2.vertexAttribDivisor(location, divisor || 0);
110
87
  });
@@ -114,24 +91,19 @@ var WEBGLVertexArrayObject = function (_WebGLResource, _Symbol$toStringTag) {
114
91
  key: "enable",
115
92
  value: function enable(location) {
116
93
  var _this3 = this;
117
-
118
94
  var _enable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
119
-
120
95
  var canDisableAttributeZero = this.device.isWebGL2 || (0, _env.getBrowser)() === 'Chrome';
121
96
  var canDisableAttribute = canDisableAttributeZero || location !== 0;
122
-
123
97
  if (_enable || canDisableAttribute) {
124
98
  location = Number(location);
125
99
  this.bind(function () {
126
100
  return _enable ? _this3.gl.enableVertexAttribArray(location) : _this3.gl.disableVertexAttribArray(location);
127
101
  });
128
102
  }
129
-
130
103
  return this;
131
104
  }
132
105
  }]);
133
106
  return WEBGLVertexArrayObject;
134
107
  }(_webglResource.default, Symbol.toStringTag);
135
-
136
108
  exports.default = WEBGLVertexArrayObject;
137
109
  //# sourceMappingURL=webgl-vertex-array-object.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapter/objects/webgl-vertex-array-object.ts"],"names":["ERR_ELEMENTS","WEBGLVertexArrayObject","device","props","gl2","createVertexArray","deleteVertexArray","handle","elements","bindVertexArray","elementBuffer","opts","target","GL","ELEMENT_ARRAY_BUFFER","bind","gl","bindBuffer","location","buffer","accessor","setElementBuffer","size","type","stride","offset","normalized","integer","divisor","Number","ARRAY_BUFFER","assertWebGL2","vertexAttribIPointer","vertexAttribPointer","enableVertexAttribArray","vertexAttribDivisor","enable","canDisableAttributeZero","isWebGL2","canDisableAttribute","disableVertexAttribArray","WebGLResource","Symbol","toStringTag"],"mappings":"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","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"],"file":"webgl-vertex-array-object.js"}
1
+ {"version":3,"file":"webgl-vertex-array-object.js","names":["_api","require","_constants","_interopRequireDefault","_env","_webglResource","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","ERR_ELEMENTS","WEBGLVertexArrayObject","_WebGLResource","_Symbol$toStringTag","_inherits2","_super","device","props","_classCallCheck2","_createClass2","key","get","value","_createHandle","gl2","createVertexArray","_deleteHandle","deleteVertexArray","handle","elements","_bindHandle","bindVertexArray","setElementBuffer","_this","elementBuffer","length","undefined","opts","assert","target","GL","ELEMENT_ARRAY_BUFFER","bind","gl","bindBuffer","setBuffer","location","buffer","accessor","_this2","size","type","stride","offset","normalized","integer","divisor","Number","ARRAY_BUFFER","assertWebGL2","vertexAttribIPointer","vertexAttribPointer","enableVertexAttribArray","vertexAttribDivisor","enable","_this3","canDisableAttributeZero","isWebGL2","getBrowser","canDisableAttribute","disableVertexAttribArray","WebGLResource","Symbol","toStringTag","exports"],"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":";;;;;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AAGA,IAAAI,cAAA,GAAAF,sBAAA,CAAAF,OAAA;AAA6C,SAAAK,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,OAAA,CAAAC,SAAA,CAAAP,KAAA,EAAAQ,SAAA,EAAAJ,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAS,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAR,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAQ,OAAA,qBAAAA,OAAA,CAAAC,SAAA,oBAAAD,OAAA,CAAAC,SAAA,CAAAI,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,OAAA,CAAAC,SAAA,CAAAM,OAAA,8CAAAI,CAAA;AAI7C,IAAMC,YAAY,GAAG,0CAA0C;AAAC,IAS3CC,sBAAsB,aAAAC,cAAA,EAAAC,mBAAA;EAAA,IAAAC,UAAA,CAAApB,OAAA,EAAAiB,sBAAA,EAAAC,cAAA;EAAA,IAAAG,MAAA,GAAA5B,YAAA,CAAAwB,sBAAA;EAKzC,SAAAA,uBAAYK,MAAmB,EAAEC,KAA8B,EAAE;IAAA,IAAAC,gBAAA,CAAAxB,OAAA,QAAAiB,sBAAA;IAAA,OAAAI,MAAA,CAAAP,IAAA,OAEzDQ,MAAM,EAAEC,KAAK,EAAE,CAAC,CAAC;EACzB;EAAC,IAAAE,aAAA,CAAAzB,OAAA,EAAAiB,sBAAA;IAAAS,GAAA,EAAAP,mBAAA;IAAAQ,GAAA,EAPF,SAAAA,IAAA,EAA4C;MACzC,OAAO,uBAAuB;IAChC;EAAC;IAAAD,GAAA;IAAAE,KAAA,EAOD,SAAAC,cAAA,EAAyB;MACvB,OAAO,IAAI,CAACC,GAAG,CAACC,iBAAiB,EAAE;IACrC;EAAC;IAAAL,GAAA;IAAAE,KAAA,EAED,SAAAI,cAAA,EAA+B;MAC7B,IAAI,CAACF,GAAG,CAACG,iBAAiB,CAAC,IAAI,CAACC,MAAM,CAAC;MAEvC,OAAO,CAAC,IAAI,CAACC,QAAQ,CAAC;IAExB;EAAC;IAAAT,GAAA;IAAAE,KAAA,EAED,SAAAQ,YAAqBF,MAA8B,EAAQ;MACzD,IAAI,CAACJ,GAAG,CAACO,eAAe,CAACH,MAAM,CAAC;IAClC;EAAC;IAAAR,GAAA;IAAAE,KAAA,EAID,SAAAU,iBAAA,EAAiE;MAAA,IAAAC,KAAA;MAAA,IAAhDC,aAA4B,GAAAlC,SAAA,CAAAmC,MAAA,QAAAnC,SAAA,QAAAoC,SAAA,GAAApC,SAAA,MAAG,IAAI;MAAA,IAAEqC,IAAI,GAAArC,SAAA,CAAAmC,MAAA,QAAAnC,SAAA,QAAAoC,SAAA,GAAApC,SAAA,MAAG,CAAC,CAAC;MAC7D,IAAAsC,WAAM,EAAC,CAACJ,aAAa,IAAIA,aAAa,CAACK,MAAM,KAAKC,kBAAE,CAACC,oBAAoB,EAAE/B,YAAY,CAAC;MAGxF,IAAI,CAACgC,IAAI,CAAC,YAAM;QACdT,KAAI,CAACU,EAAE,CAACC,UAAU,CAACJ,kBAAE,CAACC,oBAAoB,EAAEP,aAAa,GAAGA,aAAa,CAACN,MAAM,GAAG,IAAI,CAAC;MAC1F,CAAC,CAAC;MAEF,OAAO,IAAI;IACb;EAAC;IAAAR,GAAA;IAAAE,KAAA,EAGD,SAAAuB,UAAUC,QAAgB,EAAEC,MAAc,EAAEC,QAAa,EAAQ;MAAA,IAAAC,MAAA;MAE/D,IAAIF,MAAM,CAACR,MAAM,KAAKC,kBAAE,CAACC,oBAAoB,EAAE;QAC7C,OAAO,IAAI,CAACT,gBAAgB,CAACe,MAAM,EAAEC,QAAQ,CAAC;MAChD;MAEA,IAAOE,IAAI,GAAwDF,QAAQ,CAApEE,IAAI;QAAEC,IAAI,GAAkDH,QAAQ,CAA9DG,IAAI;QAAEC,MAAM,GAA0CJ,QAAQ,CAAxDI,MAAM;QAAEC,MAAM,GAAkCL,QAAQ,CAAhDK,MAAM;QAAEC,UAAU,GAAsBN,QAAQ,CAAxCM,UAAU;QAAEC,OAAO,GAAaP,QAAQ,CAA5BO,OAAO;QAAEC,OAAO,GAAIR,QAAQ,CAAnBQ,OAAO;MAE/D,IAAOb,EAAE,GAAS,IAAI,CAAfA,EAAE;QAAEnB,GAAG,GAAI,IAAI,CAAXA,GAAG;MACdsB,QAAQ,GAAGW,MAAM,CAACX,QAAQ,CAAC;MAE3B,IAAI,CAACJ,IAAI,CAAC,YAAM;QAEdC,EAAE,CAACC,UAAU,CAACD,EAAE,CAACe,YAAY,EAAEX,MAAM,CAACnB,MAAM,CAAC;QAG7C,IAAI2B,OAAO,EAAE;UACXN,MAAI,CAACjC,MAAM,CAAC2C,YAAY,EAAE;UAC1BnC,GAAG,CAACoC,oBAAoB,CAACd,QAAQ,EAAEI,IAAI,EAAEC,IAAI,EAAEC,MAAM,EAAEC,MAAM,CAAC;QAChE,CAAC,MAAM;UAELV,EAAE,CAACkB,mBAAmB,CAACf,QAAQ,EAAEI,IAAI,EAAEC,IAAI,EAAEG,UAAU,EAAEF,MAAM,EAAEC,MAAM,CAAC;QAC1E;QACAV,EAAE,CAACmB,uBAAuB,CAAChB,QAAQ,CAAC;QACpCtB,GAAG,CAACuC,mBAAmB,CAACjB,QAAQ,EAAEU,OAAO,IAAI,CAAC,CAAC;MAGjD,CAAC,CAAC;MAEF,OAAO,IAAI;IACb;EAAC;IAAApC,GAAA;IAAAE,KAAA,EAQD,SAAA0C,OAAOlB,QAAgB,EAAuB;MAAA,IAAAmB,MAAA;MAAA,IAArBD,OAAM,GAAAhE,SAAA,CAAAmC,MAAA,QAAAnC,SAAA,QAAAoC,SAAA,GAAApC,SAAA,MAAG,IAAI;MAEpC,IAAMkE,uBAAuB,GAAG,IAAI,CAAClD,MAAM,CAACmD,QAAQ,IAAI,IAAAC,eAAU,GAAE,KAAK,QAAQ;MACjF,IAAMC,mBAAmB,GAAGH,uBAAuB,IAAIpB,QAAQ,KAAK,CAAC;MAErE,IAAIkB,OAAM,IAAIK,mBAAmB,EAAE;QACjCvB,QAAQ,GAAGW,MAAM,CAACX,QAAQ,CAAC;QAC3B,IAAI,CAACJ,IAAI,CAAC;UAAA,OACRsB,OAAM,GACFC,MAAI,CAACtB,EAAE,CAACmB,uBAAuB,CAAChB,QAAQ,CAAC,GACzCmB,MAAI,CAACtB,EAAE,CAAC2B,wBAAwB,CAACxB,QAAQ,CAAC;QAAA,EAC/C;MACH;MACA,OAAO,IAAI;IACb;EAAC;EAAA,OAAAnC,sBAAA;AAAA,EA3FiD4D,sBAAa,EAClDC,MAAM,CAACC,WAAW;AAAAC,OAAA,CAAAhF,OAAA,GAAAiB,sBAAA"}