@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
@@ -81,7 +81,7 @@ export const WEBGL2_CONTEXT_POLYFILLS = {
81
81
  getQueryParameter(handle, pname) {
82
82
  return this.getQueryObject(handle, pname);
83
83
  },
84
- getQueryObject: () => {}
84
+ getQueryObject: (handle: unknown, pname: unknown) => {}
85
85
  }
86
86
  };
87
87
 
@@ -1,6 +1,6 @@
1
1
 
2
2
  /** deeply compare two arrays */
3
- export function deepArrayEqual(x, y): boolean {
3
+ export function deepArrayEqual(x: any, y: any): boolean {
4
4
  if (x === y) {
5
5
  return true;
6
6
  }
@@ -10,14 +10,14 @@ import {deepArrayEqual} from './deep-array-equal';
10
10
  /* eslint-disable no-shadow */
11
11
  class GLState {
12
12
  gl: WebGLRenderingContext;
13
- program = null;
14
- stateStack = [];
13
+ program: unknown = null;
14
+ stateStack: object[] = [];
15
15
  enable = true;
16
- cache;
16
+ cache: Record<string, any>;
17
17
  log;
18
18
 
19
19
  constructor(
20
- gl,
20
+ gl: WebGLRenderingContext,
21
21
  {
22
22
  copyState = false, // Copy cache from params (slow) or initialize from WebGL defaults (fast)
23
23
  log = () => {} // Logging function, called when gl parameter change calls are actually issued
@@ -50,11 +50,11 @@ class GLState {
50
50
  * @param values
51
51
  * @returns
52
52
  */
53
- _updateCache(values) {
53
+ _updateCache(values: {[key: number | string]: any}) {
54
54
  let valueChanged = false;
55
55
  let oldValue; // = undefined
56
56
 
57
- const oldValues = this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1];
57
+ const oldValues: {[key: number | string]: any} | null = this.stateStack.length > 0 ? this.stateStack[this.stateStack.length - 1] : null;
58
58
 
59
59
  for (const key in values) {
60
60
  assert(key !== undefined);
@@ -81,6 +81,11 @@ class GLState {
81
81
  }
82
82
  }
83
83
 
84
+ function getContextState(gl: WebGLRenderingContext): GLState {
85
+ // @ts-expect-error
86
+ return gl.state as GLState;
87
+ }
88
+
84
89
  // PUBLIC API
85
90
 
86
91
  /**
@@ -127,8 +132,8 @@ class GLState {
127
132
  installGetterOverride(gl, 'isEnabled');
128
133
  }
129
134
 
130
- // @ts-expect-error
131
- gl.state.enable = enable;
135
+ const glState = getContextState(gl);
136
+ glState.enable = enable;
132
137
 
133
138
  return gl;
134
139
  }
@@ -137,12 +142,12 @@ class GLState {
137
142
  * Saves current WebGL context state onto an internal per-context stack
138
143
  */
139
144
  export function pushContextState(gl: WebGLRenderingContext): void {
140
- // @ts-expect-error
141
- if (!gl.state) {
145
+ let glState = getContextState(gl);
146
+ if (!glState) {
142
147
  trackContextState(gl, {copyState: false});
148
+ glState = getContextState(gl);
143
149
  }
144
- // @ts-expect-error
145
- gl.state.push();
150
+ glState.push();
146
151
  }
147
152
 
148
153
 
@@ -150,10 +155,9 @@ class GLState {
150
155
  * Restores previously saved WebGL context state
151
156
  */
152
157
  export function popContextState(gl: WebGLRenderingContext): void {
153
- // @ts-expect-error
154
- assert(gl.state);
155
- // @ts-expect-error
156
- gl.state.pop();
158
+ const glState = getContextState(gl);
159
+ assert(glState);
160
+ glState.pop();
157
161
  }
158
162
 
159
163
  // HELPER FUNCTIONS - INSTALL GET/SET INTERCEPTORS (SPYS) ON THE CONTEXT
@@ -164,7 +168,7 @@ export function popContextState(gl: WebGLRenderingContext): void {
164
168
  * @param gl
165
169
  * @param functionName
166
170
  */
167
- function installGetterOverride(gl, functionName) {
171
+ function installGetterOverride(gl: WebGLRenderingContext, functionName: string) {
168
172
  // Get the original function from the WebGLRenderingContext
169
173
  const originalGetterFunc = gl[functionName].bind(gl);
170
174
 
@@ -175,15 +179,16 @@ function installGetterOverride(gl, functionName) {
175
179
  return originalGetterFunc(pname);
176
180
  }
177
181
 
178
- if (!(pname in gl.state.cache)) {
182
+ const glState = getContextState(gl);
183
+ if (!(pname in glState.cache)) {
179
184
  // WebGL limits are not prepopulated in the cache, call the original getter when first queried.
180
- gl.state.cache[pname] = originalGetterFunc(pname);
185
+ glState.cache[pname] = originalGetterFunc(pname);
181
186
  }
182
187
 
183
188
  // Optionally call the original function to do a "hard" query from the WebGLRenderingContext
184
- return gl.state.enable
189
+ return glState.enable
185
190
  ? // Call the getter the params so that it can e.g. serve from a cache
186
- gl.state.cache[pname]
191
+ glState.cache[pname]
187
192
  : // Optionally call the original function to do a "hard" query from the WebGLRenderingContext
188
193
  originalGetterFunc(pname);
189
194
  };
@@ -204,19 +209,21 @@ function installGetterOverride(gl, functionName) {
204
209
  * @param setter
205
210
  * @returns
206
211
  */
207
- function installSetterSpy(gl, functionName, setter) {
212
+ function installSetterSpy(gl: WebGLRenderingContext, functionName: string, setter) {
208
213
  // Get the original function from the WebGLRenderingContext
209
214
  if (!gl[functionName]) {
210
215
  // This could happen if we try to intercept WebGL2 method on a WebGL1 context
211
216
  return;
212
217
  }
218
+
213
219
  const originalSetterFunc = gl[functionName].bind(gl);
214
220
 
215
221
  // Wrap it with a spy so that we can update our state cache when it gets called
216
222
  gl[functionName] = function set(...params) {
217
223
  // Update the value
218
224
  // Call the setter with the state cache and the params so that it can store the parameters
219
- const {valueChanged, oldValue} = setter(gl.state._updateCache, ...params);
225
+ const glState = getContextState(gl);
226
+ const {valueChanged, oldValue} = setter(glState._updateCache, ...params);
220
227
 
221
228
  // Call the original WebGLRenderingContext func to make sure the context actually gets updated
222
229
  if (valueChanged) {
@@ -238,13 +245,14 @@ function installSetterSpy(gl, functionName, setter) {
238
245
  });
239
246
  }
240
247
 
241
- function installProgramSpy(gl) {
248
+ function installProgramSpy(gl: WebGLRenderingContext): void {
242
249
  const originalUseProgram = gl.useProgram.bind(gl);
243
250
 
244
251
  gl.useProgram = function useProgramLuma(handle) {
245
- if (gl.state.program !== handle) {
252
+ const glState = getContextState(gl);
253
+ if (glState.program !== handle) {
246
254
  originalUseProgram(handle);
247
- gl.state.program = handle;
255
+ glState.program = handle;
248
256
  }
249
257
  };
250
258
  }
@@ -1,3 +1,5 @@
1
+ import type {Device} from '@luma.gl/api';
2
+ import {WebGLDevice} from '../..';
1
3
  import {GLParameters, setParameters} from '../parameters/unified-parameter-api';
2
4
  import {pushContextState, popContextState} from './track-context-state';
3
5
 
@@ -9,10 +11,13 @@ import {pushContextState, popContextState} from './track-context-state';
9
11
  * - Restores parameters
10
12
  * - Returns the return value of the supplied function
11
13
  */
12
- export function withParameters(gl: WebGLRenderingContext, parameters: GLParameters & {nocatch?: boolean}, func: any): any {
14
+ export function withParameters(device: Device | WebGLRenderingContext, parameters: GLParameters & {nocatch?: boolean}, func: any): any {
15
+ const webglDevice = WebGLDevice.attach(device);
16
+ const gl = webglDevice.gl;
17
+
13
18
  if (isObjectEmpty(parameters)) {
14
19
  // Avoid setting state if no parameters provided. Just call and return
15
- return func(gl);
20
+ return func(device);
16
21
  }
17
22
 
18
23
  const {nocatch = true} = parameters;
package/src/index.ts CHANGED
@@ -5,71 +5,44 @@
5
5
  // Higher level abstractions can be built on these classes
6
6
 
7
7
  // Initialize any global state
8
- import './init';
8
+ import '@luma.gl/api';
9
+ import './init'
10
+
11
+ // Types
12
+ export type {WebGLLimits} from './adapter/device-helpers/device-limits';
13
+
14
+ export {registerHeadlessGL} from './context/context/create-headless-context';
15
+
16
+ // WebGL adapter classes
17
+ export {default as WebGLDevice} from './adapter/webgl-device';
18
+ export {default as WebGLCanvasContext} from './adapter/webgl-canvas-context';
19
+
20
+ // WebGL Resource classes
21
+ export {default as WEBGLResource, default as WebGLResource} from './adapter/objects/webgl-resource';
22
+ export {default as WEBGLBuffer} from './adapter/resources/webgl-buffer';
23
+ export {default as WEBGLTexture} from './adapter/resources/webgl-texture';
24
+ // export {default as WEBGLExternalTexture} from './adapter/resources/webgl-external-texture';
25
+ export {default as WEBGLShader} from './adapter/resources/webgl-shader';
26
+ export {default as WEBGLSampler} from './adapter/resources/webgl-sampler';
27
+ export {default as WEBGLFramebuffer} from './adapter/resources/webgl-framebuffer';
28
+
29
+ export {default as WEBGLRenderPipeline} from './adapter/resources/webgl-render-pipeline';
30
+ // export {default as WEBGLComputePipeline} from './adapter/resources/webgl-compute-pipeline';
31
+ export {default as WEBGLCommandEncoder} from './adapter/resources/webgl-command-encoder';
32
+ export {default as WEBGLRenderPass} from './adapter/resources/webgl-render-pass';
33
+ //export {default as WEBGLComputePass} from './adapter/resources/webgl-compute-pass';
34
+
35
+ // non-api resources
36
+ export type {RenderbufferProps} from './adapter/objects/webgl-renderbuffer';
37
+ export {default as WEBGLRenderbuffer} from './adapter/objects/webgl-renderbuffer';
38
+ export {default as WEBGLVertexArrayObject} from './adapter/objects/webgl-vertex-array-object';
39
+
40
+ // WebGL adapter classes (Legacy, will be moved to gltools)
41
+ export {default as Accessor} from './classic/accessor';
42
+ export type {AccessorObject} from './types';
43
+ export type {ClassicBufferProps, ClassicBufferProps as BufferProps} from './classic/buffer';
44
+ export {default as ClassicBuffer, default as Buffer} from './classic/buffer';
9
45
 
10
- // export type {WebGLDeviceProps, WebGLDeviceInfo, WebGPUDeviceLimits} from './lib/webgl-device';
11
- export type {WebGLDeviceProps} from './adapter/webgl-device';
12
- export {default as WebGLDevice, getWebGLDevice} from './adapter/webgl-device';
13
-
14
- // UTILS
15
- export {requestAnimationFrame, cancelAnimationFrame} from './webgl-utils/request-animation-frame';
16
-
17
- // WebGL Functions
18
- export {cloneTextureFrom} from './webgl-utils/texture-utils';
19
- export {getKeyValue, getKey} from './webgl-utils/constants-to-keys';
20
-
21
- // WebGL Helper Classes
22
- export {default as Accessor} from './classes/accessor';
23
-
24
- // WebGL1 classes
25
- export type {BufferProps} from '@luma.gl/api';
26
- export {default as Buffer} from './classes/webgl-buffer';
27
- export type {Texture2DProps} from './classes/texture-2d';
28
- export {default as Texture2D} from './classes/texture-2d';
29
- export type {TextureCubeProps} from './classes/texture-cube';
30
- export {default as TextureCube} from './classes/texture-cube';
31
-
32
- export type {ProgramProps} from './classes/program';
33
- export {default as Program} from './classes/program';
34
- export type {FramebufferProps} from './classes/framebuffer';
35
- export {default as Framebuffer} from './classes/framebuffer';
36
- export type {RenderbufferProps} from './classes/renderbuffer';
37
- export {default as Renderbuffer} from './classes/renderbuffer';
38
-
39
- // Classic luma.gl classes (For backwards compatibility)
40
- export type {ShaderProps} from './classes/shader';
41
- export {Shader, VertexShader, FragmentShader} from './classes/shader';
42
-
43
- export {clear, clearBuffer} from './classes/clear';
44
-
45
- // Copy and Blit
46
- export {
47
- readPixelsToArray,
48
- readPixelsToBuffer,
49
- copyToDataUrl,
50
- copyToImage,
51
- copyToTexture,
52
- blit
53
- } from './classes/copy-and-blit';
54
-
55
- // WebGL2 classes & Extensions
56
- export type {QueryProps} from './classes/query';
57
- export {default as Query} from './classes/query';
58
- export type {Texture3DProps} from './classes/texture-3d';
59
- export {default as Texture3D} from './classes/texture-3d';
60
- export type {TransformFeedbackProps} from './classes/transform-feedback';
61
- export {default as TransformFeedback} from './classes/transform-feedback';
62
- export type {VertexArrayObjectProps} from './classes/vertex-array-object';
63
- export {default as VertexArrayObject} from './classes/vertex-array-object';
64
- export type {VertexArrayProps} from './classes/vertex-array';
65
- export {default as VertexArray} from './classes/vertex-array';
66
- export {default as UniformBufferLayout} from './classes/uniform-buffer-layout';
67
-
68
- export {setDeviceParameters} from './adapter/converters/set-device-parameters';
69
-
70
- // experimental WebGL exports
71
-
72
- // UTILS
73
46
  export {
74
47
  isWebGL,
75
48
  isWebGL2,
@@ -83,7 +56,9 @@ export {cssToDeviceRatio, cssToDevicePixels} from './context/context/device-pixe
83
56
 
84
57
  // Unified parameter API
85
58
 
86
- export type {GLParameters} from './context/parameters/webgl-parameters';
59
+ export {setDeviceParameters, withDeviceParameters} from './adapter/converters/device-parameters';
60
+
61
+ export type {GLParameters} from './types/webgl';
87
62
  export {
88
63
  getParameters,
89
64
  setParameters,
@@ -104,41 +79,6 @@ export {
104
79
  // Polyfills (supports a subset of WebGL2 APIs on WebGL1 contexts)
105
80
  export {polyfillContext} from './context/polyfill/polyfill-context';
106
81
 
107
- // INTERNAL
108
- export {parseUniformName, getUniformSetter} from './classes/uniforms';
109
- export {getDebugTableForUniforms} from './debug/debug-uniforms';
110
- export {getDebugTableForVertexArray} from './debug/debug-vertex-array';
111
- export {getDebugTableForProgramConfiguration} from './debug/debug-program-configuration';
112
-
113
82
  // HELPERS - EXPERIMENTAL
114
- export {getProgramBindings} from './helpers/get-program-bindings';
115
-
116
- // DEPRECATED
117
-
118
- // Deprecated re-exports
119
- export {lumaStats} from './init';
120
- export {log, assert, uid, isObjectEmpty} from '@luma.gl/api';
121
- export {setPathPrefix, loadFile, loadImage} from '@luma.gl/api';
122
-
123
- // GLTOOLS
124
- export type {GLContextOptions} from './_deprecated/context-api';
125
- export {
126
- createGLContext,
127
- instrumentGLContext,
128
- resizeGLContext,
129
- hasFeature,
130
- hasFeatures,
131
- getFeatures,
132
- getContextInfo,
133
- getGLContextInfo,
134
- getContextLimits,
135
- getContextDebugInfo
136
- } from './_deprecated/context-api';
137
-
138
- // Features
139
- export {FEATURES} from './_deprecated/features';
140
-
141
- // REMOVED in v8.7
142
- // getShaderInfo,
143
- // getShaderName
144
- // getShaderVersion
83
+ export {getShaderLayout, getProgramBindings} from './adapter/helpers/get-shader-layout';
84
+ export {_checkFloat32ColorAttachment} from './adapter/converters/texture-formats';
package/src/init.ts CHANGED
@@ -1,48 +1,4 @@
1
- import {log} from '@luma.gl/api';
2
- import {isBrowser} from '@probe.gl/env';
3
- import {luma, lumaStats} from '@luma.gl/api';
1
+ import {luma} from '@luma.gl/api';
4
2
  import WebGLDevice from './adapter/webgl-device';
5
3
 
6
- // Version detection using babel plugin
7
- // @ts-expect-error
8
- const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'untranspiled source';
9
-
10
- const STARTUP_MESSAGE = 'set luma.log.level=1 (or higher) to trace rendering';
11
- // Assign luma.log.level in console to control logging: \
12
- // 0: none, 1: minimal, 2: verbose, 3: attribute/uniforms, 4: gl logs
13
- // luma.log.break[], set to gl funcs, luma.log.profile[] set to model names`;
14
-
15
- if (globalThis.luma && globalThis.luma.VERSION !== VERSION) {
16
- throw new Error(`luma.gl - multiple VERSIONs detected: ${globalThis.luma.VERSION} vs ${VERSION}`);
17
- }
18
-
19
- if (!globalThis.luma) {
20
- luma.registerDevices([WebGLDevice]);
21
-
22
- if (isBrowser()) {
23
- log.log(1, `luma.gl ${VERSION} - ${STARTUP_MESSAGE}`)();
24
- }
25
-
26
- globalThis.luma = globalThis.luma || {
27
- VERSION,
28
- version: VERSION,
29
- log,
30
-
31
- // A global stats object that various components can add information to
32
- // E.g. see webgl/resource.js
33
- stats: lumaStats,
34
-
35
- // Keep some luma globals in a sub-object
36
- // This allows us to dynamically detect if certain modules have been
37
- // included (such as IO and headless) and enable related functionality,
38
- // without unconditionally requiring and thus bundling big dependencies
39
- // into the app.
40
- globals: {
41
- modules: {},
42
- nodeIO: {}
43
- }
44
- };
45
- }
46
-
47
- export {lumaStats};
48
- export default globalThis.luma;
4
+ luma.registerDevices([WebGLDevice]);
@@ -0,0 +1,284 @@
1
+ import type {NumberArray} from '@luma.gl/api';
2
+ import GL from '@luma.gl/constants';
3
+
4
+ type Framebuffer = any;
5
+
6
+ export type GLDrawMode =
7
+ | GL.POINTS
8
+ | GL.LINES
9
+ | GL.LINE_STRIP
10
+ | GL.LINE_LOOP
11
+ | GL.TRIANGLES
12
+ | GL.TRIANGLE_STRIP
13
+ | GL.TRIANGLE_FAN;
14
+
15
+ export type GLPrimitive = GL.POINTS | GL.LINES | GL.TRIANGLES;
16
+
17
+ export type GLType =
18
+ | GL.FLOAT
19
+ | GL.UNSIGNED_SHORT
20
+ | GL.UNSIGNED_INT
21
+ | GL.UNSIGNED_BYTE
22
+ | GL.BYTE
23
+ | GL.SHORT
24
+ | GL.INT;
25
+
26
+ export type GLPackedType =
27
+ | GL.UNSIGNED_SHORT_5_6_5
28
+ | GL.UNSIGNED_SHORT_4_4_4_4
29
+ | GL.UNSIGNED_SHORT_5_5_5_1;
30
+
31
+ export type GLUniformType = GLSamplerType | GLCompositeType;
32
+
33
+ export type GLSamplerType =
34
+ | GL.SAMPLER_2D
35
+ | GL.SAMPLER_CUBE
36
+ | GL.SAMPLER_3D
37
+ | GL.SAMPLER_2D_SHADOW
38
+ | GL.SAMPLER_2D_ARRAY
39
+ | GL.SAMPLER_2D_ARRAY_SHADOW
40
+ | GL.SAMPLER_CUBE_SHADOW
41
+ | GL.INT_SAMPLER_2D
42
+ | GL.INT_SAMPLER_3D
43
+ | GL.INT_SAMPLER_CUBE
44
+ | GL.INT_SAMPLER_2D_ARRAY
45
+ | GL.UNSIGNED_INT_SAMPLER_2D
46
+ | GL.UNSIGNED_INT_SAMPLER_3D
47
+ | GL.UNSIGNED_INT_SAMPLER_CUBE
48
+ | GL.UNSIGNED_INT_SAMPLER_2D_ARRAY;
49
+
50
+ // Composite types table
51
+ export type GLCompositeType =
52
+ | GL.FLOAT
53
+ | GL.FLOAT_VEC2
54
+ | GL.FLOAT_VEC3
55
+ | GL.FLOAT_VEC4
56
+ | GL.INT
57
+ | GL.INT_VEC2
58
+ | GL.INT_VEC3
59
+ | GL.INT_VEC4
60
+ | GL.UNSIGNED_INT
61
+ | GL.UNSIGNED_INT_VEC2
62
+ | GL.UNSIGNED_INT_VEC3
63
+ | GL.UNSIGNED_INT_VEC4
64
+ | GL.BOOL
65
+ | GL.BOOL_VEC2
66
+ | GL.BOOL_VEC3
67
+ | GL.BOOL_VEC4
68
+ | GL.FLOAT_MAT2
69
+ | GL.FLOAT_MAT2x3
70
+ | GL.FLOAT_MAT2x4
71
+ | GL.FLOAT_MAT3x2
72
+ | GL.FLOAT_MAT3
73
+ | GL.FLOAT_MAT3x4
74
+ | GL.FLOAT_MAT4x2
75
+ | GL.FLOAT_MAT4x3
76
+ | GL.FLOAT_MAT4;
77
+
78
+ export type GLFunction =
79
+ | GL.NEVER
80
+ | GL.LESS
81
+ | GL.EQUAL
82
+ | GL.LEQUAL
83
+ | GL.GREATER
84
+ | GL.NOTEQUAL
85
+ | GL.GEQUAL
86
+ | GL.ALWAYS;
87
+
88
+ export type GLBlendEquation =
89
+ | GL.FUNC_ADD
90
+ | GL.FUNC_SUBTRACT
91
+ | GL.FUNC_REVERSE_SUBTRACT
92
+ | GL.MIN_EXT
93
+ | GL.MAX_EXT;
94
+
95
+ export type GLBlendFunction =
96
+ | GL.ZERO
97
+ | GL.ONE
98
+ | GL.SRC_COLOR
99
+ | GL.ONE_MINUS_SRC_COLOR
100
+ | GL.DST_COLOR
101
+ | GL.ONE_MINUS_DST_COLOR
102
+ | GL.SRC_ALPHA
103
+ | GL.ONE_MINUS_SRC_ALPHA
104
+ | GL.DST_ALPHA
105
+ | GL.ONE_MINUS_DST_ALPHA
106
+ | GL.CONSTANT_COLOR
107
+ | GL.ONE_MINUS_CONSTANT_COLOR
108
+ | GL.CONSTANT_ALPHA
109
+ | GL.ONE_MINUS_CONSTANT_ALPHA
110
+ | GL.SRC_ALPHA_SATURATE;
111
+
112
+ export type GLStencilOp =
113
+ | GL.KEEP
114
+ | GL.ZERO
115
+ | GL.REPLACE
116
+ | GL.INCR
117
+ | GL.INCR_WRAP
118
+ | GL.DECR
119
+ | GL.DECR_WRAP
120
+ | GL.INVERT;
121
+
122
+ /** Parameters for textures and samplers */
123
+ export type GLSamplerParameters = {
124
+ [GL.TEXTURE_WRAP_S]?: GL.CLAMP_TO_EDGE | GL.REPEAT | GL.MIRRORED_REPEAT;
125
+ [GL.TEXTURE_WRAP_T]?: GL.CLAMP_TO_EDGE | GL.REPEAT | GL.MIRRORED_REPEAT;
126
+ [GL.TEXTURE_WRAP_R]?: GL.CLAMP_TO_EDGE | GL.REPEAT | GL.MIRRORED_REPEAT;
127
+ [GL.TEXTURE_MAG_FILTER]?: GL.NEAREST | GL.LINEAR;
128
+ [GL.TEXTURE_MIN_FILTER]?:
129
+ | GL.NEAREST
130
+ | GL.LINEAR
131
+ | GL.NEAREST_MIPMAP_NEAREST
132
+ | GL.NEAREST_MIPMAP_LINEAR
133
+ | GL.LINEAR_MIPMAP_NEAREST
134
+ | GL.LINEAR_MIPMAP_LINEAR;
135
+ [GL.TEXTURE_MIN_LOD]?: number;
136
+ [GL.TEXTURE_MAX_LOD]?: number;
137
+ [GL.TEXTURE_COMPARE_FUNC]?: number; // COMPARE_FUNC);
138
+ [GL.TEXTURE_COMPARE_MODE]?: GL.COMPARE_REF_TO_TEXTURE;
139
+ [GL.TEXTURE_MAX_ANISOTROPY_EXT]?: number; //
140
+ };
141
+
142
+ /**
143
+ * All global WebGL values set by a variety of setter gl.enable ...
144
+ */
145
+ export type GLValueParameters = {
146
+ [GL.BLEND]?: boolean;
147
+ [GL.BLEND_COLOR]?: [number, number, number, number] | NumberArray;
148
+ [GL.BLEND_EQUATION_RGB]?: GLBlendEquation;
149
+ [GL.BLEND_EQUATION_ALPHA]?: GLBlendEquation;
150
+ [GL.BLEND_SRC_RGB]?: GLBlendFunction;
151
+ [GL.BLEND_DST_RGB]?: GLBlendFunction;
152
+ [GL.BLEND_SRC_ALPHA]?: GLBlendFunction;
153
+ [GL.BLEND_DST_ALPHA]?: GLBlendFunction;
154
+ [GL.COLOR_CLEAR_VALUE]?: [number, number, number, number] | NumberArray;
155
+ [GL.COLOR_WRITEMASK]?: [boolean, boolean, boolean, boolean] | boolean[];
156
+ [GL.CULL_FACE]?: boolean;
157
+ [GL.CULL_FACE_MODE]?: GL.FRONT | GL.BACK | GL.FRONT_AND_BACK;
158
+ [GL.DEPTH_TEST]?: boolean;
159
+ [GL.DEPTH_CLEAR_VALUE]?: number;
160
+ [GL.DEPTH_FUNC]?: GLFunction;
161
+ [GL.DEPTH_RANGE]?: [number, number] | NumberArray;
162
+ [GL.DEPTH_WRITEMASK]?: boolean;
163
+ [GL.DITHER]?: boolean;
164
+ [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
165
+ [GL.CURRENT_PROGRAM]?: WebGLProgram | null;
166
+ [GL.FRAMEBUFFER_BINDING]?: WebGLFramebuffer | null;
167
+ [GL.RENDERBUFFER_BINDING]?: WebGLRenderbuffer | null;
168
+ [GL.TRANSFORM_FEEDBACK_BINDING]?: WebGLTransformFeedback | null;
169
+ [GL.VERTEX_ARRAY_BINDING]?: WebGLVertexArrayObject | null;
170
+ [GL.ARRAY_BUFFER_BINDING]?: WebGLBuffer | null;
171
+ [GL.COPY_READ_BUFFER_BINDING]?: WebGLBuffer | null;
172
+ [GL.COPY_WRITE_BUFFER_BINDING]?: WebGLBuffer | null;
173
+ [GL.PIXEL_PACK_BUFFER_BINDING]?: WebGLBuffer | null;
174
+ [GL.PIXEL_UNPACK_BUFFER_BINDING]?: WebGLBuffer | null;
175
+ [GL.TEXTURE_BINDING_2D]?: WebGLTexture | null;
176
+ [GL.TEXTURE_BINDING_2D_ARRAY]?: WebGLTexture | null;
177
+ [GL.TEXTURE_BINDING_3D]?: WebGLTexture | null;
178
+ [GL.TEXTURE_BINDING_CUBE_MAP]?: WebGLTexture | null;
179
+ [GL.FRONT_FACE]?: GL.CW | GL.CCW;
180
+ [GL.GENERATE_MIPMAP_HINT]?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
181
+ [GL.LINE_WIDTH]?: number;
182
+ [GL.POLYGON_OFFSET_FILL]?: boolean;
183
+ [GL.POLYGON_OFFSET_FACTOR]?: number;
184
+ [GL.POLYGON_OFFSET_UNITS]?: number;
185
+ [GL.SAMPLE_ALPHA_TO_COVERAGE]?: boolean;
186
+ [GL.SAMPLE_COVERAGE]?: boolean;
187
+ [GL.RASTERIZER_DISCARD]?: boolean;
188
+ [GL.SAMPLE_COVERAGE_VALUE]?: number;
189
+ [GL.SAMPLE_COVERAGE_INVERT]?: boolean;
190
+ [GL.SCISSOR_TEST]?: boolean;
191
+ [GL.SCISSOR_BOX]?: [number, number, number, number] | NumberArray;
192
+ [GL.STENCIL_TEST]?: boolean;
193
+ [GL.STENCIL_CLEAR_VALUE]?: number;
194
+ [GL.STENCIL_WRITEMASK]?: number;
195
+ [GL.STENCIL_BACK_WRITEMASK]?: number;
196
+ [GL.STENCIL_FUNC]?: GLFunction;
197
+ [GL.STENCIL_REF]?: GLFunction;
198
+ [GL.STENCIL_VALUE_MASK]?: GLFunction;
199
+ [GL.STENCIL_BACK_FUNC]?: GLFunction;
200
+ [GL.STENCIL_BACK_REF]?: GLFunction;
201
+ [GL.STENCIL_BACK_VALUE_MASK]?: GLFunction;
202
+ [GL.STENCIL_FAIL]?: GLStencilOp;
203
+ [GL.STENCIL_PASS_DEPTH_FAIL]?: GLStencilOp;
204
+ [GL.STENCIL_PASS_DEPTH_PASS]?: GLStencilOp;
205
+ [GL.STENCIL_BACK_FAIL]?: GLStencilOp;
206
+ [GL.STENCIL_BACK_PASS_DEPTH_FAIL]?: GLStencilOp;
207
+ [GL.STENCIL_BACK_PASS_DEPTH_PASS]?: GLStencilOp;
208
+ [GL.VIEWPORT]?: [number, number, number, number] | NumberArray;
209
+
210
+ // WEBGL1 PIXEL PACK/UNPACK MODES
211
+ [GL.PACK_ALIGNMENT]?: number;
212
+ [GL.UNPACK_ALIGNMENT]?: number;
213
+ [GL.UNPACK_FLIP_Y_WEBGL]?: boolean;
214
+ [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]?: boolean;
215
+ [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]?: GL.NONE | GL.BROWSER_DEFAULT_WEBGL;
216
+
217
+ // WEBGL2 PIXEL PACK/UNPACK MODES
218
+ // RASTERIZER_DISCARD ...
219
+ [GL.PACK_ROW_LENGTH]?: number;
220
+ [GL.PACK_SKIP_PIXELS]?: number;
221
+ [GL.PACK_SKIP_ROWS]?: number;
222
+ [GL.READ_FRAMEBUFFER_BINDING]?: Framebuffer | null;
223
+ [GL.UNPACK_ROW_LENGTH]?: number;
224
+ [GL.UNPACK_IMAGE_HEIGHT]?: number;
225
+ [GL.UNPACK_SKIP_PIXELS]?: number;
226
+ [GL.UNPACK_SKIP_ROWS]?: number;
227
+ [GL.UNPACK_SKIP_IMAGES]?: number;
228
+ };
229
+
230
+ export type GLFunctionParameters = {
231
+ // Function-style setters
232
+ framebuffer?: Framebuffer | null;
233
+ blend?: boolean;
234
+ blendColor?: [number, number, number, number] | NumberArray;
235
+ blendEquation?: GLBlendEquation | [GLBlendEquation, GLBlendEquation];
236
+ blendFunc?:
237
+ | [GLBlendFunction, GLBlendFunction]
238
+ | [GLBlendFunction, GLBlendFunction, GLBlendFunction, GLBlendFunction];
239
+
240
+ clearColor?: [number, number, number, number] | NumberArray;
241
+ clearDepth?: number;
242
+ clearStencil?: number;
243
+
244
+ colorMask?: [boolean, boolean, boolean, boolean] | boolean[];
245
+
246
+ cull?: boolean;
247
+ cullFace?: GL.FRONT | GL.BACK | GL.FRONT_AND_BACK;
248
+
249
+ depthTest?: boolean;
250
+ depthFunc?: GLFunction;
251
+ depthMask?: boolean;
252
+ depthRange?: [number, number] | NumberArray;
253
+
254
+ dither?: boolean;
255
+
256
+ derivativeHint?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
257
+
258
+ frontFace?: GL.CW | GL.CCW;
259
+
260
+ mipmapHint?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
261
+
262
+ lineWidth?: number;
263
+
264
+ polygonOffsetFill?: boolean;
265
+ polygonOffset?: [number, number];
266
+
267
+ sampleCoverage?: [number, boolean];
268
+
269
+ scissorTest?: boolean;
270
+ scissor?: [number, number, number, number] | NumberArray;
271
+
272
+ stencilTest?: boolean;
273
+ stencilMask?: number | [number, number];
274
+ stencilFunc?:
275
+ | [GLFunction, number, number]
276
+ | [GLFunction, number, number, GLFunction, number, number];
277
+ stencilOp?:
278
+ | [GLStencilOp, GLStencilOp, GLStencilOp]
279
+ | [GLStencilOp, GLStencilOp, GLStencilOp, GLStencilOp, GLStencilOp, GLStencilOp];
280
+ viewport?: [number, number, number, number] | NumberArray;
281
+ };
282
+
283
+ /** WebGL style parameters object (with both GL constants and function style fields) */
284
+ export type GLParameters = GLValueParameters & GLFunctionParameters;