@luma.gl/webgl 8.6.0-alpha.4 → 9.0.0-alpha.10

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 (783) hide show
  1. package/README.md +3 -67
  2. package/dist/adapter/converters/device-parameters.d.ts +27 -0
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -0
  4. package/dist/adapter/converters/{set-device-parameters.js → device-parameters.js} +50 -6
  5. package/dist/adapter/converters/device-parameters.js.map +1 -0
  6. package/dist/{classes → adapter/converters}/renderbuffer-formats.d.ts +0 -0
  7. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -0
  8. package/dist/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
  9. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
  10. package/dist/adapter/converters/sampler-parameters.d.ts +19 -0
  11. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -0
  12. package/dist/adapter/converters/sampler-parameters.js +227 -0
  13. package/dist/adapter/converters/sampler-parameters.js.map +1 -0
  14. package/dist/adapter/converters/texture-formats.d.ts +93 -0
  15. package/dist/adapter/converters/texture-formats.d.ts.map +1 -0
  16. package/dist/adapter/converters/texture-formats.js +954 -0
  17. package/dist/adapter/converters/texture-formats.js.map +1 -0
  18. package/dist/adapter/converters/vertex-formats.d.ts +4 -0
  19. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -0
  20. package/dist/adapter/converters/vertex-formats.js +35 -0
  21. package/dist/adapter/converters/vertex-formats.js.map +1 -0
  22. package/dist/adapter/device-helpers/device-features.d.ts +3 -6
  23. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  24. package/dist/adapter/device-helpers/device-features.js +39 -50
  25. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  26. package/dist/adapter/device-helpers/device-limits.d.ts +1 -0
  27. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  28. package/dist/adapter/device-helpers/device-limits.js +1 -0
  29. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  30. package/dist/adapter/device-helpers/get-device-info.js +7 -7
  31. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  32. package/dist/adapter/helpers/attribute-utils.d.ts +11 -0
  33. package/dist/adapter/helpers/attribute-utils.d.ts.map +1 -0
  34. package/dist/adapter/helpers/attribute-utils.js +81 -0
  35. package/dist/adapter/helpers/attribute-utils.js.map +1 -0
  36. package/dist/adapter/helpers/get-shader-layout.d.ts +55 -0
  37. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -0
  38. package/dist/adapter/helpers/get-shader-layout.js +330 -0
  39. package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
  40. package/dist/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.d.ts +0 -0
  41. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -0
  42. package/dist/{esm/webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
  43. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  44. package/dist/adapter/helpers/set-uniform.d.ts +4 -0
  45. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -0
  46. package/dist/adapter/helpers/set-uniform.js +115 -0
  47. package/dist/adapter/helpers/set-uniform.js.map +1 -0
  48. package/dist/adapter/helpers/uniforms.d.ts +26 -0
  49. package/dist/adapter/helpers/uniforms.d.ts.map +1 -0
  50. package/dist/adapter/helpers/uniforms.js +99 -0
  51. package/dist/adapter/helpers/uniforms.js.map +1 -0
  52. package/dist/adapter/objects/constants-to-keys.d.ts +5 -0
  53. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -0
  54. package/dist/{esm/webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
  55. package/dist/adapter/objects/constants-to-keys.js.map +1 -0
  56. package/dist/adapter/objects/webgl-renderbuffer.d.ts +40 -0
  57. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -0
  58. package/dist/{esm/classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +38 -72
  59. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
  60. package/dist/{classes → adapter/objects}/webgl-resource.d.ts +15 -14
  61. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -0
  62. package/dist/{classes → adapter/objects}/webgl-resource.js +7 -3
  63. package/dist/adapter/objects/webgl-resource.js.map +1 -0
  64. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +27 -0
  65. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -0
  66. package/dist/adapter/objects/webgl-vertex-array-object.js +84 -0
  67. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  68. package/dist/adapter/resources/webgl-buffer.d.ts +27 -0
  69. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -0
  70. package/dist/adapter/resources/webgl-buffer.js +164 -0
  71. package/dist/adapter/resources/webgl-buffer.js.map +1 -0
  72. package/dist/adapter/resources/webgl-command-buffer.d.ts +25 -0
  73. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -0
  74. package/dist/adapter/resources/webgl-command-buffer.js +65 -0
  75. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
  76. package/dist/adapter/resources/webgl-command-encoder.d.ts +18 -0
  77. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -0
  78. package/dist/adapter/resources/webgl-command-encoder.js +53 -0
  79. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
  80. package/dist/adapter/resources/webgl-external-texture.d.ts +1 -0
  81. package/dist/adapter/resources/webgl-external-texture.d.ts.map +1 -0
  82. package/dist/adapter/resources/webgl-external-texture.js +2 -0
  83. package/dist/{es5/helpers/program-bindings.js.map → adapter/resources/webgl-external-texture.js.map} +1 -1
  84. package/dist/adapter/resources/webgl-framebuffer.d.ts +41 -0
  85. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -0
  86. package/dist/adapter/resources/webgl-framebuffer.js +267 -0
  87. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
  88. package/dist/adapter/resources/webgl-render-pass.d.ts +11 -0
  89. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -0
  90. package/dist/adapter/resources/webgl-render-pass.js +21 -0
  91. package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
  92. package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -0
  93. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -0
  94. package/dist/adapter/resources/webgl-render-pipeline.js +428 -0
  95. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
  96. package/dist/adapter/resources/webgl-sampler.d.ts +20 -0
  97. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -0
  98. package/dist/adapter/resources/webgl-sampler.js +50 -0
  99. package/dist/adapter/resources/webgl-sampler.js.map +1 -0
  100. package/dist/adapter/{webgl-shader.d.ts → resources/webgl-shader.d.ts} +3 -6
  101. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -0
  102. package/dist/{esm/adapter → adapter/resources}/webgl-shader.js +17 -23
  103. package/dist/adapter/resources/webgl-shader.js.map +1 -0
  104. package/dist/adapter/resources/webgl-texture.d.ts +193 -0
  105. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -0
  106. package/dist/{classes/texture.js → adapter/resources/webgl-texture.js} +280 -232
  107. package/dist/adapter/resources/webgl-texture.js.map +1 -0
  108. package/dist/adapter/webgl-canvas-context.d.ts +36 -0
  109. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -0
  110. package/dist/adapter/webgl-canvas-context.js +54 -0
  111. package/dist/adapter/webgl-canvas-context.js.map +1 -0
  112. package/dist/adapter/webgl-device.d.ts +63 -76
  113. package/dist/adapter/webgl-device.d.ts.map +1 -1
  114. package/dist/adapter/webgl-device.js +244 -115
  115. package/dist/adapter/webgl-device.js.map +1 -1
  116. package/dist/classic/accessor.d.ts +32 -0
  117. package/dist/classic/accessor.d.ts.map +1 -0
  118. package/dist/{classes → classic}/accessor.js +33 -1
  119. package/dist/classic/accessor.js.map +1 -0
  120. package/dist/{classes/webgl-buffer.d.ts → classic/buffer.d.ts} +28 -33
  121. package/dist/classic/buffer.d.ts.map +1 -0
  122. package/dist/{esm/classes/webgl-buffer.js → classic/buffer.js} +67 -57
  123. package/dist/classic/buffer.js.map +1 -0
  124. package/dist/{webgl-utils → classic}/typed-array-utils.d.ts +3 -2
  125. package/dist/classic/typed-array-utils.d.ts.map +1 -0
  126. package/dist/{esm/webgl-utils → classic}/typed-array-utils.js +0 -0
  127. package/dist/classic/typed-array-utils.js.map +1 -0
  128. package/dist/context/context/context-state.d.ts.map +1 -1
  129. package/dist/context/context/context-state.js +1 -1
  130. package/dist/context/context/context-state.js.map +1 -1
  131. package/dist/context/context/{create-context.d.ts → create-browser-context.d.ts} +2 -1
  132. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  133. package/dist/{esm/context/context/create-context.js → context/context/create-browser-context.js} +27 -3
  134. package/dist/context/context/create-browser-context.js.map +1 -0
  135. package/dist/context/context/create-headless-context.d.ts +9 -0
  136. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  137. package/dist/context/context/create-headless-context.js +43 -0
  138. package/dist/context/context/create-headless-context.js.map +1 -0
  139. package/dist/context/context/device-pixels.d.ts +1 -1
  140. package/dist/context/context/device-pixels.d.ts.map +1 -1
  141. package/dist/context/context/device-pixels.js +13 -8
  142. package/dist/context/context/device-pixels.js.map +1 -1
  143. package/dist/context/debug/spector.d.ts +18 -0
  144. package/dist/context/debug/spector.d.ts.map +1 -0
  145. package/dist/context/debug/spector.js +76 -0
  146. package/dist/context/debug/spector.js.map +1 -0
  147. package/dist/context/debug/webgl-developer-tools.d.ts +19 -0
  148. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -0
  149. package/dist/context/debug/webgl-developer-tools.js +121 -0
  150. package/dist/context/debug/webgl-developer-tools.js.map +1 -0
  151. package/dist/context/parameters/unified-parameter-api.d.ts +9 -7
  152. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  153. package/dist/context/parameters/unified-parameter-api.js +9 -8
  154. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  155. package/dist/context/parameters/webgl-parameter-tables.d.ts +40 -36
  156. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  157. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  158. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  159. package/dist/context/polyfill/polyfill-context.js +3 -3
  160. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  161. package/dist/context/polyfill/polyfill-table.d.ts +1 -1
  162. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  163. package/dist/context/polyfill/polyfill-table.js +1 -1
  164. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  165. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  166. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  167. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  168. package/dist/context/state-tracker/track-context-state.js +26 -12
  169. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  170. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  171. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  172. package/dist/context/state-tracker/with-parameters.js +6 -2
  173. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  174. package/dist/es5/adapter/converters/{set-device-parameters.js → device-parameters.js} +53 -6
  175. package/dist/es5/adapter/converters/device-parameters.js.map +1 -0
  176. package/dist/es5/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
  177. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -0
  178. package/dist/es5/adapter/converters/sampler-parameters.js +245 -0
  179. package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -0
  180. package/dist/es5/adapter/converters/texture-formats.js +1031 -0
  181. package/dist/es5/adapter/converters/texture-formats.js.map +1 -0
  182. package/dist/es5/adapter/converters/vertex-formats.js +45 -0
  183. package/dist/es5/adapter/converters/vertex-formats.js.map +1 -0
  184. package/dist/es5/adapter/device-helpers/device-features.js +61 -58
  185. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
  186. package/dist/es5/adapter/device-helpers/device-limits.js +1 -1
  187. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
  188. package/dist/es5/adapter/device-helpers/get-device-info.js +7 -7
  189. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
  190. package/dist/es5/adapter/helpers/attribute-utils.js +91 -0
  191. package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -0
  192. package/dist/es5/{helpers/get-program-bindings.js → adapter/helpers/get-shader-layout.js} +211 -94
  193. package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -0
  194. package/dist/es5/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
  195. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  196. package/dist/es5/adapter/helpers/set-uniform.js +125 -0
  197. package/dist/es5/adapter/helpers/set-uniform.js.map +1 -0
  198. package/dist/es5/adapter/helpers/uniforms.js +112 -0
  199. package/dist/es5/adapter/helpers/uniforms.js.map +1 -0
  200. package/dist/es5/{webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
  201. package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -0
  202. package/dist/es5/{classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +48 -98
  203. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -0
  204. package/dist/es5/{classes → adapter/objects}/webgl-resource.js +8 -3
  205. package/dist/es5/adapter/objects/webgl-resource.js.map +1 -0
  206. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +137 -0
  207. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  208. package/dist/es5/adapter/resources/webgl-buffer.js +243 -0
  209. package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -0
  210. package/dist/es5/adapter/resources/webgl-command-buffer.js +96 -0
  211. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -0
  212. package/dist/es5/adapter/resources/webgl-command-encoder.js +98 -0
  213. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -0
  214. package/dist/es5/adapter/resources/webgl-external-texture.js +2 -0
  215. package/dist/{esm/helpers/program-bindings.js.map → es5/adapter/resources/webgl-external-texture.js.map} +1 -1
  216. package/dist/es5/adapter/resources/webgl-framebuffer.js +346 -0
  217. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -0
  218. package/dist/es5/{classes/texture-2d.js → adapter/resources/webgl-render-pass.js} +26 -45
  219. package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -0
  220. package/dist/es5/adapter/resources/webgl-render-pipeline.js +530 -0
  221. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -0
  222. package/dist/es5/adapter/resources/webgl-sampler.js +96 -0
  223. package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -0
  224. package/dist/es5/adapter/{webgl-shader.js → resources/webgl-shader.js} +16 -21
  225. package/dist/es5/adapter/resources/webgl-shader.js.map +1 -0
  226. package/dist/es5/{classes/texture.js → adapter/resources/webgl-texture.js} +374 -298
  227. package/dist/es5/adapter/resources/webgl-texture.js.map +1 -0
  228. package/dist/es5/adapter/webgl-canvas-context.js +97 -0
  229. package/dist/es5/adapter/webgl-canvas-context.js.map +1 -0
  230. package/dist/es5/adapter/webgl-device.js +316 -132
  231. package/dist/es5/adapter/webgl-device.js.map +1 -1
  232. package/dist/es5/{classes → classic}/accessor.js +25 -1
  233. package/dist/es5/classic/accessor.js.map +1 -0
  234. package/dist/es5/{classes/webgl-buffer.js → classic/buffer.js} +88 -72
  235. package/dist/es5/classic/buffer.js.map +1 -0
  236. package/dist/es5/{webgl-utils → classic}/typed-array-utils.js +0 -0
  237. package/dist/es5/classic/typed-array-utils.js.map +1 -0
  238. package/dist/es5/context/context/context-state.js +1 -1
  239. package/dist/es5/context/context/context-state.js.map +1 -1
  240. package/dist/es5/context/context/{create-context.js → create-browser-context.js} +29 -3
  241. package/dist/es5/context/context/create-browser-context.js.map +1 -0
  242. package/dist/es5/context/context/create-headless-context.js +60 -0
  243. package/dist/es5/context/context/create-headless-context.js.map +1 -0
  244. package/dist/es5/context/context/device-pixels.js +14 -8
  245. package/dist/es5/context/context/device-pixels.js.map +1 -1
  246. package/dist/es5/context/debug/spector.js +133 -0
  247. package/dist/es5/context/debug/spector.js.map +1 -0
  248. package/dist/es5/context/debug/webgl-developer-tools.js +198 -0
  249. package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -0
  250. package/dist/es5/context/parameters/unified-parameter-api.js +15 -9
  251. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
  252. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
  253. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
  254. package/dist/es5/context/polyfill/polyfill-context.js +3 -3
  255. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
  256. package/dist/es5/context/polyfill/polyfill-table.js +1 -1
  257. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
  258. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
  259. package/dist/es5/context/state-tracker/track-context-state.js +39 -24
  260. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
  261. package/dist/es5/context/state-tracker/with-parameters.js +8 -2
  262. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
  263. package/dist/es5/index.js +72 -300
  264. package/dist/es5/index.js.map +1 -1
  265. package/dist/es5/init.js +1 -41
  266. package/dist/es5/init.js.map +1 -1
  267. package/dist/es5/{context/parameters/webgl-parameters.js → types/webgl.js} +1 -1
  268. package/dist/es5/types/webgl.js.map +1 -0
  269. package/dist/esm/adapter/converters/{set-device-parameters.js → device-parameters.js} +50 -6
  270. package/dist/esm/adapter/converters/device-parameters.js.map +1 -0
  271. package/dist/esm/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
  272. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -0
  273. package/dist/esm/adapter/converters/sampler-parameters.js +227 -0
  274. package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -0
  275. package/dist/esm/adapter/converters/texture-formats.js +954 -0
  276. package/dist/esm/adapter/converters/texture-formats.js.map +1 -0
  277. package/dist/esm/adapter/converters/vertex-formats.js +35 -0
  278. package/dist/esm/adapter/converters/vertex-formats.js.map +1 -0
  279. package/dist/esm/adapter/device-helpers/device-features.js +39 -50
  280. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
  281. package/dist/esm/adapter/device-helpers/device-limits.js +1 -0
  282. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
  283. package/dist/esm/adapter/device-helpers/get-device-info.js +7 -7
  284. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
  285. package/dist/esm/adapter/helpers/attribute-utils.js +81 -0
  286. package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -0
  287. package/dist/esm/adapter/helpers/get-shader-layout.js +330 -0
  288. package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -0
  289. package/dist/{webgl-utils → esm/adapter/helpers}/parse-shader-compiler-log.js +0 -0
  290. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  291. package/dist/esm/adapter/helpers/set-uniform.js +115 -0
  292. package/dist/esm/adapter/helpers/set-uniform.js.map +1 -0
  293. package/dist/esm/adapter/helpers/uniforms.js +99 -0
  294. package/dist/esm/adapter/helpers/uniforms.js.map +1 -0
  295. package/dist/{webgl-utils → esm/adapter/objects}/constants-to-keys.js +1 -0
  296. package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -0
  297. package/dist/{classes/renderbuffer.js → esm/adapter/objects/webgl-renderbuffer.js} +38 -72
  298. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -0
  299. package/dist/esm/{classes → adapter/objects}/webgl-resource.js +7 -3
  300. package/dist/esm/adapter/objects/webgl-resource.js.map +1 -0
  301. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +84 -0
  302. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  303. package/dist/esm/adapter/resources/webgl-buffer.js +164 -0
  304. package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -0
  305. package/dist/esm/adapter/resources/webgl-command-buffer.js +65 -0
  306. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -0
  307. package/dist/esm/adapter/resources/webgl-command-encoder.js +53 -0
  308. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -0
  309. package/dist/esm/adapter/resources/webgl-external-texture.js +2 -0
  310. package/dist/{helpers/program-bindings.js.map → esm/adapter/resources/webgl-external-texture.js.map} +1 -1
  311. package/dist/esm/adapter/resources/webgl-framebuffer.js +267 -0
  312. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -0
  313. package/dist/esm/adapter/resources/webgl-render-pass.js +21 -0
  314. package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -0
  315. package/dist/esm/adapter/resources/webgl-render-pipeline.js +428 -0
  316. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -0
  317. package/dist/esm/adapter/resources/webgl-sampler.js +50 -0
  318. package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -0
  319. package/dist/{adapter → esm/adapter/resources}/webgl-shader.js +17 -23
  320. package/dist/esm/adapter/resources/webgl-shader.js.map +1 -0
  321. package/dist/esm/{classes/texture.js → adapter/resources/webgl-texture.js} +280 -232
  322. package/dist/esm/adapter/resources/webgl-texture.js.map +1 -0
  323. package/dist/esm/adapter/webgl-canvas-context.js +54 -0
  324. package/dist/esm/adapter/webgl-canvas-context.js.map +1 -0
  325. package/dist/esm/adapter/webgl-device.js +244 -115
  326. package/dist/esm/adapter/webgl-device.js.map +1 -1
  327. package/dist/esm/{classes → classic}/accessor.js +33 -1
  328. package/dist/esm/classic/accessor.js.map +1 -0
  329. package/dist/{classes/webgl-buffer.js → esm/classic/buffer.js} +67 -57
  330. package/dist/esm/classic/buffer.js.map +1 -0
  331. package/dist/{webgl-utils → esm/classic}/typed-array-utils.js +0 -0
  332. package/dist/esm/classic/typed-array-utils.js.map +1 -0
  333. package/dist/esm/context/context/context-state.js +1 -1
  334. package/dist/esm/context/context/context-state.js.map +1 -1
  335. package/dist/{context/context/create-context.js → esm/context/context/create-browser-context.js} +27 -3
  336. package/dist/esm/context/context/create-browser-context.js.map +1 -0
  337. package/dist/esm/context/context/create-headless-context.js +43 -0
  338. package/dist/esm/context/context/create-headless-context.js.map +1 -0
  339. package/dist/esm/context/context/device-pixels.js +13 -8
  340. package/dist/esm/context/context/device-pixels.js.map +1 -1
  341. package/dist/esm/context/debug/spector.js +76 -0
  342. package/dist/esm/context/debug/spector.js.map +1 -0
  343. package/dist/esm/context/debug/webgl-developer-tools.js +121 -0
  344. package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -0
  345. package/dist/esm/context/parameters/unified-parameter-api.js +9 -8
  346. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
  347. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
  348. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
  349. package/dist/esm/context/polyfill/polyfill-context.js +3 -3
  350. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
  351. package/dist/esm/context/polyfill/polyfill-table.js +1 -1
  352. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
  353. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
  354. package/dist/esm/context/state-tracker/track-context-state.js +26 -12
  355. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
  356. package/dist/esm/context/state-tracker/with-parameters.js +6 -2
  357. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
  358. package/dist/esm/index.js +20 -31
  359. package/dist/esm/index.js.map +1 -1
  360. package/dist/esm/init.js +2 -31
  361. package/dist/esm/init.js.map +1 -1
  362. package/dist/esm/types/webgl.js +2 -0
  363. package/dist/esm/types/webgl.js.map +1 -0
  364. package/dist/index.d.ts +25 -46
  365. package/dist/index.d.ts.map +1 -1
  366. package/dist/index.js +20 -31
  367. package/dist/index.js.map +1 -1
  368. package/dist/init.d.ts +1 -4
  369. package/dist/init.d.ts.map +1 -1
  370. package/dist/init.js +2 -31
  371. package/dist/init.js.map +1 -1
  372. package/dist/types/webgl.d.ts +145 -0
  373. package/dist/types/webgl.d.ts.map +1 -0
  374. package/dist/types/webgl.js +2 -0
  375. package/dist/types/webgl.js.map +1 -0
  376. package/package.json +5 -5
  377. package/src/adapter/converters/{set-device-parameters.ts → device-parameters.ts} +81 -12
  378. package/src/{classes → adapter/converters}/renderbuffer-formats.ts +1 -1
  379. package/src/adapter/converters/sampler-parameters.ts +184 -0
  380. package/src/adapter/converters/texture-formats.ts +633 -0
  381. package/src/adapter/converters/vertex-formats.ts +22 -0
  382. package/src/adapter/device-helpers/device-features.ts +55 -124
  383. package/src/adapter/device-helpers/device-limits.ts +6 -3
  384. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  385. package/src/adapter/helpers/attribute-utils.ts +61 -0
  386. package/src/adapter/helpers/get-shader-layout.ts +407 -0
  387. package/src/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.ts +0 -0
  388. package/src/adapter/helpers/set-uniform.ts +87 -0
  389. package/src/adapter/helpers/uniforms.ts +121 -0
  390. package/src/{webgl-utils → adapter/objects}/constants-to-keys.ts +6 -3
  391. package/src/adapter/objects/webgl-renderbuffer.ts +104 -0
  392. package/src/{classes → adapter/objects}/webgl-resource.ts +23 -17
  393. package/src/adapter/objects/webgl-vertex-array-object.ts +111 -0
  394. package/src/adapter/resources/webgl-buffer.ts +219 -0
  395. package/src/adapter/resources/webgl-command-buffer.ts +94 -0
  396. package/src/adapter/resources/webgl-command-encoder.ts +58 -0
  397. package/src/adapter/resources/webgl-external-texture.ts +92 -0
  398. package/src/adapter/resources/webgl-framebuffer.ts +282 -0
  399. package/src/adapter/resources/webgl-render-pass.ts +24 -0
  400. package/src/adapter/resources/webgl-render-pipeline.ts +425 -0
  401. package/src/adapter/resources/webgl-sampler.ts +56 -0
  402. package/src/adapter/{webgl-shader.ts → resources/webgl-shader.ts} +19 -24
  403. package/src/adapter/resources/webgl-texture.ts +1036 -0
  404. package/src/adapter/webgl-canvas-context.ts +74 -0
  405. package/src/adapter/webgl-device.ts +297 -289
  406. package/{dist/esm/classes/accessor.ts.disabled → src/classic/accessor.ts} +38 -37
  407. package/src/{classes/webgl-buffer.ts → classic/buffer.ts} +76 -84
  408. package/src/{webgl-utils → classic}/typed-array-utils.ts +5 -1
  409. package/src/context/context/context-state.ts +4 -2
  410. package/src/context/context/{create-context.ts → create-browser-context.ts} +41 -6
  411. package/src/context/context/create-headless-context.ts +48 -0
  412. package/src/context/context/device-pixels.ts +24 -13
  413. package/src/context/debug/spector.ts +92 -0
  414. package/src/context/debug/webgl-developer-tools.ts +162 -0
  415. package/src/context/parameters/unified-parameter-api.ts +21 -13
  416. package/src/context/parameters/webgl-parameter-tables.ts +38 -36
  417. package/src/context/polyfill/get-parameter-polyfill.ts +1 -1
  418. package/src/context/polyfill/polyfill-context.ts +4 -5
  419. package/src/context/polyfill/polyfill-table.ts +1 -1
  420. package/src/context/state-tracker/deep-array-equal.ts +1 -1
  421. package/src/context/state-tracker/track-context-state.ts +34 -26
  422. package/src/context/state-tracker/with-parameters.ts +7 -2
  423. package/src/index.ts +42 -102
  424. package/src/init.ts +2 -46
  425. package/src/types/webgl.ts +284 -0
  426. package/dist/_deprecated/context-api.d.ts +0 -85
  427. package/dist/_deprecated/context-api.d.ts.map +0 -1
  428. package/dist/_deprecated/context-api.js +0 -70
  429. package/dist/_deprecated/context-api.js.map +0 -1
  430. package/dist/_deprecated/features.d.ts +0 -27
  431. package/dist/_deprecated/features.d.ts.map +0 -1
  432. package/dist/_deprecated/features.js +0 -111
  433. package/dist/_deprecated/features.js.map +0 -1
  434. package/dist/adapter/converters/set-device-parameters.d.ts +0 -5
  435. package/dist/adapter/converters/set-device-parameters.d.ts.map +0 -1
  436. package/dist/adapter/converters/set-device-parameters.js.map +0 -1
  437. package/dist/adapter/converters/webgpu-texture-formats.d.ts +0 -281
  438. package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +0 -1
  439. package/dist/adapter/converters/webgpu-texture-formats.js +0 -285
  440. package/dist/adapter/converters/webgpu-texture-formats.js.map +0 -1
  441. package/dist/adapter/webgl-shader.d.ts.map +0 -1
  442. package/dist/adapter/webgl-shader.js.map +0 -1
  443. package/dist/classes/accessor.d.ts +0 -28
  444. package/dist/classes/accessor.d.ts.map +0 -1
  445. package/dist/classes/accessor.js.map +0 -1
  446. package/dist/classes/accessor.ts.disabled +0 -159
  447. package/dist/classes/clear.d.ts +0 -17
  448. package/dist/classes/clear.d.ts.map +0 -1
  449. package/dist/classes/clear.js +0 -105
  450. package/dist/classes/clear.js.map +0 -1
  451. package/dist/classes/copy-and-blit.d.ts +0 -86
  452. package/dist/classes/copy-and-blit.d.ts.map +0 -1
  453. package/dist/classes/copy-and-blit.js +0 -338
  454. package/dist/classes/copy-and-blit.js.map +0 -1
  455. package/dist/classes/framebuffer.d.ts +0 -139
  456. package/dist/classes/framebuffer.d.ts.map +0 -1
  457. package/dist/classes/framebuffer.js +0 -656
  458. package/dist/classes/framebuffer.js.map +0 -1
  459. package/dist/classes/program-configuration.d.ts +0 -24
  460. package/dist/classes/program-configuration.d.ts.map +0 -1
  461. package/dist/classes/program-configuration.js +0 -73
  462. package/dist/classes/program-configuration.js.map +0 -1
  463. package/dist/classes/program.d.ts +0 -66
  464. package/dist/classes/program.d.ts.map +0 -1
  465. package/dist/classes/program.js +0 -379
  466. package/dist/classes/program.js.map +0 -1
  467. package/dist/classes/query.d.ts +0 -27
  468. package/dist/classes/query.d.ts.map +0 -1
  469. package/dist/classes/query.js +0 -145
  470. package/dist/classes/query.js.map +0 -1
  471. package/dist/classes/renderbuffer-formats.d.ts.map +0 -1
  472. package/dist/classes/renderbuffer-formats.js.map +0 -1
  473. package/dist/classes/renderbuffer.d.ts +0 -60
  474. package/dist/classes/renderbuffer.d.ts.map +0 -1
  475. package/dist/classes/renderbuffer.js.map +0 -1
  476. package/dist/classes/shader.d.ts +0 -42
  477. package/dist/classes/shader.d.ts.map +0 -1
  478. package/dist/classes/shader.js +0 -118
  479. package/dist/classes/shader.js.map +0 -1
  480. package/dist/classes/texture-2d.d.ts +0 -9
  481. package/dist/classes/texture-2d.d.ts.map +0 -1
  482. package/dist/classes/texture-2d.js +0 -36
  483. package/dist/classes/texture-2d.js.map +0 -1
  484. package/dist/classes/texture-3d.d.ts +0 -29
  485. package/dist/classes/texture-3d.d.ts.map +0 -1
  486. package/dist/classes/texture-3d.js +0 -76
  487. package/dist/classes/texture-3d.js.map +0 -1
  488. package/dist/classes/texture-cube.d.ts +0 -28
  489. package/dist/classes/texture-cube.d.ts.map +0 -1
  490. package/dist/classes/texture-cube.js +0 -130
  491. package/dist/classes/texture-cube.js.map +0 -1
  492. package/dist/classes/texture-formats.d.ts +0 -37
  493. package/dist/classes/texture-formats.d.ts.map +0 -1
  494. package/dist/classes/texture-formats.js +0 -98
  495. package/dist/classes/texture-formats.js.map +0 -1
  496. package/dist/classes/texture.d.ts +0 -123
  497. package/dist/classes/texture.d.ts.map +0 -1
  498. package/dist/classes/texture.js.map +0 -1
  499. package/dist/classes/transform-feedback.d.ts +0 -33
  500. package/dist/classes/transform-feedback.d.ts.map +0 -1
  501. package/dist/classes/transform-feedback.js +0 -198
  502. package/dist/classes/transform-feedback.js.map +0 -1
  503. package/dist/classes/uniform-buffer-layout.d.ts +0 -17
  504. package/dist/classes/uniform-buffer-layout.d.ts.map +0 -1
  505. package/dist/classes/uniform-buffer-layout.js +0 -104
  506. package/dist/classes/uniform-buffer-layout.js.map +0 -1
  507. package/dist/classes/uniforms.d.ts +0 -37
  508. package/dist/classes/uniforms.d.ts.map +0 -1
  509. package/dist/classes/uniforms.js +0 -250
  510. package/dist/classes/uniforms.js.map +0 -1
  511. package/dist/classes/vertex-array-object.d.ts +0 -76
  512. package/dist/classes/vertex-array-object.d.ts.map +0 -1
  513. package/dist/classes/vertex-array-object.js +0 -261
  514. package/dist/classes/vertex-array-object.js.map +0 -1
  515. package/dist/classes/vertex-array.d.ts +0 -75
  516. package/dist/classes/vertex-array.d.ts.map +0 -1
  517. package/dist/classes/vertex-array.js +0 -408
  518. package/dist/classes/vertex-array.js.map +0 -1
  519. package/dist/classes/webgl-buffer.d.ts.map +0 -1
  520. package/dist/classes/webgl-buffer.js.map +0 -1
  521. package/dist/classes/webgl-resource.d.ts.map +0 -1
  522. package/dist/classes/webgl-resource.js.map +0 -1
  523. package/dist/context/context/create-context.d.ts.map +0 -1
  524. package/dist/context/context/create-context.js.map +0 -1
  525. package/dist/context/context/get-canvas.d.ts +0 -13
  526. package/dist/context/context/get-canvas.d.ts.map +0 -1
  527. package/dist/context/context/get-canvas.js +0 -31
  528. package/dist/context/context/get-canvas.js.map +0 -1
  529. package/dist/context/context/resize-context.d.ts +0 -20
  530. package/dist/context/context/resize-context.d.ts.map +0 -1
  531. package/dist/context/context/resize-context.js +0 -15
  532. package/dist/context/context/resize-context.js.map +0 -1
  533. package/dist/context/parameters/webgl-parameters.d.ts +0 -144
  534. package/dist/context/parameters/webgl-parameters.d.ts.map +0 -1
  535. package/dist/context/parameters/webgl-parameters.js +0 -2
  536. package/dist/context/parameters/webgl-parameters.js.map +0 -1
  537. package/dist/debug/debug-program-configuration.d.ts +0 -2
  538. package/dist/debug/debug-program-configuration.d.ts.map +0 -1
  539. package/dist/debug/debug-program-configuration.js +0 -40
  540. package/dist/debug/debug-program-configuration.js.map +0 -1
  541. package/dist/debug/debug-uniforms.d.ts +0 -12
  542. package/dist/debug/debug-uniforms.d.ts.map +0 -1
  543. package/dist/debug/debug-uniforms.js +0 -108
  544. package/dist/debug/debug-uniforms.js.map +0 -1
  545. package/dist/debug/debug-vertex-array.d.ts +0 -5
  546. package/dist/debug/debug-vertex-array.d.ts.map +0 -1
  547. package/dist/debug/debug-vertex-array.js +0 -118
  548. package/dist/debug/debug-vertex-array.js.map +0 -1
  549. package/dist/es5/_deprecated/context-api.js +0 -110
  550. package/dist/es5/_deprecated/context-api.js.map +0 -1
  551. package/dist/es5/_deprecated/features.js +0 -118
  552. package/dist/es5/_deprecated/features.js.map +0 -1
  553. package/dist/es5/adapter/converters/set-device-parameters.js.map +0 -1
  554. package/dist/es5/adapter/converters/webgpu-texture-formats.js +0 -296
  555. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +0 -1
  556. package/dist/es5/adapter/webgl-shader.js.map +0 -1
  557. package/dist/es5/classes/accessor.d.ts +0 -28
  558. package/dist/es5/classes/accessor.js.map +0 -1
  559. package/dist/es5/classes/accessor.ts.disabled +0 -159
  560. package/dist/es5/classes/clear.js +0 -135
  561. package/dist/es5/classes/clear.js.map +0 -1
  562. package/dist/es5/classes/copy-and-blit.js +0 -382
  563. package/dist/es5/classes/copy-and-blit.js.map +0 -1
  564. package/dist/es5/classes/framebuffer.js +0 -807
  565. package/dist/es5/classes/framebuffer.js.map +0 -1
  566. package/dist/es5/classes/program-configuration.js +0 -119
  567. package/dist/es5/classes/program-configuration.js.map +0 -1
  568. package/dist/es5/classes/program.js +0 -471
  569. package/dist/es5/classes/program.js.map +0 -1
  570. package/dist/es5/classes/query.js +0 -222
  571. package/dist/es5/classes/query.js.map +0 -1
  572. package/dist/es5/classes/renderbuffer-formats.js.map +0 -1
  573. package/dist/es5/classes/renderbuffer.js.map +0 -1
  574. package/dist/es5/classes/shader.js +0 -195
  575. package/dist/es5/classes/shader.js.map +0 -1
  576. package/dist/es5/classes/texture-2d.js.map +0 -1
  577. package/dist/es5/classes/texture-3d.js +0 -142
  578. package/dist/es5/classes/texture-3d.js.map +0 -1
  579. package/dist/es5/classes/texture-cube.js +0 -202
  580. package/dist/es5/classes/texture-cube.js.map +0 -1
  581. package/dist/es5/classes/texture-formats.js +0 -87
  582. package/dist/es5/classes/texture-formats.js.map +0 -1
  583. package/dist/es5/classes/texture.js.map +0 -1
  584. package/dist/es5/classes/transform-feedback.js +0 -267
  585. package/dist/es5/classes/transform-feedback.js.map +0 -1
  586. package/dist/es5/classes/uniform-buffer-layout.js +0 -130
  587. package/dist/es5/classes/uniform-buffer-layout.js.map +0 -1
  588. package/dist/es5/classes/uniforms.js +0 -232
  589. package/dist/es5/classes/uniforms.js.map +0 -1
  590. package/dist/es5/classes/vertex-array-object.js +0 -337
  591. package/dist/es5/classes/vertex-array-object.js.map +0 -1
  592. package/dist/es5/classes/vertex-array.js +0 -465
  593. package/dist/es5/classes/vertex-array.js.map +0 -1
  594. package/dist/es5/classes/webgl-buffer.js.map +0 -1
  595. package/dist/es5/classes/webgl-resource.js.map +0 -1
  596. package/dist/es5/context/context/create-context.js.map +0 -1
  597. package/dist/es5/context/context/get-canvas.js +0 -40
  598. package/dist/es5/context/context/get-canvas.js.map +0 -1
  599. package/dist/es5/context/context/resize-context.js +0 -23
  600. package/dist/es5/context/context/resize-context.js.map +0 -1
  601. package/dist/es5/context/parameters/webgl-parameters.js.map +0 -1
  602. package/dist/es5/debug/debug-program-configuration.js +0 -76
  603. package/dist/es5/debug/debug-program-configuration.js.map +0 -1
  604. package/dist/es5/debug/debug-uniforms.js +0 -156
  605. package/dist/es5/debug/debug-uniforms.js.map +0 -1
  606. package/dist/es5/debug/debug-vertex-array.js +0 -126
  607. package/dist/es5/debug/debug-vertex-array.js.map +0 -1
  608. package/dist/es5/helpers/get-program-bindings.js.map +0 -1
  609. package/dist/es5/helpers/program-bindings.js +0 -2
  610. package/dist/es5/types/accessor.d.ts +0 -29
  611. package/dist/es5/webgl-utils/attribute-utils.js +0 -186
  612. package/dist/es5/webgl-utils/attribute-utils.js.map +0 -1
  613. package/dist/es5/webgl-utils/constants-to-keys.js.map +0 -1
  614. package/dist/es5/webgl-utils/format-utils.js +0 -58
  615. package/dist/es5/webgl-utils/format-utils.js.map +0 -1
  616. package/dist/es5/webgl-utils/get-error.js +0 -49
  617. package/dist/es5/webgl-utils/get-error.js.map +0 -1
  618. package/dist/es5/webgl-utils/index.js +0 -74
  619. package/dist/es5/webgl-utils/index.js.map +0 -1
  620. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  621. package/dist/es5/webgl-utils/request-animation-frame.js +0 -16
  622. package/dist/es5/webgl-utils/request-animation-frame.js.map +0 -1
  623. package/dist/es5/webgl-utils/texture-utils.js +0 -61
  624. package/dist/es5/webgl-utils/texture-utils.js.map +0 -1
  625. package/dist/es5/webgl-utils/typed-array-utils.js.map +0 -1
  626. package/dist/esm/_deprecated/context-api.js +0 -70
  627. package/dist/esm/_deprecated/context-api.js.map +0 -1
  628. package/dist/esm/_deprecated/features.js +0 -111
  629. package/dist/esm/_deprecated/features.js.map +0 -1
  630. package/dist/esm/adapter/converters/set-device-parameters.js.map +0 -1
  631. package/dist/esm/adapter/converters/webgpu-texture-formats.js +0 -285
  632. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +0 -1
  633. package/dist/esm/adapter/webgl-shader.js.map +0 -1
  634. package/dist/esm/classes/accessor.d.ts +0 -28
  635. package/dist/esm/classes/accessor.js.map +0 -1
  636. package/dist/esm/classes/clear.js +0 -105
  637. package/dist/esm/classes/clear.js.map +0 -1
  638. package/dist/esm/classes/copy-and-blit.js +0 -338
  639. package/dist/esm/classes/copy-and-blit.js.map +0 -1
  640. package/dist/esm/classes/framebuffer.js +0 -656
  641. package/dist/esm/classes/framebuffer.js.map +0 -1
  642. package/dist/esm/classes/program-configuration.js +0 -73
  643. package/dist/esm/classes/program-configuration.js.map +0 -1
  644. package/dist/esm/classes/program.js +0 -379
  645. package/dist/esm/classes/program.js.map +0 -1
  646. package/dist/esm/classes/query.js +0 -145
  647. package/dist/esm/classes/query.js.map +0 -1
  648. package/dist/esm/classes/renderbuffer-formats.js.map +0 -1
  649. package/dist/esm/classes/renderbuffer.js.map +0 -1
  650. package/dist/esm/classes/shader.js +0 -118
  651. package/dist/esm/classes/shader.js.map +0 -1
  652. package/dist/esm/classes/texture-2d.js +0 -36
  653. package/dist/esm/classes/texture-2d.js.map +0 -1
  654. package/dist/esm/classes/texture-3d.js +0 -76
  655. package/dist/esm/classes/texture-3d.js.map +0 -1
  656. package/dist/esm/classes/texture-cube.js +0 -130
  657. package/dist/esm/classes/texture-cube.js.map +0 -1
  658. package/dist/esm/classes/texture-formats.js +0 -98
  659. package/dist/esm/classes/texture-formats.js.map +0 -1
  660. package/dist/esm/classes/texture.js.map +0 -1
  661. package/dist/esm/classes/transform-feedback.js +0 -198
  662. package/dist/esm/classes/transform-feedback.js.map +0 -1
  663. package/dist/esm/classes/uniform-buffer-layout.js +0 -104
  664. package/dist/esm/classes/uniform-buffer-layout.js.map +0 -1
  665. package/dist/esm/classes/uniforms.js +0 -250
  666. package/dist/esm/classes/uniforms.js.map +0 -1
  667. package/dist/esm/classes/vertex-array-object.js +0 -261
  668. package/dist/esm/classes/vertex-array-object.js.map +0 -1
  669. package/dist/esm/classes/vertex-array.js +0 -408
  670. package/dist/esm/classes/vertex-array.js.map +0 -1
  671. package/dist/esm/classes/webgl-buffer.js.map +0 -1
  672. package/dist/esm/classes/webgl-resource.js.map +0 -1
  673. package/dist/esm/context/context/create-context.js.map +0 -1
  674. package/dist/esm/context/context/get-canvas.js +0 -31
  675. package/dist/esm/context/context/get-canvas.js.map +0 -1
  676. package/dist/esm/context/context/resize-context.js +0 -15
  677. package/dist/esm/context/context/resize-context.js.map +0 -1
  678. package/dist/esm/context/parameters/webgl-parameters.js +0 -2
  679. package/dist/esm/context/parameters/webgl-parameters.js.map +0 -1
  680. package/dist/esm/debug/debug-program-configuration.js +0 -40
  681. package/dist/esm/debug/debug-program-configuration.js.map +0 -1
  682. package/dist/esm/debug/debug-uniforms.js +0 -108
  683. package/dist/esm/debug/debug-uniforms.js.map +0 -1
  684. package/dist/esm/debug/debug-vertex-array.js +0 -118
  685. package/dist/esm/debug/debug-vertex-array.js.map +0 -1
  686. package/dist/esm/helpers/get-program-bindings.js +0 -228
  687. package/dist/esm/helpers/get-program-bindings.js.map +0 -1
  688. package/dist/esm/helpers/program-bindings.js +0 -2
  689. package/dist/esm/types/accessor.d.ts +0 -29
  690. package/dist/esm/webgl-utils/attribute-utils.js +0 -182
  691. package/dist/esm/webgl-utils/attribute-utils.js.map +0 -1
  692. package/dist/esm/webgl-utils/constants-to-keys.js.map +0 -1
  693. package/dist/esm/webgl-utils/format-utils.js +0 -45
  694. package/dist/esm/webgl-utils/format-utils.js.map +0 -1
  695. package/dist/esm/webgl-utils/get-error.js +0 -41
  696. package/dist/esm/webgl-utils/get-error.js.map +0 -1
  697. package/dist/esm/webgl-utils/index.js +0 -5
  698. package/dist/esm/webgl-utils/index.js.map +0 -1
  699. package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  700. package/dist/esm/webgl-utils/request-animation-frame.js +0 -7
  701. package/dist/esm/webgl-utils/request-animation-frame.js.map +0 -1
  702. package/dist/esm/webgl-utils/texture-utils.js +0 -48
  703. package/dist/esm/webgl-utils/texture-utils.js.map +0 -1
  704. package/dist/esm/webgl-utils/typed-array-utils.js.map +0 -1
  705. package/dist/helpers/get-program-bindings.d.ts +0 -8
  706. package/dist/helpers/get-program-bindings.d.ts.map +0 -1
  707. package/dist/helpers/get-program-bindings.js +0 -228
  708. package/dist/helpers/get-program-bindings.js.map +0 -1
  709. package/dist/helpers/program-bindings.d.ts +0 -41
  710. package/dist/helpers/program-bindings.d.ts.map +0 -1
  711. package/dist/helpers/program-bindings.js +0 -2
  712. package/dist/types/accessor.d.ts +0 -29
  713. package/dist/webgl-utils/attribute-utils.d.ts +0 -18
  714. package/dist/webgl-utils/attribute-utils.d.ts.map +0 -1
  715. package/dist/webgl-utils/attribute-utils.js +0 -182
  716. package/dist/webgl-utils/attribute-utils.js.map +0 -1
  717. package/dist/webgl-utils/constants-to-keys.d.ts +0 -4
  718. package/dist/webgl-utils/constants-to-keys.d.ts.map +0 -1
  719. package/dist/webgl-utils/constants-to-keys.js.map +0 -1
  720. package/dist/webgl-utils/format-utils.d.ts +0 -3
  721. package/dist/webgl-utils/format-utils.d.ts.map +0 -1
  722. package/dist/webgl-utils/format-utils.js +0 -45
  723. package/dist/webgl-utils/format-utils.js.map +0 -1
  724. package/dist/webgl-utils/get-error.d.ts +0 -3
  725. package/dist/webgl-utils/get-error.d.ts.map +0 -1
  726. package/dist/webgl-utils/get-error.js +0 -41
  727. package/dist/webgl-utils/get-error.js.map +0 -1
  728. package/dist/webgl-utils/index.d.ts +0 -5
  729. package/dist/webgl-utils/index.d.ts.map +0 -1
  730. package/dist/webgl-utils/index.js +0 -5
  731. package/dist/webgl-utils/index.js.map +0 -1
  732. package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +0 -1
  733. package/dist/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  734. package/dist/webgl-utils/request-animation-frame.d.ts +0 -4
  735. package/dist/webgl-utils/request-animation-frame.d.ts.map +0 -1
  736. package/dist/webgl-utils/request-animation-frame.js +0 -7
  737. package/dist/webgl-utils/request-animation-frame.js.map +0 -1
  738. package/dist/webgl-utils/texture-utils.d.ts +0 -15
  739. package/dist/webgl-utils/texture-utils.d.ts.map +0 -1
  740. package/dist/webgl-utils/texture-utils.js +0 -48
  741. package/dist/webgl-utils/texture-utils.js.map +0 -1
  742. package/dist/webgl-utils/typed-array-utils.d.ts.map +0 -1
  743. package/dist/webgl-utils/typed-array-utils.js.map +0 -1
  744. package/src/.DS_Store +0 -0
  745. package/src/_deprecated/context-api.ts +0 -140
  746. package/src/_deprecated/features.ts +0 -159
  747. package/src/adapter/converters/webgpu-texture-formats.ts +0 -167
  748. package/src/classes/accessor.d.ts +0 -28
  749. package/src/classes/accessor.js +0 -129
  750. package/src/classes/accessor.ts.disabled +0 -159
  751. package/src/classes/clear.ts +0 -108
  752. package/src/classes/copy-and-blit.ts +0 -460
  753. package/src/classes/framebuffer.ts +0 -763
  754. package/src/classes/program-configuration.ts +0 -77
  755. package/src/classes/program.ts +0 -431
  756. package/src/classes/query.ts +0 -171
  757. package/src/classes/renderbuffer.ts +0 -154
  758. package/src/classes/shader.ts +0 -129
  759. package/src/classes/texture-2d.ts +0 -35
  760. package/src/classes/texture-3d.ts +0 -123
  761. package/src/classes/texture-cube.ts +0 -162
  762. package/src/classes/texture-formats.ts +0 -171
  763. package/src/classes/texture.ts +0 -965
  764. package/src/classes/transform-feedback.ts +0 -191
  765. package/src/classes/uniform-buffer-layout.ts +0 -113
  766. package/src/classes/uniforms.ts +0 -394
  767. package/src/classes/vertex-array-object.ts +0 -339
  768. package/src/classes/vertex-array.ts +0 -484
  769. package/src/context/context/get-canvas.ts +0 -37
  770. package/src/context/context/resize-context.ts +0 -37
  771. package/src/context/parameters/webgl-parameters.ts +0 -197
  772. package/src/debug/debug-program-configuration.ts +0 -32
  773. package/src/debug/debug-uniforms.ts +0 -100
  774. package/src/debug/debug-vertex-array.ts +0 -123
  775. package/src/helpers/get-program-bindings.ts +0 -244
  776. package/src/helpers/program-bindings.ts +0 -46
  777. package/src/types/accessor.d.ts +0 -29
  778. package/src/webgl-utils/attribute-utils.ts +0 -171
  779. package/src/webgl-utils/format-utils.ts +0 -43
  780. package/src/webgl-utils/get-error.ts +0 -56
  781. package/src/webgl-utils/index.ts +0 -12
  782. package/src/webgl-utils/request-animation-frame.ts +0 -14
  783. package/src/webgl-utils/texture-utils.ts +0 -60
@@ -1,23 +1,6 @@
1
+ import {assert, checkProps, Buffer, AccessorObject} from '@luma.gl/api';
1
2
  import GL from '@luma.gl/constants';
2
- import {getTypedArrayFromGLType} from '../webgl-utils';
3
- import {checkProps, assert} from '../utils/index';
4
- import {Buffer} from '@luma.gl/core/';
5
-
6
- export interface AccessorObject {
7
- buffer?: Buffer;
8
- offset?: number;
9
- stride?: number;
10
- type?: number;
11
- size?: number;
12
- divisor?: number;
13
- normalized?: boolean;
14
- integer?: boolean;
15
- index?: number;
16
- /** @deprecated Use .divisor */
17
- instanced?: boolean;
18
- /** @deprecated Use .divisor */
19
- isInstanced?: boolean;
20
- }
3
+ import {getTypedArrayFromGLType} from './typed-array-utils';
21
4
 
22
5
  const DEFAULT_ACCESSOR_VALUES = {
23
6
  offset: 0,
@@ -36,28 +19,26 @@ const PROP_CHECKS = {
36
19
  }
37
20
  };
38
21
 
22
+ export default class Accessor implements AccessorObject {
23
+ offset?: number;
24
+ stride?: number;
25
+ type?: number;
26
+ size?: number;
27
+ divisor?: number;
28
+ normalized?: boolean;
29
+ integer?: boolean;
39
30
 
40
- // @ts-nocheck members are added dynamically
41
- export default class Accessor {
42
- // buffer: Buffer | undefined = undefined;
43
- // index: number;
44
-
45
- // offset: number;
46
- // stride: number;
47
- // type: number;
48
- // size: number;
49
- // divisor: number;
50
- // normalized: boolean;
51
- // integer: boolean;
31
+ buffer?: Buffer;
32
+ index?: number;
52
33
 
53
- static getBytesPerElement(accessor): number {
34
+ static getBytesPerElement(accessor: Accessor | AccessorObject): number {
54
35
  // TODO: using `FLOAT` when type is not specified,
55
36
  // ensure this assumption is valid or force API to specify type.
56
37
  const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);
57
38
  return ArrayType.BYTES_PER_ELEMENT;
58
39
  }
59
40
 
60
- static getBytesPerVertex(accessor): number {
41
+ static getBytesPerVertex(accessor: AccessorObject): number {
61
42
  assert(accessor.size);
62
43
  // TODO: using `FLOAT` when type is not specified,
63
44
  // ensure this assumption is valid or force API to specify type.
@@ -69,11 +50,11 @@ export default class Accessor {
69
50
  // Usually [programAccessor, bufferAccessor, appAccessor]
70
51
  // All props will be set in the returned object.
71
52
  // TODO check for conflicts between values in the supplied accessors
72
- static resolve(...accessors): Accessor {
53
+ static resolve(...accessors: AccessorObject[]): Accessor {
73
54
  return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]); // Default values
74
55
  }
75
56
 
76
- constructor(...accessors: any[]) {
57
+ constructor(...accessors: AccessorObject[]) {
77
58
  accessors.forEach((accessor) => this._assign(accessor)); // Merge in sequence
78
59
  Object.freeze(this);
79
60
  }
@@ -96,7 +77,7 @@ export default class Accessor {
96
77
  // PRIVATE
97
78
 
98
79
  // eslint-disable-next-line complexity, max-statements
99
- _assign(props: AccessorObject = {}) {
80
+ _assign(props: AccessorObject = {}): this {
100
81
  props = checkProps('Accessor', props, PROP_CHECKS);
101
82
 
102
83
  if (props.type !== undefined) {
@@ -104,7 +85,7 @@ export default class Accessor {
104
85
 
105
86
  // Auto-deduce integer type?
106
87
  if (props.type === GL.INT || props.type === GL.UNSIGNED_INT) {
107
- this.integer = true;
88
+ this.integer = true;
108
89
  }
109
90
  }
110
91
  if (props.size !== undefined) {
@@ -116,6 +97,11 @@ export default class Accessor {
116
97
  if (props.stride !== undefined) {
117
98
  this.stride = props.stride;
118
99
  }
100
+ // @ts-expect-error
101
+ if (props.normalize !== undefined) {
102
+ // @ts-expect-error
103
+ this.normalized = props.normalize;
104
+ }
119
105
  if (props.normalized !== undefined) {
120
106
  this.normalized = props.normalized;
121
107
  }
@@ -144,13 +130,28 @@ export default class Accessor {
144
130
  }
145
131
 
146
132
  // DEPRECATED
133
+ // @ts-expect-error
147
134
  if (props.instanced !== undefined) {
135
+ // @ts-expect-error
148
136
  this.divisor = props.instanced ? 1 : 0;
149
137
  }
138
+ // @ts-expect-error
150
139
  if (props.isInstanced !== undefined) {
140
+ // @ts-expect-error
151
141
  this.divisor = props.isInstanced ? 1 : 0;
152
142
  }
153
143
 
144
+ if (this.offset === undefined) delete this.offset;
145
+ if (this.stride === undefined) delete this.stride;
146
+ if (this.type === undefined) delete this.type;
147
+ if (this.size === undefined) delete this.size;
148
+ if (this.divisor === undefined) delete this.divisor;
149
+ if (this.normalized === undefined) delete this.normalized;
150
+ if (this.integer === undefined) delete this.integer;
151
+
152
+ if (this.buffer === undefined) delete this.buffer;
153
+ if (this.index === undefined) delete this.index;
154
+
154
155
  return this;
155
156
  }
156
157
  }
@@ -1,11 +1,13 @@
1
- import {log, assert, checkProps} from '@luma.gl/api';
2
- import {Buffer, BufferProps} from '@luma.gl/api';
1
+ import type {Device, BufferProps, TypedArray} from '@luma.gl/api';
2
+ import {Buffer, log, assert, checkProps} from '@luma.gl/api';
3
3
  import GL from '@luma.gl/constants';
4
- import {getWebGL2Context, assertWebGL2Context} from '../context/context/webgl-checks';
4
+ import {assertWebGL2Context} from '../context/context/webgl-checks';
5
5
  import {AccessorObject} from '../types';
6
6
  import Accessor from './accessor';
7
- import {getGLTypeFromTypedArray, getTypedArrayFromGLType} from '../webgl-utils/typed-array-utils';
7
+ import {getGLTypeFromTypedArray, getTypedArrayFromGLType} from './typed-array-utils';
8
+
8
9
  import WebGLDevice from '../adapter/webgl-device';
10
+ import WEBGLBuffer from '../adapter/resources/webgl-buffer';
9
11
 
10
12
  const DEBUG_DATA_LENGTH = 10;
11
13
 
@@ -38,13 +40,32 @@ const PROP_CHECKS_SET_PROPS = {
38
40
  removedProps: DEPRECATED_PROPS
39
41
  };
40
42
 
43
+ function getWEBGLBufferProps(props: ClassicBufferProps | ArrayBufferView | number): BufferProps {
44
+ // Signature `new Buffer(gl, new Float32Array(...)`
45
+ if (ArrayBuffer.isView(props)) {
46
+ return {data: props};
47
+ }
48
+
49
+ // Signature: `new Buffer(gl, 100)`
50
+ else if (typeof props === 'number') {
51
+ return {byteLength: props as number};
52
+ }
53
+
54
+ props = checkProps('Buffer', props, PROP_CHECKS_INITIALIZE);
55
+ const bufferProps = {...props as ClassicBufferProps};
56
+ if (bufferProps.offset) {
57
+ bufferProps.byteOffset = bufferProps.offset;
58
+ }
59
+ return bufferProps;
60
+ }
61
+
41
62
  /** WebGL Buffer interface */
42
- export type WebGLBufferProps = BufferProps & {
63
+ export type ClassicBufferProps = BufferProps & {
43
64
  handle?: WebGLBuffer;
44
- data?: any; // ArrayBufferView;
45
- byteLength?: number;
65
+
46
66
  target?: number;
47
- usage?: number;
67
+ webglUsage?: number;
68
+
48
69
  accessor?: AccessorObject;
49
70
 
50
71
  /** @deprecated */
@@ -58,41 +79,29 @@ export type WebGLBufferProps = BufferProps & {
58
79
  }
59
80
 
60
81
  /** WebGL Buffer interface */
61
- export default class WEBGLBuffer extends Buffer {
62
- readonly device: WebGLDevice;
63
- readonly gl: WebGLRenderingContext;
64
- readonly gl2: WebGL2RenderingContext | null;
65
- readonly handle: WebGLBuffer;
66
-
67
- target: number;
82
+ export default class ClassicBuffer extends WEBGLBuffer {
68
83
  usage: number;
69
-
70
- byteLength: number;
71
- bytesUsed: number;
72
-
73
84
  accessor: Accessor;
74
85
 
75
- debugData;
76
-
77
- constructor(gl: WebGLRenderingContext, props?: BufferProps);
78
- constructor(gl: WebGLRenderingContext, data: ArrayBufferView | number[]);
79
- constructor(gl: WebGLRenderingContext, byteLength: number);
86
+ constructor(device: Device | WebGLRenderingContext, props?: ClassicBufferProps);
87
+ constructor(device: Device | WebGLRenderingContext, data: ArrayBufferView | number[]);
88
+ constructor(device: Device | WebGLRenderingContext, byteLength: number);
80
89
 
81
- constructor(gl: WebGLRenderingContext, props = {}) {
82
- super(WebGLDevice.attach(gl), props);
90
+ constructor(device: Device | WebGLRenderingContext, props = {}) {
91
+ super(WebGLDevice.attach(device), getWEBGLBufferProps(props));
83
92
 
84
- this.gl = gl;
85
- this.gl2 = getWebGL2Context(gl);
86
- const handle = typeof props === 'object' ? (props as BufferProps).handle : undefined;
87
- this.handle = handle || this.gl.createBuffer();
93
+ // Base class initializes
94
+ // this.initialize(props);
88
95
 
89
- // In WebGL1, need to make sure we use GL.ELEMENT_ARRAY_BUFFER when initializing element buffers
90
- // otherwise buffer type will lock to generic (non-element) buffer
91
- // In WebGL2, we can use GL.COPY_READ_BUFFER which avoids locking the type here
92
- // @ts-expect-error
93
- this.target = props.target || (this.gl.webgl2 ? GL.COPY_READ_BUFFER : GL.ARRAY_BUFFER);
96
+ // Deprecated: Merge main props and accessor
97
+ this.setAccessor(Object.assign({}, props, (props as ClassicBufferProps).accessor));
94
98
 
95
- this.initialize(props);
99
+ // infer GL type from supplied typed array
100
+ if (this.props.data) {
101
+ const type = getGLTypeFromTypedArray(this.props.data as TypedArray);
102
+ assert(type);
103
+ this.setAccessor(new Accessor(this.accessor, {type}));
104
+ }
96
105
 
97
106
  Object.seal(this);
98
107
  }
@@ -102,18 +111,21 @@ export default class WEBGLBuffer extends Buffer {
102
111
  this.removeStats();
103
112
  this.trackDeallocatedMemory();
104
113
  this.gl.deleteBuffer(this.handle);
105
- // @ts-expect-error
106
- this.handle = null;
114
+ // this.handle = null;
115
+ this.destroyed = true;
107
116
  }
108
117
  }
109
118
 
119
+ write(data: TypedArray, byteOffset?: number): void {
120
+ this.subData({data, offset: byteOffset});
121
+ }
110
122
  // returns number of elements in the buffer (assuming that the full buffer is used)
111
- getElementCount(accessor = this.accessor): number {
123
+ getElementCount(accessor: AccessorObject = this.accessor): number {
112
124
  return Math.round(this.byteLength / Accessor.getBytesPerElement(accessor));
113
125
  }
114
126
 
115
127
  // returns number of vertices in the buffer (assuming that the full buffer is used)
116
- getVertexCount(accessor = this.accessor): number {
128
+ getVertexCount(accessor: AccessorObject = this.accessor): number {
117
129
  return Math.round(this.byteLength / Accessor.getBytesPerVertex(accessor));
118
130
  }
119
131
 
@@ -121,7 +133,7 @@ export default class WEBGLBuffer extends Buffer {
121
133
  // Signature: `new Buffer(gl, {data: new Float32Array(...)})`
122
134
  // Signature: `new Buffer(gl, new Float32Array(...))`
123
135
  // Signature: `new Buffer(gl, 100)`
124
- initialize(props: BufferProps = {}): this {
136
+ initialize(props: ClassicBufferProps = {}): this {
125
137
  // Signature `new Buffer(gl, new Float32Array(...)`
126
138
  if (ArrayBuffer.isView(props)) {
127
139
  props = {data: props};
@@ -136,7 +148,7 @@ export default class WEBGLBuffer extends Buffer {
136
148
  props = checkProps('Buffer', props, PROP_CHECKS_INITIALIZE);
137
149
 
138
150
  // Initialize member fields
139
- this.usage = props.usage || GL.STATIC_DRAW;
151
+ this.webglUsage = props.webglUsage || GL.STATIC_DRAW;
140
152
  this.debugData = null;
141
153
 
142
154
  // Deprecated: Merge main props and accessor
@@ -152,7 +164,7 @@ export default class WEBGLBuffer extends Buffer {
152
164
  return this;
153
165
  }
154
166
 
155
- setProps(props: BufferProps): this {
167
+ setProps(props: ClassicBufferProps): this {
156
168
  props = checkProps('Buffer', props, PROP_CHECKS_SET_PROPS);
157
169
 
158
170
  if ('accessor' in props) {
@@ -164,11 +176,12 @@ export default class WEBGLBuffer extends Buffer {
164
176
 
165
177
  // Optionally stores an accessor with the buffer, makes it easier to use it as an attribute later
166
178
  // {type, size = 1, offset = 0, stride = 0, normalized = false, integer = false, divisor = 0}
167
- setAccessor(accessor): this {
179
+ setAccessor(accessor: AccessorObject | Accessor): this {
168
180
  // NOTE: From luma.gl v7.0, Accessors have an optional `buffer `field
169
181
  // (mainly to support "interleaving")
170
182
  // To avoid confusion, ensure `buffer.accessor` does not have a `buffer.accessor.buffer` field:
171
183
  accessor = Object.assign({}, accessor);
184
+ // @ts-expect-error
172
185
  delete accessor.buffer;
173
186
 
174
187
  // This new statement ensures that an "accessor object" is re-packaged as an Accessor instance
@@ -181,7 +194,7 @@ export default class WEBGLBuffer extends Buffer {
181
194
  // Returns:
182
195
  // `true`: buffer was reallocated, data was cleared
183
196
  // `false`: buffer was big enough, data is intact
184
- reallocate(byteLength) {
197
+ reallocate(byteLength: number): boolean {
185
198
  if (byteLength > this.byteLength) {
186
199
  this._setByteLength(byteLength);
187
200
  return true;
@@ -191,7 +204,7 @@ export default class WEBGLBuffer extends Buffer {
191
204
  }
192
205
 
193
206
  // Update with new data. Reinitializes the buffer
194
- setData(props) {
207
+ setData(props: ClassicBufferProps) {
195
208
  return this.initialize(props);
196
209
  }
197
210
 
@@ -200,14 +213,14 @@ export default class WEBGLBuffer extends Buffer {
200
213
  // Offset into buffer
201
214
  // WebGL2 only: Offset into srcData
202
215
  // WebGL2 only: Number of bytes to be copied
203
- subData(props) {
216
+ subData(options: TypedArray | {data: TypedArray, offset?: number; srcOffset?: number; byteLength?: number, length?: number}) {
204
217
  // Signature: buffer.subData(new Float32Array([...]))
205
- if (ArrayBuffer.isView(props)) {
206
- props = {data: props};
218
+ if (ArrayBuffer.isView(options)) {
219
+ options = {data: options};
207
220
  }
208
221
 
209
- const {data, offset = 0, srcOffset = 0} = props;
210
- const byteLength = props.byteLength || props.length;
222
+ const {data, offset = 0, srcOffset = 0} = options;
223
+ const byteLength = options.byteLength || options.length;
211
224
 
212
225
  assert(data);
213
226
 
@@ -235,7 +248,7 @@ export default class WEBGLBuffer extends Buffer {
235
248
  }
236
249
 
237
250
  /**
238
- * Copies part of the data of another buffer into this buffer
251
+ * Copies part of the data of another buffer into this buffer
239
252
  * @note WEBGL2 ONLY
240
253
  */
241
254
  copyData(options: {
@@ -251,7 +264,7 @@ export default class WEBGLBuffer extends Buffer {
251
264
  // Use GL.COPY_READ_BUFFER+GL.COPY_WRITE_BUFFER avoid disturbing other targets and locking type
252
265
  gl.bindBuffer(GL.COPY_READ_BUFFER, sourceBuffer.handle);
253
266
  gl.bindBuffer(GL.COPY_WRITE_BUFFER, this.handle);
254
- gl2.copyBufferSubData(GL.COPY_READ_BUFFER, GL.COPY_WRITE_BUFFER, readOffset, writeOffset, size);
267
+ gl2?.copyBufferSubData(GL.COPY_READ_BUFFER, GL.COPY_WRITE_BUFFER, readOffset, writeOffset, size);
255
268
  gl.bindBuffer(GL.COPY_READ_BUFFER, null);
256
269
  gl.bindBuffer(GL.COPY_WRITE_BUFFER, null);
257
270
 
@@ -301,7 +314,7 @@ export default class WEBGLBuffer extends Buffer {
301
314
 
302
315
  // Use GL.COPY_READ_BUFFER to avoid disturbing other targets and locking type
303
316
  this.gl.bindBuffer(GL.COPY_READ_BUFFER, this.handle);
304
- this.gl2.getBufferSubData(GL.COPY_READ_BUFFER, srcByteOffset, dstData, dstOffset, length);
317
+ this.gl2?.getBufferSubData(GL.COPY_READ_BUFFER, srcByteOffset, dstData, dstOffset, length);
305
318
  this.gl.bindBuffer(GL.COPY_READ_BUFFER, null);
306
319
 
307
320
  // TODO - update local `data` if offsets are 0
@@ -318,7 +331,6 @@ export default class WEBGLBuffer extends Buffer {
318
331
  bind(options?: {target?: number; index?: any; offset?: number; size: any}): this {
319
332
  const {
320
333
  target = this.target, // target for the bind operation
321
- // @ts-expect-error
322
334
  index = this.accessor && this.accessor.index, // index = index of target (indexed bind point)
323
335
  offset = 0,
324
336
  size
@@ -328,10 +340,10 @@ export default class WEBGLBuffer extends Buffer {
328
340
  // uniform buffer state. Instead indexed bindings need to be made.
329
341
  if (target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER) {
330
342
  if (size !== undefined) {
331
- this.gl2.bindBufferRange(target, index, this.handle, offset, size);
343
+ this.gl2?.bindBufferRange(target, index, this.handle, offset, size);
332
344
  } else {
333
345
  assert(offset === 0); // Make sure offset wasn't supplied
334
- this.gl2.bindBufferBase(target, index, this.handle);
346
+ this.gl2?.bindBufferBase(target, index, this.handle);
335
347
  }
336
348
  } else {
337
349
  this.gl.bindBuffer(target, this.handle);
@@ -341,11 +353,10 @@ export default class WEBGLBuffer extends Buffer {
341
353
  }
342
354
 
343
355
  unbind(options?: {target?: any; index?: any}): this {
344
- // @ts-expect-error
345
356
  const {target = this.target, index = this.accessor && this.accessor.index} = options || {};
346
357
  const isIndexedBuffer = target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER;
347
358
  if (isIndexedBuffer) {
348
- this.gl2.bindBufferBase(target, index, null);
359
+ this.gl2?.bindBufferBase(target, index, null);
349
360
  } else {
350
361
  this.gl.bindBuffer(target, null);
351
362
  }
@@ -380,7 +391,7 @@ export default class WEBGLBuffer extends Buffer {
380
391
 
381
392
  const target = this._getTarget();
382
393
  this.gl.bindBuffer(target, this.handle);
383
- this.gl.bufferData(target, byteLength, this.usage);
394
+ this.gl.bufferData(target, byteLength, this.webglUsage);
384
395
  this.gl.bufferSubData(target, offset, data);
385
396
  this.gl.bindBuffer(target, null);
386
397
 
@@ -397,7 +408,7 @@ export default class WEBGLBuffer extends Buffer {
397
408
  }
398
409
 
399
410
  // Allocate a GPU buffer of specified size.
400
- _setByteLength(byteLength: number, usage = this.usage): this {
411
+ _setByteLength(byteLength: number, webglUsage = this.webglUsage): this {
401
412
  assert(byteLength >= 0);
402
413
 
403
414
  this.trackDeallocatedMemory();
@@ -412,10 +423,10 @@ export default class WEBGLBuffer extends Buffer {
412
423
 
413
424
  const target = this._getTarget();
414
425
  this.gl.bindBuffer(target, this.handle);
415
- this.gl.bufferData(target, data, usage);
426
+ this.gl.bufferData(target, data, webglUsage);
416
427
  this.gl.bindBuffer(target, null);
417
428
 
418
- this.usage = usage;
429
+ this.webglUsage = webglUsage;
419
430
  this.debugData = null;
420
431
  this.bytesUsed = byteLength;
421
432
  this.byteLength = byteLength;
@@ -432,7 +443,7 @@ export default class WEBGLBuffer extends Buffer {
432
443
  return this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.target;
433
444
  }
434
445
 
435
- _getAvailableElementCount(srcByteOffset) {
446
+ _getAvailableElementCount(srcByteOffset: number) {
436
447
  const ArrayType = getTypedArrayFromGLType(this.accessor.type || GL.FLOAT, {clamped: false});
437
448
  const sourceElementOffset = srcByteOffset / ArrayType.BYTES_PER_ELEMENT;
438
449
  return this.getElementCount() - sourceElementOffset;
@@ -448,7 +459,7 @@ export default class WEBGLBuffer extends Buffer {
448
459
 
449
460
  // RESOURCE METHODS
450
461
 
451
- getParameter(pname) {
462
+ getParameter(pname: GL): any {
452
463
  this.gl.bindBuffer(this.target, this.handle);
453
464
  const value = this.gl.getBufferParameter(this.target, pname);
454
465
  this.gl.bindBuffer(this.target, null);
@@ -460,23 +471,4 @@ export default class WEBGLBuffer extends Buffer {
460
471
  get type() {
461
472
  return this.accessor.type;
462
473
  }
463
-
464
- get bytes() {
465
- log.deprecated('Buffer.bytes', 'Buffer.byteLength')();
466
- return this.byteLength;
467
- }
468
-
469
- // DEPRECATIONS - v6.0
470
- // Deprecated in v6.x, but not warnings not properly implemented
471
- setByteLength(byteLength) {
472
- log.deprecated('setByteLength', 'reallocate')();
473
- return this.reallocate(byteLength);
474
- }
475
-
476
- // Deprecated in v6.x, but not warnings not properly implemented
477
- updateAccessor(opts) {
478
- log.deprecated('updateAccessor(...)', 'setAccessor(new Accessor(buffer.accessor, ...)')();
479
- this.accessor = new Accessor(this.accessor, opts);
480
- return this;
481
- }
482
474
  }
@@ -1,4 +1,8 @@
1
+ // luma.gl, MIT license
2
+
3
+ import {TypedArray} from '@luma.gl/api';
1
4
  import GL from '@luma.gl/constants';
5
+ import {GLType} from '../types/webgl'
2
6
 
3
7
  const ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';
4
8
 
@@ -18,7 +22,7 @@ type TypedArrayConstructor =
18
22
  * @param {*} arrayOrType
19
23
  * @returns
20
24
  */
21
- export function getGLTypeFromTypedArray(arrayOrType) {
25
+ export function getGLTypeFromTypedArray(arrayOrType: TypedArray): GLType {
22
26
  // If typed array, look up constructor
23
27
  const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
24
28
  switch (type) {
@@ -34,6 +34,8 @@ export function getContextState(gl: WebGLRenderingContext): ContextState {
34
34
  // @ts-expect-error
35
35
  gl.luma = contextState;
36
36
  }
37
- // @ts-expect-error
38
- return gl.luma;
37
+ throw new Error('context state without device');
38
+
39
+ // // @ts-expect-error
40
+ // return gl.luma;
39
41
  }
@@ -17,8 +17,8 @@
17
17
  * @param preserveDrawingBuffer Default render target buffers will not be automatically cleared and will preserve their values until cleared or overwritten
18
18
  * @param failIfMajorPerformanceCaveat Do not create if the system performance is low.
19
19
  */
20
-
21
20
  type ContextProps = {
21
+ type?: 'webgl' | 'webgl1' | 'webgl2' | string;
22
22
  webgl1?: boolean;
23
23
  webgl2?: boolean;
24
24
  onContextLost?: (event: Event) => void;
@@ -55,14 +55,21 @@ const DEFAULT_CONTEXT_PROPS: ContextProps = {
55
55
  canvas.addEventListener('webglcontextcreationerror', onCreateError, false);
56
56
 
57
57
  // Create the desired context
58
- let gl = null;
58
+ let gl: WebGLRenderingContext | null = null;
59
+
60
+ if (props.type === 'webgl2') {
61
+ props = {...props, webgl1: false};
62
+ }
63
+ if (props.type === 'webgl1') {
64
+ props = {...props, webgl2: false};
65
+ }
59
66
 
60
67
  // Prefer webgl2 over webgl1 if both are acceptable
61
68
  if (props.webgl2) {
62
- gl = gl || canvas.getContext('webgl2', props);
69
+ gl = gl || canvas.getContext('webgl2', props) as WebGL2RenderingContext | null;
63
70
  }
64
71
  if (props.webgl1) {
65
- gl = gl || canvas.getContext('webgl', props);
72
+ gl = gl || canvas.getContext('webgl', props) as WebGLRenderingContext | null;
66
73
  }
67
74
 
68
75
  // TODO are we removing this listener before giving it a chance to fire?
@@ -76,8 +83,36 @@ const DEFAULT_CONTEXT_PROPS: ContextProps = {
76
83
  );
77
84
  }
78
85
 
79
- canvas.addEventListener('webglcontextlost', props.onContextLost, false);
80
- canvas.addEventListener('webglcontextrestored', props.onContextRestored, false);
86
+ if (props.onContextLost) {
87
+ // Carefully extract and wrap callbacks to prevent addEventListener from rebinding them.
88
+ const {onContextLost} = props;
89
+ canvas.addEventListener('webglcontextlost',(event: Event) => onContextLost(event), false);
90
+ }
91
+ if (props.onContextRestored) {
92
+ // Carefully extract and wrap callbacks to prevent addEventListener from rebinding them.
93
+ const {onContextRestored} = props;
94
+ canvas.addEventListener('webglcontextrestored', (event: Event) => onContextRestored(event), false);
95
+ }
81
96
 
82
97
  return gl;
83
98
  }
99
+
100
+ /* TODO - can we call this asynchronously to catch the error events?
101
+ export async function createBrowserContextAsync(canvas: HTMLCanvasElement | OffscreenCanvas, props: ContextProps): Promise<WebGLRenderingContext> {
102
+ props = {...DEFAULT_CONTEXT_PROPS, ...props};
103
+
104
+ // Try to extract any extra information about why context creation failed
105
+ let errorMessage = null;
106
+ const onCreateError = (error) => (errorMessage = error.statusMessage || errorMessage);
107
+ canvas.addEventListener('webglcontextcreationerror', onCreateError, false);
108
+
109
+ const gl = createBrowserContext(canvas, props);
110
+
111
+ // Give the listener a chance to fire
112
+ await new Promise(resolve => setTimeout(resolve, 0));
113
+
114
+ canvas.removeEventListener('webglcontextcreationerror', onCreateError, false);
115
+
116
+ return gl;
117
+ }
118
+ */
@@ -0,0 +1,48 @@
1
+ const ERR_HEADLESSGL_FAILED =
2
+ 'Failed to create WebGL context in Node.js, headless gl returned null';
3
+
4
+ const ERR_HEADLESSGL_LOAD = `\
5
+ luma.gl: loaded under Node.js without headless gl installed, meaning that WebGL \
6
+ contexts can not be created. This may not be an error. For example, this is a \
7
+ typical configuration for isorender applications running on the server.`;
8
+
9
+ const CONTEXT_DEFAULTS = {
10
+ width: 1,
11
+ height: 1,
12
+ debug: true,
13
+ throwOnError: false
14
+ };
15
+
16
+ /** Duck typing for the main headless gl export, a function to create contexts */
17
+ export type HeadlessGL = (width: number, height: number, options: Record<string, unknown>) => WebGLRenderingContext;
18
+
19
+ let headlessGL: HeadlessGL | null = null;
20
+
21
+ /** By importing `gl` and registering it with this function, contexts can be created under Node.js */
22
+ export function registerHeadlessGL(headlessgl: HeadlessGL) {
23
+ headlessGL = headlessgl;
24
+ }
25
+
26
+ /** @returns true if headless gl is registered */
27
+ export function isHeadlessGLRegistered(): boolean {
28
+ return headlessGL !== null;
29
+ }
30
+
31
+ /** Create headless gl context (for running under Node.js) */
32
+ export function createHeadlessContext(options?: Record<string, any>): WebGLRenderingContext {
33
+ options = {...CONTEXT_DEFAULTS, ...options};
34
+
35
+ const {width, height, webgl1, webgl2} = options;
36
+
37
+ if (webgl2 && !webgl1) {
38
+ throw new Error('headless-gl does not support WebGL2');
39
+ }
40
+ if (!headlessGL) {
41
+ throw new Error(ERR_HEADLESSGL_LOAD);
42
+ }
43
+ const gl = headlessGL(width, height, options);
44
+ if (!gl) {
45
+ throw new Error(ERR_HEADLESSGL_FAILED);
46
+ }
47
+ return gl;
48
+ }