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

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 (527) 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-layout.d.ts +1 -48
  42. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  43. package/dist/adapter/helpers/get-shader-layout.js +87 -143
  44. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  45. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  46. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  47. package/dist/adapter/helpers/parse-shader-compiler-log.js +16 -11
  48. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  49. package/dist/adapter/helpers/set-uniform.d.ts +3 -2
  50. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  51. package/dist/adapter/helpers/set-uniform.js +51 -82
  52. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  53. package/dist/adapter/helpers/webgl-topology-utils.d.ts +16 -0
  54. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
  55. package/dist/adapter/helpers/webgl-topology-utils.js +103 -0
  56. package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
  57. package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
  58. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  59. package/dist/adapter/objects/constants-to-keys.js +2 -29
  60. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  61. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  62. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  63. package/dist/adapter/objects/webgl-renderbuffer.js +36 -44
  64. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  65. package/dist/adapter/objects/webgl-resource.d.ts +6 -9
  66. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  67. package/dist/adapter/objects/webgl-resource.js +26 -83
  68. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  69. package/dist/adapter/resources/webgl-buffer.d.ts +19 -11
  70. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  71. package/dist/adapter/resources/webgl-buffer.js +60 -88
  72. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  73. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  74. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  75. package/dist/adapter/resources/webgl-command-buffer.js +175 -48
  76. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  77. package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
  78. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  79. package/dist/adapter/resources/webgl-command-encoder.js +10 -20
  80. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  81. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  82. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -24
  83. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  84. package/dist/adapter/resources/webgl-framebuffer.js +63 -173
  85. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  86. package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
  87. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  88. package/dist/adapter/resources/webgl-render-pass.js +99 -11
  89. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  90. package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -21
  91. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  92. package/dist/adapter/resources/webgl-render-pipeline.js +108 -270
  93. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  94. package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
  95. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  96. package/dist/adapter/resources/webgl-sampler.js +11 -21
  97. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  98. package/dist/adapter/resources/webgl-shader.d.ts +5 -5
  99. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  100. package/dist/adapter/resources/webgl-shader.js +18 -43
  101. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  102. package/dist/adapter/resources/webgl-texture.d.ts +62 -42
  103. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  104. package/dist/adapter/resources/webgl-texture.js +137 -256
  105. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  106. package/dist/adapter/resources/webgl-transform-feedback.d.ts +47 -0
  107. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -0
  108. package/dist/adapter/resources/webgl-transform-feedback.js +164 -0
  109. package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -0
  110. package/dist/adapter/resources/webgl-vertex-array.d.ts +67 -0
  111. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -0
  112. package/dist/adapter/resources/webgl-vertex-array.js +167 -0
  113. package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
  114. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  115. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  116. package/dist/adapter/webgl-canvas-context.js +10 -23
  117. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  118. package/dist/adapter/webgl-device.d.ts +76 -41
  119. package/dist/adapter/webgl-device.d.ts.map +1 -1
  120. package/dist/adapter/webgl-device.js +219 -129
  121. package/dist/adapter/webgl-device.js.map +1 -1
  122. package/dist/classic/accessor.d.ts +3 -3
  123. package/dist/classic/accessor.d.ts.map +1 -1
  124. package/dist/classic/accessor.js +26 -52
  125. package/dist/classic/accessor.js.map +1 -1
  126. package/dist/classic/clear.d.ts +22 -0
  127. package/dist/classic/clear.d.ts.map +1 -0
  128. package/dist/classic/clear.js +88 -0
  129. package/dist/classic/clear.js.map +1 -0
  130. package/dist/classic/copy-and-blit.d.ts +62 -0
  131. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  132. package/dist/classic/copy-and-blit.js +191 -0
  133. package/dist/classic/copy-and-blit.js.map +1 -0
  134. package/dist/classic/format-utils.d.ts +3 -0
  135. package/dist/classic/format-utils.d.ts.map +1 -0
  136. package/dist/classic/format-utils.js +37 -0
  137. package/dist/classic/format-utils.js.map +1 -0
  138. package/dist/classic/typed-array-utils.d.ts +17 -17
  139. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  140. package/dist/classic/typed-array-utils.js +18 -39
  141. package/dist/classic/typed-array-utils.js.map +1 -1
  142. package/dist/context/context/create-browser-context.d.ts +40 -0
  143. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  144. package/dist/context/context/create-browser-context.js +53 -0
  145. package/dist/context/context/create-browser-context.js.map +1 -0
  146. package/dist/context/context/create-headless-context.d.ts +9 -0
  147. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  148. package/dist/context/context/create-headless-context.js +42 -0
  149. package/dist/context/context/create-headless-context.js.map +1 -0
  150. package/dist/context/context/webgl-checks.d.ts.map +1 -1
  151. package/dist/context/context/webgl-checks.js +1 -4
  152. package/dist/context/context/webgl-checks.js.map +1 -1
  153. package/dist/context/debug/spector.d.ts +1 -2
  154. package/dist/context/debug/spector.d.ts.map +1 -1
  155. package/dist/context/debug/spector.js +8 -20
  156. package/dist/context/debug/spector.js.map +1 -1
  157. package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
  158. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  159. package/dist/context/debug/webgl-developer-tools.js +15 -39
  160. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  161. package/dist/context/parameters/unified-parameter-api.d.ts +9 -8
  162. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  163. package/dist/context/parameters/unified-parameter-api.js +9 -19
  164. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  165. package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
  166. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  167. package/dist/context/parameters/webgl-parameter-tables.js +267 -286
  168. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  169. package/dist/context/polyfill/context-data.d.ts +13 -0
  170. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  171. package/dist/context/polyfill/context-data.js +12 -0
  172. package/dist/context/polyfill/context-data.js.map +1 -0
  173. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  174. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  175. package/dist/context/polyfill/get-parameter-polyfill.js +37 -43
  176. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  177. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -1
  178. package/dist/context/polyfill/polyfill-context.js +22 -30
  179. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  180. package/dist/context/polyfill/polyfill-table.d.ts +8 -8
  181. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  182. package/dist/context/polyfill/polyfill-table.js +18 -41
  183. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  184. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  185. package/dist/context/polyfill/polyfill-vertex-array-object.js +17 -87
  186. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  187. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  188. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  189. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  190. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  191. package/dist/context/state-tracker/track-context-state.js +26 -62
  192. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  193. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  194. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  195. package/dist/context/state-tracker/with-parameters.js +8 -10
  196. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  197. package/dist/dist.dev.js +8624 -0
  198. package/dist/index.cjs +6570 -0
  199. package/dist/index.d.ts +26 -24
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +27 -26
  202. package/dist/index.js.map +1 -1
  203. package/dist/types.d.ts +3 -1
  204. package/dist/types.d.ts.map +1 -1
  205. package/dist/types.js.map +1 -1
  206. package/dist.min.js +52 -0
  207. package/package.json +21 -9
  208. package/src/adapter/converters/device-parameters.ts +144 -41
  209. package/src/adapter/converters/sampler-parameters.ts +103 -41
  210. package/src/adapter/converters/shader-formats.ts +44 -0
  211. package/src/adapter/converters/texture-formats.ts +268 -195
  212. package/src/adapter/converters/vertex-formats.ts +71 -10
  213. package/src/adapter/device-helpers/device-features.ts +14 -3
  214. package/src/adapter/device-helpers/device-limits.ts +5 -3
  215. package/src/adapter/device-helpers/get-device-info.ts +53 -18
  216. package/src/adapter/device-helpers/is-old-ie.ts +3 -0
  217. package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +39 -21
  218. package/src/adapter/helpers/get-shader-layout.ts +121 -146
  219. package/src/adapter/helpers/parse-shader-compiler-log.ts +24 -8
  220. package/src/adapter/helpers/set-uniform.ts +39 -35
  221. package/src/adapter/helpers/webgl-topology-utils.ts +103 -0
  222. package/src/adapter/objects/constants-to-keys.ts +6 -25
  223. package/src/adapter/objects/webgl-renderbuffer.ts +43 -37
  224. package/src/adapter/objects/webgl-resource.ts +16 -23
  225. package/src/adapter/resources/.webgl-render-pipeline.ts.swp +0 -0
  226. package/src/adapter/resources/webgl-buffer.ts +67 -62
  227. package/src/adapter/resources/webgl-command-buffer.ts +327 -25
  228. package/src/adapter/resources/webgl-command-encoder.ts +20 -12
  229. package/src/adapter/resources/webgl-external-texture.ts +5 -2
  230. package/src/adapter/resources/webgl-framebuffer.ts +90 -134
  231. package/src/adapter/resources/webgl-render-pass.ts +166 -4
  232. package/src/adapter/resources/webgl-render-pipeline.ts +256 -192
  233. package/src/adapter/resources/webgl-sampler.ts +16 -10
  234. package/src/adapter/resources/webgl-shader.ts +33 -27
  235. package/src/adapter/resources/webgl-texture.ts +138 -99
  236. package/src/adapter/resources/webgl-transform-feedback.ts +202 -0
  237. package/src/adapter/resources/webgl-vertex-array.ts +283 -0
  238. package/src/adapter/webgl-canvas-context.ts +16 -14
  239. package/src/adapter/webgl-device.ts +328 -79
  240. package/src/classic/accessor.ts +8 -18
  241. package/src/classic/clear.ts +113 -0
  242. package/src/classic/copy-and-blit.ts +311 -0
  243. package/src/classic/format-utils.ts +46 -0
  244. package/src/classic/typed-array-utils.ts +21 -27
  245. package/src/context/context/create-browser-context.ts +140 -0
  246. package/src/context/context/create-headless-context.ts +51 -0
  247. package/src/context/context/webgl-checks.ts +3 -1
  248. package/src/context/debug/spector.ts +9 -6
  249. package/src/context/debug/webgl-developer-tools.ts +23 -15
  250. package/src/context/parameters/unified-parameter-api.ts +23 -14
  251. package/src/context/parameters/webgl-parameter-tables.ts +120 -98
  252. package/src/context/polyfill/context-data.ts +30 -0
  253. package/src/context/polyfill/get-parameter-polyfill.ts +11 -7
  254. package/src/context/polyfill/polyfill-context.ts +10 -9
  255. package/src/context/polyfill/polyfill-table.ts +21 -16
  256. package/src/context/polyfill/polyfill-vertex-array-object.ts +5 -0
  257. package/src/context/state-tracker/deep-array-equal.ts +2 -0
  258. package/src/context/state-tracker/track-context-state.ts +14 -11
  259. package/src/context/state-tracker/with-parameters.ts +13 -4
  260. package/src/index.ts +70 -35
  261. package/src/types.ts +5 -0
  262. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  263. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  264. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  265. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  266. package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
  267. package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
  268. package/dist/adapter/helpers/attribute-utils.js +0 -81
  269. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  270. package/dist/adapter/helpers/uniforms.d.ts +0 -26
  271. package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
  272. package/dist/adapter/helpers/uniforms.js +0 -99
  273. package/dist/adapter/helpers/uniforms.js.map +0 -1
  274. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
  275. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
  276. package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
  277. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  278. package/dist/bundle.d.ts +0 -2
  279. package/dist/bundle.d.ts.map +0 -1
  280. package/dist/bundle.js +0 -5
  281. package/dist/bundle.js.map +0 -1
  282. package/dist/classic/buffer.d.ts +0 -95
  283. package/dist/classic/buffer.d.ts.map +0 -1
  284. package/dist/classic/buffer.js +0 -384
  285. package/dist/classic/buffer.js.map +0 -1
  286. package/dist/context/context/context-state.d.ts +0 -18
  287. package/dist/context/context/context-state.d.ts.map +0 -1
  288. package/dist/context/context/context-state.js +0 -26
  289. package/dist/context/context/context-state.js.map +0 -1
  290. package/dist/context/context/create-context.d.ts +0 -41
  291. package/dist/context/context/create-context.d.ts.map +0 -1
  292. package/dist/context/context/create-context.js +0 -49
  293. package/dist/context/context/create-context.js.map +0 -1
  294. package/dist/context/context/device-pixels.d.ts +0 -25
  295. package/dist/context/context/device-pixels.d.ts.map +0 -1
  296. package/dist/context/context/device-pixels.js +0 -98
  297. package/dist/context/context/device-pixels.js.map +0 -1
  298. package/dist/es5/adapter/converters/device-parameters.js +0 -170
  299. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  300. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  301. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  302. package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
  303. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  304. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  305. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  306. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  307. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  308. package/dist/es5/adapter/device-helpers/device-features.js +0 -144
  309. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  310. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  311. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  312. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  313. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  314. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  315. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  316. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  317. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  318. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
  319. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  320. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  321. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  322. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  323. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  324. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  325. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  326. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  327. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  328. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  329. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  330. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  331. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  332. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  333. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  334. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  335. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  336. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  337. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  338. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  339. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  340. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  341. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  342. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
  343. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  344. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
  345. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  346. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
  347. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  348. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  349. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  350. package/dist/es5/adapter/resources/webgl-shader.js +0 -149
  351. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  352. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  353. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  354. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  355. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  356. package/dist/es5/adapter/webgl-device.js +0 -399
  357. package/dist/es5/adapter/webgl-device.js.map +0 -1
  358. package/dist/es5/bundle.js +0 -7
  359. package/dist/es5/bundle.js.map +0 -1
  360. package/dist/es5/classic/accessor.js +0 -181
  361. package/dist/es5/classic/accessor.js.map +0 -1
  362. package/dist/es5/classic/buffer.js +0 -470
  363. package/dist/es5/classic/buffer.js.map +0 -1
  364. package/dist/es5/classic/typed-array-utils.js +0 -126
  365. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  366. package/dist/es5/context/context/context-state.js +0 -31
  367. package/dist/es5/context/context/context-state.js.map +0 -1
  368. package/dist/es5/context/context/create-context.js +0 -69
  369. package/dist/es5/context/context/create-context.js.map +0 -1
  370. package/dist/es5/context/context/device-pixels.js +0 -115
  371. package/dist/es5/context/context/device-pixels.js.map +0 -1
  372. package/dist/es5/context/context/webgl-checks.js +0 -54
  373. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  374. package/dist/es5/context/debug/spector.js +0 -133
  375. package/dist/es5/context/debug/spector.js.map +0 -1
  376. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  377. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  378. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  379. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  380. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  381. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  382. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  383. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  384. package/dist/es5/context/polyfill/polyfill-context.js +0 -135
  385. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  386. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  387. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  388. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  389. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  390. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  391. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  392. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  393. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  394. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  395. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  396. package/dist/es5/index.js +0 -276
  397. package/dist/es5/index.js.map +0 -1
  398. package/dist/es5/init.js +0 -10
  399. package/dist/es5/init.js.map +0 -1
  400. package/dist/es5/types/webgl.js +0 -6
  401. package/dist/es5/types/webgl.js.map +0 -1
  402. package/dist/es5/types.js +0 -2
  403. package/dist/es5/types.js.map +0 -1
  404. package/dist/esm/adapter/converters/device-parameters.js +0 -155
  405. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  406. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  407. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  408. package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
  409. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  410. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  411. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  412. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  413. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  414. package/dist/esm/adapter/device-helpers/device-features.js +0 -102
  415. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  416. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  417. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  418. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  419. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  420. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  421. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  422. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  423. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  424. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
  425. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  426. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  427. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  428. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  429. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  430. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  431. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  432. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  433. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  434. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  435. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  436. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  437. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  438. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  439. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  440. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  441. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  442. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  443. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  444. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  445. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  446. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  447. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  448. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
  449. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  450. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
  451. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  452. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  453. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  454. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  455. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  456. package/dist/esm/adapter/resources/webgl-shader.js +0 -75
  457. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  458. package/dist/esm/adapter/resources/webgl-texture.js +0 -833
  459. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  460. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  461. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  462. package/dist/esm/adapter/webgl-device.js +0 -280
  463. package/dist/esm/adapter/webgl-device.js.map +0 -1
  464. package/dist/esm/bundle.js +0 -5
  465. package/dist/esm/bundle.js.map +0 -1
  466. package/dist/esm/classic/accessor.js +0 -144
  467. package/dist/esm/classic/accessor.js.map +0 -1
  468. package/dist/esm/classic/buffer.js +0 -384
  469. package/dist/esm/classic/buffer.js.map +0 -1
  470. package/dist/esm/classic/typed-array-utils.js +0 -112
  471. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  472. package/dist/esm/context/context/context-state.js +0 -26
  473. package/dist/esm/context/context/context-state.js.map +0 -1
  474. package/dist/esm/context/context/create-context.js +0 -49
  475. package/dist/esm/context/context/create-context.js.map +0 -1
  476. package/dist/esm/context/context/device-pixels.js +0 -98
  477. package/dist/esm/context/context/device-pixels.js.map +0 -1
  478. package/dist/esm/context/context/webgl-checks.js +0 -34
  479. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  480. package/dist/esm/context/debug/spector.js +0 -76
  481. package/dist/esm/context/debug/spector.js.map +0 -1
  482. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  483. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  484. package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
  485. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  486. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  487. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  488. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  489. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  490. package/dist/esm/context/polyfill/polyfill-context.js +0 -92
  491. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  492. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  493. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  494. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  495. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  496. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  497. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  498. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  499. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  500. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  501. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  502. package/dist/esm/index.js +0 -27
  503. package/dist/esm/index.js.map +0 -1
  504. package/dist/esm/init.js +0 -4
  505. package/dist/esm/init.js.map +0 -1
  506. package/dist/esm/types/webgl.js +0 -2
  507. package/dist/esm/types/webgl.js.map +0 -1
  508. package/dist/esm/types.js +0 -2
  509. package/dist/esm/types.js.map +0 -1
  510. package/dist/init.d.ts +0 -2
  511. package/dist/init.d.ts.map +0 -1
  512. package/dist/init.js +0 -4
  513. package/dist/init.js.map +0 -1
  514. package/dist/types/webgl.d.ts +0 -145
  515. package/dist/types/webgl.d.ts.map +0 -1
  516. package/dist/types/webgl.js +0 -2
  517. package/dist/types/webgl.js.map +0 -1
  518. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  519. package/src/adapter/helpers/attribute-utils.ts +0 -61
  520. package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
  521. package/src/bundle.ts +0 -4
  522. package/src/classic/buffer.ts +0 -474
  523. package/src/context/context/context-state.ts +0 -41
  524. package/src/context/context/create-context.ts +0 -110
  525. package/src/context/context/device-pixels.ts +0 -152
  526. package/src/init.ts +0 -4
  527. 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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"}