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

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 (401) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +3 -23
  3. package/dist/adapter/converters/device-parameters.js.map +1 -1
  4. package/dist/adapter/converters/renderbuffer-formats.js +1 -5
  5. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  7. package/dist/adapter/converters/sampler-parameters.js +3 -58
  8. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  9. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  10. package/dist/adapter/converters/texture-formats.js +10 -54
  11. package/dist/adapter/converters/texture-formats.js.map +1 -1
  12. package/dist/adapter/converters/vertex-formats.js +0 -9
  13. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  14. package/dist/adapter/device-helpers/device-features.js +5 -22
  15. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  16. package/dist/adapter/device-helpers/device-limits.js +1 -4
  17. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  18. package/dist/adapter/device-helpers/get-device-info.js +6 -12
  19. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  20. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  21. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  22. package/dist/adapter/helpers/attribute-utils.js +0 -17
  23. package/dist/adapter/helpers/attribute-utils.js.map +1 -1
  24. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  25. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  26. package/dist/adapter/helpers/get-shader-info.js +25 -0
  27. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  28. package/dist/adapter/helpers/get-shader-layout.js +9 -57
  29. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  30. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  31. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  32. package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
  33. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  34. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  35. package/dist/adapter/helpers/set-uniform.js +0 -30
  36. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  37. package/dist/adapter/helpers/uniforms.js +0 -10
  38. package/dist/adapter/helpers/uniforms.js.map +1 -1
  39. package/dist/adapter/objects/constants-to-keys.js +0 -7
  40. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  41. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  42. package/dist/adapter/objects/webgl-renderbuffer.js +4 -20
  43. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  44. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  45. package/dist/adapter/objects/webgl-resource.js +13 -60
  46. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  47. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  48. package/dist/adapter/objects/webgl-vertex-array-object.js +6 -16
  49. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  50. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  51. package/dist/adapter/resources/webgl-buffer.js +13 -42
  52. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  53. package/dist/adapter/resources/webgl-command-buffer.js +2 -17
  54. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  55. package/dist/adapter/resources/webgl-command-encoder.js +1 -14
  56. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  57. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  58. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  59. package/dist/adapter/resources/webgl-framebuffer.js +5 -65
  60. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  61. package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
  62. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  63. package/dist/adapter/resources/webgl-render-pass.js +1 -8
  64. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  65. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  66. package/dist/adapter/resources/webgl-render-pipeline.js +9 -98
  67. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  68. package/dist/adapter/resources/webgl-sampler.js +1 -13
  69. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  70. package/dist/adapter/resources/webgl-shader.d.ts +1 -2
  71. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  72. package/dist/adapter/resources/webgl-shader.js +3 -17
  73. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  74. package/dist/adapter/resources/webgl-texture.d.ts +1 -1
  75. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  76. package/dist/adapter/resources/webgl-texture.js +44 -162
  77. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  78. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  79. package/dist/adapter/webgl-canvas-context.js +2 -16
  80. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  81. package/dist/adapter/webgl-device.d.ts +5 -0
  82. package/dist/adapter/webgl-device.d.ts.map +1 -1
  83. package/dist/adapter/webgl-device.js +40 -107
  84. package/dist/adapter/webgl-device.js.map +1 -1
  85. package/dist/classic/accessor.js +11 -35
  86. package/dist/classic/accessor.js.map +1 -1
  87. package/dist/classic/buffer.d.ts.map +1 -1
  88. package/dist/classic/buffer.js +20 -76
  89. package/dist/classic/buffer.js.map +1 -1
  90. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  91. package/dist/classic/typed-array-utils.js +0 -20
  92. package/dist/classic/typed-array-utils.js.map +1 -1
  93. package/dist/context/context/create-browser-context.d.ts +1 -0
  94. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  95. package/dist/context/context/create-browser-context.js +6 -14
  96. package/dist/context/context/create-browser-context.js.map +1 -1
  97. package/dist/context/context/create-headless-context.js +6 -7
  98. package/dist/context/context/create-headless-context.js.map +1 -1
  99. package/dist/context/context/webgl-checks.js +0 -3
  100. package/dist/context/context/webgl-checks.js.map +1 -1
  101. package/dist/context/debug/spector.d.ts +1 -0
  102. package/dist/context/debug/spector.d.ts.map +1 -1
  103. package/dist/context/debug/spector.js +6 -18
  104. package/dist/context/debug/spector.js.map +1 -1
  105. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  106. package/dist/context/debug/webgl-developer-tools.js +4 -22
  107. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  108. package/dist/context/parameters/unified-parameter-api.js +4 -15
  109. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  110. package/dist/context/parameters/webgl-parameter-tables.js +1 -20
  111. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  112. package/dist/context/polyfill/context-data.js +0 -2
  113. package/dist/context/polyfill/context-data.js.map +1 -1
  114. package/dist/context/polyfill/get-parameter-polyfill.js +1 -6
  115. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  116. package/dist/context/polyfill/polyfill-context.js +17 -24
  117. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  118. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  119. package/dist/context/polyfill/polyfill-table.js +3 -26
  120. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  121. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  122. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
  123. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  124. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  125. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  126. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  127. package/dist/context/state-tracker/track-context-state.js +14 -48
  128. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  129. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  130. package/dist/context/state-tracker/with-parameters.js +3 -9
  131. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  132. package/dist/dist.dev.js +9205 -0
  133. package/dist/index.cjs +5948 -0
  134. package/dist/index.d.ts +0 -2
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +24 -26
  137. package/dist/index.js.map +1 -1
  138. package/dist/types/webgl.d.ts +4 -4
  139. package/dist/types/webgl.d.ts.map +1 -1
  140. package/dist/types/webgl.js.map +1 -1
  141. package/dist/types.js.map +1 -1
  142. package/dist.min.js +36 -0
  143. package/package.json +18 -9
  144. package/src/.DS_Store +0 -0
  145. package/src/adapter/.DS_Store +0 -0
  146. package/src/adapter/converters/device-parameters.ts +5 -2
  147. package/src/adapter/converters/sampler-parameters.ts +4 -2
  148. package/src/adapter/converters/texture-formats.ts +3 -1
  149. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  150. package/src/adapter/helpers/get-shader-info.ts +37 -0
  151. package/src/adapter/helpers/get-shader-layout.ts +4 -4
  152. package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
  153. package/src/adapter/helpers/set-uniform.ts +2 -0
  154. package/src/adapter/objects/webgl-renderbuffer.ts +1 -1
  155. package/src/adapter/objects/webgl-resource.ts +1 -1
  156. package/src/adapter/objects/webgl-vertex-array-object.ts +1 -1
  157. package/src/adapter/resources/webgl-buffer.ts +5 -5
  158. package/src/adapter/resources/webgl-command-encoder.ts +1 -1
  159. package/src/adapter/resources/webgl-framebuffer.ts +3 -4
  160. package/src/adapter/resources/webgl-render-pass.ts +1 -1
  161. package/src/adapter/resources/webgl-render-pipeline.ts +19 -20
  162. package/src/adapter/resources/webgl-shader.ts +3 -3
  163. package/src/adapter/resources/webgl-texture.ts +8 -9
  164. package/src/adapter/webgl-canvas-context.ts +2 -2
  165. package/src/adapter/webgl-device.ts +13 -3
  166. package/src/classic/accessor.ts +1 -1
  167. package/src/classic/buffer.ts +3 -3
  168. package/src/classic/typed-array-utils.ts +1 -1
  169. package/src/context/.DS_Store +0 -0
  170. package/src/context/context/create-browser-context.ts +4 -2
  171. package/src/context/context/create-headless-context.ts +2 -2
  172. package/src/context/debug/spector.ts +5 -4
  173. package/src/context/debug/webgl-developer-tools.ts +1 -1
  174. package/src/context/polyfill/polyfill-table.ts +1 -0
  175. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  176. package/src/context/state-tracker/track-context-state.ts +6 -5
  177. package/src/context/state-tracker/with-parameters.ts +1 -1
  178. package/src/index.ts +1 -5
  179. package/src/types/webgl.ts +6 -4
  180. package/dist/bundle.d.ts +0 -2
  181. package/dist/bundle.d.ts.map +0 -1
  182. package/dist/bundle.js +0 -5
  183. package/dist/bundle.js.map +0 -1
  184. package/dist/es5/adapter/converters/device-parameters.js +0 -174
  185. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  186. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  187. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  188. package/dist/es5/adapter/converters/sampler-parameters.js +0 -245
  189. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  190. package/dist/es5/adapter/converters/texture-formats.js +0 -1022
  191. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  192. package/dist/es5/adapter/converters/vertex-formats.js +0 -48
  193. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  194. package/dist/es5/adapter/device-helpers/device-features.js +0 -155
  195. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  196. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  197. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  198. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -59
  199. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  200. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  201. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  202. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  203. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  204. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -389
  205. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  206. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  207. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  208. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  209. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  210. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  211. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  212. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  213. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  214. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  215. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  216. package/dist/es5/adapter/objects/webgl-resource.js +0 -287
  217. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  218. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  219. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  220. package/dist/es5/adapter/resources/webgl-buffer.js +0 -242
  221. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  222. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  223. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  224. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  225. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  226. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  227. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  228. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -347
  229. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  230. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -62
  231. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  232. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -494
  233. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  234. package/dist/es5/adapter/resources/webgl-sampler.js +0 -101
  235. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  236. package/dist/es5/adapter/resources/webgl-shader.js +0 -150
  237. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  238. package/dist/es5/adapter/resources/webgl-texture.js +0 -980
  239. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  240. package/dist/es5/adapter/webgl-canvas-context.js +0 -96
  241. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  242. package/dist/es5/adapter/webgl-device.js +0 -474
  243. package/dist/es5/adapter/webgl-device.js.map +0 -1
  244. package/dist/es5/bundle.js +0 -7
  245. package/dist/es5/bundle.js.map +0 -1
  246. package/dist/es5/classic/accessor.js +0 -181
  247. package/dist/es5/classic/accessor.js.map +0 -1
  248. package/dist/es5/classic/buffer.js +0 -468
  249. package/dist/es5/classic/buffer.js.map +0 -1
  250. package/dist/es5/classic/typed-array-utils.js +0 -126
  251. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  252. package/dist/es5/context/context/create-browser-context.js +0 -83
  253. package/dist/es5/context/context/create-browser-context.js.map +0 -1
  254. package/dist/es5/context/context/create-headless-context.js +0 -60
  255. package/dist/es5/context/context/create-headless-context.js.map +0 -1
  256. package/dist/es5/context/context/webgl-checks.js +0 -54
  257. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  258. package/dist/es5/context/debug/spector.js +0 -133
  259. package/dist/es5/context/debug/spector.js.map +0 -1
  260. package/dist/es5/context/debug/webgl-developer-tools.js +0 -192
  261. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  262. package/dist/es5/context/parameters/unified-parameter-api.js +0 -101
  263. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  264. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -393
  265. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  266. package/dist/es5/context/polyfill/context-data.js +0 -21
  267. package/dist/es5/context/polyfill/context-data.js.map +0 -1
  268. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  269. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  270. package/dist/es5/context/polyfill/polyfill-context.js +0 -134
  271. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  272. package/dist/es5/context/polyfill/polyfill-table.js +0 -167
  273. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  274. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  275. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  276. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  277. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  278. package/dist/es5/context/state-tracker/track-context-state.js +0 -210
  279. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  280. package/dist/es5/context/state-tracker/with-parameters.js +0 -52
  281. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  282. package/dist/es5/index.js +0 -276
  283. package/dist/es5/index.js.map +0 -1
  284. package/dist/es5/init.js +0 -10
  285. package/dist/es5/init.js.map +0 -1
  286. package/dist/es5/types/webgl.js +0 -6
  287. package/dist/es5/types/webgl.js.map +0 -1
  288. package/dist/es5/types.js +0 -2
  289. package/dist/es5/types.js.map +0 -1
  290. package/dist/esm/adapter/converters/device-parameters.js +0 -157
  291. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  292. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  293. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  294. package/dist/esm/adapter/converters/sampler-parameters.js +0 -227
  295. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  296. package/dist/esm/adapter/converters/texture-formats.js +0 -945
  297. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  298. package/dist/esm/adapter/converters/vertex-formats.js +0 -38
  299. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  300. package/dist/esm/adapter/device-helpers/device-features.js +0 -112
  301. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  302. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  303. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  304. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -48
  305. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  306. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  307. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  308. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  309. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  310. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -328
  311. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  312. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  313. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  314. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  315. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  316. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  317. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  318. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  319. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  320. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  321. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  322. package/dist/esm/adapter/objects/webgl-resource.js +0 -210
  323. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  324. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  325. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  326. package/dist/esm/adapter/resources/webgl-buffer.js +0 -162
  327. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  328. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  329. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  330. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  331. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  332. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  333. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  334. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -267
  335. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  336. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -21
  337. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  338. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  339. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  340. package/dist/esm/adapter/resources/webgl-sampler.js +0 -54
  341. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  342. package/dist/esm/adapter/resources/webgl-shader.js +0 -76
  343. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  344. package/dist/esm/adapter/resources/webgl-texture.js +0 -832
  345. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  346. package/dist/esm/adapter/webgl-canvas-context.js +0 -55
  347. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  348. package/dist/esm/adapter/webgl-device.js +0 -346
  349. package/dist/esm/adapter/webgl-device.js.map +0 -1
  350. package/dist/esm/bundle.js +0 -5
  351. package/dist/esm/bundle.js.map +0 -1
  352. package/dist/esm/classic/accessor.js +0 -144
  353. package/dist/esm/classic/accessor.js.map +0 -1
  354. package/dist/esm/classic/buffer.js +0 -383
  355. package/dist/esm/classic/buffer.js.map +0 -1
  356. package/dist/esm/classic/typed-array-utils.js +0 -112
  357. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  358. package/dist/esm/context/context/create-browser-context.js +0 -61
  359. package/dist/esm/context/context/create-browser-context.js.map +0 -1
  360. package/dist/esm/context/context/create-headless-context.js +0 -43
  361. package/dist/esm/context/context/create-headless-context.js.map +0 -1
  362. package/dist/esm/context/context/webgl-checks.js +0 -34
  363. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  364. package/dist/esm/context/debug/spector.js +0 -76
  365. package/dist/esm/context/debug/spector.js.map +0 -1
  366. package/dist/esm/context/debug/webgl-developer-tools.js +0 -115
  367. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  368. package/dist/esm/context/parameters/unified-parameter-api.js +0 -66
  369. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  370. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -446
  371. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  372. package/dist/esm/context/polyfill/context-data.js +0 -14
  373. package/dist/esm/context/polyfill/context-data.js.map +0 -1
  374. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  375. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  376. package/dist/esm/context/polyfill/polyfill-context.js +0 -91
  377. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  378. package/dist/esm/context/polyfill/polyfill-table.js +0 -161
  379. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  380. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  381. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  382. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  383. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  384. package/dist/esm/context/state-tracker/track-context-state.js +0 -182
  385. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  386. package/dist/esm/context/state-tracker/with-parameters.js +0 -40
  387. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  388. package/dist/esm/index.js +0 -27
  389. package/dist/esm/index.js.map +0 -1
  390. package/dist/esm/init.js +0 -4
  391. package/dist/esm/init.js.map +0 -1
  392. package/dist/esm/types/webgl.js +0 -2
  393. package/dist/esm/types/webgl.js.map +0 -1
  394. package/dist/esm/types.js +0 -2
  395. package/dist/esm/types.js.map +0 -1
  396. package/dist/init.d.ts +0 -2
  397. package/dist/init.d.ts.map +0 -1
  398. package/dist/init.js +0 -4
  399. package/dist/init.js.map +0 -1
  400. package/src/bundle.ts +0 -4
  401. 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.15",
3
+ "version": "9.0.0-alpha.17",
4
4
  "description": "WebGL2 adapter for the luma.gl API",
5
+ "type": "module",
5
6
  "license": "MIT",
6
7
  "publishConfig": {
7
8
  "access": "public"
@@ -16,12 +17,20 @@
16
17
  "animation",
17
18
  "3d"
18
19
  ],
19
- "types": "src/index.ts",
20
- "main": "dist/index.js",
20
+ "types": "dist/index.d.ts",
21
+ "main": "dist/index.cjs",
21
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.15",
39
- "@luma.gl/constants": "9.0.0-alpha.15",
40
- "@probe.gl/env": "4.0.0-alpha.1"
47
+ "@luma.gl/api": "9.0.0-alpha.17",
48
+ "@luma.gl/constants": "9.0.0-alpha.17",
49
+ "@probe.gl/env": "^4.0.2"
41
50
  },
42
- "gitHead": "9e235e1ca88313940d6529342303cad75a160e55"
51
+ "gitHead": "9385b56a95f5f53ee5f11d2ccef5b6114a527d94"
43
52
  }
package/src/.DS_Store ADDED
Binary file
Binary file
@@ -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
 
@@ -0,0 +1,37 @@
1
+ // luma.gl, MIT license
2
+
3
+ /** Information extracted from shader source code */
4
+ export type ShaderInfo = {
5
+ name: string;
6
+ language: 'glsl' | 'wgsl';
7
+ version: number;
8
+ };
9
+
10
+ /** Extracts information from shader source code */
11
+ export function getShaderInfo(source: string, defaultName?: string): ShaderInfo {
12
+ return {
13
+ name: getShaderName(source, defaultName),
14
+ language: 'glsl',
15
+ version: getShaderVersion(source)
16
+ };
17
+ }
18
+
19
+ /** Extracts GLSLIFY style naming of shaders: `#define SHADER_NAME ...` */
20
+ function getShaderName(shader: string, defaultName: string = 'unnamed'): string {
21
+ const SHADER_NAME_REGEXP = /#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/;
22
+ const match = SHADER_NAME_REGEXP.exec(shader);
23
+ return match ? match[1] : defaultName;
24
+ }
25
+
26
+ /** returns GLSL shader version of given shader string */
27
+ function getShaderVersion(source: string): number {
28
+ let version = 100;
29
+ const words = source.match(/[^\s]+/g);
30
+ if (words && words.length >= 2 && words[0] === '#version') {
31
+ const v = parseInt(words[1], 10);
32
+ if (Number.isFinite(v)) {
33
+ version = v;
34
+ }
35
+ }
36
+ return version;
37
+ }
@@ -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
  }
@@ -1,5 +1,5 @@
1
1
  // luma.gl, MIT license
2
- import type {CompilerMessage} from '@luma.gl/shadertools';
2
+ import type {CompilerMessage} from '@luma.gl/api';
3
3
 
4
4
  const MESSAGE_TYPES = ['warning', 'error', 'info'];
5
5
 
@@ -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 {
@@ -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
 
@@ -9,7 +9,7 @@ export default class WEBGLRenderPass extends RenderPass {
9
9
  this.device = device;
10
10
  }
11
11
 
12
- endPass(): void {}
12
+ end(): void {}
13
13
 
14
14
  pushDebugGroup(groupLabel: string): void {}
15
15
  popDebugGroup(): void {}
@@ -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
 
@@ -1,14 +1,14 @@
1
1
  // luma.gl, MIT license
2
- import {log, uid, Shader, ShaderProps} from '@luma.gl/api';
2
+ import {log, uid, Shader, ShaderProps, CompilerMessage, formatCompilerLog} from '@luma.gl/api';
3
3
  import GL from '@luma.gl/constants';
4
- import {getShaderInfo, CompilerMessage, formatCompilerLog} from '@luma.gl/shadertools';
4
+ import {getShaderInfo} from '../helpers/get-shader-info';
5
5
  import {parseShaderCompilerLog} from '../helpers/parse-shader-compiler-log';
6
6
  import WebGLDevice from '../webgl-device';
7
7
 
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
  }
@@ -336,12 +336,12 @@ ${this.info.vendor}, ${this.info.renderer} for canvas: ${this.canvasContext.id}`
336
336
  * Chrome's offscreen canvas does not require gl.commit
337
337
  */
338
338
  submit(): void {
339
- this.renderPass?.endPass();
339
+ this.renderPass?.end();
340
340
  this.renderPass = null;
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;
Binary file