@luma.gl/webgl 8.6.0-alpha.5 → 9.0.0-alpha.2

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 (749) hide show
  1. package/README.md +3 -67
  2. package/dist/adapter/converters/device-parameters.d.ts +17 -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} +36 -5
  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 +208 -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 +27 -48
  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 +306 -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 +40 -0
  85. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -0
  86. package/dist/adapter/resources/webgl-framebuffer.js +265 -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 +19 -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 +400 -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 +13 -20
  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} +274 -229
  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 +58 -76
  113. package/dist/adapter/webgl-device.d.ts.map +1 -1
  114. package/dist/adapter/webgl-device.js +184 -111
  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} +53 -51
  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 +1 -0
  132. package/dist/context/context/create-context.d.ts.map +1 -1
  133. package/dist/context/context/create-context.js +12 -0
  134. package/dist/context/context/create-context.js.map +1 -1
  135. package/dist/context/context/device-pixels.d.ts +1 -1
  136. package/dist/context/context/device-pixels.d.ts.map +1 -1
  137. package/dist/context/context/device-pixels.js.map +1 -1
  138. package/dist/context/debug/spector.d.ts +18 -0
  139. package/dist/context/debug/spector.d.ts.map +1 -0
  140. package/dist/context/debug/spector.js +76 -0
  141. package/dist/context/debug/spector.js.map +1 -0
  142. package/dist/context/debug/webgl-developer-tools.d.ts +19 -0
  143. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -0
  144. package/dist/context/debug/webgl-developer-tools.js +121 -0
  145. package/dist/context/debug/webgl-developer-tools.js.map +1 -0
  146. package/dist/context/parameters/unified-parameter-api.d.ts +3 -2
  147. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  148. package/dist/context/parameters/unified-parameter-api.js +4 -4
  149. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  150. package/dist/context/parameters/webgl-parameter-tables.d.ts +40 -36
  151. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  152. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  153. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  154. package/dist/context/polyfill/polyfill-context.js +4 -3
  155. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  156. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  157. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  158. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  159. package/dist/context/state-tracker/track-context-state.js +25 -11
  160. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  161. package/dist/es5/adapter/converters/{set-device-parameters.js → device-parameters.js} +37 -5
  162. package/dist/es5/adapter/converters/device-parameters.js.map +1 -0
  163. package/dist/es5/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
  164. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -0
  165. package/dist/es5/adapter/converters/sampler-parameters.js +226 -0
  166. package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -0
  167. package/dist/es5/adapter/converters/texture-formats.js +1031 -0
  168. package/dist/es5/adapter/converters/texture-formats.js.map +1 -0
  169. package/dist/es5/adapter/converters/vertex-formats.js +45 -0
  170. package/dist/es5/adapter/converters/vertex-formats.js.map +1 -0
  171. package/dist/es5/adapter/device-helpers/device-features.js +46 -54
  172. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
  173. package/dist/es5/adapter/device-helpers/device-limits.js +1 -1
  174. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
  175. package/dist/es5/adapter/device-helpers/get-device-info.js +7 -7
  176. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
  177. package/dist/es5/adapter/helpers/attribute-utils.js +91 -0
  178. package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -0
  179. package/dist/es5/{helpers/get-program-bindings.js → adapter/helpers/get-shader-layout.js} +184 -87
  180. package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -0
  181. package/dist/es5/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
  182. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  183. package/dist/es5/adapter/helpers/set-uniform.js +125 -0
  184. package/dist/es5/adapter/helpers/set-uniform.js.map +1 -0
  185. package/dist/es5/adapter/helpers/uniforms.js +112 -0
  186. package/dist/es5/adapter/helpers/uniforms.js.map +1 -0
  187. package/dist/es5/{webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
  188. package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -0
  189. package/dist/es5/{classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +48 -98
  190. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -0
  191. package/dist/es5/{classes → adapter/objects}/webgl-resource.js +8 -3
  192. package/dist/es5/adapter/objects/webgl-resource.js.map +1 -0
  193. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +137 -0
  194. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  195. package/dist/es5/adapter/resources/webgl-buffer.js +243 -0
  196. package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -0
  197. package/dist/es5/adapter/resources/webgl-command-buffer.js +96 -0
  198. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -0
  199. package/dist/es5/adapter/resources/webgl-command-encoder.js +98 -0
  200. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -0
  201. package/dist/es5/adapter/resources/webgl-external-texture.js +2 -0
  202. package/dist/{esm/helpers/program-bindings.js.map → es5/adapter/resources/webgl-external-texture.js.map} +1 -1
  203. package/dist/es5/adapter/resources/webgl-framebuffer.js +345 -0
  204. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -0
  205. package/dist/es5/{classes/texture-2d.js → adapter/resources/webgl-render-pass.js} +25 -45
  206. package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -0
  207. package/dist/es5/adapter/resources/webgl-render-pipeline.js +505 -0
  208. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -0
  209. package/dist/es5/adapter/resources/webgl-sampler.js +96 -0
  210. package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -0
  211. package/dist/es5/adapter/{webgl-shader.js → resources/webgl-shader.js} +12 -18
  212. package/dist/es5/adapter/resources/webgl-shader.js.map +1 -0
  213. package/dist/es5/{classes/texture.js → adapter/resources/webgl-texture.js} +336 -260
  214. package/dist/es5/adapter/resources/webgl-texture.js.map +1 -0
  215. package/dist/es5/adapter/webgl-canvas-context.js +97 -0
  216. package/dist/es5/adapter/webgl-canvas-context.js.map +1 -0
  217. package/dist/es5/adapter/webgl-device.js +253 -133
  218. package/dist/es5/adapter/webgl-device.js.map +1 -1
  219. package/dist/es5/{classes → classic}/accessor.js +25 -1
  220. package/dist/es5/classic/accessor.js.map +1 -0
  221. package/dist/es5/{classes/webgl-buffer.js → classic/buffer.js} +74 -66
  222. package/dist/es5/classic/buffer.js.map +1 -0
  223. package/dist/es5/{webgl-utils → classic}/typed-array-utils.js +0 -0
  224. package/dist/es5/classic/typed-array-utils.js.map +1 -0
  225. package/dist/es5/context/context/context-state.js +1 -1
  226. package/dist/es5/context/context/context-state.js.map +1 -1
  227. package/dist/es5/context/context/create-context.js +12 -0
  228. package/dist/es5/context/context/create-context.js.map +1 -1
  229. package/dist/es5/context/context/device-pixels.js.map +1 -1
  230. package/dist/es5/context/debug/spector.js +133 -0
  231. package/dist/es5/context/debug/spector.js.map +1 -0
  232. package/dist/es5/context/debug/webgl-developer-tools.js +198 -0
  233. package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -0
  234. package/dist/es5/context/parameters/unified-parameter-api.js +7 -5
  235. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
  236. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
  237. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
  238. package/dist/es5/context/polyfill/polyfill-context.js +4 -3
  239. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
  240. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
  241. package/dist/es5/context/state-tracker/track-context-state.js +26 -11
  242. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
  243. package/dist/es5/index.js +65 -307
  244. package/dist/es5/index.js.map +1 -1
  245. package/dist/es5/init.js +1 -41
  246. package/dist/es5/init.js.map +1 -1
  247. package/dist/es5/{context/parameters/webgl-parameters.js → types/webgl.js} +1 -1
  248. package/dist/es5/types/webgl.js.map +1 -0
  249. package/dist/esm/adapter/converters/{set-device-parameters.js → device-parameters.js} +36 -5
  250. package/dist/esm/adapter/converters/device-parameters.js.map +1 -0
  251. package/dist/esm/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
  252. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -0
  253. package/dist/esm/adapter/converters/sampler-parameters.js +208 -0
  254. package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -0
  255. package/dist/esm/adapter/converters/texture-formats.js +954 -0
  256. package/dist/esm/adapter/converters/texture-formats.js.map +1 -0
  257. package/dist/esm/adapter/converters/vertex-formats.js +35 -0
  258. package/dist/esm/adapter/converters/vertex-formats.js.map +1 -0
  259. package/dist/esm/adapter/device-helpers/device-features.js +27 -48
  260. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
  261. package/dist/esm/adapter/device-helpers/device-limits.js +1 -0
  262. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
  263. package/dist/esm/adapter/device-helpers/get-device-info.js +7 -7
  264. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
  265. package/dist/esm/adapter/helpers/attribute-utils.js +81 -0
  266. package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -0
  267. package/dist/esm/adapter/helpers/get-shader-layout.js +306 -0
  268. package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -0
  269. package/dist/{webgl-utils → esm/adapter/helpers}/parse-shader-compiler-log.js +0 -0
  270. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  271. package/dist/esm/adapter/helpers/set-uniform.js +115 -0
  272. package/dist/esm/adapter/helpers/set-uniform.js.map +1 -0
  273. package/dist/esm/adapter/helpers/uniforms.js +99 -0
  274. package/dist/esm/adapter/helpers/uniforms.js.map +1 -0
  275. package/dist/{webgl-utils → esm/adapter/objects}/constants-to-keys.js +1 -0
  276. package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -0
  277. package/dist/{classes/renderbuffer.js → esm/adapter/objects/webgl-renderbuffer.js} +38 -72
  278. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -0
  279. package/dist/esm/{classes → adapter/objects}/webgl-resource.js +7 -3
  280. package/dist/esm/adapter/objects/webgl-resource.js.map +1 -0
  281. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +84 -0
  282. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  283. package/dist/esm/adapter/resources/webgl-buffer.js +164 -0
  284. package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -0
  285. package/dist/esm/adapter/resources/webgl-command-buffer.js +65 -0
  286. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -0
  287. package/dist/esm/adapter/resources/webgl-command-encoder.js +53 -0
  288. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -0
  289. package/dist/esm/adapter/resources/webgl-external-texture.js +2 -0
  290. package/dist/{helpers/program-bindings.js.map → esm/adapter/resources/webgl-external-texture.js.map} +1 -1
  291. package/dist/esm/adapter/resources/webgl-framebuffer.js +265 -0
  292. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -0
  293. package/dist/esm/adapter/resources/webgl-render-pass.js +19 -0
  294. package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -0
  295. package/dist/esm/adapter/resources/webgl-render-pipeline.js +400 -0
  296. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -0
  297. package/dist/esm/adapter/resources/webgl-sampler.js +50 -0
  298. package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -0
  299. package/dist/{adapter → esm/adapter/resources}/webgl-shader.js +13 -20
  300. package/dist/esm/adapter/resources/webgl-shader.js.map +1 -0
  301. package/dist/esm/{classes/texture.js → adapter/resources/webgl-texture.js} +274 -229
  302. package/dist/esm/adapter/resources/webgl-texture.js.map +1 -0
  303. package/dist/esm/adapter/webgl-canvas-context.js +54 -0
  304. package/dist/esm/adapter/webgl-canvas-context.js.map +1 -0
  305. package/dist/esm/adapter/webgl-device.js +184 -111
  306. package/dist/esm/adapter/webgl-device.js.map +1 -1
  307. package/dist/esm/{classes → classic}/accessor.js +33 -1
  308. package/dist/esm/classic/accessor.js.map +1 -0
  309. package/dist/{classes/webgl-buffer.js → esm/classic/buffer.js} +53 -51
  310. package/dist/esm/classic/buffer.js.map +1 -0
  311. package/dist/{webgl-utils → esm/classic}/typed-array-utils.js +0 -0
  312. package/dist/esm/classic/typed-array-utils.js.map +1 -0
  313. package/dist/esm/context/context/context-state.js +1 -1
  314. package/dist/esm/context/context/context-state.js.map +1 -1
  315. package/dist/esm/context/context/create-context.js +12 -0
  316. package/dist/esm/context/context/create-context.js.map +1 -1
  317. package/dist/esm/context/context/device-pixels.js.map +1 -1
  318. package/dist/esm/context/debug/spector.js +76 -0
  319. package/dist/esm/context/debug/spector.js.map +1 -0
  320. package/dist/esm/context/debug/webgl-developer-tools.js +121 -0
  321. package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -0
  322. package/dist/esm/context/parameters/unified-parameter-api.js +4 -4
  323. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
  324. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
  325. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
  326. package/dist/esm/context/polyfill/polyfill-context.js +4 -3
  327. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
  328. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
  329. package/dist/esm/context/state-tracker/track-context-state.js +25 -11
  330. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
  331. package/dist/esm/index.js +19 -31
  332. package/dist/esm/index.js.map +1 -1
  333. package/dist/esm/init.js +2 -31
  334. package/dist/esm/init.js.map +1 -1
  335. package/dist/esm/types/webgl.js +2 -0
  336. package/dist/esm/types/webgl.js.map +1 -0
  337. package/dist/index.d.ts +22 -46
  338. package/dist/index.d.ts.map +1 -1
  339. package/dist/index.js +19 -31
  340. package/dist/index.js.map +1 -1
  341. package/dist/init.d.ts +1 -4
  342. package/dist/init.d.ts.map +1 -1
  343. package/dist/init.js +2 -31
  344. package/dist/init.js.map +1 -1
  345. package/dist/types/webgl.d.ts +144 -0
  346. package/dist/types/webgl.d.ts.map +1 -0
  347. package/dist/types/webgl.js +2 -0
  348. package/dist/types/webgl.js.map +1 -0
  349. package/package.json +5 -5
  350. package/src/adapter/converters/{set-device-parameters.ts → device-parameters.ts} +52 -9
  351. package/src/{classes → adapter/converters}/renderbuffer-formats.ts +1 -1
  352. package/src/adapter/converters/sampler-parameters.ts +175 -0
  353. package/src/adapter/converters/texture-formats.ts +633 -0
  354. package/src/adapter/converters/vertex-formats.ts +22 -0
  355. package/src/adapter/device-helpers/device-features.ts +46 -123
  356. package/src/adapter/device-helpers/device-limits.ts +5 -2
  357. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  358. package/src/adapter/helpers/attribute-utils.ts +61 -0
  359. package/src/adapter/helpers/get-shader-layout.ts +388 -0
  360. package/src/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.ts +0 -0
  361. package/src/adapter/helpers/set-uniform.ts +87 -0
  362. package/src/adapter/helpers/uniforms.ts +110 -0
  363. package/src/{webgl-utils → adapter/objects}/constants-to-keys.ts +6 -3
  364. package/src/adapter/objects/webgl-renderbuffer.ts +104 -0
  365. package/src/{classes → adapter/objects}/webgl-resource.ts +23 -17
  366. package/src/adapter/objects/webgl-vertex-array-object.ts +111 -0
  367. package/src/adapter/resources/webgl-buffer.ts +219 -0
  368. package/src/adapter/resources/webgl-command-buffer.ts +94 -0
  369. package/src/adapter/resources/webgl-command-encoder.ts +58 -0
  370. package/src/adapter/resources/webgl-external-texture.ts +92 -0
  371. package/src/adapter/resources/webgl-framebuffer.ts +279 -0
  372. package/src/adapter/resources/webgl-render-pass.ts +23 -0
  373. package/src/adapter/resources/webgl-render-pipeline.ts +413 -0
  374. package/src/adapter/resources/webgl-sampler.ts +54 -0
  375. package/src/adapter/{webgl-shader.ts → resources/webgl-shader.ts} +14 -20
  376. package/src/adapter/resources/webgl-texture.ts +1023 -0
  377. package/src/adapter/webgl-canvas-context.ts +74 -0
  378. package/src/adapter/webgl-device.ts +226 -275
  379. package/{dist/esm/classes/accessor.ts.disabled → src/classic/accessor.ts} +50 -36
  380. package/src/{classes/webgl-buffer.ts → classic/buffer.ts} +69 -77
  381. package/src/{webgl-utils → classic}/typed-array-utils.ts +3 -1
  382. package/src/context/context/context-state.ts +4 -2
  383. package/src/context/context/create-context.ts +28 -1
  384. package/src/context/context/device-pixels.ts +9 -4
  385. package/src/context/debug/spector.ts +92 -0
  386. package/src/context/debug/webgl-developer-tools.ts +162 -0
  387. package/src/context/parameters/unified-parameter-api.ts +6 -4
  388. package/src/context/parameters/webgl-parameter-tables.ts +38 -36
  389. package/src/context/polyfill/get-parameter-polyfill.ts +1 -1
  390. package/src/context/polyfill/polyfill-context.ts +4 -3
  391. package/src/context/state-tracker/deep-array-equal.ts +1 -1
  392. package/src/context/state-tracker/track-context-state.ts +27 -20
  393. package/src/index.ts +33 -102
  394. package/src/init.ts +2 -46
  395. package/src/types/webgl.ts +283 -0
  396. package/dist/_deprecated/context-api.d.ts +0 -85
  397. package/dist/_deprecated/context-api.d.ts.map +0 -1
  398. package/dist/_deprecated/context-api.js +0 -76
  399. package/dist/_deprecated/context-api.js.map +0 -1
  400. package/dist/_deprecated/features.d.ts +0 -27
  401. package/dist/_deprecated/features.d.ts.map +0 -1
  402. package/dist/_deprecated/features.js +0 -111
  403. package/dist/_deprecated/features.js.map +0 -1
  404. package/dist/adapter/converters/set-device-parameters.d.ts +0 -5
  405. package/dist/adapter/converters/set-device-parameters.d.ts.map +0 -1
  406. package/dist/adapter/converters/set-device-parameters.js.map +0 -1
  407. package/dist/adapter/converters/webgpu-texture-formats.d.ts +0 -281
  408. package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +0 -1
  409. package/dist/adapter/converters/webgpu-texture-formats.js +0 -285
  410. package/dist/adapter/converters/webgpu-texture-formats.js.map +0 -1
  411. package/dist/adapter/webgl-shader.d.ts.map +0 -1
  412. package/dist/adapter/webgl-shader.js.map +0 -1
  413. package/dist/classes/accessor.d.ts +0 -28
  414. package/dist/classes/accessor.d.ts.map +0 -1
  415. package/dist/classes/accessor.js.map +0 -1
  416. package/dist/classes/accessor.ts.disabled +0 -159
  417. package/dist/classes/clear.d.ts +0 -17
  418. package/dist/classes/clear.d.ts.map +0 -1
  419. package/dist/classes/clear.js +0 -105
  420. package/dist/classes/clear.js.map +0 -1
  421. package/dist/classes/copy-and-blit.d.ts +0 -86
  422. package/dist/classes/copy-and-blit.d.ts.map +0 -1
  423. package/dist/classes/copy-and-blit.js +0 -338
  424. package/dist/classes/copy-and-blit.js.map +0 -1
  425. package/dist/classes/framebuffer.d.ts +0 -139
  426. package/dist/classes/framebuffer.d.ts.map +0 -1
  427. package/dist/classes/framebuffer.js +0 -656
  428. package/dist/classes/framebuffer.js.map +0 -1
  429. package/dist/classes/program-configuration.d.ts +0 -24
  430. package/dist/classes/program-configuration.d.ts.map +0 -1
  431. package/dist/classes/program-configuration.js +0 -73
  432. package/dist/classes/program-configuration.js.map +0 -1
  433. package/dist/classes/program.d.ts +0 -66
  434. package/dist/classes/program.d.ts.map +0 -1
  435. package/dist/classes/program.js +0 -379
  436. package/dist/classes/program.js.map +0 -1
  437. package/dist/classes/query.d.ts +0 -27
  438. package/dist/classes/query.d.ts.map +0 -1
  439. package/dist/classes/query.js +0 -145
  440. package/dist/classes/query.js.map +0 -1
  441. package/dist/classes/renderbuffer-formats.d.ts.map +0 -1
  442. package/dist/classes/renderbuffer-formats.js.map +0 -1
  443. package/dist/classes/renderbuffer.d.ts +0 -60
  444. package/dist/classes/renderbuffer.d.ts.map +0 -1
  445. package/dist/classes/renderbuffer.js.map +0 -1
  446. package/dist/classes/shader.d.ts +0 -42
  447. package/dist/classes/shader.d.ts.map +0 -1
  448. package/dist/classes/shader.js +0 -118
  449. package/dist/classes/shader.js.map +0 -1
  450. package/dist/classes/texture-2d.d.ts +0 -9
  451. package/dist/classes/texture-2d.d.ts.map +0 -1
  452. package/dist/classes/texture-2d.js +0 -36
  453. package/dist/classes/texture-2d.js.map +0 -1
  454. package/dist/classes/texture-3d.d.ts +0 -29
  455. package/dist/classes/texture-3d.d.ts.map +0 -1
  456. package/dist/classes/texture-3d.js +0 -76
  457. package/dist/classes/texture-3d.js.map +0 -1
  458. package/dist/classes/texture-cube.d.ts +0 -28
  459. package/dist/classes/texture-cube.d.ts.map +0 -1
  460. package/dist/classes/texture-cube.js +0 -130
  461. package/dist/classes/texture-cube.js.map +0 -1
  462. package/dist/classes/texture-formats.d.ts +0 -37
  463. package/dist/classes/texture-formats.d.ts.map +0 -1
  464. package/dist/classes/texture-formats.js +0 -98
  465. package/dist/classes/texture-formats.js.map +0 -1
  466. package/dist/classes/texture.d.ts +0 -123
  467. package/dist/classes/texture.d.ts.map +0 -1
  468. package/dist/classes/texture.js.map +0 -1
  469. package/dist/classes/transform-feedback.d.ts +0 -33
  470. package/dist/classes/transform-feedback.d.ts.map +0 -1
  471. package/dist/classes/transform-feedback.js +0 -198
  472. package/dist/classes/transform-feedback.js.map +0 -1
  473. package/dist/classes/uniform-buffer-layout.d.ts +0 -17
  474. package/dist/classes/uniform-buffer-layout.d.ts.map +0 -1
  475. package/dist/classes/uniform-buffer-layout.js +0 -104
  476. package/dist/classes/uniform-buffer-layout.js.map +0 -1
  477. package/dist/classes/uniforms.d.ts +0 -37
  478. package/dist/classes/uniforms.d.ts.map +0 -1
  479. package/dist/classes/uniforms.js +0 -250
  480. package/dist/classes/uniforms.js.map +0 -1
  481. package/dist/classes/vertex-array-object.d.ts +0 -76
  482. package/dist/classes/vertex-array-object.d.ts.map +0 -1
  483. package/dist/classes/vertex-array-object.js +0 -261
  484. package/dist/classes/vertex-array-object.js.map +0 -1
  485. package/dist/classes/vertex-array.d.ts +0 -75
  486. package/dist/classes/vertex-array.d.ts.map +0 -1
  487. package/dist/classes/vertex-array.js +0 -408
  488. package/dist/classes/vertex-array.js.map +0 -1
  489. package/dist/classes/webgl-buffer.d.ts.map +0 -1
  490. package/dist/classes/webgl-buffer.js.map +0 -1
  491. package/dist/classes/webgl-resource.d.ts.map +0 -1
  492. package/dist/classes/webgl-resource.js.map +0 -1
  493. package/dist/context/context/get-canvas.d.ts +0 -13
  494. package/dist/context/context/get-canvas.d.ts.map +0 -1
  495. package/dist/context/context/get-canvas.js +0 -31
  496. package/dist/context/context/get-canvas.js.map +0 -1
  497. package/dist/context/context/resize-context.d.ts +0 -20
  498. package/dist/context/context/resize-context.d.ts.map +0 -1
  499. package/dist/context/context/resize-context.js +0 -15
  500. package/dist/context/context/resize-context.js.map +0 -1
  501. package/dist/context/parameters/webgl-parameters.d.ts +0 -144
  502. package/dist/context/parameters/webgl-parameters.d.ts.map +0 -1
  503. package/dist/context/parameters/webgl-parameters.js +0 -2
  504. package/dist/context/parameters/webgl-parameters.js.map +0 -1
  505. package/dist/debug/debug-program-configuration.d.ts +0 -2
  506. package/dist/debug/debug-program-configuration.d.ts.map +0 -1
  507. package/dist/debug/debug-program-configuration.js +0 -40
  508. package/dist/debug/debug-program-configuration.js.map +0 -1
  509. package/dist/debug/debug-uniforms.d.ts +0 -12
  510. package/dist/debug/debug-uniforms.d.ts.map +0 -1
  511. package/dist/debug/debug-uniforms.js +0 -108
  512. package/dist/debug/debug-uniforms.js.map +0 -1
  513. package/dist/debug/debug-vertex-array.d.ts +0 -5
  514. package/dist/debug/debug-vertex-array.d.ts.map +0 -1
  515. package/dist/debug/debug-vertex-array.js +0 -118
  516. package/dist/debug/debug-vertex-array.js.map +0 -1
  517. package/dist/es5/_deprecated/context-api.js +0 -116
  518. package/dist/es5/_deprecated/context-api.js.map +0 -1
  519. package/dist/es5/_deprecated/features.js +0 -118
  520. package/dist/es5/_deprecated/features.js.map +0 -1
  521. package/dist/es5/adapter/converters/set-device-parameters.js.map +0 -1
  522. package/dist/es5/adapter/converters/webgpu-texture-formats.js +0 -296
  523. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +0 -1
  524. package/dist/es5/adapter/webgl-shader.js.map +0 -1
  525. package/dist/es5/classes/accessor.d.ts +0 -28
  526. package/dist/es5/classes/accessor.js.map +0 -1
  527. package/dist/es5/classes/accessor.ts.disabled +0 -159
  528. package/dist/es5/classes/clear.js +0 -135
  529. package/dist/es5/classes/clear.js.map +0 -1
  530. package/dist/es5/classes/copy-and-blit.js +0 -382
  531. package/dist/es5/classes/copy-and-blit.js.map +0 -1
  532. package/dist/es5/classes/framebuffer.js +0 -807
  533. package/dist/es5/classes/framebuffer.js.map +0 -1
  534. package/dist/es5/classes/program-configuration.js +0 -119
  535. package/dist/es5/classes/program-configuration.js.map +0 -1
  536. package/dist/es5/classes/program.js +0 -471
  537. package/dist/es5/classes/program.js.map +0 -1
  538. package/dist/es5/classes/query.js +0 -222
  539. package/dist/es5/classes/query.js.map +0 -1
  540. package/dist/es5/classes/renderbuffer-formats.js.map +0 -1
  541. package/dist/es5/classes/renderbuffer.js.map +0 -1
  542. package/dist/es5/classes/shader.js +0 -195
  543. package/dist/es5/classes/shader.js.map +0 -1
  544. package/dist/es5/classes/texture-2d.js.map +0 -1
  545. package/dist/es5/classes/texture-3d.js +0 -142
  546. package/dist/es5/classes/texture-3d.js.map +0 -1
  547. package/dist/es5/classes/texture-cube.js +0 -202
  548. package/dist/es5/classes/texture-cube.js.map +0 -1
  549. package/dist/es5/classes/texture-formats.js +0 -87
  550. package/dist/es5/classes/texture-formats.js.map +0 -1
  551. package/dist/es5/classes/texture.js.map +0 -1
  552. package/dist/es5/classes/transform-feedback.js +0 -267
  553. package/dist/es5/classes/transform-feedback.js.map +0 -1
  554. package/dist/es5/classes/uniform-buffer-layout.js +0 -130
  555. package/dist/es5/classes/uniform-buffer-layout.js.map +0 -1
  556. package/dist/es5/classes/uniforms.js +0 -232
  557. package/dist/es5/classes/uniforms.js.map +0 -1
  558. package/dist/es5/classes/vertex-array-object.js +0 -337
  559. package/dist/es5/classes/vertex-array-object.js.map +0 -1
  560. package/dist/es5/classes/vertex-array.js +0 -465
  561. package/dist/es5/classes/vertex-array.js.map +0 -1
  562. package/dist/es5/classes/webgl-buffer.js.map +0 -1
  563. package/dist/es5/classes/webgl-resource.js.map +0 -1
  564. package/dist/es5/context/context/get-canvas.js +0 -40
  565. package/dist/es5/context/context/get-canvas.js.map +0 -1
  566. package/dist/es5/context/context/resize-context.js +0 -23
  567. package/dist/es5/context/context/resize-context.js.map +0 -1
  568. package/dist/es5/context/parameters/webgl-parameters.js.map +0 -1
  569. package/dist/es5/debug/debug-program-configuration.js +0 -76
  570. package/dist/es5/debug/debug-program-configuration.js.map +0 -1
  571. package/dist/es5/debug/debug-uniforms.js +0 -156
  572. package/dist/es5/debug/debug-uniforms.js.map +0 -1
  573. package/dist/es5/debug/debug-vertex-array.js +0 -126
  574. package/dist/es5/debug/debug-vertex-array.js.map +0 -1
  575. package/dist/es5/helpers/get-program-bindings.js.map +0 -1
  576. package/dist/es5/helpers/program-bindings.js +0 -2
  577. package/dist/es5/types/accessor.d.ts +0 -29
  578. package/dist/es5/webgl-utils/attribute-utils.js +0 -186
  579. package/dist/es5/webgl-utils/attribute-utils.js.map +0 -1
  580. package/dist/es5/webgl-utils/constants-to-keys.js.map +0 -1
  581. package/dist/es5/webgl-utils/format-utils.js +0 -58
  582. package/dist/es5/webgl-utils/format-utils.js.map +0 -1
  583. package/dist/es5/webgl-utils/get-error.js +0 -49
  584. package/dist/es5/webgl-utils/get-error.js.map +0 -1
  585. package/dist/es5/webgl-utils/index.js +0 -74
  586. package/dist/es5/webgl-utils/index.js.map +0 -1
  587. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  588. package/dist/es5/webgl-utils/request-animation-frame.js +0 -16
  589. package/dist/es5/webgl-utils/request-animation-frame.js.map +0 -1
  590. package/dist/es5/webgl-utils/texture-utils.js +0 -61
  591. package/dist/es5/webgl-utils/texture-utils.js.map +0 -1
  592. package/dist/es5/webgl-utils/typed-array-utils.js.map +0 -1
  593. package/dist/esm/_deprecated/context-api.js +0 -76
  594. package/dist/esm/_deprecated/context-api.js.map +0 -1
  595. package/dist/esm/_deprecated/features.js +0 -111
  596. package/dist/esm/_deprecated/features.js.map +0 -1
  597. package/dist/esm/adapter/converters/set-device-parameters.js.map +0 -1
  598. package/dist/esm/adapter/converters/webgpu-texture-formats.js +0 -285
  599. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +0 -1
  600. package/dist/esm/adapter/webgl-shader.js.map +0 -1
  601. package/dist/esm/classes/accessor.d.ts +0 -28
  602. package/dist/esm/classes/accessor.js.map +0 -1
  603. package/dist/esm/classes/clear.js +0 -105
  604. package/dist/esm/classes/clear.js.map +0 -1
  605. package/dist/esm/classes/copy-and-blit.js +0 -338
  606. package/dist/esm/classes/copy-and-blit.js.map +0 -1
  607. package/dist/esm/classes/framebuffer.js +0 -656
  608. package/dist/esm/classes/framebuffer.js.map +0 -1
  609. package/dist/esm/classes/program-configuration.js +0 -73
  610. package/dist/esm/classes/program-configuration.js.map +0 -1
  611. package/dist/esm/classes/program.js +0 -379
  612. package/dist/esm/classes/program.js.map +0 -1
  613. package/dist/esm/classes/query.js +0 -145
  614. package/dist/esm/classes/query.js.map +0 -1
  615. package/dist/esm/classes/renderbuffer-formats.js.map +0 -1
  616. package/dist/esm/classes/renderbuffer.js.map +0 -1
  617. package/dist/esm/classes/shader.js +0 -118
  618. package/dist/esm/classes/shader.js.map +0 -1
  619. package/dist/esm/classes/texture-2d.js +0 -36
  620. package/dist/esm/classes/texture-2d.js.map +0 -1
  621. package/dist/esm/classes/texture-3d.js +0 -76
  622. package/dist/esm/classes/texture-3d.js.map +0 -1
  623. package/dist/esm/classes/texture-cube.js +0 -130
  624. package/dist/esm/classes/texture-cube.js.map +0 -1
  625. package/dist/esm/classes/texture-formats.js +0 -98
  626. package/dist/esm/classes/texture-formats.js.map +0 -1
  627. package/dist/esm/classes/texture.js.map +0 -1
  628. package/dist/esm/classes/transform-feedback.js +0 -198
  629. package/dist/esm/classes/transform-feedback.js.map +0 -1
  630. package/dist/esm/classes/uniform-buffer-layout.js +0 -104
  631. package/dist/esm/classes/uniform-buffer-layout.js.map +0 -1
  632. package/dist/esm/classes/uniforms.js +0 -250
  633. package/dist/esm/classes/uniforms.js.map +0 -1
  634. package/dist/esm/classes/vertex-array-object.js +0 -261
  635. package/dist/esm/classes/vertex-array-object.js.map +0 -1
  636. package/dist/esm/classes/vertex-array.js +0 -408
  637. package/dist/esm/classes/vertex-array.js.map +0 -1
  638. package/dist/esm/classes/webgl-buffer.js.map +0 -1
  639. package/dist/esm/classes/webgl-resource.js.map +0 -1
  640. package/dist/esm/context/context/get-canvas.js +0 -31
  641. package/dist/esm/context/context/get-canvas.js.map +0 -1
  642. package/dist/esm/context/context/resize-context.js +0 -15
  643. package/dist/esm/context/context/resize-context.js.map +0 -1
  644. package/dist/esm/context/parameters/webgl-parameters.js +0 -2
  645. package/dist/esm/context/parameters/webgl-parameters.js.map +0 -1
  646. package/dist/esm/debug/debug-program-configuration.js +0 -40
  647. package/dist/esm/debug/debug-program-configuration.js.map +0 -1
  648. package/dist/esm/debug/debug-uniforms.js +0 -108
  649. package/dist/esm/debug/debug-uniforms.js.map +0 -1
  650. package/dist/esm/debug/debug-vertex-array.js +0 -118
  651. package/dist/esm/debug/debug-vertex-array.js.map +0 -1
  652. package/dist/esm/helpers/get-program-bindings.js +0 -228
  653. package/dist/esm/helpers/get-program-bindings.js.map +0 -1
  654. package/dist/esm/helpers/program-bindings.js +0 -2
  655. package/dist/esm/types/accessor.d.ts +0 -29
  656. package/dist/esm/webgl-utils/attribute-utils.js +0 -182
  657. package/dist/esm/webgl-utils/attribute-utils.js.map +0 -1
  658. package/dist/esm/webgl-utils/constants-to-keys.js.map +0 -1
  659. package/dist/esm/webgl-utils/format-utils.js +0 -45
  660. package/dist/esm/webgl-utils/format-utils.js.map +0 -1
  661. package/dist/esm/webgl-utils/get-error.js +0 -41
  662. package/dist/esm/webgl-utils/get-error.js.map +0 -1
  663. package/dist/esm/webgl-utils/index.js +0 -5
  664. package/dist/esm/webgl-utils/index.js.map +0 -1
  665. package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  666. package/dist/esm/webgl-utils/request-animation-frame.js +0 -7
  667. package/dist/esm/webgl-utils/request-animation-frame.js.map +0 -1
  668. package/dist/esm/webgl-utils/texture-utils.js +0 -48
  669. package/dist/esm/webgl-utils/texture-utils.js.map +0 -1
  670. package/dist/esm/webgl-utils/typed-array-utils.js.map +0 -1
  671. package/dist/helpers/get-program-bindings.d.ts +0 -8
  672. package/dist/helpers/get-program-bindings.d.ts.map +0 -1
  673. package/dist/helpers/get-program-bindings.js +0 -228
  674. package/dist/helpers/get-program-bindings.js.map +0 -1
  675. package/dist/helpers/program-bindings.d.ts +0 -41
  676. package/dist/helpers/program-bindings.d.ts.map +0 -1
  677. package/dist/helpers/program-bindings.js +0 -2
  678. package/dist/types/accessor.d.ts +0 -29
  679. package/dist/webgl-utils/attribute-utils.d.ts +0 -18
  680. package/dist/webgl-utils/attribute-utils.d.ts.map +0 -1
  681. package/dist/webgl-utils/attribute-utils.js +0 -182
  682. package/dist/webgl-utils/attribute-utils.js.map +0 -1
  683. package/dist/webgl-utils/constants-to-keys.d.ts +0 -4
  684. package/dist/webgl-utils/constants-to-keys.d.ts.map +0 -1
  685. package/dist/webgl-utils/constants-to-keys.js.map +0 -1
  686. package/dist/webgl-utils/format-utils.d.ts +0 -3
  687. package/dist/webgl-utils/format-utils.d.ts.map +0 -1
  688. package/dist/webgl-utils/format-utils.js +0 -45
  689. package/dist/webgl-utils/format-utils.js.map +0 -1
  690. package/dist/webgl-utils/get-error.d.ts +0 -3
  691. package/dist/webgl-utils/get-error.d.ts.map +0 -1
  692. package/dist/webgl-utils/get-error.js +0 -41
  693. package/dist/webgl-utils/get-error.js.map +0 -1
  694. package/dist/webgl-utils/index.d.ts +0 -5
  695. package/dist/webgl-utils/index.d.ts.map +0 -1
  696. package/dist/webgl-utils/index.js +0 -5
  697. package/dist/webgl-utils/index.js.map +0 -1
  698. package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +0 -1
  699. package/dist/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  700. package/dist/webgl-utils/request-animation-frame.d.ts +0 -4
  701. package/dist/webgl-utils/request-animation-frame.d.ts.map +0 -1
  702. package/dist/webgl-utils/request-animation-frame.js +0 -7
  703. package/dist/webgl-utils/request-animation-frame.js.map +0 -1
  704. package/dist/webgl-utils/texture-utils.d.ts +0 -15
  705. package/dist/webgl-utils/texture-utils.d.ts.map +0 -1
  706. package/dist/webgl-utils/texture-utils.js +0 -48
  707. package/dist/webgl-utils/texture-utils.js.map +0 -1
  708. package/dist/webgl-utils/typed-array-utils.d.ts.map +0 -1
  709. package/dist/webgl-utils/typed-array-utils.js.map +0 -1
  710. package/src/.DS_Store +0 -0
  711. package/src/_deprecated/context-api.ts +0 -146
  712. package/src/_deprecated/features.ts +0 -159
  713. package/src/adapter/converters/webgpu-texture-formats.ts +0 -167
  714. package/src/classes/accessor.d.ts +0 -28
  715. package/src/classes/accessor.js +0 -129
  716. package/src/classes/accessor.ts.disabled +0 -159
  717. package/src/classes/clear.ts +0 -108
  718. package/src/classes/copy-and-blit.ts +0 -460
  719. package/src/classes/framebuffer.ts +0 -763
  720. package/src/classes/program-configuration.ts +0 -77
  721. package/src/classes/program.ts +0 -431
  722. package/src/classes/query.ts +0 -171
  723. package/src/classes/renderbuffer.ts +0 -154
  724. package/src/classes/shader.ts +0 -129
  725. package/src/classes/texture-2d.ts +0 -35
  726. package/src/classes/texture-3d.ts +0 -123
  727. package/src/classes/texture-cube.ts +0 -162
  728. package/src/classes/texture-formats.ts +0 -171
  729. package/src/classes/texture.ts +0 -965
  730. package/src/classes/transform-feedback.ts +0 -191
  731. package/src/classes/uniform-buffer-layout.ts +0 -113
  732. package/src/classes/uniforms.ts +0 -394
  733. package/src/classes/vertex-array-object.ts +0 -339
  734. package/src/classes/vertex-array.ts +0 -484
  735. package/src/context/context/get-canvas.ts +0 -37
  736. package/src/context/context/resize-context.ts +0 -37
  737. package/src/context/parameters/webgl-parameters.ts +0 -197
  738. package/src/debug/debug-program-configuration.ts +0 -32
  739. package/src/debug/debug-uniforms.ts +0 -100
  740. package/src/debug/debug-vertex-array.ts +0 -123
  741. package/src/helpers/get-program-bindings.ts +0 -244
  742. package/src/helpers/program-bindings.ts +0 -46
  743. package/src/types/accessor.d.ts +0 -29
  744. package/src/webgl-utils/attribute-utils.ts +0 -171
  745. package/src/webgl-utils/format-utils.ts +0 -43
  746. package/src/webgl-utils/get-error.ts +0 -56
  747. package/src/webgl-utils/index.ts +0 -12
  748. package/src/webgl-utils/request-animation-frame.ts +0 -14
  749. package/src/webgl-utils/texture-utils.ts +0 -60
@@ -1,23 +1,19 @@
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/';
3
+ import {getTypedArrayFromGLType} from './typed-array-utils';
5
4
 
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
- }
5
+ // export interface AccessorObject {
6
+ // offset?: number;
7
+ // stride?: number;
8
+ // type?: number;
9
+ // size?: number;
10
+ // divisor?: number;
11
+ // normalized?: boolean;
12
+ // integer?: boolean;
13
+
14
+ // buffer?: Buffer;
15
+ // index?: number;
16
+ // }
21
17
 
22
18
  const DEFAULT_ACCESSOR_VALUES = {
23
19
  offset: 0,
@@ -36,28 +32,26 @@ const PROP_CHECKS = {
36
32
  }
37
33
  };
38
34
 
35
+ export default class Accessor implements AccessorObject {
36
+ offset?: number;
37
+ stride?: number;
38
+ type?: number;
39
+ size?: number;
40
+ divisor?: number;
41
+ normalized?: boolean;
42
+ integer?: boolean;
39
43
 
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;
44
+ buffer?: Buffer;
45
+ index?: number;
52
46
 
53
- static getBytesPerElement(accessor): number {
47
+ static getBytesPerElement(accessor: Accessor | AccessorObject): number {
54
48
  // TODO: using `FLOAT` when type is not specified,
55
49
  // ensure this assumption is valid or force API to specify type.
56
50
  const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);
57
51
  return ArrayType.BYTES_PER_ELEMENT;
58
52
  }
59
53
 
60
- static getBytesPerVertex(accessor): number {
54
+ static getBytesPerVertex(accessor: AccessorObject): number {
61
55
  assert(accessor.size);
62
56
  // TODO: using `FLOAT` when type is not specified,
63
57
  // ensure this assumption is valid or force API to specify type.
@@ -69,11 +63,11 @@ export default class Accessor {
69
63
  // Usually [programAccessor, bufferAccessor, appAccessor]
70
64
  // All props will be set in the returned object.
71
65
  // TODO check for conflicts between values in the supplied accessors
72
- static resolve(...accessors): Accessor {
66
+ static resolve(...accessors: AccessorObject[]): Accessor {
73
67
  return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]); // Default values
74
68
  }
75
69
 
76
- constructor(...accessors: any[]) {
70
+ constructor(...accessors: AccessorObject[]) {
77
71
  accessors.forEach((accessor) => this._assign(accessor)); // Merge in sequence
78
72
  Object.freeze(this);
79
73
  }
@@ -96,7 +90,7 @@ export default class Accessor {
96
90
  // PRIVATE
97
91
 
98
92
  // eslint-disable-next-line complexity, max-statements
99
- _assign(props: AccessorObject = {}) {
93
+ _assign(props: AccessorObject = {}): this {
100
94
  props = checkProps('Accessor', props, PROP_CHECKS);
101
95
 
102
96
  if (props.type !== undefined) {
@@ -104,7 +98,7 @@ export default class Accessor {
104
98
 
105
99
  // Auto-deduce integer type?
106
100
  if (props.type === GL.INT || props.type === GL.UNSIGNED_INT) {
107
- this.integer = true;
101
+ this.integer = true;
108
102
  }
109
103
  }
110
104
  if (props.size !== undefined) {
@@ -116,6 +110,11 @@ export default class Accessor {
116
110
  if (props.stride !== undefined) {
117
111
  this.stride = props.stride;
118
112
  }
113
+ // @ts-expect-error
114
+ if (props.normalize !== undefined) {
115
+ // @ts-expect-error
116
+ this.normalized = props.normalize;
117
+ }
119
118
  if (props.normalized !== undefined) {
120
119
  this.normalized = props.normalized;
121
120
  }
@@ -144,13 +143,28 @@ export default class Accessor {
144
143
  }
145
144
 
146
145
  // DEPRECATED
146
+ // @ts-expect-error
147
147
  if (props.instanced !== undefined) {
148
+ // @ts-expect-error
148
149
  this.divisor = props.instanced ? 1 : 0;
149
150
  }
151
+ // @ts-expect-error
150
152
  if (props.isInstanced !== undefined) {
153
+ // @ts-expect-error
151
154
  this.divisor = props.isInstanced ? 1 : 0;
152
155
  }
153
156
 
157
+ if (this.offset === undefined) delete this.offset;
158
+ if (this.stride === undefined) delete this.stride;
159
+ if (this.type === undefined) delete this.type;
160
+ if (this.size === undefined) delete this.size;
161
+ if (this.divisor === undefined) delete this.divisor;
162
+ if (this.normalized === undefined) delete this.normalized;
163
+ if (this.integer === undefined) delete this.integer;
164
+
165
+ if (this.buffer === undefined) delete this.buffer;
166
+ if (this.index === undefined) delete this.index;
167
+
154
168
  return this;
155
169
  }
156
170
  }
@@ -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;
86
+ constructor(device: Device | WebGLRenderingContext, props?: ClassicBufferProps);
87
+ constructor(device: Device | WebGLRenderingContext, data: ArrayBufferView | number[]);
88
+ constructor(device: Device | WebGLRenderingContext, byteLength: number);
76
89
 
77
- constructor(gl: WebGLRenderingContext, props?: BufferProps);
78
- constructor(gl: WebGLRenderingContext, data: ArrayBufferView | number[]);
79
- constructor(gl: WebGLRenderingContext, byteLength: number);
90
+ constructor(device: Device | WebGLRenderingContext, props = {}) {
91
+ super(WebGLDevice.attach(device), getWEBGLBufferProps(props));
80
92
 
81
- constructor(gl: WebGLRenderingContext, props = {}) {
82
- super(WebGLDevice.attach(gl), props);
93
+ // Base class initializes
94
+ // this.initialize(props);
83
95
 
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();
88
-
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
  }
@@ -107,13 +116,16 @@ export default class WEBGLBuffer extends Buffer {
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: {
@@ -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
@@ -341,7 +353,6 @@ 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) {
@@ -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,6 @@
1
+ import {TypedArray} from '@luma.gl/api/types';
1
2
  import GL from '@luma.gl/constants';
3
+ import {GLType} from '../types/webgl'
2
4
 
3
5
  const ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';
4
6
 
@@ -18,7 +20,7 @@ type TypedArrayConstructor =
18
20
  * @param {*} arrayOrType
19
21
  * @returns
20
22
  */
21
- export function getGLTypeFromTypedArray(arrayOrType) {
23
+ export function getGLTypeFromTypedArray(arrayOrType: TypedArray): GLType {
22
24
  // If typed array, look up constructor
23
25
  const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
24
26
  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;
@@ -57,6 +57,13 @@ const DEFAULT_CONTEXT_PROPS: ContextProps = {
57
57
  // Create the desired context
58
58
  let gl = null;
59
59
 
60
+ if (props.type === 'webgl2') {
61
+ props = {...props, webgl1: false};
62
+ }
63
+ if (props.type === 'webgl1') {
64
+ props = {...props, webgl2: false};
65
+ }
66
+
60
67
  // Prefer webgl2 over webgl1 if both are acceptable
61
68
  if (props.webgl2) {
62
69
  gl = gl || canvas.getContext('webgl2', props);
@@ -81,3 +88,23 @@ const DEFAULT_CONTEXT_PROPS: ContextProps = {
81
88
 
82
89
  return gl;
83
90
  }
91
+
92
+ /* TODO - can we call this asynchronously to catch the error events?
93
+ export async function createBrowserContextAsync(canvas: HTMLCanvasElement | OffscreenCanvas, props: ContextProps): Promise<WebGLRenderingContext> {
94
+ props = {...DEFAULT_CONTEXT_PROPS, ...props};
95
+
96
+ // Try to extract any extra information about why context creation failed
97
+ let errorMessage = null;
98
+ const onCreateError = (error) => (errorMessage = error.statusMessage || errorMessage);
99
+ canvas.addEventListener('webglcontextcreationerror', onCreateError, false);
100
+
101
+ const gl = createBrowserContext(canvas, props);
102
+
103
+ // Give the listener a chance to fire
104
+ await new Promise(resolve => setTimeout(resolve, 0));
105
+
106
+ canvas.removeEventListener('webglcontextcreationerror', onCreateError, false);
107
+
108
+ return gl;
109
+ }
110
+ */
@@ -52,7 +52,7 @@ export function cssToDeviceRatio(gl: WebGLRenderingContext): number {
52
52
  }
53
53
 
54
54
  // use devicePixelRatio to set canvas width and height
55
- export function setDevicePixelRatio(gl, devicePixelRatio, options: {width?: number, height?: number} = {}) {
55
+ export function setDevicePixelRatio(gl: WebGLRenderingContext, devicePixelRatio: number, options: {width?: number, height?: number} = {}) {
56
56
  // NOTE: if options.width and options.height not used remove in v8
57
57
  let clientWidth = 'width' in options ? options.width : gl.canvas.clientWidth;
58
58
  let clientHeight = 'height' in options ? options.height : gl.canvas.clientHeight;
@@ -101,7 +101,12 @@ export function setDevicePixelRatio(gl, devicePixelRatio, options: {width?: numb
101
101
 
102
102
  // PRIVATE
103
103
 
104
- function scalePixels(pixel, ratio, width, height, yInvert) {
104
+ function scalePixels(pixel: number[], ratio: number, width: number, height: number, yInvert: boolean): {
105
+ x: number;
106
+ y: number;
107
+ width: number;
108
+ height: number;
109
+ } {
105
110
  const x = scaleX(pixel[0], ratio, width);
106
111
  let y = scaleY(pixel[1], ratio, height, yInvert);
107
112
 
@@ -133,13 +138,13 @@ function scalePixels(pixel, ratio, width, height, yInvert) {
133
138
  };
134
139
  }
135
140
 
136
- function scaleX(x, ratio, width) {
141
+ function scaleX(x: number, ratio: number, width: number): number {
137
142
  // since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit
138
143
  const r = Math.min(Math.round(x * ratio), width - 1);
139
144
  return r;
140
145
  }
141
146
 
142
- function scaleY(y, ratio, height, yInvert) {
147
+ function scaleY(y: number, ratio: number, height: number, yInvert: boolean): number {
143
148
  // since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit
144
149
  return yInvert
145
150
  ? Math.max(0, height - 1 - Math.round(y * ratio))
@@ -0,0 +1,92 @@
1
+ // luma.gl, MIT license
2
+ import {log, loadScript} from '@luma.gl/api';
3
+
4
+ /** Spector debug initialization options */
5
+ type SpectorProps = {
6
+ /** Canvas to monitor */
7
+ canvas?: HTMLCanvasElement | OffscreenCanvas;
8
+ /** Whether debug is enabled. Auto-detected if ommitted */
9
+ debug?: boolean;
10
+ /** Whether spector is disabled */
11
+ spector?: boolean | string | object;
12
+ };
13
+
14
+ const DEFAULT_SPECTOR_PROPS: SpectorProps = {
15
+ spector: log.get('spector') || log.get('inspect')
16
+ };
17
+
18
+ // https://github.com/BabylonJS/Spector.js#basic-usage
19
+ const SPECTOR_CDN_URL = 'https://spectorcdn.babylonjs.com/spector.bundle.js';
20
+ const LOG_LEVEL = 1;
21
+
22
+ let spector: any = null;
23
+ let initialized: boolean = false;
24
+
25
+ declare global {
26
+ var SPECTOR: any;
27
+ }
28
+
29
+ /** Loads spector from CDN if not already installed */
30
+ export async function loadSpectorJS(props?: SpectorProps) {
31
+ if (!globalThis.SPECTOR) {
32
+ try {
33
+ await loadScript(SPECTOR_CDN_URL);
34
+ } catch(error) {
35
+ log.warn(error)
36
+ }
37
+ }
38
+ }
39
+
40
+ export function initializeSpectorJS(props?: SpectorProps) {
41
+ props = {...DEFAULT_SPECTOR_PROPS, ...props};
42
+ if (!props?.spector) {
43
+ return null;
44
+ }
45
+
46
+ if (!spector && globalThis.SPECTOR) {
47
+ log.probe(LOG_LEVEL, "SPECTOR found and initialized")();
48
+ spector = new globalThis.SPECTOR.Spector();
49
+ if (globalThis.luma) {
50
+ globalThis.luma.spector = spector;
51
+ }
52
+ }
53
+
54
+ if (!spector) {
55
+ return null;
56
+ }
57
+
58
+ if (!initialized) {
59
+ initialized = true;
60
+
61
+ // enables recording some extra information merged in the capture like texture memory sizes and formats
62
+ spector.spyCanvases();
63
+ // A callback when results are ready
64
+ spector?.onCaptureStarted.add((capture: unknown) => log.info(`Spector capture started:`, capture)());
65
+ spector?.onCapture.add((capture: unknown) => {
66
+ log.info(`Spector capture complete:`, capture)();
67
+ // Use undocumented Spector API to open the UI with our capture
68
+ // See https://github.com/BabylonJS/Spector.js/blob/767ad1195a25b85a85c381f400eb50a979239eca/src/spector.ts#L124
69
+ spector?.getResultUI()
70
+ spector?.resultView.display();
71
+ spector?.resultView.addCapture(capture)
72
+ });
73
+ }
74
+
75
+ if (props?.canvas) {
76
+ // @ts-expect-error If spector is specified as a canvas id, only monitor that canvas
77
+ if (typeof props.spector === 'string' && props.spector !== props.canvas.id) {
78
+ return spector;
79
+ }
80
+
81
+ // capture startup
82
+ // spector?.captureCanvas(props?.canvas);
83
+ spector?.startCapture(props?.canvas, 500); // 500 commands
84
+ new Promise(resolve => setTimeout(resolve, 2000)).then(_ => {
85
+ log.info(`Spector capture stopped after 2 seconds`)();
86
+ spector?.stopCapture();
87
+ // spector?.displayUI();
88
+ });
89
+ }
90
+
91
+ return spector;
92
+ }