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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +117 -200
  3. package/dist/adapter/converters/device-parameters.js.map +1 -0
  4. package/dist/adapter/converters/renderbuffer-formats.d.ts +1 -1
  5. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
  6. package/dist/adapter/converters/renderbuffer-formats.js +172 -62
  7. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
  8. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  9. package/dist/adapter/converters/sampler-parameters.js +151 -149
  10. package/dist/adapter/converters/sampler-parameters.js.map +1 -0
  11. package/dist/adapter/converters/texture-formats.d.ts +2 -2
  12. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  13. package/dist/adapter/converters/texture-formats.js +847 -438
  14. package/dist/adapter/converters/texture-formats.js.map +1 -0
  15. package/dist/adapter/converters/vertex-formats.js +24 -15
  16. package/dist/adapter/converters/vertex-formats.js.map +1 -0
  17. package/dist/adapter/device-helpers/device-features.js +84 -120
  18. package/dist/adapter/device-helpers/device-features.js.map +1 -0
  19. package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
  20. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  21. package/dist/adapter/device-helpers/device-limits.js +83 -88
  22. package/dist/adapter/device-helpers/device-limits.js.map +1 -0
  23. package/dist/adapter/device-helpers/get-device-info.js +37 -42
  24. package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
  25. package/dist/adapter/device-helpers/is-old-ie.js +8 -10
  26. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
  27. package/dist/adapter/helpers/attribute-utils.js +57 -50
  28. package/dist/adapter/helpers/attribute-utils.js.map +1 -0
  29. package/dist/adapter/helpers/get-shader-info.d.ts +1 -1
  30. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -1
  31. package/dist/adapter/helpers/get-shader-info.js +19 -21
  32. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  33. package/dist/adapter/helpers/get-shader-layout.js +251 -310
  34. package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
  35. package/dist/adapter/helpers/parse-shader-compiler-log.js +26 -32
  36. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  37. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  38. package/dist/adapter/helpers/set-uniform.js +80 -67
  39. package/dist/adapter/helpers/set-uniform.js.map +1 -0
  40. package/dist/adapter/helpers/uniforms.js +75 -80
  41. package/dist/adapter/helpers/uniforms.js.map +1 -0
  42. package/dist/adapter/objects/constants-to-keys.js +26 -33
  43. package/dist/adapter/objects/constants-to-keys.js.map +1 -0
  44. package/dist/adapter/objects/webgl-renderbuffer.d.ts +1 -1
  45. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  46. package/dist/adapter/objects/webgl-renderbuffer.js +70 -67
  47. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
  48. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  49. package/dist/adapter/objects/webgl-resource.js +158 -213
  50. package/dist/adapter/objects/webgl-resource.js.map +1 -0
  51. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
  52. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  53. package/dist/adapter/objects/webgl-vertex-array-object.js +66 -74
  54. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  55. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  56. package/dist/adapter/resources/webgl-buffer.js +118 -150
  57. package/dist/adapter/resources/webgl-buffer.js.map +1 -0
  58. package/dist/adapter/resources/webgl-command-buffer.d.ts +5 -5
  59. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  60. package/dist/adapter/resources/webgl-command-buffer.js +41 -40
  61. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
  62. package/dist/adapter/resources/webgl-command-encoder.js +37 -26
  63. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
  64. package/dist/adapter/resources/webgl-external-texture.js +1 -91
  65. package/dist/adapter/resources/webgl-external-texture.js.map +1 -0
  66. package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
  67. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  68. package/dist/adapter/resources/webgl-framebuffer.js +198 -231
  69. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
  70. package/dist/adapter/resources/webgl-render-pass.js +11 -8
  71. package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
  72. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  73. package/dist/adapter/resources/webgl-render-pipeline.js +289 -316
  74. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
  75. package/dist/adapter/resources/webgl-sampler.js +35 -42
  76. package/dist/adapter/resources/webgl-sampler.js.map +1 -0
  77. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  78. package/dist/adapter/resources/webgl-shader.js +53 -57
  79. package/dist/adapter/resources/webgl-shader.js.map +1 -0
  80. package/dist/adapter/resources/webgl-texture.d.ts +4 -4
  81. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  82. package/dist/adapter/resources/webgl-texture.js +697 -661
  83. package/dist/adapter/resources/webgl-texture.js.map +1 -0
  84. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  85. package/dist/adapter/webgl-canvas-context.js +35 -55
  86. package/dist/adapter/webgl-canvas-context.js.map +1 -0
  87. package/dist/adapter/webgl-device.d.ts +5 -0
  88. package/dist/adapter/webgl-device.d.ts.map +1 -1
  89. package/dist/adapter/webgl-device.js +270 -287
  90. package/dist/adapter/webgl-device.js.map +1 -0
  91. package/dist/classic/accessor.js +103 -120
  92. package/dist/classic/accessor.js.map +1 -0
  93. package/dist/classic/buffer.d.ts +1 -1
  94. package/dist/classic/buffer.d.ts.map +1 -1
  95. package/dist/classic/buffer.js +300 -325
  96. package/dist/classic/buffer.js.map +1 -0
  97. package/dist/classic/typed-array-utils.d.ts +1 -1
  98. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  99. package/dist/classic/typed-array-utils.js +81 -91
  100. package/dist/classic/typed-array-utils.js.map +1 -0
  101. package/dist/context/context/create-browser-context.d.ts +3 -1
  102. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  103. package/dist/context/context/create-browser-context.js +49 -66
  104. package/dist/context/context/create-browser-context.js.map +1 -0
  105. package/dist/context/context/create-headless-context.d.ts +1 -1
  106. package/dist/context/context/create-headless-context.d.ts.map +1 -1
  107. package/dist/context/context/create-headless-context.js +30 -24
  108. package/dist/context/context/create-headless-context.js.map +1 -0
  109. package/dist/context/context/webgl-checks.js +17 -25
  110. package/dist/context/context/webgl-checks.js.map +1 -0
  111. package/dist/context/debug/spector.d.ts +3 -1
  112. package/dist/context/debug/spector.d.ts.map +1 -1
  113. package/dist/context/debug/spector.js +50 -53
  114. package/dist/context/debug/spector.js.map +1 -0
  115. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  116. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  117. package/dist/context/debug/webgl-developer-tools.js +76 -107
  118. package/dist/context/debug/webgl-developer-tools.js.map +1 -0
  119. package/dist/context/parameters/unified-parameter-api.js +46 -93
  120. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  121. package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
  122. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  123. package/dist/context/parameters/webgl-parameter-tables.js +404 -462
  124. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  125. package/dist/context/polyfill/context-data.js +10 -16
  126. package/dist/context/polyfill/context-data.js.map +1 -0
  127. package/dist/context/polyfill/get-parameter-polyfill.js +71 -91
  128. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  129. package/dist/context/polyfill/polyfill-context.js +73 -75
  130. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  131. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  132. package/dist/context/polyfill/polyfill-table.js +116 -133
  133. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  134. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  135. package/dist/context/polyfill/polyfill-vertex-array-object.js +227 -255
  136. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  137. package/dist/context/state-tracker/deep-array-equal.js +14 -16
  138. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  139. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  140. package/dist/context/state-tracker/track-context-state.js +127 -183
  141. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  142. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  143. package/dist/context/state-tracker/with-parameters.js +29 -43
  144. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  145. package/dist/dist.dev.js +9205 -0
  146. package/dist/index.cjs +5948 -0
  147. package/dist/index.d.ts +0 -2
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +25 -41
  150. package/dist/index.js.map +1 -0
  151. package/dist/types/webgl.d.ts +16 -16
  152. package/dist/types/webgl.d.ts.map +1 -1
  153. package/dist/types/webgl.js +1 -0
  154. package/dist/types/webgl.js.map +1 -0
  155. package/dist/types.d.ts +1 -1
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/types.js +1 -0
  158. package/dist/types.js.map +1 -0
  159. package/dist.min.js +36 -0
  160. package/package.json +18 -9
  161. package/src/adapter/converters/device-parameters.ts +5 -2
  162. package/src/adapter/converters/sampler-parameters.ts +4 -2
  163. package/src/adapter/converters/texture-formats.ts +3 -1
  164. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  165. package/src/adapter/helpers/get-shader-info.ts +1 -1
  166. package/src/adapter/helpers/get-shader-layout.ts +4 -4
  167. package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
  168. package/src/adapter/helpers/set-uniform.ts +2 -0
  169. package/src/adapter/objects/webgl-renderbuffer.ts +1 -1
  170. package/src/adapter/objects/webgl-resource.ts +1 -1
  171. package/src/adapter/objects/webgl-vertex-array-object.ts +1 -1
  172. package/src/adapter/resources/webgl-buffer.ts +6 -6
  173. package/src/adapter/resources/webgl-command-encoder.ts +1 -1
  174. package/src/adapter/resources/webgl-framebuffer.ts +3 -4
  175. package/src/adapter/resources/webgl-render-pipeline.ts +19 -20
  176. package/src/adapter/resources/webgl-shader.ts +1 -1
  177. package/src/adapter/resources/webgl-texture.ts +8 -9
  178. package/src/adapter/webgl-canvas-context.ts +2 -2
  179. package/src/adapter/webgl-device.ts +12 -2
  180. package/src/classic/accessor.ts +1 -1
  181. package/src/classic/buffer.ts +3 -3
  182. package/src/classic/typed-array-utils.ts +1 -1
  183. package/src/context/context/create-browser-context.ts +4 -2
  184. package/src/context/context/create-headless-context.ts +2 -2
  185. package/src/context/debug/spector.ts +5 -4
  186. package/src/context/debug/webgl-developer-tools.ts +1 -0
  187. package/src/context/polyfill/polyfill-table.ts +1 -0
  188. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  189. package/src/context/state-tracker/track-context-state.ts +6 -5
  190. package/src/context/state-tracker/with-parameters.ts +1 -1
  191. package/src/index.ts +1 -5
  192. package/src/types/webgl.ts +2 -0
  193. package/dist/bundle.d.ts +0 -2
  194. package/dist/bundle.d.ts.map +0 -1
  195. package/dist/bundle.js +0 -4
  196. package/dist/dist.min.js +0 -1
  197. package/dist/es5/adapter/converters/device-parameters.js +0 -139
  198. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  199. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -151
  200. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  201. package/dist/es5/adapter/converters/sampler-parameters.js +0 -182
  202. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  203. package/dist/es5/adapter/converters/texture-formats.js +0 -950
  204. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  205. package/dist/es5/adapter/converters/vertex-formats.js +0 -36
  206. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  207. package/dist/es5/adapter/device-helpers/device-features.js +0 -121
  208. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  209. package/dist/es5/adapter/device-helpers/device-limits.js +0 -54
  210. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  211. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -49
  212. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  213. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -15
  214. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  215. package/dist/es5/adapter/helpers/attribute-utils.js +0 -69
  216. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  217. package/dist/es5/adapter/helpers/get-shader-info.js +0 -31
  218. package/dist/es5/adapter/helpers/get-shader-info.js.map +0 -1
  219. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -311
  220. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  221. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -54
  222. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  223. package/dist/es5/adapter/helpers/set-uniform.js +0 -92
  224. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  225. package/dist/es5/adapter/helpers/uniforms.js +0 -88
  226. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  227. package/dist/es5/adapter/objects/constants-to-keys.js +0 -43
  228. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  229. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -122
  230. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  231. package/dist/es5/adapter/objects/webgl-resource.js +0 -233
  232. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  233. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -109
  234. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  235. package/dist/es5/adapter/resources/webgl-buffer.js +0 -196
  236. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  237. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -70
  238. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  239. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -80
  240. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  241. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  242. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  243. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -275
  244. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  245. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -45
  246. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  247. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -385
  248. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  249. package/dist/es5/adapter/resources/webgl-sampler.js +0 -75
  250. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  251. package/dist/es5/adapter/resources/webgl-shader.js +0 -111
  252. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  253. package/dist/es5/adapter/resources/webgl-texture.js +0 -826
  254. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  255. package/dist/es5/adapter/webgl-canvas-context.js +0 -72
  256. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  257. package/dist/es5/adapter/webgl-device.js +0 -387
  258. package/dist/es5/adapter/webgl-device.js.map +0 -1
  259. package/dist/es5/bundle.js +0 -6
  260. package/dist/es5/bundle.js.map +0 -1
  261. package/dist/es5/classic/accessor.js +0 -151
  262. package/dist/es5/classic/accessor.js.map +0 -1
  263. package/dist/es5/classic/buffer.js +0 -398
  264. package/dist/es5/classic/buffer.js.map +0 -1
  265. package/dist/es5/classic/typed-array-utils.js +0 -99
  266. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  267. package/dist/es5/context/context/create-browser-context.js +0 -66
  268. package/dist/es5/context/context/create-browser-context.js.map +0 -1
  269. package/dist/es5/context/context/create-headless-context.js +0 -47
  270. package/dist/es5/context/context/create-headless-context.js.map +0 -1
  271. package/dist/es5/context/context/webgl-checks.js +0 -44
  272. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  273. package/dist/es5/context/debug/spector.js +0 -99
  274. package/dist/es5/context/debug/spector.js.map +0 -1
  275. package/dist/es5/context/debug/webgl-developer-tools.js +0 -146
  276. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  277. package/dist/es5/context/parameters/unified-parameter-api.js +0 -76
  278. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  279. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -346
  280. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  281. package/dist/es5/context/polyfill/context-data.js +0 -18
  282. package/dist/es5/context/polyfill/context-data.js.map +0 -1
  283. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -69
  284. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  285. package/dist/es5/context/polyfill/polyfill-context.js +0 -109
  286. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  287. package/dist/es5/context/polyfill/polyfill-table.js +0 -143
  288. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  289. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -271
  290. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  291. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -23
  292. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  293. package/dist/es5/context/state-tracker/track-context-state.js +0 -167
  294. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  295. package/dist/es5/context/state-tracker/with-parameters.js +0 -40
  296. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  297. package/dist/es5/index.js +0 -249
  298. package/dist/es5/index.js.map +0 -1
  299. package/dist/es5/init.js +0 -7
  300. package/dist/es5/init.js.map +0 -1
  301. package/dist/es5/types/webgl.js +0 -5
  302. package/dist/es5/types/webgl.js.map +0 -1
  303. package/dist/es5/types.js +0 -2
  304. package/dist/es5/types.js.map +0 -1
  305. package/dist/esm/adapter/converters/device-parameters.js +0 -137
  306. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  307. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -181
  308. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  309. package/dist/esm/adapter/converters/sampler-parameters.js +0 -172
  310. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  311. package/dist/esm/adapter/converters/texture-formats.js +0 -901
  312. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  313. package/dist/esm/adapter/converters/vertex-formats.js +0 -29
  314. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  315. package/dist/esm/adapter/device-helpers/device-features.js +0 -95
  316. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  317. package/dist/esm/adapter/device-helpers/device-limits.js +0 -88
  318. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  319. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -42
  320. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  321. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -9
  322. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  323. package/dist/esm/adapter/helpers/attribute-utils.js +0 -64
  324. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  325. package/dist/esm/adapter/helpers/get-shader-info.js +0 -25
  326. package/dist/esm/adapter/helpers/get-shader-info.js.map +0 -1
  327. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -282
  328. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  329. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -30
  330. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  331. package/dist/esm/adapter/helpers/set-uniform.js +0 -85
  332. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  333. package/dist/esm/adapter/helpers/uniforms.js +0 -89
  334. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  335. package/dist/esm/adapter/objects/constants-to-keys.js +0 -35
  336. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  337. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -78
  338. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  339. package/dist/esm/adapter/objects/webgl-resource.js +0 -163
  340. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  341. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -74
  342. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  343. package/dist/esm/adapter/resources/webgl-buffer.js +0 -134
  344. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  345. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -50
  346. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  347. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -41
  348. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  349. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  350. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  351. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -207
  352. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  353. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -14
  354. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  355. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -311
  356. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  357. package/dist/esm/adapter/resources/webgl-sampler.js +0 -42
  358. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  359. package/dist/esm/adapter/resources/webgl-shader.js +0 -62
  360. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  361. package/dist/esm/adapter/resources/webgl-texture.js +0 -714
  362. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  363. package/dist/esm/adapter/webgl-canvas-context.js +0 -41
  364. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  365. package/dist/esm/adapter/webgl-device.js +0 -276
  366. package/dist/esm/adapter/webgl-device.js.map +0 -1
  367. package/dist/esm/bundle.js +0 -4
  368. package/dist/esm/bundle.js.map +0 -1
  369. package/dist/esm/classic/accessor.js +0 -120
  370. package/dist/esm/classic/accessor.js.map +0 -1
  371. package/dist/esm/classic/buffer.js +0 -327
  372. package/dist/esm/classic/buffer.js.map +0 -1
  373. package/dist/esm/classic/typed-array-utils.js +0 -92
  374. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  375. package/dist/esm/context/context/create-browser-context.js +0 -53
  376. package/dist/esm/context/context/create-browser-context.js.map +0 -1
  377. package/dist/esm/context/context/create-headless-context.js +0 -39
  378. package/dist/esm/context/context/create-headless-context.js.map +0 -1
  379. package/dist/esm/context/context/webgl-checks.js +0 -31
  380. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  381. package/dist/esm/context/debug/spector.js +0 -64
  382. package/dist/esm/context/debug/spector.js.map +0 -1
  383. package/dist/esm/context/debug/webgl-developer-tools.js +0 -97
  384. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  385. package/dist/esm/context/parameters/unified-parameter-api.js +0 -55
  386. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  387. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -427
  388. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  389. package/dist/esm/context/polyfill/context-data.js +0 -12
  390. package/dist/esm/context/polyfill/context-data.js.map +0 -1
  391. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -86
  392. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  393. package/dist/esm/context/polyfill/polyfill-context.js +0 -84
  394. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  395. package/dist/esm/context/polyfill/polyfill-table.js +0 -138
  396. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  397. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -265
  398. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  399. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -17
  400. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  401. package/dist/esm/context/state-tracker/track-context-state.js +0 -148
  402. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  403. package/dist/esm/context/state-tracker/with-parameters.js +0 -34
  404. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  405. package/dist/esm/index.js +0 -27
  406. package/dist/esm/index.js.map +0 -1
  407. package/dist/esm/init.js +0 -4
  408. package/dist/esm/init.js.map +0 -1
  409. package/dist/esm/types/webgl.js +0 -2
  410. package/dist/esm/types/webgl.js.map +0 -1
  411. package/dist/esm/types.js +0 -2
  412. package/dist/esm/types.js.map +0 -1
  413. package/dist/init.d.ts +0 -2
  414. package/dist/init.d.ts.map +0 -1
  415. package/dist/init.js +0 -3
  416. package/src/bundle.ts +0 -4
  417. package/src/init.ts +0 -4
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@luma.gl/webgl",
3
- "version": "9.0.0-alpha.16",
3
+ "version": "9.0.0-alpha.19",
4
4
  "description": "WebGL2 adapter for the luma.gl API",
5
+ "type": "module",
5
6
  "license": "MIT",
6
7
  "publishConfig": {
7
8
  "access": "public"
@@ -17,11 +18,19 @@
17
18
  "3d"
18
19
  ],
19
20
  "types": "dist/index.d.ts",
20
- "main": "dist/es5/index.js",
21
- "module": "dist/esm/index.js",
21
+ "main": "dist/index.cjs",
22
+ "module": "dist/index.js",
23
+ "exports": {
24
+ ".": {
25
+ "import": "./dist/index.js",
26
+ "require": "./dist/index.cjs",
27
+ "types": "./dist/index.d.ts"
28
+ }
29
+ },
22
30
  "files": [
23
31
  "src",
24
32
  "dist",
33
+ "dist.min.js",
25
34
  "README.md"
26
35
  ],
27
36
  "sideEffects": false,
@@ -30,14 +39,14 @@
30
39
  "gl/wrap": false
31
40
  },
32
41
  "scripts": {
33
- "pre-build": "npm run build-bundle",
34
- "build-bundle": "webpack --display=minimal --config ../../scripts/bundle.config.js"
42
+ "build-bundle": "ocular-bundle ./src/index.ts",
43
+ "pre-build": "npm run build-bundle && npm run build-bundle -- --env=dev"
35
44
  },
36
45
  "dependencies": {
37
46
  "@babel/runtime": "^7.0.0",
38
- "@luma.gl/api": "9.0.0-alpha.16",
39
- "@luma.gl/constants": "9.0.0-alpha.16",
40
- "@probe.gl/env": "^4.0.0"
47
+ "@luma.gl/api": "9.0.0-alpha.19",
48
+ "@luma.gl/constants": "9.0.0-alpha.19",
49
+ "@probe.gl/env": "^4.0.2"
41
50
  },
42
- "gitHead": "697bc4ef1deff8438e2f3be51bf0bd245882106a"
51
+ "gitHead": "d57e5fd81825ae4c7c23040ba63f54ad4ea7e972"
43
52
  }
@@ -5,6 +5,8 @@ import {pushContextState, popContextState} from '../../context/state-tracker/tra
5
5
  import {setParameters} from '../../context/parameters/unified-parameter-api';
6
6
  import WebGLDevice from '../webgl-device';
7
7
 
8
+ /* eslint-disable no-unused-expressions */ // For expression ? gl.enable() : gl.disable()
9
+
8
10
  /**
9
11
  * Execute a function with a set of temporary WebGL parameter overrides
10
12
  * - Saves current "global" WebGL context settings
@@ -14,7 +16,7 @@ import WebGLDevice from '../webgl-device';
14
16
  * - Returns the return value of the supplied function
15
17
  * @deprecated use withDeviceParameters instead
16
18
  */
17
- export function withGLParameters<T = unknown>(device: Device, parameters: GLParameters, func: (device?: Device) => T): T {
19
+ export function withGLParameters<T = unknown>(device: Device, parameters: GLParameters, func: (device?: Device) => T): T {
18
20
  if (isObjectEmpty(parameters)) {
19
21
  // Avoid setting state if no parameters provided. Just call and return
20
22
  return func(device);
@@ -102,7 +104,8 @@ export function setDeviceParameters(device: Device, parameters: Parameters) {
102
104
  gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));
103
105
  }
104
106
 
105
- if (parameters.depthCompare) {
107
+ if (parameters.depthCompare) {
108
+
106
109
  parameters.depthCompare !== 'always' ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST);
107
110
  gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));
108
111
  }
@@ -4,6 +4,8 @@ import GL from '@luma.gl/constants';
4
4
  import {GLSamplerParameters} from '../../types/webgl';
5
5
  import {convertCompareFunction, convertToCompareFunction} from './device-parameters';
6
6
 
7
+ /* eslint-disable consistent-return */
8
+
7
9
  /**
8
10
  * Convert WebGPU-style sampler props to WebGL
9
11
  * @param props
@@ -38,7 +40,7 @@ export function convertSamplerParametersToWebGL(props: SamplerParameters): GLSam
38
40
  params[GL.TEXTURE_COMPARE_MODE] = GL.COMPARE_REF_TO_TEXTURE;
39
41
  }
40
42
  if (props.compare) {
41
- params[GL.TEXTURE_COMPARE_FUNC] = convertCompareFunction('compare', props.compare);
43
+ params[GL.TEXTURE_COMPARE_FUNC] = convertCompareFunction('compare', props.compare);
42
44
  }
43
45
  // Note depends on WebGL extension
44
46
  if (props.maxAnisotropy) {
@@ -84,7 +86,7 @@ function convertMinFilterMode(minFilter: 'nearest' | 'linear', mipmapFilter?: 'n
84
86
  * @param props
85
87
  * @returns
86
88
  */
87
- export function convertToSamplerParameters(params: GLSamplerParameters): SamplerParameters {
89
+ export function convertToSamplerParameters(params: GLSamplerParameters): SamplerParameters {
88
90
  const props: SamplerParameters = {};
89
91
  if (params[GL.TEXTURE_WRAP_S]) {
90
92
  props.addressModeU = convertToAddressMode(params[GL.TEXTURE_WRAP_S]);
@@ -3,6 +3,8 @@ import {decodeTextureFormat} from '@luma.gl/api';
3
3
  import GL from '@luma.gl/constants';
4
4
  import {isWebGL2} from '../../context/context/webgl-checks';
5
5
 
6
+ /* eslint-disable camelcase */
7
+
6
8
  // TEXTURE FEATURES
7
9
 
8
10
  // Define local device feature strings to optimize minification
@@ -240,7 +242,7 @@ export const TEXTURE_FORMATS: Record<TextureFormat, Format> = {
240
242
  // "depth24unorm-stencil8" feature
241
243
  'depth24unorm-stencil8': {gl: GL.DEPTH24_STENCIL8, b: 4, c: 2, p: 1, attachment: GL.DEPTH_STENCIL_ATTACHMENT},
242
244
  // "depth32float-stencil8" feature
243
- "depth32float-stencil8": {gl: GL.DEPTH32F_STENCIL8, b: 5, c: 2, p: 1, attachment: GL.DEPTH_STENCIL_ATTACHMENT},
245
+ 'depth32float-stencil8': {gl: GL.DEPTH32F_STENCIL8, b: 5, c: 2, p: 1, attachment: GL.DEPTH_STENCIL_ATTACHMENT},
244
246
 
245
247
  // BC compressed formats: check device.features.has("texture-compression-bc");
246
248
 
@@ -28,24 +28,24 @@ export function getDeviceInfo(gl: WebGLRenderingContext): DeviceInfo {
28
28
  }
29
29
 
30
30
  function identifyGPUVendor(vendor: string, renderer: string): 'nvidia' | 'intel' | 'apple' | 'amd' | 'software' | 'unknown' {
31
- if (vendor.match(/NVIDIA/i) || renderer.match(/NVIDIA/i)) {
31
+ if ((/NVIDIA/i.exec(vendor)) || (/NVIDIA/i.exec(renderer))) {
32
32
  return 'nvidia';
33
33
  }
34
- if (vendor.match(/INTEL/i) || renderer.match(/INTEL/i)) {
34
+ if ((/INTEL/i.exec(vendor)) || (/INTEL/i.exec(renderer))) {
35
35
  return 'intel';
36
36
  }
37
- if (vendor.match(/Apple/i) || renderer.match(/Apple/i)) {
37
+ if ((/Apple/i.exec(vendor)) || (/Apple/i.exec(renderer))) {
38
38
  return 'apple';
39
39
  }
40
40
  if (
41
- vendor.match(/AMD/i) ||
42
- renderer.match(/AMD/i) ||
43
- vendor.match(/ATI/i) ||
44
- renderer.match(/ATI/i)
41
+ (/AMD/i.exec(vendor)) ||
42
+ (/AMD/i.exec(renderer)) ||
43
+ (/ATI/i.exec(vendor)) ||
44
+ (/ATI/i.exec(renderer))
45
45
  ) {
46
46
  return 'amd';
47
47
  }
48
- if (vendor.match(/SwiftShader/i) || renderer.match(/SwiftShader/i)) {
48
+ if ((/SwiftShader/i.exec(vendor)) || (/SwiftShader/i.exec(renderer))) {
49
49
  return 'software';
50
50
  }
51
51
 
@@ -19,7 +19,7 @@ export function getShaderInfo(source: string, defaultName?: string): ShaderInfo
19
19
  /** Extracts GLSLIFY style naming of shaders: `#define SHADER_NAME ...` */
20
20
  function getShaderName(shader: string, defaultName: string = 'unnamed'): string {
21
21
  const SHADER_NAME_REGEXP = /#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/;
22
- const match = shader.match(SHADER_NAME_REGEXP);
22
+ const match = SHADER_NAME_REGEXP.exec(shader);
23
23
  return match ? match[1] : defaultName;
24
24
  }
25
25
 
@@ -137,7 +137,7 @@ function readAttributeBindings(
137
137
  // Add only user provided attributes, for built-in attributes like
138
138
  // `gl_InstanceID` locaiton will be < 0
139
139
  if (location >= 0) {
140
- const {glType, components} = decodeAttributeType(compositeType);;
140
+ const {glType, components} = decodeAttributeType(compositeType);
141
141
  const accessor: AccessorObject = {type: glType, size: size * components};
142
142
  // Any attribute name containing the word "instance" will be assumed to be instanced
143
143
  if (/instance/i.test(name)) {
@@ -172,7 +172,7 @@ function readVaryings(gl: WebGLRenderingContext, program: WebGLProgram): Varying
172
172
  throw new Error('activeInfo');
173
173
  }
174
174
  const {name, type: compositeType, size} = activeInfo;
175
- const {glType, components} = decodeUniformType(compositeType);;
175
+ const {glType, components} = decodeUniformType(compositeType);
176
176
  const accessor = new Accessor({type: glType, size: size * components});
177
177
  const varying = {location, name, accessor}; // Base values
178
178
  varyings.push(varying);
@@ -333,7 +333,7 @@ type SamplerInfo = | {
333
333
  };
334
334
 
335
335
  function getSamplerInfo(type: GL): SamplerInfo {
336
- let sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];
336
+ const sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];
337
337
  if (!sampler) {
338
338
  throw new Error('sampler');
339
339
  }
@@ -355,7 +355,7 @@ function parseUniformName(name: string): {name: string; length: number; isArray:
355
355
 
356
356
  // if array name then clean the array brackets
357
357
  const UNIFORM_NAME_REGEXP = /([^[]*)(\[[0-9]+\])?/;
358
- const matches = name.match(UNIFORM_NAME_REGEXP);
358
+ const matches = UNIFORM_NAME_REGEXP.exec(name);
359
359
  if (!matches || matches.length < 2) {
360
360
  throw new Error(`Failed to parse GLSL uniform name ${name}`);
361
361
  }
@@ -16,7 +16,7 @@ export function parseShaderCompilerLog(errLog: string) : readonly CompilerMessag
16
16
 
17
17
  for (const line of lines) {
18
18
  if (line.length <= 1) {
19
- continue;
19
+ continue; // eslint-disable-line no-continue
20
20
  }
21
21
 
22
22
  const segments: string[] = line.split(':');
@@ -1,3 +1,5 @@
1
+ /* eslint-disable */
2
+
1
3
  // Uniforms
2
4
  import GL from '@luma.gl/constants';
3
5
 
@@ -35,7 +35,7 @@ const DEFAULT_RENDERBUFFER_PROPS: Required<RenderbufferProps> = {
35
35
  * Renderbuffer objects also natively accommodate Multisampling (MSAA).
36
36
  */
37
37
  export default class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps> {
38
- override get [Symbol.toStringTag](): string { return 'Renderbuffer'; }
38
+ override get [Symbol.toStringTag](): string { return 'Renderbuffer'; }
39
39
 
40
40
  get width(): number { return this.props.width; }
41
41
  get height(): number { return this.props.height; }
@@ -13,7 +13,7 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
13
13
  /**
14
14
  * Base class for WebGL object wrappers
15
15
  */
16
- export default abstract class WebGLResource<Props extends ResourceProps> extends Resource<Props> {
16
+ export default abstract class WebGLResource<Props extends ResourceProps> extends Resource<Props> {
17
17
  readonly device: WebGLDevice;
18
18
  readonly gl: WebGLRenderingContext;
19
19
  readonly gl2: WebGL2RenderingContext;
@@ -17,7 +17,7 @@ export type VertexArrayObjectProps = ResourceProps & {
17
17
 
18
18
  /** VertexArrayObject wrapper */
19
19
  export default class WEBGLVertexArrayObject extends WebGLResource<VertexArrayObjectProps> {
20
- override get [Symbol.toStringTag](): string {
20
+ override get [Symbol.toStringTag](): string {
21
21
  return 'BaseVertexArrayObject';
22
22
  }
23
23
 
@@ -21,6 +21,7 @@ export default class WEBGLBuffer extends Buffer {
21
21
 
22
22
  // accessor: {};
23
23
 
24
+
24
25
  constructor(device: WebGLDevice, props: BufferProps = {}) {
25
26
  super(device, props);
26
27
 
@@ -28,10 +29,9 @@ export default class WEBGLBuffer extends Buffer {
28
29
  this.gl = this.device.gl;
29
30
  this.gl2 = this.device.gl2;
30
31
 
31
- const handle = typeof props === 'object' ? (props as BufferProps).handle : undefined;
32
+ const handle = typeof props === 'object' ? (props ).handle : undefined;
32
33
  this.handle = handle || this.gl.createBuffer();
33
- // @ts-expect-error Add metadata for spector
34
- this.handle.__SPECTOR_Metadata = {...this.props, data: typeof this.props.data}; // {name: this.props.id};
34
+ device.setSpectorMetadata(this.handle, {...this.props, data: typeof this.props.data});
35
35
 
36
36
  // In WebGL1, need to make sure we use GL.ELEMENT_ARRAY_BUFFER when initializing element buffers
37
37
  // otherwise buffer type will lock to generic (non-element) buffer
@@ -55,7 +55,7 @@ export default class WEBGLBuffer extends Buffer {
55
55
  // Object.seal(this);
56
56
  }
57
57
 
58
- // PRIVATE METHODS
58
+ // PRIVATE METHODS
59
59
 
60
60
  // Allocate a new buffer and initialize to contents of typed array
61
61
  _initWithData(data, byteOffset: number = 0, byteLength: number = data.byteLength + byteOffset): this {
@@ -124,7 +124,7 @@ export default class WEBGLBuffer extends Buffer {
124
124
  this.device.assertWebGL2();
125
125
 
126
126
  // @ts-expect-error
127
- this.gl.bufferSubData(this.target, offset, data, srcOffset, byteLength);
127
+ this.gl.bufferSubData(this.target, byteOffset, data, srcOffset, byteLength);
128
128
  } else {
129
129
  this.gl.bufferSubData(target, byteOffset, data);
130
130
  }
@@ -168,7 +168,7 @@ export default class WEBGLBuffer extends Buffer {
168
168
 
169
169
  _getReadTarget() {
170
170
  return this.target;
171
- return this.device.isWebGL2 ? GL.COPY_READ_BUFFER : this.target;
171
+ // return this.device.isWebGL2 ? GL.COPY_READ_BUFFER : this.target;
172
172
  }
173
173
  }
174
174
 
@@ -55,4 +55,4 @@ export default class WEBGLCommandEncoder extends CommandEncoder {
55
55
  // destination: Buffer,
56
56
  // destinationOffset?: number;
57
57
  // }): void;
58
- };
58
+ }
@@ -29,8 +29,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
29
29
  this.handle = this.props.handle !== undefined ? this.props.handle : this.gl.createFramebuffer();
30
30
 
31
31
  if (this.handle) { // default framebuffer is null...
32
- // @ts-expect-error Per SPECTOR docs
33
- this.handle.__SPECTOR_Metadata = {id: this.props.id, props: this.props};
32
+ device.setSpectorMetadata(this.handle, {id: this.props.id, props: this.props});
34
33
  }
35
34
 
36
35
  this.colorAttachments = this._createColorAttachments();
@@ -131,7 +130,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
131
130
  // [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,
132
131
  // [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE
133
132
  // }
134
- }) as WebGLTexture;
133
+ }) ;
135
134
  this._ownResources.push(texture);
136
135
  return texture;
137
136
  }
@@ -220,7 +219,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
220
219
  * @param layer = 0 - index into WebGLTextureArray and Texture3D or face for `TextureCubeMap`
221
220
  * @param level = 0 - mipmapLevel (must be 0 in WebGL1)
222
221
  */
223
- protected _attachTexture(attachment: GL, texture: WebGLTexture, layer: number, level: number): void {
222
+ protected _attachTexture(attachment: GL, texture: WebGLTexture, layer: number, level: number): void {
224
223
  const {gl, gl2} = this.device;
225
224
  gl.bindTexture(texture.target, texture.handle);
226
225
 
@@ -49,8 +49,7 @@ export default class WEBGLRenderPipeline extends RenderPipeline {
49
49
  super(device, props);
50
50
  this.device = device;
51
51
  this.handle = this.props.handle || this.device.gl.createProgram();
52
- // @ts-expect-error
53
- this.handle.__SPECTOR_Metadata = {id: this.props.id};
52
+ this.device.setSpectorMetadata(this.handle, {id: this.props.id});
54
53
 
55
54
  // Create shaders if needed
56
55
  this.vs = cast<WEBGLShader>(props.vs);
@@ -94,7 +93,7 @@ export default class WEBGLRenderPipeline extends RenderPipeline {
94
93
  const attribute = getAttributeLayout(this.layout, name);
95
94
  if (!attribute) {
96
95
  log.warn(`Ignoring buffer supplied for unknown attribute "${name}" in pipeline "${this.id}" (buffer "${buffer.id}")`)();
97
- continue;
96
+ continue; // eslint-disable-line no-continue
98
97
  }
99
98
  const decoded = decodeVertexFormat(attribute.format);
100
99
  const {type: typeString, components: size, byteLength: stride, normalized, integer} = decoded;
@@ -122,7 +121,7 @@ export default class WEBGLRenderPipeline extends RenderPipeline {
122
121
  const binding = this.layout.bindings.find((binding) => binding.name === name);
123
122
  if (!binding) {
124
123
  log.warn(`Unknown binding ${name} in render pipeline ${this.id}`)();
125
- continue;
124
+ continue; // eslint-disable-line no-continue
126
125
  }
127
126
  if (!value) {
128
127
  log.warn(`Unsetting binding ${name} in render pipeline ${this.id}`)();
@@ -371,14 +370,14 @@ function getDrawMode(
371
370
  ): GL.POINTS | GL.LINES | GL.LINE_STRIP | GL.LINE_LOOP | GL.TRIANGLES | GL.TRIANGLE_STRIP | GL.TRIANGLE_FAN {
372
371
  // prettier-ignore
373
372
  switch (topology) {
374
- case 'point-list': return GL.POINTS;
375
- case 'line-list': return GL.LINES;
376
- case 'line-strip': return GL.LINE_STRIP;
377
- case 'line-loop': return GL.LINE_LOOP;
378
- case 'triangle-list': return GL.TRIANGLES;
379
- case 'triangle-strip': return GL.TRIANGLE_STRIP;
380
- case 'triangle-fan': return GL.TRIANGLE_FAN;
381
- default: throw new Error(topology);
373
+ case 'point-list': return GL.POINTS;
374
+ case 'line-list': return GL.LINES;
375
+ case 'line-strip': return GL.LINE_STRIP;
376
+ case 'line-loop': return GL.LINE_LOOP;
377
+ case 'triangle-list': return GL.TRIANGLES;
378
+ case 'triangle-strip': return GL.TRIANGLE_STRIP;
379
+ case 'triangle-fan': return GL.TRIANGLE_FAN;
380
+ default: throw new Error(topology);
382
381
  }
383
382
  }
384
383
 
@@ -386,14 +385,14 @@ function getDrawMode(
386
385
  function getGLPrimitive(topology: PrimitiveTopology): GL.POINTS | GL.LINES | GL.TRIANGLES {
387
386
  // prettier-ignore
388
387
  switch (topology) {
389
- case 'point-list': return GL.POINTS;
390
- case 'line-list': return GL.LINES;
391
- case 'line-strip': return GL.LINES;
392
- case 'line-loop': return GL.LINES;
393
- case 'triangle-list': return GL.TRIANGLES;
394
- case 'triangle-strip': return GL.TRIANGLES;
395
- case 'triangle-fan': return GL.TRIANGLES;
396
- default: throw new Error(topology);
388
+ case 'point-list': return GL.POINTS;
389
+ case 'line-list': return GL.LINES;
390
+ case 'line-strip': return GL.LINES;
391
+ case 'line-loop': return GL.LINES;
392
+ case 'triangle-list': return GL.TRIANGLES;
393
+ case 'triangle-strip': return GL.TRIANGLES;
394
+ case 'triangle-fan': return GL.TRIANGLES;
395
+ default: throw new Error(topology);
397
396
  }
398
397
  }
399
398
 
@@ -8,7 +8,7 @@ import WebGLDevice from '../webgl-device';
8
8
  /**
9
9
  * An immutable compiled shader program that execute portions of the GPU Pipeline
10
10
  */
11
- export default class WEBGLShader extends Shader {
11
+ export default class WEBGLShader extends Shader {
12
12
  readonly device: WebGLDevice;
13
13
  readonly handle: WebGLShader;
14
14
 
@@ -176,8 +176,7 @@ export default class WEBGLTexture extends Texture {
176
176
  this.gl = this.device.gl;
177
177
  this.gl2 = this.device.gl2;
178
178
  this.handle = this.props.handle || this.gl.createTexture();
179
- // @ts-expect-error Per SPECTOR docs
180
- this.handle.__SPECTOR_Metadata = {...this.props, data: typeof this.props.data}; // {name: this.props.id};
179
+ this.device.setSpectorMetadata(this.handle, {...this.props, data: typeof this.props.data}); // {name: this.props.id};
181
180
 
182
181
  this.target = getWebGLTextureTarget(this.props);
183
182
 
@@ -238,7 +237,7 @@ export default class WEBGLTexture extends Texture {
238
237
  return this;
239
238
  }
240
239
 
241
- let {parameters = {} as Record<GL, any>} = props;
240
+ const {parameters = {} as Record<GL, any>} = props;
242
241
 
243
242
  const {
244
243
  pixels = null, recreate = false, pixelStore = {}, textureUnit = undefined} = props;
@@ -490,7 +489,7 @@ export default class WEBGLTexture extends Texture {
490
489
  withParameters(this.gl, parameters, () => {
491
490
  switch (dataType) {
492
491
  case 'null':
493
- gl.texImage2D(target, level, format, width, height, 0 /*border*/, dataFormat, type, data);
492
+ gl.texImage2D(target, level, format, width, height, 0 /* border*/, dataFormat, type, data);
494
493
  break;
495
494
  case 'typed-array':
496
495
  // Looks like this assert is not necessary, as offset is ignored under WebGL1
@@ -519,7 +518,7 @@ export default class WEBGLTexture extends Texture {
519
518
  format,
520
519
  width,
521
520
  height,
522
- 0 /*border*/,
521
+ 0 /* border*/,
523
522
  dataFormat,
524
523
  type,
525
524
  offset
@@ -534,7 +533,7 @@ export default class WEBGLTexture extends Texture {
534
533
  format,
535
534
  width,
536
535
  height,
537
- 0 /*border*/,
536
+ 0 /* border*/,
538
537
  dataFormat,
539
538
  type,
540
539
  data
@@ -819,7 +818,7 @@ export default class WEBGLTexture extends Texture {
819
818
  resolvedFaces[index].forEach((image, lodLevel) => {
820
819
  // TODO: adjust width & height for LOD!
821
820
  if (width && height) {
822
- gl.texImage2D(face, lodLevel, format, width, height, 0 /*border*/, format, type, image);
821
+ gl.texImage2D(face, lodLevel, format, width, height, 0 /* border*/, format, type, image);
823
822
  } else {
824
823
  gl.texImage2D(face, lodLevel, format, format, type, image);
825
824
  }
@@ -858,7 +857,7 @@ export default class WEBGLTexture extends Texture {
858
857
  )
859
858
  );
860
859
  } else if (this.width || this.height) {
861
- gl.texImage2D(face, 0, format, width, height, 0 /*border*/, format, type, imageData);
860
+ gl.texImage2D(face, 0, format, width, height, 0 /* border*/, format, type, imageData);
862
861
  } else {
863
862
  gl.texImage2D(face, 0, format, format, type, imageData);
864
863
  }
@@ -956,7 +955,7 @@ export default class WEBGLTexture extends Texture {
956
955
  this.gl.bindTexture(this.target, this.handle);
957
956
  for (const [pname, pvalue] of Object.entries(parameters)) {
958
957
  const param = Number(pname);
959
- let value = pvalue;
958
+ const value = pvalue;
960
959
 
961
960
  // Apparently there are integer/float conversion issues requires two parameter setting functions in JavaScript.
962
961
  // For now, pick the float version for parameters specified as GLfloat.
@@ -49,7 +49,7 @@ export default class WebGLCanvasContext extends CanvasContext {
49
49
  * canvas CSS width * devicePixelRatio x canvas CSS height * devicePixelRatio
50
50
  * See http://webgl2fundamentals.org/webgl/lessons/webgl-resizing-the-canvas.html
51
51
  */
52
- resize(options?: {width?: number; height?: number; useDevicePixels?: boolean | number}): void {
52
+ resize(options?: {width?: number; height?: number; useDevicePixels?: boolean | number}): void {
53
53
  // Resize browser context .
54
54
  if (this.canvas) {
55
55
  this.setDevicePixelRatio(devicePixelRatio, options);
@@ -58,7 +58,7 @@ export default class WebGLCanvasContext extends CanvasContext {
58
58
 
59
59
  // Resize headless gl context
60
60
  const ext = this.device.gl.getExtension('STACKGL_resize_drawingbuffer');
61
- if (ext && options && `width` in options && `height` in options) {
61
+ if (ext && options && 'width' in options && 'height' in options) {
62
62
  ext.resize(options.width, options.height);
63
63
  }
64
64
  }
@@ -341,7 +341,7 @@ ${this.info.vendor}, ${this.info.renderer} for canvas: ${this.canvasContext.id}`
341
341
  // this.canvasContext.commit();
342
342
  }
343
343
 
344
- //
344
+ //
345
345
  // WebGL-only API (not part of `Device` API)
346
346
  //
347
347
 
@@ -379,7 +379,7 @@ ${this.info.vendor}, ${this.info.renderer} for canvas: ${this.canvasContext.id}`
379
379
  * @note Triggers context loss, mainly for testing
380
380
  * @todo Promote to `Device` API?
381
381
  */
382
- loseDevice(): void {
382
+ loseDevice(): void {
383
383
  const ext = this.gl.getExtension('WEBGL_lose_context');
384
384
  if (ext) {
385
385
  ext.loseContext();
@@ -400,6 +400,16 @@ ${this.info.vendor}, ${this.info.renderer} for canvas: ${this.canvasContext.id}`
400
400
  popState(): void {
401
401
  popContextState(this.gl);
402
402
  }
403
+
404
+ /**
405
+ * Storing data on a special field on WebGLObjects makes that data visible in SPECTOR chrome debug extension
406
+ * luma.gl ids and props can be inspected
407
+ */
408
+ setSpectorMetadata(handle: unknown, props: Record<string, unknown>) {
409
+ // @ts-expect-error
410
+ // eslint-disable-next-line camelcase
411
+ handle.__SPECTOR_Metadata = props;
412
+ }
403
413
  }
404
414
 
405
415
  /** Check if supplied parameter is a WebGLRenderingContext */
@@ -85,7 +85,7 @@ export default class Accessor implements AccessorObject {
85
85
 
86
86
  // Auto-deduce integer type?
87
87
  if (props.type === GL.INT || props.type === GL.UNSIGNED_INT) {
88
- this.integer = true;
88
+ this.integer = true;
89
89
  }
90
90
  }
91
91
  if (props.size !== undefined) {
@@ -50,11 +50,11 @@ function getWEBGLBufferProps(props: ClassicBufferProps | ArrayBufferView | numbe
50
50
 
51
51
  // Signature: `new Buffer(gl, 100)`
52
52
  else if (typeof props === 'number') {
53
- return {byteLength: props as number};
53
+ return {byteLength: props };
54
54
  }
55
55
 
56
56
  props = checkProps('Buffer', props, PROP_CHECKS_INITIALIZE);
57
- const bufferProps = {...props as ClassicBufferProps};
57
+ const bufferProps = {...props };
58
58
  if (bufferProps.offset) {
59
59
  bufferProps.byteOffset = bufferProps.offset;
60
60
  }
@@ -362,7 +362,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
362
362
  getDebugData(): {
363
363
  data: any;
364
364
  changed: boolean;
365
- } {
365
+ } {
366
366
  if (!this.debugData) {
367
367
  this.debugData = this.getData({length: Math.min(DEBUG_DATA_LENGTH, this.byteLength)});
368
368
  return {data: this.debugData, changed: true};
@@ -92,7 +92,7 @@ export function getTypedArrayFromGLType(
92
92
  * how-can-i-flip-the-result-of-webglrenderingcontext-readpixels
93
93
  * @param {*} param0
94
94
  */
95
- export function flipRows(options: {
95
+ export function flipRows(options: {
96
96
  data: any;
97
97
  width: any;
98
98
  height: any;
@@ -37,7 +37,9 @@ const DEFAULT_CONTEXT_PROPS: ContextProps = {
37
37
  webgl2: true, // Attempt to create a WebGL2 context
38
38
  webgl1: true, // Attempt to create a WebGL1 context (false to fail if webgl2 not available)
39
39
  powerPreference: 'high-performance', // After all, most apps are using WebGL for performance reasons
40
+ // eslint-disable-next-line no-console
40
41
  onContextLost: () => console.error('WebGL context lost'),
42
+ // eslint-disable-next-line no-console
41
43
  onContextRestored: () => console.info('WebGL context restored'),
42
44
  };
43
45
 
@@ -46,8 +48,8 @@ const DEFAULT_CONTEXT_PROPS: ContextProps = {
46
48
  * Note calling this multiple time on the same canvas does return the same context
47
49
  * @param canvas A canvas element or offscreen canvas
48
50
  */
49
- export function createBrowserContext(canvas: HTMLCanvasElement | OffscreenCanvas, props: ContextProps): WebGLRenderingContext {
50
- props = {...DEFAULT_CONTEXT_PROPS, ...props};
51
+ export function createBrowserContext(canvas: HTMLCanvasElement | OffscreenCanvas, props: ContextProps): WebGLRenderingContext {
52
+ props = {...DEFAULT_CONTEXT_PROPS, ...props};
51
53
 
52
54
  // Try to extract any extra information about why context creation failed
53
55
  let errorMessage = null;
@@ -1,10 +1,10 @@
1
1
  const ERR_HEADLESSGL_FAILED =
2
2
  'Failed to create WebGL context in Node.js, headless gl returned null';
3
3
 
4
- const ERR_HEADLESSGL_LOAD = `\
4
+ const ERR_HEADLESSGL_LOAD = '\
5
5
  luma.gl: loaded under Node.js without headless gl installed, meaning that WebGL \
6
6
  contexts can not be created. This may not be an error. For example, this is a \
7
- typical configuration for isorender applications running on the server.`;
7
+ typical configuration for isorender applications running on the server.';
8
8
 
9
9
  const CONTEXT_DEFAULTS = {
10
10
  width: 1,