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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/dist/adapter/converters/device-parameters.js +199 -136
  2. package/dist/adapter/converters/renderbuffer-formats.d.ts +1 -1
  3. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
  4. package/dist/adapter/converters/renderbuffer-formats.js +62 -176
  5. package/dist/adapter/converters/sampler-parameters.js +149 -206
  6. package/dist/adapter/converters/texture-formats.d.ts +2 -2
  7. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  8. package/dist/adapter/converters/texture-formats.js +437 -890
  9. package/dist/adapter/converters/vertex-formats.js +15 -33
  10. package/dist/adapter/device-helpers/device-features.js +119 -100
  11. package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
  12. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  13. package/dist/adapter/device-helpers/device-limits.js +88 -86
  14. package/dist/adapter/device-helpers/get-device-info.js +42 -43
  15. package/dist/adapter/device-helpers/is-old-ie.js +9 -6
  16. package/dist/adapter/helpers/attribute-utils.js +50 -74
  17. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  18. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  19. package/dist/adapter/helpers/get-shader-info.js +27 -0
  20. package/dist/adapter/helpers/get-shader-layout.js +307 -296
  21. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  22. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  23. package/dist/adapter/helpers/parse-shader-compiler-log.js +32 -33
  24. package/dist/adapter/helpers/set-uniform.js +67 -110
  25. package/dist/adapter/helpers/uniforms.js +80 -85
  26. package/dist/adapter/objects/constants-to-keys.js +33 -33
  27. package/dist/adapter/objects/webgl-renderbuffer.d.ts +1 -1
  28. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  29. package/dist/adapter/objects/webgl-renderbuffer.js +67 -86
  30. package/dist/adapter/objects/webgl-resource.js +213 -205
  31. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
  32. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  33. package/dist/adapter/objects/webgl-vertex-array-object.js +74 -76
  34. package/dist/adapter/resources/webgl-buffer.js +150 -147
  35. package/dist/adapter/resources/webgl-command-buffer.d.ts +5 -5
  36. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  37. package/dist/adapter/resources/webgl-command-buffer.js +39 -55
  38. package/dist/adapter/resources/webgl-command-encoder.js +25 -49
  39. package/dist/adapter/resources/webgl-external-texture.js +91 -1
  40. package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
  41. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  42. package/dist/adapter/resources/webgl-framebuffer.js +231 -258
  43. package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
  44. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  45. package/dist/adapter/resources/webgl-render-pass.js +8 -18
  46. package/dist/adapter/resources/webgl-render-pipeline.js +316 -378
  47. package/dist/adapter/resources/webgl-sampler.js +42 -47
  48. package/dist/adapter/resources/webgl-shader.d.ts +1 -2
  49. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  50. package/dist/adapter/resources/webgl-shader.js +58 -68
  51. package/dist/adapter/resources/webgl-texture.d.ts +5 -5
  52. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  53. package/dist/adapter/resources/webgl-texture.js +661 -815
  54. package/dist/adapter/webgl-canvas-context.js +55 -49
  55. package/dist/adapter/webgl-device.js +288 -338
  56. package/dist/bundle.js +1 -2
  57. package/dist/classic/accessor.js +120 -127
  58. package/dist/classic/buffer.d.ts +1 -1
  59. package/dist/classic/buffer.d.ts.map +1 -1
  60. package/dist/classic/buffer.js +325 -356
  61. package/dist/classic/typed-array-utils.d.ts +1 -1
  62. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  63. package/dist/classic/typed-array-utils.js +91 -101
  64. package/dist/context/context/create-browser-context.d.ts +1 -2
  65. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  66. package/dist/context/context/create-browser-context.js +61 -52
  67. package/dist/context/context/create-headless-context.d.ts +1 -1
  68. package/dist/context/context/create-headless-context.d.ts.map +1 -1
  69. package/dist/context/context/create-headless-context.js +26 -33
  70. package/dist/context/context/webgl-checks.js +25 -20
  71. package/dist/context/debug/spector.d.ts +1 -2
  72. package/dist/context/debug/spector.d.ts.map +1 -1
  73. package/dist/context/debug/spector.js +53 -62
  74. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  75. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  76. package/dist/context/debug/webgl-developer-tools.js +106 -93
  77. package/dist/context/parameters/unified-parameter-api.js +91 -55
  78. package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
  79. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  80. package/dist/context/parameters/webgl-parameter-tables.js +462 -423
  81. package/dist/context/polyfill/context-data.js +16 -12
  82. package/dist/context/polyfill/get-parameter-polyfill.js +91 -76
  83. package/dist/context/polyfill/polyfill-context.js +75 -80
  84. package/dist/context/polyfill/polyfill-table.js +133 -139
  85. package/dist/context/polyfill/polyfill-vertex-array-object.js +255 -297
  86. package/dist/context/state-tracker/deep-array-equal.js +16 -18
  87. package/dist/context/state-tracker/track-context-state.js +183 -161
  88. package/dist/context/state-tracker/with-parameters.js +43 -35
  89. package/dist/dist.min.js +1 -0
  90. package/dist/es5/adapter/converters/device-parameters.js +3 -38
  91. package/dist/es5/adapter/converters/device-parameters.js.map +1 -1
  92. package/dist/es5/adapter/converters/renderbuffer-formats.js +2 -14
  93. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -1
  94. package/dist/es5/adapter/converters/sampler-parameters.js +2 -65
  95. package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -1
  96. package/dist/es5/adapter/converters/texture-formats.js +9 -81
  97. package/dist/es5/adapter/converters/texture-formats.js.map +1 -1
  98. package/dist/es5/adapter/converters/vertex-formats.js +0 -12
  99. package/dist/es5/adapter/converters/vertex-formats.js.map +1 -1
  100. package/dist/es5/adapter/device-helpers/device-features.js +6 -40
  101. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
  102. package/dist/es5/adapter/device-helpers/device-limits.js +0 -10
  103. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
  104. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -10
  105. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
  106. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -1
  107. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -1
  108. package/dist/es5/adapter/helpers/attribute-utils.js +3 -25
  109. package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -1
  110. package/dist/es5/adapter/helpers/get-shader-info.js +31 -0
  111. package/dist/es5/adapter/helpers/get-shader-info.js.map +1 -0
  112. package/dist/es5/adapter/helpers/get-shader-layout.js +23 -101
  113. package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -1
  114. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +6 -24
  115. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  116. package/dist/es5/adapter/helpers/set-uniform.js +0 -33
  117. package/dist/es5/adapter/helpers/set-uniform.js.map +1 -1
  118. package/dist/es5/adapter/helpers/uniforms.js +13 -37
  119. package/dist/es5/adapter/helpers/uniforms.js.map +1 -1
  120. package/dist/es5/adapter/objects/constants-to-keys.js +1 -12
  121. package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -1
  122. package/dist/es5/adapter/objects/webgl-renderbuffer.js +5 -33
  123. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -1
  124. package/dist/es5/adapter/objects/webgl-resource.js +6 -60
  125. package/dist/es5/adapter/objects/webgl-resource.js.map +1 -1
  126. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +7 -35
  127. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  128. package/dist/es5/adapter/resources/webgl-buffer.js +20 -66
  129. package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -1
  130. package/dist/es5/adapter/resources/webgl-command-buffer.js +6 -32
  131. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -1
  132. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -18
  133. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -1
  134. package/dist/es5/adapter/resources/webgl-external-texture.js.map +1 -1
  135. package/dist/es5/adapter/resources/webgl-framebuffer.js +10 -82
  136. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -1
  137. package/dist/es5/adapter/resources/webgl-render-pass.js +2 -19
  138. package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -1
  139. package/dist/es5/adapter/resources/webgl-render-pipeline.js +24 -133
  140. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -1
  141. package/dist/es5/adapter/resources/webgl-sampler.js +2 -28
  142. package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -1
  143. package/dist/es5/adapter/resources/webgl-shader.js +13 -52
  144. package/dist/es5/adapter/resources/webgl-shader.js.map +1 -1
  145. package/dist/es5/adapter/resources/webgl-texture.js +137 -291
  146. package/dist/es5/adapter/resources/webgl-texture.js.map +1 -1
  147. package/dist/es5/adapter/webgl-canvas-context.js +0 -24
  148. package/dist/es5/adapter/webgl-canvas-context.js.map +1 -1
  149. package/dist/es5/adapter/webgl-device.js +40 -127
  150. package/dist/es5/adapter/webgl-device.js.map +1 -1
  151. package/dist/es5/bundle.js +0 -1
  152. package/dist/es5/bundle.js.map +1 -1
  153. package/dist/es5/classic/accessor.js +1 -31
  154. package/dist/es5/classic/accessor.js.map +1 -1
  155. package/dist/es5/classic/buffer.js +32 -102
  156. package/dist/es5/classic/buffer.js.map +1 -1
  157. package/dist/es5/classic/typed-array-utils.js +10 -37
  158. package/dist/es5/classic/typed-array-utils.js.map +1 -1
  159. package/dist/es5/context/context/create-browser-context.js +4 -21
  160. package/dist/es5/context/context/create-browser-context.js.map +1 -1
  161. package/dist/es5/context/context/create-headless-context.js +8 -21
  162. package/dist/es5/context/context/create-headless-context.js.map +1 -1
  163. package/dist/es5/context/context/webgl-checks.js +4 -14
  164. package/dist/es5/context/context/webgl-checks.js.map +1 -1
  165. package/dist/es5/context/debug/spector.js +20 -54
  166. package/dist/es5/context/debug/spector.js.map +1 -1
  167. package/dist/es5/context/debug/webgl-developer-tools.js +19 -65
  168. package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -1
  169. package/dist/es5/context/parameters/unified-parameter-api.js +3 -28
  170. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
  171. package/dist/es5/context/parameters/webgl-parameter-tables.js +18 -65
  172. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
  173. package/dist/es5/context/polyfill/context-data.js +0 -3
  174. package/dist/es5/context/polyfill/context-data.js.map +1 -1
  175. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -12
  176. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
  177. package/dist/es5/context/polyfill/polyfill-context.js +8 -33
  178. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
  179. package/dist/es5/context/polyfill/polyfill-table.js +3 -27
  180. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
  181. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -70
  182. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  183. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -5
  184. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
  185. package/dist/es5/context/state-tracker/track-context-state.js +10 -53
  186. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
  187. package/dist/es5/context/state-tracker/with-parameters.js +1 -13
  188. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
  189. package/dist/es5/index.js +72 -99
  190. package/dist/es5/index.js.map +1 -1
  191. package/dist/es5/init.js +0 -3
  192. package/dist/es5/init.js.map +1 -1
  193. package/dist/es5/types/webgl.js +0 -1
  194. package/dist/es5/types/webgl.js.map +1 -1
  195. package/dist/es5/types.js.map +1 -1
  196. package/dist/esm/adapter/converters/device-parameters.js +0 -20
  197. package/dist/esm/adapter/converters/device-parameters.js.map +1 -1
  198. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -4
  199. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -1
  200. package/dist/esm/adapter/converters/sampler-parameters.js +2 -57
  201. package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -1
  202. package/dist/esm/adapter/converters/texture-formats.js +8 -52
  203. package/dist/esm/adapter/converters/texture-formats.js.map +1 -1
  204. package/dist/esm/adapter/converters/vertex-formats.js +0 -9
  205. package/dist/esm/adapter/converters/vertex-formats.js.map +1 -1
  206. package/dist/esm/adapter/device-helpers/device-features.js +2 -19
  207. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
  208. package/dist/esm/adapter/device-helpers/device-limits.js +0 -3
  209. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
  210. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -6
  211. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
  212. package/dist/esm/adapter/device-helpers/is-old-ie.js +2 -1
  213. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -1
  214. package/dist/esm/adapter/helpers/attribute-utils.js +0 -17
  215. package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -1
  216. package/dist/esm/adapter/helpers/get-shader-info.js +25 -0
  217. package/dist/esm/adapter/helpers/get-shader-info.js.map +1 -0
  218. package/dist/esm/adapter/helpers/get-shader-layout.js +2 -48
  219. package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -1
  220. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -7
  221. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  222. package/dist/esm/adapter/helpers/set-uniform.js +0 -30
  223. package/dist/esm/adapter/helpers/set-uniform.js.map +1 -1
  224. package/dist/esm/adapter/helpers/uniforms.js +0 -10
  225. package/dist/esm/adapter/helpers/uniforms.js.map +1 -1
  226. package/dist/esm/adapter/objects/constants-to-keys.js +0 -7
  227. package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -1
  228. package/dist/esm/adapter/objects/webgl-renderbuffer.js +2 -18
  229. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -1
  230. package/dist/esm/adapter/objects/webgl-resource.js +10 -57
  231. package/dist/esm/adapter/objects/webgl-resource.js.map +1 -1
  232. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +5 -15
  233. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  234. package/dist/esm/adapter/resources/webgl-buffer.js +12 -40
  235. package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -1
  236. package/dist/esm/adapter/resources/webgl-command-buffer.js +2 -17
  237. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -1
  238. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -12
  239. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -1
  240. package/dist/esm/adapter/resources/webgl-external-texture.js.map +1 -1
  241. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -60
  242. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -1
  243. package/dist/esm/adapter/resources/webgl-render-pass.js +1 -8
  244. package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -1
  245. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -89
  246. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -1
  247. package/dist/esm/adapter/resources/webgl-sampler.js +0 -12
  248. package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -1
  249. package/dist/esm/adapter/resources/webgl-shader.js +2 -16
  250. package/dist/esm/adapter/resources/webgl-shader.js.map +1 -1
  251. package/dist/esm/adapter/resources/webgl-texture.js +36 -154
  252. package/dist/esm/adapter/resources/webgl-texture.js.map +1 -1
  253. package/dist/esm/adapter/webgl-canvas-context.js +0 -14
  254. package/dist/esm/adapter/webgl-canvas-context.js.map +1 -1
  255. package/dist/esm/adapter/webgl-device.js +19 -89
  256. package/dist/esm/adapter/webgl-device.js.map +1 -1
  257. package/dist/esm/bundle.js +0 -1
  258. package/dist/esm/bundle.js.map +1 -1
  259. package/dist/esm/classic/accessor.js +10 -34
  260. package/dist/esm/classic/accessor.js.map +1 -1
  261. package/dist/esm/classic/buffer.js +15 -71
  262. package/dist/esm/classic/buffer.js.map +1 -1
  263. package/dist/esm/classic/typed-array-utils.js +0 -20
  264. package/dist/esm/classic/typed-array-utils.js.map +1 -1
  265. package/dist/esm/context/context/create-browser-context.js +6 -14
  266. package/dist/esm/context/context/create-browser-context.js.map +1 -1
  267. package/dist/esm/context/context/create-headless-context.js +2 -6
  268. package/dist/esm/context/context/create-headless-context.js.map +1 -1
  269. package/dist/esm/context/context/webgl-checks.js +0 -3
  270. package/dist/esm/context/context/webgl-checks.js.map +1 -1
  271. package/dist/esm/context/debug/spector.js +2 -14
  272. package/dist/esm/context/debug/spector.js.map +1 -1
  273. package/dist/esm/context/debug/webgl-developer-tools.js +4 -22
  274. package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -1
  275. package/dist/esm/context/parameters/unified-parameter-api.js +2 -13
  276. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
  277. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -19
  278. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
  279. package/dist/esm/context/polyfill/context-data.js +0 -2
  280. package/dist/esm/context/polyfill/context-data.js.map +1 -1
  281. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -5
  282. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
  283. package/dist/esm/context/polyfill/polyfill-context.js +14 -21
  284. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
  285. package/dist/esm/context/polyfill/polyfill-table.js +0 -23
  286. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
  287. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -70
  288. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  289. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -4
  290. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
  291. package/dist/esm/context/state-tracker/track-context-state.js +11 -45
  292. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
  293. package/dist/esm/context/state-tracker/with-parameters.js +0 -6
  294. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
  295. package/dist/esm/index.js.map +1 -1
  296. package/dist/esm/init.js.map +1 -1
  297. package/dist/esm/types/webgl.js.map +1 -1
  298. package/dist/esm/types.js.map +1 -1
  299. package/dist/index.js +39 -25
  300. package/dist/init.js +1 -2
  301. package/dist/types/webgl.d.ts +20 -20
  302. package/dist/types/webgl.d.ts.map +1 -1
  303. package/dist/types/webgl.js +0 -1
  304. package/dist/types.d.ts +1 -1
  305. package/dist/types.d.ts.map +1 -1
  306. package/dist/types.js +0 -1
  307. package/package.json +8 -8
  308. package/src/adapter/helpers/get-shader-info.ts +37 -0
  309. package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
  310. package/src/adapter/resources/webgl-render-pass.ts +1 -1
  311. package/src/adapter/resources/webgl-shader.ts +2 -2
  312. package/src/adapter/webgl-device.ts +1 -1
  313. package/src/context/debug/webgl-developer-tools.ts +0 -1
  314. package/src/types/webgl.ts +4 -4
  315. package/dist/adapter/converters/device-parameters.js.map +0 -1
  316. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  317. package/dist/adapter/converters/sampler-parameters.js.map +0 -1
  318. package/dist/adapter/converters/texture-formats.js.map +0 -1
  319. package/dist/adapter/converters/vertex-formats.js.map +0 -1
  320. package/dist/adapter/device-helpers/device-features.js.map +0 -1
  321. package/dist/adapter/device-helpers/device-limits.js.map +0 -1
  322. package/dist/adapter/device-helpers/get-device-info.js.map +0 -1
  323. package/dist/adapter/device-helpers/is-old-ie.js.map +0 -1
  324. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  325. package/dist/adapter/helpers/get-shader-layout.js.map +0 -1
  326. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  327. package/dist/adapter/helpers/set-uniform.js.map +0 -1
  328. package/dist/adapter/helpers/uniforms.js.map +0 -1
  329. package/dist/adapter/objects/constants-to-keys.js.map +0 -1
  330. package/dist/adapter/objects/webgl-renderbuffer.js.map +0 -1
  331. package/dist/adapter/objects/webgl-resource.js.map +0 -1
  332. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  333. package/dist/adapter/resources/webgl-buffer.js.map +0 -1
  334. package/dist/adapter/resources/webgl-command-buffer.js.map +0 -1
  335. package/dist/adapter/resources/webgl-command-encoder.js.map +0 -1
  336. package/dist/adapter/resources/webgl-external-texture.js.map +0 -1
  337. package/dist/adapter/resources/webgl-framebuffer.js.map +0 -1
  338. package/dist/adapter/resources/webgl-render-pass.js.map +0 -1
  339. package/dist/adapter/resources/webgl-render-pipeline.js.map +0 -1
  340. package/dist/adapter/resources/webgl-sampler.js.map +0 -1
  341. package/dist/adapter/resources/webgl-shader.js.map +0 -1
  342. package/dist/adapter/resources/webgl-texture.js.map +0 -1
  343. package/dist/adapter/webgl-canvas-context.js.map +0 -1
  344. package/dist/adapter/webgl-device.js.map +0 -1
  345. package/dist/bundle.js.map +0 -1
  346. package/dist/classic/accessor.js.map +0 -1
  347. package/dist/classic/buffer.js.map +0 -1
  348. package/dist/classic/typed-array-utils.js.map +0 -1
  349. package/dist/context/context/create-browser-context.js.map +0 -1
  350. package/dist/context/context/create-headless-context.js.map +0 -1
  351. package/dist/context/context/webgl-checks.js.map +0 -1
  352. package/dist/context/debug/spector.js.map +0 -1
  353. package/dist/context/debug/webgl-developer-tools.js.map +0 -1
  354. package/dist/context/parameters/unified-parameter-api.js.map +0 -1
  355. package/dist/context/parameters/webgl-parameter-tables.js.map +0 -1
  356. package/dist/context/polyfill/context-data.js.map +0 -1
  357. package/dist/context/polyfill/get-parameter-polyfill.js.map +0 -1
  358. package/dist/context/polyfill/polyfill-context.js.map +0 -1
  359. package/dist/context/polyfill/polyfill-table.js.map +0 -1
  360. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  361. package/dist/context/state-tracker/deep-array-equal.js.map +0 -1
  362. package/dist/context/state-tracker/track-context-state.js.map +0 -1
  363. package/dist/context/state-tracker/with-parameters.js.map +0 -1
  364. package/dist/index.js.map +0 -1
  365. package/dist/init.js.map +0 -1
  366. package/dist/types/webgl.js.map +0 -1
  367. package/dist/types.js.map +0 -1
@@ -1,90 +1,50 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
12
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
13
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
14
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
17
  var _api = require("@luma.gl/api");
29
-
30
18
  var _env = require("@probe.gl/env");
31
-
32
19
  var _polyfillContext = require("../context/polyfill/polyfill-context");
33
-
34
20
  var _trackContextState = require("../context/state-tracker/track-context-state");
35
-
36
21
  var _createBrowserContext = require("../context/context/create-browser-context");
37
-
38
22
  var _createHeadlessContext = require("../context/context/create-headless-context");
39
-
40
23
  var _getDeviceInfo = require("./device-helpers/get-device-info");
41
-
42
24
  var _deviceFeatures = require("./device-helpers/device-features");
43
-
44
25
  var _deviceLimits = require("./device-helpers/device-limits");
45
-
46
26
  var _webglCanvasContext = _interopRequireDefault(require("./webgl-canvas-context"));
47
-
48
27
  var _spector = require("../context/debug/spector");
49
-
50
28
  var _webglDeveloperTools = require("../context/debug/webgl-developer-tools");
51
-
52
29
  var _textureFormats = require("./converters/texture-formats");
53
-
54
30
  var _buffer = _interopRequireDefault(require("../classic/buffer"));
55
-
56
31
  var _webglShader = _interopRequireDefault(require("./resources/webgl-shader"));
57
-
58
32
  var _webglSampler = _interopRequireDefault(require("./resources/webgl-sampler"));
59
-
60
33
  var _webglTexture = _interopRequireDefault(require("./resources/webgl-texture"));
61
-
62
34
  var _webglFramebuffer = _interopRequireDefault(require("./resources/webgl-framebuffer"));
63
-
64
35
  var _webglRenderPass = _interopRequireDefault(require("./resources/webgl-render-pass"));
65
-
66
36
  var _webglRenderPipeline = _interopRequireDefault(require("./resources/webgl-render-pipeline"));
67
-
68
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
69
-
70
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
71
-
37
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
38
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
72
39
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
73
-
74
40
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
75
-
76
41
  var LOG_LEVEL = 1;
77
-
78
42
  var WebGLDevice = function (_Device) {
79
43
  (0, _inherits2.default)(WebGLDevice, _Device);
80
-
81
44
  var _super = _createSuper(WebGLDevice);
82
-
83
45
  function WebGLDevice(props) {
84
46
  var _props$gl;
85
-
86
47
  var _this;
87
-
88
48
  (0, _classCallCheck2.default)(this, WebGLDevice);
89
49
  _this = _super.call(this, _objectSpread(_objectSpread({}, props), {}, {
90
50
  id: props.id || (0, _api.uid)('webgl-device')
@@ -112,25 +72,20 @@ var WebGLDevice = function (_Device) {
112
72
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "spector", void 0);
113
73
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_webglLimits", void 0);
114
74
  var device = (_props$gl = props.gl) === null || _props$gl === void 0 ? void 0 : _props$gl.device;
115
-
116
75
  if (device) {
117
76
  throw new Error("WebGL context already attached to device ".concat(device.id));
118
77
  }
119
-
120
78
  _this.canvasContext = new _webglCanvasContext.default((0, _assertThisInitialized2.default)(_this), props);
121
79
  _this.lost = new Promise(function (resolve) {
122
80
  _this._resolveContextLost = resolve;
123
81
  });
124
-
125
82
  var onContextLost = function onContextLost(event) {
126
83
  var _this$_resolveContext, _this2;
127
-
128
84
  return (_this$_resolveContext = (_this2 = _this)._resolveContextLost) === null || _this$_resolveContext === void 0 ? void 0 : _this$_resolveContext.call(_this2, {
129
85
  reason: 'destroyed',
130
86
  message: 'Computer entered sleep mode, or too many apps or browser tabs are using the GPU.'
131
87
  });
132
88
  };
133
-
134
89
  var gl = props.gl || null;
135
90
  gl = gl || ((0, _env.isBrowser)() ? (0, _createBrowserContext.createBrowserContext)(_this.canvasContext.canvas, _objectSpread(_objectSpread({}, props), {}, {
136
91
  onContextLost: onContextLost
@@ -138,11 +93,9 @@ var WebGLDevice = function (_Device) {
138
93
  gl = gl || (!(0, _env.isBrowser)() ? (0, _createHeadlessContext.createHeadlessContext)(_objectSpread(_objectSpread({}, props), {}, {
139
94
  onContextLost: onContextLost
140
95
  })) : null);
141
-
142
96
  if (!gl) {
143
97
  throw new Error('WebGL context creation failed');
144
98
  }
145
-
146
99
  _this.handle = gl;
147
100
  _this.gl = _this.handle;
148
101
  _this.gl2 = _this.gl;
@@ -153,9 +106,9 @@ var WebGLDevice = function (_Device) {
153
106
  _this.gl._version = _this.isWebGL2 ? 2 : 1;
154
107
  (0, _polyfillContext.polyfillContext)(_this.gl);
155
108
  var _props$enable = props.enable,
156
- enable = _props$enable === void 0 ? true : _props$enable,
157
- _props$copyState = props.copyState,
158
- copyState = _props$copyState === void 0 ? false : _props$copyState;
109
+ enable = _props$enable === void 0 ? true : _props$enable,
110
+ _props$copyState = props.copyState,
111
+ copyState = _props$copyState === void 0 ? false : _props$copyState;
159
112
  (0, _trackContextState.trackContextState)(_this.gl, {
160
113
  enable: enable,
161
114
  copyState: copyState,
@@ -163,11 +116,9 @@ var WebGLDevice = function (_Device) {
163
116
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
164
117
  args[_key] = arguments[_key];
165
118
  }
166
-
167
119
  return _api.log.log.apply(_api.log, [1].concat(args))();
168
120
  }
169
121
  });
170
-
171
122
  if ((0, _env.isBrowser)() && props.debug) {
172
123
  _this.gl = (0, _webglDeveloperTools.makeDebugContext)(_this.gl, _objectSpread(_objectSpread({}, props), {}, {
173
124
  webgl2: _this.isWebGL2,
@@ -176,26 +127,19 @@ var WebGLDevice = function (_Device) {
176
127
  _this.gl2 = _this.gl;
177
128
  _this.debug = true;
178
129
  _api.log.level = Math.max(_api.log.level, 1);
179
-
180
130
  _api.log.warn('WebGL debug mode activated. Performance reduced.')();
181
131
  }
182
-
183
132
  if ((0, _env.isBrowser)() && props.spector) {
184
133
  var canvas = _this.handle.canvas || props.canvas;
185
134
  _this.spector = (0, _spector.initializeSpectorJS)(_objectSpread(_objectSpread({}, _this.props), {}, {
186
135
  canvas: canvas
187
136
  }));
188
137
  }
189
-
190
138
  var message = "Created ".concat(_this.info.type).concat(_this.debug ? ' debug' : '', " context: ").concat(_this.info.vendor, ", ").concat(_this.info.renderer, " for canvas: ").concat(_this.canvasContext.id);
191
-
192
139
  _api.log.probe(LOG_LEVEL, message)();
193
-
194
140
  _api.log.groupEnd(LOG_LEVEL)();
195
-
196
141
  return _this;
197
142
  }
198
-
199
143
  (0, _createClass2.default)(WebGLDevice, [{
200
144
  key: "features",
201
145
  get: function get() {
@@ -212,7 +156,6 @@ var WebGLDevice = function (_Device) {
212
156
  key: "destroy",
213
157
  value: function destroy() {
214
158
  var ext = this.gl.getExtension('STACKGL_destroy_context');
215
-
216
159
  if (ext) {
217
160
  ext.destroy();
218
161
  }
@@ -248,7 +191,6 @@ var WebGLDevice = function (_Device) {
248
191
  if (!this.gl2) {
249
192
  throw new Error('Requires WebGL2');
250
193
  }
251
-
252
194
  return this.gl2;
253
195
  }
254
196
  }, {
@@ -318,8 +260,7 @@ var WebGLDevice = function (_Device) {
318
260
  key: "submit",
319
261
  value: function submit() {
320
262
  var _this$renderPass;
321
-
322
- (_this$renderPass = this.renderPass) === null || _this$renderPass === void 0 ? void 0 : _this$renderPass.endPass();
263
+ (_this$renderPass = this.renderPass) === null || _this$renderPass === void 0 ? void 0 : _this$renderPass.end();
323
264
  this.renderPass = null;
324
265
  }
325
266
  }, {
@@ -332,13 +273,10 @@ var WebGLDevice = function (_Device) {
332
273
  key: "loseDevice",
333
274
  value: function loseDevice() {
334
275
  var _this$_resolveContext2;
335
-
336
276
  var ext = this.gl.getExtension('WEBGL_lose_context');
337
-
338
277
  if (ext) {
339
278
  ext.loseContext();
340
279
  }
341
-
342
280
  (_this$_resolveContext2 = this._resolveContextLost) === null || _this$_resolveContext2 === void 0 ? void 0 : _this$_resolveContext2.call(this, {
343
281
  reason: 'destroyed',
344
282
  message: 'Application triggered context loss'
@@ -365,15 +303,12 @@ var WebGLDevice = function (_Device) {
365
303
  if (gl instanceof WebGLDevice) {
366
304
  return gl;
367
305
  }
368
-
369
306
  if ((gl === null || gl === void 0 ? void 0 : gl.device) instanceof _api.Device) {
370
307
  return gl.device;
371
308
  }
372
-
373
309
  if (!isWebGL(gl)) {
374
310
  throw new Error('Invalid WebGLRenderingContext');
375
311
  }
376
-
377
312
  return new WebGLDevice({
378
313
  gl: gl
379
314
  });
@@ -383,92 +318,70 @@ var WebGLDevice = function (_Device) {
383
318
  value: function () {
384
319
  var _create = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
385
320
  var props,
386
- _args = arguments;
321
+ _args = arguments;
387
322
  return _regenerator.default.wrap(function _callee$(_context) {
388
- while (1) {
389
- switch (_context.prev = _context.next) {
390
- case 0:
391
- props = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
392
-
393
- _api.log.groupCollapsed(LOG_LEVEL, 'WebGLDevice created');
394
-
395
- if (!(typeof props.canvas === 'string')) {
396
- _context.next = 5;
397
- break;
398
- }
399
-
323
+ while (1) switch (_context.prev = _context.next) {
324
+ case 0:
325
+ props = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
326
+ _api.log.groupCollapsed(LOG_LEVEL, 'WebGLDevice created');
327
+ if (!(typeof props.canvas === 'string')) {
400
328
  _context.next = 5;
401
- return _api.CanvasContext.pageLoaded;
402
-
403
- case 5:
404
- if (!props.debug) {
405
- _context.next = 8;
406
- break;
407
- }
408
-
329
+ break;
330
+ }
331
+ _context.next = 5;
332
+ return _api.CanvasContext.pageLoaded;
333
+ case 5:
334
+ if (!props.debug) {
409
335
  _context.next = 8;
410
- return (0, _webglDeveloperTools.loadWebGLDeveloperTools)();
411
-
412
- case 8:
413
- if (!props.spector) {
414
- _context.next = 11;
415
- break;
416
- }
417
-
336
+ break;
337
+ }
338
+ _context.next = 8;
339
+ return (0, _webglDeveloperTools.loadWebGLDeveloperTools)();
340
+ case 8:
341
+ if (!props.spector) {
418
342
  _context.next = 11;
419
- return (0, _spector.loadSpectorJS)();
420
-
421
- case 11:
422
- _api.log.probe(LOG_LEVEL + 1, 'DOM is loaded')();
423
-
424
- if (!(props.gl && props.gl.device)) {
425
- _context.next = 14;
426
- break;
427
- }
428
-
429
- return _context.abrupt("return", WebGLDevice.attach(props.gl));
430
-
431
- case 14:
432
- return _context.abrupt("return", new WebGLDevice(props));
433
-
434
- case 15:
435
- case "end":
436
- return _context.stop();
437
- }
343
+ break;
344
+ }
345
+ _context.next = 11;
346
+ return (0, _spector.loadSpectorJS)();
347
+ case 11:
348
+ _api.log.probe(LOG_LEVEL + 1, 'DOM is loaded')();
349
+ if (!(props.gl && props.gl.device)) {
350
+ _context.next = 14;
351
+ break;
352
+ }
353
+ return _context.abrupt("return", WebGLDevice.attach(props.gl));
354
+ case 14:
355
+ return _context.abrupt("return", new WebGLDevice(props));
356
+ case 15:
357
+ case "end":
358
+ return _context.stop();
438
359
  }
439
360
  }, _callee);
440
361
  }));
441
-
442
362
  function create() {
443
363
  return _create.apply(this, arguments);
444
364
  }
445
-
446
365
  return create;
447
366
  }()
448
367
  }]);
449
368
  return WebGLDevice;
450
369
  }(_api.Device);
451
-
452
370
  exports.default = WebGLDevice;
453
371
  (0, _defineProperty2.default)(WebGLDevice, "type", 'webgl');
454
-
455
372
  function isWebGL(gl) {
456
373
  if (typeof WebGLRenderingContext !== 'undefined' && gl instanceof WebGLRenderingContext) {
457
374
  return true;
458
375
  }
459
-
460
376
  if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {
461
377
  return true;
462
378
  }
463
-
464
379
  return Boolean(gl && Number.isFinite(gl._version));
465
380
  }
466
-
467
381
  function isWebGL2(gl) {
468
382
  if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {
469
383
  return true;
470
384
  }
471
-
472
385
  return Boolean(gl && gl._version === 2);
473
386
  }
474
387
  //# sourceMappingURL=webgl-device.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/adapter/webgl-device.ts"],"names":["LOG_LEVEL","WebGLDevice","props","id","clientWidth","clientHeight","devicePixelRatio","device","gl","Error","canvasContext","WebGLCanvasContext","lost","Promise","resolve","_resolveContextLost","onContextLost","event","reason","message","canvas","handle","gl2","isWebGL2","isWebGL1","info","_version","enable","copyState","log","args","debug","webgl2","throwOnError","level","Math","max","warn","spector","type","vendor","renderer","probe","groupEnd","_features","_limits","ext","getExtension","destroy","isContextLost","drawingBufferWidth","drawingBufferHeight","format","ClassicBuffer","WEBGLTexture","WEBGLSampler","WEBGLShader","WEBGLFramebuffer","WEBGLRenderPipeline","WEBGLRenderPass","renderPass","beginRenderPass","framebuffer","getCurrentFramebuffer","endPass","_webglLimits","loseContext","WebGLRenderingContext","Device","isWebGL","groupCollapsed","CanvasContext","pageLoaded","attach","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, uid} from '@luma.gl/api';\nimport {isBrowser} from '@probe.gl/env';\nimport {polyfillContext} from '../context/polyfill/polyfill-context';\nimport {popContextState, pushContextState, trackContextState} from '../context/state-tracker/track-context-state';\nimport {createBrowserContext} from '../context/context/create-browser-context';\nimport {\n createHeadlessContext,\n isHeadlessGLRegistered\n} from '../context/context/create-headless-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\n/** WebGPU style Device API for a WebGL context */\nexport default class WebGLDevice extends Device {\n //\n // Public `Device` API\n //\n\n static type: string = 'webgl';\n\n static isSupported(): boolean {\n return typeof WebGLRenderingContext !== 'undefined' || isHeadlessGLRegistered();\n }\n\n readonly info: DeviceInfo;\n readonly canvasContext: WebGLCanvasContext;\n\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 readonly lost: Promise<{reason: 'destroyed'; message: string}>;\n\n private _resolveContextLost?: (value: {reason: 'destroyed'; message: string}) => void;\n private _features?: Set<DeviceFeature>;\n private _limits?: DeviceLimits;\n\n //\n // Static methods, expected to be present by `luma.createDevice()`\n //\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 + 1, 'DOM is loaded')();\n\n // @ts-expect-error\n if (props.gl && props.gl.device) {\n return WebGLDevice.attach(props.gl);\n }\n\n return new WebGLDevice(props);\n }\n\n //\n // Public API\n //\n\n constructor(props: DeviceProps) {\n super({...props, id: props.id || uid('webgl-device')});\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 throw new Error(`WebGL context already attached to device ${device.id}`);\n }\n\n // Create and instrument context\n this.canvasContext = new WebGLCanvasContext(this, props);\n\n this.lost = new Promise<{reason: 'destroyed'; message: string}>((resolve) => {\n this._resolveContextLost = resolve;\n });\n\n const onContextLost = (event: Event) =>\n this._resolveContextLost?.({\n reason: 'destroyed',\n message: 'Computer entered sleep mode, or too many apps or browser tabs are using the GPU.'\n });\n\n let gl: WebGLRenderingContext | WebGL2RenderingContext | null = props.gl || null;\n gl =\n gl ||\n (isBrowser() ? createBrowserContext(this.canvasContext.canvas, {...props, onContextLost}) : null);\n gl = gl || (!isBrowser() ? createHeadlessContext({...props, onContextLost}) : null);\n\n if (!gl) {\n throw new Error('WebGL context creation failed');\n }\n\n this.handle = gl;\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\n // Install context state tracking\n // @ts-expect-error - hidden parameters\n const {enable = true, copyState = false} = props;\n trackContextState(this.gl, {\n enable,\n copyState,\n log: (...args: any[]) => log.log(1, ...args)()\n });\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(): void {\n const ext = this.gl.getExtension('STACKGL_destroy_context');\n if (ext) {\n ext.destroy();\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 if (!this.gl2) {\n throw new Error('Requires WebGL2');\n }\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 | null = null;\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 // WebGL-only API (not part of `Device` API)\n //\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 | null = null;\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 /** State used by luma.gl classes: TODO - move to canvasContext*/\n readonly _canvasSizeInfo = {clientWidth: 0, clientHeight: 0, devicePixelRatio: 1};\n\n /** State used by luma.gl classes - TODO - not used? */\n readonly _extensions: Record<string, any> = {};\n _polyfilled: boolean = false;\n\n /** Instance of Spector.js (if initialized) */\n spector;\n\n private _webglLimits?: WebGLLimits;\n\n /** Return WebGL specific limits */\n get webglLimits() : WebGLLimits {\n this._webglLimits = this._webglLimits || getWebGLLimits(this.gl);\n return this._webglLimits;\n }\n\n /**\n * Loses the context\n * @note Triggers context loss, mainly for testing\n * @todo Promote to `Device` API?\n */\n loseDevice(): void {\n const ext = this.gl.getExtension('WEBGL_lose_context');\n if (ext) {\n ext.loseContext();\n }\n // loseContext should trigger context loss callback but \n this._resolveContextLost?.({\n reason: 'destroyed',\n message: 'Application triggered context loss'\n });\n }\n\n /** Save current WebGL context state onto an internal stack */\n pushState(): void {\n pushContextState(this.gl);\n }\n\n /** Restores previously saved context state */\n popState(): void {\n popContextState(this.gl);\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/** 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
+ {"version":3,"file":"webgl-device.js","names":["_api","require","_env","_polyfillContext","_trackContextState","_createBrowserContext","_createHeadlessContext","_getDeviceInfo","_deviceFeatures","_deviceLimits","_webglCanvasContext","_interopRequireDefault","_spector","_webglDeveloperTools","_textureFormats","_buffer","_webglShader","_webglSampler","_webglTexture","_webglFramebuffer","_webglRenderPass","_webglRenderPipeline","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","LOG_LEVEL","WebGLDevice","_Device","_inherits2","_super","props","_props$gl","_this","_classCallCheck2","id","uid","_assertThisInitialized2","clientWidth","clientHeight","devicePixelRatio","device","gl","Error","concat","canvasContext","WebGLCanvasContext","lost","Promise","resolve","_resolveContextLost","onContextLost","event","_this$_resolveContext","_this2","reason","message","isBrowser","createBrowserContext","canvas","createHeadlessContext","handle","gl2","isWebGL2","isWebGL1","info","getDeviceInfo","_version","polyfillContext","_props$enable","enable","_props$copyState","copyState","trackContextState","log","_len","args","Array","_key","debug","makeDebugContext","webgl2","throwOnError","level","Math","max","warn","spector","initializeSpectorJS","type","vendor","renderer","probe","groupEnd","_createClass2","get","_features","getDeviceFeatures","_limits","getDeviceLimits","value","destroy","ext","getExtension","isContextLost","getSize","drawingBufferWidth","drawingBufferHeight","isTextureFormatSupported","format","isTextureFormatFilterable","isTextureFormatRenderable","assertWebGL2","createCanvasContext","_createBuffer","ClassicBuffer","_createTexture","WEBGLTexture","createExternalTexture","createSampler","WEBGLSampler","createShader","WEBGLShader","createFramebuffer","WEBGLFramebuffer","createRenderPipeline","WEBGLRenderPipeline","beginRenderPass","WEBGLRenderPass","createComputePipeline","beginComputePass","getDefaultRenderPass","renderPass","framebuffer","getCurrentFramebuffer","submit","_this$renderPass","end","_webglLimits","getWebGLLimits","loseDevice","_this$_resolveContext2","loseContext","pushState","pushContextState","popState","popContextState","isSupported","WebGLRenderingContext","isHeadlessGLRegistered","attach","Device","isWebGL","_create","_asyncToGenerator2","_regenerator","mark","_callee","_args","wrap","_callee$","_context","prev","next","undefined","groupCollapsed","CanvasContext","pageLoaded","loadWebGLDeveloperTools","loadSpectorJS","abrupt","stop","create","exports","WebGL2RenderingContext","Number","isFinite"],"sources":["../../../src/adapter/webgl-device.ts"],"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, uid} from '@luma.gl/api';\nimport {isBrowser} from '@probe.gl/env';\nimport {polyfillContext} from '../context/polyfill/polyfill-context';\nimport {popContextState, pushContextState, trackContextState} from '../context/state-tracker/track-context-state';\nimport {createBrowserContext} from '../context/context/create-browser-context';\nimport {\n createHeadlessContext,\n isHeadlessGLRegistered\n} from '../context/context/create-headless-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\n/** WebGPU style Device API for a WebGL context */\nexport default class WebGLDevice extends Device {\n //\n // Public `Device` API\n //\n\n static type: string = 'webgl';\n\n static isSupported(): boolean {\n return typeof WebGLRenderingContext !== 'undefined' || isHeadlessGLRegistered();\n }\n\n readonly info: DeviceInfo;\n readonly canvasContext: WebGLCanvasContext;\n\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 readonly lost: Promise<{reason: 'destroyed'; message: string}>;\n\n private _resolveContextLost?: (value: {reason: 'destroyed'; message: string}) => void;\n private _features?: Set<DeviceFeature>;\n private _limits?: DeviceLimits;\n\n //\n // Static methods, expected to be present by `luma.createDevice()`\n //\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 + 1, 'DOM is loaded')();\n\n // @ts-expect-error\n if (props.gl && props.gl.device) {\n return WebGLDevice.attach(props.gl);\n }\n\n return new WebGLDevice(props);\n }\n\n //\n // Public API\n //\n\n constructor(props: DeviceProps) {\n super({...props, id: props.id || uid('webgl-device')});\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 throw new Error(`WebGL context already attached to device ${device.id}`);\n }\n\n // Create and instrument context\n this.canvasContext = new WebGLCanvasContext(this, props);\n\n this.lost = new Promise<{reason: 'destroyed'; message: string}>((resolve) => {\n this._resolveContextLost = resolve;\n });\n\n const onContextLost = (event: Event) =>\n this._resolveContextLost?.({\n reason: 'destroyed',\n message: 'Computer entered sleep mode, or too many apps or browser tabs are using the GPU.'\n });\n\n let gl: WebGLRenderingContext | WebGL2RenderingContext | null = props.gl || null;\n gl =\n gl ||\n (isBrowser() ? createBrowserContext(this.canvasContext.canvas, {...props, onContextLost}) : null);\n gl = gl || (!isBrowser() ? createHeadlessContext({...props, onContextLost}) : null);\n\n if (!gl) {\n throw new Error('WebGL context creation failed');\n }\n\n this.handle = gl;\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\n // Install context state tracking\n // @ts-expect-error - hidden parameters\n const {enable = true, copyState = false} = props;\n trackContextState(this.gl, {\n enable,\n copyState,\n log: (...args: any[]) => log.log(1, ...args)()\n });\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(): void {\n const ext = this.gl.getExtension('STACKGL_destroy_context');\n if (ext) {\n ext.destroy();\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 if (!this.gl2) {\n throw new Error('Requires WebGL2');\n }\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 | null = null;\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?.end();\n this.renderPass = null;\n // this.canvasContext.commit();\n }\n\n //\n // WebGL-only API (not part of `Device` API)\n //\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 | null = null;\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 /** State used by luma.gl classes: TODO - move to canvasContext*/\n readonly _canvasSizeInfo = {clientWidth: 0, clientHeight: 0, devicePixelRatio: 1};\n\n /** State used by luma.gl classes - TODO - not used? */\n readonly _extensions: Record<string, any> = {};\n _polyfilled: boolean = false;\n\n /** Instance of Spector.js (if initialized) */\n spector;\n\n private _webglLimits?: WebGLLimits;\n\n /** Return WebGL specific limits */\n get webglLimits() : WebGLLimits {\n this._webglLimits = this._webglLimits || getWebGLLimits(this.gl);\n return this._webglLimits;\n }\n\n /**\n * Loses the context\n * @note Triggers context loss, mainly for testing\n * @todo Promote to `Device` API?\n */\n loseDevice(): void {\n const ext = this.gl.getExtension('WEBGL_lose_context');\n if (ext) {\n ext.loseContext();\n }\n // loseContext should trigger context loss callback but \n this._resolveContextLost?.({\n reason: 'destroyed',\n message: 'Application triggered context loss'\n });\n }\n\n /** Save current WebGL context state onto an internal stack */\n pushState(): void {\n pushContextState(this.gl);\n }\n\n /** Restores previously saved context state */\n popState(): void {\n popContextState(this.gl);\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/** 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"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var moduleExports = require('./index');
4
-
5
4
  globalThis.luma = globalThis.luma || {};
6
5
  module.exports = Object.assign(globalThis.luma, moduleExports);
7
6
  //# sourceMappingURL=bundle.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","luma","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.luma = globalThis.luma || {};\nmodule.exports = Object.assign(globalThis.luma, moduleExports);\n"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,IAAI,GAAGD,UAAU,CAACC,IAAI,IAAI,CAAC,CAAC;AACvCC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,IAAI,EAAEH,aAAa,CAAC"}
@@ -1,26 +1,17 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.DEFAULT_ACCESSOR_VALUES = exports.default = void 0;
9
-
7
+ exports.default = exports.DEFAULT_ACCESSOR_VALUES = void 0;
10
8
  var _construct2 = _interopRequireDefault(require("@babel/runtime/helpers/construct"));
11
-
12
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
12
  var _api = require("@luma.gl/api");
19
-
20
13
  var _constants = _interopRequireDefault(require("@luma.gl/constants"));
21
-
22
14
  var _typedArrayUtils = require("./typed-array-utils");
23
-
24
15
  var DEFAULT_ACCESSOR_VALUES = {
25
16
  offset: 0,
26
17
  stride: 0,
@@ -37,11 +28,9 @@ var PROP_CHECKS = {
37
28
  isInstanced: 'divisor'
38
29
  }
39
30
  };
40
-
41
31
  var Accessor = function () {
42
32
  function Accessor() {
43
33
  var _this = this;
44
-
45
34
  (0, _classCallCheck2.default)(this, Accessor);
46
35
  (0, _defineProperty2.default)(this, "offset", void 0);
47
36
  (0, _defineProperty2.default)(this, "stride", void 0);
@@ -52,17 +41,14 @@ var Accessor = function () {
52
41
  (0, _defineProperty2.default)(this, "integer", void 0);
53
42
  (0, _defineProperty2.default)(this, "buffer", void 0);
54
43
  (0, _defineProperty2.default)(this, "index", void 0);
55
-
56
44
  for (var _len = arguments.length, accessors = new Array(_len), _key = 0; _key < _len; _key++) {
57
45
  accessors[_key] = arguments[_key];
58
46
  }
59
-
60
47
  accessors.forEach(function (accessor) {
61
48
  return _this._assign(accessor);
62
49
  });
63
50
  Object.freeze(this);
64
51
  }
65
-
66
52
  (0, _createClass2.default)(Accessor, [{
67
53
  key: "toString",
68
54
  value: function toString() {
@@ -83,47 +69,36 @@ var Accessor = function () {
83
69
  value: function _assign() {
84
70
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
85
71
  props = (0, _api.checkProps)('Accessor', props, PROP_CHECKS);
86
-
87
72
  if (props.type !== undefined) {
88
73
  this.type = props.type;
89
-
90
74
  if (props.type === _constants.default.INT || props.type === _constants.default.UNSIGNED_INT) {
91
75
  this.integer = true;
92
76
  }
93
77
  }
94
-
95
78
  if (props.size !== undefined) {
96
79
  this.size = props.size;
97
80
  }
98
-
99
81
  if (props.offset !== undefined) {
100
82
  this.offset = props.offset;
101
83
  }
102
-
103
84
  if (props.stride !== undefined) {
104
85
  this.stride = props.stride;
105
86
  }
106
-
107
87
  if (props.normalize !== undefined) {
108
88
  this.normalized = props.normalize;
109
89
  }
110
-
111
90
  if (props.normalized !== undefined) {
112
91
  this.normalized = props.normalized;
113
92
  }
114
-
115
93
  if (props.integer !== undefined) {
116
94
  this.integer = props.integer;
117
95
  }
118
-
119
96
  if (props.divisor !== undefined) {
120
97
  this.divisor = props.divisor;
121
98
  }
122
-
123
99
  if (props.buffer !== undefined) {
124
100
  this.buffer = props.buffer;
125
101
  }
126
-
127
102
  if (props.index !== undefined) {
128
103
  if (typeof props.index === 'boolean') {
129
104
  this.index = props.index ? 1 : 0;
@@ -131,15 +106,12 @@ var Accessor = function () {
131
106
  this.index = props.index;
132
107
  }
133
108
  }
134
-
135
109
  if (props.instanced !== undefined) {
136
110
  this.divisor = props.instanced ? 1 : 0;
137
111
  }
138
-
139
112
  if (props.isInstanced !== undefined) {
140
113
  this.divisor = props.isInstanced ? 1 : 0;
141
114
  }
142
-
143
115
  if (this.offset === undefined) delete this.offset;
144
116
  if (this.stride === undefined) delete this.stride;
145
117
  if (this.type === undefined) delete this.type;
@@ -170,12 +142,10 @@ var Accessor = function () {
170
142
  for (var _len2 = arguments.length, accessors = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
171
143
  accessors[_key2] = arguments[_key2];
172
144
  }
173
-
174
145
  return (0, _construct2.default)(Accessor, [DEFAULT_ACCESSOR_VALUES].concat(accessors));
175
146
  }
176
147
  }]);
177
148
  return Accessor;
178
149
  }();
179
-
180
150
  exports.default = Accessor;
181
151
  //# sourceMappingURL=accessor.js.map