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

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 (784) 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 +52 -0
  111. package/dist/adapter/webgl-canvas-context.js.map +1 -0
  112. package/dist/adapter/webgl-device.d.ts +77 -83
  113. package/dist/adapter/webgl-device.d.ts.map +1 -1
  114. package/dist/adapter/webgl-device.js +253 -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/{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 +0 -5
  129. package/dist/context/context/context-state.d.ts.map +1 -1
  130. package/dist/context/context/context-state.js +1 -6
  131. package/dist/context/context/context-state.js.map +1 -1
  132. package/dist/context/context/{create-context.d.ts → create-browser-context.d.ts} +2 -1
  133. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  134. package/dist/{esm/context/context/create-context.js → context/context/create-browser-context.js} +27 -3
  135. package/dist/context/context/create-browser-context.js.map +1 -0
  136. package/dist/context/context/create-headless-context.d.ts +9 -0
  137. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  138. package/dist/context/context/create-headless-context.js +43 -0
  139. package/dist/context/context/create-headless-context.js.map +1 -0
  140. package/dist/context/debug/spector.d.ts +18 -0
  141. package/dist/context/debug/spector.d.ts.map +1 -0
  142. package/dist/context/debug/spector.js +76 -0
  143. package/dist/context/debug/spector.js.map +1 -0
  144. package/dist/context/debug/webgl-developer-tools.d.ts +19 -0
  145. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -0
  146. package/dist/context/debug/webgl-developer-tools.js +121 -0
  147. package/dist/context/debug/webgl-developer-tools.js.map +1 -0
  148. package/dist/context/parameters/unified-parameter-api.d.ts +9 -7
  149. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  150. package/dist/context/parameters/unified-parameter-api.js +9 -8
  151. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  152. package/dist/context/parameters/webgl-parameter-tables.d.ts +40 -36
  153. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  154. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  155. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  156. package/dist/context/polyfill/polyfill-context.js +3 -3
  157. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  158. package/dist/context/polyfill/polyfill-table.d.ts +1 -1
  159. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  160. package/dist/context/polyfill/polyfill-table.js +1 -1
  161. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  162. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  163. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  164. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  165. package/dist/context/state-tracker/track-context-state.js +26 -12
  166. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  167. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  168. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  169. package/dist/context/state-tracker/with-parameters.js +6 -2
  170. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  171. package/dist/es5/adapter/converters/{set-device-parameters.js → device-parameters.js} +53 -6
  172. package/dist/es5/adapter/converters/device-parameters.js.map +1 -0
  173. package/dist/es5/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
  174. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -0
  175. package/dist/es5/adapter/converters/sampler-parameters.js +245 -0
  176. package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -0
  177. package/dist/es5/adapter/converters/texture-formats.js +1031 -0
  178. package/dist/es5/adapter/converters/texture-formats.js.map +1 -0
  179. package/dist/es5/adapter/converters/vertex-formats.js +45 -0
  180. package/dist/es5/adapter/converters/vertex-formats.js.map +1 -0
  181. package/dist/es5/adapter/device-helpers/device-features.js +61 -58
  182. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
  183. package/dist/es5/adapter/device-helpers/device-limits.js +1 -1
  184. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
  185. package/dist/es5/adapter/device-helpers/get-device-info.js +7 -7
  186. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
  187. package/dist/es5/adapter/helpers/attribute-utils.js +91 -0
  188. package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -0
  189. package/dist/es5/{helpers/get-program-bindings.js → adapter/helpers/get-shader-layout.js} +211 -94
  190. package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -0
  191. package/dist/es5/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
  192. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  193. package/dist/es5/adapter/helpers/set-uniform.js +125 -0
  194. package/dist/es5/adapter/helpers/set-uniform.js.map +1 -0
  195. package/dist/es5/adapter/helpers/uniforms.js +112 -0
  196. package/dist/es5/adapter/helpers/uniforms.js.map +1 -0
  197. package/dist/es5/{webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
  198. package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -0
  199. package/dist/es5/{classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +48 -98
  200. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -0
  201. package/dist/es5/{classes → adapter/objects}/webgl-resource.js +8 -3
  202. package/dist/es5/adapter/objects/webgl-resource.js.map +1 -0
  203. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +137 -0
  204. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  205. package/dist/es5/adapter/resources/webgl-buffer.js +243 -0
  206. package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -0
  207. package/dist/es5/adapter/resources/webgl-command-buffer.js +96 -0
  208. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -0
  209. package/dist/es5/adapter/resources/webgl-command-encoder.js +98 -0
  210. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -0
  211. package/dist/es5/adapter/resources/webgl-external-texture.js +2 -0
  212. package/dist/{esm/helpers/program-bindings.js.map → es5/adapter/resources/webgl-external-texture.js.map} +1 -1
  213. package/dist/es5/adapter/resources/webgl-framebuffer.js +346 -0
  214. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -0
  215. package/dist/es5/{classes/texture-2d.js → adapter/resources/webgl-render-pass.js} +26 -45
  216. package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -0
  217. package/dist/es5/adapter/resources/webgl-render-pipeline.js +530 -0
  218. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -0
  219. package/dist/es5/adapter/resources/webgl-sampler.js +96 -0
  220. package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -0
  221. package/dist/es5/adapter/{webgl-shader.js → resources/webgl-shader.js} +16 -21
  222. package/dist/es5/adapter/resources/webgl-shader.js.map +1 -0
  223. package/dist/es5/{classes/texture.js → adapter/resources/webgl-texture.js} +374 -298
  224. package/dist/es5/adapter/resources/webgl-texture.js.map +1 -0
  225. package/dist/es5/adapter/webgl-canvas-context.js +94 -0
  226. package/dist/es5/adapter/webgl-canvas-context.js.map +1 -0
  227. package/dist/es5/adapter/webgl-device.js +325 -131
  228. package/dist/es5/adapter/webgl-device.js.map +1 -1
  229. package/dist/es5/{classes → classic}/accessor.js +25 -1
  230. package/dist/es5/classic/accessor.js.map +1 -0
  231. package/dist/es5/{classes/webgl-buffer.js → classic/buffer.js} +88 -72
  232. package/dist/es5/classic/buffer.js.map +1 -0
  233. package/dist/es5/{webgl-utils → classic}/typed-array-utils.js +0 -0
  234. package/dist/es5/classic/typed-array-utils.js.map +1 -0
  235. package/dist/es5/context/context/context-state.js +1 -6
  236. package/dist/es5/context/context/context-state.js.map +1 -1
  237. package/dist/es5/context/context/{create-context.js → create-browser-context.js} +29 -3
  238. package/dist/es5/context/context/create-browser-context.js.map +1 -0
  239. package/dist/es5/context/context/create-headless-context.js +60 -0
  240. package/dist/es5/context/context/create-headless-context.js.map +1 -0
  241. package/dist/es5/context/debug/spector.js +133 -0
  242. package/dist/es5/context/debug/spector.js.map +1 -0
  243. package/dist/es5/context/debug/webgl-developer-tools.js +198 -0
  244. package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -0
  245. package/dist/es5/context/parameters/unified-parameter-api.js +15 -9
  246. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
  247. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
  248. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
  249. package/dist/es5/context/polyfill/polyfill-context.js +3 -3
  250. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
  251. package/dist/es5/context/polyfill/polyfill-table.js +1 -1
  252. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
  253. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
  254. package/dist/es5/context/state-tracker/track-context-state.js +39 -24
  255. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
  256. package/dist/es5/context/state-tracker/with-parameters.js +8 -2
  257. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
  258. package/dist/es5/index.js +63 -305
  259. package/dist/es5/index.js.map +1 -1
  260. package/dist/es5/init.js +1 -41
  261. package/dist/es5/init.js.map +1 -1
  262. package/dist/es5/{context/parameters/webgl-parameters.js → types/webgl.js} +1 -1
  263. package/dist/es5/types/webgl.js.map +1 -0
  264. package/dist/esm/adapter/converters/{set-device-parameters.js → device-parameters.js} +50 -6
  265. package/dist/esm/adapter/converters/device-parameters.js.map +1 -0
  266. package/dist/esm/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
  267. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -0
  268. package/dist/esm/adapter/converters/sampler-parameters.js +227 -0
  269. package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -0
  270. package/dist/esm/adapter/converters/texture-formats.js +954 -0
  271. package/dist/esm/adapter/converters/texture-formats.js.map +1 -0
  272. package/dist/esm/adapter/converters/vertex-formats.js +35 -0
  273. package/dist/esm/adapter/converters/vertex-formats.js.map +1 -0
  274. package/dist/esm/adapter/device-helpers/device-features.js +39 -50
  275. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
  276. package/dist/esm/adapter/device-helpers/device-limits.js +1 -0
  277. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
  278. package/dist/esm/adapter/device-helpers/get-device-info.js +7 -7
  279. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
  280. package/dist/esm/adapter/helpers/attribute-utils.js +81 -0
  281. package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -0
  282. package/dist/esm/adapter/helpers/get-shader-layout.js +330 -0
  283. package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -0
  284. package/dist/{webgl-utils → esm/adapter/helpers}/parse-shader-compiler-log.js +0 -0
  285. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  286. package/dist/esm/adapter/helpers/set-uniform.js +115 -0
  287. package/dist/esm/adapter/helpers/set-uniform.js.map +1 -0
  288. package/dist/esm/adapter/helpers/uniforms.js +99 -0
  289. package/dist/esm/adapter/helpers/uniforms.js.map +1 -0
  290. package/dist/{webgl-utils → esm/adapter/objects}/constants-to-keys.js +1 -0
  291. package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -0
  292. package/dist/{classes/renderbuffer.js → esm/adapter/objects/webgl-renderbuffer.js} +38 -72
  293. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -0
  294. package/dist/esm/{classes → adapter/objects}/webgl-resource.js +7 -3
  295. package/dist/esm/adapter/objects/webgl-resource.js.map +1 -0
  296. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +84 -0
  297. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  298. package/dist/esm/adapter/resources/webgl-buffer.js +164 -0
  299. package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -0
  300. package/dist/esm/adapter/resources/webgl-command-buffer.js +65 -0
  301. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -0
  302. package/dist/esm/adapter/resources/webgl-command-encoder.js +53 -0
  303. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -0
  304. package/dist/esm/adapter/resources/webgl-external-texture.js +2 -0
  305. package/dist/{helpers/program-bindings.js.map → esm/adapter/resources/webgl-external-texture.js.map} +1 -1
  306. package/dist/esm/adapter/resources/webgl-framebuffer.js +267 -0
  307. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -0
  308. package/dist/esm/adapter/resources/webgl-render-pass.js +21 -0
  309. package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -0
  310. package/dist/esm/adapter/resources/webgl-render-pipeline.js +428 -0
  311. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -0
  312. package/dist/esm/adapter/resources/webgl-sampler.js +50 -0
  313. package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -0
  314. package/dist/{adapter → esm/adapter/resources}/webgl-shader.js +17 -23
  315. package/dist/esm/adapter/resources/webgl-shader.js.map +1 -0
  316. package/dist/esm/{classes/texture.js → adapter/resources/webgl-texture.js} +280 -232
  317. package/dist/esm/adapter/resources/webgl-texture.js.map +1 -0
  318. package/dist/esm/adapter/webgl-canvas-context.js +52 -0
  319. package/dist/esm/adapter/webgl-canvas-context.js.map +1 -0
  320. package/dist/esm/adapter/webgl-device.js +253 -115
  321. package/dist/esm/adapter/webgl-device.js.map +1 -1
  322. package/dist/esm/{classes → classic}/accessor.js +33 -1
  323. package/dist/esm/classic/accessor.js.map +1 -0
  324. package/dist/esm/{classes/webgl-buffer.js → classic/buffer.js} +67 -57
  325. package/dist/esm/classic/buffer.js.map +1 -0
  326. package/dist/{webgl-utils → esm/classic}/typed-array-utils.js +0 -0
  327. package/dist/esm/classic/typed-array-utils.js.map +1 -0
  328. package/dist/esm/context/context/context-state.js +1 -6
  329. package/dist/esm/context/context/context-state.js.map +1 -1
  330. package/dist/{context/context/create-context.js → esm/context/context/create-browser-context.js} +27 -3
  331. package/dist/esm/context/context/create-browser-context.js.map +1 -0
  332. package/dist/esm/context/context/create-headless-context.js +43 -0
  333. package/dist/esm/context/context/create-headless-context.js.map +1 -0
  334. package/dist/esm/context/debug/spector.js +76 -0
  335. package/dist/esm/context/debug/spector.js.map +1 -0
  336. package/dist/esm/context/debug/webgl-developer-tools.js +121 -0
  337. package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -0
  338. package/dist/esm/context/parameters/unified-parameter-api.js +9 -8
  339. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
  340. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
  341. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
  342. package/dist/esm/context/polyfill/polyfill-context.js +3 -3
  343. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
  344. package/dist/esm/context/polyfill/polyfill-table.js +1 -1
  345. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
  346. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
  347. package/dist/esm/context/state-tracker/track-context-state.js +26 -12
  348. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
  349. package/dist/esm/context/state-tracker/with-parameters.js +6 -2
  350. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
  351. package/dist/esm/index.js +20 -32
  352. package/dist/esm/index.js.map +1 -1
  353. package/dist/esm/init.js +2 -31
  354. package/dist/esm/init.js.map +1 -1
  355. package/dist/esm/types/webgl.js +2 -0
  356. package/dist/esm/types/webgl.js.map +1 -0
  357. package/dist/index.d.ts +25 -47
  358. package/dist/index.d.ts.map +1 -1
  359. package/dist/index.js +20 -32
  360. package/dist/index.js.map +1 -1
  361. package/dist/init.d.ts +1 -4
  362. package/dist/init.d.ts.map +1 -1
  363. package/dist/init.js +2 -31
  364. package/dist/init.js.map +1 -1
  365. package/dist/types/webgl.d.ts +145 -0
  366. package/dist/types/webgl.d.ts.map +1 -0
  367. package/dist/types/webgl.js +2 -0
  368. package/dist/types/webgl.js.map +1 -0
  369. package/package.json +5 -5
  370. package/src/adapter/converters/{set-device-parameters.ts → device-parameters.ts} +81 -12
  371. package/src/{classes → adapter/converters}/renderbuffer-formats.ts +1 -1
  372. package/src/adapter/converters/sampler-parameters.ts +184 -0
  373. package/src/adapter/converters/texture-formats.ts +633 -0
  374. package/src/adapter/converters/vertex-formats.ts +22 -0
  375. package/src/adapter/device-helpers/device-features.ts +55 -124
  376. package/src/adapter/device-helpers/device-limits.ts +6 -3
  377. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  378. package/src/adapter/helpers/attribute-utils.ts +61 -0
  379. package/src/adapter/helpers/get-shader-layout.ts +407 -0
  380. package/src/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.ts +0 -0
  381. package/src/adapter/helpers/set-uniform.ts +87 -0
  382. package/src/adapter/helpers/uniforms.ts +121 -0
  383. package/src/{webgl-utils → adapter/objects}/constants-to-keys.ts +6 -3
  384. package/src/adapter/objects/webgl-renderbuffer.ts +104 -0
  385. package/src/{classes → adapter/objects}/webgl-resource.ts +23 -17
  386. package/src/adapter/objects/webgl-vertex-array-object.ts +111 -0
  387. package/src/adapter/resources/webgl-buffer.ts +219 -0
  388. package/src/adapter/resources/webgl-command-buffer.ts +94 -0
  389. package/src/adapter/resources/webgl-command-encoder.ts +58 -0
  390. package/src/adapter/resources/webgl-external-texture.ts +92 -0
  391. package/src/adapter/resources/webgl-framebuffer.ts +282 -0
  392. package/src/adapter/resources/webgl-render-pass.ts +24 -0
  393. package/src/adapter/resources/webgl-render-pipeline.ts +425 -0
  394. package/src/adapter/resources/webgl-sampler.ts +56 -0
  395. package/src/adapter/{webgl-shader.ts → resources/webgl-shader.ts} +19 -24
  396. package/src/adapter/resources/webgl-texture.ts +1036 -0
  397. package/src/adapter/webgl-canvas-context.ts +72 -0
  398. package/src/adapter/webgl-device.ts +312 -285
  399. package/{dist/esm/classes/accessor.ts.disabled → src/classic/accessor.ts} +38 -37
  400. package/src/{classes/webgl-buffer.ts → classic/buffer.ts} +76 -84
  401. package/src/{webgl-utils → classic}/typed-array-utils.ts +5 -1
  402. package/src/context/context/context-state.ts +4 -12
  403. package/src/context/context/{create-context.ts → create-browser-context.ts} +41 -6
  404. package/src/context/context/create-headless-context.ts +48 -0
  405. package/src/context/debug/spector.ts +92 -0
  406. package/src/context/debug/webgl-developer-tools.ts +162 -0
  407. package/src/context/parameters/unified-parameter-api.ts +21 -13
  408. package/src/context/parameters/webgl-parameter-tables.ts +38 -36
  409. package/src/context/polyfill/get-parameter-polyfill.ts +1 -1
  410. package/src/context/polyfill/polyfill-context.ts +4 -5
  411. package/src/context/polyfill/polyfill-table.ts +1 -1
  412. package/src/context/state-tracker/deep-array-equal.ts +1 -1
  413. package/src/context/state-tracker/track-context-state.ts +34 -26
  414. package/src/context/state-tracker/with-parameters.ts +7 -2
  415. package/src/index.ts +42 -105
  416. package/src/init.ts +2 -46
  417. package/src/types/webgl.ts +284 -0
  418. package/dist/_deprecated/context-api.d.ts +0 -85
  419. package/dist/_deprecated/context-api.d.ts.map +0 -1
  420. package/dist/_deprecated/context-api.js +0 -76
  421. package/dist/_deprecated/context-api.js.map +0 -1
  422. package/dist/_deprecated/features.d.ts +0 -27
  423. package/dist/_deprecated/features.d.ts.map +0 -1
  424. package/dist/_deprecated/features.js +0 -111
  425. package/dist/_deprecated/features.js.map +0 -1
  426. package/dist/adapter/converters/set-device-parameters.d.ts +0 -5
  427. package/dist/adapter/converters/set-device-parameters.d.ts.map +0 -1
  428. package/dist/adapter/converters/set-device-parameters.js.map +0 -1
  429. package/dist/adapter/converters/webgpu-texture-formats.d.ts +0 -281
  430. package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +0 -1
  431. package/dist/adapter/converters/webgpu-texture-formats.js +0 -285
  432. package/dist/adapter/converters/webgpu-texture-formats.js.map +0 -1
  433. package/dist/adapter/webgl-shader.d.ts.map +0 -1
  434. package/dist/adapter/webgl-shader.js.map +0 -1
  435. package/dist/classes/accessor.d.ts +0 -28
  436. package/dist/classes/accessor.d.ts.map +0 -1
  437. package/dist/classes/accessor.js.map +0 -1
  438. package/dist/classes/accessor.ts.disabled +0 -159
  439. package/dist/classes/clear.d.ts +0 -17
  440. package/dist/classes/clear.d.ts.map +0 -1
  441. package/dist/classes/clear.js +0 -105
  442. package/dist/classes/clear.js.map +0 -1
  443. package/dist/classes/copy-and-blit.d.ts +0 -86
  444. package/dist/classes/copy-and-blit.d.ts.map +0 -1
  445. package/dist/classes/copy-and-blit.js +0 -338
  446. package/dist/classes/copy-and-blit.js.map +0 -1
  447. package/dist/classes/framebuffer.d.ts +0 -139
  448. package/dist/classes/framebuffer.d.ts.map +0 -1
  449. package/dist/classes/framebuffer.js +0 -656
  450. package/dist/classes/framebuffer.js.map +0 -1
  451. package/dist/classes/program-configuration.d.ts +0 -24
  452. package/dist/classes/program-configuration.d.ts.map +0 -1
  453. package/dist/classes/program-configuration.js +0 -73
  454. package/dist/classes/program-configuration.js.map +0 -1
  455. package/dist/classes/program.d.ts +0 -66
  456. package/dist/classes/program.d.ts.map +0 -1
  457. package/dist/classes/program.js +0 -379
  458. package/dist/classes/program.js.map +0 -1
  459. package/dist/classes/query.d.ts +0 -27
  460. package/dist/classes/query.d.ts.map +0 -1
  461. package/dist/classes/query.js +0 -145
  462. package/dist/classes/query.js.map +0 -1
  463. package/dist/classes/renderbuffer-formats.d.ts.map +0 -1
  464. package/dist/classes/renderbuffer-formats.js.map +0 -1
  465. package/dist/classes/renderbuffer.d.ts +0 -60
  466. package/dist/classes/renderbuffer.d.ts.map +0 -1
  467. package/dist/classes/renderbuffer.js.map +0 -1
  468. package/dist/classes/shader.d.ts +0 -42
  469. package/dist/classes/shader.d.ts.map +0 -1
  470. package/dist/classes/shader.js +0 -118
  471. package/dist/classes/shader.js.map +0 -1
  472. package/dist/classes/texture-2d.d.ts +0 -9
  473. package/dist/classes/texture-2d.d.ts.map +0 -1
  474. package/dist/classes/texture-2d.js +0 -36
  475. package/dist/classes/texture-2d.js.map +0 -1
  476. package/dist/classes/texture-3d.d.ts +0 -29
  477. package/dist/classes/texture-3d.d.ts.map +0 -1
  478. package/dist/classes/texture-3d.js +0 -76
  479. package/dist/classes/texture-3d.js.map +0 -1
  480. package/dist/classes/texture-cube.d.ts +0 -28
  481. package/dist/classes/texture-cube.d.ts.map +0 -1
  482. package/dist/classes/texture-cube.js +0 -130
  483. package/dist/classes/texture-cube.js.map +0 -1
  484. package/dist/classes/texture-formats.d.ts +0 -37
  485. package/dist/classes/texture-formats.d.ts.map +0 -1
  486. package/dist/classes/texture-formats.js +0 -98
  487. package/dist/classes/texture-formats.js.map +0 -1
  488. package/dist/classes/texture.d.ts +0 -123
  489. package/dist/classes/texture.d.ts.map +0 -1
  490. package/dist/classes/texture.js.map +0 -1
  491. package/dist/classes/transform-feedback.d.ts +0 -33
  492. package/dist/classes/transform-feedback.d.ts.map +0 -1
  493. package/dist/classes/transform-feedback.js +0 -198
  494. package/dist/classes/transform-feedback.js.map +0 -1
  495. package/dist/classes/uniform-buffer-layout.d.ts +0 -17
  496. package/dist/classes/uniform-buffer-layout.d.ts.map +0 -1
  497. package/dist/classes/uniform-buffer-layout.js +0 -104
  498. package/dist/classes/uniform-buffer-layout.js.map +0 -1
  499. package/dist/classes/uniforms.d.ts +0 -37
  500. package/dist/classes/uniforms.d.ts.map +0 -1
  501. package/dist/classes/uniforms.js +0 -250
  502. package/dist/classes/uniforms.js.map +0 -1
  503. package/dist/classes/vertex-array-object.d.ts +0 -76
  504. package/dist/classes/vertex-array-object.d.ts.map +0 -1
  505. package/dist/classes/vertex-array-object.js +0 -261
  506. package/dist/classes/vertex-array-object.js.map +0 -1
  507. package/dist/classes/vertex-array.d.ts +0 -75
  508. package/dist/classes/vertex-array.d.ts.map +0 -1
  509. package/dist/classes/vertex-array.js +0 -408
  510. package/dist/classes/vertex-array.js.map +0 -1
  511. package/dist/classes/webgl-buffer.d.ts.map +0 -1
  512. package/dist/classes/webgl-buffer.js.map +0 -1
  513. package/dist/classes/webgl-resource.d.ts.map +0 -1
  514. package/dist/classes/webgl-resource.js.map +0 -1
  515. package/dist/context/context/create-context.d.ts.map +0 -1
  516. package/dist/context/context/create-context.js.map +0 -1
  517. package/dist/context/context/device-pixels.d.ts +0 -25
  518. package/dist/context/context/device-pixels.d.ts.map +0 -1
  519. package/dist/context/context/device-pixels.js +0 -98
  520. package/dist/context/context/device-pixels.js.map +0 -1
  521. package/dist/context/context/get-canvas.d.ts +0 -13
  522. package/dist/context/context/get-canvas.d.ts.map +0 -1
  523. package/dist/context/context/get-canvas.js +0 -31
  524. package/dist/context/context/get-canvas.js.map +0 -1
  525. package/dist/context/context/resize-context.d.ts +0 -20
  526. package/dist/context/context/resize-context.d.ts.map +0 -1
  527. package/dist/context/context/resize-context.js +0 -15
  528. package/dist/context/context/resize-context.js.map +0 -1
  529. package/dist/context/parameters/webgl-parameters.d.ts +0 -144
  530. package/dist/context/parameters/webgl-parameters.d.ts.map +0 -1
  531. package/dist/context/parameters/webgl-parameters.js +0 -2
  532. package/dist/context/parameters/webgl-parameters.js.map +0 -1
  533. package/dist/debug/debug-program-configuration.d.ts +0 -2
  534. package/dist/debug/debug-program-configuration.d.ts.map +0 -1
  535. package/dist/debug/debug-program-configuration.js +0 -40
  536. package/dist/debug/debug-program-configuration.js.map +0 -1
  537. package/dist/debug/debug-uniforms.d.ts +0 -12
  538. package/dist/debug/debug-uniforms.d.ts.map +0 -1
  539. package/dist/debug/debug-uniforms.js +0 -108
  540. package/dist/debug/debug-uniforms.js.map +0 -1
  541. package/dist/debug/debug-vertex-array.d.ts +0 -5
  542. package/dist/debug/debug-vertex-array.d.ts.map +0 -1
  543. package/dist/debug/debug-vertex-array.js +0 -118
  544. package/dist/debug/debug-vertex-array.js.map +0 -1
  545. package/dist/es5/_deprecated/context-api.js +0 -116
  546. package/dist/es5/_deprecated/context-api.js.map +0 -1
  547. package/dist/es5/_deprecated/features.js +0 -118
  548. package/dist/es5/_deprecated/features.js.map +0 -1
  549. package/dist/es5/adapter/converters/set-device-parameters.js.map +0 -1
  550. package/dist/es5/adapter/converters/webgpu-texture-formats.js +0 -296
  551. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +0 -1
  552. package/dist/es5/adapter/webgl-shader.js.map +0 -1
  553. package/dist/es5/classes/accessor.d.ts +0 -28
  554. package/dist/es5/classes/accessor.js.map +0 -1
  555. package/dist/es5/classes/accessor.ts.disabled +0 -159
  556. package/dist/es5/classes/clear.js +0 -135
  557. package/dist/es5/classes/clear.js.map +0 -1
  558. package/dist/es5/classes/copy-and-blit.js +0 -382
  559. package/dist/es5/classes/copy-and-blit.js.map +0 -1
  560. package/dist/es5/classes/framebuffer.js +0 -807
  561. package/dist/es5/classes/framebuffer.js.map +0 -1
  562. package/dist/es5/classes/program-configuration.js +0 -119
  563. package/dist/es5/classes/program-configuration.js.map +0 -1
  564. package/dist/es5/classes/program.js +0 -471
  565. package/dist/es5/classes/program.js.map +0 -1
  566. package/dist/es5/classes/query.js +0 -222
  567. package/dist/es5/classes/query.js.map +0 -1
  568. package/dist/es5/classes/renderbuffer-formats.js.map +0 -1
  569. package/dist/es5/classes/renderbuffer.js.map +0 -1
  570. package/dist/es5/classes/shader.js +0 -195
  571. package/dist/es5/classes/shader.js.map +0 -1
  572. package/dist/es5/classes/texture-2d.js.map +0 -1
  573. package/dist/es5/classes/texture-3d.js +0 -142
  574. package/dist/es5/classes/texture-3d.js.map +0 -1
  575. package/dist/es5/classes/texture-cube.js +0 -202
  576. package/dist/es5/classes/texture-cube.js.map +0 -1
  577. package/dist/es5/classes/texture-formats.js +0 -87
  578. package/dist/es5/classes/texture-formats.js.map +0 -1
  579. package/dist/es5/classes/texture.js.map +0 -1
  580. package/dist/es5/classes/transform-feedback.js +0 -267
  581. package/dist/es5/classes/transform-feedback.js.map +0 -1
  582. package/dist/es5/classes/uniform-buffer-layout.js +0 -130
  583. package/dist/es5/classes/uniform-buffer-layout.js.map +0 -1
  584. package/dist/es5/classes/uniforms.js +0 -232
  585. package/dist/es5/classes/uniforms.js.map +0 -1
  586. package/dist/es5/classes/vertex-array-object.js +0 -337
  587. package/dist/es5/classes/vertex-array-object.js.map +0 -1
  588. package/dist/es5/classes/vertex-array.js +0 -465
  589. package/dist/es5/classes/vertex-array.js.map +0 -1
  590. package/dist/es5/classes/webgl-buffer.js.map +0 -1
  591. package/dist/es5/classes/webgl-resource.js.map +0 -1
  592. package/dist/es5/context/context/create-context.js.map +0 -1
  593. package/dist/es5/context/context/device-pixels.js +0 -115
  594. package/dist/es5/context/context/device-pixels.js.map +0 -1
  595. package/dist/es5/context/context/get-canvas.js +0 -40
  596. package/dist/es5/context/context/get-canvas.js.map +0 -1
  597. package/dist/es5/context/context/resize-context.js +0 -23
  598. package/dist/es5/context/context/resize-context.js.map +0 -1
  599. package/dist/es5/context/parameters/webgl-parameters.js.map +0 -1
  600. package/dist/es5/debug/debug-program-configuration.js +0 -76
  601. package/dist/es5/debug/debug-program-configuration.js.map +0 -1
  602. package/dist/es5/debug/debug-uniforms.js +0 -156
  603. package/dist/es5/debug/debug-uniforms.js.map +0 -1
  604. package/dist/es5/debug/debug-vertex-array.js +0 -126
  605. package/dist/es5/debug/debug-vertex-array.js.map +0 -1
  606. package/dist/es5/helpers/get-program-bindings.js.map +0 -1
  607. package/dist/es5/helpers/program-bindings.js +0 -2
  608. package/dist/es5/types/accessor.d.ts +0 -29
  609. package/dist/es5/webgl-utils/attribute-utils.js +0 -186
  610. package/dist/es5/webgl-utils/attribute-utils.js.map +0 -1
  611. package/dist/es5/webgl-utils/constants-to-keys.js.map +0 -1
  612. package/dist/es5/webgl-utils/format-utils.js +0 -58
  613. package/dist/es5/webgl-utils/format-utils.js.map +0 -1
  614. package/dist/es5/webgl-utils/get-error.js +0 -49
  615. package/dist/es5/webgl-utils/get-error.js.map +0 -1
  616. package/dist/es5/webgl-utils/index.js +0 -74
  617. package/dist/es5/webgl-utils/index.js.map +0 -1
  618. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  619. package/dist/es5/webgl-utils/request-animation-frame.js +0 -16
  620. package/dist/es5/webgl-utils/request-animation-frame.js.map +0 -1
  621. package/dist/es5/webgl-utils/texture-utils.js +0 -61
  622. package/dist/es5/webgl-utils/texture-utils.js.map +0 -1
  623. package/dist/es5/webgl-utils/typed-array-utils.js.map +0 -1
  624. package/dist/esm/_deprecated/context-api.js +0 -76
  625. package/dist/esm/_deprecated/context-api.js.map +0 -1
  626. package/dist/esm/_deprecated/features.js +0 -111
  627. package/dist/esm/_deprecated/features.js.map +0 -1
  628. package/dist/esm/adapter/converters/set-device-parameters.js.map +0 -1
  629. package/dist/esm/adapter/converters/webgpu-texture-formats.js +0 -285
  630. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +0 -1
  631. package/dist/esm/adapter/webgl-shader.js.map +0 -1
  632. package/dist/esm/classes/accessor.d.ts +0 -28
  633. package/dist/esm/classes/accessor.js.map +0 -1
  634. package/dist/esm/classes/clear.js +0 -105
  635. package/dist/esm/classes/clear.js.map +0 -1
  636. package/dist/esm/classes/copy-and-blit.js +0 -338
  637. package/dist/esm/classes/copy-and-blit.js.map +0 -1
  638. package/dist/esm/classes/framebuffer.js +0 -656
  639. package/dist/esm/classes/framebuffer.js.map +0 -1
  640. package/dist/esm/classes/program-configuration.js +0 -73
  641. package/dist/esm/classes/program-configuration.js.map +0 -1
  642. package/dist/esm/classes/program.js +0 -379
  643. package/dist/esm/classes/program.js.map +0 -1
  644. package/dist/esm/classes/query.js +0 -145
  645. package/dist/esm/classes/query.js.map +0 -1
  646. package/dist/esm/classes/renderbuffer-formats.js.map +0 -1
  647. package/dist/esm/classes/renderbuffer.js.map +0 -1
  648. package/dist/esm/classes/shader.js +0 -118
  649. package/dist/esm/classes/shader.js.map +0 -1
  650. package/dist/esm/classes/texture-2d.js +0 -36
  651. package/dist/esm/classes/texture-2d.js.map +0 -1
  652. package/dist/esm/classes/texture-3d.js +0 -76
  653. package/dist/esm/classes/texture-3d.js.map +0 -1
  654. package/dist/esm/classes/texture-cube.js +0 -130
  655. package/dist/esm/classes/texture-cube.js.map +0 -1
  656. package/dist/esm/classes/texture-formats.js +0 -98
  657. package/dist/esm/classes/texture-formats.js.map +0 -1
  658. package/dist/esm/classes/texture.js.map +0 -1
  659. package/dist/esm/classes/transform-feedback.js +0 -198
  660. package/dist/esm/classes/transform-feedback.js.map +0 -1
  661. package/dist/esm/classes/uniform-buffer-layout.js +0 -104
  662. package/dist/esm/classes/uniform-buffer-layout.js.map +0 -1
  663. package/dist/esm/classes/uniforms.js +0 -250
  664. package/dist/esm/classes/uniforms.js.map +0 -1
  665. package/dist/esm/classes/vertex-array-object.js +0 -261
  666. package/dist/esm/classes/vertex-array-object.js.map +0 -1
  667. package/dist/esm/classes/vertex-array.js +0 -408
  668. package/dist/esm/classes/vertex-array.js.map +0 -1
  669. package/dist/esm/classes/webgl-buffer.js.map +0 -1
  670. package/dist/esm/classes/webgl-resource.js.map +0 -1
  671. package/dist/esm/context/context/create-context.js.map +0 -1
  672. package/dist/esm/context/context/device-pixels.js +0 -98
  673. package/dist/esm/context/context/device-pixels.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 -146
  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/device-pixels.ts +0 -147
  770. package/src/context/context/get-canvas.ts +0 -37
  771. package/src/context/context/resize-context.ts +0 -37
  772. package/src/context/parameters/webgl-parameters.ts +0 -197
  773. package/src/debug/debug-program-configuration.ts +0 -32
  774. package/src/debug/debug-uniforms.ts +0 -100
  775. package/src/debug/debug-vertex-array.ts +0 -123
  776. package/src/helpers/get-program-bindings.ts +0 -244
  777. package/src/helpers/program-bindings.ts +0 -46
  778. package/src/types/accessor.d.ts +0 -29
  779. package/src/webgl-utils/attribute-utils.ts +0 -171
  780. package/src/webgl-utils/format-utils.ts +0 -43
  781. package/src/webgl-utils/get-error.ts +0 -56
  782. package/src/webgl-utils/index.ts +0 -12
  783. package/src/webgl-utils/request-animation-frame.ts +0 -14
  784. package/src/webgl-utils/texture-utils.ts +0 -60
@@ -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,
@@ -78,12 +51,11 @@ export {
78
51
  assertWebGL2Context
79
52
  } from './context/context/webgl-checks';
80
53
 
81
- // Device ratio
82
- export {cssToDeviceRatio, cssToDevicePixels} from './context/context/device-pixels';
83
-
84
54
  // Unified parameter API
85
55
 
86
- export type {GLParameters} from './context/parameters/webgl-parameters';
56
+ export {setDeviceParameters, withDeviceParameters} from './adapter/converters/device-parameters';
57
+
58
+ export type {GLParameters} from './types/webgl';
87
59
  export {
88
60
  getParameters,
89
61
  setParameters,
@@ -104,41 +76,6 @@ export {
104
76
  // Polyfills (supports a subset of WebGL2 APIs on WebGL1 contexts)
105
77
  export {polyfillContext} from './context/polyfill/polyfill-context';
106
78
 
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
79
  // 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 {DEPRECATED_FEATURES as FEATURES} from './_deprecated/features';
140
-
141
- // REMOVED in v8.7
142
- // getShaderInfo,
143
- // getShaderName
144
- // getShaderVersion
80
+ export {getShaderLayout, getProgramBindings} from './adapter/helpers/get-shader-layout';
81
+ 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;