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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. package/LICENSE +2 -1
  2. package/dist/adapter/converters/device-parameters.d.ts +14 -4
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/device-parameters.js +28 -46
  5. package/dist/adapter/converters/device-parameters.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts +5 -5
  7. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  8. package/dist/adapter/converters/sampler-parameters.js +20 -56
  9. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  10. package/dist/adapter/converters/texture-formats.d.ts +31 -42
  11. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  12. package/dist/adapter/converters/texture-formats.js +163 -178
  13. package/dist/adapter/converters/texture-formats.js.map +1 -1
  14. package/dist/adapter/converters/vertex-formats.d.ts +2 -2
  15. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  16. package/dist/adapter/converters/vertex-formats.js +3 -9
  17. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  18. package/dist/adapter/device-helpers/device-features.d.ts +1 -1
  19. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  20. package/dist/adapter/device-helpers/device-features.js +13 -20
  21. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  22. package/dist/adapter/device-helpers/device-limits.d.ts +3 -3
  23. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  24. package/dist/adapter/device-helpers/device-limits.js +2 -5
  25. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  26. package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
  27. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
  28. package/dist/adapter/device-helpers/get-device-info.js +9 -11
  29. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  30. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  31. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  32. package/dist/adapter/helpers/attribute-utils.d.ts +4 -4
  33. package/dist/adapter/helpers/attribute-utils.d.ts.map +1 -1
  34. package/dist/adapter/helpers/attribute-utils.js +1 -18
  35. package/dist/adapter/helpers/attribute-utils.js.map +1 -1
  36. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  37. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  38. package/dist/adapter/helpers/get-shader-info.js +25 -0
  39. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  40. package/dist/adapter/helpers/get-shader-layout.d.ts +10 -7
  41. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  42. package/dist/adapter/helpers/get-shader-layout.js +101 -84
  43. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  44. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  45. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  46. package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
  47. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  48. package/dist/adapter/helpers/set-uniform.d.ts +2 -2
  49. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  50. package/dist/adapter/helpers/set-uniform.js +3 -33
  51. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  52. package/dist/adapter/helpers/uniforms.d.ts +9 -10
  53. package/dist/adapter/helpers/uniforms.d.ts.map +1 -1
  54. package/dist/adapter/helpers/uniforms.js +8 -18
  55. package/dist/adapter/helpers/uniforms.js.map +1 -1
  56. package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
  57. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  58. package/dist/adapter/objects/constants-to-keys.js +1 -28
  59. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  60. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  61. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  62. package/dist/adapter/objects/webgl-renderbuffer.js +35 -41
  63. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  64. package/dist/adapter/objects/webgl-resource.d.ts +6 -9
  65. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  66. package/dist/adapter/objects/webgl-resource.js +19 -75
  67. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  68. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +38 -11
  69. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  70. package/dist/adapter/objects/webgl-vertex-array-object.js +122 -32
  71. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  72. package/dist/adapter/resources/webgl-buffer.d.ts +18 -10
  73. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  74. package/dist/adapter/resources/webgl-buffer.js +43 -71
  75. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  76. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  77. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  78. package/dist/adapter/resources/webgl-command-buffer.js +169 -41
  79. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  80. package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
  81. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  82. package/dist/adapter/resources/webgl-command-encoder.js +8 -17
  83. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  84. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  85. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -24
  86. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  87. package/dist/adapter/resources/webgl-framebuffer.js +41 -149
  88. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  89. package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
  90. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  91. package/dist/adapter/resources/webgl-render-pass.js +88 -9
  92. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  93. package/dist/adapter/resources/webgl-render-pipeline.d.ts +44 -11
  94. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  95. package/dist/adapter/resources/webgl-render-pipeline.js +90 -152
  96. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  97. package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
  98. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  99. package/dist/adapter/resources/webgl-sampler.js +7 -15
  100. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  101. package/dist/adapter/resources/webgl-shader.d.ts +3 -4
  102. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  103. package/dist/adapter/resources/webgl-shader.js +9 -22
  104. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  105. package/dist/adapter/resources/webgl-texture.d.ts +64 -44
  106. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  107. package/dist/adapter/resources/webgl-texture.js +98 -213
  108. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  109. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  110. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  111. package/dist/adapter/webgl-canvas-context.js +8 -20
  112. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  113. package/dist/adapter/webgl-device.d.ts +64 -41
  114. package/dist/adapter/webgl-device.d.ts.map +1 -1
  115. package/dist/adapter/webgl-device.js +133 -113
  116. package/dist/adapter/webgl-device.js.map +1 -1
  117. package/dist/classic/accessor.d.ts +3 -3
  118. package/dist/classic/accessor.d.ts.map +1 -1
  119. package/dist/classic/accessor.js +14 -38
  120. package/dist/classic/accessor.js.map +1 -1
  121. package/dist/classic/{buffer.d.ts → buffer-with-accessor.d.ts} +16 -28
  122. package/dist/classic/buffer-with-accessor.d.ts.map +1 -0
  123. package/dist/classic/{buffer.js → buffer-with-accessor.js} +54 -122
  124. package/dist/classic/buffer-with-accessor.js.map +1 -0
  125. package/dist/classic/clear.d.ts +22 -0
  126. package/dist/classic/clear.d.ts.map +1 -0
  127. package/dist/classic/clear.js +88 -0
  128. package/dist/classic/clear.js.map +1 -0
  129. package/dist/classic/copy-and-blit.d.ts +62 -0
  130. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  131. package/dist/classic/copy-and-blit.js +202 -0
  132. package/dist/classic/copy-and-blit.js.map +1 -0
  133. package/dist/classic/format-utils.d.ts +3 -0
  134. package/dist/classic/format-utils.d.ts.map +1 -0
  135. package/dist/classic/format-utils.js +38 -0
  136. package/dist/classic/format-utils.js.map +1 -0
  137. package/dist/classic/typed-array-utils.d.ts +15 -17
  138. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  139. package/dist/classic/typed-array-utils.js +1 -21
  140. package/dist/classic/typed-array-utils.js.map +1 -1
  141. package/dist/context/context/create-browser-context.d.ts +40 -0
  142. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  143. package/dist/{esm/context/context/create-context.js → context/context/create-browser-context.js} +23 -19
  144. package/dist/context/context/create-browser-context.js.map +1 -0
  145. package/dist/context/context/create-headless-context.d.ts +9 -0
  146. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  147. package/dist/context/context/create-headless-context.js +42 -0
  148. package/dist/context/context/create-headless-context.js.map +1 -0
  149. package/dist/context/context/webgl-checks.js +1 -4
  150. package/dist/context/context/webgl-checks.js.map +1 -1
  151. package/dist/context/debug/spector.d.ts +1 -2
  152. package/dist/context/debug/spector.d.ts.map +1 -1
  153. package/dist/context/debug/spector.js +8 -20
  154. package/dist/context/debug/spector.js.map +1 -1
  155. package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
  156. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  157. package/dist/context/debug/webgl-developer-tools.js +11 -34
  158. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  159. package/dist/context/parameters/unified-parameter-api.d.ts +8 -7
  160. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  161. package/dist/context/parameters/unified-parameter-api.js +8 -18
  162. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  163. package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
  164. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  165. package/dist/context/parameters/webgl-parameter-tables.js +18 -36
  166. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  167. package/dist/context/polyfill/context-data.d.ts +13 -0
  168. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  169. package/dist/context/polyfill/context-data.js +12 -0
  170. package/dist/context/polyfill/context-data.js.map +1 -0
  171. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  172. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  173. package/dist/context/polyfill/get-parameter-polyfill.js +4 -9
  174. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  175. package/dist/context/polyfill/polyfill-context.js +21 -29
  176. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  177. package/dist/context/polyfill/polyfill-table.d.ts +8 -8
  178. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  179. package/dist/context/polyfill/polyfill-table.js +10 -32
  180. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  181. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  182. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
  183. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  184. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  185. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  186. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  187. package/dist/context/state-tracker/track-context-state.js +16 -51
  188. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  189. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  190. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  191. package/dist/context/state-tracker/with-parameters.js +7 -9
  192. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  193. package/dist/dist.dev.js +10158 -0
  194. package/dist/index.cjs +6604 -0
  195. package/dist/index.d.ts +25 -22
  196. package/dist/index.d.ts.map +1 -1
  197. package/dist/index.js +27 -26
  198. package/dist/index.js.map +1 -1
  199. package/dist/types.d.ts +1 -1
  200. package/dist/types.d.ts.map +1 -1
  201. package/dist/types.js.map +1 -1
  202. package/dist.min.js +37 -0
  203. package/package.json +21 -9
  204. package/src/adapter/converters/device-parameters.ts +88 -35
  205. package/src/adapter/converters/sampler-parameters.ts +19 -9
  206. package/src/adapter/converters/texture-formats.ts +261 -178
  207. package/src/adapter/converters/vertex-formats.ts +3 -2
  208. package/src/adapter/device-helpers/device-features.ts +10 -3
  209. package/src/adapter/device-helpers/device-limits.ts +3 -3
  210. package/src/adapter/device-helpers/get-device-info.ts +14 -10
  211. package/src/adapter/helpers/attribute-utils.ts +4 -5
  212. package/src/adapter/helpers/get-shader-info.ts +40 -0
  213. package/src/adapter/helpers/get-shader-layout.ts +150 -68
  214. package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
  215. package/src/adapter/helpers/set-uniform.ts +7 -6
  216. package/src/adapter/helpers/uniforms.ts +23 -13
  217. package/src/adapter/objects/constants-to-keys.ts +3 -25
  218. package/src/adapter/objects/webgl-renderbuffer.ts +40 -37
  219. package/src/adapter/objects/webgl-resource.ts +14 -23
  220. package/src/adapter/objects/webgl-vertex-array-object.ts +201 -37
  221. package/src/adapter/resources/webgl-buffer.ts +56 -58
  222. package/src/adapter/resources/webgl-command-buffer.ts +332 -25
  223. package/src/adapter/resources/webgl-command-encoder.ts +16 -11
  224. package/src/adapter/resources/webgl-external-texture.ts +2 -2
  225. package/src/adapter/resources/webgl-framebuffer.ts +88 -133
  226. package/src/adapter/resources/webgl-render-pass.ts +155 -4
  227. package/src/adapter/resources/webgl-render-pipeline.ts +161 -104
  228. package/src/adapter/resources/webgl-sampler.ts +13 -8
  229. package/src/adapter/resources/webgl-shader.ts +11 -10
  230. package/src/adapter/resources/webgl-texture.ts +113 -85
  231. package/src/adapter/webgl-canvas-context.ts +14 -14
  232. package/src/adapter/webgl-device.ts +192 -77
  233. package/src/classic/accessor.ts +4 -17
  234. package/src/classic/{buffer.ts → buffer-with-accessor.ts} +67 -75
  235. package/src/classic/clear.ts +110 -0
  236. package/src/classic/copy-and-blit.ts +308 -0
  237. package/src/classic/format-utils.ts +43 -0
  238. package/src/classic/typed-array-utils.ts +18 -27
  239. package/src/context/context/{create-context.ts → create-browser-context.ts} +48 -31
  240. package/src/context/context/create-headless-context.ts +48 -0
  241. package/src/context/context/webgl-checks.ts +1 -1
  242. package/src/context/debug/spector.ts +7 -6
  243. package/src/context/debug/webgl-developer-tools.ts +21 -15
  244. package/src/context/parameters/unified-parameter-api.ts +20 -14
  245. package/src/context/parameters/webgl-parameter-tables.ts +117 -98
  246. package/src/context/polyfill/context-data.ts +27 -0
  247. package/src/context/polyfill/get-parameter-polyfill.ts +8 -7
  248. package/src/context/polyfill/polyfill-context.ts +7 -9
  249. package/src/context/polyfill/polyfill-table.ts +18 -16
  250. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  251. package/src/context/state-tracker/track-context-state.ts +14 -13
  252. package/src/context/state-tracker/with-parameters.ts +8 -2
  253. package/src/index.ts +42 -33
  254. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  255. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  256. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  257. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  258. package/dist/bundle.d.ts +0 -2
  259. package/dist/bundle.d.ts.map +0 -1
  260. package/dist/bundle.js +0 -5
  261. package/dist/bundle.js.map +0 -1
  262. package/dist/classic/buffer.d.ts.map +0 -1
  263. package/dist/classic/buffer.js.map +0 -1
  264. package/dist/context/context/context-state.d.ts +0 -18
  265. package/dist/context/context/context-state.d.ts.map +0 -1
  266. package/dist/context/context/context-state.js +0 -26
  267. package/dist/context/context/context-state.js.map +0 -1
  268. package/dist/context/context/create-context.d.ts +0 -41
  269. package/dist/context/context/create-context.d.ts.map +0 -1
  270. package/dist/context/context/create-context.js +0 -49
  271. package/dist/context/context/create-context.js.map +0 -1
  272. package/dist/context/context/device-pixels.d.ts +0 -25
  273. package/dist/context/context/device-pixels.d.ts.map +0 -1
  274. package/dist/context/context/device-pixels.js +0 -98
  275. package/dist/context/context/device-pixels.js.map +0 -1
  276. package/dist/es5/adapter/converters/device-parameters.js +0 -170
  277. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  278. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  279. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  280. package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
  281. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  282. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  283. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  284. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  285. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  286. package/dist/es5/adapter/device-helpers/device-features.js +0 -144
  287. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  288. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  289. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  290. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  291. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  292. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  293. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  294. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  295. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  296. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
  297. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  298. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  299. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  300. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  301. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  302. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  303. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  304. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  305. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  306. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  307. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  308. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  309. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  310. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  311. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  312. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  313. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  314. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  315. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  316. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  317. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  318. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  319. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  320. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
  321. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  322. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
  323. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  324. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
  325. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  326. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  327. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  328. package/dist/es5/adapter/resources/webgl-shader.js +0 -149
  329. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  330. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  331. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  332. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  333. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  334. package/dist/es5/adapter/webgl-device.js +0 -399
  335. package/dist/es5/adapter/webgl-device.js.map +0 -1
  336. package/dist/es5/bundle.js +0 -7
  337. package/dist/es5/bundle.js.map +0 -1
  338. package/dist/es5/classic/accessor.js +0 -181
  339. package/dist/es5/classic/accessor.js.map +0 -1
  340. package/dist/es5/classic/buffer.js +0 -470
  341. package/dist/es5/classic/buffer.js.map +0 -1
  342. package/dist/es5/classic/typed-array-utils.js +0 -126
  343. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  344. package/dist/es5/context/context/context-state.js +0 -31
  345. package/dist/es5/context/context/context-state.js.map +0 -1
  346. package/dist/es5/context/context/create-context.js +0 -69
  347. package/dist/es5/context/context/create-context.js.map +0 -1
  348. package/dist/es5/context/context/device-pixels.js +0 -115
  349. package/dist/es5/context/context/device-pixels.js.map +0 -1
  350. package/dist/es5/context/context/webgl-checks.js +0 -54
  351. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  352. package/dist/es5/context/debug/spector.js +0 -133
  353. package/dist/es5/context/debug/spector.js.map +0 -1
  354. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  355. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  356. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  357. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  358. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  359. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  360. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  361. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  362. package/dist/es5/context/polyfill/polyfill-context.js +0 -135
  363. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  364. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  365. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  366. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  367. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  368. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  369. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  370. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  371. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  372. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  373. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  374. package/dist/es5/index.js +0 -276
  375. package/dist/es5/index.js.map +0 -1
  376. package/dist/es5/init.js +0 -10
  377. package/dist/es5/init.js.map +0 -1
  378. package/dist/es5/types/webgl.js +0 -6
  379. package/dist/es5/types/webgl.js.map +0 -1
  380. package/dist/es5/types.js +0 -2
  381. package/dist/es5/types.js.map +0 -1
  382. package/dist/esm/adapter/converters/device-parameters.js +0 -155
  383. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  384. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  385. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  386. package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
  387. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  388. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  389. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  390. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  391. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  392. package/dist/esm/adapter/device-helpers/device-features.js +0 -102
  393. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  394. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  395. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  396. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  397. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  398. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  399. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  400. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  401. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  402. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
  403. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  404. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  405. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  406. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  407. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  408. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  409. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  410. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  411. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  412. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  413. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  414. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  415. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  416. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  417. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  418. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  419. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  420. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  421. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  422. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  423. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  424. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  425. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  426. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
  427. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  428. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
  429. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  430. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  431. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  432. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  433. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  434. package/dist/esm/adapter/resources/webgl-shader.js +0 -75
  435. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  436. package/dist/esm/adapter/resources/webgl-texture.js +0 -831
  437. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  438. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  439. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  440. package/dist/esm/adapter/webgl-device.js +0 -280
  441. package/dist/esm/adapter/webgl-device.js.map +0 -1
  442. package/dist/esm/bundle.js +0 -5
  443. package/dist/esm/bundle.js.map +0 -1
  444. package/dist/esm/classic/accessor.js +0 -144
  445. package/dist/esm/classic/accessor.js.map +0 -1
  446. package/dist/esm/classic/buffer.js +0 -384
  447. package/dist/esm/classic/buffer.js.map +0 -1
  448. package/dist/esm/classic/typed-array-utils.js +0 -112
  449. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  450. package/dist/esm/context/context/context-state.js +0 -26
  451. package/dist/esm/context/context/context-state.js.map +0 -1
  452. package/dist/esm/context/context/create-context.js.map +0 -1
  453. package/dist/esm/context/context/device-pixels.js +0 -98
  454. package/dist/esm/context/context/device-pixels.js.map +0 -1
  455. package/dist/esm/context/context/webgl-checks.js +0 -34
  456. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  457. package/dist/esm/context/debug/spector.js +0 -76
  458. package/dist/esm/context/debug/spector.js.map +0 -1
  459. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  460. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  461. package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
  462. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  463. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  464. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  465. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  466. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  467. package/dist/esm/context/polyfill/polyfill-context.js +0 -92
  468. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  469. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  470. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  471. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  472. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  473. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  474. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  475. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  476. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  477. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  478. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  479. package/dist/esm/index.js +0 -27
  480. package/dist/esm/index.js.map +0 -1
  481. package/dist/esm/init.js +0 -4
  482. package/dist/esm/init.js.map +0 -1
  483. package/dist/esm/types/webgl.js +0 -2
  484. package/dist/esm/types/webgl.js.map +0 -1
  485. package/dist/esm/types.js +0 -2
  486. package/dist/esm/types.js.map +0 -1
  487. package/dist/init.d.ts +0 -2
  488. package/dist/init.d.ts.map +0 -1
  489. package/dist/init.js +0 -4
  490. package/dist/init.js.map +0 -1
  491. package/dist/types/webgl.d.ts +0 -144
  492. package/dist/types/webgl.d.ts.map +0 -1
  493. package/dist/types/webgl.js +0 -2
  494. package/dist/types/webgl.js.map +0 -1
  495. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  496. package/src/bundle.ts +0 -4
  497. package/src/context/context/context-state.ts +0 -41
  498. package/src/context/context/device-pixels.ts +0 -152
  499. package/src/init.ts +0 -4
  500. package/src/types/webgl.ts +0 -283
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/adapter/webgl-device.ts"],"names":["LOG_LEVEL","counter","WebGLDevice","props","clientWidth","clientHeight","devicePixelRatio","device","gl","log","warn","id","canvasContext","WebGLCanvasContext","handle","canvas","gl2","isWebGL2","isWebGL1","info","_version","copyState","args","debug","webgl2","throwOnError","level","Math","max","spector","message","type","vendor","renderer","probe","groupEnd","_features","_limits","_webglLimits","ext","getExtension","destroy","isContextLost","drawingBufferWidth","drawingBufferHeight","format","Error","ClassicBuffer","WEBGLTexture","WEBGLSampler","WEBGLShader","WEBGLFramebuffer","WEBGLRenderPipeline","WEBGLRenderPass","renderPass","beginRenderPass","framebuffer","getCurrentFramebuffer","endPass","WebGLRenderingContext","Device","isWebGL","groupCollapsed","CanvasContext","pageLoaded","WebGL2RenderingContext","Boolean","Number","isFinite"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport type {\n DeviceProps,\n DeviceInfo,\n DeviceLimits,\n DeviceFeature,\n CanvasContextProps,\n TextureFormat\n} from '@luma.gl/api';\nimport {Device, CanvasContext, log, assert} from '@luma.gl/api';\nimport {isBrowser} from '@probe.gl/env';\nimport {polyfillContext} from '../context/polyfill/polyfill-context';\nimport {trackContextState} from '../context/state-tracker/track-context-state';\nimport {ContextState} from '../context/context/context-state';\nimport {createBrowserContext} from '../context/context/create-context';\nimport {getDeviceInfo} from './device-helpers/get-device-info';\nimport {getDeviceFeatures} from './device-helpers/device-features';\nimport {getDeviceLimits, getWebGLLimits, WebGLLimits} from './device-helpers/device-limits';\nimport WebGLCanvasContext from './webgl-canvas-context';\nimport {loadSpectorJS, initializeSpectorJS} from '../context/debug/spector';\nimport {loadWebGLDeveloperTools, makeDebugContext} from '../context/debug/webgl-developer-tools';\nimport {\n isTextureFormatSupported,\n isTextureFormatRenderable,\n isTextureFormatFilterable\n} from './converters/texture-formats';\n\n// WebGL classes\nimport type {\n BufferProps,\n ShaderProps,\n Sampler,\n SamplerProps,\n TextureProps,\n ExternalTexture,\n ExternalTextureProps,\n FramebufferProps,\n RenderPipeline,\n RenderPipelineProps,\n ComputePipeline,\n ComputePipelineProps,\n RenderPass,\n RenderPassProps,\n ComputePass,\n ComputePassProps\n} from '@luma.gl/api';\n\nimport ClassicBuffer from '../classic/buffer';\nimport WEBGLBuffer from './resources/webgl-buffer';\nimport WEBGLShader from './resources/webgl-shader';\nimport WEBGLSampler from './resources/webgl-sampler';\nimport WEBGLTexture from './resources/webgl-texture';\nimport WEBGLFramebuffer from './resources/webgl-framebuffer';\nimport WEBGLRenderPass from './resources/webgl-render-pass';\nimport WEBGLRenderPipeline from './resources/webgl-render-pipeline';\n\nconst LOG_LEVEL = 1;\n\nlet counter = 0;\n\n/** WebGPU style Device API for a WebGL context */\nexport default class WebGLDevice extends Device implements ContextState {\n // Public API\n\n static type: string = 'webgl';\n\n static isSupported(): boolean {\n return typeof WebGLRenderingContext !== 'undefined';\n }\n\n readonly info: DeviceInfo;\n readonly canvasContext: WebGLCanvasContext;\n readonly lost: Promise<{reason: 'destroyed'; message: string}>;\n readonly handle: WebGLRenderingContext;\n\n get features(): Set<DeviceFeature> {\n this._features = this._features || getDeviceFeatures(this.gl);\n return this._features;\n }\n\n get limits(): DeviceLimits {\n this._limits = this._limits || getDeviceLimits(this.gl);\n return this._limits;\n }\n\n // WebGL specific API\n\n /** WebGL1 typed context. Can always be used. */\n readonly gl: WebGLRenderingContext;\n /** WebGL2 typed context. Need to check isWebGL2 or isWebGL1 before using. */\n readonly gl2: WebGL2RenderingContext;\n readonly debug: boolean = false;\n\n /** `true` if this is a WebGL1 context. @note `false` if WebGL2 */\n readonly isWebGL1: boolean;\n /** `true` if this is a WebGL2 context. @note `false` if WebGL1 */\n readonly isWebGL2: boolean;\n\n get webglLimits(): WebGLLimits {\n this._webglLimits = this._webglLimits || getWebGLLimits(this.gl);\n return this._webglLimits;\n }\n\n private _features: Set<DeviceFeature>;\n private _limits: DeviceLimits;\n private _webglLimits: WebGLLimits;\n\n /** State used by luma.gl classes: TODO - move to canvasContext*/\n readonly _canvasSizeInfo = {clientWidth: 0, clientHeight: 0, devicePixelRatio: 1};\n /** State used by luma.gl classes */\n readonly _extensions: Record<string, any> = {};\n _polyfilled: boolean = false;\n\n /** Instance of Spector.js (if initialized) */\n spector;\n\n /**\n * Get a device instance from a GL context\n * Creates and instruments the device if not already created\n * @param gl\n * @returns\n */\n static attach(gl: Device | WebGLRenderingContext | WebGL2RenderingContext): WebGLDevice {\n if (gl instanceof WebGLDevice) {\n return gl;\n }\n // @ts-expect-error\n if (gl?.device instanceof Device) {\n // @ts-expect-error\n return gl.device as WebGLDevice;\n }\n if (!isWebGL(gl)) {\n throw new Error('Invalid WebGLRenderingContext');\n }\n return new WebGLDevice({gl: gl as WebGLRenderingContext});\n }\n\n static async create(props?: DeviceProps): Promise<WebGLDevice> {\n log.groupCollapsed(LOG_LEVEL, 'WebGLDevice created');\n\n // Wait for page to load. Only wait when props. canvas is string\n // to avoid setting page onload callback unless necessary\n if (typeof props.canvas === 'string') {\n await CanvasContext.pageLoaded;\n }\n\n // Load webgl and spector debug scripts from CDN if requested\n if (props.debug) {\n await loadWebGLDeveloperTools();\n }\n // @ts-expect-error spector not on props\n if (props.spector) {\n await loadSpectorJS();\n }\n\n log.probe(LOG_LEVEL, 'DOM is loaded')();\n return new WebGLDevice(props);\n }\n\n constructor(props: DeviceProps) {\n super(props);\n\n // If attaching to an already attached context, return the attached device\n // @ts-expect-error device is attached to context\n const device: WebGLDevice | undefined = props.gl?.device;\n if (device) {\n log.warn(`WebGL context already attached to device ${device.id}`);\n return device;\n }\n\n // Create and instrument context\n this.canvasContext = new WebGLCanvasContext(this, props);\n\n this.handle = props.gl || createBrowserContext(this.canvasContext.canvas, props);\n this.gl = this.handle;\n this.gl2 = this.gl as WebGL2RenderingContext;\n this.isWebGL2 = isWebGL2(this.gl);\n this.isWebGL1 = !this.isWebGL2;\n\n // luma Device fields\n this.info = getDeviceInfo(this.gl);\n\n // @ts-expect-error Link webgl context back to device\n this.gl.device = this;\n // @ts-expect-error Annotate webgl context to handle \n this.gl._version = this.isWebGL2 ? 2 : 1;\n\n // Add subset of WebGL2 methods to WebGL1 context\n polyfillContext(this.gl);\n // Install context state tracking\n trackContextState(this.gl, {copyState: false, log: (...args: any[]) => log.log(1, ...args)()});\n\n // DEBUG contexts: Add debug instrumentation to the context, force log level to at least 1\n if (isBrowser() && props.debug) {\n this.gl = makeDebugContext(this.gl, {...props, webgl2: this.isWebGL2, throwOnError: true});\n this.gl2 = this.gl as WebGL2RenderingContext;\n this.debug = true;\n log.level = Math.max(log.level, 1);\n log.warn('WebGL debug mode activated. Performance reduced.')();\n }\n\n // @ts-expect-error spector not on props\n if (isBrowser() && props.spector) {\n const canvas = this.handle.canvas || (props.canvas as HTMLCanvasElement);\n this.spector = initializeSpectorJS({...this.props, canvas});\n }\n\n // Log some debug info about the newly created context\n const message = `\\\nCreated ${this.info.type}${this.debug ? ' debug' : ''} context: \\\n${this.info.vendor}, ${this.info.renderer} for canvas: ${this.canvasContext.id}`;\n log.probe(LOG_LEVEL, message)();\n\n log.groupEnd(LOG_LEVEL)();\n }\n\n /**\n * Destroys the context\n * @note Has no effect for browser contexts, there is no browser API for destroying contexts\n */\n destroy() {\n let ext = this.gl.getExtension('STACKGL_destroy_context');\n if (ext) {\n ext.destroy();\n }\n // ext = this.gl.getExtension('WEBGL_lose_context');\n // if (ext) {\n // // TODO - disconnect context lost callbacks?\n // ext.loseContext();\n // }\n }\n\n get isLost(): boolean {\n return this.gl.isContextLost();\n }\n\n getSize(): [number, number] {\n return [this.gl.drawingBufferWidth, this.gl.drawingBufferHeight];\n }\n\n isTextureFormatSupported(format: TextureFormat): boolean {\n return isTextureFormatSupported(this.gl, format);\n }\n\n isTextureFormatFilterable(format: TextureFormat): boolean {\n return isTextureFormatFilterable(this.gl, format);\n }\n\n isTextureFormatRenderable(format: TextureFormat): boolean {\n return isTextureFormatRenderable(this.gl, format);\n }\n\n // WEBGL SPECIFIC METHODS\n\n /** Returns a WebGL2RenderingContext or throws an error */\n assertWebGL2(): WebGL2RenderingContext {\n assert(this.isWebGL2, 'Requires WebGL2');\n return this.gl2;\n }\n\n // IMPLEMENTATION OF ABSTRACT DEVICE\n\n createCanvasContext(props?: CanvasContextProps): CanvasContext {\n throw new Error('WebGL only supports a single canvas');\n }\n\n _createBuffer(props: BufferProps): WEBGLBuffer {\n return new ClassicBuffer(this, props);\n }\n\n _createTexture(props: TextureProps): WEBGLTexture {\n return new WEBGLTexture(this, props);\n }\n\n createExternalTexture(props: ExternalTextureProps): ExternalTexture {\n throw new Error('createExternalTexture() not implemented'); // return new Program(props);\n }\n\n createSampler(props: SamplerProps): WEBGLSampler {\n return new WEBGLSampler(this, props);\n }\n\n createShader(props: ShaderProps): WEBGLShader {\n return new WEBGLShader(this, props);\n }\n\n createFramebuffer(props: FramebufferProps): WEBGLFramebuffer {\n return new WEBGLFramebuffer(this, props);\n }\n\n createRenderPipeline(props: RenderPipelineProps): WEBGLRenderPipeline {\n return new WEBGLRenderPipeline(this, props);\n }\n\n beginRenderPass(props: RenderPassProps): WEBGLRenderPass {\n return new WEBGLRenderPass(this, props);\n }\n\n createComputePipeline(props?: ComputePipelineProps): ComputePipeline {\n throw new Error('ComputePipeline not supported in WebGL');\n }\n\n beginComputePass(props: ComputePassProps): ComputePass {\n throw new Error('compute shaders not supported in WebGL');\n }\n\n private renderPass: WEBGLRenderPass;\n\n getDefaultRenderPass(): WEBGLRenderPass {\n this.renderPass =\n this.renderPass ||\n this.beginRenderPass({\n framebuffer: this.canvasContext.getCurrentFramebuffer()\n });\n return this.renderPass;\n }\n\n /**\n * Offscreen Canvas Support: Commit the frame\n * https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/commit\n * Chrome's offscreen canvas does not require gl.commit\n */\n submit(): void {\n this.renderPass.endPass();\n this.renderPass = null;\n // this.canvasContext.commit();\n }\n}\n\n/** Check if supplied parameter is a WebGLRenderingContext */\nfunction isWebGL(gl: any): boolean {\n if (typeof WebGLRenderingContext !== 'undefined' && gl instanceof WebGLRenderingContext) {\n return true;\n }\n if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {\n return true;\n }\n // Look for debug contexts, headless gl etc\n return Boolean(gl && Number.isFinite(gl._version));\n}\n\n\n/** Check if supplied parameter is a WebGL2RenderingContext */\nfunction isWebGL2(gl: any): boolean {\n if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {\n return true;\n }\n // Look for debug contexts, headless gl etc\n return Boolean(gl && gl._version === 2);\n}\n"],"file":"webgl-device.js"}
@@ -1,7 +0,0 @@
1
- "use strict";
2
-
3
- var moduleExports = require('./index');
4
-
5
- globalThis.luma = globalThis.luma || {};
6
- module.exports = Object.assign(globalThis.luma, moduleExports);
7
- //# sourceMappingURL=bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","luma","module","exports","Object","assign"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,IAAX,GAAkBD,UAAU,CAACC,IAAX,IAAmB,EAArC;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,IAAzB,EAA+BH,aAA/B,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.luma = globalThis.luma || {};\nmodule.exports = Object.assign(globalThis.luma, moduleExports);\n"],"file":"bundle.js"}
@@ -1,181 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.DEFAULT_ACCESSOR_VALUES = exports.default = void 0;
9
-
10
- var _construct2 = _interopRequireDefault(require("@babel/runtime/helpers/construct"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
- var _api = require("@luma.gl/api");
19
-
20
- var _constants = _interopRequireDefault(require("@luma.gl/constants"));
21
-
22
- var _typedArrayUtils = require("./typed-array-utils");
23
-
24
- var DEFAULT_ACCESSOR_VALUES = {
25
- offset: 0,
26
- stride: 0,
27
- type: _constants.default.FLOAT,
28
- size: 1,
29
- divisor: 0,
30
- normalized: false,
31
- integer: false
32
- };
33
- exports.DEFAULT_ACCESSOR_VALUES = DEFAULT_ACCESSOR_VALUES;
34
- var PROP_CHECKS = {
35
- deprecatedProps: {
36
- instanced: 'divisor',
37
- isInstanced: 'divisor'
38
- }
39
- };
40
-
41
- var Accessor = function () {
42
- function Accessor() {
43
- var _this = this;
44
-
45
- (0, _classCallCheck2.default)(this, Accessor);
46
- (0, _defineProperty2.default)(this, "offset", void 0);
47
- (0, _defineProperty2.default)(this, "stride", void 0);
48
- (0, _defineProperty2.default)(this, "type", void 0);
49
- (0, _defineProperty2.default)(this, "size", void 0);
50
- (0, _defineProperty2.default)(this, "divisor", void 0);
51
- (0, _defineProperty2.default)(this, "normalized", void 0);
52
- (0, _defineProperty2.default)(this, "integer", void 0);
53
- (0, _defineProperty2.default)(this, "buffer", void 0);
54
- (0, _defineProperty2.default)(this, "index", void 0);
55
-
56
- for (var _len = arguments.length, accessors = new Array(_len), _key = 0; _key < _len; _key++) {
57
- accessors[_key] = arguments[_key];
58
- }
59
-
60
- accessors.forEach(function (accessor) {
61
- return _this._assign(accessor);
62
- });
63
- Object.freeze(this);
64
- }
65
-
66
- (0, _createClass2.default)(Accessor, [{
67
- key: "toString",
68
- value: function toString() {
69
- return JSON.stringify(this);
70
- }
71
- }, {
72
- key: "BYTES_PER_ELEMENT",
73
- get: function get() {
74
- return Accessor.getBytesPerElement(this);
75
- }
76
- }, {
77
- key: "BYTES_PER_VERTEX",
78
- get: function get() {
79
- return Accessor.getBytesPerVertex(this);
80
- }
81
- }, {
82
- key: "_assign",
83
- value: function _assign() {
84
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
85
- props = (0, _api.checkProps)('Accessor', props, PROP_CHECKS);
86
-
87
- if (props.type !== undefined) {
88
- this.type = props.type;
89
-
90
- if (props.type === _constants.default.INT || props.type === _constants.default.UNSIGNED_INT) {
91
- this.integer = true;
92
- }
93
- }
94
-
95
- if (props.size !== undefined) {
96
- this.size = props.size;
97
- }
98
-
99
- if (props.offset !== undefined) {
100
- this.offset = props.offset;
101
- }
102
-
103
- if (props.stride !== undefined) {
104
- this.stride = props.stride;
105
- }
106
-
107
- if (props.normalize !== undefined) {
108
- this.normalized = props.normalize;
109
- }
110
-
111
- if (props.normalized !== undefined) {
112
- this.normalized = props.normalized;
113
- }
114
-
115
- if (props.integer !== undefined) {
116
- this.integer = props.integer;
117
- }
118
-
119
- if (props.divisor !== undefined) {
120
- this.divisor = props.divisor;
121
- }
122
-
123
- if (props.buffer !== undefined) {
124
- this.buffer = props.buffer;
125
- }
126
-
127
- if (props.index !== undefined) {
128
- if (typeof props.index === 'boolean') {
129
- this.index = props.index ? 1 : 0;
130
- } else {
131
- this.index = props.index;
132
- }
133
- }
134
-
135
- if (props.instanced !== undefined) {
136
- this.divisor = props.instanced ? 1 : 0;
137
- }
138
-
139
- if (props.isInstanced !== undefined) {
140
- this.divisor = props.isInstanced ? 1 : 0;
141
- }
142
-
143
- if (this.offset === undefined) delete this.offset;
144
- if (this.stride === undefined) delete this.stride;
145
- if (this.type === undefined) delete this.type;
146
- if (this.size === undefined) delete this.size;
147
- if (this.divisor === undefined) delete this.divisor;
148
- if (this.normalized === undefined) delete this.normalized;
149
- if (this.integer === undefined) delete this.integer;
150
- if (this.buffer === undefined) delete this.buffer;
151
- if (this.index === undefined) delete this.index;
152
- return this;
153
- }
154
- }], [{
155
- key: "getBytesPerElement",
156
- value: function getBytesPerElement(accessor) {
157
- var ArrayType = (0, _typedArrayUtils.getTypedArrayFromGLType)(accessor.type || _constants.default.FLOAT);
158
- return ArrayType.BYTES_PER_ELEMENT;
159
- }
160
- }, {
161
- key: "getBytesPerVertex",
162
- value: function getBytesPerVertex(accessor) {
163
- (0, _api.assert)(accessor.size);
164
- var ArrayType = (0, _typedArrayUtils.getTypedArrayFromGLType)(accessor.type || _constants.default.FLOAT);
165
- return ArrayType.BYTES_PER_ELEMENT * accessor.size;
166
- }
167
- }, {
168
- key: "resolve",
169
- value: function resolve() {
170
- for (var _len2 = arguments.length, accessors = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
171
- accessors[_key2] = arguments[_key2];
172
- }
173
-
174
- return (0, _construct2.default)(Accessor, [DEFAULT_ACCESSOR_VALUES].concat(accessors));
175
- }
176
- }]);
177
- return Accessor;
178
- }();
179
-
180
- exports.default = Accessor;
181
- //# sourceMappingURL=accessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/classic/accessor.ts"],"names":["DEFAULT_ACCESSOR_VALUES","offset","stride","type","GL","FLOAT","size","divisor","normalized","integer","PROP_CHECKS","deprecatedProps","instanced","isInstanced","Accessor","accessors","forEach","accessor","_assign","Object","freeze","JSON","stringify","getBytesPerElement","getBytesPerVertex","props","undefined","INT","UNSIGNED_INT","normalize","buffer","index","ArrayType","BYTES_PER_ELEMENT"],"mappings":"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","sourcesContent":["import {assert, checkProps, Buffer, AccessorObject} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {getTypedArrayFromGLType} from './typed-array-utils';\n\n// export interface AccessorObject {\n// offset?: number;\n// stride?: number;\n// type?: number;\n// size?: number;\n// divisor?: number;\n// normalized?: boolean;\n// integer?: boolean;\n\n// buffer?: Buffer;\n// index?: number;\n// }\n\nconst DEFAULT_ACCESSOR_VALUES = {\n offset: 0,\n stride: 0,\n type: GL.FLOAT,\n size: 1,\n divisor: 0,\n normalized: false,\n integer: false\n};\n\nconst PROP_CHECKS = {\n deprecatedProps: {\n instanced: 'divisor',\n isInstanced: 'divisor'\n }\n};\n\nexport default class Accessor implements AccessorObject {\n offset?: number;\n stride?: number;\n type?: number;\n size?: number;\n divisor?: number;\n normalized?: boolean;\n integer?: boolean;\n\n buffer?: Buffer;\n index?: number;\n\n static getBytesPerElement(accessor: Accessor | AccessorObject): number {\n // TODO: using `FLOAT` when type is not specified,\n // ensure this assumption is valid or force API to specify type.\n const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);\n return ArrayType.BYTES_PER_ELEMENT;\n }\n\n static getBytesPerVertex(accessor: AccessorObject): number {\n assert(accessor.size);\n // TODO: using `FLOAT` when type is not specified,\n // ensure this assumption is valid or force API to specify type.\n const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);\n return ArrayType.BYTES_PER_ELEMENT * accessor.size;\n }\n\n // Combines (merges) a list of accessors. On top of default values\n // Usually [programAccessor, bufferAccessor, appAccessor]\n // All props will be set in the returned object.\n // TODO check for conflicts between values in the supplied accessors\n static resolve(...accessors: AccessorObject[]): Accessor {\n return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]); // Default values\n }\n\n constructor(...accessors: AccessorObject[]) {\n accessors.forEach((accessor) => this._assign(accessor)); // Merge in sequence\n Object.freeze(this);\n }\n\n toString(): string {\n return JSON.stringify(this);\n }\n\n // ACCESSORS\n\n // TODO - remove>\n get BYTES_PER_ELEMENT(): number {\n return Accessor.getBytesPerElement(this);\n }\n\n get BYTES_PER_VERTEX(): number {\n return Accessor.getBytesPerVertex(this);\n }\n\n // PRIVATE\n\n // eslint-disable-next-line complexity, max-statements\n _assign(props: AccessorObject = {}): this {\n props = checkProps('Accessor', props, PROP_CHECKS);\n\n if (props.type !== undefined) {\n this.type = props.type;\n\n // Auto-deduce integer type?\n if (props.type === GL.INT || props.type === GL.UNSIGNED_INT) {\n this.integer = true;\n }\n }\n if (props.size !== undefined) {\n this.size = props.size;\n }\n if (props.offset !== undefined) {\n this.offset = props.offset;\n }\n if (props.stride !== undefined) {\n this.stride = props.stride;\n }\n // @ts-expect-error\n if (props.normalize !== undefined) {\n // @ts-expect-error\n this.normalized = props.normalize;\n }\n if (props.normalized !== undefined) {\n this.normalized = props.normalized;\n }\n if (props.integer !== undefined) {\n this.integer = props.integer;\n }\n\n // INSTANCE DIVISOR\n if (props.divisor !== undefined) {\n this.divisor = props.divisor;\n }\n\n // Buffer is optional\n if (props.buffer !== undefined) {\n this.buffer = props.buffer;\n }\n\n // The binding index (for binding e.g. Transform feedbacks and Uniform buffers)\n // TODO - should this be part of accessor?\n if (props.index !== undefined) {\n if (typeof props.index === 'boolean') {\n this.index = props.index ? 1 : 0;\n } else {\n this.index = props.index;\n }\n }\n\n // DEPRECATED\n // @ts-expect-error\n if (props.instanced !== undefined) {\n // @ts-expect-error\n this.divisor = props.instanced ? 1 : 0;\n }\n // @ts-expect-error\n if (props.isInstanced !== undefined) {\n // @ts-expect-error\n this.divisor = props.isInstanced ? 1 : 0;\n }\n\n if (this.offset === undefined) delete this.offset;\n if (this.stride === undefined) delete this.stride;\n if (this.type === undefined) delete this.type;\n if (this.size === undefined) delete this.size;\n if (this.divisor === undefined) delete this.divisor;\n if (this.normalized === undefined) delete this.normalized;\n if (this.integer === undefined) delete this.integer;\n \n if (this.buffer === undefined) delete this.buffer;\n if (this.index === undefined) delete this.index;\n \n return this;\n }\n}\n\n// TEST EXPORTS\nexport {DEFAULT_ACCESSOR_VALUES};\n"],"file":"accessor.js"}