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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (731) hide show
  1. package/README.md +3 -67
  2. package/dist/adapter/converters/device-parameters.d.ts +17 -0
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -0
  4. package/dist/{esm/adapter/converters/set-device-parameters.js → adapter/converters/device-parameters.js} +36 -5
  5. package/dist/adapter/converters/device-parameters.js.map +1 -0
  6. package/dist/{classes → adapter/converters}/renderbuffer-formats.d.ts +0 -0
  7. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -0
  8. package/dist/{esm/classes → adapter/converters}/renderbuffer-formats.js +1 -1
  9. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
  10. package/dist/adapter/converters/sampler-parameters.d.ts +19 -0
  11. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -0
  12. package/dist/adapter/converters/sampler-parameters.js +208 -0
  13. package/dist/adapter/converters/sampler-parameters.js.map +1 -0
  14. package/dist/adapter/converters/texture-formats.d.ts +93 -0
  15. package/dist/adapter/converters/texture-formats.d.ts.map +1 -0
  16. package/dist/adapter/converters/texture-formats.js +954 -0
  17. package/dist/adapter/converters/texture-formats.js.map +1 -0
  18. package/dist/adapter/converters/vertex-formats.d.ts +4 -0
  19. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -0
  20. package/dist/adapter/converters/vertex-formats.js +35 -0
  21. package/dist/adapter/converters/vertex-formats.js.map +1 -0
  22. package/dist/adapter/device-helpers/device-features.d.ts +3 -6
  23. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  24. package/dist/adapter/device-helpers/device-features.js +27 -48
  25. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  26. package/dist/adapter/device-helpers/device-limits.d.ts +1 -0
  27. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  28. package/dist/adapter/device-helpers/device-limits.js +1 -0
  29. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  30. package/dist/adapter/device-helpers/get-device-info.js +7 -7
  31. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  32. package/dist/adapter/helpers/attribute-utils.d.ts +11 -0
  33. package/dist/adapter/helpers/attribute-utils.d.ts.map +1 -0
  34. package/dist/adapter/helpers/attribute-utils.js +81 -0
  35. package/dist/adapter/helpers/attribute-utils.js.map +1 -0
  36. package/dist/adapter/helpers/get-shader-layout.d.ts +55 -0
  37. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -0
  38. package/dist/adapter/helpers/get-shader-layout.js +306 -0
  39. package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
  40. package/dist/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.d.ts +0 -0
  41. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -0
  42. package/dist/{esm/webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
  43. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  44. package/dist/adapter/helpers/set-uniform.d.ts +4 -0
  45. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -0
  46. package/dist/adapter/helpers/set-uniform.js +115 -0
  47. package/dist/adapter/helpers/set-uniform.js.map +1 -0
  48. package/dist/adapter/helpers/uniforms.d.ts +26 -0
  49. package/dist/adapter/helpers/uniforms.d.ts.map +1 -0
  50. package/dist/adapter/helpers/uniforms.js +99 -0
  51. package/dist/adapter/helpers/uniforms.js.map +1 -0
  52. package/dist/adapter/objects/constants-to-keys.d.ts +5 -0
  53. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -0
  54. package/dist/{esm/webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
  55. package/dist/adapter/objects/constants-to-keys.js.map +1 -0
  56. package/dist/adapter/objects/webgl-renderbuffer.d.ts +40 -0
  57. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -0
  58. package/dist/{esm/classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +38 -72
  59. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
  60. package/dist/{classes → adapter/objects}/webgl-resource.d.ts +15 -14
  61. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -0
  62. package/dist/{esm/classes → adapter/objects}/webgl-resource.js +7 -3
  63. package/dist/adapter/objects/webgl-resource.js.map +1 -0
  64. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +27 -0
  65. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -0
  66. package/dist/adapter/objects/webgl-vertex-array-object.js +84 -0
  67. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  68. package/dist/adapter/resources/webgl-buffer.d.ts +27 -0
  69. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -0
  70. package/dist/adapter/resources/webgl-buffer.js +164 -0
  71. package/dist/adapter/resources/webgl-buffer.js.map +1 -0
  72. package/dist/adapter/resources/webgl-command-buffer.d.ts +25 -0
  73. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -0
  74. package/dist/adapter/resources/webgl-command-buffer.js +65 -0
  75. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
  76. package/dist/adapter/resources/webgl-command-encoder.d.ts +18 -0
  77. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -0
  78. package/dist/adapter/resources/webgl-command-encoder.js +53 -0
  79. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
  80. package/dist/adapter/resources/webgl-external-texture.d.ts +1 -0
  81. package/dist/adapter/resources/webgl-external-texture.d.ts.map +1 -0
  82. package/dist/adapter/resources/webgl-external-texture.js +2 -0
  83. package/dist/{es5/helpers/program-bindings.js.map → adapter/resources/webgl-external-texture.js.map} +1 -1
  84. package/dist/adapter/resources/webgl-framebuffer.d.ts +40 -0
  85. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -0
  86. package/dist/adapter/resources/webgl-framebuffer.js +265 -0
  87. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
  88. package/dist/adapter/resources/webgl-render-pass.d.ts +11 -0
  89. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -0
  90. package/dist/adapter/resources/webgl-render-pass.js +19 -0
  91. package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
  92. package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -0
  93. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -0
  94. package/dist/adapter/resources/webgl-render-pipeline.js +400 -0
  95. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
  96. package/dist/adapter/resources/webgl-sampler.d.ts +20 -0
  97. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -0
  98. package/dist/adapter/resources/webgl-sampler.js +50 -0
  99. package/dist/adapter/resources/webgl-sampler.js.map +1 -0
  100. package/dist/adapter/{webgl-shader.d.ts → resources/webgl-shader.d.ts} +3 -6
  101. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -0
  102. package/dist/adapter/{webgl-shader.js → resources/webgl-shader.js} +13 -20
  103. package/dist/adapter/resources/webgl-shader.js.map +1 -0
  104. package/dist/adapter/resources/webgl-texture.d.ts +193 -0
  105. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -0
  106. package/dist/{esm/classes/texture.js → adapter/resources/webgl-texture.js} +274 -229
  107. package/dist/adapter/resources/webgl-texture.js.map +1 -0
  108. package/dist/adapter/webgl-canvas-context.d.ts +36 -0
  109. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -0
  110. package/dist/adapter/webgl-canvas-context.js +54 -0
  111. package/dist/adapter/webgl-canvas-context.js.map +1 -0
  112. package/dist/adapter/webgl-device.d.ts +58 -77
  113. package/dist/adapter/webgl-device.d.ts.map +1 -1
  114. package/dist/adapter/webgl-device.js +185 -113
  115. package/dist/adapter/webgl-device.js.map +1 -1
  116. package/dist/classic/accessor.d.ts +32 -0
  117. package/dist/classic/accessor.d.ts.map +1 -0
  118. package/dist/{classes → classic}/accessor.js +33 -1
  119. package/dist/classic/accessor.js.map +1 -0
  120. package/dist/{classes/webgl-buffer.d.ts → classic/buffer.d.ts} +28 -33
  121. package/dist/classic/buffer.d.ts.map +1 -0
  122. package/dist/{esm/classes/webgl-buffer.js → classic/buffer.js} +53 -51
  123. package/dist/classic/buffer.js.map +1 -0
  124. package/dist/{webgl-utils → classic}/typed-array-utils.d.ts +3 -2
  125. package/dist/classic/typed-array-utils.d.ts.map +1 -0
  126. package/dist/{esm/webgl-utils → classic}/typed-array-utils.js +0 -0
  127. package/dist/classic/typed-array-utils.js.map +1 -0
  128. package/dist/context/context/context-state.d.ts.map +1 -1
  129. package/dist/context/context/context-state.js +1 -1
  130. package/dist/context/context/context-state.js.map +1 -1
  131. package/dist/context/context/create-context.d.ts +1 -0
  132. package/dist/context/context/create-context.d.ts.map +1 -1
  133. package/dist/context/context/create-context.js +12 -0
  134. package/dist/context/context/create-context.js.map +1 -1
  135. package/dist/context/context/device-pixels.d.ts +1 -1
  136. package/dist/context/context/device-pixels.d.ts.map +1 -1
  137. package/dist/context/context/device-pixels.js.map +1 -1
  138. package/dist/context/debug/spector.d.ts +18 -0
  139. package/dist/context/debug/spector.d.ts.map +1 -0
  140. package/dist/context/debug/spector.js +76 -0
  141. package/dist/context/debug/spector.js.map +1 -0
  142. package/dist/context/debug/webgl-developer-tools.d.ts +19 -0
  143. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -0
  144. package/dist/context/debug/webgl-developer-tools.js +121 -0
  145. package/dist/context/debug/webgl-developer-tools.js.map +1 -0
  146. package/dist/context/parameters/unified-parameter-api.d.ts +3 -2
  147. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  148. package/dist/context/parameters/unified-parameter-api.js +4 -4
  149. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  150. package/dist/context/parameters/webgl-parameter-tables.d.ts +40 -36
  151. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  152. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  153. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  154. package/dist/context/polyfill/polyfill-context.js +4 -3
  155. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  156. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  157. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  158. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  159. package/dist/context/state-tracker/track-context-state.js +25 -11
  160. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  161. package/dist/es5/adapter/converters/{set-device-parameters.js → device-parameters.js} +37 -5
  162. package/dist/es5/adapter/converters/device-parameters.js.map +1 -0
  163. package/dist/es5/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
  164. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -0
  165. package/dist/es5/adapter/converters/sampler-parameters.js +226 -0
  166. package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -0
  167. package/dist/es5/adapter/converters/texture-formats.js +1031 -0
  168. package/dist/es5/adapter/converters/texture-formats.js.map +1 -0
  169. package/dist/es5/adapter/converters/vertex-formats.js +45 -0
  170. package/dist/es5/adapter/converters/vertex-formats.js.map +1 -0
  171. package/dist/es5/adapter/device-helpers/device-features.js +46 -54
  172. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
  173. package/dist/es5/adapter/device-helpers/device-limits.js +1 -1
  174. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
  175. package/dist/es5/adapter/device-helpers/get-device-info.js +7 -7
  176. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
  177. package/dist/es5/adapter/helpers/attribute-utils.js +91 -0
  178. package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -0
  179. package/dist/es5/{helpers/get-program-bindings.js → adapter/helpers/get-shader-layout.js} +184 -87
  180. package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -0
  181. package/dist/es5/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
  182. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  183. package/dist/es5/adapter/helpers/set-uniform.js +125 -0
  184. package/dist/es5/adapter/helpers/set-uniform.js.map +1 -0
  185. package/dist/es5/adapter/helpers/uniforms.js +112 -0
  186. package/dist/es5/adapter/helpers/uniforms.js.map +1 -0
  187. package/dist/es5/{webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
  188. package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -0
  189. package/dist/es5/{classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +48 -98
  190. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -0
  191. package/dist/es5/{classes → adapter/objects}/webgl-resource.js +8 -3
  192. package/dist/es5/adapter/objects/webgl-resource.js.map +1 -0
  193. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +137 -0
  194. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  195. package/dist/es5/adapter/resources/webgl-buffer.js +243 -0
  196. package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -0
  197. package/dist/es5/adapter/resources/webgl-command-buffer.js +96 -0
  198. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -0
  199. package/dist/es5/adapter/resources/webgl-command-encoder.js +98 -0
  200. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -0
  201. package/dist/es5/adapter/resources/webgl-external-texture.js +2 -0
  202. package/dist/{esm/helpers/program-bindings.js.map → es5/adapter/resources/webgl-external-texture.js.map} +1 -1
  203. package/dist/es5/adapter/resources/webgl-framebuffer.js +345 -0
  204. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -0
  205. package/dist/es5/{classes/texture-2d.js → adapter/resources/webgl-render-pass.js} +25 -45
  206. package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -0
  207. package/dist/es5/adapter/resources/webgl-render-pipeline.js +505 -0
  208. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -0
  209. package/dist/es5/adapter/resources/webgl-sampler.js +96 -0
  210. package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -0
  211. package/dist/es5/adapter/{webgl-shader.js → resources/webgl-shader.js} +12 -18
  212. package/dist/es5/adapter/resources/webgl-shader.js.map +1 -0
  213. package/dist/es5/{classes/texture.js → adapter/resources/webgl-texture.js} +336 -260
  214. package/dist/es5/adapter/resources/webgl-texture.js.map +1 -0
  215. package/dist/es5/adapter/webgl-canvas-context.js +97 -0
  216. package/dist/es5/adapter/webgl-canvas-context.js.map +1 -0
  217. package/dist/es5/adapter/webgl-device.js +255 -135
  218. package/dist/es5/adapter/webgl-device.js.map +1 -1
  219. package/dist/es5/{classes → classic}/accessor.js +25 -1
  220. package/dist/es5/classic/accessor.js.map +1 -0
  221. package/dist/es5/{classes/webgl-buffer.js → classic/buffer.js} +74 -66
  222. package/dist/es5/classic/buffer.js.map +1 -0
  223. package/dist/es5/{webgl-utils → classic}/typed-array-utils.js +0 -0
  224. package/dist/es5/classic/typed-array-utils.js.map +1 -0
  225. package/dist/es5/context/context/context-state.js +1 -1
  226. package/dist/es5/context/context/context-state.js.map +1 -1
  227. package/dist/es5/context/context/create-context.js +12 -0
  228. package/dist/es5/context/context/create-context.js.map +1 -1
  229. package/dist/es5/context/context/device-pixels.js.map +1 -1
  230. package/dist/es5/context/debug/spector.js +133 -0
  231. package/dist/es5/context/debug/spector.js.map +1 -0
  232. package/dist/es5/context/debug/webgl-developer-tools.js +198 -0
  233. package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -0
  234. package/dist/es5/context/parameters/unified-parameter-api.js +7 -5
  235. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
  236. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
  237. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
  238. package/dist/es5/context/polyfill/polyfill-context.js +4 -3
  239. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
  240. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
  241. package/dist/es5/context/state-tracker/track-context-state.js +26 -11
  242. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
  243. package/dist/es5/index.js +66 -238
  244. package/dist/es5/index.js.map +1 -1
  245. package/dist/es5/init.js +1 -41
  246. package/dist/es5/init.js.map +1 -1
  247. package/dist/es5/{context/parameters/webgl-parameters.js → types/webgl.js} +1 -1
  248. package/dist/es5/types/webgl.js.map +1 -0
  249. package/dist/{adapter/converters/set-device-parameters.js → esm/adapter/converters/device-parameters.js} +36 -5
  250. package/dist/esm/adapter/converters/device-parameters.js.map +1 -0
  251. package/dist/{classes → esm/adapter/converters}/renderbuffer-formats.js +1 -1
  252. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -0
  253. package/dist/esm/adapter/converters/sampler-parameters.js +208 -0
  254. package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -0
  255. package/dist/esm/adapter/converters/texture-formats.js +954 -0
  256. package/dist/esm/adapter/converters/texture-formats.js.map +1 -0
  257. package/dist/esm/adapter/converters/vertex-formats.js +35 -0
  258. package/dist/esm/adapter/converters/vertex-formats.js.map +1 -0
  259. package/dist/esm/adapter/device-helpers/device-features.js +27 -48
  260. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
  261. package/dist/esm/adapter/device-helpers/device-limits.js +1 -0
  262. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
  263. package/dist/esm/adapter/device-helpers/get-device-info.js +7 -7
  264. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
  265. package/dist/esm/adapter/helpers/attribute-utils.js +81 -0
  266. package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -0
  267. package/dist/esm/adapter/helpers/get-shader-layout.js +306 -0
  268. package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -0
  269. package/dist/{webgl-utils → esm/adapter/helpers}/parse-shader-compiler-log.js +0 -0
  270. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  271. package/dist/esm/adapter/helpers/set-uniform.js +115 -0
  272. package/dist/esm/adapter/helpers/set-uniform.js.map +1 -0
  273. package/dist/esm/adapter/helpers/uniforms.js +99 -0
  274. package/dist/esm/adapter/helpers/uniforms.js.map +1 -0
  275. package/dist/{webgl-utils → esm/adapter/objects}/constants-to-keys.js +1 -0
  276. package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -0
  277. package/dist/{classes/renderbuffer.js → esm/adapter/objects/webgl-renderbuffer.js} +38 -72
  278. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -0
  279. package/dist/{classes → esm/adapter/objects}/webgl-resource.js +7 -3
  280. package/dist/esm/adapter/objects/webgl-resource.js.map +1 -0
  281. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +84 -0
  282. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  283. package/dist/esm/adapter/resources/webgl-buffer.js +164 -0
  284. package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -0
  285. package/dist/esm/adapter/resources/webgl-command-buffer.js +65 -0
  286. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -0
  287. package/dist/esm/adapter/resources/webgl-command-encoder.js +53 -0
  288. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -0
  289. package/dist/esm/adapter/resources/webgl-external-texture.js +2 -0
  290. package/dist/{helpers/program-bindings.js.map → esm/adapter/resources/webgl-external-texture.js.map} +1 -1
  291. package/dist/esm/adapter/resources/webgl-framebuffer.js +265 -0
  292. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -0
  293. package/dist/esm/adapter/resources/webgl-render-pass.js +19 -0
  294. package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -0
  295. package/dist/esm/adapter/resources/webgl-render-pipeline.js +400 -0
  296. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -0
  297. package/dist/esm/adapter/resources/webgl-sampler.js +50 -0
  298. package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -0
  299. package/dist/esm/adapter/{webgl-shader.js → resources/webgl-shader.js} +13 -20
  300. package/dist/esm/adapter/resources/webgl-shader.js.map +1 -0
  301. package/dist/{classes/texture.js → esm/adapter/resources/webgl-texture.js} +274 -229
  302. package/dist/esm/adapter/resources/webgl-texture.js.map +1 -0
  303. package/dist/esm/adapter/webgl-canvas-context.js +54 -0
  304. package/dist/esm/adapter/webgl-canvas-context.js.map +1 -0
  305. package/dist/esm/adapter/webgl-device.js +185 -113
  306. package/dist/esm/adapter/webgl-device.js.map +1 -1
  307. package/dist/esm/{classes → classic}/accessor.js +33 -1
  308. package/dist/esm/classic/accessor.js.map +1 -0
  309. package/dist/{classes/webgl-buffer.js → esm/classic/buffer.js} +53 -51
  310. package/dist/esm/classic/buffer.js.map +1 -0
  311. package/dist/{webgl-utils → esm/classic}/typed-array-utils.js +0 -0
  312. package/dist/esm/classic/typed-array-utils.js.map +1 -0
  313. package/dist/esm/context/context/context-state.js +1 -1
  314. package/dist/esm/context/context/context-state.js.map +1 -1
  315. package/dist/esm/context/context/create-context.js +12 -0
  316. package/dist/esm/context/context/create-context.js.map +1 -1
  317. package/dist/esm/context/context/device-pixels.js.map +1 -1
  318. package/dist/esm/context/debug/spector.js +76 -0
  319. package/dist/esm/context/debug/spector.js.map +1 -0
  320. package/dist/esm/context/debug/webgl-developer-tools.js +121 -0
  321. package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -0
  322. package/dist/esm/context/parameters/unified-parameter-api.js +4 -4
  323. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
  324. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
  325. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
  326. package/dist/esm/context/polyfill/polyfill-context.js +4 -3
  327. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
  328. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
  329. package/dist/esm/context/state-tracker/track-context-state.js +25 -11
  330. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
  331. package/dist/esm/index.js +19 -29
  332. package/dist/esm/index.js.map +1 -1
  333. package/dist/esm/init.js +2 -31
  334. package/dist/esm/init.js.map +1 -1
  335. package/dist/esm/types/webgl.js +2 -0
  336. package/dist/esm/types/webgl.js.map +1 -0
  337. package/dist/index.d.ts +22 -43
  338. package/dist/index.d.ts.map +1 -1
  339. package/dist/index.js +19 -29
  340. package/dist/index.js.map +1 -1
  341. package/dist/init.d.ts +1 -4
  342. package/dist/init.d.ts.map +1 -1
  343. package/dist/init.js +2 -31
  344. package/dist/init.js.map +1 -1
  345. package/dist/types/webgl.d.ts +144 -0
  346. package/dist/types/webgl.d.ts.map +1 -0
  347. package/dist/types/webgl.js +2 -0
  348. package/dist/types/webgl.js.map +1 -0
  349. package/package.json +5 -5
  350. package/src/adapter/converters/{set-device-parameters.ts → device-parameters.ts} +52 -9
  351. package/src/{classes → adapter/converters}/renderbuffer-formats.ts +1 -1
  352. package/src/adapter/converters/sampler-parameters.ts +175 -0
  353. package/src/adapter/converters/texture-formats.ts +633 -0
  354. package/src/adapter/converters/vertex-formats.ts +22 -0
  355. package/src/adapter/device-helpers/device-features.ts +46 -123
  356. package/src/adapter/device-helpers/device-limits.ts +5 -2
  357. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  358. package/src/adapter/helpers/attribute-utils.ts +61 -0
  359. package/src/adapter/helpers/get-shader-layout.ts +388 -0
  360. package/src/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.ts +0 -0
  361. package/src/adapter/helpers/set-uniform.ts +87 -0
  362. package/src/adapter/helpers/uniforms.ts +110 -0
  363. package/src/{webgl-utils → adapter/objects}/constants-to-keys.ts +6 -3
  364. package/src/adapter/objects/webgl-renderbuffer.ts +104 -0
  365. package/src/{classes → adapter/objects}/webgl-resource.ts +23 -17
  366. package/src/adapter/objects/webgl-vertex-array-object.ts +111 -0
  367. package/src/adapter/resources/webgl-buffer.ts +219 -0
  368. package/src/adapter/resources/webgl-command-buffer.ts +94 -0
  369. package/src/adapter/resources/webgl-command-encoder.ts +58 -0
  370. package/src/adapter/resources/webgl-external-texture.ts +92 -0
  371. package/src/adapter/resources/webgl-framebuffer.ts +279 -0
  372. package/src/adapter/resources/webgl-render-pass.ts +23 -0
  373. package/src/adapter/resources/webgl-render-pipeline.ts +413 -0
  374. package/src/adapter/resources/webgl-sampler.ts +54 -0
  375. package/src/adapter/{webgl-shader.ts → resources/webgl-shader.ts} +14 -20
  376. package/src/adapter/resources/webgl-texture.ts +1023 -0
  377. package/src/adapter/webgl-canvas-context.ts +74 -0
  378. package/src/adapter/webgl-device.ts +229 -285
  379. package/{dist/esm/classes/accessor.ts.disabled → src/classic/accessor.ts} +50 -36
  380. package/src/{classes/webgl-buffer.ts → classic/buffer.ts} +69 -77
  381. package/src/{webgl-utils → classic}/typed-array-utils.ts +3 -1
  382. package/src/context/context/context-state.ts +4 -2
  383. package/src/context/context/create-context.ts +28 -1
  384. package/src/context/context/device-pixels.ts +9 -4
  385. package/src/context/debug/spector.ts +92 -0
  386. package/src/context/debug/webgl-developer-tools.ts +162 -0
  387. package/src/context/parameters/unified-parameter-api.ts +6 -4
  388. package/src/context/parameters/webgl-parameter-tables.ts +38 -36
  389. package/src/context/polyfill/get-parameter-polyfill.ts +1 -1
  390. package/src/context/polyfill/polyfill-context.ts +4 -3
  391. package/src/context/state-tracker/deep-array-equal.ts +1 -1
  392. package/src/context/state-tracker/track-context-state.ts +27 -20
  393. package/src/index.ts +33 -91
  394. package/src/init.ts +2 -46
  395. package/src/types/webgl.ts +283 -0
  396. package/dist/adapter/converters/set-device-parameters.d.ts +0 -5
  397. package/dist/adapter/converters/set-device-parameters.d.ts.map +0 -1
  398. package/dist/adapter/converters/set-device-parameters.js.map +0 -1
  399. package/dist/adapter/converters/webgpu-texture-formats.d.ts +0 -281
  400. package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +0 -1
  401. package/dist/adapter/converters/webgpu-texture-formats.js +0 -285
  402. package/dist/adapter/converters/webgpu-texture-formats.js.map +0 -1
  403. package/dist/adapter/webgl-shader.d.ts.map +0 -1
  404. package/dist/adapter/webgl-shader.js.map +0 -1
  405. package/dist/classes/accessor.d.ts +0 -28
  406. package/dist/classes/accessor.d.ts.map +0 -1
  407. package/dist/classes/accessor.js.map +0 -1
  408. package/dist/classes/accessor.ts.disabled +0 -159
  409. package/dist/classes/clear.d.ts +0 -17
  410. package/dist/classes/clear.d.ts.map +0 -1
  411. package/dist/classes/clear.js +0 -105
  412. package/dist/classes/clear.js.map +0 -1
  413. package/dist/classes/copy-and-blit.d.ts +0 -86
  414. package/dist/classes/copy-and-blit.d.ts.map +0 -1
  415. package/dist/classes/copy-and-blit.js +0 -338
  416. package/dist/classes/copy-and-blit.js.map +0 -1
  417. package/dist/classes/framebuffer.d.ts +0 -139
  418. package/dist/classes/framebuffer.d.ts.map +0 -1
  419. package/dist/classes/framebuffer.js +0 -656
  420. package/dist/classes/framebuffer.js.map +0 -1
  421. package/dist/classes/program-configuration.d.ts +0 -24
  422. package/dist/classes/program-configuration.d.ts.map +0 -1
  423. package/dist/classes/program-configuration.js +0 -73
  424. package/dist/classes/program-configuration.js.map +0 -1
  425. package/dist/classes/program.d.ts +0 -66
  426. package/dist/classes/program.d.ts.map +0 -1
  427. package/dist/classes/program.js +0 -379
  428. package/dist/classes/program.js.map +0 -1
  429. package/dist/classes/query.d.ts +0 -27
  430. package/dist/classes/query.d.ts.map +0 -1
  431. package/dist/classes/query.js +0 -145
  432. package/dist/classes/query.js.map +0 -1
  433. package/dist/classes/renderbuffer-formats.d.ts.map +0 -1
  434. package/dist/classes/renderbuffer-formats.js.map +0 -1
  435. package/dist/classes/renderbuffer.d.ts +0 -60
  436. package/dist/classes/renderbuffer.d.ts.map +0 -1
  437. package/dist/classes/renderbuffer.js.map +0 -1
  438. package/dist/classes/shader.d.ts +0 -42
  439. package/dist/classes/shader.d.ts.map +0 -1
  440. package/dist/classes/shader.js +0 -118
  441. package/dist/classes/shader.js.map +0 -1
  442. package/dist/classes/texture-2d.d.ts +0 -9
  443. package/dist/classes/texture-2d.d.ts.map +0 -1
  444. package/dist/classes/texture-2d.js +0 -36
  445. package/dist/classes/texture-2d.js.map +0 -1
  446. package/dist/classes/texture-3d.d.ts +0 -29
  447. package/dist/classes/texture-3d.d.ts.map +0 -1
  448. package/dist/classes/texture-3d.js +0 -76
  449. package/dist/classes/texture-3d.js.map +0 -1
  450. package/dist/classes/texture-cube.d.ts +0 -28
  451. package/dist/classes/texture-cube.d.ts.map +0 -1
  452. package/dist/classes/texture-cube.js +0 -130
  453. package/dist/classes/texture-cube.js.map +0 -1
  454. package/dist/classes/texture-formats.d.ts +0 -37
  455. package/dist/classes/texture-formats.d.ts.map +0 -1
  456. package/dist/classes/texture-formats.js +0 -98
  457. package/dist/classes/texture-formats.js.map +0 -1
  458. package/dist/classes/texture.d.ts +0 -123
  459. package/dist/classes/texture.d.ts.map +0 -1
  460. package/dist/classes/texture.js.map +0 -1
  461. package/dist/classes/transform-feedback.d.ts +0 -33
  462. package/dist/classes/transform-feedback.d.ts.map +0 -1
  463. package/dist/classes/transform-feedback.js +0 -198
  464. package/dist/classes/transform-feedback.js.map +0 -1
  465. package/dist/classes/uniform-buffer-layout.d.ts +0 -17
  466. package/dist/classes/uniform-buffer-layout.d.ts.map +0 -1
  467. package/dist/classes/uniform-buffer-layout.js +0 -104
  468. package/dist/classes/uniform-buffer-layout.js.map +0 -1
  469. package/dist/classes/uniforms.d.ts +0 -37
  470. package/dist/classes/uniforms.d.ts.map +0 -1
  471. package/dist/classes/uniforms.js +0 -250
  472. package/dist/classes/uniforms.js.map +0 -1
  473. package/dist/classes/vertex-array-object.d.ts +0 -76
  474. package/dist/classes/vertex-array-object.d.ts.map +0 -1
  475. package/dist/classes/vertex-array-object.js +0 -261
  476. package/dist/classes/vertex-array-object.js.map +0 -1
  477. package/dist/classes/vertex-array.d.ts +0 -75
  478. package/dist/classes/vertex-array.d.ts.map +0 -1
  479. package/dist/classes/vertex-array.js +0 -408
  480. package/dist/classes/vertex-array.js.map +0 -1
  481. package/dist/classes/webgl-buffer.d.ts.map +0 -1
  482. package/dist/classes/webgl-buffer.js.map +0 -1
  483. package/dist/classes/webgl-resource.d.ts.map +0 -1
  484. package/dist/classes/webgl-resource.js.map +0 -1
  485. package/dist/context/context/get-canvas.d.ts +0 -13
  486. package/dist/context/context/get-canvas.d.ts.map +0 -1
  487. package/dist/context/context/get-canvas.js +0 -31
  488. package/dist/context/context/get-canvas.js.map +0 -1
  489. package/dist/context/context/resize-context.d.ts +0 -20
  490. package/dist/context/context/resize-context.d.ts.map +0 -1
  491. package/dist/context/context/resize-context.js +0 -15
  492. package/dist/context/context/resize-context.js.map +0 -1
  493. package/dist/context/parameters/webgl-parameters.d.ts +0 -144
  494. package/dist/context/parameters/webgl-parameters.d.ts.map +0 -1
  495. package/dist/context/parameters/webgl-parameters.js +0 -2
  496. package/dist/context/parameters/webgl-parameters.js.map +0 -1
  497. package/dist/debug/debug-program-configuration.d.ts +0 -2
  498. package/dist/debug/debug-program-configuration.d.ts.map +0 -1
  499. package/dist/debug/debug-program-configuration.js +0 -40
  500. package/dist/debug/debug-program-configuration.js.map +0 -1
  501. package/dist/debug/debug-uniforms.d.ts +0 -12
  502. package/dist/debug/debug-uniforms.d.ts.map +0 -1
  503. package/dist/debug/debug-uniforms.js +0 -108
  504. package/dist/debug/debug-uniforms.js.map +0 -1
  505. package/dist/debug/debug-vertex-array.d.ts +0 -5
  506. package/dist/debug/debug-vertex-array.d.ts.map +0 -1
  507. package/dist/debug/debug-vertex-array.js +0 -118
  508. package/dist/debug/debug-vertex-array.js.map +0 -1
  509. package/dist/es5/adapter/converters/set-device-parameters.js.map +0 -1
  510. package/dist/es5/adapter/converters/webgpu-texture-formats.js +0 -296
  511. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +0 -1
  512. package/dist/es5/adapter/webgl-shader.js.map +0 -1
  513. package/dist/es5/classes/accessor.d.ts +0 -28
  514. package/dist/es5/classes/accessor.js.map +0 -1
  515. package/dist/es5/classes/accessor.ts.disabled +0 -159
  516. package/dist/es5/classes/clear.js +0 -135
  517. package/dist/es5/classes/clear.js.map +0 -1
  518. package/dist/es5/classes/copy-and-blit.js +0 -382
  519. package/dist/es5/classes/copy-and-blit.js.map +0 -1
  520. package/dist/es5/classes/framebuffer.js +0 -807
  521. package/dist/es5/classes/framebuffer.js.map +0 -1
  522. package/dist/es5/classes/program-configuration.js +0 -119
  523. package/dist/es5/classes/program-configuration.js.map +0 -1
  524. package/dist/es5/classes/program.js +0 -471
  525. package/dist/es5/classes/program.js.map +0 -1
  526. package/dist/es5/classes/query.js +0 -222
  527. package/dist/es5/classes/query.js.map +0 -1
  528. package/dist/es5/classes/renderbuffer-formats.js.map +0 -1
  529. package/dist/es5/classes/renderbuffer.js.map +0 -1
  530. package/dist/es5/classes/shader.js +0 -195
  531. package/dist/es5/classes/shader.js.map +0 -1
  532. package/dist/es5/classes/texture-2d.js.map +0 -1
  533. package/dist/es5/classes/texture-3d.js +0 -142
  534. package/dist/es5/classes/texture-3d.js.map +0 -1
  535. package/dist/es5/classes/texture-cube.js +0 -202
  536. package/dist/es5/classes/texture-cube.js.map +0 -1
  537. package/dist/es5/classes/texture-formats.js +0 -87
  538. package/dist/es5/classes/texture-formats.js.map +0 -1
  539. package/dist/es5/classes/texture.js.map +0 -1
  540. package/dist/es5/classes/transform-feedback.js +0 -267
  541. package/dist/es5/classes/transform-feedback.js.map +0 -1
  542. package/dist/es5/classes/uniform-buffer-layout.js +0 -130
  543. package/dist/es5/classes/uniform-buffer-layout.js.map +0 -1
  544. package/dist/es5/classes/uniforms.js +0 -232
  545. package/dist/es5/classes/uniforms.js.map +0 -1
  546. package/dist/es5/classes/vertex-array-object.js +0 -337
  547. package/dist/es5/classes/vertex-array-object.js.map +0 -1
  548. package/dist/es5/classes/vertex-array.js +0 -465
  549. package/dist/es5/classes/vertex-array.js.map +0 -1
  550. package/dist/es5/classes/webgl-buffer.js.map +0 -1
  551. package/dist/es5/classes/webgl-resource.js.map +0 -1
  552. package/dist/es5/context/context/get-canvas.js +0 -40
  553. package/dist/es5/context/context/get-canvas.js.map +0 -1
  554. package/dist/es5/context/context/resize-context.js +0 -23
  555. package/dist/es5/context/context/resize-context.js.map +0 -1
  556. package/dist/es5/context/parameters/webgl-parameters.js.map +0 -1
  557. package/dist/es5/debug/debug-program-configuration.js +0 -76
  558. package/dist/es5/debug/debug-program-configuration.js.map +0 -1
  559. package/dist/es5/debug/debug-uniforms.js +0 -156
  560. package/dist/es5/debug/debug-uniforms.js.map +0 -1
  561. package/dist/es5/debug/debug-vertex-array.js +0 -126
  562. package/dist/es5/debug/debug-vertex-array.js.map +0 -1
  563. package/dist/es5/helpers/get-program-bindings.js.map +0 -1
  564. package/dist/es5/helpers/program-bindings.js +0 -2
  565. package/dist/es5/types/accessor.d.ts +0 -29
  566. package/dist/es5/webgl-utils/attribute-utils.js +0 -186
  567. package/dist/es5/webgl-utils/attribute-utils.js.map +0 -1
  568. package/dist/es5/webgl-utils/constants-to-keys.js.map +0 -1
  569. package/dist/es5/webgl-utils/format-utils.js +0 -58
  570. package/dist/es5/webgl-utils/format-utils.js.map +0 -1
  571. package/dist/es5/webgl-utils/get-error.js +0 -49
  572. package/dist/es5/webgl-utils/get-error.js.map +0 -1
  573. package/dist/es5/webgl-utils/index.js +0 -74
  574. package/dist/es5/webgl-utils/index.js.map +0 -1
  575. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  576. package/dist/es5/webgl-utils/request-animation-frame.js +0 -16
  577. package/dist/es5/webgl-utils/request-animation-frame.js.map +0 -1
  578. package/dist/es5/webgl-utils/texture-utils.js +0 -61
  579. package/dist/es5/webgl-utils/texture-utils.js.map +0 -1
  580. package/dist/es5/webgl-utils/typed-array-utils.js.map +0 -1
  581. package/dist/esm/adapter/converters/set-device-parameters.js.map +0 -1
  582. package/dist/esm/adapter/converters/webgpu-texture-formats.js +0 -285
  583. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +0 -1
  584. package/dist/esm/adapter/webgl-shader.js.map +0 -1
  585. package/dist/esm/classes/accessor.d.ts +0 -28
  586. package/dist/esm/classes/accessor.js.map +0 -1
  587. package/dist/esm/classes/clear.js +0 -105
  588. package/dist/esm/classes/clear.js.map +0 -1
  589. package/dist/esm/classes/copy-and-blit.js +0 -338
  590. package/dist/esm/classes/copy-and-blit.js.map +0 -1
  591. package/dist/esm/classes/framebuffer.js +0 -656
  592. package/dist/esm/classes/framebuffer.js.map +0 -1
  593. package/dist/esm/classes/program-configuration.js +0 -73
  594. package/dist/esm/classes/program-configuration.js.map +0 -1
  595. package/dist/esm/classes/program.js +0 -379
  596. package/dist/esm/classes/program.js.map +0 -1
  597. package/dist/esm/classes/query.js +0 -145
  598. package/dist/esm/classes/query.js.map +0 -1
  599. package/dist/esm/classes/renderbuffer-formats.js.map +0 -1
  600. package/dist/esm/classes/renderbuffer.js.map +0 -1
  601. package/dist/esm/classes/shader.js +0 -118
  602. package/dist/esm/classes/shader.js.map +0 -1
  603. package/dist/esm/classes/texture-2d.js +0 -36
  604. package/dist/esm/classes/texture-2d.js.map +0 -1
  605. package/dist/esm/classes/texture-3d.js +0 -76
  606. package/dist/esm/classes/texture-3d.js.map +0 -1
  607. package/dist/esm/classes/texture-cube.js +0 -130
  608. package/dist/esm/classes/texture-cube.js.map +0 -1
  609. package/dist/esm/classes/texture-formats.js +0 -98
  610. package/dist/esm/classes/texture-formats.js.map +0 -1
  611. package/dist/esm/classes/texture.js.map +0 -1
  612. package/dist/esm/classes/transform-feedback.js +0 -198
  613. package/dist/esm/classes/transform-feedback.js.map +0 -1
  614. package/dist/esm/classes/uniform-buffer-layout.js +0 -104
  615. package/dist/esm/classes/uniform-buffer-layout.js.map +0 -1
  616. package/dist/esm/classes/uniforms.js +0 -250
  617. package/dist/esm/classes/uniforms.js.map +0 -1
  618. package/dist/esm/classes/vertex-array-object.js +0 -261
  619. package/dist/esm/classes/vertex-array-object.js.map +0 -1
  620. package/dist/esm/classes/vertex-array.js +0 -408
  621. package/dist/esm/classes/vertex-array.js.map +0 -1
  622. package/dist/esm/classes/webgl-buffer.js.map +0 -1
  623. package/dist/esm/classes/webgl-resource.js.map +0 -1
  624. package/dist/esm/context/context/get-canvas.js +0 -31
  625. package/dist/esm/context/context/get-canvas.js.map +0 -1
  626. package/dist/esm/context/context/resize-context.js +0 -15
  627. package/dist/esm/context/context/resize-context.js.map +0 -1
  628. package/dist/esm/context/parameters/webgl-parameters.js +0 -2
  629. package/dist/esm/context/parameters/webgl-parameters.js.map +0 -1
  630. package/dist/esm/debug/debug-program-configuration.js +0 -40
  631. package/dist/esm/debug/debug-program-configuration.js.map +0 -1
  632. package/dist/esm/debug/debug-uniforms.js +0 -108
  633. package/dist/esm/debug/debug-uniforms.js.map +0 -1
  634. package/dist/esm/debug/debug-vertex-array.js +0 -118
  635. package/dist/esm/debug/debug-vertex-array.js.map +0 -1
  636. package/dist/esm/helpers/get-program-bindings.js +0 -228
  637. package/dist/esm/helpers/get-program-bindings.js.map +0 -1
  638. package/dist/esm/helpers/program-bindings.js +0 -2
  639. package/dist/esm/types/accessor.d.ts +0 -29
  640. package/dist/esm/webgl-utils/attribute-utils.js +0 -182
  641. package/dist/esm/webgl-utils/attribute-utils.js.map +0 -1
  642. package/dist/esm/webgl-utils/constants-to-keys.js.map +0 -1
  643. package/dist/esm/webgl-utils/format-utils.js +0 -45
  644. package/dist/esm/webgl-utils/format-utils.js.map +0 -1
  645. package/dist/esm/webgl-utils/get-error.js +0 -41
  646. package/dist/esm/webgl-utils/get-error.js.map +0 -1
  647. package/dist/esm/webgl-utils/index.js +0 -5
  648. package/dist/esm/webgl-utils/index.js.map +0 -1
  649. package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  650. package/dist/esm/webgl-utils/request-animation-frame.js +0 -7
  651. package/dist/esm/webgl-utils/request-animation-frame.js.map +0 -1
  652. package/dist/esm/webgl-utils/texture-utils.js +0 -48
  653. package/dist/esm/webgl-utils/texture-utils.js.map +0 -1
  654. package/dist/esm/webgl-utils/typed-array-utils.js.map +0 -1
  655. package/dist/helpers/get-program-bindings.d.ts +0 -8
  656. package/dist/helpers/get-program-bindings.d.ts.map +0 -1
  657. package/dist/helpers/get-program-bindings.js +0 -228
  658. package/dist/helpers/get-program-bindings.js.map +0 -1
  659. package/dist/helpers/program-bindings.d.ts +0 -41
  660. package/dist/helpers/program-bindings.d.ts.map +0 -1
  661. package/dist/helpers/program-bindings.js +0 -2
  662. package/dist/types/accessor.d.ts +0 -29
  663. package/dist/webgl-utils/attribute-utils.d.ts +0 -18
  664. package/dist/webgl-utils/attribute-utils.d.ts.map +0 -1
  665. package/dist/webgl-utils/attribute-utils.js +0 -182
  666. package/dist/webgl-utils/attribute-utils.js.map +0 -1
  667. package/dist/webgl-utils/constants-to-keys.d.ts +0 -4
  668. package/dist/webgl-utils/constants-to-keys.d.ts.map +0 -1
  669. package/dist/webgl-utils/constants-to-keys.js.map +0 -1
  670. package/dist/webgl-utils/format-utils.d.ts +0 -3
  671. package/dist/webgl-utils/format-utils.d.ts.map +0 -1
  672. package/dist/webgl-utils/format-utils.js +0 -45
  673. package/dist/webgl-utils/format-utils.js.map +0 -1
  674. package/dist/webgl-utils/get-error.d.ts +0 -3
  675. package/dist/webgl-utils/get-error.d.ts.map +0 -1
  676. package/dist/webgl-utils/get-error.js +0 -41
  677. package/dist/webgl-utils/get-error.js.map +0 -1
  678. package/dist/webgl-utils/index.d.ts +0 -5
  679. package/dist/webgl-utils/index.d.ts.map +0 -1
  680. package/dist/webgl-utils/index.js +0 -5
  681. package/dist/webgl-utils/index.js.map +0 -1
  682. package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +0 -1
  683. package/dist/webgl-utils/parse-shader-compiler-log.js.map +0 -1
  684. package/dist/webgl-utils/request-animation-frame.d.ts +0 -4
  685. package/dist/webgl-utils/request-animation-frame.d.ts.map +0 -1
  686. package/dist/webgl-utils/request-animation-frame.js +0 -7
  687. package/dist/webgl-utils/request-animation-frame.js.map +0 -1
  688. package/dist/webgl-utils/texture-utils.d.ts +0 -15
  689. package/dist/webgl-utils/texture-utils.d.ts.map +0 -1
  690. package/dist/webgl-utils/texture-utils.js +0 -48
  691. package/dist/webgl-utils/texture-utils.js.map +0 -1
  692. package/dist/webgl-utils/typed-array-utils.d.ts.map +0 -1
  693. package/dist/webgl-utils/typed-array-utils.js.map +0 -1
  694. package/src/.DS_Store +0 -0
  695. package/src/adapter/converters/webgpu-texture-formats.ts +0 -167
  696. package/src/classes/accessor.d.ts +0 -28
  697. package/src/classes/accessor.js +0 -129
  698. package/src/classes/accessor.ts.disabled +0 -159
  699. package/src/classes/clear.ts +0 -108
  700. package/src/classes/copy-and-blit.ts +0 -460
  701. package/src/classes/framebuffer.ts +0 -763
  702. package/src/classes/program-configuration.ts +0 -77
  703. package/src/classes/program.ts +0 -431
  704. package/src/classes/query.ts +0 -171
  705. package/src/classes/renderbuffer.ts +0 -154
  706. package/src/classes/shader.ts +0 -129
  707. package/src/classes/texture-2d.ts +0 -35
  708. package/src/classes/texture-3d.ts +0 -123
  709. package/src/classes/texture-cube.ts +0 -162
  710. package/src/classes/texture-formats.ts +0 -171
  711. package/src/classes/texture.ts +0 -965
  712. package/src/classes/transform-feedback.ts +0 -191
  713. package/src/classes/uniform-buffer-layout.ts +0 -113
  714. package/src/classes/uniforms.ts +0 -394
  715. package/src/classes/vertex-array-object.ts +0 -339
  716. package/src/classes/vertex-array.ts +0 -484
  717. package/src/context/context/get-canvas.ts +0 -37
  718. package/src/context/context/resize-context.ts +0 -37
  719. package/src/context/parameters/webgl-parameters.ts +0 -197
  720. package/src/debug/debug-program-configuration.ts +0 -32
  721. package/src/debug/debug-uniforms.ts +0 -100
  722. package/src/debug/debug-vertex-array.ts +0 -123
  723. package/src/helpers/get-program-bindings.ts +0 -244
  724. package/src/helpers/program-bindings.ts +0 -46
  725. package/src/types/accessor.d.ts +0 -29
  726. package/src/webgl-utils/attribute-utils.ts +0 -171
  727. package/src/webgl-utils/format-utils.ts +0 -43
  728. package/src/webgl-utils/get-error.ts +0 -56
  729. package/src/webgl-utils/index.ts +0 -12
  730. package/src/webgl-utils/request-animation-frame.ts +0 -14
  731. package/src/webgl-utils/texture-utils.ts +0 -60
@@ -1,197 +0,0 @@
1
- // WebGL parameter types
2
- import GL from '@luma.gl/constants';
3
-
4
- export type TypedArray =
5
- | Int8Array
6
- | Uint8Array
7
- | Int16Array
8
- | Uint16Array
9
- | Int32Array
10
- | Uint32Array
11
- | Uint8ClampedArray
12
- | Float32Array
13
- | Float64Array;
14
-
15
- /**
16
- * TypeScript type covering all typed arrays and classic arrays consisting of numbers
17
- */
18
- export type NumberArray = number[] | TypedArray;
19
-
20
- type Framebuffer = any;
21
-
22
- type GL_FUNCTION =
23
- GL.NEVER |
24
- GL.LESS |
25
- GL.EQUAL |
26
- GL.LEQUAL |
27
- GL.GREATER |
28
- GL.NOTEQUAL |
29
- GL.GEQUAL |
30
- GL.ALWAYS;
31
-
32
- type GL_BLEND_EQUATION = GL.FUNC_ADD | GL.FUNC_SUBTRACT | GL.FUNC_REVERSE_SUBTRACT | GL.MIN_EXT | GL.MAX_EXT;
33
-
34
- type GL_BLEND_FUNCTION =
35
- GL.ZERO |
36
- GL.ONE |
37
- GL.SRC_COLOR |
38
- GL.ONE_MINUS_SRC_COLOR |
39
- GL.DST_COLOR |
40
- GL.ONE_MINUS_DST_COLOR |
41
- GL.SRC_ALPHA |
42
- GL.ONE_MINUS_SRC_ALPHA |
43
- GL.DST_ALPHA |
44
- GL.ONE_MINUS_DST_ALPHA |
45
- GL.CONSTANT_COLOR |
46
- GL.ONE_MINUS_CONSTANT_COLOR |
47
- GL.CONSTANT_ALPHA |
48
- GL.ONE_MINUS_CONSTANT_ALPHA |
49
- GL.SRC_ALPHA_SATURATE;
50
-
51
- type GL_STENCIL_OP =
52
- GL.KEEP |
53
- GL.ZERO |
54
- GL.REPLACE |
55
- GL.INCR |
56
- GL.INCR_WRAP |
57
- GL.DECR |
58
- GL.DECR_WRAP |
59
- GL.INVERT;
60
-
61
- export type GLValueParameters = {
62
- [GL.BLEND]?: boolean;
63
- [GL.BLEND_COLOR]?: [number, number, number, number] | NumberArray;
64
- [GL.BLEND_EQUATION_RGB]?: GL_BLEND_EQUATION;
65
- [GL.BLEND_EQUATION_ALPHA]?: GL_BLEND_EQUATION;
66
- [GL.BLEND_SRC_RGB]?: GL_BLEND_FUNCTION;
67
- [GL.BLEND_DST_RGB]?: GL_BLEND_FUNCTION;
68
- [GL.BLEND_SRC_ALPHA]?: GL_BLEND_FUNCTION;
69
- [GL.BLEND_DST_ALPHA]?: GL_BLEND_FUNCTION;
70
- [GL.COLOR_CLEAR_VALUE]?: [number, number, number, number] | NumberArray;
71
- [GL.COLOR_WRITEMASK]?: [boolean, boolean, boolean, boolean] | boolean[];
72
- [GL.CULL_FACE]?: boolean;
73
- [GL.CULL_FACE_MODE]?: GL.FRONT | GL.BACK | GL.FRONT_AND_BACK;
74
- [GL.DEPTH_TEST]?: boolean;
75
- [GL.DEPTH_CLEAR_VALUE]?: number;
76
- [GL.DEPTH_FUNC]?: GL_FUNCTION;
77
- [GL.DEPTH_RANGE]?: [number, number] | NumberArray;
78
- [GL.DEPTH_WRITEMASK]?: boolean;
79
- [GL.DITHER]?: boolean;
80
- [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
81
- [GL.CURRENT_PROGRAM]?: WebGLProgram | null,
82
- [GL.FRAMEBUFFER_BINDING]?: WebGLFramebuffer | null;
83
- [GL.RENDERBUFFER_BINDING]?: WebGLRenderbuffer | null,
84
- [GL.TRANSFORM_FEEDBACK_BINDING]?: WebGLTransformFeedback | null,
85
- [GL.VERTEX_ARRAY_BINDING]?: WebGLVertexArrayObject | null,
86
- [GL.ARRAY_BUFFER_BINDING]?: WebGLBuffer | null,
87
- [GL.COPY_READ_BUFFER_BINDING]?: WebGLBuffer | null,
88
- [GL.COPY_WRITE_BUFFER_BINDING]?: WebGLBuffer | null,
89
- [GL.PIXEL_PACK_BUFFER_BINDING]?: WebGLBuffer | null,
90
- [GL.PIXEL_UNPACK_BUFFER_BINDING]?: WebGLBuffer | null,
91
- [GL.TEXTURE_BINDING_2D]?: WebGLTexture | null,
92
- [GL.TEXTURE_BINDING_2D_ARRAY]?: WebGLTexture | null,
93
- [GL.TEXTURE_BINDING_3D]?: WebGLTexture | null,
94
- [GL.TEXTURE_BINDING_CUBE_MAP]?: WebGLTexture | null,
95
- [GL.FRONT_FACE]?: GL.CW | GL.CCW;
96
- [GL.GENERATE_MIPMAP_HINT]?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
97
- [GL.LINE_WIDTH]?: number;
98
- [GL.POLYGON_OFFSET_FILL]?: boolean;
99
- [GL.POLYGON_OFFSET_FACTOR]?: number;
100
- [GL.POLYGON_OFFSET_UNITS]?: number;
101
- [GL.SAMPLE_ALPHA_TO_COVERAGE]?: boolean,
102
- [GL.SAMPLE_COVERAGE]?: boolean,
103
- [GL.RASTERIZER_DISCARD]?: boolean;
104
- [GL.SAMPLE_COVERAGE_VALUE]?: number;
105
- [GL.SAMPLE_COVERAGE_INVERT]?: boolean;
106
- [GL.SCISSOR_TEST]?: boolean;
107
- [GL.SCISSOR_BOX]?: [number, number, number, number] | NumberArray;
108
- [GL.STENCIL_TEST]?: boolean;
109
- [GL.STENCIL_CLEAR_VALUE]?: number;
110
- [GL.STENCIL_WRITEMASK]?: number;
111
- [GL.STENCIL_BACK_WRITEMASK]?: number;
112
- [GL.STENCIL_FUNC]?: GL_FUNCTION;
113
- [GL.STENCIL_REF]?: GL_FUNCTION;
114
- [GL.STENCIL_VALUE_MASK]?: GL_FUNCTION;
115
- [GL.STENCIL_BACK_FUNC]?: GL_FUNCTION;
116
- [GL.STENCIL_BACK_REF]?: GL_FUNCTION;
117
- [GL.STENCIL_BACK_VALUE_MASK]?: GL_FUNCTION;
118
- [GL.STENCIL_FAIL]?: GL_STENCIL_OP;
119
- [GL.STENCIL_PASS_DEPTH_FAIL]?: GL_STENCIL_OP;
120
- [GL.STENCIL_PASS_DEPTH_PASS]?: GL_STENCIL_OP;
121
- [GL.STENCIL_BACK_FAIL]?: GL_STENCIL_OP;
122
- [GL.STENCIL_BACK_PASS_DEPTH_FAIL]?: GL_STENCIL_OP;
123
- [GL.STENCIL_BACK_PASS_DEPTH_PASS]?: GL_STENCIL_OP;
124
- [GL.VIEWPORT]?: [number, number, number, number] | NumberArray;
125
-
126
- // WEBGL1 PIXEL PACK/UNPACK MODES
127
- [GL.PACK_ALIGNMENT]?: number;
128
- [GL.UNPACK_ALIGNMENT]?: number;
129
- [GL.UNPACK_FLIP_Y_WEBGL]?: boolean;
130
- [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]?: boolean;
131
- [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]?: GL.NONE | GL.BROWSER_DEFAULT_WEBGL;
132
-
133
- // WEBGL2 PIXEL PACK/UNPACK MODES
134
- // RASTERIZER_DISCARD ...
135
- [GL.PACK_ROW_LENGTH]?: number;
136
- [GL.PACK_SKIP_PIXELS]?: number;
137
- [GL.PACK_SKIP_ROWS]?: number;
138
- [GL.READ_FRAMEBUFFER_BINDING]?: Framebuffer | null;
139
- [GL.UNPACK_ROW_LENGTH]?: number;
140
- [GL.UNPACK_IMAGE_HEIGHT]?: number;
141
- [GL.UNPACK_SKIP_PIXELS]?: number;
142
- [GL.UNPACK_SKIP_ROWS]?: number;
143
- [GL.UNPACK_SKIP_IMAGES]?: number;
144
- };
145
-
146
- export type GLFunctionStyleParameters = {
147
- // Function-style setters
148
- framebuffer?: Framebuffer | null;
149
- blend?: boolean;
150
- blendColor?: [number, number, number, number] | NumberArray;
151
- blendEquation?: GL_BLEND_EQUATION | [GL_BLEND_EQUATION, GL_BLEND_EQUATION];
152
- blendFunc?:
153
- [GL_BLEND_FUNCTION, GL_BLEND_FUNCTION] |
154
- [GL_BLEND_FUNCTION, GL_BLEND_FUNCTION, GL_BLEND_FUNCTION, GL_BLEND_FUNCTION];
155
-
156
- clearColor?: [number, number, number, number] | NumberArray;
157
- clearDepth?: number;
158
- clearStencil?: number;
159
-
160
- colorMask?: [boolean, boolean, boolean, boolean];
161
-
162
- cull?: boolean;
163
- cullFace?: GL.FRONT | GL.BACK | GL.FRONT_AND_BACK;
164
-
165
- depthTest?: boolean;
166
- depthFunc?: GL_FUNCTION;
167
- depthMask?: boolean;
168
- depthRange?: [number, number] | NumberArray;
169
-
170
- dither?: boolean;
171
-
172
- derivativeHint?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
173
-
174
- frontFace?: GL.CW | GL.CCW;
175
-
176
- mipmapHint?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
177
-
178
- lineWidth?: number;
179
-
180
- polygonOffsetFill?: boolean;
181
- polygonOffset?: [number, number];
182
-
183
- sampleCoverage?: [number, boolean];
184
-
185
- scissorTest?: boolean;
186
- scissor?: [number, number, number, number] | NumberArray;
187
-
188
- stencilTest?: boolean;
189
- stencilMask?: number | [number, number];
190
- stencilFunc?: [GL_FUNCTION, number, number] | [GL_FUNCTION, number, number, GL_FUNCTION, number, number];
191
- stencilOp?:
192
- [GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP] |
193
- [GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP, GL_STENCIL_OP];
194
- viewport?: [number, number, number, number] | NumberArray;
195
- };
196
-
197
- export type GLParameters = GLValueParameters | GLFunctionStyleParameters;
@@ -1,32 +0,0 @@
1
- import {getCompositeGLType} from '../webgl-utils/attribute-utils';
2
-
3
- export function getDebugTableForProgramConfiguration(config) {
4
- const table = {};
5
-
6
- const header = `Accessors for ${config.id}`;
7
-
8
- for (const attributeInfo of config.attributeInfos) {
9
- if (attributeInfo) {
10
- const glslDeclaration = getGLSLDeclaration(attributeInfo);
11
- table[`in ${glslDeclaration}`] = {[header]: JSON.stringify(attributeInfo.accessor)};
12
- }
13
- }
14
-
15
- for (const varyingInfo of config.varyingInfos) {
16
- if (varyingInfo) {
17
- const glslDeclaration = getGLSLDeclaration(varyingInfo);
18
- table[`out ${glslDeclaration}`] = {[header]: JSON.stringify(varyingInfo.accessor)};
19
- }
20
- }
21
-
22
- return table;
23
- }
24
-
25
- function getGLSLDeclaration(attributeInfo) {
26
- const {type, size} = attributeInfo.accessor;
27
- const typeAndName = getCompositeGLType(type, size);
28
- if (typeAndName) {
29
- return `${typeAndName.name} ${attributeInfo.name}`;
30
- }
31
- return attributeInfo.name;
32
- }
@@ -1,100 +0,0 @@
1
- import {assert, formatValue} from '@luma.gl/api';
2
-
3
- // Prepares a table suitable for console.table
4
- /* eslint-disable max-statements, complexity */
5
- export function getDebugTableForUniforms(options?: {
6
- header?: string;
7
- program: any;
8
- uniforms: any;
9
- undefinedOnly?: boolean;
10
- }): {
11
- table: {};
12
- count: number;
13
- unusedTable: {};
14
- unusedCount: number;
15
- } {
16
- const {
17
- header = 'Uniforms',
18
- program,
19
- uniforms,
20
- undefinedOnly = false
21
- } = options;
22
- assert(program);
23
-
24
- const SHADER_MODULE_UNIFORM_REGEXP = '.*_.*';
25
- const PROJECT_MODULE_UNIFORM_REGEXP = '.*Matrix'; // TODO - Use explicit list
26
-
27
- const uniformLocations = program._uniformSetters;
28
- const table = {}; // {[header]: {}};
29
-
30
- // Add program's provided uniforms (in alphabetical order)
31
- const uniformNames = Object.keys(uniformLocations).sort();
32
-
33
- let count = 0;
34
-
35
- // First add non-underscored uniforms (assumed not coming from shader modules)
36
- for (const uniformName of uniformNames) {
37
- if (
38
- !uniformName.match(SHADER_MODULE_UNIFORM_REGEXP) &&
39
- !uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)
40
- ) {
41
- if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {
42
- count++;
43
- }
44
- }
45
- }
46
-
47
- // add underscored uniforms (assumed from shader modules)
48
- for (const uniformName of uniformNames) {
49
- if (uniformName.match(PROJECT_MODULE_UNIFORM_REGEXP)) {
50
- if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {
51
- count++;
52
- }
53
- }
54
- }
55
-
56
- for (const uniformName of uniformNames) {
57
- if (!table[uniformName]) {
58
- if (addUniformToTable({table, header, uniforms, uniformName, undefinedOnly})) {
59
- count++;
60
- }
61
- }
62
- }
63
-
64
- // Create a table of unused uniforms
65
- let unusedCount = 0;
66
- const unusedTable = {};
67
- if (!undefinedOnly) {
68
- for (const uniformName in uniforms) {
69
- const uniform = uniforms[uniformName];
70
- if (!table[uniformName]) {
71
- unusedCount++;
72
- unusedTable[uniformName] = {
73
- Type: `NOT USED: ${uniform}`,
74
- [header]: formatValue(uniform)
75
- };
76
- }
77
- }
78
- }
79
-
80
- return {table, count, unusedTable, unusedCount};
81
- }
82
-
83
- // Helper
84
- function addUniformToTable({table, header, uniforms, uniformName, undefinedOnly}) {
85
- const value = uniforms[uniformName];
86
- const isDefined = isUniformDefined(value);
87
- if (!undefinedOnly || !isDefined) {
88
- table[uniformName] = {
89
- // Add program's unprovided uniforms
90
- [header]: isDefined ? formatValue(value) : 'N/A',
91
- 'Uniform Type': isDefined ? value : 'NOT PROVIDED'
92
- };
93
- return true;
94
- }
95
- return false;
96
- }
97
-
98
- function isUniformDefined(value) {
99
- return value !== undefined && value !== null;
100
- }
@@ -1,123 +0,0 @@
1
- import {formatValue} from '@luma.gl/api';
2
- import Buffer from '../classes/webgl-buffer';
3
- import {getKey} from '../webgl-utils/constants-to-keys';
4
- import {getCompositeGLType} from '../webgl-utils/attribute-utils';
5
-
6
- // Creates object suitable as input for console.table
7
- export function getDebugTableForVertexArray(options?: {vertexArray: any; header?: string}): {} {
8
- const {vertexArray, header = 'Attributes'} = options;
9
-
10
- if (!vertexArray.configuration) {
11
- return {};
12
- }
13
-
14
- const table = {}; // {[header]: {}};
15
-
16
- // Add index (elements) if available
17
- if (vertexArray.elements) {
18
- // const elements = Object.assign({size: 1}, vertexArray.elements);
19
- // @ts-expect-error
20
- table.ELEMENT_ARRAY_BUFFER = getDebugTableRow(vertexArray, vertexArray.elements, null, header);
21
- }
22
-
23
- // Add used attributes
24
- const attributes = vertexArray.values;
25
-
26
- for (const attributeLocation in attributes) {
27
- const info = vertexArray._getAttributeInfo(attributeLocation);
28
- if (info) {
29
- let rowHeader = `${attributeLocation}: ${info.name}`;
30
- const accessor = vertexArray.accessors[info.location];
31
- if (accessor) {
32
- rowHeader = `${attributeLocation}: ${getGLSLDeclaration(info.name, accessor)}`;
33
- }
34
- table[rowHeader] = getDebugTableRow(
35
- vertexArray,
36
- attributes[attributeLocation],
37
- accessor,
38
- header
39
- );
40
- }
41
- }
42
-
43
- return table;
44
- }
45
-
46
- /* eslint-disable max-statements */
47
- function getDebugTableRow(vertexArray, attribute, accessor, header) {
48
- const {gl} = vertexArray;
49
-
50
- if (!attribute) {
51
- return {
52
- [header]: 'null',
53
- 'Format ': 'N/A'
54
- };
55
- }
56
-
57
- let type = 'NOT PROVIDED';
58
- let size = 1;
59
- let verts = 0;
60
- let bytes = 0;
61
-
62
- let isInteger;
63
- let marker;
64
- let value;
65
-
66
- if (accessor) {
67
- type = accessor.type;
68
- size = accessor.size;
69
-
70
- // Generate a type name by dropping Array from Float32Array etc.
71
- type = String(type).replace('Array', '');
72
-
73
- // Look for 'nt' to detect integer types, e.g. Int32Array, Uint32Array
74
- isInteger = type.indexOf('nt') !== -1;
75
- }
76
-
77
- if (attribute instanceof Buffer) {
78
- const buffer = attribute;
79
-
80
- const {data, changed} = buffer.getDebugData();
81
- marker = changed ? '*' : '';
82
-
83
- value = data;
84
- bytes = buffer.byteLength;
85
- verts = bytes / data.BYTES_PER_ELEMENT / size;
86
-
87
- let format;
88
-
89
- if (accessor) {
90
- const instanced = accessor.divisor > 0;
91
- format = `${instanced ? 'I ' : 'P '} ${verts} (x${size}=${bytes} bytes ${getKey(gl, type)})`;
92
- } else {
93
- // element buffer
94
- isInteger = true;
95
- format = `${bytes} bytes`;
96
- }
97
-
98
- return {
99
- [header]: `${marker}${formatValue(value, {size, isInteger})}`,
100
- 'Format ': format
101
- };
102
- }
103
-
104
- // CONSTANT VALUE
105
- value = attribute;
106
- size = attribute.length;
107
- // Generate a type name by dropping Array from Float32Array etc.
108
- type = String(attribute.constructor.name).replace('Array', '');
109
- // Look for 'nt' to detect integer types, e.g. Int32Array, Uint32Array
110
- isInteger = type.indexOf('nt') !== -1;
111
-
112
- return {
113
- [header]: `${formatValue(value, {size, isInteger})} (constant)`,
114
- 'Format ': `${size}x${type} (constant)`
115
- };
116
- }
117
- /* eslint-ensable max-statements */
118
-
119
- function getGLSLDeclaration(name, accessor) {
120
- const {type, size} = accessor;
121
- const typeAndName = getCompositeGLType(type, size);
122
- return typeAndName ? `${name} (${typeAndName.name})` : name;
123
- }
@@ -1,244 +0,0 @@
1
- import GL from '@luma.gl/constants';
2
- import {isWebGL2} from '../context/context/webgl-checks';
3
- import {ProgramBindings, AttributeBinding, UniformBinding, UniformBlockBinding, VaryingBinding} from './program-bindings'
4
- import Accessor from '../classes/accessor';
5
- import {decomposeCompositeGLType} from '../webgl-utils/attribute-utils';
6
-
7
- /**
8
- * Extract metadata describing binding information for a program's shaders
9
- * Note: `linkProgram()` needs to have been called
10
- * (although linking does not need to have been successful).
11
- */
12
- export function getProgramBindings(gl: WebGL2RenderingContext, program: WebGLProgram): ProgramBindings {
13
- const config: ProgramBindings = {
14
- attributes: readAttributeBindings(gl, program),
15
- uniforms: readUniformBindings(gl, program),
16
- uniformBlocks: readUniformBlocks(gl, program),
17
- varyings: readVaryings(gl, program)
18
- };
19
-
20
- Object.seal(config);
21
- return config;
22
- // generateWebGPUStyleBindings(bindings);
23
- }
24
-
25
-
26
- /**
27
- * Extract info about all transform feedback varyings
28
- *
29
- * linkProgram needs to have been called, although linking does not need to have been successful
30
- */
31
- function readAttributeBindings(gl: WebGL2RenderingContext, program: WebGLProgram): AttributeBinding[] {
32
- const attributes: AttributeBinding[] = [];
33
-
34
- const count = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);
35
-
36
- for (let index = 0; index < count; index++) {
37
- const {name, type: compositeType, size} = gl.getActiveAttrib(program, index);
38
- const location = gl.getAttribLocation(program, name);
39
- // Add only user provided attributes, for built-in attributes like
40
- // `gl_InstanceID` locaiton will be < 0
41
- if (location >= 0) {
42
- const {type, components} = decomposeCompositeGLType(compositeType);
43
- const accessor = {type, size: size * components};
44
- inferProperties(location, name, accessor);
45
-
46
- const attributeInfo = {location, name, accessor: new Accessor(accessor)}; // Base values
47
- attributes.push(attributeInfo);
48
- }
49
- }
50
-
51
- attributes.sort((a, b) => a.location - b.location);
52
- return attributes;
53
- }
54
-
55
- /**
56
- * Extract info about all transform feedback varyings
57
- *
58
- * linkProgram needs to have been called, although linking does not need to have been successful
59
- */
60
- function readVaryings(gl: WebGL2RenderingContext, program: WebGLProgram): VaryingBinding[] {
61
- if (!isWebGL2(gl)) {
62
- return [];
63
- }
64
-
65
- const varyings = [];
66
-
67
- const count = gl.getProgramParameter(program, gl.TRANSFORM_FEEDBACK_VARYINGS);
68
- for (let location = 0; location < count; location++) {
69
- const {name, type: compositeType, size} = gl.getTransformFeedbackVarying(program, location);
70
- const {type, components} = decomposeCompositeGLType(compositeType);
71
- const accessor = new Accessor({type, size: size * components});
72
- const varying = {location, name, accessor}; // Base values
73
- varyings.push(varying);
74
- }
75
-
76
- varyings.sort((a, b) => a.location - b.location);
77
- return varyings;
78
- }
79
-
80
- /**
81
- * Extract info about all uniforms
82
- *
83
- * Query uniform locations and build name to setter map.
84
- */
85
- function readUniformBindings(gl: WebGL2RenderingContext, program: WebGLProgram): UniformBinding[] {
86
- const uniforms: UniformBinding[] = [];
87
-
88
- const uniformCount = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);
89
- for (let i = 0; i < uniformCount; i++) {
90
- const {name: rawName, size, type} = gl.getActiveUniform(program, i);
91
- const {name, isArray} = parseUniformName(rawName);
92
- let webglLocation = gl.getUniformLocation(program, name);
93
- const uniformInfo = {
94
- // WebGL locations are uniquely typed but just numbers
95
- location: webglLocation as number,
96
- name,
97
- size,
98
- type,
99
- isArray
100
- };
101
- uniforms.push(uniformInfo);
102
-
103
- // Array (e.g. matrix) uniforms can occupy several 4x4 byte banks
104
- if (uniformInfo.size > 1) {
105
- for (let j = 0; j < uniformInfo.size; j++) {
106
- const elementName = `${name}[${j}]`;
107
-
108
- webglLocation = gl.getUniformLocation(program, elementName);
109
-
110
- const arrayElementUniformInfo = {
111
- ...uniformInfo,
112
- name: elementName,
113
- location: webglLocation as number
114
- };
115
-
116
- uniforms.push(arrayElementUniformInfo);
117
- }
118
- }
119
- }
120
- return uniforms;
121
- }
122
-
123
- /**
124
- * Extract info about all "active" uniform blocks
125
- *
126
- * ("Active" just means that unused (aka inactive) blocks may have been
127
- * optimized away during linking)
128
- */
129
- function readUniformBlocks(gl: WebGL2RenderingContext, program: WebGLProgram): UniformBlockBinding[] {
130
- const getBlockParameter = (blockIndex, pname) => gl.getActiveUniformBlockParameter(program, blockIndex, pname);
131
-
132
- const uniformBlocks: UniformBlockBinding[] = [];
133
-
134
- const blockCount = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);
135
- for (let blockIndex = 0; blockIndex < blockCount; blockIndex++) {
136
-
137
- const blockInfo = {
138
- name: gl.getActiveUniformBlockName(program, blockIndex),
139
- location: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_BINDING),
140
- byteLength: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_DATA_SIZE),
141
- vertex: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),
142
- fragment: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),
143
- uniformCount: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS),
144
- uniformIndices: getBlockParameter(blockIndex, gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES),
145
- uniforms: []
146
- }
147
-
148
- for (let uniformIndex = 0; uniformIndex < blockInfo.uniformCount; ++uniformIndex) {
149
- // TODO - Can we extract more?
150
- }
151
-
152
- uniformBlocks.push(blockInfo);
153
- }
154
-
155
- uniformBlocks.sort((a, b) => a.location - b.location);
156
- return uniformBlocks;
157
- }
158
-
159
- const SAMPLER_UNIFORMS_GL_TO_GPU = {
160
- [GL.SAMPLER_2D]: ['2d', 'float'],
161
- [GL.SAMPLER_CUBE]: ['cube', 'float'],
162
- [GL.SAMPLER_3D]: ['3d', 'float'],
163
- [GL.SAMPLER_2D_SHADOW]: ['3d', 'depth'],
164
- [GL.SAMPLER_2D_ARRAY]: ['2d-array', 'float'],
165
- [GL.SAMPLER_2D_ARRAY_SHADOW]: ['2d-array', 'depth'],
166
- [GL.SAMPLER_CUBE_SHADOW]: ['cube', 'float'],
167
- [GL.INT_SAMPLER_2D]: ['2d', 'sint'],
168
- [GL.INT_SAMPLER_3D]: ['3d', 'sint'],
169
- [GL.INT_SAMPLER_CUBE]: ['cube', 'sint'],
170
- [GL.INT_SAMPLER_2D_ARRAY]: ['2d-array', 'sint'],
171
- [GL.UNSIGNED_INT_SAMPLER_2D]: ['2d', 'sint'],
172
- [GL.UNSIGNED_INT_SAMPLER_3D]: ['3d', 'sint'],
173
- [GL.UNSIGNED_INT_SAMPLER_CUBE]: ['cube', 'sint'],
174
- [GL.UNSIGNED_INT_SAMPLER_2D_ARRAY]: ['2d-array', 'sint']
175
- };
176
-
177
- /**
178
- * Generate a list of "WebGPU-style" bindings for this program
179
- */
180
- function generateWebGPUStyleBindings(config: ProgramBindings) {
181
- const bindings: any = [];
182
-
183
- // Uniform blocks
184
- for (const blockInfo of config.uniformBlocks) {
185
- bindings.push({
186
- binding: blockInfo.location,
187
- visibility: (blockInfo.vertex ? 0x1 : 0) & (blockInfo.fragment ? 0x2 : 0),
188
- buffer: {
189
- type: 'uniform',
190
- // minBindingSize: blockInfo.size
191
- }
192
- })
193
- }
194
-
195
- // Sampler uniforms
196
- for (const uniformInfo of config.uniforms) {
197
- let sampler = SAMPLER_UNIFORMS_GL_TO_GPU[uniformInfo.type];
198
- if (sampler) {
199
- const [viewDimension, sampleType] = sampler;
200
- bindings.push({
201
- binding: uniformInfo.location,
202
- visibility: 0, // Not available in WebGL on individual uniforms?
203
- texture: {
204
- viewDimension,
205
- sampleType
206
- }
207
- });
208
- }
209
- }
210
- }
211
-
212
- // HELPERS
213
-
214
- function parseUniformName(name) {
215
- // Shortcut to avoid redundant or bad matches
216
- if (name[name.length - 1] !== ']'){
217
- return {
218
- name,
219
- length: 1,
220
- isArray: false
221
- };
222
- }
223
-
224
- // if array name then clean the array brackets
225
- const UNIFORM_NAME_REGEXP = /([^[]*)(\[[0-9]+\])?/;
226
- const matches = name.match(UNIFORM_NAME_REGEXP);
227
- if (!matches || matches.length < 2) {
228
- throw new Error(`Failed to parse GLSL uniform name ${name}`);
229
- }
230
-
231
- return {
232
- name: matches[1],
233
- length: matches[2] || 1,
234
- isArray: Boolean(matches[2])
235
- };
236
- }
237
-
238
- // Extract additional attribute metadata from shader names (based on attribute naming conventions)
239
- function inferProperties(accessor, location, name) {
240
- if (/instance/i.test(name)) {
241
- // Any attribute containing the word "instance" will be assumed to be instanced
242
- accessor.divisor = 1;
243
- }
244
- }