@luma.gl/webgl 9.0.0-alpha.5 → 9.0.0-alpha.50

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 (531) hide show
  1. package/LICENSE +3 -1
  2. package/dist/adapter/converters/device-parameters.d.ts +23 -4
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/device-parameters.js +101 -73
  5. package/dist/adapter/converters/device-parameters.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts +6 -6
  7. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  8. package/dist/adapter/converters/sampler-parameters.js +74 -111
  9. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  10. package/dist/adapter/converters/shader-formats.d.ts +9 -0
  11. package/dist/adapter/converters/shader-formats.d.ts.map +1 -0
  12. package/dist/adapter/converters/shader-formats.js +52 -0
  13. package/dist/adapter/converters/shader-formats.js.map +1 -0
  14. package/dist/adapter/converters/texture-formats.d.ts +32 -44
  15. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  16. package/dist/adapter/converters/texture-formats.js +309 -346
  17. package/dist/adapter/converters/texture-formats.js.map +1 -1
  18. package/dist/adapter/converters/vertex-formats.d.ts +9 -3
  19. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  20. package/dist/adapter/converters/vertex-formats.js +53 -22
  21. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  22. package/dist/adapter/device-helpers/device-features.d.ts +1 -1
  23. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  24. package/dist/adapter/device-helpers/device-features.js +17 -23
  25. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  26. package/dist/adapter/device-helpers/device-limits.d.ts +3 -3
  27. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  28. package/dist/adapter/device-helpers/device-limits.js +54 -58
  29. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  30. package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
  31. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
  32. package/dist/adapter/device-helpers/get-device-info.js +31 -22
  33. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  34. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -1
  35. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  36. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  37. package/dist/adapter/helpers/decode-webgl-types.d.ts +26 -0
  38. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -0
  39. package/dist/adapter/helpers/decode-webgl-types.js +89 -0
  40. package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
  41. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  42. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  43. package/dist/adapter/helpers/get-shader-info.js +25 -0
  44. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  45. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -48
  46. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  47. package/dist/adapter/helpers/get-shader-layout.js +87 -143
  48. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  49. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  50. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  51. package/dist/adapter/helpers/parse-shader-compiler-log.js +16 -11
  52. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  53. package/dist/adapter/helpers/set-uniform.d.ts +3 -2
  54. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  55. package/dist/adapter/helpers/set-uniform.js +51 -82
  56. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  57. package/dist/adapter/helpers/webgl-topology-utils.d.ts +16 -0
  58. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
  59. package/dist/adapter/helpers/webgl-topology-utils.js +103 -0
  60. package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
  61. package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
  62. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  63. package/dist/adapter/objects/constants-to-keys.js +2 -29
  64. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  65. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  66. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  67. package/dist/adapter/objects/webgl-renderbuffer.js +36 -44
  68. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  69. package/dist/adapter/objects/webgl-resource.d.ts +6 -9
  70. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  71. package/dist/adapter/objects/webgl-resource.js +26 -83
  72. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  73. package/dist/adapter/resources/webgl-buffer.d.ts +19 -11
  74. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  75. package/dist/adapter/resources/webgl-buffer.js +60 -88
  76. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  77. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  78. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  79. package/dist/adapter/resources/webgl-command-buffer.js +175 -48
  80. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  81. package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
  82. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  83. package/dist/adapter/resources/webgl-command-encoder.js +10 -20
  84. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  85. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  86. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -24
  87. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  88. package/dist/adapter/resources/webgl-framebuffer.js +63 -173
  89. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  90. package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
  91. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  92. package/dist/adapter/resources/webgl-render-pass.js +99 -11
  93. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  94. package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -21
  95. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  96. package/dist/adapter/resources/webgl-render-pipeline.js +108 -270
  97. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  98. package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
  99. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  100. package/dist/adapter/resources/webgl-sampler.js +11 -21
  101. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  102. package/dist/adapter/resources/webgl-shader.d.ts +3 -4
  103. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  104. package/dist/adapter/resources/webgl-shader.js +21 -34
  105. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  106. package/dist/adapter/resources/webgl-texture.d.ts +62 -42
  107. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  108. package/dist/adapter/resources/webgl-texture.js +137 -256
  109. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  110. package/dist/adapter/resources/webgl-transform-feedback.d.ts +47 -0
  111. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -0
  112. package/dist/adapter/resources/webgl-transform-feedback.js +164 -0
  113. package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -0
  114. package/dist/adapter/resources/webgl-vertex-array.d.ts +67 -0
  115. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -0
  116. package/dist/adapter/resources/webgl-vertex-array.js +167 -0
  117. package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
  118. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  119. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  120. package/dist/adapter/webgl-canvas-context.js +10 -23
  121. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  122. package/dist/adapter/webgl-device.d.ts +76 -41
  123. package/dist/adapter/webgl-device.d.ts.map +1 -1
  124. package/dist/adapter/webgl-device.js +219 -129
  125. package/dist/adapter/webgl-device.js.map +1 -1
  126. package/dist/classic/accessor.d.ts +3 -3
  127. package/dist/classic/accessor.d.ts.map +1 -1
  128. package/dist/classic/accessor.js +26 -52
  129. package/dist/classic/accessor.js.map +1 -1
  130. package/dist/classic/clear.d.ts +22 -0
  131. package/dist/classic/clear.d.ts.map +1 -0
  132. package/dist/classic/clear.js +88 -0
  133. package/dist/classic/clear.js.map +1 -0
  134. package/dist/classic/copy-and-blit.d.ts +62 -0
  135. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  136. package/dist/classic/copy-and-blit.js +191 -0
  137. package/dist/classic/copy-and-blit.js.map +1 -0
  138. package/dist/classic/format-utils.d.ts +3 -0
  139. package/dist/classic/format-utils.d.ts.map +1 -0
  140. package/dist/classic/format-utils.js +37 -0
  141. package/dist/classic/format-utils.js.map +1 -0
  142. package/dist/classic/typed-array-utils.d.ts +17 -17
  143. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  144. package/dist/classic/typed-array-utils.js +18 -39
  145. package/dist/classic/typed-array-utils.js.map +1 -1
  146. package/dist/context/context/create-browser-context.d.ts +40 -0
  147. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  148. package/dist/context/context/create-browser-context.js +53 -0
  149. package/dist/context/context/create-browser-context.js.map +1 -0
  150. package/dist/context/context/create-headless-context.d.ts +9 -0
  151. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  152. package/dist/context/context/create-headless-context.js +42 -0
  153. package/dist/context/context/create-headless-context.js.map +1 -0
  154. package/dist/context/context/webgl-checks.d.ts.map +1 -1
  155. package/dist/context/context/webgl-checks.js +1 -4
  156. package/dist/context/context/webgl-checks.js.map +1 -1
  157. package/dist/context/debug/spector.d.ts +1 -2
  158. package/dist/context/debug/spector.d.ts.map +1 -1
  159. package/dist/context/debug/spector.js +8 -20
  160. package/dist/context/debug/spector.js.map +1 -1
  161. package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
  162. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  163. package/dist/context/debug/webgl-developer-tools.js +15 -39
  164. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  165. package/dist/context/parameters/unified-parameter-api.d.ts +9 -8
  166. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  167. package/dist/context/parameters/unified-parameter-api.js +9 -19
  168. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  169. package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
  170. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  171. package/dist/context/parameters/webgl-parameter-tables.js +267 -286
  172. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  173. package/dist/context/polyfill/context-data.d.ts +13 -0
  174. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  175. package/dist/context/polyfill/context-data.js +12 -0
  176. package/dist/context/polyfill/context-data.js.map +1 -0
  177. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  178. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  179. package/dist/context/polyfill/get-parameter-polyfill.js +37 -43
  180. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  181. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -1
  182. package/dist/context/polyfill/polyfill-context.js +22 -30
  183. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  184. package/dist/context/polyfill/polyfill-table.d.ts +8 -8
  185. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  186. package/dist/context/polyfill/polyfill-table.js +18 -41
  187. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  188. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  189. package/dist/context/polyfill/polyfill-vertex-array-object.js +17 -87
  190. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  191. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  192. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  193. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  194. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  195. package/dist/context/state-tracker/track-context-state.js +26 -62
  196. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  197. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  198. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  199. package/dist/context/state-tracker/with-parameters.js +8 -10
  200. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  201. package/dist/dist.dev.js +8555 -0
  202. package/dist/index.cjs +6602 -0
  203. package/dist/index.d.ts +26 -24
  204. package/dist/index.d.ts.map +1 -1
  205. package/dist/index.js +27 -26
  206. package/dist/index.js.map +1 -1
  207. package/dist/types.d.ts +3 -1
  208. package/dist/types.d.ts.map +1 -1
  209. package/dist/types.js.map +1 -1
  210. package/dist.min.js +49 -0
  211. package/package.json +21 -9
  212. package/src/adapter/converters/device-parameters.ts +144 -41
  213. package/src/adapter/converters/sampler-parameters.ts +103 -41
  214. package/src/adapter/converters/shader-formats.ts +44 -0
  215. package/src/adapter/converters/texture-formats.ts +268 -195
  216. package/src/adapter/converters/vertex-formats.ts +71 -10
  217. package/src/adapter/device-helpers/device-features.ts +14 -3
  218. package/src/adapter/device-helpers/device-limits.ts +5 -3
  219. package/src/adapter/device-helpers/get-device-info.ts +53 -18
  220. package/src/adapter/device-helpers/is-old-ie.ts +3 -0
  221. package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +39 -21
  222. package/src/adapter/helpers/get-shader-info.ts +41 -0
  223. package/src/adapter/helpers/get-shader-layout.ts +121 -146
  224. package/src/adapter/helpers/parse-shader-compiler-log.ts +24 -8
  225. package/src/adapter/helpers/set-uniform.ts +39 -35
  226. package/src/adapter/helpers/webgl-topology-utils.ts +103 -0
  227. package/src/adapter/objects/constants-to-keys.ts +6 -25
  228. package/src/adapter/objects/webgl-renderbuffer.ts +43 -37
  229. package/src/adapter/objects/webgl-resource.ts +16 -23
  230. package/src/adapter/resources/webgl-buffer.ts +67 -62
  231. package/src/adapter/resources/webgl-command-buffer.ts +327 -25
  232. package/src/adapter/resources/webgl-command-encoder.ts +20 -12
  233. package/src/adapter/resources/webgl-external-texture.ts +5 -2
  234. package/src/adapter/resources/webgl-framebuffer.ts +90 -134
  235. package/src/adapter/resources/webgl-render-pass.ts +166 -4
  236. package/src/adapter/resources/webgl-render-pipeline.ts +256 -192
  237. package/src/adapter/resources/webgl-sampler.ts +16 -10
  238. package/src/adapter/resources/webgl-shader.ts +14 -11
  239. package/src/adapter/resources/webgl-texture.ts +138 -99
  240. package/src/adapter/resources/webgl-transform-feedback.ts +202 -0
  241. package/src/adapter/resources/webgl-vertex-array.ts +283 -0
  242. package/src/adapter/webgl-canvas-context.ts +16 -14
  243. package/src/adapter/webgl-device.ts +328 -79
  244. package/src/classic/accessor.ts +8 -18
  245. package/src/classic/clear.ts +113 -0
  246. package/src/classic/copy-and-blit.ts +311 -0
  247. package/src/classic/format-utils.ts +46 -0
  248. package/src/classic/typed-array-utils.ts +21 -27
  249. package/src/context/context/create-browser-context.ts +140 -0
  250. package/src/context/context/create-headless-context.ts +51 -0
  251. package/src/context/context/webgl-checks.ts +3 -1
  252. package/src/context/debug/spector.ts +9 -6
  253. package/src/context/debug/webgl-developer-tools.ts +23 -15
  254. package/src/context/parameters/unified-parameter-api.ts +23 -14
  255. package/src/context/parameters/webgl-parameter-tables.ts +120 -98
  256. package/src/context/polyfill/context-data.ts +30 -0
  257. package/src/context/polyfill/get-parameter-polyfill.ts +11 -7
  258. package/src/context/polyfill/polyfill-context.ts +10 -9
  259. package/src/context/polyfill/polyfill-table.ts +21 -16
  260. package/src/context/polyfill/polyfill-vertex-array-object.ts +5 -0
  261. package/src/context/state-tracker/deep-array-equal.ts +2 -0
  262. package/src/context/state-tracker/track-context-state.ts +14 -11
  263. package/src/context/state-tracker/with-parameters.ts +13 -4
  264. package/src/index.ts +70 -35
  265. package/src/types.ts +5 -0
  266. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  267. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  268. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  269. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  270. package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
  271. package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
  272. package/dist/adapter/helpers/attribute-utils.js +0 -81
  273. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  274. package/dist/adapter/helpers/uniforms.d.ts +0 -26
  275. package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
  276. package/dist/adapter/helpers/uniforms.js +0 -99
  277. package/dist/adapter/helpers/uniforms.js.map +0 -1
  278. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
  279. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
  280. package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
  281. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  282. package/dist/bundle.d.ts +0 -2
  283. package/dist/bundle.d.ts.map +0 -1
  284. package/dist/bundle.js +0 -5
  285. package/dist/bundle.js.map +0 -1
  286. package/dist/classic/buffer.d.ts +0 -95
  287. package/dist/classic/buffer.d.ts.map +0 -1
  288. package/dist/classic/buffer.js +0 -384
  289. package/dist/classic/buffer.js.map +0 -1
  290. package/dist/context/context/context-state.d.ts +0 -18
  291. package/dist/context/context/context-state.d.ts.map +0 -1
  292. package/dist/context/context/context-state.js +0 -26
  293. package/dist/context/context/context-state.js.map +0 -1
  294. package/dist/context/context/create-context.d.ts +0 -41
  295. package/dist/context/context/create-context.d.ts.map +0 -1
  296. package/dist/context/context/create-context.js +0 -49
  297. package/dist/context/context/create-context.js.map +0 -1
  298. package/dist/context/context/device-pixels.d.ts +0 -25
  299. package/dist/context/context/device-pixels.d.ts.map +0 -1
  300. package/dist/context/context/device-pixels.js +0 -98
  301. package/dist/context/context/device-pixels.js.map +0 -1
  302. package/dist/es5/adapter/converters/device-parameters.js +0 -170
  303. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  304. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  305. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  306. package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
  307. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  308. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  309. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  310. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  311. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  312. package/dist/es5/adapter/device-helpers/device-features.js +0 -144
  313. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  314. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  315. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  316. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  317. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  318. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  319. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  320. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  321. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  322. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
  323. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  324. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  325. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  326. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  327. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  328. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  329. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  330. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  331. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  332. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  333. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  334. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  335. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  336. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  337. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  338. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  339. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  340. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  341. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  342. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  343. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  344. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  345. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  346. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
  347. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  348. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
  349. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  350. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
  351. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  352. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  353. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  354. package/dist/es5/adapter/resources/webgl-shader.js +0 -149
  355. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  356. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  357. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  358. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  359. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  360. package/dist/es5/adapter/webgl-device.js +0 -399
  361. package/dist/es5/adapter/webgl-device.js.map +0 -1
  362. package/dist/es5/bundle.js +0 -7
  363. package/dist/es5/bundle.js.map +0 -1
  364. package/dist/es5/classic/accessor.js +0 -181
  365. package/dist/es5/classic/accessor.js.map +0 -1
  366. package/dist/es5/classic/buffer.js +0 -470
  367. package/dist/es5/classic/buffer.js.map +0 -1
  368. package/dist/es5/classic/typed-array-utils.js +0 -126
  369. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  370. package/dist/es5/context/context/context-state.js +0 -31
  371. package/dist/es5/context/context/context-state.js.map +0 -1
  372. package/dist/es5/context/context/create-context.js +0 -69
  373. package/dist/es5/context/context/create-context.js.map +0 -1
  374. package/dist/es5/context/context/device-pixels.js +0 -115
  375. package/dist/es5/context/context/device-pixels.js.map +0 -1
  376. package/dist/es5/context/context/webgl-checks.js +0 -54
  377. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  378. package/dist/es5/context/debug/spector.js +0 -133
  379. package/dist/es5/context/debug/spector.js.map +0 -1
  380. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  381. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  382. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  383. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  384. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  385. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  386. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  387. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  388. package/dist/es5/context/polyfill/polyfill-context.js +0 -135
  389. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  390. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  391. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  392. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  393. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  394. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  395. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  396. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  397. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  398. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  399. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  400. package/dist/es5/index.js +0 -276
  401. package/dist/es5/index.js.map +0 -1
  402. package/dist/es5/init.js +0 -10
  403. package/dist/es5/init.js.map +0 -1
  404. package/dist/es5/types/webgl.js +0 -6
  405. package/dist/es5/types/webgl.js.map +0 -1
  406. package/dist/es5/types.js +0 -2
  407. package/dist/es5/types.js.map +0 -1
  408. package/dist/esm/adapter/converters/device-parameters.js +0 -155
  409. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  410. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  411. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  412. package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
  413. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  414. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  415. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  416. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  417. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  418. package/dist/esm/adapter/device-helpers/device-features.js +0 -102
  419. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  420. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  421. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  422. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  423. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  424. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  425. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  426. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  427. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  428. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
  429. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  430. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  431. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  432. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  433. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  434. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  435. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  436. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  437. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  438. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  439. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  440. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  441. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  442. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  443. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  444. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  445. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  446. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  447. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  448. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  449. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  450. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  451. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  452. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
  453. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  454. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
  455. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  456. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  457. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  458. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  459. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  460. package/dist/esm/adapter/resources/webgl-shader.js +0 -75
  461. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  462. package/dist/esm/adapter/resources/webgl-texture.js +0 -833
  463. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  464. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  465. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  466. package/dist/esm/adapter/webgl-device.js +0 -280
  467. package/dist/esm/adapter/webgl-device.js.map +0 -1
  468. package/dist/esm/bundle.js +0 -5
  469. package/dist/esm/bundle.js.map +0 -1
  470. package/dist/esm/classic/accessor.js +0 -144
  471. package/dist/esm/classic/accessor.js.map +0 -1
  472. package/dist/esm/classic/buffer.js +0 -384
  473. package/dist/esm/classic/buffer.js.map +0 -1
  474. package/dist/esm/classic/typed-array-utils.js +0 -112
  475. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  476. package/dist/esm/context/context/context-state.js +0 -26
  477. package/dist/esm/context/context/context-state.js.map +0 -1
  478. package/dist/esm/context/context/create-context.js +0 -49
  479. package/dist/esm/context/context/create-context.js.map +0 -1
  480. package/dist/esm/context/context/device-pixels.js +0 -98
  481. package/dist/esm/context/context/device-pixels.js.map +0 -1
  482. package/dist/esm/context/context/webgl-checks.js +0 -34
  483. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  484. package/dist/esm/context/debug/spector.js +0 -76
  485. package/dist/esm/context/debug/spector.js.map +0 -1
  486. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  487. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  488. package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
  489. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  490. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  491. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  492. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  493. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  494. package/dist/esm/context/polyfill/polyfill-context.js +0 -92
  495. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  496. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  497. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  498. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  499. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  500. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  501. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  502. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  503. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  504. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  505. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  506. package/dist/esm/index.js +0 -27
  507. package/dist/esm/index.js.map +0 -1
  508. package/dist/esm/init.js +0 -4
  509. package/dist/esm/init.js.map +0 -1
  510. package/dist/esm/types/webgl.js +0 -2
  511. package/dist/esm/types/webgl.js.map +0 -1
  512. package/dist/esm/types.js +0 -2
  513. package/dist/esm/types.js.map +0 -1
  514. package/dist/init.d.ts +0 -2
  515. package/dist/init.d.ts.map +0 -1
  516. package/dist/init.js +0 -4
  517. package/dist/init.js.map +0 -1
  518. package/dist/types/webgl.d.ts +0 -145
  519. package/dist/types/webgl.d.ts.map +0 -1
  520. package/dist/types/webgl.js +0 -2
  521. package/dist/types/webgl.js.map +0 -1
  522. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  523. package/src/adapter/helpers/attribute-utils.ts +0 -61
  524. package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
  525. package/src/bundle.ts +0 -4
  526. package/src/classic/buffer.ts +0 -474
  527. package/src/context/context/context-state.ts +0 -41
  528. package/src/context/context/create-context.ts +0 -110
  529. package/src/context/context/device-pixels.ts +0 -152
  530. package/src/init.ts +0 -4
  531. package/src/types/webgl.ts +0 -284
@@ -1,208 +1,171 @@
1
- import GL from '@luma.gl/constants';
2
- import { convertCompareFunction, convertToCompareFunction } from './device-parameters';
1
+ import { convertCompareFunction, convertToCompareFunction } from "./device-parameters.js";
3
2
  export function convertSamplerParametersToWebGL(props) {
4
3
  const params = {};
5
-
6
4
  if (props.addressModeU) {
7
- params[GL.TEXTURE_WRAP_S] = convertAddressMode(props.addressModeU);
5
+ params[10242] = convertAddressMode(props.addressModeU);
8
6
  }
9
-
10
7
  if (props.addressModeV) {
11
- params[GL.TEXTURE_WRAP_T] = convertAddressMode(props.addressModeV);
8
+ params[10243] = convertAddressMode(props.addressModeV);
12
9
  }
13
-
14
10
  if (props.addressModeW) {
15
- params[GL.TEXTURE_WRAP_R] = convertAddressMode(props.addressModeW);
11
+ params[32882] = convertAddressMode(props.addressModeW);
16
12
  }
17
-
18
13
  if (props.magFilter) {
19
- params[GL.TEXTURE_MAG_FILTER] = convertMaxFilterMode(props.magFilter);
14
+ params[10240] = convertMaxFilterMode(props.magFilter);
20
15
  }
21
-
22
16
  if (props.minFilter || props.mipmapFilter) {
23
- params[GL.TEXTURE_MIN_FILTER] = convertMinFilterMode(props.minFilter || 'linear', props.mipmapFilter);
17
+ params[10241] = convertMinFilterMode(props.minFilter || 'linear', props.mipmapFilter);
24
18
  }
25
-
26
19
  if (props.lodMinClamp !== undefined) {
27
- params[GL.TEXTURE_MIN_LOD] = props.lodMinClamp;
20
+ params[33082] = props.lodMinClamp;
28
21
  }
29
-
30
22
  if (props.lodMaxClamp !== undefined) {
31
- params[GL.TEXTURE_MAX_LOD] = props.lodMaxClamp;
23
+ params[33083] = props.lodMaxClamp;
24
+ }
25
+ if (props.type === 'comparison-sampler') {
26
+ params[34892] = 34894;
32
27
  }
33
-
34
28
  if (props.compare) {
35
- params[GL.TEXTURE_COMPARE_MODE] = GL.COMPARE_REF_TO_TEXTURE;
36
- params[GL.TEXTURE_COMPARE_FUNC] = convertCompareFunction('compare', props.compare);
29
+ params[34893] = convertCompareFunction('compare', props.compare);
37
30
  }
38
-
39
31
  if (props.maxAnisotropy) {
40
- params[GL.TEXTURE_MAX_ANISOTROPY_EXT] = props.maxAnisotropy;
32
+ params[34046] = props.maxAnisotropy;
41
33
  }
42
-
43
34
  return params;
44
35
  }
45
-
46
36
  function convertAddressMode(addressMode) {
47
37
  switch (addressMode) {
48
38
  case 'clamp-to-edge':
49
- return GL.CLAMP_TO_EDGE;
50
-
39
+ return 33071;
51
40
  case 'repeat':
52
- return GL.REPEAT;
53
-
41
+ return 10497;
54
42
  case 'mirror-repeat':
55
- return GL.MIRRORED_REPEAT;
43
+ return 33648;
56
44
  }
57
45
  }
58
-
59
46
  function convertMaxFilterMode(maxFilter) {
60
47
  switch (maxFilter) {
61
48
  case 'nearest':
62
- return GL.NEAREST;
63
-
49
+ return 9728;
64
50
  case 'linear':
65
- return GL.LINEAR;
51
+ return 9729;
66
52
  }
67
53
  }
68
-
69
54
  function convertMinFilterMode(minFilter, mipmapFilter) {
70
55
  if (!mipmapFilter) {
71
56
  return convertMaxFilterMode(minFilter);
72
57
  }
73
-
74
58
  switch (minFilter) {
75
59
  case 'nearest':
76
- return mipmapFilter === 'nearest' ? GL.NEAREST_MIPMAP_NEAREST : GL.NEAREST_MIPMAP_LINEAR;
77
-
60
+ return mipmapFilter === 'nearest' ? 9984 : 9986;
78
61
  case 'linear':
79
- return mipmapFilter === 'nearest' ? GL.LINEAR_MIPMAP_NEAREST : GL.LINEAR_MIPMAP_LINEAR;
62
+ return mipmapFilter === 'nearest' ? 9985 : 9987;
80
63
  }
81
64
  }
82
-
83
65
  export function convertToSamplerParameters(params) {
84
66
  const props = {};
85
-
86
- if (params[GL.TEXTURE_WRAP_S]) {
87
- props.addressModeU = convertToAddressMode(params[GL.TEXTURE_WRAP_S]);
67
+ if (params[10242]) {
68
+ props.addressModeU = convertToAddressMode(params[10242]);
69
+ }
70
+ if (params[10243]) {
71
+ props.addressModeV = convertToAddressMode(params[10243]);
88
72
  }
89
-
90
- if (params[GL.TEXTURE_WRAP_T]) {
91
- props.addressModeV = convertToAddressMode(params[GL.TEXTURE_WRAP_T]);
73
+ if (params[32882]) {
74
+ props.addressModeW = convertToAddressMode(params[32882]);
92
75
  }
93
-
94
- if (params[GL.TEXTURE_WRAP_R]) {
95
- props.addressModeW = convertToAddressMode(params[GL.TEXTURE_WRAP_R]);
76
+ if (params[10240]) {
77
+ props.magFilter = convertToMaxFilterMode(params[10240]);
96
78
  }
97
-
98
- if (params[GL.TEXTURE_MAG_FILTER]) {
99
- props.magFilter = convertToMaxFilterMode(params[GL.TEXTURE_MAG_FILTER]);
79
+ if (params[10241]) {
80
+ props.minFilter = convertToMinFilterMode(params[10241]);
100
81
  }
101
-
102
- if (params[GL.TEXTURE_MIN_FILTER]) {
103
- props.minFilter = convertToMinFilterMode(params[GL.TEXTURE_MIN_FILTER]);
82
+ if (params[10241]) {
83
+ props.mipmapFilter = convertToMipmapFilterMode(params[10241]);
104
84
  }
105
-
106
- if (params[GL.TEXTURE_MIN_FILTER]) {
107
- props.mipmapFilter = convertToMipmapFilterMode(params[GL.TEXTURE_MIN_FILTER]);
85
+ if (params[33082]) {
86
+ props.lodMinClamp = params[33082];
108
87
  }
109
-
110
- if (params[GL.TEXTURE_MIN_LOD]) {
111
- props.lodMinClamp = params[GL.TEXTURE_MIN_LOD];
88
+ if (params[33083]) {
89
+ props.lodMaxClamp = params[33083];
112
90
  }
113
-
114
- if (params[GL.TEXTURE_MAX_LOD]) {
115
- props.lodMaxClamp = params[GL.TEXTURE_MAX_LOD];
91
+ if (params[34892]) {
92
+ props.type = params[34892] === 34894 ? 'comparison-sampler' : 'color-sampler';
116
93
  }
117
-
118
- if (params[GL.TEXTURE_COMPARE_MODE] === GL.COMPARE_REF_TO_TEXTURE) {
119
- props.compare = convertToCompareFunction('compare', params[GL.TEXTURE_COMPARE_FUNC]);
94
+ if (params[34893]) {
95
+ props.compare = convertToCompareFunction('compare', params[34893]);
120
96
  }
121
-
122
- if (params[GL.TEXTURE_MAX_ANISOTROPY_EXT]) {
123
- props.maxAnisotropy = params[GL.TEXTURE_MAX_ANISOTROPY_EXT];
97
+ if (params[34046]) {
98
+ props.maxAnisotropy = params[34046];
124
99
  }
125
-
126
100
  return props;
127
101
  }
128
-
129
102
  function convertToAddressMode(addressMode) {
130
103
  switch (addressMode) {
131
- case GL.CLAMP_TO_EDGE:
104
+ case 33071:
132
105
  return 'clamp-to-edge';
133
-
134
- case GL.REPEAT:
106
+ case 10497:
135
107
  return 'repeat';
136
-
137
- case GL.MIRRORED_REPEAT:
108
+ case 33648:
138
109
  return 'mirror-repeat';
110
+ default:
111
+ throw new Error('address');
139
112
  }
140
113
  }
141
-
142
114
  function convertToMaxFilterMode(filterMode) {
143
115
  switch (filterMode) {
144
- case GL.NEAREST:
116
+ case 9728:
145
117
  return 'nearest';
146
-
147
- case GL.LINEAR:
118
+ case 9729:
148
119
  return 'linear';
120
+ default:
121
+ throw new Error('maxfilter');
149
122
  }
150
123
  }
151
-
152
124
  function convertToMinFilterMode(filterMode) {
153
125
  switch (filterMode) {
154
- case GL.NEAREST:
126
+ case 9728:
155
127
  return 'nearest';
156
-
157
- case GL.LINEAR:
128
+ case 9729:
158
129
  return 'linear';
159
-
160
- case GL.NEAREST_MIPMAP_NEAREST:
130
+ case 9984:
161
131
  return 'nearest';
162
-
163
- case GL.LINEAR_MIPMAP_NEAREST:
132
+ case 9985:
164
133
  return 'linear';
165
-
166
- case GL.NEAREST_MIPMAP_LINEAR:
134
+ case 9986:
167
135
  return 'nearest';
168
-
169
- case GL.LINEAR_MIPMAP_LINEAR:
136
+ case 9987:
170
137
  return 'linear';
138
+ default:
139
+ throw new Error('minfilter');
171
140
  }
172
141
  }
173
-
174
142
  function convertToMipmapFilterMode(filterMode) {
175
143
  switch (filterMode) {
176
- case GL.NEAREST:
144
+ case 9728:
177
145
  return 'nearest';
178
-
179
- case GL.LINEAR:
146
+ case 9729:
180
147
  return 'linear';
181
-
182
- case GL.NEAREST_MIPMAP_NEAREST:
148
+ case 9984:
183
149
  return 'nearest';
184
-
185
- case GL.LINEAR_MIPMAP_NEAREST:
150
+ case 9985:
186
151
  return 'nearest';
187
-
188
- case GL.NEAREST_MIPMAP_LINEAR:
152
+ case 9986:
189
153
  return 'linear';
190
-
191
- case GL.LINEAR_MIPMAP_LINEAR:
154
+ case 9987:
192
155
  return 'linear';
156
+ default:
157
+ throw new Error('mipmap');
193
158
  }
194
159
  }
195
-
196
160
  export function updateSamplerParametersForNPOT(parameters) {
197
- const newParameters = { ...parameters
161
+ const newParameters = {
162
+ ...parameters
198
163
  };
199
-
200
- if (parameters[GL.TEXTURE_MIN_FILTER] !== GL.NEAREST) {
201
- newParameters[GL.TEXTURE_MIN_FILTER] = GL.LINEAR;
164
+ if (parameters[10241] !== 9728) {
165
+ newParameters[10241] = 9729;
202
166
  }
203
-
204
- newParameters[GL.TEXTURE_WRAP_S] = GL.CLAMP_TO_EDGE;
205
- newParameters[GL.TEXTURE_WRAP_T] = GL.CLAMP_TO_EDGE;
167
+ newParameters[10242] = 33071;
168
+ newParameters[10243] = 33071;
206
169
  return newParameters;
207
170
  }
208
171
  //# sourceMappingURL=sampler-parameters.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/adapter/converters/sampler-parameters.ts"],"names":["GL","convertCompareFunction","convertToCompareFunction","convertSamplerParametersToWebGL","props","params","addressModeU","TEXTURE_WRAP_S","convertAddressMode","addressModeV","TEXTURE_WRAP_T","addressModeW","TEXTURE_WRAP_R","magFilter","TEXTURE_MAG_FILTER","convertMaxFilterMode","minFilter","mipmapFilter","TEXTURE_MIN_FILTER","convertMinFilterMode","lodMinClamp","undefined","TEXTURE_MIN_LOD","lodMaxClamp","TEXTURE_MAX_LOD","compare","TEXTURE_COMPARE_MODE","COMPARE_REF_TO_TEXTURE","TEXTURE_COMPARE_FUNC","maxAnisotropy","TEXTURE_MAX_ANISOTROPY_EXT","addressMode","CLAMP_TO_EDGE","REPEAT","MIRRORED_REPEAT","maxFilter","NEAREST","LINEAR","NEAREST_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINEAR_MIPMAP_LINEAR","convertToSamplerParameters","convertToAddressMode","convertToMaxFilterMode","convertToMinFilterMode","convertToMipmapFilterMode","filterMode","updateSamplerParametersForNPOT","parameters","newParameters"],"mappings":"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","sourcesContent":["// SAMPLER FILTERS\nimport {SamplerParameters} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {WebGLSamplerParameters} from '../../types/webgl';\nimport {convertCompareFunction, convertToCompareFunction} from './device-parameters';\n\n/**\n * Convert WebGPU-style sampler props to WebGL\n * @param props\n * @returns\n */\nexport function convertSamplerParametersToWebGL(props: SamplerParameters): WebGLSamplerParameters {\n const params: Record<number, number> = {};\n if (props.addressModeU) {\n params[GL.TEXTURE_WRAP_S] = convertAddressMode(props.addressModeU);\n }\n if (props.addressModeV) {\n params[GL.TEXTURE_WRAP_T] = convertAddressMode(props.addressModeV);\n }\n if (props.addressModeW) {\n params[GL.TEXTURE_WRAP_R] = convertAddressMode(props.addressModeW);\n }\n if (props.magFilter) {\n params[GL.TEXTURE_MAG_FILTER] = convertMaxFilterMode(props.magFilter);\n }\n if (props.minFilter || props.mipmapFilter) {\n // TODO - arbitrary choice of linear?\n params[GL.TEXTURE_MIN_FILTER] = convertMinFilterMode(props.minFilter || 'linear', props.mipmapFilter);\n }\n if (props.lodMinClamp !== undefined) {\n params[GL.TEXTURE_MIN_LOD] = props.lodMinClamp;\n }\n if (props.lodMaxClamp !== undefined) {\n params[GL.TEXTURE_MAX_LOD] = props.lodMaxClamp;\n }\n if (props.compare) {\n // Setting prop.compare turns this into a comparison sampler\n params[GL.TEXTURE_COMPARE_MODE] = GL.COMPARE_REF_TO_TEXTURE;\n params[GL.TEXTURE_COMPARE_FUNC] = convertCompareFunction('compare', props.compare);\n }\n // Note depends on WebGL extension\n if (props.maxAnisotropy) {\n params[GL.TEXTURE_MAX_ANISOTROPY_EXT] = props.maxAnisotropy;\n }\n return params;\n}\n\n/** Convert address more */\nfunction convertAddressMode(addressMode: 'clamp-to-edge' | 'repeat' | 'mirror-repeat'): GL {\n switch (addressMode) {\n case 'clamp-to-edge': return GL.CLAMP_TO_EDGE;\n case 'repeat': return GL.REPEAT;\n case 'mirror-repeat': return GL.MIRRORED_REPEAT;\n }\n}\n\nfunction convertMaxFilterMode(maxFilter: 'nearest' | 'linear'): GL {\n switch (maxFilter) {\n case 'nearest': return GL.NEAREST;\n case 'linear': return GL.LINEAR;\n }\n}\n\n/** \n * WebGPU has separate min filter and mipmap filter, \n * WebGL is combined and effectively offers 6 options\n */\nfunction convertMinFilterMode(minFilter: 'nearest' | 'linear', mipmapFilter?: 'nearest' | 'linear'): GL {\n if (!mipmapFilter) {\n return convertMaxFilterMode(minFilter);\n }\n switch (minFilter) {\n case 'nearest': return mipmapFilter === 'nearest' ? GL.NEAREST_MIPMAP_NEAREST : GL.NEAREST_MIPMAP_LINEAR;\n case 'linear': return mipmapFilter === 'nearest' ? GL.LINEAR_MIPMAP_NEAREST : GL.LINEAR_MIPMAP_LINEAR;\n }\n}\n\n// Convert from WebGL to WebGPU\n\n/**\n * Convert WebGL-style sampler props to WebGPU\n * @param props\n * @returns\n */\n export function convertToSamplerParameters(params: WebGLSamplerParameters): SamplerParameters {\n const props: SamplerParameters = {};\n if (params[GL.TEXTURE_WRAP_S]) {\n props.addressModeU = convertToAddressMode(params[GL.TEXTURE_WRAP_S]);\n }\n if (params[GL.TEXTURE_WRAP_T]) {\n props.addressModeV = convertToAddressMode(params[GL.TEXTURE_WRAP_T]);\n }\n if (params[GL.TEXTURE_WRAP_R]) {\n props.addressModeW = convertToAddressMode(params[GL.TEXTURE_WRAP_R]);\n }\n if (params[GL.TEXTURE_MAG_FILTER]) {\n props.magFilter = convertToMaxFilterMode(params[GL.TEXTURE_MAG_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_FILTER]) {\n props.minFilter = convertToMinFilterMode(params[GL.TEXTURE_MIN_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_FILTER]) {\n props.mipmapFilter = convertToMipmapFilterMode(params[GL.TEXTURE_MIN_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_LOD]) {\n props.lodMinClamp = params[GL.TEXTURE_MIN_LOD];\n }\n if (params[GL.TEXTURE_MAX_LOD]) {\n props.lodMaxClamp = params[GL.TEXTURE_MAX_LOD];\n }\n if (params[GL.TEXTURE_COMPARE_MODE] === GL.COMPARE_REF_TO_TEXTURE) {\n props.compare = convertToCompareFunction('compare', params[GL.TEXTURE_COMPARE_FUNC]);\n }\n // NOTE depends on extension (very common)\n if (params[GL.TEXTURE_MAX_ANISOTROPY_EXT]) {\n props.maxAnisotropy = params[GL.TEXTURE_MAX_ANISOTROPY_EXT];\n }\n return props;\n}\n\n/** Convert address more */\nfunction convertToAddressMode(addressMode: number): 'clamp-to-edge' | 'repeat' | 'mirror-repeat' {\n switch (addressMode) {\n case GL.CLAMP_TO_EDGE: return 'clamp-to-edge';\n case GL.REPEAT: return 'repeat';\n case GL.MIRRORED_REPEAT: return 'mirror-repeat';\n }\n}\n\nfunction convertToMaxFilterMode(filterMode: number): 'nearest' | 'linear' {\n switch (filterMode) {\n case GL.NEAREST: return 'nearest';\n case GL.LINEAR: return 'linear';\n }\n}\n\n/** WebGPU has separate min filter and mipmap filter, WebGL is combined */\nfunction convertToMinFilterMode(filterMode: number): 'nearest' | 'linear' {\n switch (filterMode) {\n // TODO is this correct?\n case GL.NEAREST: return 'nearest';\n case GL.LINEAR: return 'linear';\n case GL.NEAREST_MIPMAP_NEAREST: return 'nearest';\n case GL.LINEAR_MIPMAP_NEAREST: return 'linear';\n case GL.NEAREST_MIPMAP_LINEAR: return 'nearest';\n case GL.LINEAR_MIPMAP_LINEAR: return 'linear';\n }\n}\n\nfunction convertToMipmapFilterMode(filterMode: number): 'nearest' | 'linear' {\n switch (filterMode) {\n // TODO is this correct?\n case GL.NEAREST: return 'nearest';\n case GL.LINEAR: return 'linear';\n case GL.NEAREST_MIPMAP_NEAREST: return 'nearest';\n case GL.LINEAR_MIPMAP_NEAREST: return 'nearest';\n case GL.NEAREST_MIPMAP_LINEAR: return 'linear';\n case GL.LINEAR_MIPMAP_LINEAR: return 'linear';\n }\n}\n\n/**\n * Override sampler settings that are not supported by Non-Power-of-Two textures in WebGL1.\n*/\nexport function updateSamplerParametersForNPOT(parameters: WebGLSamplerParameters): WebGLSamplerParameters {\n const newParameters = {...parameters};\n if (parameters[GL.TEXTURE_MIN_FILTER] !== GL.NEAREST) {\n // log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_MIN_FILTER to LINEAR`)();\n newParameters[GL.TEXTURE_MIN_FILTER] = GL.LINEAR;\n }\n // log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_WRAP_S to CLAMP_TO_EDGE`)();\n newParameters[GL.TEXTURE_WRAP_S] = GL.CLAMP_TO_EDGE;\n newParameters[GL.TEXTURE_WRAP_T] = GL.CLAMP_TO_EDGE;\n return newParameters;\n}\n"],"file":"sampler-parameters.js"}
1
+ {"version":3,"file":"sampler-parameters.js","names":["convertCompareFunction","convertToCompareFunction","convertSamplerParametersToWebGL","props","params","addressModeU","convertAddressMode","addressModeV","addressModeW","magFilter","convertMaxFilterMode","minFilter","mipmapFilter","convertMinFilterMode","lodMinClamp","undefined","lodMaxClamp","type","compare","maxAnisotropy","addressMode","maxFilter","convertToSamplerParameters","convertToAddressMode","convertToMaxFilterMode","convertToMinFilterMode","convertToMipmapFilterMode","Error","filterMode","updateSamplerParametersForNPOT","parameters","newParameters"],"sources":["../../../src/adapter/converters/sampler-parameters.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n// SAMPLER FILTERS\nimport {SamplerParameters} from '@luma.gl/core';\nimport {GL, GLSamplerParameters} from '@luma.gl/constants';\nimport {convertCompareFunction, convertToCompareFunction} from './device-parameters';\n\n/* eslint-disable consistent-return */\n\n/**\n * Convert WebGPU-style sampler props to WebGL\n * @param props\n * @returns\n */\nexport function convertSamplerParametersToWebGL(props: SamplerParameters): GLSamplerParameters {\n const params: Record<number, number> = {};\n if (props.addressModeU) {\n params[GL.TEXTURE_WRAP_S] = convertAddressMode(props.addressModeU);\n }\n if (props.addressModeV) {\n params[GL.TEXTURE_WRAP_T] = convertAddressMode(props.addressModeV);\n }\n if (props.addressModeW) {\n params[GL.TEXTURE_WRAP_R] = convertAddressMode(props.addressModeW);\n }\n if (props.magFilter) {\n params[GL.TEXTURE_MAG_FILTER] = convertMaxFilterMode(props.magFilter);\n }\n if (props.minFilter || props.mipmapFilter) {\n // TODO - arbitrary choice of linear?\n params[GL.TEXTURE_MIN_FILTER] = convertMinFilterMode(\n props.minFilter || 'linear',\n props.mipmapFilter\n );\n }\n if (props.lodMinClamp !== undefined) {\n params[GL.TEXTURE_MIN_LOD] = props.lodMinClamp;\n }\n if (props.lodMaxClamp !== undefined) {\n params[GL.TEXTURE_MAX_LOD] = props.lodMaxClamp;\n }\n if (props.type === 'comparison-sampler') {\n // Setting prop.compare turns this into a comparison sampler\n params[GL.TEXTURE_COMPARE_MODE] = GL.COMPARE_REF_TO_TEXTURE;\n }\n if (props.compare) {\n params[GL.TEXTURE_COMPARE_FUNC] = convertCompareFunction('compare', props.compare);\n }\n // Note depends on WebGL extension\n if (props.maxAnisotropy) {\n params[GL.TEXTURE_MAX_ANISOTROPY_EXT] = props.maxAnisotropy;\n }\n return params;\n}\n\n/** Convert address more */\nfunction convertAddressMode(addressMode: 'clamp-to-edge' | 'repeat' | 'mirror-repeat'): GL {\n switch (addressMode) {\n case 'clamp-to-edge':\n return GL.CLAMP_TO_EDGE;\n case 'repeat':\n return GL.REPEAT;\n case 'mirror-repeat':\n return GL.MIRRORED_REPEAT;\n }\n}\n\nfunction convertMaxFilterMode(maxFilter: 'nearest' | 'linear'): GL {\n switch (maxFilter) {\n case 'nearest':\n return GL.NEAREST;\n case 'linear':\n return GL.LINEAR;\n }\n}\n\n/**\n * WebGPU has separate min filter and mipmap filter,\n * WebGL is combined and effectively offers 6 options\n */\nfunction convertMinFilterMode(\n minFilter: 'nearest' | 'linear',\n mipmapFilter?: 'nearest' | 'linear'\n): GL {\n if (!mipmapFilter) {\n return convertMaxFilterMode(minFilter);\n }\n switch (minFilter) {\n case 'nearest':\n return mipmapFilter === 'nearest' ? GL.NEAREST_MIPMAP_NEAREST : GL.NEAREST_MIPMAP_LINEAR;\n case 'linear':\n return mipmapFilter === 'nearest' ? GL.LINEAR_MIPMAP_NEAREST : GL.LINEAR_MIPMAP_LINEAR;\n }\n}\n\n// Convert from WebGL to WebGPU\n\n/**\n * Convert WebGL-style sampler props to WebGPU\n * @param props\n * @returns\n */\nexport function convertToSamplerParameters(params: GLSamplerParameters): SamplerParameters {\n const props: SamplerParameters = {};\n if (params[GL.TEXTURE_WRAP_S]) {\n props.addressModeU = convertToAddressMode(params[GL.TEXTURE_WRAP_S]);\n }\n if (params[GL.TEXTURE_WRAP_T]) {\n props.addressModeV = convertToAddressMode(params[GL.TEXTURE_WRAP_T]);\n }\n if (params[GL.TEXTURE_WRAP_R]) {\n props.addressModeW = convertToAddressMode(params[GL.TEXTURE_WRAP_R]);\n }\n if (params[GL.TEXTURE_MAG_FILTER]) {\n props.magFilter = convertToMaxFilterMode(params[GL.TEXTURE_MAG_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_FILTER]) {\n props.minFilter = convertToMinFilterMode(params[GL.TEXTURE_MIN_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_FILTER]) {\n props.mipmapFilter = convertToMipmapFilterMode(params[GL.TEXTURE_MIN_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_LOD]) {\n props.lodMinClamp = params[GL.TEXTURE_MIN_LOD];\n }\n if (params[GL.TEXTURE_MAX_LOD]) {\n props.lodMaxClamp = params[GL.TEXTURE_MAX_LOD];\n }\n if (params[GL.TEXTURE_COMPARE_MODE]) {\n props.type =\n params[GL.TEXTURE_COMPARE_MODE] === GL.COMPARE_REF_TO_TEXTURE\n ? 'comparison-sampler'\n : 'color-sampler';\n }\n if (params[GL.TEXTURE_COMPARE_FUNC]) {\n props.compare = convertToCompareFunction('compare', params[GL.TEXTURE_COMPARE_FUNC]);\n }\n // NOTE depends on extension (very common)\n if (params[GL.TEXTURE_MAX_ANISOTROPY_EXT]) {\n props.maxAnisotropy = params[GL.TEXTURE_MAX_ANISOTROPY_EXT];\n }\n return props;\n}\n\n/** Convert address more */\nfunction convertToAddressMode(\n addressMode: GL.CLAMP_TO_EDGE | GL.REPEAT | GL.MIRRORED_REPEAT\n): 'clamp-to-edge' | 'repeat' | 'mirror-repeat' {\n switch (addressMode) {\n case GL.CLAMP_TO_EDGE:\n return 'clamp-to-edge';\n case GL.REPEAT:\n return 'repeat';\n case GL.MIRRORED_REPEAT:\n return 'mirror-repeat';\n default:\n throw new Error('address');\n }\n}\n\nfunction convertToMaxFilterMode(filterMode: GL.NEAREST | GL.LINEAR): 'nearest' | 'linear' {\n switch (filterMode) {\n case GL.NEAREST:\n return 'nearest';\n case GL.LINEAR:\n return 'linear';\n default:\n throw new Error('maxfilter');\n }\n}\n\ntype GLMinFilter =\n | GL.NEAREST\n | GL.LINEAR\n | GL.NEAREST_MIPMAP_NEAREST\n | GL.LINEAR_MIPMAP_NEAREST\n | GL.NEAREST_MIPMAP_LINEAR\n | GL.LINEAR_MIPMAP_LINEAR;\n\n/** WebGPU has separate min filter and mipmap filter, WebGL is combined */\nfunction convertToMinFilterMode(filterMode: GLMinFilter): 'nearest' | 'linear' {\n switch (filterMode) {\n // TODO is this correct?\n case GL.NEAREST:\n return 'nearest';\n case GL.LINEAR:\n return 'linear';\n case GL.NEAREST_MIPMAP_NEAREST:\n return 'nearest';\n case GL.LINEAR_MIPMAP_NEAREST:\n return 'linear';\n case GL.NEAREST_MIPMAP_LINEAR:\n return 'nearest';\n case GL.LINEAR_MIPMAP_LINEAR:\n return 'linear';\n default:\n throw new Error('minfilter');\n }\n}\n\nfunction convertToMipmapFilterMode(filterMode: GLMinFilter): 'nearest' | 'linear' {\n switch (filterMode) {\n // TODO is this correct?\n case GL.NEAREST:\n return 'nearest';\n case GL.LINEAR:\n return 'linear';\n case GL.NEAREST_MIPMAP_NEAREST:\n return 'nearest';\n case GL.LINEAR_MIPMAP_NEAREST:\n return 'nearest';\n case GL.NEAREST_MIPMAP_LINEAR:\n return 'linear';\n case GL.LINEAR_MIPMAP_LINEAR:\n return 'linear';\n default:\n throw new Error('mipmap');\n }\n}\n\n/**\n * Override sampler settings that are not supported by Non-Power-of-Two textures in WebGL1.\n */\nexport function updateSamplerParametersForNPOT(\n parameters: GLSamplerParameters\n): GLSamplerParameters {\n const newParameters = {...parameters};\n if (parameters[GL.TEXTURE_MIN_FILTER] !== GL.NEAREST) {\n // log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_MIN_FILTER to LINEAR`)();\n newParameters[GL.TEXTURE_MIN_FILTER] = GL.LINEAR;\n }\n // log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_WRAP_S to CLAMP_TO_EDGE`)();\n newParameters[GL.TEXTURE_WRAP_S] = GL.CLAMP_TO_EDGE;\n newParameters[GL.TEXTURE_WRAP_T] = GL.CLAMP_TO_EDGE;\n return newParameters;\n}\n"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { GL } from '@luma.gl/constants';
2
+ import { ShaderAttributeType, ShaderDataType } from '@luma.gl/core';
3
+ /** Get shader attribute type from GL constants */
4
+ export declare function getShaderAttributeTypeFromGL(type: GL, components: 1 | 2 | 3 | 4): ShaderAttributeType;
5
+ /** Get shader data type from GL constants */
6
+ export declare function getShaderDataTypeFromGL(type: GL): ShaderDataType;
7
+ /** GetGL constant from shader data type */
8
+ export declare function getGLFromShaderDataType(type: ShaderDataType): GL.INT | GL.UNSIGNED_INT | GL.FLOAT | GL.HALF_FLOAT;
9
+ //# sourceMappingURL=shader-formats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader-formats.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/shader-formats.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAC,mBAAmB,EAAE,cAAc,EAAC,MAAM,eAAe,CAAC;AAElE,kDAAkD;AAClD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,mBAAmB,CASrG;AAED,6CAA6C;AAC7C,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,EAAE,GAAG,cAAc,CAYhE;AAED,2CAA2C;AAC3C,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,cAAc,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,UAAU,CASjH"}
@@ -0,0 +1,52 @@
1
+ export function getShaderAttributeTypeFromGL(type, components) {
2
+ const dataType = getShaderDataTypeFromGL(type);
3
+ switch (components) {
4
+ case 1:
5
+ return dataType;
6
+ case 2:
7
+ return `vec2<${dataType}>`;
8
+ case 3:
9
+ return `vec2<${dataType}>`;
10
+ case 4:
11
+ return `vec2<${dataType}>`;
12
+ default:
13
+ throw new Error(String(components));
14
+ }
15
+ }
16
+ export function getShaderDataTypeFromGL(type) {
17
+ switch (type) {
18
+ case 5124:
19
+ return 'i32';
20
+ case 5125:
21
+ return 'u32';
22
+ case 5122:
23
+ return 'i32';
24
+ case 5123:
25
+ return 'u32';
26
+ case 5120:
27
+ return 'i32';
28
+ case 5121:
29
+ return 'u32';
30
+ case 5126:
31
+ return 'f32';
32
+ case 5131:
33
+ return 'f16';
34
+ default:
35
+ throw new Error(String(type));
36
+ }
37
+ }
38
+ export function getGLFromShaderDataType(type) {
39
+ switch (type) {
40
+ case 'i32':
41
+ return 5124;
42
+ case 'u32':
43
+ return 5125;
44
+ case 'f32':
45
+ return 5126;
46
+ case 'f16':
47
+ return 5131;
48
+ default:
49
+ throw new Error(String(type));
50
+ }
51
+ }
52
+ //# sourceMappingURL=shader-formats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader-formats.js","names":["getShaderAttributeTypeFromGL","type","components","dataType","getShaderDataTypeFromGL","Error","String","getGLFromShaderDataType"],"sources":["../../../src/adapter/converters/shader-formats.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport {GL} from '@luma.gl/constants';\nimport {ShaderAttributeType, ShaderDataType} from '@luma.gl/core';\n\n/** Get shader attribute type from GL constants */\nexport function getShaderAttributeTypeFromGL(type: GL, components: 1 | 2 | 3 | 4): ShaderAttributeType {\n const dataType = getShaderDataTypeFromGL(type);\n switch (components) {\n case 1: return dataType;\n case 2: return `vec2<${dataType}>`;\n case 3: return `vec2<${dataType}>`;\n case 4: return `vec2<${dataType}>`;\n default: throw new Error(String(components));\n }\n}\n\n/** Get shader data type from GL constants */\nexport function getShaderDataTypeFromGL(type: GL): ShaderDataType {\n switch (type) {\n case GL.INT: return 'i32';\n case GL.UNSIGNED_INT: return 'u32';\n case GL.SHORT: return 'i32';\n case GL.UNSIGNED_SHORT: return 'u32';\n case GL.BYTE: return 'i32';\n case GL.UNSIGNED_BYTE: return 'u32';\n case GL.FLOAT: return 'f32';\n case GL.HALF_FLOAT: return 'f16';\n default: throw new Error(String(type));\n }\n}\n\n/** GetGL constant from shader data type */\nexport function getGLFromShaderDataType(type: ShaderDataType): GL.INT | GL.UNSIGNED_INT | GL.FLOAT | GL.HALF_FLOAT {\n switch (type) {\n // TODO\n case 'i32': return GL.INT;\n case 'u32': return GL.UNSIGNED_INT;\n case 'f32': return GL.FLOAT;\n case 'f16': return GL.HALF_FLOAT;\n default: throw new Error(String(type));\n }\n}\n"],"mappings":"AAOA,OAAO,SAASA,4BAA4BA,CAACC,IAAQ,EAAEC,UAAyB,EAAuB;EACrG,MAAMC,QAAQ,GAAGC,uBAAuB,CAACH,IAAI,CAAC;EAC9C,QAAQC,UAAU;IAChB,KAAK,CAAC;MAAE,OAAOC,QAAQ;IACvB,KAAK,CAAC;MAAE,OAAQ,QAAOA,QAAS,GAAE;IAClC,KAAK,CAAC;MAAE,OAAQ,QAAOA,QAAS,GAAE;IAClC,KAAK,CAAC;MAAE,OAAQ,QAAOA,QAAS,GAAE;IAClC;MAAS,MAAM,IAAIE,KAAK,CAACC,MAAM,CAACJ,UAAU,CAAC,CAAC;EAC9C;AACF;AAGA,OAAO,SAASE,uBAAuBA,CAACH,IAAQ,EAAkB;EAChE,QAAQA,IAAI;IACV;MAAa,OAAO,KAAK;IACzB;MAAsB,OAAO,KAAK;IAClC;MAAe,OAAO,KAAK;IAC3B;MAAwB,OAAO,KAAK;IACpC;MAAc,OAAO,KAAK;IAC1B;MAAuB,OAAO,KAAK;IACnC;MAAe,OAAO,KAAK;IAC3B;MAAoB,OAAO,KAAK;IAChC;MAAS,MAAM,IAAII,KAAK,CAACC,MAAM,CAACL,IAAI,CAAC,CAAC;EACxC;AACF;AAGA,OAAO,SAASM,uBAAuBA,CAACN,IAAoB,EAAuD;EACjH,QAAQA,IAAI;IAEV,KAAK,KAAK;MAAE;IACZ,KAAK,KAAK;MAAE;IACZ,KAAK,KAAK;MAAE;IACZ,KAAK,KAAK;MAAE;IACZ;MAAS,MAAM,IAAII,KAAK,CAACC,MAAM,CAACL,IAAI,CAAC,CAAC;EACxC;AACF"}
@@ -1,63 +1,57 @@
1
- import type { TextureFormat, DeviceFeature } from '@luma.gl/api';
2
- import GL from '@luma.gl/constants';
1
+ import type { TextureFormat, DeviceFeature } from '@luma.gl/core';
2
+ import { GL } from '@luma.gl/constants';
3
3
  export declare function checkTextureFeature(gl: WebGLRenderingContext, feature: DeviceFeature): boolean;
4
4
  /** Return a list of texture feature strings (for Device.features). Mainly compressed texture support */
5
5
  export declare function getTextureFeatures(gl: WebGLRenderingContext): DeviceFeature[];
6
6
  /** Map a format to webgl and constants */
7
- declare type Format = {
7
+ type Format = {
8
8
  gl?: GL;
9
9
  /** If a different unsized format is needed in WebGL1 */
10
10
  gl1?: GL;
11
11
  gl1ext?: string;
12
+ /** format requires WebGL2, when using a WebGL 1 context, color renderbuffer formats are limited */
12
13
  gl2ext?: string;
14
+ /** (bytes per pixel), for memory usage calculations. */
13
15
  b?: number;
14
16
  /** channels */
15
17
  c?: number;
16
18
  bpp?: number;
17
19
  /** packed */
18
20
  p?: number;
21
+ /** compressed */
19
22
  x?: string;
23
+ /** for compressed texture formats */
20
24
  f?: DeviceFeature;
25
+ /** renderable if feature is present */
21
26
  render?: DeviceFeature;
27
+ /** filterable if feature is present */
22
28
  filter?: DeviceFeature;
29
+ /** If not supported on WebGPU */
23
30
  wgpu?: false;
24
31
  types?: number[];
25
32
  dataFormat?: GL;
33
+ /** Depth and stencil format attachment points. If set, needs to be a Renderbuffer unless depthTexture is set */
26
34
  attachment?: GL.DEPTH_ATTACHMENT | GL.STENCIL_ATTACHMENT | GL.DEPTH_STENCIL_ATTACHMENT;
35
+ /** if depthTexture is set this is a depth/stencil format that can be set to a texture */
36
+ depthTexture?: boolean;
37
+ renderbuffer?: boolean;
27
38
  };
28
- /** Legal combinations for internalFormat, format and type *
29
- // [GL.DEPTH_COMPONENT]: {types: [GL.UNSIGNED_SHORT, GL.UNSIGNED_INT, GL.UNSIGNED_INT_24_8], gl1ext: DEPTH},
30
- // [GL.DEPTH_STENCIL]: {gl1ext: DEPTH},
31
- // Sized texture format
32
- // R
33
- [GL.R8]: {dataFormat: GL.RED, types: [GL.UNSIGNED_BYTE], gl2: true},
34
- [GL.R16F]: {dataFormat: GL.RED, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true},
35
- [GL.R8UI]: {dataFormat: GL.RED_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},
36
- // // RG
37
- [GL.RG8]: {dataFormat: GL.RG, types: [GL.UNSIGNED_BYTE], gl2: true},
38
- [GL.RG16F]: {dataFormat: GL.RG, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true},
39
- [GL.RG8UI]: {dataFormat: GL.RG_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},
40
- // // RGB
41
- [GL.RGB8]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE], gl2: true},
42
- [GL.SRGB8]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE], gl2: true, gl1ext: EXT_SRGB},
43
- [GL.RGB16F]: {dataFormat: GL.RGB, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true, gl1ext: EXT_HALF_FLOAT_WEBGL1},
44
- [GL.RGB8UI]: {dataFormat: GL.RGB_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},
45
- // // RGBA
46
-
47
- [GL.RGB565]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_6_5], gl2: true},
48
- [GL.R11F_G11F_B10F]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_INT_10F_11F_11F_REV, GL.HALF_FLOAT, GL.FLOAT], gl2: true},
49
- [GL.RGB9_E5]: {dataFormat: GL.RGB, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true, gl1ext: EXT_HALF_FLOAT_WEBGL1},
50
- [GL.RGBA8]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE], gl2: true},
51
- [GL.SRGB8_ALPHA8]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE], gl2: true, gl1ext: EXT_SRGB},
52
- [GL.RGB5_A1]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_5_5_1], gl2: true},
53
- [GL.RGBA4]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_4_4_4_4], gl2: true},
54
- [GL.RGBA16F]: {dataFormat: GL.RGBA, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true, gl1ext: EXT_HALF_FLOAT_WEBGL1},
55
- [GL.RGBA8UI]: {dataFormat: GL.RGBA_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true}
56
- */
57
- /** Texture format data */
39
+ /**
40
+ * Texture format data -
41
+ * Exported but can change without notice
42
+ */
58
43
  export declare const TEXTURE_FORMATS: Record<TextureFormat, Format>;
59
44
  /** Checks if a texture format is supported */
60
45
  export declare function isTextureFormatSupported(gl: WebGLRenderingContext, formatOrGL: TextureFormat | GL): boolean;
46
+ export declare function isRenderbufferFormatSupported(gl: WebGLRenderingContext, format: TextureFormat): boolean;
47
+ /**
48
+ * Map WebGL texture formats (GL constants) to WebGPU-style TextureFormat strings
49
+ */
50
+ export declare function convertGLToTextureFormat(format: GL | TextureFormat): TextureFormat;
51
+ /**
52
+ * Map WebGPU style texture format strings to GL constants
53
+ */
54
+ export declare function convertTextureFormatToGL(format: TextureFormat, isWebGL2: boolean): GL | undefined;
61
55
  /** Checks if a texture format is supported */
62
56
  export declare function getTextureFormatSupport(gl: WebGLRenderingContext, formatOrGL: TextureFormat | GL): {
63
57
  supported: boolean;
@@ -69,25 +63,19 @@ export declare function getTextureFormatSupport(gl: WebGLRenderingContext, forma
69
63
  /** Checks whether linear filtering (interpolated sampling) is available for floating point textures */
70
64
  export declare function isTextureFormatFilterable(gl: WebGLRenderingContext, formatOrGL: TextureFormat | GL): boolean;
71
65
  export declare function isTextureFormatRenderable(gl: WebGLRenderingContext, formatOrGL: TextureFormat | GL): boolean;
72
- /**
73
- * Converts WebGPU string style texture formats to GL constants
74
- * Pass through GL constants
75
- */
76
- export declare function getWebGLTextureFormat(gl: WebGLRenderingContext, formatOrGL: TextureFormat | GL): GL | undefined;
77
- export declare function getWebGLTextureParameters(gl: WebGLRenderingContext, formatOrGL: TextureFormat | GL): {
66
+ export declare function getWebGLTextureParameters(formatOrGL: TextureFormat | GL, isWebGL2: boolean): {
78
67
  format: GL;
79
68
  dataFormat: GL;
80
- type: GL;
69
+ type: GL.BYTE | GL.UNSIGNED_BYTE | GL.SHORT | GL.UNSIGNED_SHORT | GL.INT | GL.UNSIGNED_INT | GL.FLOAT | GL.HALF_FLOAT;
81
70
  compressed: any;
82
71
  };
83
- export declare function getWebGLDepthStencilAttachment(formatOrGL: TextureFormat | GL): GL.DEPTH_ATTACHMENT | GL.STENCIL_ATTACHMENT | GL.DEPTH_STENCIL_ATTACHMENT;
72
+ export declare function getDepthStencilAttachmentWebGL(format: TextureFormat): GL.DEPTH_ATTACHMENT | GL.STENCIL_ATTACHMENT | GL.DEPTH_STENCIL_ATTACHMENT;
84
73
  /**
85
74
  * function to test if Float 32 bit format texture can be bound as color attachment
86
75
  * @todo Generalize to check arbitrary formats?
87
76
  */
88
- export declare function _checkFloat32ColorAttachment(gl: WebGLRenderingContext, internalFormat?: number, srcFormat?: GL, srcType?: GL): boolean;
77
+ export declare function _checkFloat32ColorAttachment(gl: WebGLRenderingContext, internalFormat?: 6408, srcFormat?: GL, srcType?: GL): boolean;
89
78
  /** TODO - VERY roundabout legacy way of calculating bytes per pixel */
90
- export declare function getTextureFormatBytesPerPixel(gl: WebGLRenderingContext, formatOrGL: TextureFormat | GL): number;
91
- export declare function getWebGLDataType(dataType: string): GL;
79
+ export declare function getTextureFormatBytesPerPixel(formatOrGL: TextureFormat | GL, isWebGL2: boolean): number;
92
80
  export {};
93
81
  //# sourceMappingURL=texture-formats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"texture-formats.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/texture-formats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"texture-formats.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/texture-formats.ts"],"names":[],"mappings":"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"}