@luma.gl/webgl 9.0.0-alpha.2 → 9.0.0-alpha.20

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 (454) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts +11 -1
  2. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  3. package/dist/adapter/converters/device-parameters.js +17 -35
  4. package/dist/adapter/converters/device-parameters.js.map +1 -1
  5. package/dist/adapter/converters/renderbuffer-formats.js +1 -5
  6. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -1
  7. package/dist/adapter/converters/sampler-parameters.d.ts +4 -4
  8. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  9. package/dist/adapter/converters/sampler-parameters.js +19 -55
  10. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  11. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  12. package/dist/adapter/converters/texture-formats.js +13 -66
  13. package/dist/adapter/converters/texture-formats.js.map +1 -1
  14. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  15. package/dist/adapter/converters/vertex-formats.js +2 -8
  16. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  17. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  18. package/dist/adapter/device-helpers/device-features.js +13 -20
  19. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  20. package/dist/adapter/device-helpers/device-limits.js +1 -4
  21. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  22. package/dist/adapter/device-helpers/get-device-info.js +8 -10
  23. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  24. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  25. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  26. package/dist/adapter/helpers/attribute-utils.js +0 -17
  27. package/dist/adapter/helpers/attribute-utils.js.map +1 -1
  28. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  29. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  30. package/dist/adapter/helpers/get-shader-info.js +25 -0
  31. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  32. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -1
  33. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  34. package/dist/adapter/helpers/get-shader-layout.js +41 -67
  35. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  36. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  37. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  38. package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
  39. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  40. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  41. package/dist/adapter/helpers/set-uniform.js +1 -31
  42. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  43. package/dist/adapter/helpers/uniforms.d.ts +1 -1
  44. package/dist/adapter/helpers/uniforms.d.ts.map +1 -1
  45. package/dist/adapter/helpers/uniforms.js +4 -14
  46. package/dist/adapter/helpers/uniforms.js.map +1 -1
  47. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  48. package/dist/adapter/objects/constants-to-keys.js +0 -7
  49. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  50. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  51. package/dist/adapter/objects/webgl-renderbuffer.js +5 -21
  52. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  53. package/dist/adapter/objects/webgl-resource.d.ts +2 -4
  54. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  55. package/dist/adapter/objects/webgl-resource.js +14 -67
  56. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  57. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
  58. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  59. package/dist/adapter/objects/webgl-vertex-array-object.js +6 -16
  60. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  61. package/dist/adapter/resources/webgl-buffer.d.ts +1 -2
  62. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  63. package/dist/adapter/resources/webgl-buffer.js +17 -48
  64. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  65. package/dist/adapter/resources/webgl-command-buffer.js +2 -17
  66. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  67. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  68. package/dist/adapter/resources/webgl-command-encoder.js +1 -14
  69. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  70. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  71. package/dist/adapter/resources/webgl-framebuffer.d.ts +1 -1
  72. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  73. package/dist/adapter/resources/webgl-framebuffer.js +9 -67
  74. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  75. package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
  76. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  77. package/dist/adapter/resources/webgl-render-pass.js +2 -7
  78. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  79. package/dist/adapter/resources/webgl-render-pipeline.d.ts +1 -1
  80. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  81. package/dist/adapter/resources/webgl-render-pipeline.js +50 -139
  82. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  83. package/dist/adapter/resources/webgl-sampler.d.ts +3 -2
  84. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  85. package/dist/adapter/resources/webgl-sampler.js +4 -12
  86. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  87. package/dist/adapter/resources/webgl-shader.d.ts +1 -2
  88. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  89. package/dist/adapter/resources/webgl-shader.js +7 -20
  90. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  91. package/dist/adapter/resources/webgl-texture.d.ts +23 -23
  92. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  93. package/dist/adapter/resources/webgl-texture.js +65 -182
  94. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  95. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  96. package/dist/adapter/webgl-canvas-context.js +5 -18
  97. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  98. package/dist/adapter/webgl-device.d.ts +45 -29
  99. package/dist/adapter/webgl-device.d.ts.map +1 -1
  100. package/dist/adapter/webgl-device.js +107 -108
  101. package/dist/adapter/webgl-device.js.map +1 -1
  102. package/dist/classic/accessor.d.ts.map +1 -1
  103. package/dist/classic/accessor.js +11 -35
  104. package/dist/classic/accessor.js.map +1 -1
  105. package/dist/classic/buffer.d.ts +0 -1
  106. package/dist/classic/buffer.d.ts.map +1 -1
  107. package/dist/classic/buffer.js +29 -86
  108. package/dist/classic/buffer.js.map +1 -1
  109. package/dist/classic/typed-array-utils.d.ts +1 -1
  110. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  111. package/dist/classic/typed-array-utils.js +0 -20
  112. package/dist/classic/typed-array-utils.js.map +1 -1
  113. package/dist/context/context/{create-context.d.ts → create-browser-context.d.ts} +2 -1
  114. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  115. package/dist/context/context/{create-context.js → create-browser-context.js} +19 -15
  116. package/dist/context/context/create-browser-context.js.map +1 -0
  117. package/dist/context/context/create-headless-context.d.ts +9 -0
  118. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  119. package/dist/context/context/create-headless-context.js +42 -0
  120. package/dist/context/context/create-headless-context.js.map +1 -0
  121. package/dist/context/context/webgl-checks.js +0 -3
  122. package/dist/context/context/webgl-checks.js.map +1 -1
  123. package/dist/context/debug/spector.d.ts +1 -0
  124. package/dist/context/debug/spector.d.ts.map +1 -1
  125. package/dist/context/debug/spector.js +7 -19
  126. package/dist/context/debug/spector.js.map +1 -1
  127. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  128. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  129. package/dist/context/debug/webgl-developer-tools.js +8 -32
  130. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  131. package/dist/context/parameters/unified-parameter-api.d.ts +6 -5
  132. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  133. package/dist/context/parameters/unified-parameter-api.js +8 -18
  134. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  135. package/dist/context/parameters/webgl-parameter-tables.d.ts +103 -103
  136. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  137. package/dist/context/parameters/webgl-parameter-tables.js +16 -34
  138. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  139. package/dist/context/polyfill/context-data.d.ts +13 -0
  140. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  141. package/dist/context/polyfill/context-data.js +12 -0
  142. package/dist/context/polyfill/context-data.js.map +1 -0
  143. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  144. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  145. package/dist/context/polyfill/get-parameter-polyfill.js +1 -6
  146. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  147. package/dist/context/polyfill/polyfill-context.js +20 -28
  148. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  149. package/dist/context/polyfill/polyfill-table.d.ts +8 -8
  150. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  151. package/dist/context/polyfill/polyfill-table.js +8 -30
  152. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  153. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  154. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
  155. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  156. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  157. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  158. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  159. package/dist/context/state-tracker/track-context-state.js +15 -50
  160. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  161. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  162. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  163. package/dist/context/state-tracker/with-parameters.js +7 -9
  164. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  165. package/dist/dist.dev.js +9205 -0
  166. package/dist/index.cjs +5948 -0
  167. package/dist/index.d.ts +6 -6
  168. package/dist/index.d.ts.map +1 -1
  169. package/dist/index.js +24 -26
  170. package/dist/index.js.map +1 -1
  171. package/dist/types/webgl.d.ts +8 -7
  172. package/dist/types/webgl.d.ts.map +1 -1
  173. package/dist/types/webgl.js.map +1 -1
  174. package/dist/types.js.map +1 -1
  175. package/dist.min.js +36 -0
  176. package/package.json +18 -9
  177. package/src/adapter/converters/device-parameters.ts +44 -15
  178. package/src/adapter/converters/sampler-parameters.ts +18 -7
  179. package/src/adapter/converters/texture-formats.ts +18 -16
  180. package/src/adapter/converters/vertex-formats.ts +1 -0
  181. package/src/adapter/device-helpers/device-features.ts +9 -2
  182. package/src/adapter/device-helpers/device-limits.ts +1 -1
  183. package/src/adapter/device-helpers/get-device-info.ts +12 -8
  184. package/src/adapter/helpers/get-shader-info.ts +37 -0
  185. package/src/adapter/helpers/get-shader-layout.ts +58 -36
  186. package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
  187. package/src/adapter/helpers/set-uniform.ts +3 -1
  188. package/src/adapter/helpers/uniforms.ts +21 -10
  189. package/src/adapter/objects/constants-to-keys.ts +4 -1
  190. package/src/adapter/objects/webgl-renderbuffer.ts +5 -5
  191. package/src/adapter/objects/webgl-resource.ts +7 -12
  192. package/src/adapter/objects/webgl-vertex-array-object.ts +5 -5
  193. package/src/adapter/resources/webgl-buffer.ts +14 -14
  194. package/src/adapter/resources/webgl-command-encoder.ts +5 -5
  195. package/src/adapter/resources/webgl-framebuffer.ts +14 -11
  196. package/src/adapter/resources/webgl-render-pass.ts +2 -1
  197. package/src/adapter/resources/webgl-render-pipeline.ts +83 -71
  198. package/src/adapter/resources/webgl-sampler.ts +10 -4
  199. package/src/adapter/resources/webgl-shader.ts +9 -8
  200. package/src/adapter/resources/webgl-texture.ts +51 -41
  201. package/src/adapter/webgl-canvas-context.ts +5 -6
  202. package/src/adapter/webgl-device.ts +144 -60
  203. package/src/classic/accessor.ts +1 -14
  204. package/src/classic/buffer.ts +14 -21
  205. package/src/classic/typed-array-utils.ts +4 -2
  206. package/src/context/context/{create-context.ts → create-browser-context.ts} +17 -7
  207. package/src/context/context/create-headless-context.ts +48 -0
  208. package/src/context/debug/spector.ts +6 -5
  209. package/src/context/debug/webgl-developer-tools.ts +13 -13
  210. package/src/context/parameters/unified-parameter-api.ts +17 -11
  211. package/src/context/parameters/webgl-parameter-tables.ts +113 -94
  212. package/src/context/polyfill/context-data.ts +27 -0
  213. package/src/context/polyfill/get-parameter-polyfill.ts +7 -6
  214. package/src/context/polyfill/polyfill-context.ts +6 -8
  215. package/src/context/polyfill/polyfill-table.ts +16 -14
  216. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  217. package/src/context/state-tracker/track-context-state.ts +13 -12
  218. package/src/context/state-tracker/with-parameters.ts +8 -2
  219. package/src/index.ts +14 -12
  220. package/src/types/webgl.ts +10 -7
  221. package/dist/bundle.d.ts +0 -2
  222. package/dist/bundle.d.ts.map +0 -1
  223. package/dist/bundle.js +0 -5
  224. package/dist/bundle.js.map +0 -1
  225. package/dist/context/context/context-state.d.ts +0 -18
  226. package/dist/context/context/context-state.d.ts.map +0 -1
  227. package/dist/context/context/context-state.js +0 -26
  228. package/dist/context/context/context-state.js.map +0 -1
  229. package/dist/context/context/create-context.d.ts.map +0 -1
  230. package/dist/context/context/create-context.js.map +0 -1
  231. package/dist/context/context/device-pixels.d.ts +0 -25
  232. package/dist/context/context/device-pixels.d.ts.map +0 -1
  233. package/dist/context/context/device-pixels.js +0 -98
  234. package/dist/context/context/device-pixels.js.map +0 -1
  235. package/dist/es5/adapter/converters/device-parameters.js +0 -170
  236. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  237. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  238. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  239. package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
  240. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  241. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  242. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  243. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  244. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  245. package/dist/es5/adapter/device-helpers/device-features.js +0 -144
  246. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  247. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  248. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  249. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  250. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  251. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  252. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  253. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  254. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  255. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
  256. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  257. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  258. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  259. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  260. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  261. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  262. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  263. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  264. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  265. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  266. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  267. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  268. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  269. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  270. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  271. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  272. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  273. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  274. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  275. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  276. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  277. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  278. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  279. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
  280. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  281. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
  282. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  283. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
  284. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  285. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  286. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  287. package/dist/es5/adapter/resources/webgl-shader.js +0 -149
  288. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  289. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  290. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  291. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  292. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  293. package/dist/es5/adapter/webgl-device.js +0 -399
  294. package/dist/es5/adapter/webgl-device.js.map +0 -1
  295. package/dist/es5/bundle.js +0 -7
  296. package/dist/es5/bundle.js.map +0 -1
  297. package/dist/es5/classic/accessor.js +0 -181
  298. package/dist/es5/classic/accessor.js.map +0 -1
  299. package/dist/es5/classic/buffer.js +0 -470
  300. package/dist/es5/classic/buffer.js.map +0 -1
  301. package/dist/es5/classic/typed-array-utils.js +0 -126
  302. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  303. package/dist/es5/context/context/context-state.js +0 -31
  304. package/dist/es5/context/context/context-state.js.map +0 -1
  305. package/dist/es5/context/context/create-context.js +0 -69
  306. package/dist/es5/context/context/create-context.js.map +0 -1
  307. package/dist/es5/context/context/device-pixels.js +0 -115
  308. package/dist/es5/context/context/device-pixels.js.map +0 -1
  309. package/dist/es5/context/context/webgl-checks.js +0 -54
  310. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  311. package/dist/es5/context/debug/spector.js +0 -133
  312. package/dist/es5/context/debug/spector.js.map +0 -1
  313. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  314. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  315. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  316. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  317. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  318. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  319. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  320. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  321. package/dist/es5/context/polyfill/polyfill-context.js +0 -135
  322. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  323. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  324. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  325. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  326. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  327. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  328. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  329. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  330. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  331. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  332. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  333. package/dist/es5/index.js +0 -276
  334. package/dist/es5/index.js.map +0 -1
  335. package/dist/es5/init.js +0 -10
  336. package/dist/es5/init.js.map +0 -1
  337. package/dist/es5/types/webgl.js +0 -6
  338. package/dist/es5/types/webgl.js.map +0 -1
  339. package/dist/es5/types.js +0 -2
  340. package/dist/es5/types.js.map +0 -1
  341. package/dist/esm/adapter/converters/device-parameters.js +0 -155
  342. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  343. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  344. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  345. package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
  346. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  347. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  348. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  349. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  350. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  351. package/dist/esm/adapter/device-helpers/device-features.js +0 -102
  352. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  353. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  354. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  355. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  356. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  357. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  358. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  359. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  360. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  361. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
  362. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  363. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  364. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  365. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  366. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  367. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  368. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  369. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  370. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  371. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  372. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  373. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  374. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  375. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  376. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  377. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  378. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  379. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  380. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  381. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  382. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  383. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  384. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  385. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
  386. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  387. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
  388. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  389. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  390. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  391. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  392. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  393. package/dist/esm/adapter/resources/webgl-shader.js +0 -75
  394. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  395. package/dist/esm/adapter/resources/webgl-texture.js +0 -831
  396. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  397. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  398. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  399. package/dist/esm/adapter/webgl-device.js +0 -280
  400. package/dist/esm/adapter/webgl-device.js.map +0 -1
  401. package/dist/esm/bundle.js +0 -5
  402. package/dist/esm/bundle.js.map +0 -1
  403. package/dist/esm/classic/accessor.js +0 -144
  404. package/dist/esm/classic/accessor.js.map +0 -1
  405. package/dist/esm/classic/buffer.js +0 -384
  406. package/dist/esm/classic/buffer.js.map +0 -1
  407. package/dist/esm/classic/typed-array-utils.js +0 -112
  408. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  409. package/dist/esm/context/context/context-state.js +0 -26
  410. package/dist/esm/context/context/context-state.js.map +0 -1
  411. package/dist/esm/context/context/create-context.js +0 -49
  412. package/dist/esm/context/context/create-context.js.map +0 -1
  413. package/dist/esm/context/context/device-pixels.js +0 -98
  414. package/dist/esm/context/context/device-pixels.js.map +0 -1
  415. package/dist/esm/context/context/webgl-checks.js +0 -34
  416. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  417. package/dist/esm/context/debug/spector.js +0 -76
  418. package/dist/esm/context/debug/spector.js.map +0 -1
  419. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  420. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  421. package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
  422. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  423. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  424. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  425. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  426. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  427. package/dist/esm/context/polyfill/polyfill-context.js +0 -92
  428. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  429. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  430. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  431. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  432. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  433. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  434. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  435. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  436. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  437. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  438. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  439. package/dist/esm/index.js +0 -27
  440. package/dist/esm/index.js.map +0 -1
  441. package/dist/esm/init.js +0 -4
  442. package/dist/esm/init.js.map +0 -1
  443. package/dist/esm/types/webgl.js +0 -2
  444. package/dist/esm/types/webgl.js.map +0 -1
  445. package/dist/esm/types.js +0 -2
  446. package/dist/esm/types.js.map +0 -1
  447. package/dist/init.d.ts +0 -2
  448. package/dist/init.d.ts.map +0 -1
  449. package/dist/init.js +0 -4
  450. package/dist/init.js.map +0 -1
  451. package/src/bundle.ts +0 -4
  452. package/src/context/context/context-state.ts +0 -41
  453. package/src/context/context/device-pixels.ts +0 -152
  454. package/src/init.ts +0 -4
@@ -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
 
@@ -60,7 +62,7 @@ export function setUniform(
60
62
  case GL.BOOL: return gl.uniform1iv(location, arrayValue);
61
63
  case GL.BOOL_VEC2: return gl.uniform2iv(location, arrayValue);
62
64
  case GL.BOOL_VEC3: return gl.uniform3iv(location, arrayValue);
63
- case GL.BOOL_VEC4: gl.uniform4iv(location, arrayValue);
65
+ case GL.BOOL_VEC4: return gl.uniform4iv(location, arrayValue);
64
66
 
65
67
  // WEBGL2 - unsigned integers
66
68
  case GL.UNSIGNED_INT: return gl2.uniform1uiv(location, arrayValue, 1);
@@ -1,6 +1,6 @@
1
1
  import {UniformFormat, VertexFormat} from '@luma.gl/api';
2
2
  import GL from '@luma.gl/constants';
3
- import {GLUniformType, GLSamplerType, GLCompositeType, GLType} from '../../types/webgl'
3
+ import {GLUniformType, GLSamplerType, GLCompositeType, GLType} from '../../types/webgl';
4
4
 
5
5
  /** Check is uniform is of sampler type */
6
6
  export function isSamplerUniform(type: GLUniformType): boolean {
@@ -25,8 +25,11 @@ const SAMPLER_TYPES: GLSamplerType[] = [
25
25
  GL.UNSIGNED_INT_SAMPLER_2D_ARRAY
26
26
  ];
27
27
 
28
- // Composite types table
29
- const COMPOSITE_GL_TYPES: Record<GLCompositeType, [GLType, number, string, UniformFormat, VertexFormat?]> = {
28
+ // Composite types table
29
+ const COMPOSITE_GL_TYPES: Record<
30
+ GLCompositeType,
31
+ [GLType, number, string, UniformFormat, VertexFormat?]
32
+ > = {
30
33
  [GL.FLOAT]: [GL.FLOAT, 1, 'float', 'f32', 'float32'],
31
34
  [GL.FLOAT_VEC2]: [GL.FLOAT, 2, 'vec2', 'vec2<f32>', 'float32x2'],
32
35
  [GL.FLOAT_VEC3]: [GL.FLOAT, 3, 'vec3', 'vec3<f32>', 'float32x3'],
@@ -61,26 +64,34 @@ const COMPOSITE_GL_TYPES: Record<GLCompositeType, [GLType, number, string, Unifo
61
64
  };
62
65
 
63
66
  /** Decomposes a composite type GL.VEC3 into a basic type (GL.FLOAT) and components (3) */
64
- export function decodeUniformType(uniformType: GL): {format: UniformFormat, components: number, glType: GLType} {
67
+ export function decodeUniformType(
68
+ uniformType: GL
69
+ ): {format: UniformFormat; components: number; glType: GLType} {
65
70
  const typeAndSize = COMPOSITE_GL_TYPES[uniformType];
66
71
  if (!typeAndSize) {
67
- return null;
72
+ throw new Error('uniform');
68
73
  }
69
74
  const [glType, components, , format] = typeAndSize;
70
75
  return {format, components, glType};
71
76
  }
72
77
 
73
- export function decodeAttributeType(uniformType: GL): {format: VertexFormat, components: number, glType: GLType} {
74
- const typeAndSize = COMPOSITE_GL_TYPES[uniformType];
78
+ export function decodeAttributeType(attributeType: GL): {
79
+ format: VertexFormat;
80
+ components: number;
81
+ glType: GLType;
82
+ } {
83
+ const typeAndSize = COMPOSITE_GL_TYPES[attributeType];
75
84
  if (!typeAndSize) {
76
- return null;
85
+ throw new Error('attribute')
77
86
  }
78
87
  const [glType, components, , , format] = typeAndSize;
79
88
  return {format, components, glType};
80
89
  }
81
90
 
82
91
  /** Decomposes a composite type GL.VEC3 into a basic type (GL.FLOAT) and components (3) */
83
- export function decomposeCompositeGLType(compositeGLType: GLCompositeType): {type: GLType, components: number} | null {
92
+ export function decomposeCompositeGLType(
93
+ compositeGLType: GLCompositeType
94
+ ): {type: GLType; components: number} | null {
84
95
  const typeAndSize = COMPOSITE_GL_TYPES[compositeGLType];
85
96
  if (!typeAndSize) {
86
97
  return null;
@@ -89,7 +100,7 @@ export function decomposeCompositeGLType(compositeGLType: GLCompositeType): {typ
89
100
  return {type, components};
90
101
  }
91
102
 
92
- export function getCompositeGLType(type: GL, components): {glType: GLType, name: string} | null {
103
+ export function getCompositeGLType(type: GL, components): {glType: GLType; name: string} | null {
93
104
  switch (type) {
94
105
  case GL.BYTE:
95
106
  case GL.UNSIGNED_BYTE:
@@ -16,16 +16,18 @@ export function getKeyValue(gl: WebGLRenderingContext, name: string | GL): GL {
16
16
 
17
17
  // Look up string, after removing any 'GL.' or 'gl.' prefix
18
18
  name = name.replace(/^.*\./, '');
19
+ // @ts-ignore expect-error depends on settings
19
20
  const value = gl[name];
20
21
  assert(value !== undefined, `Accessing undefined constant GL.${name}`);
21
22
  return value;
22
23
  }
23
24
 
24
25
  export function getKey(gl: WebGLRenderingContext, value: any): string {
25
- // @ts-expect-error
26
+ // @ts-ignore expect-error depends on settings
26
27
  gl = gl.gl || gl;
27
28
  value = Number(value);
28
29
  for (const key in gl) {
30
+ // @ts-ignore expect-error depends on settings
29
31
  if (gl[key] === value) {
30
32
  return `GL.${key}`;
31
33
  }
@@ -37,6 +39,7 @@ export function getKeyType(gl: WebGLRenderingContext, value: any): string {
37
39
  assert(value !== undefined, 'undefined key');
38
40
  value = Number(value);
39
41
  for (const key in gl) {
42
+ // @ts-ignore expect-error depends on settings
40
43
  if (gl[key] === value) {
41
44
  return `GL.${key}`;
42
45
  }
@@ -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
- 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; }
@@ -43,7 +43,7 @@ export default class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps>
43
43
  get samples(): number { return this.props.samples; }
44
44
 
45
45
  static isSupported(gl: WebGLRenderingContext, options?: {format?: number}): boolean {
46
- return !options.format || isRenderbufferFormatSupported(gl, options.format);
46
+ return !options?.format || isRenderbufferFormatSupported(gl, options.format);
47
47
  }
48
48
 
49
49
  constructor(device: WebGLDevice, props: RenderbufferProps) {
@@ -89,16 +89,16 @@ export default class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps>
89
89
 
90
90
  // RESOURCE IMPLEMENTATION
91
91
 
92
- _createHandle() {
92
+ override _createHandle() {
93
93
  return this.gl.createRenderbuffer();
94
94
  }
95
95
 
96
- _deleteHandle(): void {
96
+ override _deleteHandle(): void {
97
97
  this.gl.deleteRenderbuffer(this.handle);
98
98
  this.trackDeallocatedMemory();
99
99
  }
100
100
 
101
- _bindHandle(handle: WEBGLRenderbuffer): void {
101
+ override _bindHandle(handle: WEBGLRenderbuffer): void {
102
102
  this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);
103
103
  }
104
104
  }
@@ -13,9 +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 Resource<Props> {
17
- id: string;
18
- userData: any;
16
+ export default abstract class WebGLResource<Props extends ResourceProps> extends Resource<Props> {
19
17
  readonly device: WebGLDevice;
20
18
  readonly gl: WebGLRenderingContext;
21
19
  readonly gl2: WebGL2RenderingContext;
@@ -34,12 +32,10 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
34
32
  assertWebGLContext(gl);
35
33
 
36
34
  // extends
37
- // @ts-expect-error
38
- const {id, userData = {}} = props || {};
35
+ const {id} = props || {};
39
36
  this.gl = gl;
40
37
  this.gl2 = gl as WebGL2RenderingContext;
41
38
  this.id = id || uid(this.constructor.name);
42
- this.userData = userData;
43
39
 
44
40
  // Set the handle
45
41
  // If handle was provided, use it, otherwise create a new handle
@@ -48,7 +44,6 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
48
44
  // this.glCount = glGetContextLossCount(this.gl);
49
45
 
50
46
  // Default VertexArray needs to be created with null handle, so compare against undefined
51
- // @ts-expect-error
52
47
  this._handle = props?.handle;
53
48
  if (this._handle === undefined) {
54
49
  this._handle = this._createHandle();
@@ -57,7 +52,7 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
57
52
  this.byteLength = 0;
58
53
  }
59
54
 
60
- toString(): string {
55
+ override toString(): string {
61
56
  return `${this.constructor.name}(${this.id})`;
62
57
  }
63
58
 
@@ -74,11 +69,11 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
74
69
  return this._handle;
75
70
  }
76
71
 
77
- destroy(): void {
72
+ override destroy(): void {
78
73
  this.delete();
79
74
  }
80
75
 
81
- delete({deleteChildren = false} = {}) {
76
+ override delete({deleteChildren = false} = {}) {
82
77
  // Delete this object, and get refs to any children
83
78
  // @ts-expect-error
84
79
  const children = this._handle && this._deleteHandle(this._handle);
@@ -130,7 +125,7 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
130
125
  * @param name
131
126
  * @return param
132
127
  */
133
- getParameter(pname: number, props = {}): any {
128
+ getParameter(pname: number, props: any = {}): any {
134
129
  pname = getKeyValue(this.gl, pname);
135
130
  assert(pname);
136
131
 
@@ -163,7 +158,7 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
163
158
  // Many resources support a getParameter call -
164
159
  // getParameters will get all parameters - slow but useful for debugging
165
160
  // eslint-disable-next-line complexity
166
- getParameters(options: {parameters?, keys?} = {}) {
161
+ getParameters(options: {parameters?: any, keys?: any} = {}) {
167
162
  const {parameters, keys} = options;
168
163
 
169
164
  // Get parameter definitions for this Resource
@@ -17,7 +17,7 @@ export type VertexArrayObjectProps = ResourceProps & {
17
17
 
18
18
  /** VertexArrayObject wrapper */
19
19
  export default class WEBGLVertexArrayObject extends WebGLResource<VertexArrayObjectProps> {
20
- get [Symbol.toStringTag](): string {
20
+ override get [Symbol.toStringTag](): string {
21
21
  return 'BaseVertexArrayObject';
22
22
  }
23
23
 
@@ -26,24 +26,24 @@ export default class WEBGLVertexArrayObject extends WebGLResource<VertexArrayObj
26
26
  super(device, props, {});
27
27
  }
28
28
 
29
- _createHandle() {
29
+ override _createHandle() {
30
30
  return this.gl2.createVertexArray();
31
31
  }
32
32
 
33
- _deleteHandle(): void {
33
+ override _deleteHandle(): void {
34
34
  this.gl2.deleteVertexArray(this.handle);
35
35
  // @ts-expect-error
36
36
  return [this.elements];
37
37
  // return [this.elements, ...this.buffers];
38
38
  }
39
39
 
40
- _bindHandle(handle: WEBGLVertexArrayObject): void {
40
+ override _bindHandle(handle: WEBGLVertexArrayObject): void {
41
41
  this.gl2.bindVertexArray(handle);
42
42
  }
43
43
 
44
44
  // Set (bind) an elements buffer, for indexed rendering.
45
45
  // Must be a Buffer bound to GL.ELEMENT_ARRAY_BUFFER. Constants not supported
46
- setElementBuffer(elementBuffer: Buffer = null, opts = {}) {
46
+ setElementBuffer(elementBuffer: Buffer | null = null, opts = {}) {
47
47
  assert(!elementBuffer || elementBuffer.target === GL.ELEMENT_ARRAY_BUFFER, ERR_ELEMENTS);
48
48
 
49
49
  // The GL.ELEMENT_ARRAY_BUFFER_BINDING is stored on the VertexArrayObject...
@@ -15,12 +15,13 @@ export default class WEBGLBuffer extends Buffer {
15
15
 
16
16
  byteLength: number;
17
17
  bytesUsed: number;
18
- debugData: ArrayBuffer;
18
+ debugData: ArrayBuffer | null = null;
19
19
 
20
20
  webglUsage: number;
21
21
 
22
- accessor: {};
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 {
@@ -101,17 +101,17 @@ export default class WEBGLBuffer extends Buffer {
101
101
  return this;
102
102
  }
103
103
 
104
- destroy(): void {
105
- if (this.handle) {
104
+ override destroy(): void {
105
+ if (!this.destroyed && this.handle) {
106
106
  this.removeStats();
107
107
  this.trackDeallocatedMemory();
108
108
  this.gl.deleteBuffer(this.handle);
109
- // @ts-expect-error
110
- this.handle = null;
109
+ this.destroyed = true;
110
+ // this.handle = null;
111
111
  }
112
112
  }
113
113
 
114
- write(data: ArrayBufferView, byteOffset: number = 0): void {
114
+ override write(data: ArrayBufferView, byteOffset: number = 0): void {
115
115
  const srcOffset = 0;
116
116
  const byteLength = data.byteLength;
117
117
 
@@ -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
  }
@@ -135,7 +135,7 @@ export default class WEBGLBuffer extends Buffer {
135
135
  }
136
136
 
137
137
  /** Read data from the buffer */
138
- async readAsync(
138
+ override async readAsync(
139
139
  byteOffset: number = 0,
140
140
  byteLength?: number
141
141
  ): Promise<ArrayBuffer> {
@@ -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
 
@@ -19,7 +19,7 @@ export default class WEBGLCommandEncoder extends CommandEncoder {
19
19
  this.device = device;
20
20
  }
21
21
 
22
- destroy() {}
22
+ override destroy(): void {}
23
23
 
24
24
  // beginRenderPass(GPURenderPassDescriptor descriptor): GPURenderPassEncoder;
25
25
  // beginComputePass(optional GPUComputePassDescriptor descriptor = {}): GPUComputePassEncoder;
@@ -41,10 +41,10 @@ export default class WEBGLCommandEncoder extends CommandEncoder {
41
41
  this.commandBuffer.commands.push({name: 'copy-texture-to-texture', options});
42
42
  }
43
43
 
44
- pushDebugGroup(groupLabel: string): void {}
45
- popDebugGroup() {}
44
+ override pushDebugGroup(groupLabel: string): void {}
45
+ override popDebugGroup() {}
46
46
 
47
- insertDebugMarker(markerLabel: string): void {}
47
+ override insertDebugMarker(markerLabel: string): void {}
48
48
 
49
49
  // writeTimestamp(querySet: Query, queryIndex: number): void {}
50
50
 
@@ -55,4 +55,4 @@ export default class WEBGLCommandEncoder extends CommandEncoder {
55
55
  // destination: Buffer,
56
56
  // destinationOffset?: number;
57
57
  // }): void;
58
- };
58
+ }
@@ -1,4 +1,6 @@
1
- import type {FramebufferProps, DepthStencilTextureFormat, ColorTextureFormat} from '@luma.gl/api';
1
+ // luma.gl, MIT license
2
+
3
+ import type {FramebufferProps, ColorTextureFormat} from '@luma.gl/api';
2
4
  import {Framebuffer, Texture, log, assert} from '@luma.gl/api';
3
5
  import GL from '@luma.gl/constants';
4
6
  import WebGLDevice from '../webgl-device';
@@ -17,7 +19,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
17
19
 
18
20
  get texture() { return this.colorAttachments[0]; }
19
21
  readonly colorAttachments: WebGLTexture[] = [];
20
- readonly depthStencilAttachment: WebGLTexture | undefined = undefined;
22
+ readonly depthStencilAttachment: WebGLTexture | null = null;
21
23
  protected _ownResources: (WebGLTexture | Renderbuffer)[] = [];
22
24
 
23
25
  constructor(device: WebGLDevice, props: FramebufferProps) {
@@ -27,8 +29,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
27
29
  this.handle = this.props.handle !== undefined ? this.props.handle : this.gl.createFramebuffer();
28
30
 
29
31
  if (this.handle) { // default framebuffer is null...
30
- // @ts-expect-error Per SPECTOR docs
31
- this.handle.__SPECTOR_Metadata = {id: this.props.id, props: this.props};
32
+ device.setSpectorMetadata(this.handle, {id: this.props.id, props: this.props});
32
33
  }
33
34
 
34
35
  this.colorAttachments = this._createColorAttachments();
@@ -60,13 +61,14 @@ export default class WEBGLFramebuffer extends Framebuffer {
60
61
  }
61
62
  }
62
63
 
63
- destroy() {
64
+ override destroy(): void {
64
65
  if (this.handle !== null) {
65
66
  for (const resource of this._ownResources) {
66
67
  resource.destroy();
67
68
  }
68
69
  this.gl.deleteFramebuffer(this.handle);
69
- this.handle = null;
70
+ // this.handle = null;
71
+ this.destroyed = true;
70
72
  }
71
73
  }
72
74
 
@@ -128,7 +130,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
128
130
  // [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,
129
131
  // [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE
130
132
  // }
131
- }) as WebGLTexture;
133
+ }) ;
132
134
  this._ownResources.push(texture);
133
135
  return texture;
134
136
  }
@@ -199,6 +201,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
199
201
  this._attachTexture(attachmentPoint, attachment, 0, 0);
200
202
  return attachment;
201
203
  }
204
+ throw new Error('attach');
202
205
  }
203
206
 
204
207
  protected _attachRenderbuffer(attachment: GL, renderbuffer: Renderbuffer): void {
@@ -216,7 +219,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
216
219
  * @param layer = 0 - index into WebGLTextureArray and Texture3D or face for `TextureCubeMap`
217
220
  * @param level = 0 - mipmapLevel (must be 0 in WebGL1)
218
221
  */
219
- protected _attachTexture(attachment: GL, texture: WebGLTexture, layer: number, level: number): void {
222
+ protected _attachTexture(attachment: GL, texture: WebGLTexture, layer: number, level: number): void {
220
223
  const {gl, gl2} = this.device;
221
224
  gl.bindTexture(texture.target, texture.handle);
222
225
 
@@ -224,7 +227,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
224
227
  case GL.TEXTURE_2D_ARRAY:
225
228
  case GL.TEXTURE_3D:
226
229
  this.device.assertWebGL2();
227
- gl2.framebufferTextureLayer(GL.FRAMEBUFFER, attachment, texture.target, level, layer);
230
+ gl2?.framebufferTextureLayer(GL.FRAMEBUFFER, attachment, texture.target, level, layer);
228
231
  break;
229
232
 
230
233
  case GL.TEXTURE_CUBE_MAP:
@@ -248,7 +251,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
248
251
  // Helper functions
249
252
 
250
253
  // Map an index to a cube map face constant
251
- function mapIndexToCubeMapFace(layer) {
254
+ function mapIndexToCubeMapFace(layer: number | GL): GL {
252
255
  // TEXTURE_CUBE_MAP_POSITIVE_X is a big value (0x8515)
253
256
  // if smaller assume layer is index, otherwise assume it is already a cube map face constant
254
257
  return layer < GL.TEXTURE_CUBE_MAP_POSITIVE_X ? layer + GL.TEXTURE_CUBE_MAP_POSITIVE_X : layer;
@@ -256,7 +259,7 @@ function mapIndexToCubeMapFace(layer) {
256
259
 
257
260
  // Helper METHODS
258
261
  // Get a string describing the framebuffer error if installed
259
- function _getFrameBufferStatus(status) {
262
+ function _getFrameBufferStatus(status: GL) {
260
263
  switch (status) {
261
264
  case GL.FRAMEBUFFER_COMPLETE:
262
265
  return 'success';
@@ -6,9 +6,10 @@ export default class WEBGLRenderPass extends RenderPass {
6
6
 
7
7
  constructor(device: WebGLDevice, props: RenderPassProps) {
8
8
  super(device, props);
9
+ this.device = device;
9
10
  }
10
11
 
11
- endPass(): void {}
12
+ end(): void {}
12
13
 
13
14
  pushDebugGroup(groupLabel: string): void {}
14
15
  popDebugGroup(): void {}