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

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