@luma.gl/webgl 8.6.0-alpha.1 → 8.6.0-alpha.5

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 (701) hide show
  1. package/LICENSE +8 -1
  2. package/dist/_deprecated/context-api.d.ts +85 -0
  3. package/dist/_deprecated/context-api.d.ts.map +1 -0
  4. package/dist/_deprecated/context-api.js +76 -0
  5. package/dist/_deprecated/context-api.js.map +1 -0
  6. package/dist/{features/webgl-features-table.d.ts → _deprecated/features.d.ts} +4 -7
  7. package/dist/_deprecated/features.d.ts.map +1 -0
  8. package/dist/_deprecated/features.js +111 -0
  9. package/dist/_deprecated/features.js.map +1 -0
  10. package/dist/adapter/converters/set-device-parameters.d.ts +5 -0
  11. package/dist/adapter/converters/set-device-parameters.d.ts.map +1 -0
  12. package/dist/adapter/converters/set-device-parameters.js +124 -0
  13. package/dist/adapter/converters/set-device-parameters.js.map +1 -0
  14. package/dist/adapter/converters/webgpu-texture-formats.d.ts +281 -0
  15. package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +1 -0
  16. package/dist/adapter/converters/webgpu-texture-formats.js +285 -0
  17. package/dist/adapter/converters/webgpu-texture-formats.js.map +1 -0
  18. package/dist/adapter/device-helpers/device-features.d.ts +12 -0
  19. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -0
  20. package/dist/adapter/device-helpers/device-features.js +123 -0
  21. package/dist/adapter/device-helpers/device-features.js.map +1 -0
  22. package/dist/adapter/device-helpers/device-limits.d.ts +51 -0
  23. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -0
  24. package/dist/adapter/device-helpers/device-limits.js +90 -0
  25. package/dist/adapter/device-helpers/device-limits.js.map +1 -0
  26. package/dist/adapter/device-helpers/get-device-info.d.ts +4 -0
  27. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -0
  28. package/dist/adapter/device-helpers/get-device-info.js +44 -0
  29. package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
  30. package/dist/adapter/device-helpers/is-old-ie.d.ts +2 -0
  31. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -0
  32. package/dist/{esm/features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
  33. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
  34. package/dist/adapter/webgl-device.d.ts +110 -0
  35. package/dist/adapter/webgl-device.d.ts.map +1 -0
  36. package/dist/adapter/webgl-device.js +207 -0
  37. package/dist/adapter/webgl-device.js.map +1 -0
  38. package/dist/adapter/webgl-shader.d.ts +18 -0
  39. package/dist/adapter/webgl-shader.d.ts.map +1 -0
  40. package/dist/adapter/webgl-shader.js +82 -0
  41. package/dist/adapter/webgl-shader.js.map +1 -0
  42. package/dist/classes/accessor.js +2 -2
  43. package/dist/classes/accessor.js.map +1 -1
  44. package/dist/classes/accessor.ts.disabled +1 -1
  45. package/dist/classes/clear.d.ts +3 -2
  46. package/dist/classes/clear.d.ts.map +1 -1
  47. package/dist/classes/clear.js +7 -4
  48. package/dist/classes/clear.js.map +1 -1
  49. package/dist/classes/copy-and-blit.d.ts +18 -1
  50. package/dist/classes/copy-and-blit.d.ts.map +1 -1
  51. package/dist/classes/copy-and-blit.js +30 -25
  52. package/dist/classes/copy-and-blit.js.map +1 -1
  53. package/dist/classes/framebuffer.d.ts +10 -1
  54. package/dist/classes/framebuffer.d.ts.map +1 -1
  55. package/dist/classes/framebuffer.js +15 -15
  56. package/dist/classes/framebuffer.js.map +1 -1
  57. package/dist/classes/program-configuration.d.ts +14 -17
  58. package/dist/classes/program-configuration.d.ts.map +1 -1
  59. package/dist/classes/program-configuration.js +10 -97
  60. package/dist/classes/program-configuration.js.map +1 -1
  61. package/dist/classes/program.d.ts +25 -20
  62. package/dist/classes/program.d.ts.map +1 -1
  63. package/dist/classes/program.js +39 -28
  64. package/dist/classes/program.js.map +1 -1
  65. package/dist/classes/query.d.ts.map +1 -1
  66. package/dist/classes/query.js +6 -5
  67. package/dist/classes/query.js.map +1 -1
  68. package/dist/classes/renderbuffer-formats.js +1 -1
  69. package/dist/classes/renderbuffer-formats.js.map +1 -1
  70. package/dist/classes/renderbuffer.d.ts.map +1 -1
  71. package/dist/classes/renderbuffer.js +4 -3
  72. package/dist/classes/renderbuffer.js.map +1 -1
  73. package/dist/classes/{webgl-shader.d.ts → shader.d.ts} +4 -13
  74. package/dist/classes/shader.d.ts.map +1 -0
  75. package/dist/classes/{webgl-shader.js → shader.js} +7 -79
  76. package/dist/classes/shader.js.map +1 -0
  77. package/dist/classes/texture-2d.d.ts +4 -3
  78. package/dist/classes/texture-2d.d.ts.map +1 -1
  79. package/dist/classes/texture-2d.js +5 -8
  80. package/dist/classes/texture-2d.js.map +1 -1
  81. package/dist/classes/texture-3d.d.ts +3 -2
  82. package/dist/classes/texture-3d.d.ts.map +1 -1
  83. package/dist/classes/texture-3d.js +15 -6
  84. package/dist/classes/texture-3d.js.map +1 -1
  85. package/dist/classes/texture-cube.d.ts +2 -1
  86. package/dist/classes/texture-cube.d.ts.map +1 -1
  87. package/dist/classes/texture-cube.js +3 -4
  88. package/dist/classes/texture-cube.js.map +1 -1
  89. package/dist/classes/texture-formats.js +1 -1
  90. package/dist/classes/texture-formats.js.map +1 -1
  91. package/dist/classes/texture.d.ts +14 -9
  92. package/dist/classes/texture.d.ts.map +1 -1
  93. package/dist/classes/texture.js +19 -18
  94. package/dist/classes/texture.js.map +1 -1
  95. package/dist/classes/transform-feedback.d.ts.map +1 -1
  96. package/dist/classes/transform-feedback.js +5 -4
  97. package/dist/classes/transform-feedback.js.map +1 -1
  98. package/dist/classes/uniform-buffer-layout.js +1 -1
  99. package/dist/classes/uniform-buffer-layout.js.map +1 -1
  100. package/dist/classes/uniforms.d.ts +0 -1
  101. package/dist/classes/uniforms.d.ts.map +1 -1
  102. package/dist/classes/uniforms.js +1 -2
  103. package/dist/classes/uniforms.js.map +1 -1
  104. package/dist/classes/vertex-array-object.d.ts +7 -6
  105. package/dist/classes/vertex-array-object.d.ts.map +1 -1
  106. package/dist/classes/vertex-array-object.js +11 -12
  107. package/dist/classes/vertex-array-object.js.map +1 -1
  108. package/dist/classes/vertex-array.d.ts +14 -14
  109. package/dist/classes/vertex-array.d.ts.map +1 -1
  110. package/dist/classes/vertex-array.js +3 -4
  111. package/dist/classes/vertex-array.js.map +1 -1
  112. package/dist/classes/webgl-buffer.d.ts +2 -0
  113. package/dist/classes/webgl-buffer.d.ts.map +1 -1
  114. package/dist/classes/webgl-buffer.js +8 -5
  115. package/dist/classes/webgl-buffer.js.map +1 -1
  116. package/dist/classes/webgl-resource.d.ts +6 -4
  117. package/dist/classes/webgl-resource.d.ts.map +1 -1
  118. package/dist/classes/webgl-resource.js +12 -8
  119. package/dist/classes/webgl-resource.js.map +1 -1
  120. package/dist/context/context/context-state.d.ts +18 -0
  121. package/dist/context/context/context-state.d.ts.map +1 -0
  122. package/dist/context/context/context-state.js +26 -0
  123. package/dist/context/context/context-state.js.map +1 -0
  124. package/dist/context/context/create-context.d.ts +40 -0
  125. package/dist/context/context/create-context.d.ts.map +1 -0
  126. package/dist/context/context/create-context.js +37 -0
  127. package/dist/context/context/create-context.js.map +1 -0
  128. package/dist/context/context/device-pixels.d.ts +25 -0
  129. package/dist/context/context/device-pixels.d.ts.map +1 -0
  130. package/dist/context/context/device-pixels.js +98 -0
  131. package/dist/context/context/device-pixels.js.map +1 -0
  132. package/dist/context/context/get-canvas.d.ts +13 -0
  133. package/dist/context/context/get-canvas.d.ts.map +1 -0
  134. package/dist/context/context/get-canvas.js +31 -0
  135. package/dist/context/context/get-canvas.js.map +1 -0
  136. package/dist/context/context/resize-context.d.ts +20 -0
  137. package/dist/context/context/resize-context.d.ts.map +1 -0
  138. package/dist/context/context/resize-context.js +15 -0
  139. package/dist/context/context/resize-context.js.map +1 -0
  140. package/dist/context/context/webgl-checks.d.ts +13 -0
  141. package/dist/context/context/webgl-checks.d.ts.map +1 -0
  142. package/dist/context/context/webgl-checks.js +34 -0
  143. package/dist/context/context/webgl-checks.js.map +1 -0
  144. package/dist/context/parameters/unified-parameter-api.d.ts +31 -0
  145. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
  146. package/dist/context/parameters/unified-parameter-api.js +65 -0
  147. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  148. package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
  149. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
  150. package/dist/context/parameters/webgl-parameter-tables.js +445 -0
  151. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  152. package/dist/context/parameters/webgl-parameters.d.ts +144 -0
  153. package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
  154. package/dist/context/parameters/webgl-parameters.js +2 -0
  155. package/dist/context/parameters/webgl-parameters.js.map +1 -0
  156. package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
  157. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
  158. package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
  159. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  160. package/dist/context/polyfill/polyfill-context.d.ts +5 -0
  161. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
  162. package/dist/context/polyfill/polyfill-context.js +91 -0
  163. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  164. package/dist/context/polyfill/polyfill-table.d.ts +48 -0
  165. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
  166. package/dist/context/polyfill/polyfill-table.js +160 -0
  167. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  168. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
  169. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
  170. package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
  171. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  172. package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
  173. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
  174. package/dist/context/state-tracker/deep-array-equal.js +21 -0
  175. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  176. package/dist/context/state-tracker/track-context-state.d.ts +22 -0
  177. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
  178. package/dist/context/state-tracker/track-context-state.js +169 -0
  179. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  180. package/dist/context/state-tracker/with-parameters.d.ts +13 -0
  181. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
  182. package/dist/context/state-tracker/with-parameters.js +36 -0
  183. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  184. package/dist/debug/debug-uniforms.js +1 -1
  185. package/dist/debug/debug-uniforms.js.map +1 -1
  186. package/dist/debug/debug-vertex-array.js +2 -2
  187. package/dist/debug/debug-vertex-array.js.map +1 -1
  188. package/dist/es5/_deprecated/context-api.js +116 -0
  189. package/dist/es5/_deprecated/context-api.js.map +1 -0
  190. package/dist/es5/_deprecated/features.js +118 -0
  191. package/dist/es5/_deprecated/features.js.map +1 -0
  192. package/dist/es5/adapter/converters/set-device-parameters.js +138 -0
  193. package/dist/es5/adapter/converters/set-device-parameters.js.map +1 -0
  194. package/dist/es5/adapter/converters/webgpu-texture-formats.js +296 -0
  195. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +1 -0
  196. package/dist/es5/adapter/device-helpers/device-features.js +152 -0
  197. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -0
  198. package/dist/es5/adapter/device-helpers/device-limits.js +64 -0
  199. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -0
  200. package/dist/es5/adapter/device-helpers/get-device-info.js +55 -0
  201. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -0
  202. package/dist/es5/adapter/device-helpers/is-old-ie.js +16 -0
  203. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -0
  204. package/dist/es5/adapter/webgl-device.js +279 -0
  205. package/dist/es5/adapter/webgl-device.js.map +1 -0
  206. package/dist/es5/adapter/webgl-shader.js +155 -0
  207. package/dist/es5/adapter/webgl-shader.js.map +1 -0
  208. package/dist/es5/bundle.js +1 -1
  209. package/dist/es5/bundle.js.map +1 -1
  210. package/dist/es5/classes/accessor.js +104 -74
  211. package/dist/es5/classes/accessor.js.map +1 -1
  212. package/dist/es5/classes/accessor.ts.disabled +1 -1
  213. package/dist/es5/classes/clear.js +55 -34
  214. package/dist/es5/classes/clear.js.map +1 -1
  215. package/dist/es5/classes/copy-and-blit.js +175 -156
  216. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  217. package/dist/es5/classes/framebuffer.js +647 -518
  218. package/dist/es5/classes/framebuffer.js.map +1 -1
  219. package/dist/es5/classes/program-configuration.js +78 -128
  220. package/dist/es5/classes/program-configuration.js.map +1 -1
  221. package/dist/es5/classes/program.js +379 -292
  222. package/dist/es5/classes/program.js.map +1 -1
  223. package/dist/es5/classes/query.js +172 -107
  224. package/dist/es5/classes/query.js.map +1 -1
  225. package/dist/es5/classes/renderbuffer-formats.js +126 -164
  226. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  227. package/dist/es5/classes/renderbuffer.js +151 -98
  228. package/dist/es5/classes/renderbuffer.js.map +1 -1
  229. package/dist/es5/classes/shader.js +195 -0
  230. package/dist/es5/classes/shader.js.map +1 -0
  231. package/dist/es5/classes/texture-2d.js +44 -17
  232. package/dist/es5/classes/texture-2d.js.map +1 -1
  233. package/dist/es5/classes/texture-3d.js +107 -48
  234. package/dist/es5/classes/texture-3d.js.map +1 -1
  235. package/dist/es5/classes/texture-cube.js +169 -110
  236. package/dist/es5/classes/texture-cube.js.map +1 -1
  237. package/dist/es5/classes/texture-formats.js +42 -71
  238. package/dist/es5/classes/texture-formats.js.map +1 -1
  239. package/dist/es5/classes/texture.js +780 -665
  240. package/dist/es5/classes/texture.js.map +1 -1
  241. package/dist/es5/classes/transform-feedback.js +206 -150
  242. package/dist/es5/classes/transform-feedback.js.map +1 -1
  243. package/dist/es5/classes/uniform-buffer-layout.js +103 -89
  244. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  245. package/dist/es5/classes/uniforms.js +39 -80
  246. package/dist/es5/classes/uniforms.js.map +1 -1
  247. package/dist/es5/classes/vertex-array-object.js +268 -209
  248. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  249. package/dist/es5/classes/vertex-array.js +348 -303
  250. package/dist/es5/classes/vertex-array.js.map +1 -1
  251. package/dist/es5/classes/webgl-buffer.js +374 -303
  252. package/dist/es5/classes/webgl-buffer.js.map +1 -1
  253. package/dist/es5/classes/webgl-resource.js +231 -161
  254. package/dist/es5/classes/webgl-resource.js.map +1 -1
  255. package/dist/es5/context/context/context-state.js +31 -0
  256. package/dist/es5/context/context/context-state.js.map +1 -0
  257. package/dist/es5/context/context/create-context.js +57 -0
  258. package/dist/es5/context/context/create-context.js.map +1 -0
  259. package/dist/es5/context/context/device-pixels.js +115 -0
  260. package/dist/es5/context/context/device-pixels.js.map +1 -0
  261. package/dist/es5/context/context/get-canvas.js +40 -0
  262. package/dist/es5/context/context/get-canvas.js.map +1 -0
  263. package/dist/es5/context/context/resize-context.js +23 -0
  264. package/dist/es5/context/context/resize-context.js.map +1 -0
  265. package/dist/es5/context/context/webgl-checks.js +54 -0
  266. package/dist/es5/context/context/webgl-checks.js.map +1 -0
  267. package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
  268. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
  269. package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
  270. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
  271. package/dist/es5/context/parameters/webgl-parameters.js +6 -0
  272. package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
  273. package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
  274. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
  275. package/dist/es5/context/polyfill/polyfill-context.js +134 -0
  276. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
  277. package/dist/es5/context/polyfill/polyfill-table.js +166 -0
  278. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
  279. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
  280. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  281. package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
  282. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
  283. package/dist/es5/context/state-tracker/track-context-state.js +196 -0
  284. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
  285. package/dist/es5/context/state-tracker/with-parameters.js +44 -0
  286. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
  287. package/dist/es5/debug/debug-program-configuration.js +48 -20
  288. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  289. package/dist/es5/debug/debug-uniforms.js +110 -70
  290. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  291. package/dist/es5/debug/debug-vertex-array.js +49 -54
  292. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  293. package/dist/es5/helpers/get-program-bindings.js +274 -0
  294. package/dist/es5/helpers/get-program-bindings.js.map +1 -0
  295. package/dist/es5/helpers/program-bindings.js +2 -0
  296. package/dist/es5/helpers/program-bindings.js.map +1 -0
  297. package/dist/es5/index.js +268 -192
  298. package/dist/es5/index.js.map +1 -1
  299. package/dist/es5/init.js +18 -14
  300. package/dist/es5/init.js.map +1 -1
  301. package/dist/es5/types/accessor.d.ts +29 -0
  302. package/dist/es5/webgl-utils/attribute-utils.js +74 -87
  303. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  304. package/dist/es5/webgl-utils/constants-to-keys.js +7 -7
  305. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  306. package/dist/es5/webgl-utils/format-utils.js +4 -4
  307. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  308. package/dist/es5/webgl-utils/get-error.js +18 -18
  309. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  310. package/dist/es5/webgl-utils/index.js +10 -10
  311. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +53 -25
  312. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -1
  313. package/dist/es5/webgl-utils/texture-utils.js +32 -36
  314. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  315. package/dist/es5/webgl-utils/typed-array-utils.js +33 -32
  316. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  317. package/dist/esm/_deprecated/context-api.js +76 -0
  318. package/dist/esm/_deprecated/context-api.js.map +1 -0
  319. package/dist/esm/_deprecated/features.js +111 -0
  320. package/dist/esm/_deprecated/features.js.map +1 -0
  321. package/dist/esm/adapter/converters/set-device-parameters.js +124 -0
  322. package/dist/esm/adapter/converters/set-device-parameters.js.map +1 -0
  323. package/dist/esm/adapter/converters/webgpu-texture-formats.js +285 -0
  324. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +1 -0
  325. package/dist/esm/adapter/device-helpers/device-features.js +123 -0
  326. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -0
  327. package/dist/esm/adapter/device-helpers/device-limits.js +90 -0
  328. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -0
  329. package/dist/esm/adapter/device-helpers/get-device-info.js +44 -0
  330. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -0
  331. package/dist/{features/check-old-ie.js → esm/adapter/device-helpers/is-old-ie.js} +3 -3
  332. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -0
  333. package/dist/esm/adapter/webgl-device.js +207 -0
  334. package/dist/esm/adapter/webgl-device.js.map +1 -0
  335. package/dist/esm/adapter/webgl-shader.js +82 -0
  336. package/dist/esm/adapter/webgl-shader.js.map +1 -0
  337. package/dist/esm/classes/accessor.js +2 -2
  338. package/dist/esm/classes/accessor.js.map +1 -1
  339. package/dist/esm/classes/accessor.ts.disabled +1 -1
  340. package/dist/esm/classes/clear.js +7 -4
  341. package/dist/esm/classes/clear.js.map +1 -1
  342. package/dist/esm/classes/copy-and-blit.js +30 -25
  343. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  344. package/dist/esm/classes/framebuffer.js +15 -15
  345. package/dist/esm/classes/framebuffer.js.map +1 -1
  346. package/dist/esm/classes/program-configuration.js +10 -97
  347. package/dist/esm/classes/program-configuration.js.map +1 -1
  348. package/dist/esm/classes/program.js +39 -28
  349. package/dist/esm/classes/program.js.map +1 -1
  350. package/dist/esm/classes/query.js +6 -5
  351. package/dist/esm/classes/query.js.map +1 -1
  352. package/dist/esm/classes/renderbuffer-formats.js +1 -1
  353. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  354. package/dist/esm/classes/renderbuffer.js +4 -3
  355. package/dist/esm/classes/renderbuffer.js.map +1 -1
  356. package/dist/esm/classes/{webgl-shader.js → shader.js} +7 -79
  357. package/dist/esm/classes/shader.js.map +1 -0
  358. package/dist/esm/classes/texture-2d.js +5 -8
  359. package/dist/esm/classes/texture-2d.js.map +1 -1
  360. package/dist/esm/classes/texture-3d.js +15 -6
  361. package/dist/esm/classes/texture-3d.js.map +1 -1
  362. package/dist/esm/classes/texture-cube.js +3 -4
  363. package/dist/esm/classes/texture-cube.js.map +1 -1
  364. package/dist/esm/classes/texture-formats.js +1 -1
  365. package/dist/esm/classes/texture-formats.js.map +1 -1
  366. package/dist/esm/classes/texture.js +19 -18
  367. package/dist/esm/classes/texture.js.map +1 -1
  368. package/dist/esm/classes/transform-feedback.js +5 -4
  369. package/dist/esm/classes/transform-feedback.js.map +1 -1
  370. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  371. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  372. package/dist/esm/classes/uniforms.js +1 -2
  373. package/dist/esm/classes/uniforms.js.map +1 -1
  374. package/dist/esm/classes/vertex-array-object.js +11 -12
  375. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  376. package/dist/esm/classes/vertex-array.js +3 -4
  377. package/dist/esm/classes/vertex-array.js.map +1 -1
  378. package/dist/esm/classes/webgl-buffer.js +8 -5
  379. package/dist/esm/classes/webgl-buffer.js.map +1 -1
  380. package/dist/esm/classes/webgl-resource.js +12 -8
  381. package/dist/esm/classes/webgl-resource.js.map +1 -1
  382. package/dist/esm/context/context/context-state.js +26 -0
  383. package/dist/esm/context/context/context-state.js.map +1 -0
  384. package/dist/esm/context/context/create-context.js +37 -0
  385. package/dist/esm/context/context/create-context.js.map +1 -0
  386. package/dist/esm/context/context/device-pixels.js +98 -0
  387. package/dist/esm/context/context/device-pixels.js.map +1 -0
  388. package/dist/esm/context/context/get-canvas.js +31 -0
  389. package/dist/esm/context/context/get-canvas.js.map +1 -0
  390. package/dist/esm/context/context/resize-context.js +15 -0
  391. package/dist/esm/context/context/resize-context.js.map +1 -0
  392. package/dist/esm/context/context/webgl-checks.js +34 -0
  393. package/dist/esm/context/context/webgl-checks.js.map +1 -0
  394. package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
  395. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
  396. package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
  397. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
  398. package/dist/esm/context/parameters/webgl-parameters.js +2 -0
  399. package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
  400. package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
  401. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
  402. package/dist/esm/context/polyfill/polyfill-context.js +91 -0
  403. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
  404. package/dist/esm/context/polyfill/polyfill-table.js +160 -0
  405. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
  406. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
  407. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  408. package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
  409. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
  410. package/dist/esm/context/state-tracker/track-context-state.js +169 -0
  411. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
  412. package/dist/esm/context/state-tracker/with-parameters.js +36 -0
  413. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
  414. package/dist/esm/debug/debug-uniforms.js +1 -1
  415. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  416. package/dist/esm/debug/debug-vertex-array.js +2 -2
  417. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  418. package/dist/esm/helpers/get-program-bindings.js +228 -0
  419. package/dist/esm/helpers/get-program-bindings.js.map +1 -0
  420. package/dist/esm/helpers/program-bindings.js +2 -0
  421. package/dist/esm/helpers/program-bindings.js.map +1 -0
  422. package/dist/esm/index.js +26 -20
  423. package/dist/esm/index.js.map +1 -1
  424. package/dist/esm/init.js +11 -8
  425. package/dist/esm/init.js.map +1 -1
  426. package/dist/esm/types/accessor.d.ts +29 -0
  427. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  428. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  429. package/dist/esm/webgl-utils/constants-to-keys.js +1 -1
  430. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  431. package/dist/esm/webgl-utils/format-utils.js +1 -1
  432. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  433. package/dist/esm/webgl-utils/texture-utils.js +2 -2
  434. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  435. package/dist/esm/webgl-utils/typed-array-utils.js +22 -18
  436. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  437. package/dist/helpers/get-program-bindings.d.ts +8 -0
  438. package/dist/helpers/get-program-bindings.d.ts.map +1 -0
  439. package/dist/helpers/get-program-bindings.js +228 -0
  440. package/dist/helpers/get-program-bindings.js.map +1 -0
  441. package/dist/helpers/program-bindings.d.ts +41 -0
  442. package/dist/helpers/program-bindings.d.ts.map +1 -0
  443. package/dist/helpers/program-bindings.js +2 -0
  444. package/dist/helpers/program-bindings.js.map +1 -0
  445. package/dist/index.d.ts +41 -20
  446. package/dist/index.d.ts.map +1 -1
  447. package/dist/index.js +26 -20
  448. package/dist/index.js.map +1 -1
  449. package/dist/init.d.ts.map +1 -1
  450. package/dist/init.js +11 -8
  451. package/dist/init.js.map +1 -1
  452. package/dist/types/accessor.d.ts +29 -0
  453. package/dist/webgl-utils/attribute-utils.d.ts +1 -1
  454. package/dist/webgl-utils/attribute-utils.js +1 -1
  455. package/dist/webgl-utils/attribute-utils.js.map +1 -1
  456. package/dist/webgl-utils/constants-to-keys.js +1 -1
  457. package/dist/webgl-utils/constants-to-keys.js.map +1 -1
  458. package/dist/webgl-utils/format-utils.d.ts +2 -2
  459. package/dist/webgl-utils/format-utils.js +1 -1
  460. package/dist/webgl-utils/format-utils.js.map +1 -1
  461. package/dist/webgl-utils/texture-utils.d.ts +12 -8
  462. package/dist/webgl-utils/texture-utils.d.ts.map +1 -1
  463. package/dist/webgl-utils/texture-utils.js +2 -2
  464. package/dist/webgl-utils/texture-utils.js.map +1 -1
  465. package/dist/webgl-utils/typed-array-utils.d.ts +39 -32
  466. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -1
  467. package/dist/webgl-utils/typed-array-utils.js +22 -18
  468. package/dist/webgl-utils/typed-array-utils.js.map +1 -1
  469. package/package.json +5 -6
  470. package/src/.DS_Store +0 -0
  471. package/src/_deprecated/context-api.ts +146 -0
  472. package/src/_deprecated/features.ts +159 -0
  473. package/src/adapter/converters/set-device-parameters.ts +182 -0
  474. package/src/adapter/converters/webgpu-texture-formats.ts +167 -0
  475. package/src/adapter/device-helpers/device-features.ts +227 -0
  476. package/src/adapter/device-helpers/device-limits.ts +150 -0
  477. package/src/adapter/device-helpers/get-device-info.ts +49 -0
  478. package/src/{features/check-old-ie.ts → adapter/device-helpers/is-old-ie.ts} +3 -3
  479. package/src/adapter/webgl-device.ts +399 -0
  480. package/src/adapter/webgl-shader.ts +84 -0
  481. package/src/classes/accessor.js +2 -2
  482. package/src/classes/accessor.ts.disabled +1 -1
  483. package/src/classes/clear.ts +9 -4
  484. package/src/classes/copy-and-blit.ts +49 -52
  485. package/src/classes/framebuffer.ts +38 -35
  486. package/src/classes/program-configuration.ts +28 -81
  487. package/src/classes/program.ts +89 -75
  488. package/src/classes/query.ts +6 -6
  489. package/src/classes/renderbuffer-formats.ts +1 -1
  490. package/src/classes/renderbuffer.ts +5 -4
  491. package/src/classes/{webgl-shader.ts → shader.ts} +7 -78
  492. package/src/classes/texture-2d.ts +6 -11
  493. package/src/classes/texture-3d.ts +16 -11
  494. package/src/classes/texture-cube.ts +7 -7
  495. package/src/classes/texture-formats.ts +1 -1
  496. package/src/classes/texture.ts +39 -40
  497. package/src/classes/transform-feedback.ts +14 -13
  498. package/src/classes/uniform-buffer-layout.ts +1 -1
  499. package/src/classes/uniforms.ts +4 -10
  500. package/src/classes/vertex-array-object.ts +17 -20
  501. package/src/classes/vertex-array.ts +16 -11
  502. package/src/classes/webgl-buffer.ts +7 -5
  503. package/src/classes/webgl-resource.ts +20 -18
  504. package/src/context/context/context-state.ts +39 -0
  505. package/src/context/context/create-context.ts +83 -0
  506. package/src/context/context/device-pixels.ts +147 -0
  507. package/src/context/context/get-canvas.ts +37 -0
  508. package/src/context/context/resize-context.ts +37 -0
  509. package/src/context/context/webgl-checks.ts +49 -0
  510. package/src/context/parameters/unified-parameter-api.ts +128 -0
  511. package/src/context/parameters/webgl-parameter-tables.ts +625 -0
  512. package/src/context/parameters/webgl-parameters.ts +197 -0
  513. package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
  514. package/src/context/polyfill/polyfill-context.ts +98 -0
  515. package/src/context/polyfill/polyfill-table.ts +162 -0
  516. package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
  517. package/src/context/state-tracker/deep-array-equal.ts +20 -0
  518. package/src/context/state-tracker/track-context-state.ts +250 -0
  519. package/src/context/state-tracker/with-parameters.ts +50 -0
  520. package/src/debug/debug-uniforms.ts +1 -1
  521. package/src/debug/debug-vertex-array.ts +2 -4
  522. package/src/helpers/get-program-bindings.ts +244 -0
  523. package/src/helpers/program-bindings.ts +46 -0
  524. package/src/index.ts +94 -23
  525. package/src/init.ts +12 -9
  526. package/src/types/accessor.d.ts +29 -0
  527. package/src/types.ts +1 -1
  528. package/src/webgl-utils/attribute-utils.ts +1 -1
  529. package/src/webgl-utils/constants-to-keys.ts +1 -1
  530. package/src/webgl-utils/format-utils.ts +1 -1
  531. package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +13 -10
  532. package/src/webgl-utils/{typed-array-utils.js → typed-array-utils.ts} +59 -16
  533. package/dist/classes/webgl-shader.d.ts.map +0 -1
  534. package/dist/classes/webgl-shader.js.map +0 -1
  535. package/dist/context/gl-context.d.ts +0 -15
  536. package/dist/context/gl-context.d.ts.map +0 -1
  537. package/dist/context/gl-context.js +0 -32
  538. package/dist/context/gl-context.js.map +0 -1
  539. package/dist/context/luma-context-data.d.ts +0 -31
  540. package/dist/context/luma-context-data.d.ts.map +0 -1
  541. package/dist/context/luma-context-data.js +0 -5
  542. package/dist/context/luma-context-data.js.map +0 -1
  543. package/dist/es5/classes/webgl-shader.js +0 -213
  544. package/dist/es5/classes/webgl-shader.js.map +0 -1
  545. package/dist/es5/context/gl-context.js +0 -46
  546. package/dist/es5/context/gl-context.js.map +0 -1
  547. package/dist/es5/context/luma-context-data.js +0 -12
  548. package/dist/es5/context/luma-context-data.js.map +0 -1
  549. package/dist/es5/features/check-glsl-extension.js +0 -40
  550. package/dist/es5/features/check-glsl-extension.js.map +0 -1
  551. package/dist/es5/features/check-old-ie.js +0 -15
  552. package/dist/es5/features/check-old-ie.js.map +0 -1
  553. package/dist/es5/features/features.js +0 -85
  554. package/dist/es5/features/features.js.map +0 -1
  555. package/dist/es5/features/index.js +0 -64
  556. package/dist/es5/features/index.js.map +0 -1
  557. package/dist/es5/features/limits.js +0 -72
  558. package/dist/es5/features/limits.js.map +0 -1
  559. package/dist/es5/features/webgl-features-table.js +0 -84
  560. package/dist/es5/features/webgl-features-table.js.map +0 -1
  561. package/dist/es5/features/webgl-limits-table.js +0 -172
  562. package/dist/es5/features/webgl-limits-table.js.map +0 -1
  563. package/dist/es5/utils/array-utils-flat.js +0 -50
  564. package/dist/es5/utils/array-utils-flat.js.map +0 -1
  565. package/dist/es5/utils/assert.js +0 -13
  566. package/dist/es5/utils/assert.js.map +0 -1
  567. package/dist/es5/utils/check-props.js +0 -50
  568. package/dist/es5/utils/check-props.js.map +0 -1
  569. package/dist/es5/utils/format-value.js +0 -57
  570. package/dist/es5/utils/format-value.js.map +0 -1
  571. package/dist/es5/utils/index.js +0 -68
  572. package/dist/es5/utils/index.js.map +0 -1
  573. package/dist/es5/utils/is-old-ie.js +0 -13
  574. package/dist/es5/utils/is-old-ie.js.map +0 -1
  575. package/dist/es5/utils/load-file.js +0 -43
  576. package/dist/es5/utils/load-file.js.map +0 -1
  577. package/dist/es5/utils/stub-methods.js +0 -25
  578. package/dist/es5/utils/stub-methods.js.map +0 -1
  579. package/dist/es5/utils/utils.js +0 -31
  580. package/dist/es5/utils/utils.js.map +0 -1
  581. package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
  582. package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
  583. package/dist/esm/classes/webgl-shader.js.map +0 -1
  584. package/dist/esm/context/gl-context.js +0 -32
  585. package/dist/esm/context/gl-context.js.map +0 -1
  586. package/dist/esm/context/luma-context-data.js +0 -5
  587. package/dist/esm/context/luma-context-data.js.map +0 -1
  588. package/dist/esm/features/check-glsl-extension.js +0 -27
  589. package/dist/esm/features/check-glsl-extension.js.map +0 -1
  590. package/dist/esm/features/check-old-ie.js.map +0 -1
  591. package/dist/esm/features/features.js +0 -67
  592. package/dist/esm/features/features.js.map +0 -1
  593. package/dist/esm/features/index.js +0 -5
  594. package/dist/esm/features/index.js.map +0 -1
  595. package/dist/esm/features/limits.js +0 -55
  596. package/dist/esm/features/limits.js.map +0 -1
  597. package/dist/esm/features/webgl-features-table.js +0 -71
  598. package/dist/esm/features/webgl-features-table.js.map +0 -1
  599. package/dist/esm/features/webgl-limits-table.js +0 -161
  600. package/dist/esm/features/webgl-limits-table.js.map +0 -1
  601. package/dist/esm/utils/array-utils-flat.js +0 -39
  602. package/dist/esm/utils/array-utils-flat.js.map +0 -1
  603. package/dist/esm/utils/assert.js +0 -6
  604. package/dist/esm/utils/assert.js.map +0 -1
  605. package/dist/esm/utils/check-props.js +0 -38
  606. package/dist/esm/utils/check-props.js.map +0 -1
  607. package/dist/esm/utils/format-value.js +0 -50
  608. package/dist/esm/utils/format-value.js.map +0 -1
  609. package/dist/esm/utils/index.js +0 -7
  610. package/dist/esm/utils/index.js.map +0 -1
  611. package/dist/esm/utils/is-old-ie.js +0 -5
  612. package/dist/esm/utils/is-old-ie.js.map +0 -1
  613. package/dist/esm/utils/load-file.js +0 -30
  614. package/dist/esm/utils/load-file.js.map +0 -1
  615. package/dist/esm/utils/stub-methods.js +0 -16
  616. package/dist/esm/utils/stub-methods.js.map +0 -1
  617. package/dist/esm/utils/utils.js +0 -20
  618. package/dist/esm/utils/utils.js.map +0 -1
  619. package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
  620. package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
  621. package/dist/features/check-glsl-extension.d.ts +0 -2
  622. package/dist/features/check-glsl-extension.d.ts.map +0 -1
  623. package/dist/features/check-glsl-extension.js +0 -27
  624. package/dist/features/check-glsl-extension.js.map +0 -1
  625. package/dist/features/check-old-ie.d.ts +0 -2
  626. package/dist/features/check-old-ie.d.ts.map +0 -1
  627. package/dist/features/check-old-ie.js.map +0 -1
  628. package/dist/features/features.d.ts +0 -6
  629. package/dist/features/features.d.ts.map +0 -1
  630. package/dist/features/features.js +0 -67
  631. package/dist/features/features.js.map +0 -1
  632. package/dist/features/index.d.ts +0 -5
  633. package/dist/features/index.d.ts.map +0 -1
  634. package/dist/features/index.js +0 -5
  635. package/dist/features/index.js.map +0 -1
  636. package/dist/features/limits.d.ts +0 -28
  637. package/dist/features/limits.d.ts.map +0 -1
  638. package/dist/features/limits.js +0 -55
  639. package/dist/features/limits.js.map +0 -1
  640. package/dist/features/webgl-features-table.d.ts.map +0 -1
  641. package/dist/features/webgl-features-table.js +0 -71
  642. package/dist/features/webgl-features-table.js.map +0 -1
  643. package/dist/features/webgl-limits-table.d.ts +0 -161
  644. package/dist/features/webgl-limits-table.d.ts.map +0 -1
  645. package/dist/features/webgl-limits-table.js +0 -161
  646. package/dist/features/webgl-limits-table.js.map +0 -1
  647. package/dist/utils/array-utils-flat.d.ts +0 -9
  648. package/dist/utils/array-utils-flat.d.ts.map +0 -1
  649. package/dist/utils/array-utils-flat.js +0 -39
  650. package/dist/utils/array-utils-flat.js.map +0 -1
  651. package/dist/utils/assert.d.ts +0 -2
  652. package/dist/utils/assert.d.ts.map +0 -1
  653. package/dist/utils/assert.js +0 -6
  654. package/dist/utils/assert.js.map +0 -1
  655. package/dist/utils/check-props.d.ts +0 -2
  656. package/dist/utils/check-props.d.ts.map +0 -1
  657. package/dist/utils/check-props.js +0 -38
  658. package/dist/utils/check-props.js.map +0 -1
  659. package/dist/utils/format-value.d.ts +0 -5
  660. package/dist/utils/format-value.d.ts.map +0 -1
  661. package/dist/utils/format-value.js +0 -50
  662. package/dist/utils/format-value.js.map +0 -1
  663. package/dist/utils/index.d.ts +0 -7
  664. package/dist/utils/index.d.ts.map +0 -1
  665. package/dist/utils/index.js +0 -7
  666. package/dist/utils/index.js.map +0 -1
  667. package/dist/utils/is-old-ie.d.ts +0 -4
  668. package/dist/utils/is-old-ie.d.ts.map +0 -1
  669. package/dist/utils/is-old-ie.js +0 -5
  670. package/dist/utils/is-old-ie.js.map +0 -1
  671. package/dist/utils/load-file.d.ts +0 -4
  672. package/dist/utils/load-file.d.ts.map +0 -1
  673. package/dist/utils/load-file.js +0 -30
  674. package/dist/utils/load-file.js.map +0 -1
  675. package/dist/utils/stub-methods.d.ts +0 -2
  676. package/dist/utils/stub-methods.d.ts.map +0 -1
  677. package/dist/utils/stub-methods.js +0 -16
  678. package/dist/utils/stub-methods.js.map +0 -1
  679. package/dist/utils/utils.d.ts +0 -15
  680. package/dist/utils/utils.d.ts.map +0 -1
  681. package/dist/utils/utils.js +0 -20
  682. package/dist/utils/utils.js.map +0 -1
  683. package/src/context/gl-context.ts +0 -31
  684. package/src/context/luma-context-data.ts +0 -27
  685. package/src/features/check-glsl-extension.ts +0 -34
  686. package/src/features/features.ts +0 -80
  687. package/src/features/index.ts +0 -5
  688. package/src/features/limits.ts +0 -66
  689. package/src/features/webgl-features-table.ts +0 -104
  690. package/src/features/webgl-limits-table.ts +0 -51
  691. package/src/utils/array-utils-flat.ts +0 -56
  692. package/src/utils/assert.ts +0 -7
  693. package/src/utils/check-props.ts +0 -68
  694. package/src/utils/format-value.ts +0 -37
  695. package/src/utils/index.ts +0 -6
  696. package/src/utils/is-old-ie.ts +0 -6
  697. package/src/utils/load-file.ts +0 -40
  698. package/src/utils/stub-methods.ts +0 -20
  699. package/src/utils/utils.ts +0 -35
  700. package/src/webgl-utils/texture-utils.d.ts +0 -11
  701. package/src/webgl-utils/typed-array-utils.d.ts +0 -36
@@ -1,74 +1,87 @@
1
+ import {log, assert, uid, cast, Shader} from '@luma.gl/api';
1
2
  import GL from '@luma.gl/constants';
2
-
3
+ import WebGLDevice from '../adapter/webgl-device';
3
4
  import WebGLResource, {ResourceProps} from './webgl-resource';
4
5
  import Texture from './texture';
5
6
  import Framebuffer from './framebuffer';
6
7
  import {parseUniformName, getUniformSetter} from './uniforms';
7
- import {VertexShader, FragmentShader} from './webgl-shader';
8
+ import {WEBGLShader} from '../adapter/webgl-shader';
8
9
  import ProgramConfiguration from './program-configuration';
9
10
  import {copyUniform, checkUniformValues} from './uniforms';
10
11
 
11
- import {isWebGL2, assertWebGL2Context, withParameters, log} from '@luma.gl/gltools';
12
- import {getKey} from '../webgl-utils';
12
+ import {isWebGL2, assertWebGL2Context} from '../context/context/webgl-checks';
13
+ import {withParameters} from '../context/state-tracker/with-parameters';
14
+ import {getKey} from '../webgl-utils/constants-to-keys';
13
15
  import {getPrimitiveDrawMode} from '../webgl-utils/attribute-utils';
14
- import {uid, assert} from '../utils';
15
16
 
16
17
  const LOG_PROGRAM_PERF_PRIORITY = 4;
17
18
 
18
19
  const GL_SEPARATE_ATTRIBS = 0x8c8d;
19
20
 
20
21
  export type ProgramProps = ResourceProps & {
21
- hash?;
22
- vs?;
23
- fs?;
24
- varyings?;
22
+ hash?: string;
23
+ vs?: string | Shader;
24
+ fs?: string | Shader;
25
+ varyings?: string[];
25
26
  bufferMode?: number;
26
- }
27
+ };
27
28
 
28
29
  export type ProgramDrawOptions = {
29
- logPriority?: any;
30
- drawMode?: any;
30
+ logPriority?: number;
31
+ drawMode?: number;
31
32
  vertexCount: any;
32
33
  offset?: number;
33
- start?: any;
34
- end?: any;
34
+ start?: number;
35
+ end?: number;
35
36
  isIndexed?: boolean;
36
37
  indexType?: any;
37
38
  instanceCount?: number;
38
39
  isInstanced?: boolean;
39
40
  vertexArray?: any;
40
- transformFeedback?: any;
41
- framebuffer?: any;
41
+ transformFeedback?: any; // TransformFeedback;
42
+ framebuffer?: Framebuffer;
42
43
  parameters?: {};
43
- uniforms?: any;
44
+ uniforms?: Record<string, any>;
44
45
  samplers?: any;
45
46
  };
46
47
 
47
48
  export default class Program extends WebGLResource<ProgramProps> {
48
49
  configuration: ProgramConfiguration;
49
50
  // Experimental flag to avoid deleting Program object while it is cached
50
- _isCached = false;
51
- _textureIndexCounter = 0;
52
- hash: string;; // Used by ProgramManager
53
- vs;
54
- fs;
55
- uniforms: {};
56
- _textureUniforms: {};
57
- varyings: {};
58
- _uniformCount = 0;
59
- _uniformSetters: {};
60
-
61
- constructor(gl: WebGLRenderingContext, props: ProgramProps = {}) {
62
- super(gl, props, {} as any);
63
-
64
-
51
+ hash: string; // Used by ProgramManager
52
+ vs: WEBGLShader;
53
+ fs: WEBGLShader;
54
+ uniforms: Record<string, any>;
55
+ varyings: Record<string, any>;
56
+ _textureUniforms: Record<string, any>;
57
+ _isCached: boolean = false;
58
+ _textureIndexCounter: number = 0;
59
+ _uniformCount: number = 0;
60
+ _uniformSetters: Record<string, Function>;
61
+
62
+ constructor(device: WebGLDevice | WebGLRenderingContext, props: ProgramProps = {}) {
63
+ super(WebGLDevice.attach(device), props, {} as any);
65
64
  this.initialize(props);
66
-
67
65
  Object.seal(this);
68
-
69
66
  this._setId(props.id);
70
67
  }
71
68
 
69
+ destroy(options = {}) {
70
+ if (this._isCached) {
71
+ // This object is cached, do not delete
72
+ return this;
73
+ }
74
+ return super.delete(options);
75
+ }
76
+
77
+ delete(options = {}) {
78
+ if (this._isCached) {
79
+ // This object is cached, do not delete
80
+ return this;
81
+ }
82
+ return super.delete(options);
83
+ }
84
+
72
85
  initialize(props: ProgramProps = {}) {
73
86
  const {hash, vs, fs, varyings, bufferMode = GL_SEPARATE_ATTRIBS} = props;
74
87
 
@@ -76,15 +89,18 @@ export default class Program extends WebGLResource<ProgramProps> {
76
89
 
77
90
  // Create shaders if needed
78
91
  this.vs =
79
- typeof vs === 'string' ? new VertexShader(this.gl, {id: `${props.id}-vs`, source: vs}) : vs;
92
+ typeof vs === 'string'
93
+ ? this.device.createShader({id: `${props.id}-vs`, source: vs, stage: 'vertex'})
94
+ : cast<WEBGLShader>(vs);
80
95
  this.fs =
81
- typeof fs === 'string' ? new FragmentShader(this.gl, {id: `${props.id}-fs`, source: fs}) : fs;
82
- assert(this.vs instanceof VertexShader);
83
- assert(this.fs instanceof FragmentShader);
96
+ typeof fs === 'string'
97
+ ? this.device.createShader({id: `${props.id}-fs`, source: fs, stage: 'fragment'})
98
+ : cast<WEBGLShader>(fs);
99
+ assert(this.vs.stage === 'vertex');
100
+ assert(this.fs.stage === 'fragment');
84
101
 
85
102
  // uniforms
86
103
  this.uniforms = {};
87
-
88
104
  this._textureUniforms = {};
89
105
 
90
106
  // Setup varyings if supplied
@@ -101,14 +117,6 @@ export default class Program extends WebGLResource<ProgramProps> {
101
117
  return this.setProps(props);
102
118
  }
103
119
 
104
- delete(options = {}) {
105
- if (this._isCached) {
106
- // This object is cached, do not delete
107
- return this;
108
- }
109
- return super.delete(options);
110
- }
111
-
112
120
  setProps(props) {
113
121
  if ('uniforms' in props) {
114
122
  this.setUniforms(props.uniforms);
@@ -120,30 +128,30 @@ export default class Program extends WebGLResource<ProgramProps> {
120
128
  // This function unifies those ways into a single call using common parameters with sane defaults
121
129
  draw(options: ProgramDrawOptions): boolean {
122
130
  const {
123
- logPriority, // Probe log priority, enables Model to do more integrated logging
124
-
125
- drawMode = GL.TRIANGLES,
126
- vertexCount,
127
- offset = 0,
128
- start,
129
- end,
130
- isIndexed = false,
131
- indexType = GL.UNSIGNED_SHORT,
132
- instanceCount = 0,
133
- isInstanced = instanceCount > 0,
134
-
135
- vertexArray = null,
136
- transformFeedback,
137
- framebuffer,
138
-
139
- // Deprecated
140
- uniforms,
141
- samplers
142
- } = options;
143
-
144
- let {parameters = {}} = options;
145
-
146
- if (uniforms || samplers) {
131
+ logPriority, // Probe log priority, enables Model to do more integrated logging
132
+
133
+ drawMode = GL.TRIANGLES,
134
+ vertexCount,
135
+ offset = 0,
136
+ start,
137
+ end,
138
+ isIndexed = false,
139
+ indexType = GL.UNSIGNED_SHORT,
140
+ instanceCount = 0,
141
+ isInstanced = instanceCount > 0,
142
+
143
+ vertexArray = null,
144
+ transformFeedback,
145
+ framebuffer,
146
+
147
+ // Deprecated
148
+ uniforms,
149
+ samplers
150
+ } = options;
151
+
152
+ let {parameters = {}} = options;
153
+
154
+ if (uniforms || samplers) {
147
155
  // DEPRECATED: v7.0 (deprecated earlier but warning not properly implemented)
148
156
  log.deprecated('Program.draw({uniforms})', 'Program.setUniforms(uniforms)')();
149
157
  this.setUniforms(uniforms || {});
@@ -234,12 +242,15 @@ export default class Program extends WebGLResource<ProgramProps> {
234
242
 
235
243
  if (textureUpdate) {
236
244
  // eslint-disable-next-line max-depth
245
+ // @ts-expect-error
237
246
  if (uniformSetter.textureIndex === undefined) {
247
+ // @ts-expect-error
238
248
  uniformSetter.textureIndex = this._textureIndexCounter++;
239
249
  }
240
250
 
241
251
  // Bind texture to index
242
252
  const texture = value;
253
+ // @ts-expect-error
243
254
  const {textureIndex} = uniformSetter;
244
255
 
245
256
  texture.bind(textureIndex);
@@ -247,6 +258,7 @@ export default class Program extends WebGLResource<ProgramProps> {
247
258
 
248
259
  this._textureUniforms[uniformName] = texture;
249
260
  } else {
261
+ // @ts-expect-error
250
262
  value = uniformSetter.textureIndex;
251
263
  }
252
264
  } else if (this._textureUniforms[uniformName]) {
@@ -285,6 +297,7 @@ export default class Program extends WebGLResource<ProgramProps> {
285
297
  // Note: This is currently done before every draw call
286
298
  _bindTextures() {
287
299
  for (const uniformName in this._textureUniforms) {
300
+ // @ts-expect-error
288
301
  const textureIndex = this._uniformSetters[uniformName].textureIndex;
289
302
  this._textureUniforms[uniformName].bind(textureIndex);
290
303
  }
@@ -308,11 +321,11 @@ export default class Program extends WebGLResource<ProgramProps> {
308
321
  const type = this.gl.getShaderParameter(this.handle, GL.SHADER_TYPE);
309
322
  switch (type) {
310
323
  case GL.VERTEX_SHADER:
311
- // @ts-ignore
324
+ // @ts-expect-error
312
325
  opts.vs = new VertexShader({handle: shaderHandle});
313
326
  break;
314
327
  case GL.FRAGMENT_SHADER:
315
- // @ts-ignore
328
+ // @ts-expect-error
316
329
  opts.fs = new FragmentShader({handle: shaderHandle});
317
330
  break;
318
331
  default:
@@ -336,7 +349,8 @@ export default class Program extends WebGLResource<ProgramProps> {
336
349
 
337
350
  // Generate a default name for the program based on names of the shaders
338
351
  _getName() {
339
- let programName = this.vs.getName() || this.fs.getName();
352
+ // let programName = this.vs.getName() || this.fs.getName();
353
+ let programName = this.vs.id || this.fs.id;
340
354
  programName = programName.replace(/shader/i, '');
341
355
  programName = programName ? `${programName}-program` : 'program';
342
356
  return programName;
@@ -351,7 +365,7 @@ export default class Program extends WebGLResource<ProgramProps> {
351
365
  log.timeEnd(LOG_PROGRAM_PERF_PRIORITY, `linkProgram for ${this._getName()}`)();
352
366
 
353
367
  // Avoid checking program linking error in production
354
- // @ts-ignore
368
+ // @ts-expect-error
355
369
  if (gl.debug || log.level > 0) {
356
370
  const linked = gl.getProgramParameter(this.handle, gl.LINK_STATUS);
357
371
  if (!linked) {
@@ -1,8 +1,8 @@
1
1
  // WebGL2 Query (also handles disjoint timer extensions)
2
- import {isWebGL2} from '@luma.gl/gltools';
2
+ import {assert} from '@luma.gl/api';
3
+ import WebGLDevice from '../adapter/webgl-device';
4
+ import {isWebGL2} from '../context/context/webgl-checks';
3
5
  import WebGLResource, {ResourceProps} from './webgl-resource';
4
- import {FEATURES, hasFeatures} from '../features';
5
- import {assert} from '../utils';
6
6
 
7
7
  const GL_QUERY_RESULT = 0x8866; // Returns a GLuint containing the query result.
8
8
  const GL_QUERY_RESULT_AVAILABLE = 0x8867; // whether query result is available.
@@ -27,7 +27,8 @@ export default class Query extends WebGLResource<QueryProps> {
27
27
  const webgl2 = isWebGL2(gl);
28
28
 
29
29
  // Initial value
30
- const hasTimerQuery = hasFeatures(gl, FEATURES.TIMER_QUERY);
30
+ const webglDevice = WebGLDevice.fromContext(gl);
31
+ const hasTimerQuery = webglDevice.features.has('webgl-timer-query');
31
32
  let supported = webgl2 || hasTimerQuery;
32
33
 
33
34
  for (const key of options) {
@@ -52,8 +53,7 @@ export default class Query extends WebGLResource<QueryProps> {
52
53
 
53
54
  // Create a query class
54
55
  constructor(gl: WebGLRenderingContext, opts: QueryProps = {}) {
55
- super(gl, opts, {} as any);
56
-
56
+ super(WebGLDevice.attach(gl), opts, {} as any);
57
57
  Object.seal(this);
58
58
  }
59
59
 
@@ -1,5 +1,5 @@
1
1
  import GL from '@luma.gl/constants';
2
- import {isWebGL2} from '@luma.gl/gltools';
2
+ import {isWebGL2} from '../context/context/webgl-checks';
3
3
 
4
4
  export function isRenderbufferFormatSupported(gl: WebGLRenderingContext, format: GL): boolean {
5
5
  const info = RENDERBUFFER_FORMATS[format];
@@ -1,9 +1,10 @@
1
1
  /* eslint-disable no-inline-comments */
2
+ import {assert} from '@luma.gl/api';
2
3
  import GL from '@luma.gl/constants';
4
+ import WebGLDevice from '../adapter/webgl-device';
3
5
  import WebGLResource, {ResourceProps} from './webgl-resource';
4
6
  import {isRenderbufferFormatSupported, getRenderbufferFormatBytesPerPixel} from './renderbuffer-formats';
5
- import {isWebGL2} from '@luma.gl/gltools';
6
- import {assert} from '../utils';
7
+ import {isWebGL2} from '../context/context/webgl-checks';
7
8
 
8
9
  export type RenderbufferProps = ResourceProps & {
9
10
  format: number;
@@ -38,7 +39,7 @@ export class ImmutableRenderbuffer extends WebGLResource<RenderbufferProps> {
38
39
  }
39
40
 
40
41
  constructor(gl: WebGLRenderingContext, props: RenderbufferProps) {
41
- super(gl, props, DEFAULT_RENDERBUFFER_PROPS);
42
+ super(WebGLDevice.attach(gl), props, DEFAULT_RENDERBUFFER_PROPS);
42
43
  this._initialize(this.props);
43
44
  }
44
45
 
@@ -54,7 +55,7 @@ export class ImmutableRenderbuffer extends WebGLResource<RenderbufferProps> {
54
55
  this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
55
56
 
56
57
  if (samples !== 0 && isWebGL2(this.gl)) {
57
- // @ts-ignore
58
+ // @ts-expect-error
58
59
  this.gl.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, format, width, height);
59
60
  } else {
60
61
  this.gl.renderbufferStorage(GL.RENDERBUFFER, format, width, height);
@@ -1,80 +1,18 @@
1
1
  // luma.gl, MIT license
2
+ import {assert, uid, ShaderProps} from '@luma.gl/api';
2
3
  import GL from '@luma.gl/constants';
3
- import {assertWebGLContext, log} from '@luma.gl/gltools';
4
- import {getShaderInfo, CompilerMessage, formatCompilerLog} from '@luma.gl/shadertools';
5
- import {Shader as ShaderAPI, ShaderProps} from '@luma.gl/api';
6
- import {parseShaderCompilerLog} from '../webgl-utils/parse-shader-compiler-log';
7
- import {uid, assert} from '../utils';
4
+ import {getShaderInfo} from '@luma.gl/shadertools';
5
+ import {assertWebGLContext} from '../context/context/webgl-checks';
6
+ import {WEBGLShader} from '../adapter/webgl-shader'
7
+ import WebGLDevice from '../adapter/webgl-device'
8
8
 
9
9
  const ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';
10
10
 
11
-
12
11
  export type {ShaderProps};
13
12
 
14
- export class WEBGLShader extends ShaderAPI {
15
- readonly gl: WebGLRenderingContext;
16
- readonly handle: WebGLShader;
17
-
18
- readonly stage: 'vertex' | 'fragment';
19
-
20
- constructor(gl: WebGLRenderingContext, props: ShaderProps) {
21
- super(gl as any, {id: getShaderIdFromProps(props), ...props});
22
- this.gl = gl;
23
- switch (this.props.stage) {
24
- case 'vertex':
25
- this.handle = this.props.handle || this.gl.createShader(GL.VERTEX_SHADER);
26
- break;
27
- case 'fragment':
28
- this.handle = this.props.handle || this.gl.createShader(GL.FRAGMENT_SHADER);
29
- break;
30
- default:
31
- throw new Error(this.props.stage);
32
- }
33
- this.stage = this.props.stage;
34
- this._compile(props.source);
35
- }
36
-
37
- destroy(): void {
38
- if (this.handle) {
39
- this.removeStats();
40
- this.gl.deleteShader(this.handle);
41
- // @ts-expect-error
42
- this.handle = null;
43
- }
44
- }
45
-
46
- async compilationInfo(): Promise<readonly CompilerMessage[]> {
47
- const log = this.gl.getShaderInfoLog(this.handle);
48
- return parseShaderCompilerLog(log);
49
- }
50
-
51
- // PRIVATE METHODS
52
- _compile(source) {
53
- if (!source.startsWith('#version ')) {
54
- source = `#version 100\n${source}`;
55
- }
56
- this.gl.shaderSource(this.handle, source);
57
- this.gl.compileShader(this.handle);
58
-
59
- // TODO - For performance reasons, avoid checking shader compilation errors on production?
60
- // TODO - Load log even when no error reported, to catch warnings?
61
- // https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings
62
- const compileStatus = this.gl.getShaderParameter(this.handle, GL.COMPILE_STATUS);
63
- if (!compileStatus) {
64
- const shaderLog = this.gl.getShaderInfoLog(this.handle);
65
- const messages = parseShaderCompilerLog(shaderLog).filter(message => message.type === 'error');
66
- const formattedLog = formatCompilerLog(messages, source);
67
- const shaderName: string = getShaderInfo(source).name;
68
- const shaderDescription = `${this.stage} shader ${shaderName}`;
69
- log.error(`GLSL compilation errors in ${shaderName}\n${formattedLog}`)();
70
- throw new Error(`GLSL compilation errors in ${shaderName}`);
71
- }
72
- }
73
- }
74
-
75
13
  /**
76
14
  * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline
77
- * For now this is an internal class
15
+ * This is an internal class, use FragmentShader or VertexShader
78
16
  */
79
17
  export class Shader extends WEBGLShader {
80
18
  shaderType: GL.FRAGMENT_SHADER | GL.VERTEX_SHADER;
@@ -95,9 +33,7 @@ export class Shader extends WEBGLShader {
95
33
  constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'>) {
96
34
  assertWebGLContext(gl);
97
35
  assert(typeof props.source === 'string', ERR_SOURCE);
98
-
99
- // @ts-expect-error
100
- super(gl, {...props, id: getShaderIdFromProps(props), stage: props.shaderType === GL.VERTEX_SHADER ? 'vertex' : 'fragment'});
36
+ super(WebGLDevice.attach(gl), {...props, stage: props.shaderType === GL.VERTEX_SHADER ? 'vertex' : 'fragment'});
101
37
 
102
38
  this.shaderType = props.shaderType;
103
39
  this.source = props.source;
@@ -191,10 +127,3 @@ function getShaderProps(props: Omit<ShaderProps, 'stage'> | string, shaderType:
191
127
  }
192
128
  return {...props, shaderType};
193
129
  }
194
-
195
- /** Deduce an id, from shader source, or supplied id, or shader type */
196
- function getShaderIdFromProps(props: ShaderProps): string {
197
- return getShaderInfo(props.source).name ||
198
- props.id ||
199
- uid(`unnamed ${props.stage || Shader.getTypeName(props.shaderType)}`);
200
- }
@@ -1,21 +1,17 @@
1
+ import {Device, loadImage} from '@luma.gl/api';
1
2
  import GL from '@luma.gl/constants';
2
- import {assertWebGLContext} from '@luma.gl/gltools';
3
- import Texture, {TextureProps} from './texture';
4
- import {loadImage} from '../utils/load-file';
3
+ import Texture, {TextureProps, TextureSupportOptions} from './texture';
5
4
 
6
5
 
7
6
  export type Texture2DProps = TextureProps & {
8
7
  };
9
8
 
10
9
  export default class Texture2D extends Texture {
11
- static isSupported(gl: WebGLRenderingContext, opts?: object): boolean {
12
- // @ts-expect-error
13
- return Texture.isSupported(gl, opts);
10
+ static isSupported(device: Device | WebGLRenderingContext, opts?: TextureSupportOptions): boolean {
11
+ return Texture.isSupported(device, opts);
14
12
  }
15
13
 
16
- constructor(gl: WebGLRenderingContext, props?: Texture2DProps | Promise<Texture2DProps>) {
17
- assertWebGLContext(gl);
18
-
14
+ constructor(device: Device | WebGLRenderingContext, props?: Texture2DProps | Promise<Texture2DProps>) {
19
15
  // Signature: new Texture2D(gl, url | Promise)
20
16
  if (props instanceof Promise || typeof props === 'string') {
21
17
  props = {data: props};
@@ -23,11 +19,10 @@ export default class Texture2D extends Texture {
23
19
 
24
20
  // Signature: new Texture2D(gl, {data: url})
25
21
  if (typeof props?.data === 'string') {
26
- // @ts-expect-error
27
22
  props = Object.assign({}, props, {data: loadImage(props.data)});
28
23
  }
29
24
 
30
- super(gl, Object.assign({}, props, {target: GL.TEXTURE_2D}));
25
+ super(device, Object.assign({}, props, {target: GL.TEXTURE_2D}));
31
26
 
32
27
  this.initialize(props);
33
28
 
@@ -1,5 +1,8 @@
1
+ import {Device} from '@luma.gl/api';
1
2
  import GL from '@luma.gl/constants';
2
- import {isWebGL2, assertWebGL2Context, withParameters} from '@luma.gl/gltools';
3
+ import WebGLDevice from '../adapter/webgl-device';
4
+ import {assertWebGL2Context} from '../context/context/webgl-checks';
5
+ import {withParameters} from '../context/state-tracker/with-parameters';
3
6
  import Texture, {TextureProps} from './texture';
4
7
  import {DATA_FORMAT_CHANNELS, TYPE_SIZES} from './texture-formats';
5
8
  import Buffer from './webgl-buffer';
@@ -26,16 +29,20 @@ type SetImageDataOptions = {
26
29
  * They are accessed by 3-dimensional texture coordinates.
27
30
  */
28
31
  export default class Texture3D extends Texture {
29
- static isSupported(gl: WebGLRenderingContext): boolean {
30
- return isWebGL2(gl);
32
+ static isSupported(device: Device | WebGLRenderingContext): boolean {
33
+ try {
34
+ const webglDevice = WebGLDevice.attach(device);
35
+ return webglDevice.isWebGL2;
36
+ } catch {
37
+ return false;
38
+ }
31
39
  }
32
40
 
33
- constructor(gl: WebGL2RenderingContext, props: Texture3DProps = {}) {
34
- super(gl as WebGLRenderingContext, props);
35
- assertWebGL2Context(gl);
41
+ constructor(device: Device | WebGL2RenderingContext, props: Texture3DProps = {}) {
42
+ super(device, {...props, target: GL.TEXTURE_3D});
43
+ assertWebGL2Context(this.gl2);
36
44
  props = Object.assign({depth: 1}, props, {target: GL.TEXTURE_3D, unpackFlipY: false});
37
45
  this.initialize(props);
38
-
39
46
  Object.seal(this);
40
47
  }
41
48
 
@@ -63,7 +70,7 @@ export default class Texture3D extends Texture {
63
70
 
64
71
  withParameters(this.gl, parameters, () => {
65
72
  if (ArrayBuffer.isView(data)) {
66
- // @ts-ignore
73
+ // @ts-expect-error
67
74
  this.gl.texImage3D(
68
75
  this.target,
69
76
  level,
@@ -80,7 +87,7 @@ export default class Texture3D extends Texture {
80
87
 
81
88
  if (data instanceof Buffer) {
82
89
  this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);
83
- // @ts-ignore
90
+ // @ts-expect-error
84
91
  this.gl.texImage3D(
85
92
  this.target,
86
93
  level,
@@ -100,9 +107,7 @@ export default class Texture3D extends Texture {
100
107
  this.trackAllocatedMemory(data.byteLength, 'Texture');
101
108
  } else {
102
109
  // NOTE(Tarek): Default to RGBA bytes
103
- // @ts-ignore
104
110
  const channels = DATA_FORMAT_CHANNELS[this.dataFormat] || 4;
105
- // @ts-ignore
106
111
  const channelSize = TYPE_SIZES[this.type] || 1;
107
112
 
108
113
  this.trackAllocatedMemory(
@@ -1,5 +1,7 @@
1
+ import {Device, log} from '@luma.gl/api';
1
2
  import GL from '@luma.gl/constants';
2
- import {log, assertWebGLContext} from '@luma.gl/gltools';
3
+ import WebGLDevice from '../adapter/webgl-device';
4
+ import {assertWebGLContext} from '../context/context/webgl-checks';
3
5
  import Texture, {TextureProps} from './texture';
4
6
 
5
7
  export type TextureCubeProps = TextureProps & {
@@ -17,10 +19,8 @@ export default class TextureCube extends Texture {
17
19
 
18
20
  props;
19
21
 
20
- constructor(gl: WebGLRenderingContext, props?: TextureCubeProps) {
21
- assertWebGLContext(gl);
22
-
23
- super(gl, Object.assign({}, props, {target: GL.TEXTURE_CUBE_MAP}));
22
+ constructor(device: Device | WebGLRenderingContext, props?: TextureCubeProps) {
23
+ super(device, Object.assign({}, props, {target: GL.TEXTURE_CUBE_MAP}));
24
24
 
25
25
  this.initialize(props);
26
26
 
@@ -37,7 +37,7 @@ export default class TextureCube extends Texture {
37
37
  // Store props for accessors
38
38
  this.props = props;
39
39
 
40
- // @ts-ignore
40
+ // @ts-expect-error
41
41
  this.setCubeMapImageData(props).then(() => {
42
42
  this.loaded = true;
43
43
 
@@ -54,7 +54,7 @@ export default class TextureCube extends Texture {
54
54
 
55
55
  subImage(options: {face: any; data: any; x?: number; y?: number; mipmapLevel?: number}): any {
56
56
  const {face, data, x = 0, y = 0, mipmapLevel = 0} = options;
57
- // @ts-ignore TODO - is this a bug?
57
+ // @ts-expect-error TODO - is this a bug?
58
58
  return this._subImage({target: face, data, x, y, mipmapLevel});
59
59
  }
60
60
 
@@ -1,5 +1,5 @@
1
1
  import GL from '@luma.gl/constants';
2
- import {isWebGL2} from '@luma.gl/gltools';
2
+ import {isWebGL2} from '../context/context/webgl-checks';
3
3
 
4
4
  // const S3TC = 'WEBGL_compressed_texture_s3tc';
5
5
  // const PVRTC = 'WEBGL_compressed_texture_pvrtc';