@luma.gl/webgl 8.5.7 → 8.6.0-alpha.1

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 (633) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +5 -0
  4. package/dist/bundle.js.map +1 -0
  5. package/dist/classes/accessor.d.ts +28 -0
  6. package/dist/classes/accessor.d.ts.map +1 -0
  7. package/dist/classes/accessor.js +112 -0
  8. package/dist/classes/accessor.js.map +1 -0
  9. package/dist/classes/accessor.ts.disabled +159 -0
  10. package/dist/classes/clear.d.ts +16 -0
  11. package/dist/classes/clear.d.ts.map +1 -0
  12. package/dist/classes/clear.js +102 -0
  13. package/dist/classes/clear.js.map +1 -0
  14. package/dist/classes/copy-and-blit.d.ts +69 -0
  15. package/dist/classes/copy-and-blit.d.ts.map +1 -0
  16. package/dist/classes/copy-and-blit.js +333 -0
  17. package/dist/classes/copy-and-blit.js.map +1 -0
  18. package/dist/classes/framebuffer.d.ts +130 -0
  19. package/dist/classes/framebuffer.d.ts.map +1 -0
  20. package/dist/classes/framebuffer.js +656 -0
  21. package/dist/classes/framebuffer.js.map +1 -0
  22. package/dist/classes/program-configuration.d.ts +27 -0
  23. package/dist/classes/program-configuration.d.ts.map +1 -0
  24. package/dist/classes/program-configuration.js +160 -0
  25. package/dist/classes/program-configuration.js.map +1 -0
  26. package/dist/classes/program.d.ts +61 -0
  27. package/dist/classes/program.d.ts.map +1 -0
  28. package/dist/classes/program.js +368 -0
  29. package/dist/classes/program.js.map +1 -0
  30. package/dist/classes/query.d.ts +27 -0
  31. package/dist/classes/query.d.ts.map +1 -0
  32. package/dist/classes/query.js +144 -0
  33. package/dist/classes/query.js.map +1 -0
  34. package/dist/classes/renderbuffer-formats.d.ts +16 -0
  35. package/dist/classes/renderbuffer-formats.d.ts.map +1 -0
  36. package/dist/classes/renderbuffer-formats.js +185 -0
  37. package/dist/classes/renderbuffer-formats.js.map +1 -0
  38. package/dist/classes/renderbuffer.d.ts +60 -0
  39. package/dist/classes/renderbuffer.d.ts.map +1 -0
  40. package/dist/classes/renderbuffer.js +127 -0
  41. package/dist/classes/renderbuffer.js.map +1 -0
  42. package/dist/classes/texture-2d.d.ts +8 -0
  43. package/dist/classes/texture-2d.d.ts.map +1 -0
  44. package/dist/classes/texture-2d.js +39 -0
  45. package/dist/classes/texture-2d.js.map +1 -0
  46. package/dist/classes/texture-3d.d.ts +28 -0
  47. package/dist/classes/texture-3d.d.ts.map +1 -0
  48. package/dist/classes/texture-3d.js +67 -0
  49. package/dist/classes/texture-3d.js.map +1 -0
  50. package/dist/classes/texture-cube.d.ts +27 -0
  51. package/dist/classes/texture-cube.d.ts.map +1 -0
  52. package/dist/classes/texture-cube.js +131 -0
  53. package/dist/classes/texture-cube.js.map +1 -0
  54. package/dist/classes/texture-formats.d.ts +37 -0
  55. package/dist/classes/texture-formats.d.ts.map +1 -0
  56. package/dist/classes/texture-formats.js +98 -0
  57. package/dist/classes/texture-formats.js.map +1 -0
  58. package/dist/classes/texture.d.ts +118 -0
  59. package/dist/classes/texture.d.ts.map +1 -0
  60. package/dist/classes/texture.js +785 -0
  61. package/dist/classes/texture.js.map +1 -0
  62. package/dist/classes/transform-feedback.d.ts +33 -0
  63. package/dist/classes/transform-feedback.d.ts.map +1 -0
  64. package/dist/classes/transform-feedback.js +197 -0
  65. package/dist/classes/transform-feedback.js.map +1 -0
  66. package/dist/classes/uniform-buffer-layout.d.ts +17 -0
  67. package/dist/classes/uniform-buffer-layout.d.ts.map +1 -0
  68. package/dist/classes/uniform-buffer-layout.js +104 -0
  69. package/dist/classes/uniform-buffer-layout.js.map +1 -0
  70. package/dist/classes/uniforms.d.ts +38 -0
  71. package/dist/classes/uniforms.d.ts.map +1 -0
  72. package/dist/classes/uniforms.js +251 -0
  73. package/dist/classes/uniforms.js.map +1 -0
  74. package/dist/classes/vertex-array-object.d.ts +75 -0
  75. package/dist/classes/vertex-array-object.d.ts.map +1 -0
  76. package/dist/classes/vertex-array-object.js +262 -0
  77. package/dist/classes/vertex-array-object.js.map +1 -0
  78. package/dist/classes/vertex-array.d.ts +75 -0
  79. package/dist/classes/vertex-array.d.ts.map +1 -0
  80. package/dist/classes/vertex-array.js +409 -0
  81. package/dist/classes/vertex-array.js.map +1 -0
  82. package/dist/classes/webgl-buffer.d.ts +98 -0
  83. package/dist/classes/webgl-buffer.d.ts.map +1 -0
  84. package/dist/{esm/classes/buffer.js → classes/webgl-buffer.js} +97 -73
  85. package/dist/classes/webgl-buffer.js.map +1 -0
  86. package/dist/classes/webgl-resource.d.ts +54 -0
  87. package/dist/classes/webgl-resource.d.ts.map +1 -0
  88. package/dist/{esm/classes/resource.js → classes/webgl-resource.js} +31 -52
  89. package/dist/classes/webgl-resource.js.map +1 -0
  90. package/dist/classes/webgl-shader.d.ts +51 -0
  91. package/dist/classes/webgl-shader.d.ts.map +1 -0
  92. package/dist/classes/webgl-shader.js +190 -0
  93. package/dist/classes/webgl-shader.js.map +1 -0
  94. package/dist/context/gl-context.d.ts +15 -0
  95. package/dist/context/gl-context.d.ts.map +1 -0
  96. package/dist/context/gl-context.js +32 -0
  97. package/dist/context/gl-context.js.map +1 -0
  98. package/dist/context/luma-context-data.d.ts +31 -0
  99. package/dist/context/luma-context-data.d.ts.map +1 -0
  100. package/dist/context/luma-context-data.js +5 -0
  101. package/dist/context/luma-context-data.js.map +1 -0
  102. package/dist/debug/debug-program-configuration.d.ts +2 -0
  103. package/dist/debug/debug-program-configuration.d.ts.map +1 -0
  104. package/dist/debug/debug-program-configuration.js +40 -0
  105. package/dist/debug/debug-program-configuration.js.map +1 -0
  106. package/dist/debug/debug-uniforms.d.ts +12 -0
  107. package/dist/debug/debug-uniforms.d.ts.map +1 -0
  108. package/dist/debug/debug-uniforms.js +108 -0
  109. package/dist/debug/debug-uniforms.js.map +1 -0
  110. package/dist/debug/debug-vertex-array.d.ts +5 -0
  111. package/dist/debug/debug-vertex-array.d.ts.map +1 -0
  112. package/dist/debug/debug-vertex-array.js +118 -0
  113. package/dist/debug/debug-vertex-array.js.map +1 -0
  114. package/dist/es5/bundle.js +3 -5
  115. package/dist/es5/bundle.js.map +1 -1
  116. package/dist/es5/classes/accessor.js +76 -108
  117. package/dist/es5/classes/accessor.js.map +1 -1
  118. package/dist/es5/classes/accessor.ts.disabled +159 -0
  119. package/dist/es5/classes/clear.js +33 -48
  120. package/dist/es5/classes/clear.js.map +1 -1
  121. package/dist/es5/classes/copy-and-blit.js +177 -192
  122. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  123. package/dist/es5/classes/framebuffer.js +538 -655
  124. package/dist/es5/classes/framebuffer.js.map +1 -1
  125. package/dist/es5/classes/program-configuration.js +127 -141
  126. package/dist/es5/classes/program-configuration.js.map +1 -1
  127. package/dist/es5/classes/program.js +294 -358
  128. package/dist/es5/classes/program.js.map +1 -1
  129. package/dist/es5/classes/query.js +115 -181
  130. package/dist/es5/classes/query.js.map +1 -1
  131. package/dist/es5/classes/renderbuffer-formats.js +186 -121
  132. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  133. package/dist/es5/classes/renderbuffer.js +104 -128
  134. package/dist/es5/classes/renderbuffer.js.map +1 -1
  135. package/dist/es5/classes/texture-2d.js +16 -39
  136. package/dist/es5/classes/texture-2d.js.map +1 -1
  137. package/dist/es5/classes/texture-3d.js +50 -89
  138. package/dist/es5/classes/texture-3d.js.map +1 -1
  139. package/dist/es5/classes/texture-cube.js +112 -162
  140. package/dist/es5/classes/texture-cube.js.map +1 -1
  141. package/dist/es5/classes/texture-formats.js +73 -42
  142. package/dist/es5/classes/texture-formats.js.map +1 -1
  143. package/dist/es5/classes/texture.js +670 -673
  144. package/dist/es5/classes/texture.js.map +1 -1
  145. package/dist/es5/classes/transform-feedback.js +150 -203
  146. package/dist/es5/classes/transform-feedback.js.map +1 -1
  147. package/dist/es5/classes/uniform-buffer-layout.js +89 -103
  148. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  149. package/dist/es5/classes/uniforms.js +134 -93
  150. package/dist/es5/classes/uniforms.js.map +1 -1
  151. package/dist/es5/classes/vertex-array-object.js +204 -306
  152. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  153. package/dist/es5/classes/vertex-array.js +317 -353
  154. package/dist/es5/classes/vertex-array.js.map +1 -1
  155. package/dist/es5/classes/webgl-buffer.js +391 -0
  156. package/dist/es5/classes/webgl-buffer.js.map +1 -0
  157. package/dist/es5/classes/webgl-resource.js +217 -0
  158. package/dist/es5/classes/webgl-resource.js.map +1 -0
  159. package/dist/es5/classes/webgl-shader.js +213 -0
  160. package/dist/es5/classes/webgl-shader.js.map +1 -0
  161. package/dist/es5/context/gl-context.js +46 -0
  162. package/dist/es5/context/gl-context.js.map +1 -0
  163. package/dist/es5/context/luma-context-data.js +12 -0
  164. package/dist/es5/context/luma-context-data.js.map +1 -0
  165. package/dist/es5/debug/debug-program-configuration.js +20 -48
  166. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  167. package/dist/es5/debug/debug-uniforms.js +72 -114
  168. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  169. package/dist/es5/debug/debug-vertex-array.js +56 -51
  170. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  171. package/dist/es5/features/check-glsl-extension.js +9 -10
  172. package/dist/es5/features/check-glsl-extension.js.map +1 -1
  173. package/dist/es5/features/check-old-ie.js +5 -6
  174. package/dist/es5/features/check-old-ie.js.map +1 -1
  175. package/dist/es5/features/features.js +23 -37
  176. package/dist/es5/features/features.js.map +1 -1
  177. package/dist/es5/features/index.js +8 -8
  178. package/dist/es5/features/index.js.map +1 -1
  179. package/dist/es5/features/limits.js +36 -28
  180. package/dist/es5/features/limits.js.map +1 -1
  181. package/dist/es5/features/webgl-features-table.js +35 -15
  182. package/dist/es5/features/webgl-features-table.js.map +1 -1
  183. package/dist/es5/features/webgl-limits-table.js +160 -120
  184. package/dist/es5/features/webgl-limits-table.js.map +1 -1
  185. package/dist/es5/index.js +144 -90
  186. package/dist/es5/index.js.map +1 -1
  187. package/dist/es5/init.js +12 -36
  188. package/dist/es5/init.js.map +1 -1
  189. package/dist/es5/types.js +2 -0
  190. package/dist/es5/types.js.map +1 -0
  191. package/dist/es5/utils/array-utils-flat.js +13 -14
  192. package/dist/es5/utils/array-utils-flat.js.map +1 -1
  193. package/dist/es5/utils/assert.js +1 -1
  194. package/dist/es5/utils/assert.js.map +1 -1
  195. package/dist/es5/utils/check-props.js +20 -21
  196. package/dist/es5/utils/check-props.js.map +1 -1
  197. package/dist/es5/utils/format-value.js +14 -14
  198. package/dist/es5/utils/format-value.js.map +1 -1
  199. package/dist/es5/utils/index.js +68 -0
  200. package/dist/es5/utils/index.js.map +1 -0
  201. package/dist/es5/utils/is-old-ie.js +2 -3
  202. package/dist/es5/utils/is-old-ie.js.map +1 -1
  203. package/dist/es5/utils/load-file.js +11 -18
  204. package/dist/es5/utils/load-file.js.map +1 -1
  205. package/dist/es5/utils/stub-methods.js +4 -4
  206. package/dist/es5/utils/stub-methods.js.map +1 -1
  207. package/dist/es5/utils/utils.js +5 -10
  208. package/dist/es5/utils/utils.js.map +1 -1
  209. package/dist/es5/webgl-utils/attribute-utils.js +87 -74
  210. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  211. package/dist/es5/webgl-utils/constants-to-keys.js +7 -7
  212. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  213. package/dist/es5/webgl-utils/format-utils.js +21 -17
  214. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  215. package/dist/es5/webgl-utils/get-error.js +18 -18
  216. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  217. package/dist/es5/webgl-utils/index.js +74 -0
  218. package/dist/es5/webgl-utils/index.js.map +1 -0
  219. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +44 -0
  220. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  221. package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
  222. package/dist/es5/webgl-utils/texture-utils.js +35 -29
  223. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  224. package/dist/es5/webgl-utils/typed-array-utils.js +51 -47
  225. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  226. package/dist/esm/bundle.js +2 -4
  227. package/dist/esm/bundle.js.map +1 -1
  228. package/dist/esm/classes/accessor.js +7 -7
  229. package/dist/esm/classes/accessor.js.map +1 -1
  230. package/dist/esm/classes/accessor.ts.disabled +159 -0
  231. package/dist/esm/classes/clear.js +15 -13
  232. package/dist/esm/classes/clear.js.map +1 -1
  233. package/dist/esm/classes/copy-and-blit.js +41 -43
  234. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  235. package/dist/esm/classes/framebuffer.js +336 -308
  236. package/dist/esm/classes/framebuffer.js.map +1 -1
  237. package/dist/esm/classes/program-configuration.js +17 -9
  238. package/dist/esm/classes/program-configuration.js.map +1 -1
  239. package/dist/esm/classes/program.js +69 -44
  240. package/dist/esm/classes/program.js.map +1 -1
  241. package/dist/esm/classes/query.js +17 -14
  242. package/dist/esm/classes/query.js.map +1 -1
  243. package/dist/esm/classes/renderbuffer-formats.js +72 -49
  244. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  245. package/dist/esm/classes/renderbuffer.js +84 -72
  246. package/dist/esm/classes/renderbuffer.js.map +1 -1
  247. package/dist/esm/classes/texture-2d.js +10 -3
  248. package/dist/esm/classes/texture-2d.js.map +1 -1
  249. package/dist/esm/classes/texture-3d.js +14 -11
  250. package/dist/esm/classes/texture-3d.js.map +1 -1
  251. package/dist/esm/classes/texture-cube.js +43 -28
  252. package/dist/esm/classes/texture-cube.js.map +1 -1
  253. package/dist/esm/classes/texture-formats.js +51 -50
  254. package/dist/esm/classes/texture-formats.js.map +1 -1
  255. package/dist/esm/classes/texture.js +164 -49
  256. package/dist/esm/classes/texture.js.map +1 -1
  257. package/dist/esm/classes/transform-feedback.js +24 -13
  258. package/dist/esm/classes/transform-feedback.js.map +1 -1
  259. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  260. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  261. package/dist/esm/classes/uniforms.js +111 -112
  262. package/dist/esm/classes/uniforms.js.map +1 -1
  263. package/dist/esm/classes/vertex-array-object.js +52 -88
  264. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  265. package/dist/esm/classes/vertex-array.js +50 -28
  266. package/dist/esm/classes/vertex-array.js.map +1 -1
  267. package/dist/esm/classes/webgl-buffer.js +379 -0
  268. package/dist/esm/classes/webgl-buffer.js.map +1 -0
  269. package/dist/esm/classes/webgl-resource.js +208 -0
  270. package/dist/esm/classes/webgl-resource.js.map +1 -0
  271. package/dist/esm/classes/webgl-shader.js +190 -0
  272. package/dist/esm/classes/webgl-shader.js.map +1 -0
  273. package/dist/esm/context/gl-context.js +32 -0
  274. package/dist/esm/context/gl-context.js.map +1 -0
  275. package/dist/esm/context/luma-context-data.js +5 -0
  276. package/dist/esm/context/luma-context-data.js.map +1 -0
  277. package/dist/esm/debug/debug-program-configuration.js +4 -4
  278. package/dist/esm/debug/debug-program-configuration.js.map +1 -1
  279. package/dist/esm/debug/debug-uniforms.js +9 -9
  280. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  281. package/dist/esm/debug/debug-vertex-array.js +19 -17
  282. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  283. package/dist/esm/features/check-glsl-extension.js +4 -4
  284. package/dist/esm/features/check-glsl-extension.js.map +1 -1
  285. package/dist/esm/features/check-old-ie.js.map +1 -1
  286. package/dist/esm/features/features.js +14 -13
  287. package/dist/esm/features/features.js.map +1 -1
  288. package/dist/esm/features/index.js.map +1 -1
  289. package/dist/esm/features/limits.js +25 -22
  290. package/dist/esm/features/limits.js.map +1 -1
  291. package/dist/esm/features/webgl-features-table.js +6 -6
  292. package/dist/esm/features/webgl-features-table.js.map +1 -1
  293. package/dist/esm/features/webgl-limits-table.js +43 -42
  294. package/dist/esm/features/webgl-limits-table.js.map +1 -1
  295. package/dist/esm/index.js +13 -15
  296. package/dist/esm/index.js.map +1 -1
  297. package/dist/esm/init.js +4 -23
  298. package/dist/esm/init.js.map +1 -1
  299. package/dist/esm/types.js +2 -0
  300. package/dist/esm/types.js.map +1 -0
  301. package/dist/esm/utils/array-utils-flat.js.map +1 -1
  302. package/dist/esm/utils/assert.js +1 -1
  303. package/dist/esm/utils/assert.js.map +1 -1
  304. package/dist/esm/utils/check-props.js +4 -4
  305. package/dist/esm/utils/check-props.js.map +1 -1
  306. package/dist/esm/utils/format-value.js +4 -4
  307. package/dist/esm/utils/format-value.js.map +1 -1
  308. package/dist/esm/utils/index.js +7 -0
  309. package/dist/esm/utils/index.js.map +1 -0
  310. package/dist/esm/utils/is-old-ie.js +1 -1
  311. package/dist/esm/utils/is-old-ie.js.map +1 -1
  312. package/dist/esm/utils/load-file.js +2 -2
  313. package/dist/esm/utils/load-file.js.map +1 -1
  314. package/dist/esm/utils/stub-methods.js +2 -3
  315. package/dist/esm/utils/stub-methods.js.map +1 -1
  316. package/dist/esm/utils/utils.js +1 -3
  317. package/dist/esm/utils/utils.js.map +1 -1
  318. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  319. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  320. package/dist/esm/webgl-utils/constants-to-keys.js +4 -4
  321. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  322. package/dist/esm/webgl-utils/format-utils.js +16 -15
  323. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  324. package/dist/esm/webgl-utils/get-error.js +1 -1
  325. package/dist/esm/webgl-utils/get-error.js.map +1 -1
  326. package/dist/esm/webgl-utils/index.js +5 -0
  327. package/dist/esm/webgl-utils/index.js.map +1 -0
  328. package/dist/esm/webgl-utils/parse-shader-compiler-log.js +37 -0
  329. package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  330. package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
  331. package/dist/esm/webgl-utils/texture-utils.js +4 -3
  332. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  333. package/dist/esm/webgl-utils/typed-array-utils.js +19 -18
  334. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  335. package/dist/features/check-glsl-extension.d.ts +2 -0
  336. package/dist/features/check-glsl-extension.d.ts.map +1 -0
  337. package/dist/features/check-glsl-extension.js +27 -0
  338. package/dist/features/check-glsl-extension.js.map +1 -0
  339. package/dist/features/check-old-ie.d.ts +2 -0
  340. package/dist/features/check-old-ie.d.ts.map +1 -0
  341. package/dist/features/check-old-ie.js +8 -0
  342. package/dist/features/check-old-ie.js.map +1 -0
  343. package/dist/features/features.d.ts +6 -0
  344. package/dist/features/features.d.ts.map +1 -0
  345. package/dist/features/features.js +67 -0
  346. package/dist/features/features.js.map +1 -0
  347. package/dist/features/index.d.ts +5 -0
  348. package/dist/features/index.d.ts.map +1 -0
  349. package/dist/features/index.js +5 -0
  350. package/dist/features/index.js.map +1 -0
  351. package/dist/features/limits.d.ts +28 -0
  352. package/dist/features/limits.d.ts.map +1 -0
  353. package/dist/features/limits.js +55 -0
  354. package/dist/features/limits.js.map +1 -0
  355. package/dist/features/webgl-features-table.d.ts +30 -0
  356. package/dist/features/webgl-features-table.d.ts.map +1 -0
  357. package/dist/features/webgl-features-table.js +71 -0
  358. package/dist/features/webgl-features-table.js.map +1 -0
  359. package/dist/features/webgl-limits-table.d.ts +161 -0
  360. package/dist/features/webgl-limits-table.d.ts.map +1 -0
  361. package/dist/features/webgl-limits-table.js +161 -0
  362. package/dist/features/webgl-limits-table.js.map +1 -0
  363. package/dist/index.d.ts +33 -0
  364. package/dist/index.d.ts.map +1 -0
  365. package/dist/index.js +33 -0
  366. package/dist/index.js.map +1 -0
  367. package/dist/init.d.ts +5 -0
  368. package/dist/init.d.ts.map +1 -0
  369. package/dist/init.js +30 -0
  370. package/dist/init.js.map +1 -0
  371. package/dist/types.d.ts +9 -0
  372. package/dist/types.d.ts.map +1 -0
  373. package/dist/types.js +2 -0
  374. package/dist/types.js.map +1 -0
  375. package/dist/utils/array-utils-flat.d.ts +9 -0
  376. package/dist/utils/array-utils-flat.d.ts.map +1 -0
  377. package/dist/utils/array-utils-flat.js +39 -0
  378. package/dist/utils/array-utils-flat.js.map +1 -0
  379. package/dist/utils/assert.d.ts +2 -0
  380. package/dist/utils/assert.d.ts.map +1 -0
  381. package/dist/utils/assert.js +6 -0
  382. package/dist/utils/assert.js.map +1 -0
  383. package/dist/utils/check-props.d.ts +2 -0
  384. package/dist/utils/check-props.d.ts.map +1 -0
  385. package/dist/utils/check-props.js +38 -0
  386. package/dist/utils/check-props.js.map +1 -0
  387. package/dist/utils/format-value.d.ts +5 -0
  388. package/dist/utils/format-value.d.ts.map +1 -0
  389. package/dist/utils/format-value.js +50 -0
  390. package/dist/utils/format-value.js.map +1 -0
  391. package/dist/utils/index.d.ts +7 -0
  392. package/dist/utils/index.d.ts.map +1 -0
  393. package/dist/utils/index.js +7 -0
  394. package/dist/utils/index.js.map +1 -0
  395. package/dist/utils/is-old-ie.d.ts +4 -0
  396. package/dist/utils/is-old-ie.d.ts.map +1 -0
  397. package/dist/utils/is-old-ie.js +5 -0
  398. package/dist/utils/is-old-ie.js.map +1 -0
  399. package/dist/utils/load-file.d.ts +4 -0
  400. package/dist/utils/load-file.d.ts.map +1 -0
  401. package/dist/utils/load-file.js +30 -0
  402. package/dist/utils/load-file.js.map +1 -0
  403. package/dist/utils/stub-methods.d.ts +2 -0
  404. package/dist/utils/stub-methods.d.ts.map +1 -0
  405. package/dist/utils/stub-methods.js +16 -0
  406. package/dist/utils/stub-methods.js.map +1 -0
  407. package/dist/utils/utils.d.ts +15 -0
  408. package/dist/utils/utils.d.ts.map +1 -0
  409. package/dist/utils/utils.js +20 -0
  410. package/dist/utils/utils.js.map +1 -0
  411. package/dist/webgl-utils/attribute-utils.d.ts +18 -0
  412. package/dist/webgl-utils/attribute-utils.d.ts.map +1 -0
  413. package/dist/webgl-utils/attribute-utils.js +182 -0
  414. package/dist/webgl-utils/attribute-utils.js.map +1 -0
  415. package/dist/webgl-utils/constants-to-keys.d.ts +4 -0
  416. package/dist/webgl-utils/constants-to-keys.d.ts.map +1 -0
  417. package/dist/webgl-utils/constants-to-keys.js +41 -0
  418. package/dist/webgl-utils/constants-to-keys.js.map +1 -0
  419. package/dist/webgl-utils/format-utils.d.ts +3 -0
  420. package/dist/webgl-utils/format-utils.d.ts.map +1 -0
  421. package/dist/webgl-utils/format-utils.js +45 -0
  422. package/dist/webgl-utils/format-utils.js.map +1 -0
  423. package/dist/webgl-utils/get-error.d.ts +3 -0
  424. package/dist/webgl-utils/get-error.d.ts.map +1 -0
  425. package/dist/webgl-utils/get-error.js +41 -0
  426. package/dist/webgl-utils/get-error.js.map +1 -0
  427. package/dist/webgl-utils/index.d.ts +5 -0
  428. package/dist/webgl-utils/index.d.ts.map +1 -0
  429. package/dist/webgl-utils/index.js +5 -0
  430. package/dist/webgl-utils/index.js.map +1 -0
  431. package/dist/webgl-utils/parse-shader-compiler-log.d.ts +8 -0
  432. package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +1 -0
  433. package/dist/webgl-utils/parse-shader-compiler-log.js +37 -0
  434. package/dist/webgl-utils/parse-shader-compiler-log.js.map +1 -0
  435. package/dist/webgl-utils/request-animation-frame.d.ts +4 -0
  436. package/dist/webgl-utils/request-animation-frame.d.ts.map +1 -0
  437. package/dist/webgl-utils/request-animation-frame.js +7 -0
  438. package/dist/webgl-utils/request-animation-frame.js.map +1 -0
  439. package/dist/webgl-utils/texture-utils.d.ts +11 -0
  440. package/dist/webgl-utils/texture-utils.d.ts.map +1 -0
  441. package/dist/webgl-utils/texture-utils.js +48 -0
  442. package/dist/webgl-utils/texture-utils.js.map +1 -0
  443. package/dist/webgl-utils/typed-array-utils.d.ts +36 -0
  444. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -0
  445. package/dist/webgl-utils/typed-array-utils.js +108 -0
  446. package/dist/webgl-utils/typed-array-utils.js.map +1 -0
  447. package/package.json +9 -8
  448. package/src/bundle.ts +4 -0
  449. package/src/classes/accessor.js +3 -4
  450. package/src/classes/accessor.ts.disabled +159 -0
  451. package/src/classes/{clear.js → clear.ts} +13 -9
  452. package/src/classes/{copy-and-blit.js → copy-and-blit.ts} +113 -22
  453. package/src/classes/{framebuffer.js → framebuffer.ts} +355 -298
  454. package/src/classes/{program-configuration.js → program-configuration.ts} +18 -11
  455. package/src/classes/{program.js → program.ts} +56 -36
  456. package/src/classes/{query.js → query.ts} +28 -22
  457. package/src/classes/{renderbuffer-formats.js → renderbuffer-formats.ts} +42 -14
  458. package/src/classes/renderbuffer.ts +153 -0
  459. package/src/classes/{texture-2d.js → texture-2d.ts} +15 -5
  460. package/src/classes/{texture-3d.js → texture-3d.ts} +35 -10
  461. package/src/classes/{texture-cube.js → texture-cube.ts} +46 -28
  462. package/src/classes/{texture-formats.js → texture-formats.ts} +9 -1
  463. package/src/classes/{texture.js → texture.ts} +204 -37
  464. package/src/classes/{transform-feedback.js → transform-feedback.ts} +22 -14
  465. package/src/classes/{uniform-buffer-layout.js → uniform-buffer-layout.ts} +10 -6
  466. package/src/classes/{uniforms.js → uniforms.ts} +122 -70
  467. package/src/classes/{vertex-array-object.js → vertex-array-object.ts} +132 -107
  468. package/src/classes/{vertex-array.js → vertex-array.ts} +74 -54
  469. package/src/classes/{buffer.js → webgl-buffer.ts} +125 -51
  470. package/src/classes/{resource.js → webgl-resource.ts} +43 -36
  471. package/src/classes/webgl-shader.ts +200 -0
  472. package/src/context/gl-context.ts +31 -0
  473. package/src/context/luma-context-data.ts +27 -0
  474. package/src/debug/{debug-program-configuration.js → debug-program-configuration.ts} +0 -0
  475. package/src/debug/{debug-uniforms.js → debug-uniforms.ts} +18 -8
  476. package/src/debug/{debug-vertex-array.js → debug-vertex-array.ts} +7 -4
  477. package/src/features/{check-glsl-extension.js → check-glsl-extension.ts} +1 -1
  478. package/src/features/{check-old-ie.js → check-old-ie.ts} +0 -0
  479. package/src/features/{features.js → features.ts} +14 -13
  480. package/src/features/{index.js → index.ts} +0 -0
  481. package/src/features/{limits.js → limits.ts} +18 -17
  482. package/src/features/{webgl-features-table.js → webgl-features-table.ts} +0 -0
  483. package/src/features/{webgl-limits-table.js → webgl-limits-table.ts} +0 -0
  484. package/{dist/es5/index.d.ts → src/index.ts} +18 -16
  485. package/src/{init.js → init.ts} +1 -18
  486. package/{dist/es5/types.d.ts → src/types.ts} +0 -0
  487. package/src/utils/{array-utils-flat.js → array-utils-flat.ts} +0 -0
  488. package/src/utils/{assert.js → assert.ts} +1 -1
  489. package/src/utils/{check-props.js → check-props.ts} +0 -0
  490. package/src/utils/{format-value.js → format-value.ts} +2 -2
  491. package/src/utils/index.ts +6 -0
  492. package/src/utils/{is-old-ie.js → is-old-ie.ts} +1 -1
  493. package/src/utils/{load-file.js → load-file.ts} +3 -2
  494. package/src/utils/{stub-methods.js → stub-methods.ts} +1 -1
  495. package/src/utils/utils.ts +35 -0
  496. package/src/webgl-utils/{attribute-utils.js → attribute-utils.ts} +1 -2
  497. package/src/webgl-utils/{constants-to-keys.js → constants-to-keys.ts} +1 -1
  498. package/src/webgl-utils/{format-utils.js → format-utils.ts} +1 -1
  499. package/src/webgl-utils/{get-error.js → get-error.ts} +0 -0
  500. package/src/webgl-utils/index.ts +12 -0
  501. package/src/webgl-utils/parse-shader-compiler-log.ts +48 -0
  502. package/src/webgl-utils/{request-animation-frame.js → request-animation-frame.ts} +3 -2
  503. package/src/webgl-utils/texture-utils.js +2 -1
  504. package/dist/dist.js +0 -13555
  505. package/dist/dist.min.js +0 -1
  506. package/dist/es5/classes/buffer.d.ts +0 -84
  507. package/dist/es5/classes/buffer.js +0 -453
  508. package/dist/es5/classes/buffer.js.map +0 -1
  509. package/dist/es5/classes/clear.d.ts +0 -11
  510. package/dist/es5/classes/copy-and-blit.d.ts +0 -101
  511. package/dist/es5/classes/framebuffer.d.ts +0 -96
  512. package/dist/es5/classes/program-configuration.d.ts +0 -15
  513. package/dist/es5/classes/program.d.ts +0 -44
  514. package/dist/es5/classes/query.d.ts +0 -21
  515. package/dist/es5/classes/renderbuffer.d.ts +0 -34
  516. package/dist/es5/classes/resource.d.ts +0 -47
  517. package/dist/es5/classes/resource.js +0 -308
  518. package/dist/es5/classes/resource.js.map +0 -1
  519. package/dist/es5/classes/shader.d.ts +0 -29
  520. package/dist/es5/classes/shader.js +0 -221
  521. package/dist/es5/classes/shader.js.map +0 -1
  522. package/dist/es5/classes/texture-2d.d.ts +0 -11
  523. package/dist/es5/classes/texture-3d.d.ts +0 -29
  524. package/dist/es5/classes/texture-cube.d.ts +0 -23
  525. package/dist/es5/classes/texture.d.ts +0 -80
  526. package/dist/es5/classes/transform-feedback.d.ts +0 -16
  527. package/dist/es5/classes/uniform-buffer-layout.d.ts +0 -18
  528. package/dist/es5/classes/uniforms.d.ts +0 -63
  529. package/dist/es5/classes/vertex-array-object.d.ts +0 -25
  530. package/dist/es5/classes/vertex-array.d.ts +0 -37
  531. package/dist/es5/debug/debug-program-configuration.d.ts +0 -1
  532. package/dist/es5/debug/debug-uniforms.d.ts +0 -11
  533. package/dist/es5/debug/debug-vertex-array.d.ts +0 -1
  534. package/dist/es5/glsl-utils/format-glsl-error.d.ts +0 -16
  535. package/dist/es5/glsl-utils/format-glsl-error.js +0 -108
  536. package/dist/es5/glsl-utils/format-glsl-error.js.map +0 -1
  537. package/dist/es5/glsl-utils/get-shader-name.js +0 -14
  538. package/dist/es5/glsl-utils/get-shader-name.js.map +0 -1
  539. package/dist/es5/glsl-utils/get-shader-type-name.js +0 -22
  540. package/dist/es5/glsl-utils/get-shader-type-name.js.map +0 -1
  541. package/dist/es5/glsl-utils/get-shader-version.js +0 -22
  542. package/dist/es5/glsl-utils/get-shader-version.js.map +0 -1
  543. package/dist/es5/glsl-utils/index.js +0 -48
  544. package/dist/es5/glsl-utils/index.js.map +0 -1
  545. package/dist/es5/init.d.ts +0 -12
  546. package/dist/es5/utils/assert.d.ts +0 -1
  547. package/dist/es5/utils/is-old-ie.d.ts +0 -1
  548. package/dist/es5/utils/utils.d.ts +0 -13
  549. package/dist/es5/webgl-utils/request-animation-frame.d.ts +0 -3
  550. package/dist/esm/classes/buffer.d.ts +0 -84
  551. package/dist/esm/classes/buffer.js.map +0 -1
  552. package/dist/esm/classes/clear.d.ts +0 -11
  553. package/dist/esm/classes/copy-and-blit.d.ts +0 -101
  554. package/dist/esm/classes/framebuffer.d.ts +0 -96
  555. package/dist/esm/classes/program-configuration.d.ts +0 -15
  556. package/dist/esm/classes/program.d.ts +0 -44
  557. package/dist/esm/classes/query.d.ts +0 -21
  558. package/dist/esm/classes/renderbuffer.d.ts +0 -34
  559. package/dist/esm/classes/resource.d.ts +0 -47
  560. package/dist/esm/classes/resource.js.map +0 -1
  561. package/dist/esm/classes/shader.d.ts +0 -29
  562. package/dist/esm/classes/shader.js +0 -138
  563. package/dist/esm/classes/shader.js.map +0 -1
  564. package/dist/esm/classes/texture-2d.d.ts +0 -11
  565. package/dist/esm/classes/texture-3d.d.ts +0 -29
  566. package/dist/esm/classes/texture-cube.d.ts +0 -23
  567. package/dist/esm/classes/texture.d.ts +0 -80
  568. package/dist/esm/classes/transform-feedback.d.ts +0 -16
  569. package/dist/esm/classes/uniform-buffer-layout.d.ts +0 -18
  570. package/dist/esm/classes/uniforms.d.ts +0 -63
  571. package/dist/esm/classes/vertex-array-object.d.ts +0 -25
  572. package/dist/esm/classes/vertex-array.d.ts +0 -37
  573. package/dist/esm/debug/debug-program-configuration.d.ts +0 -1
  574. package/dist/esm/debug/debug-uniforms.d.ts +0 -11
  575. package/dist/esm/debug/debug-vertex-array.d.ts +0 -1
  576. package/dist/esm/glsl-utils/format-glsl-error.d.ts +0 -16
  577. package/dist/esm/glsl-utils/format-glsl-error.js +0 -93
  578. package/dist/esm/glsl-utils/format-glsl-error.js.map +0 -1
  579. package/dist/esm/glsl-utils/get-shader-name.js +0 -6
  580. package/dist/esm/glsl-utils/get-shader-name.js.map +0 -1
  581. package/dist/esm/glsl-utils/get-shader-type-name.js +0 -15
  582. package/dist/esm/glsl-utils/get-shader-type-name.js.map +0 -1
  583. package/dist/esm/glsl-utils/get-shader-version.js +0 -15
  584. package/dist/esm/glsl-utils/get-shader-version.js.map +0 -1
  585. package/dist/esm/glsl-utils/index.js +0 -5
  586. package/dist/esm/glsl-utils/index.js.map +0 -1
  587. package/dist/esm/index.d.ts +0 -71
  588. package/dist/esm/init.d.ts +0 -12
  589. package/dist/esm/types.d.ts +0 -8
  590. package/dist/esm/utils/assert.d.ts +0 -1
  591. package/dist/esm/utils/is-old-ie.d.ts +0 -1
  592. package/dist/esm/utils/utils.d.ts +0 -13
  593. package/dist/esm/webgl-utils/request-animation-frame.d.ts +0 -3
  594. package/src/bundle.js +0 -8
  595. package/src/classes/buffer.d.ts +0 -84
  596. package/src/classes/clear.d.ts +0 -11
  597. package/src/classes/copy-and-blit.d.ts +0 -101
  598. package/src/classes/framebuffer.d.ts +0 -96
  599. package/src/classes/program-configuration.d.ts +0 -15
  600. package/src/classes/program.d.ts +0 -44
  601. package/src/classes/query.d.ts +0 -21
  602. package/src/classes/renderbuffer.d.ts +0 -34
  603. package/src/classes/renderbuffer.js +0 -105
  604. package/src/classes/resource.d.ts +0 -47
  605. package/src/classes/shader.d.ts +0 -29
  606. package/src/classes/shader.js +0 -147
  607. package/src/classes/texture-2d.d.ts +0 -11
  608. package/src/classes/texture-3d.d.ts +0 -29
  609. package/src/classes/texture-cube.d.ts +0 -23
  610. package/src/classes/texture.d.ts +0 -80
  611. package/src/classes/transform-feedback.d.ts +0 -16
  612. package/src/classes/uniform-buffer-layout.d.ts +0 -18
  613. package/src/classes/uniforms.d.ts +0 -63
  614. package/src/classes/vertex-array-object.d.ts +0 -25
  615. package/src/classes/vertex-array.d.ts +0 -37
  616. package/src/debug/debug-program-configuration.d.ts +0 -1
  617. package/src/debug/debug-uniforms.d.ts +0 -11
  618. package/src/debug/debug-vertex-array.d.ts +0 -1
  619. package/src/glsl-utils/format-glsl-error.d.ts +0 -16
  620. package/src/glsl-utils/format-glsl-error.js +0 -107
  621. package/src/glsl-utils/get-shader-name.js +0 -7
  622. package/src/glsl-utils/get-shader-type-name.js +0 -13
  623. package/src/glsl-utils/get-shader-version.js +0 -12
  624. package/src/glsl-utils/index.js +0 -8
  625. package/src/index.d.ts +0 -71
  626. package/src/index.js +0 -70
  627. package/src/init.d.ts +0 -12
  628. package/src/types.d.ts +0 -8
  629. package/src/utils/assert.d.ts +0 -1
  630. package/src/utils/is-old-ie.d.ts +0 -1
  631. package/src/utils/utils.d.ts +0 -13
  632. package/src/utils/utils.js +0 -36
  633. package/src/webgl-utils/request-animation-frame.d.ts +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/classes/webgl-resource.ts"],"names":["isWebGL2","assertWebGLContext","Resource","getKey","getKeyValue","uid","assert","stubRemovedMethods","ERR_RESOURCE_METHOD_UNDEFINED","WebGLResource","constructor","gl","props","defaultProps","id","userData","gl2","name","_handle","handle","undefined","_createHandle","byteLength","toString","delete","deleteChildren","children","_deleteHandle","removeStats","filter","Boolean","forEach","child","bind","funcOrHandle","_bindHandle","value","_bound","unbind","getParameter","pname","parameters","PARAMETERS","parameter","isWebgl2","parameterAvailable","getExtension","extension","webgl1Default","webgl1","webgl2Default","webgl2","defaultValue","_getParameter","getParameters","options","keys","values","parameterKeys","Object","key","type","setParameter","Error","_setParameter","setParameters","className","version","methodNames","initialize","_getOptsFromHandle"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport {isWebGL2, assertWebGLContext} from '@luma.gl/gltools';\nimport {Resource} from '@luma.gl/api';\nexport type {ResourceProps} from '@luma.gl/api';\nimport {getKey, getKeyValue} from '../webgl-utils';\nimport {uid, assert, stubRemovedMethods} from '../utils';\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 class WebGLResource<Props> extends Resource<Props> {\n id: string;\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext;\n userData: any;\n private _handle: any;\n\n private _bound = false;\n // Only meaningful for resources that allocate GPU memory\n byteLength = 0;\n\n constructor(gl: WebGLRenderingContext, props: Props, defaultProps: Required<Props>) {\n super(gl as any, props, defaultProps);\n\n assertWebGLContext(gl);\n\n // extends \n // @ts-expect-error\n const {id, userData = {}} = props || {};\n this.gl = gl;\n // @ts-ignore\n this.gl2 = gl;\n // this.ext = polyfillContext(gl);\n this.id = id || uid(this.constructor.name);\n this.userData = userData;\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 // @ts-expect-error\n this._handle = props?.handle;\n if (this._handle === undefined) {\n this._handle = this._createHandle();\n }\n\n this.byteLength = 0;\n }\n\n 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 delete({deleteChildren = false} = {}) {\n // Delete this object, and get refs to any children\n // @ts-ignore\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-ignore\n if (children && deleteChildren) {\n // @ts-ignore\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 {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-ignore\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?, keys?} = {}) {\n const {parameters, keys} = options;\n\n // Get parameter definitions for this Resource\n // @ts-ignore\n const PARAMETERS = this.constructor.PARAMETERS || {};\n\n const isWebgl2 = isWebGL2(this.gl);\n\n const values = {};\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 {string} pname - parameter (GL constant, value or key)\n * @param {GLint|GLfloat|GLenum} value\n * @return {Resource} returns self to enable chaining\n */\n setParameter(pname, value) {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-ignore\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) {\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, version, methodNames) {\n return stubRemovedMethods(this, className, version, methodNames);\n }\n\n // PUBLIC VIRTUAL METHODS\n initialize(props) {}\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) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getOptsFromHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n /** @returns {number} */\n _getParameter(pname, props) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _setParameter(pname, value) {\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"}
@@ -0,0 +1,51 @@
1
+ import GL from '@luma.gl/constants';
2
+ import { CompilerMessage } from '@luma.gl/shadertools';
3
+ import { Shader as ShaderAPI, ShaderProps } from '@luma.gl/api';
4
+ export type { ShaderProps };
5
+ export declare class WEBGLShader extends ShaderAPI {
6
+ readonly gl: WebGLRenderingContext;
7
+ readonly handle: WebGLShader;
8
+ readonly stage: 'vertex' | 'fragment';
9
+ constructor(gl: WebGLRenderingContext, props: ShaderProps);
10
+ destroy(): void;
11
+ compilationInfo(): Promise<readonly CompilerMessage[]>;
12
+ _compile(source: any): void;
13
+ }
14
+ /**
15
+ * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline
16
+ * For now this is an internal class
17
+ */
18
+ export declare class Shader extends WEBGLShader {
19
+ shaderType: GL.FRAGMENT_SHADER | GL.VERTEX_SHADER;
20
+ source: string;
21
+ static getTypeName(shaderType: any): 'vertex-shader' | 'fragment-shader' | 'unknown';
22
+ constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'>);
23
+ initialize(props: ShaderProps): this;
24
+ getParameter(pname: number): any;
25
+ toString(): string;
26
+ getName(): string;
27
+ getSource(): string;
28
+ /** Debug method - Returns translated source if available */
29
+ getTranslatedSource(): string;
30
+ _getOptsFromHandle(): {
31
+ type: any;
32
+ source: string;
33
+ };
34
+ }
35
+ /**
36
+ * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline
37
+ * @deprecated Use `device.createShader({stage: 'vertex', ...})`
38
+ */
39
+ export declare class VertexShader extends Shader {
40
+ constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'> | string);
41
+ _createHandle(): WebGLShader;
42
+ }
43
+ /**
44
+ * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline
45
+ * @deprecated Use `device.createShader({stage: 'fragment', ...})`
46
+ */
47
+ export declare class FragmentShader extends Shader {
48
+ constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'> | string);
49
+ _createHandle(): WebGLShader;
50
+ }
51
+ //# sourceMappingURL=webgl-shader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-shader.d.ts","sourceRoot":"","sources":["../../src/classes/webgl-shader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpC,OAAO,EAAgB,eAAe,EAAoB,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAC,MAAM,IAAI,SAAS,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AAO9D,YAAY,EAAC,WAAW,EAAC,CAAC;AAE1B,qBAAa,WAAY,SAAQ,SAAS;IACxC,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;gBAE1B,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,WAAW;IAiBzD,OAAO,IAAI,IAAI;IAST,eAAe,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;IAM5D,QAAQ,CAAC,MAAM,KAAA;CAqBhB;AAED;;;GAGG;AACH,qBAAa,MAAO,SAAQ,WAAW;IACrC,UAAU,EAAE,EAAE,CAAC,eAAe,GAAG,EAAE,CAAC,aAAa,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC;IAEf,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS;gBAYxE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;IAgBxE,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAWpC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG;IAIhC,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,MAAM;IAIjB,SAAS,IAAI,MAAM;IAInB,4DAA4D;IAC5D,mBAAmB,IAAI,MAAM;IAS7B,kBAAkB;;;;CAMnB;AAED;;;GAGG;AACF,qBAAa,YAAa,SAAQ,MAAM;gBAC3B,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,MAAM;IAKjF,aAAa;CAGd;AAED;;;GAGG;AACF,qBAAa,cAAe,SAAQ,MAAM;gBAC7B,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,MAAM;IAKjF,aAAa;CAGd"}
@@ -0,0 +1,190 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import GL from '@luma.gl/constants';
3
+ import { assertWebGLContext, log } from '@luma.gl/gltools';
4
+ import { getShaderInfo, formatCompilerLog } from '@luma.gl/shadertools';
5
+ import { Shader as ShaderAPI } from '@luma.gl/api';
6
+ import { parseShaderCompilerLog } from '../webgl-utils/parse-shader-compiler-log';
7
+ import { uid, assert } from '../utils';
8
+ const ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';
9
+ export class WEBGLShader extends ShaderAPI {
10
+ constructor(gl, props) {
11
+ super(gl, {
12
+ id: getShaderIdFromProps(props),
13
+ ...props
14
+ });
15
+
16
+ _defineProperty(this, "gl", void 0);
17
+
18
+ _defineProperty(this, "handle", void 0);
19
+
20
+ _defineProperty(this, "stage", void 0);
21
+
22
+ this.gl = gl;
23
+
24
+ switch (this.props.stage) {
25
+ case 'vertex':
26
+ this.handle = this.props.handle || this.gl.createShader(GL.VERTEX_SHADER);
27
+ break;
28
+
29
+ case 'fragment':
30
+ this.handle = this.props.handle || this.gl.createShader(GL.FRAGMENT_SHADER);
31
+ break;
32
+
33
+ default:
34
+ throw new Error(this.props.stage);
35
+ }
36
+
37
+ this.stage = this.props.stage;
38
+
39
+ this._compile(props.source);
40
+ }
41
+
42
+ destroy() {
43
+ if (this.handle) {
44
+ this.removeStats();
45
+ this.gl.deleteShader(this.handle);
46
+ this.handle = null;
47
+ }
48
+ }
49
+
50
+ async compilationInfo() {
51
+ const log = this.gl.getShaderInfoLog(this.handle);
52
+ return parseShaderCompilerLog(log);
53
+ }
54
+
55
+ _compile(source) {
56
+ if (!source.startsWith('#version ')) {
57
+ source = "#version 100\n".concat(source);
58
+ }
59
+
60
+ this.gl.shaderSource(this.handle, source);
61
+ this.gl.compileShader(this.handle);
62
+ const compileStatus = this.gl.getShaderParameter(this.handle, GL.COMPILE_STATUS);
63
+
64
+ if (!compileStatus) {
65
+ const shaderLog = this.gl.getShaderInfoLog(this.handle);
66
+ const messages = parseShaderCompilerLog(shaderLog).filter(message => message.type === 'error');
67
+ const formattedLog = formatCompilerLog(messages, source);
68
+ const shaderName = getShaderInfo(source).name;
69
+ const shaderDescription = "".concat(this.stage, " shader ").concat(shaderName);
70
+ log.error("GLSL compilation errors in ".concat(shaderName, "\n").concat(formattedLog))();
71
+ throw new Error("GLSL compilation errors in ".concat(shaderName));
72
+ }
73
+ }
74
+
75
+ }
76
+ export class Shader extends WEBGLShader {
77
+ static getTypeName(shaderType) {
78
+ switch (shaderType) {
79
+ case GL.VERTEX_SHADER:
80
+ return 'vertex-shader';
81
+
82
+ case GL.FRAGMENT_SHADER:
83
+ return 'fragment-shader';
84
+
85
+ default:
86
+ assert(false);
87
+ return 'unknown';
88
+ }
89
+ }
90
+
91
+ constructor(gl, props) {
92
+ assertWebGLContext(gl);
93
+ assert(typeof props.source === 'string', ERR_SOURCE);
94
+ super(gl, { ...props,
95
+ id: getShaderIdFromProps(props),
96
+ stage: props.shaderType === GL.VERTEX_SHADER ? 'vertex' : 'fragment'
97
+ });
98
+
99
+ _defineProperty(this, "shaderType", void 0);
100
+
101
+ _defineProperty(this, "source", void 0);
102
+
103
+ this.shaderType = props.shaderType;
104
+ this.source = props.source;
105
+ const shaderName = getShaderInfo(props.source).name;
106
+
107
+ if (shaderName) {
108
+ this.id = uid(shaderName);
109
+ }
110
+ }
111
+
112
+ initialize(props) {
113
+ this._compile(props.source);
114
+
115
+ const shaderName = getShaderInfo(props.source).name;
116
+
117
+ if (shaderName) {
118
+ this.id = uid(shaderName);
119
+ }
120
+
121
+ return this;
122
+ }
123
+
124
+ getParameter(pname) {
125
+ return this.gl.getShaderParameter(this.handle, pname);
126
+ }
127
+
128
+ toString() {
129
+ return "".concat(Shader.getTypeName(this.shaderType), ":").concat(this.id);
130
+ }
131
+
132
+ getName() {
133
+ return getShaderInfo(this.source).name || 'unnamed-shader';
134
+ }
135
+
136
+ getSource() {
137
+ return this.gl.getShaderSource(this.handle);
138
+ }
139
+
140
+ getTranslatedSource() {
141
+ const extension = this.gl.getExtension('WEBGL_debug_shaders');
142
+ return extension ? extension.getTranslatedShaderSource(this.handle) : 'No translated source available. WEBGL_debug_shaders not implemented';
143
+ }
144
+
145
+ _getOptsFromHandle() {
146
+ return {
147
+ type: this.getParameter(GL.SHADER_TYPE),
148
+ source: this.getSource()
149
+ };
150
+ }
151
+
152
+ }
153
+ export class VertexShader extends Shader {
154
+ constructor(gl, props) {
155
+ super(gl, getShaderProps(props, GL.VERTEX_SHADER));
156
+ }
157
+
158
+ _createHandle() {
159
+ return this.gl.createShader(GL.VERTEX_SHADER);
160
+ }
161
+
162
+ }
163
+ export class FragmentShader extends Shader {
164
+ constructor(gl, props) {
165
+ super(gl, getShaderProps(props, GL.FRAGMENT_SHADER));
166
+ }
167
+
168
+ _createHandle() {
169
+ return this.gl.createShader(GL.FRAGMENT_SHADER);
170
+ }
171
+
172
+ }
173
+
174
+ function getShaderProps(props, shaderType) {
175
+ if (typeof props === 'string') {
176
+ return {
177
+ source: props,
178
+ shaderType
179
+ };
180
+ }
181
+
182
+ return { ...props,
183
+ shaderType
184
+ };
185
+ }
186
+
187
+ function getShaderIdFromProps(props) {
188
+ return getShaderInfo(props.source).name || props.id || uid("unnamed ".concat(props.stage || Shader.getTypeName(props.shaderType)));
189
+ }
190
+ //# sourceMappingURL=webgl-shader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/classes/webgl-shader.ts"],"names":["GL","assertWebGLContext","log","getShaderInfo","formatCompilerLog","Shader","ShaderAPI","parseShaderCompilerLog","uid","assert","ERR_SOURCE","WEBGLShader","constructor","gl","props","id","getShaderIdFromProps","stage","handle","createShader","VERTEX_SHADER","FRAGMENT_SHADER","Error","_compile","source","destroy","removeStats","deleteShader","compilationInfo","getShaderInfoLog","startsWith","shaderSource","compileShader","compileStatus","getShaderParameter","COMPILE_STATUS","shaderLog","messages","filter","message","type","formattedLog","shaderName","name","shaderDescription","error","getTypeName","shaderType","initialize","getParameter","pname","toString","getName","getSource","getShaderSource","getTranslatedSource","extension","getExtension","getTranslatedShaderSource","_getOptsFromHandle","SHADER_TYPE","VertexShader","getShaderProps","_createHandle","FragmentShader"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport GL from '@luma.gl/constants';\nimport {assertWebGLContext, log} from '@luma.gl/gltools';\nimport {getShaderInfo, CompilerMessage, formatCompilerLog} from '@luma.gl/shadertools';\nimport {Shader as ShaderAPI, ShaderProps} from '@luma.gl/api';\nimport {parseShaderCompilerLog} from '../webgl-utils/parse-shader-compiler-log';\nimport {uid, assert} from '../utils';\n\nconst ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';\n\n\nexport type {ShaderProps};\n\nexport class WEBGLShader extends ShaderAPI {\n readonly gl: WebGLRenderingContext;\n readonly handle: WebGLShader;\n\n readonly stage: 'vertex' | 'fragment';\n\n constructor(gl: WebGLRenderingContext, props: ShaderProps) {\n super(gl as any, {id: getShaderIdFromProps(props), ...props});\n this.gl = gl;\n switch (this.props.stage) {\n case 'vertex':\n this.handle = this.props.handle || this.gl.createShader(GL.VERTEX_SHADER);\n break;\n case 'fragment':\n this.handle = this.props.handle || this.gl.createShader(GL.FRAGMENT_SHADER);\n break;\n default:\n throw new Error(this.props.stage);\n }\n this.stage = this.props.stage;\n this._compile(props.source);\n }\n\n destroy(): void {\n if (this.handle) {\n this.removeStats();\n this.gl.deleteShader(this.handle);\n // @ts-expect-error\n this.handle = null;\n }\n } \n \n async compilationInfo(): Promise<readonly CompilerMessage[]> {\n const log = this.gl.getShaderInfoLog(this.handle);\n return parseShaderCompilerLog(log);\n }\n\n // PRIVATE METHODS\n _compile(source) {\n if (!source.startsWith('#version ')) {\n source = `#version 100\\n${source}`;\n }\n this.gl.shaderSource(this.handle, source);\n this.gl.compileShader(this.handle);\n\n // TODO - For performance reasons, avoid checking shader compilation errors on production?\n // TODO - Load log even when no error reported, to catch warnings?\n // https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings\n const compileStatus = this.gl.getShaderParameter(this.handle, GL.COMPILE_STATUS);\n if (!compileStatus) {\n const shaderLog = this.gl.getShaderInfoLog(this.handle);\n const messages = parseShaderCompilerLog(shaderLog).filter(message => message.type === 'error');\n const formattedLog = formatCompilerLog(messages, source);\n const shaderName: string = getShaderInfo(source).name;\n const shaderDescription = `${this.stage} shader ${shaderName}`;\n log.error(`GLSL compilation errors in ${shaderName}\\n${formattedLog}`)();\n throw new Error(`GLSL compilation errors in ${shaderName}`);\n }\n }\n}\n \n/**\n * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline\n * For now this is an internal class\n */\nexport class Shader extends WEBGLShader {\n shaderType: GL.FRAGMENT_SHADER | GL.VERTEX_SHADER;\n source: string;\n\n static getTypeName(shaderType: any): 'vertex-shader' | 'fragment-shader' | 'unknown' {\n switch (shaderType) {\n case GL.VERTEX_SHADER:\n return 'vertex-shader';\n case GL.FRAGMENT_SHADER:\n return 'fragment-shader';\n default:\n assert(false);\n return 'unknown';\n }\n }\n\n constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'>) {\n assertWebGLContext(gl);\n assert(typeof props.source === 'string', ERR_SOURCE);\n\n // @ts-expect-error\n super(gl, {...props, id: getShaderIdFromProps(props), stage: props.shaderType === GL.VERTEX_SHADER ? 'vertex' : 'fragment'});\n\n this.shaderType = props.shaderType;\n this.source = props.source;\n\n const shaderName = getShaderInfo(props.source).name;\n if (shaderName) {\n this.id = uid(shaderName);\n }\n }\n\n initialize(props: ShaderProps): this {\n this._compile(props.source);\n const shaderName = getShaderInfo(props.source).name;\n if (shaderName) {\n this.id = uid(shaderName);\n }\n return this;\n }\n\n // Accessors\n\n getParameter(pname: number): any {\n return this.gl.getShaderParameter(this.handle, pname);\n }\n\n toString(): string {\n return `${Shader.getTypeName(this.shaderType)}:${this.id}`;\n }\n\n getName(): string {\n return getShaderInfo(this.source).name || 'unnamed-shader';\n }\n\n getSource(): string {\n return this.gl.getShaderSource(this.handle);\n }\n\n /** Debug method - Returns translated source if available */\n getTranslatedSource(): string {\n const extension = this.gl.getExtension('WEBGL_debug_shaders');\n return extension\n ? extension.getTranslatedShaderSource(this.handle)\n : 'No translated source available. WEBGL_debug_shaders not implemented';\n }\n\n // PRIVATE METHODS\n\n _getOptsFromHandle() {\n return {\n type: this.getParameter(GL.SHADER_TYPE),\n source: this.getSource()\n };\n }\n}\n\n/**\n * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline\n * @deprecated Use `device.createShader({stage: 'vertex', ...})`\n */\n export class VertexShader extends Shader {\n constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'> | string) {\n super(gl, getShaderProps(props, GL.VERTEX_SHADER));\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createShader(GL.VERTEX_SHADER);\n }\n}\n\n/**\n * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline\n * @deprecated Use `device.createShader({stage: 'fragment', ...})`\n */\n export class FragmentShader extends Shader {\n constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'> | string) {\n super(gl, getShaderProps(props, GL.FRAGMENT_SHADER));\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createShader(GL.FRAGMENT_SHADER);\n }\n}\n\n// HELPERS\n\nfunction getShaderProps(props: Omit<ShaderProps, 'stage'> | string, shaderType: GL.VERTEX_SHADER | GL.FRAGMENT_SHADER): Omit<ShaderProps, 'stage'> {\n if (typeof props === 'string') {\n return {source: props, shaderType};\n }\n return {...props, shaderType};\n}\n\n/** Deduce an id, from shader source, or supplied id, or shader type */\nfunction getShaderIdFromProps(props: ShaderProps): string {\n return getShaderInfo(props.source).name ||\n props.id ||\n uid(`unnamed ${props.stage || Shader.getTypeName(props.shaderType)}`);\n}\n"],"file":"webgl-shader.js"}
@@ -0,0 +1,15 @@
1
+ import type { GLContextOptions } from '@luma.gl/gltools';
2
+ import { Device } from '@luma.gl/api';
3
+ import type { BufferProps, ShaderProps } from '@luma.gl/api';
4
+ import WEBGLBuffer from '../classes/webgl-buffer';
5
+ import { WEBGLShader } from '../classes/webgl-shader';
6
+ import Texture2D, { Texture2DProps } from '../classes/texture-2d';
7
+ export default class GLContext extends Device {
8
+ readonly gl: WebGLRenderingContext;
9
+ readonly gl2: WebGL2RenderingContext | null;
10
+ constructor(props: GLContextOptions);
11
+ createBuffer(props: BufferProps): WEBGLBuffer;
12
+ createTexture(props: Texture2DProps): Texture2D;
13
+ createShader(props: ShaderProps): WEBGLShader;
14
+ }
15
+ //# sourceMappingURL=gl-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gl-context.d.ts","sourceRoot":"","sources":["../../src/context/gl-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AAC3D,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAC,WAAW,EAAG,MAAM,yBAAyB,CAAC;AACtD,OAAO,SAAS,EAAE,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,MAAM;IAC3C,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI,CAAC;gBAEhC,KAAK,EAAE,gBAAgB;IAMnC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAI7C,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS;IAI/C,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;CAG9C"}
@@ -0,0 +1,32 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import { createGLContext, isWebGL2 } from '@luma.gl/gltools';
3
+ import { Device } from '@luma.gl/api';
4
+ import WEBGLBuffer from '../classes/webgl-buffer';
5
+ import { WEBGLShader } from '../classes/webgl-shader';
6
+ import Texture2D from '../classes/texture-2d';
7
+ export default class GLContext extends Device {
8
+ constructor(props) {
9
+ super();
10
+
11
+ _defineProperty(this, "gl", void 0);
12
+
13
+ _defineProperty(this, "gl2", void 0);
14
+
15
+ this.gl = createGLContext(props);
16
+ this.gl2 = isWebGL2(this.gl) ? this.gl : null;
17
+ }
18
+
19
+ createBuffer(props) {
20
+ return new WEBGLBuffer(this.gl, props);
21
+ }
22
+
23
+ createTexture(props) {
24
+ return new Texture2D(this.gl, props);
25
+ }
26
+
27
+ createShader(props) {
28
+ return new WEBGLShader(this.gl, props);
29
+ }
30
+
31
+ }
32
+ //# sourceMappingURL=gl-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/context/gl-context.ts"],"names":["createGLContext","isWebGL2","Device","WEBGLBuffer","WEBGLShader","Texture2D","GLContext","constructor","props","gl","gl2","createBuffer","createTexture","createShader"],"mappings":";AAEA,SAAQA,eAAR,EAAyBC,QAAzB,QAAwC,kBAAxC;AACA,SAAQC,MAAR,QAAqB,cAArB;AAEA,OAAOC,WAAP,MAAwB,yBAAxB;AACA,SAAQC,WAAR,QAA4B,yBAA5B;AACA,OAAOC,SAAP,MAAwC,uBAAxC;AAEA,eAAe,MAAMC,SAAN,SAAwBJ,MAAxB,CAA+B;AAI5CK,EAAAA,WAAW,CAACC,KAAD,EAA0B;AACnC;;AADmC;;AAAA;;AAEnC,SAAKC,EAAL,GAAUT,eAAe,CAACQ,KAAD,CAAzB;AACA,SAAKE,GAAL,GAAWT,QAAQ,CAAC,KAAKQ,EAAN,CAAR,GAAoB,KAAKA,EAAzB,GAAwD,IAAnE;AACD;;AAEDE,EAAAA,YAAY,CAACH,KAAD,EAAkC;AAC5C,WAAO,IAAIL,WAAJ,CAAgB,KAAKM,EAArB,EAAyBD,KAAzB,CAAP;AACD;;AAEDI,EAAAA,aAAa,CAACJ,KAAD,EAAmC;AAC9C,WAAO,IAAIH,SAAJ,CAAc,KAAKI,EAAnB,EAAuBD,KAAvB,CAAP;AACD;;AAEDK,EAAAA,YAAY,CAACL,KAAD,EAAkC;AAC5C,WAAO,IAAIJ,WAAJ,CAAgB,KAAKK,EAArB,EAAyBD,KAAzB,CAAP;AACD;;AApB2C","sourcesContent":["// \nimport type {GLContextOptions} from '@luma.gl/gltools';\nimport {createGLContext, isWebGL2} from '@luma.gl/gltools';\nimport {Device} from '@luma.gl/api';\nimport type {BufferProps, ShaderProps} from '@luma.gl/api';\nimport WEBGLBuffer from '../classes/webgl-buffer';\nimport {WEBGLShader, } from '../classes/webgl-shader';\nimport Texture2D, {Texture2DProps} from '../classes/texture-2d';\n\nexport default class GLContext extends Device {\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext | null;\n\n constructor(props: GLContextOptions) {\n super();\n this.gl = createGLContext(props);\n this.gl2 = isWebGL2(this.gl) ? this.gl as WebGL2RenderingContext : null;\n }\n\n createBuffer(props: BufferProps): WEBGLBuffer {\n return new WEBGLBuffer(this.gl, props);\n }\n\n createTexture(props: Texture2DProps): Texture2D {\n return new Texture2D(this.gl, props);\n }\n\n createShader(props: ShaderProps): WEBGLShader {\n return new WEBGLShader(this.gl, props);\n }\n}\n"],"file":"gl-context.js"}
@@ -0,0 +1,31 @@
1
+ import type { default as Framebuffer } from '../classes/framebuffer';
2
+ import type { default as VertexArrayObject } from '../classes/vertex-array-object';
3
+ /**
4
+ * Data stored by luma.gl on the context
5
+ */
6
+ export declare type LumaContextData = {
7
+ defaultFramebuffer?: Framebuffer;
8
+ defaultVertexArray?: VertexArrayObject;
9
+ info: {
10
+ [key: string]: any;
11
+ };
12
+ caps: {
13
+ [key: string]: any;
14
+ };
15
+ limits: {
16
+ [key: string]: any;
17
+ };
18
+ webgl1MinLimits: {
19
+ [key: string]: any;
20
+ };
21
+ webgl2MinLimits: {
22
+ [key: string]: any;
23
+ };
24
+ };
25
+ /**
26
+ *
27
+ * @param gl
28
+ * @returns
29
+ */
30
+ export declare function getLumaContextData(gl: WebGLRenderingContext): LumaContextData;
31
+ //# sourceMappingURL=luma-context-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"luma-context-data.d.ts","sourceRoot":"","sources":["../../src/context/luma-context-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AAEjF;;GAEG;AACH,oBAAY,eAAe,GAAG;IAC5B,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IACvC,IAAI,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC3B,IAAI,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC3B,MAAM,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC7B,eAAe,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IACtC,eAAe,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;CACvC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,qBAAqB,GAAG,eAAe,CAK7E"}
@@ -0,0 +1,5 @@
1
+ export function getLumaContextData(gl) {
2
+ gl.luma = gl.luma || {};
3
+ return gl.luma;
4
+ }
5
+ //# sourceMappingURL=luma-context-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/context/luma-context-data.ts"],"names":["getLumaContextData","gl","luma"],"mappings":"AAqBA,OAAO,SAASA,kBAAT,CAA4BC,EAA5B,EAAwE;AAE7EA,EAAAA,EAAE,CAACC,IAAH,GAAUD,EAAE,CAACC,IAAH,IAAW,EAArB;AAEA,SAAOD,EAAE,CAACC,IAAV;AACD","sourcesContent":["import type {default as Framebuffer} from '../classes/framebuffer';\nimport type {default as VertexArrayObject} from '../classes/vertex-array-object';\n\n/**\n * Data stored by luma.gl on the context\n */\nexport type LumaContextData = {\n defaultFramebuffer?: Framebuffer;\n defaultVertexArray?: VertexArrayObject;\n info: {[key: string]: any};\n caps: {[key: string]: any};\n limits: {[key: string]: any};\n webgl1MinLimits: {[key: string]: any};\n webgl2MinLimits: {[key: string]: any};\n};\n\n/**\n * \n * @param gl \n * @returns \n */\nexport function getLumaContextData(gl: WebGLRenderingContext): LumaContextData {\n // @ts-ignore\n gl.luma = gl.luma || {};\n // @ts-ignore\n return gl.luma as LumaContextData;\n}"],"file":"luma-context-data.js"}
@@ -0,0 +1,2 @@
1
+ export declare function getDebugTableForProgramConfiguration(config: any): {};
2
+ //# sourceMappingURL=debug-program-configuration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-program-configuration.d.ts","sourceRoot":"","sources":["../../src/debug/debug-program-configuration.ts"],"names":[],"mappings":"AAEA,wBAAgB,oCAAoC,CAAC,MAAM,KAAA,MAoB1D"}
@@ -0,0 +1,40 @@
1
+ import { getCompositeGLType } from '../webgl-utils/attribute-utils';
2
+ export function getDebugTableForProgramConfiguration(config) {
3
+ const table = {};
4
+ const header = "Accessors for ".concat(config.id);
5
+
6
+ for (const attributeInfo of config.attributeInfos) {
7
+ if (attributeInfo) {
8
+ const glslDeclaration = getGLSLDeclaration(attributeInfo);
9
+ table["in ".concat(glslDeclaration)] = {
10
+ [header]: JSON.stringify(attributeInfo.accessor)
11
+ };
12
+ }
13
+ }
14
+
15
+ for (const varyingInfo of config.varyingInfos) {
16
+ if (varyingInfo) {
17
+ const glslDeclaration = getGLSLDeclaration(varyingInfo);
18
+ table["out ".concat(glslDeclaration)] = {
19
+ [header]: JSON.stringify(varyingInfo.accessor)
20
+ };
21
+ }
22
+ }
23
+
24
+ return table;
25
+ }
26
+
27
+ function getGLSLDeclaration(attributeInfo) {
28
+ const {
29
+ type,
30
+ size
31
+ } = attributeInfo.accessor;
32
+ const typeAndName = getCompositeGLType(type, size);
33
+
34
+ if (typeAndName) {
35
+ return "".concat(typeAndName.name, " ").concat(attributeInfo.name);
36
+ }
37
+
38
+ return attributeInfo.name;
39
+ }
40
+ //# sourceMappingURL=debug-program-configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/debug/debug-program-configuration.ts"],"names":["getCompositeGLType","getDebugTableForProgramConfiguration","config","table","header","id","attributeInfo","attributeInfos","glslDeclaration","getGLSLDeclaration","JSON","stringify","accessor","varyingInfo","varyingInfos","type","size","typeAndName","name"],"mappings":"AAAA,SAAQA,kBAAR,QAAiC,gCAAjC;AAEA,OAAO,SAASC,oCAAT,CAA8CC,MAA9C,EAAsD;AAC3D,QAAMC,KAAK,GAAG,EAAd;AAEA,QAAMC,MAAM,2BAAoBF,MAAM,CAACG,EAA3B,CAAZ;;AAEA,OAAK,MAAMC,aAAX,IAA4BJ,MAAM,CAACK,cAAnC,EAAmD;AACjD,QAAID,aAAJ,EAAmB;AACjB,YAAME,eAAe,GAAGC,kBAAkB,CAACH,aAAD,CAA1C;AACAH,MAAAA,KAAK,cAAOK,eAAP,EAAL,GAAiC;AAAC,SAACJ,MAAD,GAAUM,IAAI,CAACC,SAAL,CAAeL,aAAa,CAACM,QAA7B;AAAX,OAAjC;AACD;AACF;;AAED,OAAK,MAAMC,WAAX,IAA0BX,MAAM,CAACY,YAAjC,EAA+C;AAC7C,QAAID,WAAJ,EAAiB;AACf,YAAML,eAAe,GAAGC,kBAAkB,CAACI,WAAD,CAA1C;AACAV,MAAAA,KAAK,eAAQK,eAAR,EAAL,GAAkC;AAAC,SAACJ,MAAD,GAAUM,IAAI,CAACC,SAAL,CAAeE,WAAW,CAACD,QAA3B;AAAX,OAAlC;AACD;AACF;;AAED,SAAOT,KAAP;AACD;;AAED,SAASM,kBAAT,CAA4BH,aAA5B,EAA2C;AACzC,QAAM;AAACS,IAAAA,IAAD;AAAOC,IAAAA;AAAP,MAAeV,aAAa,CAACM,QAAnC;AACA,QAAMK,WAAW,GAAGjB,kBAAkB,CAACe,IAAD,EAAOC,IAAP,CAAtC;;AACA,MAAIC,WAAJ,EAAiB;AACf,qBAAUA,WAAW,CAACC,IAAtB,cAA8BZ,aAAa,CAACY,IAA5C;AACD;;AACD,SAAOZ,aAAa,CAACY,IAArB;AACD","sourcesContent":["import {getCompositeGLType} from '../webgl-utils/attribute-utils';\n\nexport function getDebugTableForProgramConfiguration(config) {\n const table = {};\n\n const header = `Accessors for ${config.id}`;\n\n for (const attributeInfo of config.attributeInfos) {\n if (attributeInfo) {\n const glslDeclaration = getGLSLDeclaration(attributeInfo);\n table[`in ${glslDeclaration}`] = {[header]: JSON.stringify(attributeInfo.accessor)};\n }\n }\n\n for (const varyingInfo of config.varyingInfos) {\n if (varyingInfo) {\n const glslDeclaration = getGLSLDeclaration(varyingInfo);\n table[`out ${glslDeclaration}`] = {[header]: JSON.stringify(varyingInfo.accessor)};\n }\n }\n\n return table;\n}\n\nfunction getGLSLDeclaration(attributeInfo) {\n const {type, size} = attributeInfo.accessor;\n const typeAndName = getCompositeGLType(type, size);\n if (typeAndName) {\n return `${typeAndName.name} ${attributeInfo.name}`;\n }\n return attributeInfo.name;\n}\n"],"file":"debug-program-configuration.js"}
@@ -0,0 +1,12 @@
1
+ export declare function getDebugTableForUniforms(options?: {
2
+ header?: string;
3
+ program: any;
4
+ uniforms: any;
5
+ undefinedOnly?: boolean;
6
+ }): {
7
+ table: {};
8
+ count: number;
9
+ unusedTable: {};
10
+ unusedCount: number;
11
+ };
12
+ //# sourceMappingURL=debug-uniforms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-uniforms.d.ts","sourceRoot":"","sources":["../../src/debug/debug-uniforms.ts"],"names":[],"mappings":"AAIA,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,GAAG,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG;IACF,KAAK,EAAE,EAAE,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAkEA"}
@@ -0,0 +1,108 @@
1
+ import { formatValue, assert } from '../utils';
2
+ export function getDebugTableForUniforms(options) {
3
+ const {
4
+ header = 'Uniforms',
5
+ program,
6
+ uniforms,
7
+ undefinedOnly = false
8
+ } = options;
9
+ assert(program);
10
+ const SHADER_MODULE_UNIFORM_REGEXP = '.*_.*';
11
+ const PROJECT_MODULE_UNIFORM_REGEXP = '.*Matrix';
12
+ const uniformLocations = program._uniformSetters;
13
+ const table = {};
14
+ const uniformNames = Object.keys(uniformLocations).sort();
15
+ let count = 0;
16
+
17
+ for (const uniformName of uniformNames) {
18
+ if (!uniformName.match(SHADER_MODULE_UNIFORM_REGEXP) && !uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)) {
19
+ if (addUniformToTable({
20
+ table,
21
+ header,
22
+ uniforms,
23
+ uniformName,
24
+ undefinedOnly
25
+ })) {
26
+ count++;
27
+ }
28
+ }
29
+ }
30
+
31
+ for (const uniformName of uniformNames) {
32
+ if (uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)) {
33
+ if (addUniformToTable({
34
+ table,
35
+ header,
36
+ uniforms,
37
+ uniformName,
38
+ undefinedOnly
39
+ })) {
40
+ count++;
41
+ }
42
+ }
43
+ }
44
+
45
+ for (const uniformName of uniformNames) {
46
+ if (!table[uniformName]) {
47
+ if (addUniformToTable({
48
+ table,
49
+ header,
50
+ uniforms,
51
+ uniformName,
52
+ undefinedOnly
53
+ })) {
54
+ count++;
55
+ }
56
+ }
57
+ }
58
+
59
+ let unusedCount = 0;
60
+ const unusedTable = {};
61
+
62
+ if (!undefinedOnly) {
63
+ for (const uniformName in uniforms) {
64
+ const uniform = uniforms[uniformName];
65
+
66
+ if (!table[uniformName]) {
67
+ unusedCount++;
68
+ unusedTable[uniformName] = {
69
+ Type: "NOT USED: ".concat(uniform),
70
+ [header]: formatValue(uniform)
71
+ };
72
+ }
73
+ }
74
+ }
75
+
76
+ return {
77
+ table,
78
+ count,
79
+ unusedTable,
80
+ unusedCount
81
+ };
82
+ }
83
+
84
+ function addUniformToTable({
85
+ table,
86
+ header,
87
+ uniforms,
88
+ uniformName,
89
+ undefinedOnly
90
+ }) {
91
+ const value = uniforms[uniformName];
92
+ const isDefined = isUniformDefined(value);
93
+
94
+ if (!undefinedOnly || !isDefined) {
95
+ table[uniformName] = {
96
+ [header]: isDefined ? formatValue(value) : 'N/A',
97
+ 'Uniform Type': isDefined ? value : 'NOT PROVIDED'
98
+ };
99
+ return true;
100
+ }
101
+
102
+ return false;
103
+ }
104
+
105
+ function isUniformDefined(value) {
106
+ return value !== undefined && value !== null;
107
+ }
108
+ //# sourceMappingURL=debug-uniforms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/debug/debug-uniforms.ts"],"names":["formatValue","assert","getDebugTableForUniforms","options","header","program","uniforms","undefinedOnly","SHADER_MODULE_UNIFORM_REGEXP","PROJECT_MODULE_UNIFORM_REGEXP","uniformLocations","_uniformSetters","table","uniformNames","Object","keys","sort","count","uniformName","match","addUniformToTable","unusedCount","unusedTable","uniform","Type","value","isDefined","isUniformDefined","undefined"],"mappings":"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","sourcesContent":["import {formatValue, assert} from '../utils';\n\n// Prepares a table suitable for console.table\n/* eslint-disable max-statements, complexity */\nexport function getDebugTableForUniforms(options?: {\n header?: string;\n program: any;\n uniforms: any;\n undefinedOnly?: boolean;\n}): {\n table: {};\n count: number;\n unusedTable: {};\n unusedCount: number;\n} {\n const {\n header = 'Uniforms',\n program,\n uniforms,\n undefinedOnly = false\n } = options;\n assert(program);\n\n const SHADER_MODULE_UNIFORM_REGEXP = '.*_.*';\n const PROJECT_MODULE_UNIFORM_REGEXP = '.*Matrix'; // TODO - Use explicit list\n\n const uniformLocations = program._uniformSetters;\n const table = {}; // {[header]: {}};\n\n // Add program's provided uniforms (in alphabetical order)\n const uniformNames = Object.keys(uniformLocations).sort();\n\n let count = 0;\n\n // First add non-underscored uniforms (assumed not coming from shader modules)\n for (const uniformName of uniformNames) {\n if (\n !uniformName.match(SHADER_MODULE_UNIFORM_REGEXP) &&\n !uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)\n ) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n // add underscored uniforms (assumed from shader modules)\n for (const uniformName of uniformNames) {\n if (uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n for (const uniformName of uniformNames) {\n if (!table[uniformName]) {\n if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {\n count++;\n }\n }\n }\n\n // Create a table of unused uniforms\n let unusedCount = 0;\n const unusedTable = {};\n if (!undefinedOnly) {\n for (const uniformName in uniforms) {\n const uniform = uniforms[uniformName];\n if (!table[uniformName]) {\n unusedCount++;\n unusedTable[uniformName] = {\n Type: `NOT USED: ${uniform}`,\n [header]: formatValue(uniform)\n };\n }\n }\n }\n\n return {table, count, unusedTable, unusedCount};\n}\n\n// Helper\nfunction addUniformToTable({table, header, uniforms, uniformName, undefinedOnly}) {\n const value = uniforms[uniformName];\n const isDefined = isUniformDefined(value);\n if (!undefinedOnly || !isDefined) {\n table[uniformName] = {\n // Add program's unprovided uniforms\n [header]: isDefined ? formatValue(value) : 'N/A',\n 'Uniform Type': isDefined ? value : 'NOT PROVIDED'\n };\n return true;\n }\n return false;\n}\n\nfunction isUniformDefined(value) {\n return value !== undefined && value !== null;\n}\n"],"file":"debug-uniforms.js"}
@@ -0,0 +1,5 @@
1
+ export declare function getDebugTableForVertexArray(options?: {
2
+ vertexArray: any;
3
+ header?: string;
4
+ }): {};
5
+ //# sourceMappingURL=debug-vertex-array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-vertex-array.d.ts","sourceRoot":"","sources":["../../src/debug/debug-vertex-array.ts"],"names":[],"mappings":"AAMA,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE;IAAC,WAAW,EAAE,GAAG,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,GAAG,EAAE,CAqC7F"}