@luma.gl/webgl 9.0.0-alpha.15 → 9.0.0-alpha.17

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 (401) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +3 -23
  3. package/dist/adapter/converters/device-parameters.js.map +1 -1
  4. package/dist/adapter/converters/renderbuffer-formats.js +1 -5
  5. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  7. package/dist/adapter/converters/sampler-parameters.js +3 -58
  8. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  9. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  10. package/dist/adapter/converters/texture-formats.js +10 -54
  11. package/dist/adapter/converters/texture-formats.js.map +1 -1
  12. package/dist/adapter/converters/vertex-formats.js +0 -9
  13. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  14. package/dist/adapter/device-helpers/device-features.js +5 -22
  15. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  16. package/dist/adapter/device-helpers/device-limits.js +1 -4
  17. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  18. package/dist/adapter/device-helpers/get-device-info.js +6 -12
  19. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  20. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  21. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  22. package/dist/adapter/helpers/attribute-utils.js +0 -17
  23. package/dist/adapter/helpers/attribute-utils.js.map +1 -1
  24. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  25. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  26. package/dist/adapter/helpers/get-shader-info.js +25 -0
  27. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  28. package/dist/adapter/helpers/get-shader-layout.js +9 -57
  29. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  30. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  31. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  32. package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
  33. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  34. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  35. package/dist/adapter/helpers/set-uniform.js +0 -30
  36. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  37. package/dist/adapter/helpers/uniforms.js +0 -10
  38. package/dist/adapter/helpers/uniforms.js.map +1 -1
  39. package/dist/adapter/objects/constants-to-keys.js +0 -7
  40. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  41. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  42. package/dist/adapter/objects/webgl-renderbuffer.js +4 -20
  43. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  44. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  45. package/dist/adapter/objects/webgl-resource.js +13 -60
  46. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  47. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  48. package/dist/adapter/objects/webgl-vertex-array-object.js +6 -16
  49. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  50. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  51. package/dist/adapter/resources/webgl-buffer.js +13 -42
  52. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  53. package/dist/adapter/resources/webgl-command-buffer.js +2 -17
  54. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  55. package/dist/adapter/resources/webgl-command-encoder.js +1 -14
  56. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  57. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  58. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  59. package/dist/adapter/resources/webgl-framebuffer.js +5 -65
  60. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  61. package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
  62. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  63. package/dist/adapter/resources/webgl-render-pass.js +1 -8
  64. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  65. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  66. package/dist/adapter/resources/webgl-render-pipeline.js +9 -98
  67. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  68. package/dist/adapter/resources/webgl-sampler.js +1 -13
  69. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  70. package/dist/adapter/resources/webgl-shader.d.ts +1 -2
  71. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  72. package/dist/adapter/resources/webgl-shader.js +3 -17
  73. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  74. package/dist/adapter/resources/webgl-texture.d.ts +1 -1
  75. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  76. package/dist/adapter/resources/webgl-texture.js +44 -162
  77. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  78. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  79. package/dist/adapter/webgl-canvas-context.js +2 -16
  80. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  81. package/dist/adapter/webgl-device.d.ts +5 -0
  82. package/dist/adapter/webgl-device.d.ts.map +1 -1
  83. package/dist/adapter/webgl-device.js +40 -107
  84. package/dist/adapter/webgl-device.js.map +1 -1
  85. package/dist/classic/accessor.js +11 -35
  86. package/dist/classic/accessor.js.map +1 -1
  87. package/dist/classic/buffer.d.ts.map +1 -1
  88. package/dist/classic/buffer.js +20 -76
  89. package/dist/classic/buffer.js.map +1 -1
  90. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  91. package/dist/classic/typed-array-utils.js +0 -20
  92. package/dist/classic/typed-array-utils.js.map +1 -1
  93. package/dist/context/context/create-browser-context.d.ts +1 -0
  94. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  95. package/dist/context/context/create-browser-context.js +6 -14
  96. package/dist/context/context/create-browser-context.js.map +1 -1
  97. package/dist/context/context/create-headless-context.js +6 -7
  98. package/dist/context/context/create-headless-context.js.map +1 -1
  99. package/dist/context/context/webgl-checks.js +0 -3
  100. package/dist/context/context/webgl-checks.js.map +1 -1
  101. package/dist/context/debug/spector.d.ts +1 -0
  102. package/dist/context/debug/spector.d.ts.map +1 -1
  103. package/dist/context/debug/spector.js +6 -18
  104. package/dist/context/debug/spector.js.map +1 -1
  105. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  106. package/dist/context/debug/webgl-developer-tools.js +4 -22
  107. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  108. package/dist/context/parameters/unified-parameter-api.js +4 -15
  109. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  110. package/dist/context/parameters/webgl-parameter-tables.js +1 -20
  111. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  112. package/dist/context/polyfill/context-data.js +0 -2
  113. package/dist/context/polyfill/context-data.js.map +1 -1
  114. package/dist/context/polyfill/get-parameter-polyfill.js +1 -6
  115. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  116. package/dist/context/polyfill/polyfill-context.js +17 -24
  117. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  118. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  119. package/dist/context/polyfill/polyfill-table.js +3 -26
  120. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  121. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  122. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
  123. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  124. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  125. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  126. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  127. package/dist/context/state-tracker/track-context-state.js +14 -48
  128. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  129. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  130. package/dist/context/state-tracker/with-parameters.js +3 -9
  131. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  132. package/dist/dist.dev.js +9205 -0
  133. package/dist/index.cjs +5948 -0
  134. package/dist/index.d.ts +0 -2
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +24 -26
  137. package/dist/index.js.map +1 -1
  138. package/dist/types/webgl.d.ts +4 -4
  139. package/dist/types/webgl.d.ts.map +1 -1
  140. package/dist/types/webgl.js.map +1 -1
  141. package/dist/types.js.map +1 -1
  142. package/dist.min.js +36 -0
  143. package/package.json +18 -9
  144. package/src/.DS_Store +0 -0
  145. package/src/adapter/.DS_Store +0 -0
  146. package/src/adapter/converters/device-parameters.ts +5 -2
  147. package/src/adapter/converters/sampler-parameters.ts +4 -2
  148. package/src/adapter/converters/texture-formats.ts +3 -1
  149. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  150. package/src/adapter/helpers/get-shader-info.ts +37 -0
  151. package/src/adapter/helpers/get-shader-layout.ts +4 -4
  152. package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
  153. package/src/adapter/helpers/set-uniform.ts +2 -0
  154. package/src/adapter/objects/webgl-renderbuffer.ts +1 -1
  155. package/src/adapter/objects/webgl-resource.ts +1 -1
  156. package/src/adapter/objects/webgl-vertex-array-object.ts +1 -1
  157. package/src/adapter/resources/webgl-buffer.ts +5 -5
  158. package/src/adapter/resources/webgl-command-encoder.ts +1 -1
  159. package/src/adapter/resources/webgl-framebuffer.ts +3 -4
  160. package/src/adapter/resources/webgl-render-pass.ts +1 -1
  161. package/src/adapter/resources/webgl-render-pipeline.ts +19 -20
  162. package/src/adapter/resources/webgl-shader.ts +3 -3
  163. package/src/adapter/resources/webgl-texture.ts +8 -9
  164. package/src/adapter/webgl-canvas-context.ts +2 -2
  165. package/src/adapter/webgl-device.ts +13 -3
  166. package/src/classic/accessor.ts +1 -1
  167. package/src/classic/buffer.ts +3 -3
  168. package/src/classic/typed-array-utils.ts +1 -1
  169. package/src/context/.DS_Store +0 -0
  170. package/src/context/context/create-browser-context.ts +4 -2
  171. package/src/context/context/create-headless-context.ts +2 -2
  172. package/src/context/debug/spector.ts +5 -4
  173. package/src/context/debug/webgl-developer-tools.ts +1 -1
  174. package/src/context/polyfill/polyfill-table.ts +1 -0
  175. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  176. package/src/context/state-tracker/track-context-state.ts +6 -5
  177. package/src/context/state-tracker/with-parameters.ts +1 -1
  178. package/src/index.ts +1 -5
  179. package/src/types/webgl.ts +6 -4
  180. package/dist/bundle.d.ts +0 -2
  181. package/dist/bundle.d.ts.map +0 -1
  182. package/dist/bundle.js +0 -5
  183. package/dist/bundle.js.map +0 -1
  184. package/dist/es5/adapter/converters/device-parameters.js +0 -174
  185. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  186. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  187. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  188. package/dist/es5/adapter/converters/sampler-parameters.js +0 -245
  189. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  190. package/dist/es5/adapter/converters/texture-formats.js +0 -1022
  191. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  192. package/dist/es5/adapter/converters/vertex-formats.js +0 -48
  193. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  194. package/dist/es5/adapter/device-helpers/device-features.js +0 -155
  195. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  196. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  197. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  198. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -59
  199. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  200. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  201. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  202. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  203. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  204. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -389
  205. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  206. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  207. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  208. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  209. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  210. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  211. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  212. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  213. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  214. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  215. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  216. package/dist/es5/adapter/objects/webgl-resource.js +0 -287
  217. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  218. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  219. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  220. package/dist/es5/adapter/resources/webgl-buffer.js +0 -242
  221. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  222. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  223. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  224. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  225. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  226. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  227. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  228. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -347
  229. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  230. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -62
  231. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  232. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -494
  233. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  234. package/dist/es5/adapter/resources/webgl-sampler.js +0 -101
  235. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  236. package/dist/es5/adapter/resources/webgl-shader.js +0 -150
  237. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  238. package/dist/es5/adapter/resources/webgl-texture.js +0 -980
  239. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  240. package/dist/es5/adapter/webgl-canvas-context.js +0 -96
  241. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  242. package/dist/es5/adapter/webgl-device.js +0 -474
  243. package/dist/es5/adapter/webgl-device.js.map +0 -1
  244. package/dist/es5/bundle.js +0 -7
  245. package/dist/es5/bundle.js.map +0 -1
  246. package/dist/es5/classic/accessor.js +0 -181
  247. package/dist/es5/classic/accessor.js.map +0 -1
  248. package/dist/es5/classic/buffer.js +0 -468
  249. package/dist/es5/classic/buffer.js.map +0 -1
  250. package/dist/es5/classic/typed-array-utils.js +0 -126
  251. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  252. package/dist/es5/context/context/create-browser-context.js +0 -83
  253. package/dist/es5/context/context/create-browser-context.js.map +0 -1
  254. package/dist/es5/context/context/create-headless-context.js +0 -60
  255. package/dist/es5/context/context/create-headless-context.js.map +0 -1
  256. package/dist/es5/context/context/webgl-checks.js +0 -54
  257. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  258. package/dist/es5/context/debug/spector.js +0 -133
  259. package/dist/es5/context/debug/spector.js.map +0 -1
  260. package/dist/es5/context/debug/webgl-developer-tools.js +0 -192
  261. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  262. package/dist/es5/context/parameters/unified-parameter-api.js +0 -101
  263. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  264. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -393
  265. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  266. package/dist/es5/context/polyfill/context-data.js +0 -21
  267. package/dist/es5/context/polyfill/context-data.js.map +0 -1
  268. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  269. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  270. package/dist/es5/context/polyfill/polyfill-context.js +0 -134
  271. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  272. package/dist/es5/context/polyfill/polyfill-table.js +0 -167
  273. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  274. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  275. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  276. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  277. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  278. package/dist/es5/context/state-tracker/track-context-state.js +0 -210
  279. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  280. package/dist/es5/context/state-tracker/with-parameters.js +0 -52
  281. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  282. package/dist/es5/index.js +0 -276
  283. package/dist/es5/index.js.map +0 -1
  284. package/dist/es5/init.js +0 -10
  285. package/dist/es5/init.js.map +0 -1
  286. package/dist/es5/types/webgl.js +0 -6
  287. package/dist/es5/types/webgl.js.map +0 -1
  288. package/dist/es5/types.js +0 -2
  289. package/dist/es5/types.js.map +0 -1
  290. package/dist/esm/adapter/converters/device-parameters.js +0 -157
  291. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  292. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  293. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  294. package/dist/esm/adapter/converters/sampler-parameters.js +0 -227
  295. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  296. package/dist/esm/adapter/converters/texture-formats.js +0 -945
  297. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  298. package/dist/esm/adapter/converters/vertex-formats.js +0 -38
  299. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  300. package/dist/esm/adapter/device-helpers/device-features.js +0 -112
  301. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  302. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  303. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  304. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -48
  305. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  306. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  307. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  308. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  309. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  310. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -328
  311. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  312. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  313. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  314. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  315. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  316. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  317. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  318. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  319. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  320. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  321. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  322. package/dist/esm/adapter/objects/webgl-resource.js +0 -210
  323. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  324. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  325. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  326. package/dist/esm/adapter/resources/webgl-buffer.js +0 -162
  327. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  328. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  329. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  330. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  331. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  332. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  333. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  334. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -267
  335. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  336. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -21
  337. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  338. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  339. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  340. package/dist/esm/adapter/resources/webgl-sampler.js +0 -54
  341. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  342. package/dist/esm/adapter/resources/webgl-shader.js +0 -76
  343. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  344. package/dist/esm/adapter/resources/webgl-texture.js +0 -832
  345. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  346. package/dist/esm/adapter/webgl-canvas-context.js +0 -55
  347. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  348. package/dist/esm/adapter/webgl-device.js +0 -346
  349. package/dist/esm/adapter/webgl-device.js.map +0 -1
  350. package/dist/esm/bundle.js +0 -5
  351. package/dist/esm/bundle.js.map +0 -1
  352. package/dist/esm/classic/accessor.js +0 -144
  353. package/dist/esm/classic/accessor.js.map +0 -1
  354. package/dist/esm/classic/buffer.js +0 -383
  355. package/dist/esm/classic/buffer.js.map +0 -1
  356. package/dist/esm/classic/typed-array-utils.js +0 -112
  357. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  358. package/dist/esm/context/context/create-browser-context.js +0 -61
  359. package/dist/esm/context/context/create-browser-context.js.map +0 -1
  360. package/dist/esm/context/context/create-headless-context.js +0 -43
  361. package/dist/esm/context/context/create-headless-context.js.map +0 -1
  362. package/dist/esm/context/context/webgl-checks.js +0 -34
  363. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  364. package/dist/esm/context/debug/spector.js +0 -76
  365. package/dist/esm/context/debug/spector.js.map +0 -1
  366. package/dist/esm/context/debug/webgl-developer-tools.js +0 -115
  367. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  368. package/dist/esm/context/parameters/unified-parameter-api.js +0 -66
  369. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  370. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -446
  371. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  372. package/dist/esm/context/polyfill/context-data.js +0 -14
  373. package/dist/esm/context/polyfill/context-data.js.map +0 -1
  374. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  375. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  376. package/dist/esm/context/polyfill/polyfill-context.js +0 -91
  377. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  378. package/dist/esm/context/polyfill/polyfill-table.js +0 -161
  379. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  380. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  381. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  382. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  383. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  384. package/dist/esm/context/state-tracker/track-context-state.js +0 -182
  385. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  386. package/dist/esm/context/state-tracker/with-parameters.js +0 -40
  387. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  388. package/dist/esm/index.js +0 -27
  389. package/dist/esm/index.js.map +0 -1
  390. package/dist/esm/init.js +0 -4
  391. package/dist/esm/init.js.map +0 -1
  392. package/dist/esm/types/webgl.js +0 -2
  393. package/dist/esm/types/webgl.js.map +0 -1
  394. package/dist/esm/types.js +0 -2
  395. package/dist/esm/types.js.map +0 -1
  396. package/dist/init.d.ts +0 -2
  397. package/dist/init.d.ts.map +0 -1
  398. package/dist/init.js +0 -4
  399. package/dist/init.js.map +0 -1
  400. package/src/bundle.ts +0 -4
  401. package/src/init.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"device-parameters.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/device-parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAuC,MAAM,cAAc,CAAC;AACvG,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD;;;;;;;;GAQG;AACF,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAgBxH;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAgBzH;AAGD,kCAAkC;AAClC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,QAoGzE;AAyBD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,EAAE,CAWpF;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,eAAe,CAWtF"}
1
+ {"version":3,"file":"device-parameters.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/device-parameters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAuC,MAAM,cAAc,CAAC;AACvG,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAgBvH;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAgBzH;AAGD,kCAAkC;AAClC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,QAqGzE;AAyBD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,EAAE,CAWpF;AAED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,eAAe,CAWtF"}
@@ -1,15 +1,13 @@
1
1
  import { log, isObjectEmpty } from '@luma.gl/api';
2
2
  import GL from '@luma.gl/constants';
3
- import { pushContextState, popContextState } from '../../context/state-tracker/track-context-state';
4
- import { setParameters } from '../../context/parameters/unified-parameter-api';
5
- import WebGLDevice from '../webgl-device';
3
+ import { pushContextState, popContextState } from "../../context/state-tracker/track-context-state.js";
4
+ import { setParameters } from "../../context/parameters/unified-parameter-api.js";
5
+ import WebGLDevice from "../webgl-device.js";
6
6
  export function withGLParameters(device, parameters, func) {
7
7
  if (isObjectEmpty(parameters)) {
8
8
  return func(device);
9
9
  }
10
-
11
10
  pushContextState(device.gl);
12
-
13
11
  try {
14
12
  setParameters(device, parameters);
15
13
  return func(device);
@@ -21,9 +19,7 @@ export function withDeviceParameters(device, parameters, func) {
21
19
  if (isObjectEmpty(parameters)) {
22
20
  return func(device);
23
21
  }
24
-
25
22
  pushContextState(device.gl);
26
-
27
23
  try {
28
24
  setDeviceParameters(device, parameters);
29
25
  return func(device);
@@ -36,55 +32,45 @@ export function setDeviceParameters(device, parameters) {
36
32
  const {
37
33
  gl
38
34
  } = webglDevice;
39
-
40
35
  if (parameters.cullMode) {
41
36
  switch (parameters.cullMode) {
42
37
  case 'none':
43
38
  gl.disable(GL.CULL_FACE);
44
39
  break;
45
-
46
40
  case 'front':
47
41
  gl.enable(GL.CULL_FACE);
48
42
  gl.cullFace(GL.FRONT);
49
43
  break;
50
-
51
44
  case 'back':
52
45
  gl.enable(GL.CULL_FACE);
53
46
  gl.cullFace(GL.BACK);
54
47
  break;
55
48
  }
56
49
  }
57
-
58
50
  if (parameters.frontFace) {
59
51
  gl.frontFace(map('frontFace', parameters.frontFace, {
60
52
  ccw: GL.CCW,
61
53
  cw: GL.CW
62
54
  }));
63
55
  }
64
-
65
56
  if (parameters.depthBias !== undefined) {
66
57
  gl.polygonOffset(parameters.depthBias, parameters.depthBiasSlopeScale || 0);
67
58
  }
68
-
69
59
  if (parameters.depthWriteEnabled !== undefined) {
70
60
  gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));
71
61
  }
72
-
73
62
  if (parameters.depthCompare) {
74
63
  parameters.depthCompare !== 'always' ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST);
75
64
  gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));
76
65
  }
77
-
78
66
  if (parameters.stencilWriteMask) {
79
67
  const mask = parameters.stencilWriteMask;
80
68
  gl.stencilMaskSeparate(GL.FRONT, mask);
81
69
  gl.stencilMaskSeparate(GL.BACK, mask);
82
70
  }
83
-
84
71
  if (parameters.stencilReadMask) {
85
72
  log.warn('stencilReadMask not supported under WebGL');
86
73
  }
87
-
88
74
  if (parameters.stencilCompare) {
89
75
  const mask = parameters.stencilReadMask || 0xffffffff;
90
76
  const glValue = convertCompareFunction('depthCompare', parameters.stencilCompare);
@@ -92,7 +78,6 @@ export function setDeviceParameters(device, parameters) {
92
78
  gl.stencilFuncSeparate(GL.FRONT, glValue, 0, mask);
93
79
  gl.stencilFuncSeparate(GL.BACK, glValue, 0, mask);
94
80
  }
95
-
96
81
  if (parameters.stencilPassOperation && parameters.stencilFailOperation && parameters.stencilDepthFailOperation) {
97
82
  const dppass = convertStencilOperation('stencilPassOperation', parameters.stencilPassOperation);
98
83
  const sfail = convertStencilOperation('stencilFailOperation', parameters.stencilFailOperation);
@@ -125,7 +110,6 @@ export function convertToCompareFunction(parameter, value) {
125
110
  [GL.ALWAYS]: 'always'
126
111
  });
127
112
  }
128
-
129
113
  function convertStencilOperation(parameter, value) {
130
114
  return map(parameter, value, {
131
115
  'keep': GL.KEEP,
@@ -138,19 +122,15 @@ function convertStencilOperation(parameter, value) {
138
122
  'decrement-wrap': GL.DECR_WRAP
139
123
  });
140
124
  }
141
-
142
125
  function message(parameter, value) {
143
126
  return "Illegal parameter ".concat(value, " for ").concat(parameter);
144
127
  }
145
-
146
128
  function map(parameter, value, valueMap) {
147
129
  if (!(value in valueMap)) {
148
130
  throw new Error(message(parameter, value));
149
131
  }
150
-
151
132
  return valueMap[value];
152
133
  }
153
-
154
134
  function mapBoolean(parameter, value) {
155
135
  return value;
156
136
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/adapter/converters/device-parameters.ts"],"names":["log","isObjectEmpty","GL","pushContextState","popContextState","setParameters","WebGLDevice","withGLParameters","device","parameters","func","gl","withDeviceParameters","setDeviceParameters","webglDevice","attach","cullMode","disable","CULL_FACE","enable","cullFace","FRONT","BACK","frontFace","map","ccw","CCW","cw","CW","depthBias","undefined","polygonOffset","depthBiasSlopeScale","depthWriteEnabled","depthMask","mapBoolean","depthCompare","DEPTH_TEST","depthFunc","convertCompareFunction","stencilWriteMask","mask","stencilMaskSeparate","stencilReadMask","warn","stencilCompare","glValue","STENCIL_TEST","stencilFuncSeparate","stencilPassOperation","stencilFailOperation","stencilDepthFailOperation","dppass","convertStencilOperation","sfail","dpfail","stencilOpSeparate","parameter","value","NEVER","LESS","EQUAL","LEQUAL","GREATER","NOTEQUAL","GEQUAL","ALWAYS","convertToCompareFunction","KEEP","ZERO","REPLACE","INVERT","INCR","DECR","INCR_WRAP","DECR_WRAP","message","valueMap","Error"],"mappings":"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","sourcesContent":["import {Device, Parameters, CompareFunction, StencilOperation, log, isObjectEmpty} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport type { GLParameters } from '../../types/webgl';\nimport {pushContextState, popContextState} from '../../context/state-tracker/track-context-state';\nimport {setParameters} from '../../context/parameters/unified-parameter-api';\nimport WebGLDevice from '../webgl-device';\n\n/**\n * Execute a function with a set of temporary WebGL parameter overrides\n * - Saves current \"global\" WebGL context settings\n * - Sets the supplies WebGL context parameters,\n * - Executes supplied function\n * - Restores parameters\n * - Returns the return value of the supplied function\n * @deprecated use withDeviceParameters instead\n */\n export function withGLParameters<T = unknown>(device: Device, parameters: GLParameters, func: (device?: Device) => T): T {\n if (isObjectEmpty(parameters)) {\n // Avoid setting state if no parameters provided. Just call and return\n return func(device);\n }\n\n // Wrap in a try-catch to ensure that parameters are restored on exceptions\n // @ts-expect-error\n pushContextState(device.gl);\n try {\n setParameters(device, parameters);\n return func(device);\n } finally {\n // @ts-expect-error\n popContextState(device.gl);\n }\n}\n\n/**\n * Execute a function with a set of temporary WebGL parameter overrides\n * - Saves current \"global\" WebGL context settings\n * - Sets the supplies WebGL context parameters,\n * - Executes supplied function\n * - Restores parameters\n * - Returns the return value of the supplied function\n */\nexport function withDeviceParameters<T = unknown>(device: Device, parameters: Parameters, func: (device?: Device) => T): T {\n if (isObjectEmpty(parameters)) {\n // Avoid setting state if no parameters provided. Just call and return\n return func(device);\n }\n\n // Wrap in a try-catch to ensure that parameters are restored on exceptions\n // @ts-expect-error\n pushContextState(device.gl);\n try {\n setDeviceParameters(device, parameters);\n return func(device);\n } finally {\n // @ts-expect-error\n popContextState(device.gl);\n }\n}\n\n\n/** Set WebGPU Style Parameters */\nexport function setDeviceParameters(device: Device, parameters: Parameters) {\n const webglDevice = WebGLDevice.attach(device);\n const {gl} = webglDevice;\n\n // RASTERIZATION SETTINGS\n if (parameters.cullMode) {\n switch (parameters.cullMode) {\n case 'none':\n gl.disable(GL.CULL_FACE);\n break;\n case 'front':\n gl.enable(GL.CULL_FACE);\n gl.cullFace(GL.FRONT);\n break;\n case 'back':\n gl.enable(GL.CULL_FACE);\n gl.cullFace(GL.BACK);\n break;\n }\n }\n\n if (parameters.frontFace) {\n gl.frontFace(map('frontFace', parameters.frontFace, {\n ccw: GL.CCW,\n cw: GL.CW\n }));\n }\n\n if (parameters.depthBias !== undefined) {\n gl.polygonOffset(parameters.depthBias, parameters.depthBiasSlopeScale || 0);\n }\n\n // depthBiasSlopeScale: {\n // // Handled by depthBias\n // },\n\n // DEPTH STENCIL\n\n if (parameters.depthWriteEnabled !== undefined) {\n gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));\n }\n\n if (parameters.depthCompare) {\n parameters.depthCompare !== 'always' ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST);\n gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));\n }\n\n if (parameters.stencilWriteMask) {\n const mask = parameters.stencilWriteMask;\n gl.stencilMaskSeparate(GL.FRONT, mask);\n gl.stencilMaskSeparate(GL.BACK, mask);\n }\n\n if (parameters.stencilReadMask) {\n // stencilReadMask is handle inside stencil***Compare.\n log.warn('stencilReadMask not supported under WebGL');\n }\n\n if (parameters.stencilCompare) {\n const mask = parameters.stencilReadMask || 0xffffffff;\n const glValue = convertCompareFunction('depthCompare', parameters.stencilCompare);\n // TODO - ensure back doesn't overwrite\n parameters.stencilCompare !== 'always' ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST);\n gl.stencilFuncSeparate(GL.FRONT, glValue, 0, mask);\n gl.stencilFuncSeparate(GL.BACK, glValue, 0, mask);\n }\n\n if (parameters.stencilPassOperation && parameters.stencilFailOperation && parameters.stencilDepthFailOperation) {\n const dppass = convertStencilOperation('stencilPassOperation', parameters.stencilPassOperation);\n const sfail = convertStencilOperation('stencilFailOperation', parameters.stencilFailOperation);\n const dpfail = convertStencilOperation('stencilDepthFailOperation', parameters.stencilDepthFailOperation);\n gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);\n gl.stencilOpSeparate(GL.BACK, sfail, dpfail, dppass);\n }\n\n // stencilDepthFailOperation() {\n // // handled by stencilPassOperation\n // },\n\n // stencilFailOperation() {\n // // handled by stencilPassOperation\n // },\n\n // COLOR STATE\n\n // if (parameters.blend) {\n // gl.enable(GL.BLEND);\n\n // const blend = parameters.blend;\n\n // let colorEquation = (blend && blend.color && blend.color.operation) || 'add';\n // let alphaEquation = (blend && blend.alpha && blend.alpha.operation) || 'add';\n // gl.blendEquationSeparate(colorEquation, alphaEquation);\n\n // let colorSrcFactor = (blend && blend.color && blend.color.srcFactor) || 'one';\n // let colorDstFactor = (blend && blend.color && blend.color.dstFactor) || 'zero';\n // let alphaSrcFactor = (blend && blend.alpha && blend.alpha.srcFactor) || 'one';\n // let alphaDstFactor = (blend && blend.alpha && blend.alpha.dstFactor) || 'zero';\n // gl.blendFuncSeparate(colorSrcFactor, colorDstFactor, alphaSrcFactor, alphaDstFactor);\n // }\n}\n\n/*\n rasterizationState: {\n cullMode: \"back\",\n },\n\n depthStencilState: {\n depthWriteEnabled: true,\n depthCompare: \"less\",\n format: \"depth24plus-stencil8\",\n },\n\n colorStates: [\n {\n format: \"bgra8unorm\",\n // colorBlend.srcFactor = wgpu::BlendFactor::SrcAlpha;\n // colorBlend.dstFactor = wgpu::BlendFactor::OneMinusSrcAlpha;\n // alphaBlend.srcFactor = wgpu::BlendFactor::SrcAlpha;\n // alphaBlend.dstFactor = wgpu::BlendFactor::OneMinusSrcAlpha;\n },\n ],\n });\n*/\n\nexport function convertCompareFunction(parameter: string, value: CompareFunction): GL {\n return map(parameter, value, {\n 'never': GL.NEVER,\n 'less': GL.LESS,\n 'equal': GL.EQUAL,\n 'less-equal': GL.LEQUAL,\n 'greater': GL.GREATER,\n 'not-equal': GL.NOTEQUAL,\n 'greater-equal': GL.GEQUAL,\n 'always': GL.ALWAYS\n });\n}\n\nexport function convertToCompareFunction(parameter: string, value: GL): CompareFunction {\n return map(parameter, value, {\n [GL.NEVER]: 'never',\n [GL.LESS]: 'less',\n [GL.EQUAL]: 'equal',\n [GL.LEQUAL]: 'less-equal',\n [GL.GREATER]: 'greater',\n [GL.NOTEQUAL]: 'not-equal',\n [GL.GEQUAL]: 'greater-equal',\n [GL.ALWAYS]: 'always'\n });\n}\n\nfunction convertStencilOperation(parameter: string, value: StencilOperation): GL {\n return map(parameter, value, {\n 'keep': GL.KEEP,\n 'zero': GL.ZERO,\n 'replace': GL.REPLACE,\n 'invert': GL.INVERT,\n 'increment-clamp': GL.INCR,\n 'decrement-clamp': GL.DECR,\n 'increment-wrap': GL.INCR_WRAP,\n 'decrement-wrap': GL.DECR_WRAP\n });\n}\n\n// function convertBlendOperationToEquation(parameter: string, value: string): number {\n// return map(parameter, value, {\n// 'add': GL.FUNC_ADD,\n// 'sub': GL.FUNC_SUBTRACT,\n// 'reverse-subtract': GL.FUNC_REVERSE_SUBTRACT,\n// // When using a WebGL 2 context, the following values are available additionally:\n// 'min': GL.MIN,\n// 'max': GL.MAX\n// });\n// }\n\nfunction message(parameter: string, value: any): string {\n return `Illegal parameter ${value} for ${parameter}`;\n}\n\nfunction map(parameter: string, value: any, valueMap: Record<string, any>): any {\n if (!(value in valueMap)) {\n throw new Error(message(parameter, value));\n }\n return valueMap[value];\n}\n\nfunction mapBoolean(parameter: string, value: boolean): boolean {\n return value;\n}\n"],"file":"device-parameters.js"}
1
+ {"version":3,"file":"device-parameters.js","names":["log","isObjectEmpty","GL","pushContextState","popContextState","setParameters","WebGLDevice","withGLParameters","device","parameters","func","gl","withDeviceParameters","setDeviceParameters","webglDevice","attach","cullMode","disable","CULL_FACE","enable","cullFace","FRONT","BACK","frontFace","map","ccw","CCW","cw","CW","depthBias","undefined","polygonOffset","depthBiasSlopeScale","depthWriteEnabled","depthMask","mapBoolean","depthCompare","DEPTH_TEST","depthFunc","convertCompareFunction","stencilWriteMask","mask","stencilMaskSeparate","stencilReadMask","warn","stencilCompare","glValue","STENCIL_TEST","stencilFuncSeparate","stencilPassOperation","stencilFailOperation","stencilDepthFailOperation","dppass","convertStencilOperation","sfail","dpfail","stencilOpSeparate","parameter","value","NEVER","LESS","EQUAL","LEQUAL","GREATER","NOTEQUAL","GEQUAL","ALWAYS","convertToCompareFunction","KEEP","ZERO","REPLACE","INVERT","INCR","DECR","INCR_WRAP","DECR_WRAP","message","concat","valueMap","Error"],"sources":["../../../src/adapter/converters/device-parameters.ts"],"sourcesContent":["import {Device, Parameters, CompareFunction, StencilOperation, log, isObjectEmpty} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport type { GLParameters } from '../../types/webgl';\nimport {pushContextState, popContextState} from '../../context/state-tracker/track-context-state';\nimport {setParameters} from '../../context/parameters/unified-parameter-api';\nimport WebGLDevice from '../webgl-device';\n\n/* eslint-disable no-unused-expressions */ // For expression ? gl.enable() : gl.disable()\n\n/**\n * Execute a function with a set of temporary WebGL parameter overrides\n * - Saves current \"global\" WebGL context settings\n * - Sets the supplies WebGL context parameters,\n * - Executes supplied function\n * - Restores parameters\n * - Returns the return value of the supplied function\n * @deprecated use withDeviceParameters instead\n */\nexport function withGLParameters<T = unknown>(device: Device, parameters: GLParameters, func: (device?: Device) => T): T {\n if (isObjectEmpty(parameters)) {\n // Avoid setting state if no parameters provided. Just call and return\n return func(device);\n }\n\n // Wrap in a try-catch to ensure that parameters are restored on exceptions\n // @ts-expect-error\n pushContextState(device.gl);\n try {\n setParameters(device, parameters);\n return func(device);\n } finally {\n // @ts-expect-error\n popContextState(device.gl);\n }\n}\n\n/**\n * Execute a function with a set of temporary WebGL parameter overrides\n * - Saves current \"global\" WebGL context settings\n * - Sets the supplies WebGL context parameters,\n * - Executes supplied function\n * - Restores parameters\n * - Returns the return value of the supplied function\n */\nexport function withDeviceParameters<T = unknown>(device: Device, parameters: Parameters, func: (device?: Device) => T): T {\n if (isObjectEmpty(parameters)) {\n // Avoid setting state if no parameters provided. Just call and return\n return func(device);\n }\n\n // Wrap in a try-catch to ensure that parameters are restored on exceptions\n // @ts-expect-error\n pushContextState(device.gl);\n try {\n setDeviceParameters(device, parameters);\n return func(device);\n } finally {\n // @ts-expect-error\n popContextState(device.gl);\n }\n}\n\n\n/** Set WebGPU Style Parameters */\nexport function setDeviceParameters(device: Device, parameters: Parameters) {\n const webglDevice = WebGLDevice.attach(device);\n const {gl} = webglDevice;\n\n // RASTERIZATION SETTINGS\n if (parameters.cullMode) {\n switch (parameters.cullMode) {\n case 'none':\n gl.disable(GL.CULL_FACE);\n break;\n case 'front':\n gl.enable(GL.CULL_FACE);\n gl.cullFace(GL.FRONT);\n break;\n case 'back':\n gl.enable(GL.CULL_FACE);\n gl.cullFace(GL.BACK);\n break;\n }\n }\n\n if (parameters.frontFace) {\n gl.frontFace(map('frontFace', parameters.frontFace, {\n ccw: GL.CCW,\n cw: GL.CW\n }));\n }\n\n if (parameters.depthBias !== undefined) {\n gl.polygonOffset(parameters.depthBias, parameters.depthBiasSlopeScale || 0);\n }\n\n // depthBiasSlopeScale: {\n // // Handled by depthBias\n // },\n\n // DEPTH STENCIL\n\n if (parameters.depthWriteEnabled !== undefined) {\n gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));\n }\n\n if (parameters.depthCompare) {\n\n parameters.depthCompare !== 'always' ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST);\n gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));\n }\n\n if (parameters.stencilWriteMask) {\n const mask = parameters.stencilWriteMask;\n gl.stencilMaskSeparate(GL.FRONT, mask);\n gl.stencilMaskSeparate(GL.BACK, mask);\n }\n\n if (parameters.stencilReadMask) {\n // stencilReadMask is handle inside stencil***Compare.\n log.warn('stencilReadMask not supported under WebGL');\n }\n\n if (parameters.stencilCompare) {\n const mask = parameters.stencilReadMask || 0xffffffff;\n const glValue = convertCompareFunction('depthCompare', parameters.stencilCompare);\n // TODO - ensure back doesn't overwrite\n parameters.stencilCompare !== 'always' ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST);\n gl.stencilFuncSeparate(GL.FRONT, glValue, 0, mask);\n gl.stencilFuncSeparate(GL.BACK, glValue, 0, mask);\n }\n\n if (parameters.stencilPassOperation && parameters.stencilFailOperation && parameters.stencilDepthFailOperation) {\n const dppass = convertStencilOperation('stencilPassOperation', parameters.stencilPassOperation);\n const sfail = convertStencilOperation('stencilFailOperation', parameters.stencilFailOperation);\n const dpfail = convertStencilOperation('stencilDepthFailOperation', parameters.stencilDepthFailOperation);\n gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);\n gl.stencilOpSeparate(GL.BACK, sfail, dpfail, dppass);\n }\n\n // stencilDepthFailOperation() {\n // // handled by stencilPassOperation\n // },\n\n // stencilFailOperation() {\n // // handled by stencilPassOperation\n // },\n\n // COLOR STATE\n\n // if (parameters.blend) {\n // gl.enable(GL.BLEND);\n\n // const blend = parameters.blend;\n\n // let colorEquation = (blend && blend.color && blend.color.operation) || 'add';\n // let alphaEquation = (blend && blend.alpha && blend.alpha.operation) || 'add';\n // gl.blendEquationSeparate(colorEquation, alphaEquation);\n\n // let colorSrcFactor = (blend && blend.color && blend.color.srcFactor) || 'one';\n // let colorDstFactor = (blend && blend.color && blend.color.dstFactor) || 'zero';\n // let alphaSrcFactor = (blend && blend.alpha && blend.alpha.srcFactor) || 'one';\n // let alphaDstFactor = (blend && blend.alpha && blend.alpha.dstFactor) || 'zero';\n // gl.blendFuncSeparate(colorSrcFactor, colorDstFactor, alphaSrcFactor, alphaDstFactor);\n // }\n}\n\n/*\n rasterizationState: {\n cullMode: \"back\",\n },\n\n depthStencilState: {\n depthWriteEnabled: true,\n depthCompare: \"less\",\n format: \"depth24plus-stencil8\",\n },\n\n colorStates: [\n {\n format: \"bgra8unorm\",\n // colorBlend.srcFactor = wgpu::BlendFactor::SrcAlpha;\n // colorBlend.dstFactor = wgpu::BlendFactor::OneMinusSrcAlpha;\n // alphaBlend.srcFactor = wgpu::BlendFactor::SrcAlpha;\n // alphaBlend.dstFactor = wgpu::BlendFactor::OneMinusSrcAlpha;\n },\n ],\n });\n*/\n\nexport function convertCompareFunction(parameter: string, value: CompareFunction): GL {\n return map(parameter, value, {\n 'never': GL.NEVER,\n 'less': GL.LESS,\n 'equal': GL.EQUAL,\n 'less-equal': GL.LEQUAL,\n 'greater': GL.GREATER,\n 'not-equal': GL.NOTEQUAL,\n 'greater-equal': GL.GEQUAL,\n 'always': GL.ALWAYS\n });\n}\n\nexport function convertToCompareFunction(parameter: string, value: GL): CompareFunction {\n return map(parameter, value, {\n [GL.NEVER]: 'never',\n [GL.LESS]: 'less',\n [GL.EQUAL]: 'equal',\n [GL.LEQUAL]: 'less-equal',\n [GL.GREATER]: 'greater',\n [GL.NOTEQUAL]: 'not-equal',\n [GL.GEQUAL]: 'greater-equal',\n [GL.ALWAYS]: 'always'\n });\n}\n\nfunction convertStencilOperation(parameter: string, value: StencilOperation): GL {\n return map(parameter, value, {\n 'keep': GL.KEEP,\n 'zero': GL.ZERO,\n 'replace': GL.REPLACE,\n 'invert': GL.INVERT,\n 'increment-clamp': GL.INCR,\n 'decrement-clamp': GL.DECR,\n 'increment-wrap': GL.INCR_WRAP,\n 'decrement-wrap': GL.DECR_WRAP\n });\n}\n\n// function convertBlendOperationToEquation(parameter: string, value: string): number {\n// return map(parameter, value, {\n// 'add': GL.FUNC_ADD,\n// 'sub': GL.FUNC_SUBTRACT,\n// 'reverse-subtract': GL.FUNC_REVERSE_SUBTRACT,\n// // When using a WebGL 2 context, the following values are available additionally:\n// 'min': GL.MIN,\n// 'max': GL.MAX\n// });\n// }\n\nfunction message(parameter: string, value: any): string {\n return `Illegal parameter ${value} for ${parameter}`;\n}\n\nfunction map(parameter: string, value: any, valueMap: Record<string, any>): any {\n if (!(value in valueMap)) {\n throw new Error(message(parameter, value));\n }\n return valueMap[value];\n}\n\nfunction mapBoolean(parameter: string, value: boolean): boolean {\n return value;\n}\n"],"mappings":"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"}
@@ -1,20 +1,16 @@
1
1
  import GL from '@luma.gl/constants';
2
- import { isWebGL2 } from '../../context/context/webgl-checks';
2
+ import { isWebGL2 } from "../../context/context/webgl-checks.js";
3
3
  export function isRenderbufferFormatSupported(gl, format) {
4
4
  const info = RENDERBUFFER_FORMATS[format];
5
-
6
5
  if (!info) {
7
6
  return false;
8
7
  }
9
-
10
8
  if (info.ext) {
11
9
  return Boolean(gl.getExtension(info.ext));
12
10
  }
13
-
14
11
  if (info.gl2) {
15
12
  return isWebGL2(gl);
16
13
  }
17
-
18
14
  return true;
19
15
  }
20
16
  export function getRenderbufferFormatBytesPerPixel(format) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/adapter/converters/renderbuffer-formats.ts"],"names":["GL","isWebGL2","isRenderbufferFormatSupported","gl","format","info","RENDERBUFFER_FORMATS","ext","Boolean","getExtension","gl2","getRenderbufferFormatBytesPerPixel","bpp","EXT_FLOAT_WEBGL2","DEPTH_COMPONENT16","DEPTH_COMPONENT24","DEPTH_COMPONENT32F","STENCIL_INDEX8","DEPTH_STENCIL","DEPTH24_STENCIL8","DEPTH32F_STENCIL8","RGBA4","RGB565","RGB5_A1","R8","R8UI","R8I","R16UI","R16I","R32UI","R32I","RG8","RG8UI","RG8I","RG16UI","RG16I","RG32UI","RG32I","RGB8","RGBA8","RGB10_A2","RGBA8UI","RGBA8I","RGB10_A2UI","RGBA16UI","RGBA16I","RGBA32I","RGBA32UI","R16F","RG16F","RGBA16F","R32F","RG32F","RGBA32F","R11F_G11F_B10F"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\n\nexport function isRenderbufferFormatSupported(gl: WebGLRenderingContext, format: GL): boolean {\n const info = RENDERBUFFER_FORMATS[format];\n // Unknown format\n if (!info) {\n return false;\n }\n if (info.ext) {\n return Boolean(gl.getExtension(info.ext));\n }\n if (info.gl2) {\n return isWebGL2(gl);\n }\n return true;\n}\n\nexport function getRenderbufferFormatBytesPerPixel(format: GL): number {\n return RENDERBUFFER_FORMATS[format].bpp;\n}\n\n// Define local extension strings to optimize minification\nconst EXT_FLOAT_WEBGL2 = 'EXT_color_buffer_float';\n\n/**\n * @param bpp \"bytes per pixel\", used for memory usage calculations.\n * @param gl2 requires WebGL2\n * @param ext requires extension\n */\ntype RenderbufferFormat = {\n bpp: number;\n gl2?: boolean;\n ext?: string;\n};\n\nconst RENDERBUFFER_FORMATS: Record<string, RenderbufferFormat> = {\n [GL.DEPTH_COMPONENT16]: {bpp: 2}, // 16 depth bits.\n [GL.DEPTH_COMPONENT24]: {gl2: true, bpp: 3},\n [GL.DEPTH_COMPONENT32F]: {gl2: true, bpp: 4},\n\n [GL.STENCIL_INDEX8]: {bpp: 1}, // 8 stencil bits.\n\n [GL.DEPTH_STENCIL]: {bpp: 4},\n [GL.DEPTH24_STENCIL8]: {gl2: true, bpp: 4},\n [GL.DEPTH32F_STENCIL8]: {gl2: true, bpp: 5},\n\n // When using a WebGL 1 context, color renderbuffer formats are limited\n [GL.RGBA4]: {bpp: 2},\n [GL.RGB565]: {bpp: 2},\n [GL.RGB5_A1]: {bpp: 2},\n\n // When using a WebGL 2 context, the following values are available additionally:\n [GL.R8]: {gl2: true, bpp: 1},\n [GL.R8UI]: {gl2: true, bpp: 1},\n [GL.R8I]: {gl2: true, bpp: 1},\n [GL.R16UI]: {gl2: true, bpp: 2},\n [GL.R16I]: {gl2: true, bpp: 2},\n [GL.R32UI]: {gl2: true, bpp: 4},\n [GL.R32I]: {gl2: true, bpp: 4},\n [GL.RG8]: {gl2: true, bpp: 2},\n [GL.RG8UI]: {gl2: true, bpp: 2},\n [GL.RG8I]: {gl2: true, bpp: 2},\n [GL.RG16UI]: {gl2: true, bpp: 4},\n [GL.RG16I]: {gl2: true, bpp: 4},\n [GL.RG32UI]: {gl2: true, bpp: 8},\n [GL.RG32I]: {gl2: true, bpp: 8},\n [GL.RGB8]: {gl2: true, bpp: 3},\n [GL.RGBA8]: {gl2: true, bpp: 4},\n // [GL.SRGB8_ALPHA8]: {gl2: true, gl1: SRGB}, // When using the EXT_sRGB WebGL1 extension\n [GL.RGB10_A2]: {gl2: true, bpp: 4},\n [GL.RGBA8UI]: {gl2: true, bpp: 4},\n [GL.RGBA8I]: {gl2: true, bpp: 4},\n [GL.RGB10_A2UI]: {gl2: true, bpp: 4},\n [GL.RGBA16UI]: {gl2: true, bpp: 8},\n [GL.RGBA16I]: {gl2: true, bpp: 8},\n [GL.RGBA32I]: {gl2: true, bpp: 16},\n [GL.RGBA32UI]: {gl2: true, bpp: 16},\n\n // When using a WebGL 2 context and the EXT_color_buffer_float WebGL2 extension\n [GL.R16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 2},\n [GL.RG16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4},\n [GL.RGBA16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 8},\n [GL.R32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4},\n [GL.RG32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 8},\n // TODO - can't get WEBGL_color_buffer_float to work on renderbuffers\n [GL.RGBA32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 16},\n // [GL.RGBA32F]: {ext: EXT_FLOAT_WEBGL2, gl1: EXT_FLOAT_WEBGL1},\n [GL.R11F_G11F_B10F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4}\n};\n\nexport default RENDERBUFFER_FORMATS;\n"],"file":"renderbuffer-formats.js"}
1
+ {"version":3,"file":"renderbuffer-formats.js","names":["GL","isWebGL2","isRenderbufferFormatSupported","gl","format","info","RENDERBUFFER_FORMATS","ext","Boolean","getExtension","gl2","getRenderbufferFormatBytesPerPixel","bpp","EXT_FLOAT_WEBGL2","DEPTH_COMPONENT16","DEPTH_COMPONENT24","DEPTH_COMPONENT32F","STENCIL_INDEX8","DEPTH_STENCIL","DEPTH24_STENCIL8","DEPTH32F_STENCIL8","RGBA4","RGB565","RGB5_A1","R8","R8UI","R8I","R16UI","R16I","R32UI","R32I","RG8","RG8UI","RG8I","RG16UI","RG16I","RG32UI","RG32I","RGB8","RGBA8","RGB10_A2","RGBA8UI","RGBA8I","RGB10_A2UI","RGBA16UI","RGBA16I","RGBA32I","RGBA32UI","R16F","RG16F","RGBA16F","R32F","RG32F","RGBA32F","R11F_G11F_B10F"],"sources":["../../../src/adapter/converters/renderbuffer-formats.ts"],"sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\n\nexport function isRenderbufferFormatSupported(gl: WebGLRenderingContext, format: GL): boolean {\n const info = RENDERBUFFER_FORMATS[format];\n // Unknown format\n if (!info) {\n return false;\n }\n if (info.ext) {\n return Boolean(gl.getExtension(info.ext));\n }\n if (info.gl2) {\n return isWebGL2(gl);\n }\n return true;\n}\n\nexport function getRenderbufferFormatBytesPerPixel(format: GL): number {\n return RENDERBUFFER_FORMATS[format].bpp;\n}\n\n// Define local extension strings to optimize minification\nconst EXT_FLOAT_WEBGL2 = 'EXT_color_buffer_float';\n\n/**\n * @param bpp \"bytes per pixel\", used for memory usage calculations.\n * @param gl2 requires WebGL2\n * @param ext requires extension\n */\ntype RenderbufferFormat = {\n bpp: number;\n gl2?: boolean;\n ext?: string;\n};\n\nconst RENDERBUFFER_FORMATS: Record<string, RenderbufferFormat> = {\n [GL.DEPTH_COMPONENT16]: {bpp: 2}, // 16 depth bits.\n [GL.DEPTH_COMPONENT24]: {gl2: true, bpp: 3},\n [GL.DEPTH_COMPONENT32F]: {gl2: true, bpp: 4},\n\n [GL.STENCIL_INDEX8]: {bpp: 1}, // 8 stencil bits.\n\n [GL.DEPTH_STENCIL]: {bpp: 4},\n [GL.DEPTH24_STENCIL8]: {gl2: true, bpp: 4},\n [GL.DEPTH32F_STENCIL8]: {gl2: true, bpp: 5},\n\n // When using a WebGL 1 context, color renderbuffer formats are limited\n [GL.RGBA4]: {bpp: 2},\n [GL.RGB565]: {bpp: 2},\n [GL.RGB5_A1]: {bpp: 2},\n\n // When using a WebGL 2 context, the following values are available additionally:\n [GL.R8]: {gl2: true, bpp: 1},\n [GL.R8UI]: {gl2: true, bpp: 1},\n [GL.R8I]: {gl2: true, bpp: 1},\n [GL.R16UI]: {gl2: true, bpp: 2},\n [GL.R16I]: {gl2: true, bpp: 2},\n [GL.R32UI]: {gl2: true, bpp: 4},\n [GL.R32I]: {gl2: true, bpp: 4},\n [GL.RG8]: {gl2: true, bpp: 2},\n [GL.RG8UI]: {gl2: true, bpp: 2},\n [GL.RG8I]: {gl2: true, bpp: 2},\n [GL.RG16UI]: {gl2: true, bpp: 4},\n [GL.RG16I]: {gl2: true, bpp: 4},\n [GL.RG32UI]: {gl2: true, bpp: 8},\n [GL.RG32I]: {gl2: true, bpp: 8},\n [GL.RGB8]: {gl2: true, bpp: 3},\n [GL.RGBA8]: {gl2: true, bpp: 4},\n // [GL.SRGB8_ALPHA8]: {gl2: true, gl1: SRGB}, // When using the EXT_sRGB WebGL1 extension\n [GL.RGB10_A2]: {gl2: true, bpp: 4},\n [GL.RGBA8UI]: {gl2: true, bpp: 4},\n [GL.RGBA8I]: {gl2: true, bpp: 4},\n [GL.RGB10_A2UI]: {gl2: true, bpp: 4},\n [GL.RGBA16UI]: {gl2: true, bpp: 8},\n [GL.RGBA16I]: {gl2: true, bpp: 8},\n [GL.RGBA32I]: {gl2: true, bpp: 16},\n [GL.RGBA32UI]: {gl2: true, bpp: 16},\n\n // When using a WebGL 2 context and the EXT_color_buffer_float WebGL2 extension\n [GL.R16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 2},\n [GL.RG16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4},\n [GL.RGBA16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 8},\n [GL.R32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4},\n [GL.RG32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 8},\n // TODO - can't get WEBGL_color_buffer_float to work on renderbuffers\n [GL.RGBA32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 16},\n // [GL.RGBA32F]: {ext: EXT_FLOAT_WEBGL2, gl1: EXT_FLOAT_WEBGL1},\n [GL.R11F_G11F_B10F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4}\n};\n\nexport default RENDERBUFFER_FORMATS;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sampler-parameters.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/sampler-parameters.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAGtD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,iBAAiB,GAAG,mBAAmB,CAoC7F;AAkCD;;;;GAIG;AACF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,mBAAmB,GAAG,iBAAiB,CAqC1F;AA+CD;;EAEE;AACF,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,mBAAmB,GAAG,mBAAmB,CAUnG"}
1
+ {"version":3,"file":"sampler-parameters.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/sampler-parameters.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAKtD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,iBAAiB,GAAG,mBAAmB,CAoC7F;AAkCD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,mBAAmB,GAAG,iBAAiB,CAqCzF;AA+CD;;EAEE;AACF,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,mBAAmB,GAAG,mBAAmB,CAUnG"}
@@ -1,225 +1,170 @@
1
1
  import GL from '@luma.gl/constants';
2
- import { convertCompareFunction, convertToCompareFunction } from './device-parameters';
2
+ import { convertCompareFunction, convertToCompareFunction } from "./device-parameters.js";
3
3
  export function convertSamplerParametersToWebGL(props) {
4
4
  const params = {};
5
-
6
5
  if (props.addressModeU) {
7
6
  params[GL.TEXTURE_WRAP_S] = convertAddressMode(props.addressModeU);
8
7
  }
9
-
10
8
  if (props.addressModeV) {
11
9
  params[GL.TEXTURE_WRAP_T] = convertAddressMode(props.addressModeV);
12
10
  }
13
-
14
11
  if (props.addressModeW) {
15
12
  params[GL.TEXTURE_WRAP_R] = convertAddressMode(props.addressModeW);
16
13
  }
17
-
18
14
  if (props.magFilter) {
19
15
  params[GL.TEXTURE_MAG_FILTER] = convertMaxFilterMode(props.magFilter);
20
16
  }
21
-
22
17
  if (props.minFilter || props.mipmapFilter) {
23
18
  params[GL.TEXTURE_MIN_FILTER] = convertMinFilterMode(props.minFilter || 'linear', props.mipmapFilter);
24
19
  }
25
-
26
20
  if (props.lodMinClamp !== undefined) {
27
21
  params[GL.TEXTURE_MIN_LOD] = props.lodMinClamp;
28
22
  }
29
-
30
23
  if (props.lodMaxClamp !== undefined) {
31
24
  params[GL.TEXTURE_MAX_LOD] = props.lodMaxClamp;
32
25
  }
33
-
34
26
  if (props.type === 'comparison-sampler') {
35
27
  params[GL.TEXTURE_COMPARE_MODE] = GL.COMPARE_REF_TO_TEXTURE;
36
28
  }
37
-
38
29
  if (props.compare) {
39
30
  params[GL.TEXTURE_COMPARE_FUNC] = convertCompareFunction('compare', props.compare);
40
31
  }
41
-
42
32
  if (props.maxAnisotropy) {
43
33
  params[GL.TEXTURE_MAX_ANISOTROPY_EXT] = props.maxAnisotropy;
44
34
  }
45
-
46
35
  return params;
47
36
  }
48
-
49
37
  function convertAddressMode(addressMode) {
50
38
  switch (addressMode) {
51
39
  case 'clamp-to-edge':
52
40
  return GL.CLAMP_TO_EDGE;
53
-
54
41
  case 'repeat':
55
42
  return GL.REPEAT;
56
-
57
43
  case 'mirror-repeat':
58
44
  return GL.MIRRORED_REPEAT;
59
45
  }
60
46
  }
61
-
62
47
  function convertMaxFilterMode(maxFilter) {
63
48
  switch (maxFilter) {
64
49
  case 'nearest':
65
50
  return GL.NEAREST;
66
-
67
51
  case 'linear':
68
52
  return GL.LINEAR;
69
53
  }
70
54
  }
71
-
72
55
  function convertMinFilterMode(minFilter, mipmapFilter) {
73
56
  if (!mipmapFilter) {
74
57
  return convertMaxFilterMode(minFilter);
75
58
  }
76
-
77
59
  switch (minFilter) {
78
60
  case 'nearest':
79
61
  return mipmapFilter === 'nearest' ? GL.NEAREST_MIPMAP_NEAREST : GL.NEAREST_MIPMAP_LINEAR;
80
-
81
62
  case 'linear':
82
63
  return mipmapFilter === 'nearest' ? GL.LINEAR_MIPMAP_NEAREST : GL.LINEAR_MIPMAP_LINEAR;
83
64
  }
84
65
  }
85
-
86
66
  export function convertToSamplerParameters(params) {
87
67
  const props = {};
88
-
89
68
  if (params[GL.TEXTURE_WRAP_S]) {
90
69
  props.addressModeU = convertToAddressMode(params[GL.TEXTURE_WRAP_S]);
91
70
  }
92
-
93
71
  if (params[GL.TEXTURE_WRAP_T]) {
94
72
  props.addressModeV = convertToAddressMode(params[GL.TEXTURE_WRAP_T]);
95
73
  }
96
-
97
74
  if (params[GL.TEXTURE_WRAP_R]) {
98
75
  props.addressModeW = convertToAddressMode(params[GL.TEXTURE_WRAP_R]);
99
76
  }
100
-
101
77
  if (params[GL.TEXTURE_MAG_FILTER]) {
102
78
  props.magFilter = convertToMaxFilterMode(params[GL.TEXTURE_MAG_FILTER]);
103
79
  }
104
-
105
80
  if (params[GL.TEXTURE_MIN_FILTER]) {
106
81
  props.minFilter = convertToMinFilterMode(params[GL.TEXTURE_MIN_FILTER]);
107
82
  }
108
-
109
83
  if (params[GL.TEXTURE_MIN_FILTER]) {
110
84
  props.mipmapFilter = convertToMipmapFilterMode(params[GL.TEXTURE_MIN_FILTER]);
111
85
  }
112
-
113
86
  if (params[GL.TEXTURE_MIN_LOD]) {
114
87
  props.lodMinClamp = params[GL.TEXTURE_MIN_LOD];
115
88
  }
116
-
117
89
  if (params[GL.TEXTURE_MAX_LOD]) {
118
90
  props.lodMaxClamp = params[GL.TEXTURE_MAX_LOD];
119
91
  }
120
-
121
92
  if (params[GL.TEXTURE_COMPARE_MODE]) {
122
93
  props.type = params[GL.TEXTURE_COMPARE_MODE] === GL.COMPARE_REF_TO_TEXTURE ? 'comparison-sampler' : 'color-sampler';
123
94
  }
124
-
125
95
  if (params[GL.TEXTURE_COMPARE_FUNC]) {
126
96
  props.compare = convertToCompareFunction('compare', params[GL.TEXTURE_COMPARE_FUNC]);
127
97
  }
128
-
129
98
  if (params[GL.TEXTURE_MAX_ANISOTROPY_EXT]) {
130
99
  props.maxAnisotropy = params[GL.TEXTURE_MAX_ANISOTROPY_EXT];
131
100
  }
132
-
133
101
  return props;
134
102
  }
135
-
136
103
  function convertToAddressMode(addressMode) {
137
104
  switch (addressMode) {
138
105
  case GL.CLAMP_TO_EDGE:
139
106
  return 'clamp-to-edge';
140
-
141
107
  case GL.REPEAT:
142
108
  return 'repeat';
143
-
144
109
  case GL.MIRRORED_REPEAT:
145
110
  return 'mirror-repeat';
146
-
147
111
  default:
148
112
  throw new Error('address');
149
113
  }
150
114
  }
151
-
152
115
  function convertToMaxFilterMode(filterMode) {
153
116
  switch (filterMode) {
154
117
  case GL.NEAREST:
155
118
  return 'nearest';
156
-
157
119
  case GL.LINEAR:
158
120
  return 'linear';
159
-
160
121
  default:
161
122
  throw new Error('maxfilter');
162
123
  }
163
124
  }
164
-
165
125
  function convertToMinFilterMode(filterMode) {
166
126
  switch (filterMode) {
167
127
  case GL.NEAREST:
168
128
  return 'nearest';
169
-
170
129
  case GL.LINEAR:
171
130
  return 'linear';
172
-
173
131
  case GL.NEAREST_MIPMAP_NEAREST:
174
132
  return 'nearest';
175
-
176
133
  case GL.LINEAR_MIPMAP_NEAREST:
177
134
  return 'linear';
178
-
179
135
  case GL.NEAREST_MIPMAP_LINEAR:
180
136
  return 'nearest';
181
-
182
137
  case GL.LINEAR_MIPMAP_LINEAR:
183
138
  return 'linear';
184
-
185
139
  default:
186
140
  throw new Error('minfilter');
187
141
  }
188
142
  }
189
-
190
143
  function convertToMipmapFilterMode(filterMode) {
191
144
  switch (filterMode) {
192
145
  case GL.NEAREST:
193
146
  return 'nearest';
194
-
195
147
  case GL.LINEAR:
196
148
  return 'linear';
197
-
198
149
  case GL.NEAREST_MIPMAP_NEAREST:
199
150
  return 'nearest';
200
-
201
151
  case GL.LINEAR_MIPMAP_NEAREST:
202
152
  return 'nearest';
203
-
204
153
  case GL.NEAREST_MIPMAP_LINEAR:
205
154
  return 'linear';
206
-
207
155
  case GL.LINEAR_MIPMAP_LINEAR:
208
156
  return 'linear';
209
-
210
157
  default:
211
158
  throw new Error('mipmap');
212
159
  }
213
160
  }
214
-
215
161
  export function updateSamplerParametersForNPOT(parameters) {
216
- const newParameters = { ...parameters
162
+ const newParameters = {
163
+ ...parameters
217
164
  };
218
-
219
165
  if (parameters[GL.TEXTURE_MIN_FILTER] !== GL.NEAREST) {
220
166
  newParameters[GL.TEXTURE_MIN_FILTER] = GL.LINEAR;
221
167
  }
222
-
223
168
  newParameters[GL.TEXTURE_WRAP_S] = GL.CLAMP_TO_EDGE;
224
169
  newParameters[GL.TEXTURE_WRAP_T] = GL.CLAMP_TO_EDGE;
225
170
  return newParameters;
@@ -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","type","TEXTURE_COMPARE_MODE","COMPARE_REF_TO_TEXTURE","compare","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","Error","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 {GLSamplerParameters} 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): 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(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.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': 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: 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 = params[GL.TEXTURE_COMPARE_MODE] === GL.COMPARE_REF_TO_TEXTURE ? 'comparison-sampler' : '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(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 default: throw new Error('address');\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 default: throw new Error('maxfilter');\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 default: throw new Error('minfilter');\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 default: 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(parameters: GLSamplerParameters): 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"],"file":"sampler-parameters.js"}
1
+ {"version":3,"file":"sampler-parameters.js","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","type","TEXTURE_COMPARE_MODE","COMPARE_REF_TO_TEXTURE","compare","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","Error","filterMode","updateSamplerParametersForNPOT","parameters","newParameters"],"sources":["../../../src/adapter/converters/sampler-parameters.ts"],"sourcesContent":["// SAMPLER FILTERS\nimport {SamplerParameters} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {GLSamplerParameters} from '../../types/webgl';\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(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.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': 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 */\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 = params[GL.TEXTURE_COMPARE_MODE] === GL.COMPARE_REF_TO_TEXTURE ? 'comparison-sampler' : '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(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 default: throw new Error('address');\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 default: throw new Error('maxfilter');\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 default: throw new Error('minfilter');\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 default: 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(parameters: GLSamplerParameters): 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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"texture-formats.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/texture-formats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,MAAM,oBAAoB,CAAC;AA+DpC,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,qBAAqB,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAE9F;AAKD,wGAAwG;AACxG,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,qBAAqB,GAAG,aAAa,EAAE,CAG7E;AAID,0CAA0C;AAC1C,aAAK,MAAM,GAAG;IACZ,EAAE,CAAC,EAAE,EAAE,CAAC;IACR,wDAAwD;IACxD,GAAG,CAAC,EAAE,EAAE,CAAC;IACT,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,eAAe;IACf,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa;IACb,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,aAAa,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB,IAAI,CAAC,EAAE,KAAK,CAAC;IAEb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB,UAAU,CAAC,EAAE,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,EAAE,CAAC,gBAAgB,GAAG,EAAE,CAAC,kBAAkB,GAAG,EAAE,CAAC,wBAAwB,CAAC;CACxF,CAAC;AAIF;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BE;AAEF,0BAA0B;AAE1B,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAyLzD,CAAC;AAeF,8CAA8C;AAC9C,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,qBAAqB,EACzB,UAAU,EAAE,aAAa,GAAG,EAAE,GAC7B,OAAO,CAmBT;AAED,8CAA8C;AAC9C,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,qBAAqB,EACzB,UAAU,EAAE,aAAa,GAAG,EAAE,GAC7B;IACD,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CA8BA;AAED,uGAAuG;AACvG,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,qBAAqB,EACzB,UAAU,EAAE,aAAa,GAAG,EAAE,GAC7B,OAAO,CA+BT;AAED,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,qBAAqB,EACzB,UAAU,EAAE,aAAa,GAAG,EAAE,GAC7B,OAAO,CAUT;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,qBAAqB,EAAE,UAAU,EAAE,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,SAAS,CAY/G;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,qBAAqB,EAAE,UAAU,EAAE,aAAa,GAAG,EAAE;;;;;EAgBlG;AAED,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,aAAa,GAAG,EAAE,GAC7B,EAAE,CAAC,gBAAgB,GAAG,EAAE,CAAC,kBAAkB,GAAG,EAAE,CAAC,wBAAwB,CAY3E;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,qBAAqB,EACzB,cAAc,SAAU,EACxB,SAAS,KAAU,EACnB,OAAO,KAAmB,WAoC3B;AA+BD,uEAAuE;AACvE,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,qBAAqB,EAAE,UAAU,EAAE,aAAa,GAAG,EAAE,GAAG,MAAM,CAO/G;AAwBD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,EAAE,CAarD"}
1
+ {"version":3,"file":"texture-formats.d.ts","sourceRoot":"","sources":["../../../src/adapter/converters/texture-formats.ts"],"names":[],"mappings":"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"}