@luma.gl/webgl 9.0.0-alpha.14 → 9.0.0-alpha.16

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 (367) hide show
  1. package/dist/adapter/converters/device-parameters.js +199 -136
  2. package/dist/adapter/converters/renderbuffer-formats.d.ts +1 -1
  3. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
  4. package/dist/adapter/converters/renderbuffer-formats.js +62 -176
  5. package/dist/adapter/converters/sampler-parameters.js +149 -206
  6. package/dist/adapter/converters/texture-formats.d.ts +2 -2
  7. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  8. package/dist/adapter/converters/texture-formats.js +437 -890
  9. package/dist/adapter/converters/vertex-formats.js +15 -33
  10. package/dist/adapter/device-helpers/device-features.js +119 -100
  11. package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
  12. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  13. package/dist/adapter/device-helpers/device-limits.js +88 -86
  14. package/dist/adapter/device-helpers/get-device-info.js +42 -43
  15. package/dist/adapter/device-helpers/is-old-ie.js +9 -6
  16. package/dist/adapter/helpers/attribute-utils.js +50 -74
  17. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  18. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  19. package/dist/adapter/helpers/get-shader-info.js +27 -0
  20. package/dist/adapter/helpers/get-shader-layout.js +307 -296
  21. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  22. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  23. package/dist/adapter/helpers/parse-shader-compiler-log.js +32 -33
  24. package/dist/adapter/helpers/set-uniform.js +67 -110
  25. package/dist/adapter/helpers/uniforms.js +80 -85
  26. package/dist/adapter/objects/constants-to-keys.js +33 -33
  27. package/dist/adapter/objects/webgl-renderbuffer.d.ts +1 -1
  28. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  29. package/dist/adapter/objects/webgl-renderbuffer.js +67 -86
  30. package/dist/adapter/objects/webgl-resource.js +213 -205
  31. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
  32. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  33. package/dist/adapter/objects/webgl-vertex-array-object.js +74 -76
  34. package/dist/adapter/resources/webgl-buffer.js +150 -147
  35. package/dist/adapter/resources/webgl-command-buffer.d.ts +5 -5
  36. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  37. package/dist/adapter/resources/webgl-command-buffer.js +39 -55
  38. package/dist/adapter/resources/webgl-command-encoder.js +25 -49
  39. package/dist/adapter/resources/webgl-external-texture.js +91 -1
  40. package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
  41. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  42. package/dist/adapter/resources/webgl-framebuffer.js +231 -258
  43. package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
  44. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  45. package/dist/adapter/resources/webgl-render-pass.js +8 -18
  46. package/dist/adapter/resources/webgl-render-pipeline.js +316 -378
  47. package/dist/adapter/resources/webgl-sampler.js +42 -47
  48. package/dist/adapter/resources/webgl-shader.d.ts +1 -2
  49. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  50. package/dist/adapter/resources/webgl-shader.js +58 -68
  51. package/dist/adapter/resources/webgl-texture.d.ts +5 -5
  52. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  53. package/dist/adapter/resources/webgl-texture.js +661 -815
  54. package/dist/adapter/webgl-canvas-context.js +55 -49
  55. package/dist/adapter/webgl-device.js +288 -338
  56. package/dist/bundle.js +1 -2
  57. package/dist/classic/accessor.js +120 -127
  58. package/dist/classic/buffer.d.ts +1 -1
  59. package/dist/classic/buffer.d.ts.map +1 -1
  60. package/dist/classic/buffer.js +325 -356
  61. package/dist/classic/typed-array-utils.d.ts +1 -1
  62. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  63. package/dist/classic/typed-array-utils.js +91 -101
  64. package/dist/context/context/create-browser-context.d.ts +1 -2
  65. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  66. package/dist/context/context/create-browser-context.js +61 -52
  67. package/dist/context/context/create-headless-context.d.ts +1 -1
  68. package/dist/context/context/create-headless-context.d.ts.map +1 -1
  69. package/dist/context/context/create-headless-context.js +26 -33
  70. package/dist/context/context/webgl-checks.js +25 -20
  71. package/dist/context/debug/spector.d.ts +1 -2
  72. package/dist/context/debug/spector.d.ts.map +1 -1
  73. package/dist/context/debug/spector.js +53 -62
  74. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  75. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  76. package/dist/context/debug/webgl-developer-tools.js +106 -93
  77. package/dist/context/parameters/unified-parameter-api.js +91 -55
  78. package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
  79. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  80. package/dist/context/parameters/webgl-parameter-tables.js +462 -423
  81. package/dist/context/polyfill/context-data.js +16 -12
  82. package/dist/context/polyfill/get-parameter-polyfill.js +91 -76
  83. package/dist/context/polyfill/polyfill-context.js +75 -80
  84. package/dist/context/polyfill/polyfill-table.js +133 -139
  85. package/dist/context/polyfill/polyfill-vertex-array-object.js +255 -297
  86. package/dist/context/state-tracker/deep-array-equal.js +16 -18
  87. package/dist/context/state-tracker/track-context-state.js +183 -161
  88. package/dist/context/state-tracker/with-parameters.js +43 -35
  89. package/dist/dist.min.js +1 -0
  90. package/dist/es5/adapter/converters/device-parameters.js +3 -38
  91. package/dist/es5/adapter/converters/device-parameters.js.map +1 -1
  92. package/dist/es5/adapter/converters/renderbuffer-formats.js +2 -14
  93. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -1
  94. package/dist/es5/adapter/converters/sampler-parameters.js +2 -65
  95. package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -1
  96. package/dist/es5/adapter/converters/texture-formats.js +9 -81
  97. package/dist/es5/adapter/converters/texture-formats.js.map +1 -1
  98. package/dist/es5/adapter/converters/vertex-formats.js +0 -12
  99. package/dist/es5/adapter/converters/vertex-formats.js.map +1 -1
  100. package/dist/es5/adapter/device-helpers/device-features.js +6 -40
  101. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
  102. package/dist/es5/adapter/device-helpers/device-limits.js +0 -10
  103. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
  104. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -10
  105. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
  106. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -1
  107. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -1
  108. package/dist/es5/adapter/helpers/attribute-utils.js +3 -25
  109. package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -1
  110. package/dist/es5/adapter/helpers/get-shader-info.js +31 -0
  111. package/dist/es5/adapter/helpers/get-shader-info.js.map +1 -0
  112. package/dist/es5/adapter/helpers/get-shader-layout.js +23 -101
  113. package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -1
  114. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +6 -24
  115. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  116. package/dist/es5/adapter/helpers/set-uniform.js +0 -33
  117. package/dist/es5/adapter/helpers/set-uniform.js.map +1 -1
  118. package/dist/es5/adapter/helpers/uniforms.js +13 -37
  119. package/dist/es5/adapter/helpers/uniforms.js.map +1 -1
  120. package/dist/es5/adapter/objects/constants-to-keys.js +1 -12
  121. package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -1
  122. package/dist/es5/adapter/objects/webgl-renderbuffer.js +5 -33
  123. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -1
  124. package/dist/es5/adapter/objects/webgl-resource.js +6 -60
  125. package/dist/es5/adapter/objects/webgl-resource.js.map +1 -1
  126. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +7 -35
  127. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  128. package/dist/es5/adapter/resources/webgl-buffer.js +20 -66
  129. package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -1
  130. package/dist/es5/adapter/resources/webgl-command-buffer.js +6 -32
  131. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -1
  132. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -18
  133. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -1
  134. package/dist/es5/adapter/resources/webgl-external-texture.js.map +1 -1
  135. package/dist/es5/adapter/resources/webgl-framebuffer.js +10 -82
  136. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -1
  137. package/dist/es5/adapter/resources/webgl-render-pass.js +2 -19
  138. package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -1
  139. package/dist/es5/adapter/resources/webgl-render-pipeline.js +24 -133
  140. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -1
  141. package/dist/es5/adapter/resources/webgl-sampler.js +2 -28
  142. package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -1
  143. package/dist/es5/adapter/resources/webgl-shader.js +13 -52
  144. package/dist/es5/adapter/resources/webgl-shader.js.map +1 -1
  145. package/dist/es5/adapter/resources/webgl-texture.js +137 -291
  146. package/dist/es5/adapter/resources/webgl-texture.js.map +1 -1
  147. package/dist/es5/adapter/webgl-canvas-context.js +0 -24
  148. package/dist/es5/adapter/webgl-canvas-context.js.map +1 -1
  149. package/dist/es5/adapter/webgl-device.js +40 -127
  150. package/dist/es5/adapter/webgl-device.js.map +1 -1
  151. package/dist/es5/bundle.js +0 -1
  152. package/dist/es5/bundle.js.map +1 -1
  153. package/dist/es5/classic/accessor.js +1 -31
  154. package/dist/es5/classic/accessor.js.map +1 -1
  155. package/dist/es5/classic/buffer.js +32 -102
  156. package/dist/es5/classic/buffer.js.map +1 -1
  157. package/dist/es5/classic/typed-array-utils.js +10 -37
  158. package/dist/es5/classic/typed-array-utils.js.map +1 -1
  159. package/dist/es5/context/context/create-browser-context.js +4 -21
  160. package/dist/es5/context/context/create-browser-context.js.map +1 -1
  161. package/dist/es5/context/context/create-headless-context.js +8 -21
  162. package/dist/es5/context/context/create-headless-context.js.map +1 -1
  163. package/dist/es5/context/context/webgl-checks.js +4 -14
  164. package/dist/es5/context/context/webgl-checks.js.map +1 -1
  165. package/dist/es5/context/debug/spector.js +20 -54
  166. package/dist/es5/context/debug/spector.js.map +1 -1
  167. package/dist/es5/context/debug/webgl-developer-tools.js +19 -65
  168. package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -1
  169. package/dist/es5/context/parameters/unified-parameter-api.js +3 -28
  170. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
  171. package/dist/es5/context/parameters/webgl-parameter-tables.js +18 -65
  172. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
  173. package/dist/es5/context/polyfill/context-data.js +0 -3
  174. package/dist/es5/context/polyfill/context-data.js.map +1 -1
  175. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -12
  176. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
  177. package/dist/es5/context/polyfill/polyfill-context.js +8 -33
  178. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
  179. package/dist/es5/context/polyfill/polyfill-table.js +3 -27
  180. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
  181. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -70
  182. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  183. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -5
  184. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
  185. package/dist/es5/context/state-tracker/track-context-state.js +10 -53
  186. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
  187. package/dist/es5/context/state-tracker/with-parameters.js +1 -13
  188. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
  189. package/dist/es5/index.js +72 -99
  190. package/dist/es5/index.js.map +1 -1
  191. package/dist/es5/init.js +0 -3
  192. package/dist/es5/init.js.map +1 -1
  193. package/dist/es5/types/webgl.js +0 -1
  194. package/dist/es5/types/webgl.js.map +1 -1
  195. package/dist/es5/types.js.map +1 -1
  196. package/dist/esm/adapter/converters/device-parameters.js +0 -20
  197. package/dist/esm/adapter/converters/device-parameters.js.map +1 -1
  198. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -4
  199. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -1
  200. package/dist/esm/adapter/converters/sampler-parameters.js +2 -57
  201. package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -1
  202. package/dist/esm/adapter/converters/texture-formats.js +8 -52
  203. package/dist/esm/adapter/converters/texture-formats.js.map +1 -1
  204. package/dist/esm/adapter/converters/vertex-formats.js +0 -9
  205. package/dist/esm/adapter/converters/vertex-formats.js.map +1 -1
  206. package/dist/esm/adapter/device-helpers/device-features.js +2 -19
  207. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
  208. package/dist/esm/adapter/device-helpers/device-limits.js +0 -3
  209. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
  210. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -6
  211. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
  212. package/dist/esm/adapter/device-helpers/is-old-ie.js +2 -1
  213. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -1
  214. package/dist/esm/adapter/helpers/attribute-utils.js +0 -17
  215. package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -1
  216. package/dist/esm/adapter/helpers/get-shader-info.js +25 -0
  217. package/dist/esm/adapter/helpers/get-shader-info.js.map +1 -0
  218. package/dist/esm/adapter/helpers/get-shader-layout.js +2 -48
  219. package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -1
  220. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -7
  221. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  222. package/dist/esm/adapter/helpers/set-uniform.js +0 -30
  223. package/dist/esm/adapter/helpers/set-uniform.js.map +1 -1
  224. package/dist/esm/adapter/helpers/uniforms.js +0 -10
  225. package/dist/esm/adapter/helpers/uniforms.js.map +1 -1
  226. package/dist/esm/adapter/objects/constants-to-keys.js +0 -7
  227. package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -1
  228. package/dist/esm/adapter/objects/webgl-renderbuffer.js +2 -18
  229. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -1
  230. package/dist/esm/adapter/objects/webgl-resource.js +10 -57
  231. package/dist/esm/adapter/objects/webgl-resource.js.map +1 -1
  232. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +5 -15
  233. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  234. package/dist/esm/adapter/resources/webgl-buffer.js +12 -40
  235. package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -1
  236. package/dist/esm/adapter/resources/webgl-command-buffer.js +2 -17
  237. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -1
  238. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -12
  239. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -1
  240. package/dist/esm/adapter/resources/webgl-external-texture.js.map +1 -1
  241. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -60
  242. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -1
  243. package/dist/esm/adapter/resources/webgl-render-pass.js +1 -8
  244. package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -1
  245. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -89
  246. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -1
  247. package/dist/esm/adapter/resources/webgl-sampler.js +0 -12
  248. package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -1
  249. package/dist/esm/adapter/resources/webgl-shader.js +2 -16
  250. package/dist/esm/adapter/resources/webgl-shader.js.map +1 -1
  251. package/dist/esm/adapter/resources/webgl-texture.js +36 -154
  252. package/dist/esm/adapter/resources/webgl-texture.js.map +1 -1
  253. package/dist/esm/adapter/webgl-canvas-context.js +0 -14
  254. package/dist/esm/adapter/webgl-canvas-context.js.map +1 -1
  255. package/dist/esm/adapter/webgl-device.js +19 -89
  256. package/dist/esm/adapter/webgl-device.js.map +1 -1
  257. package/dist/esm/bundle.js +0 -1
  258. package/dist/esm/bundle.js.map +1 -1
  259. package/dist/esm/classic/accessor.js +10 -34
  260. package/dist/esm/classic/accessor.js.map +1 -1
  261. package/dist/esm/classic/buffer.js +15 -71
  262. package/dist/esm/classic/buffer.js.map +1 -1
  263. package/dist/esm/classic/typed-array-utils.js +0 -20
  264. package/dist/esm/classic/typed-array-utils.js.map +1 -1
  265. package/dist/esm/context/context/create-browser-context.js +6 -14
  266. package/dist/esm/context/context/create-browser-context.js.map +1 -1
  267. package/dist/esm/context/context/create-headless-context.js +2 -6
  268. package/dist/esm/context/context/create-headless-context.js.map +1 -1
  269. package/dist/esm/context/context/webgl-checks.js +0 -3
  270. package/dist/esm/context/context/webgl-checks.js.map +1 -1
  271. package/dist/esm/context/debug/spector.js +2 -14
  272. package/dist/esm/context/debug/spector.js.map +1 -1
  273. package/dist/esm/context/debug/webgl-developer-tools.js +4 -22
  274. package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -1
  275. package/dist/esm/context/parameters/unified-parameter-api.js +2 -13
  276. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
  277. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -19
  278. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
  279. package/dist/esm/context/polyfill/context-data.js +0 -2
  280. package/dist/esm/context/polyfill/context-data.js.map +1 -1
  281. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -5
  282. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
  283. package/dist/esm/context/polyfill/polyfill-context.js +14 -21
  284. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
  285. package/dist/esm/context/polyfill/polyfill-table.js +0 -23
  286. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
  287. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -70
  288. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  289. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -4
  290. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
  291. package/dist/esm/context/state-tracker/track-context-state.js +11 -45
  292. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
  293. package/dist/esm/context/state-tracker/with-parameters.js +0 -6
  294. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
  295. package/dist/esm/index.js.map +1 -1
  296. package/dist/esm/init.js.map +1 -1
  297. package/dist/esm/types/webgl.js.map +1 -1
  298. package/dist/esm/types.js.map +1 -1
  299. package/dist/index.js +39 -25
  300. package/dist/init.js +1 -2
  301. package/dist/types/webgl.d.ts +20 -20
  302. package/dist/types/webgl.d.ts.map +1 -1
  303. package/dist/types/webgl.js +0 -1
  304. package/dist/types.d.ts +1 -1
  305. package/dist/types.d.ts.map +1 -1
  306. package/dist/types.js +0 -1
  307. package/package.json +8 -8
  308. package/src/adapter/helpers/get-shader-info.ts +37 -0
  309. package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
  310. package/src/adapter/resources/webgl-render-pass.ts +1 -1
  311. package/src/adapter/resources/webgl-shader.ts +2 -2
  312. package/src/adapter/webgl-device.ts +1 -1
  313. package/src/context/debug/webgl-developer-tools.ts +0 -1
  314. package/src/types/webgl.ts +4 -4
  315. package/dist/adapter/converters/device-parameters.js.map +0 -1
  316. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  317. package/dist/adapter/converters/sampler-parameters.js.map +0 -1
  318. package/dist/adapter/converters/texture-formats.js.map +0 -1
  319. package/dist/adapter/converters/vertex-formats.js.map +0 -1
  320. package/dist/adapter/device-helpers/device-features.js.map +0 -1
  321. package/dist/adapter/device-helpers/device-limits.js.map +0 -1
  322. package/dist/adapter/device-helpers/get-device-info.js.map +0 -1
  323. package/dist/adapter/device-helpers/is-old-ie.js.map +0 -1
  324. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  325. package/dist/adapter/helpers/get-shader-layout.js.map +0 -1
  326. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  327. package/dist/adapter/helpers/set-uniform.js.map +0 -1
  328. package/dist/adapter/helpers/uniforms.js.map +0 -1
  329. package/dist/adapter/objects/constants-to-keys.js.map +0 -1
  330. package/dist/adapter/objects/webgl-renderbuffer.js.map +0 -1
  331. package/dist/adapter/objects/webgl-resource.js.map +0 -1
  332. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  333. package/dist/adapter/resources/webgl-buffer.js.map +0 -1
  334. package/dist/adapter/resources/webgl-command-buffer.js.map +0 -1
  335. package/dist/adapter/resources/webgl-command-encoder.js.map +0 -1
  336. package/dist/adapter/resources/webgl-external-texture.js.map +0 -1
  337. package/dist/adapter/resources/webgl-framebuffer.js.map +0 -1
  338. package/dist/adapter/resources/webgl-render-pass.js.map +0 -1
  339. package/dist/adapter/resources/webgl-render-pipeline.js.map +0 -1
  340. package/dist/adapter/resources/webgl-sampler.js.map +0 -1
  341. package/dist/adapter/resources/webgl-shader.js.map +0 -1
  342. package/dist/adapter/resources/webgl-texture.js.map +0 -1
  343. package/dist/adapter/webgl-canvas-context.js.map +0 -1
  344. package/dist/adapter/webgl-device.js.map +0 -1
  345. package/dist/bundle.js.map +0 -1
  346. package/dist/classic/accessor.js.map +0 -1
  347. package/dist/classic/buffer.js.map +0 -1
  348. package/dist/classic/typed-array-utils.js.map +0 -1
  349. package/dist/context/context/create-browser-context.js.map +0 -1
  350. package/dist/context/context/create-headless-context.js.map +0 -1
  351. package/dist/context/context/webgl-checks.js.map +0 -1
  352. package/dist/context/debug/spector.js.map +0 -1
  353. package/dist/context/debug/webgl-developer-tools.js.map +0 -1
  354. package/dist/context/parameters/unified-parameter-api.js.map +0 -1
  355. package/dist/context/parameters/webgl-parameter-tables.js.map +0 -1
  356. package/dist/context/polyfill/context-data.js.map +0 -1
  357. package/dist/context/polyfill/get-parameter-polyfill.js.map +0 -1
  358. package/dist/context/polyfill/polyfill-context.js.map +0 -1
  359. package/dist/context/polyfill/polyfill-table.js.map +0 -1
  360. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  361. package/dist/context/state-tracker/deep-array-equal.js.map +0 -1
  362. package/dist/context/state-tracker/track-context-state.js.map +0 -1
  363. package/dist/context/state-tracker/with-parameters.js.map +0 -1
  364. package/dist/index.js.map +0 -1
  365. package/dist/init.js.map +0 -1
  366. package/dist/types/webgl.js.map +0 -1
  367. package/dist/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapter/converters/sampler-parameters.ts"],"names":["convertSamplerParametersToWebGL","props","params","addressModeU","GL","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":["_constants","_interopRequireDefault","require","_deviceParameters","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","convertSamplerParametersToWebGL","props","params","addressModeU","GL","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","convertCompareFunction","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","convertToCompareFunction","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/**\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"],"mappings":"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"}
@@ -1,36 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
7
+ exports.TEXTURE_FORMATS = void 0;
8
+ exports._checkFloat32ColorAttachment = _checkFloat32ColorAttachment;
8
9
  exports.checkTextureFeature = checkTextureFeature;
9
10
  exports.getTextureFeatures = getTextureFeatures;
10
- exports.isTextureFormatSupported = isTextureFormatSupported;
11
+ exports.getTextureFormatBytesPerPixel = getTextureFormatBytesPerPixel;
11
12
  exports.getTextureFormatSupport = getTextureFormatSupport;
12
- exports.isTextureFormatFilterable = isTextureFormatFilterable;
13
- exports.isTextureFormatRenderable = isTextureFormatRenderable;
13
+ exports.getWebGLDataType = getWebGLDataType;
14
+ exports.getWebGLDepthStencilAttachment = getWebGLDepthStencilAttachment;
14
15
  exports.getWebGLTextureFormat = getWebGLTextureFormat;
15
16
  exports.getWebGLTextureParameters = getWebGLTextureParameters;
16
- exports.getWebGLDepthStencilAttachment = getWebGLDepthStencilAttachment;
17
- exports._checkFloat32ColorAttachment = _checkFloat32ColorAttachment;
18
- exports.getTextureFormatBytesPerPixel = getTextureFormatBytesPerPixel;
19
- exports.getWebGLDataType = getWebGLDataType;
20
- exports.TEXTURE_FORMATS = void 0;
21
-
17
+ exports.isTextureFormatFilterable = isTextureFormatFilterable;
18
+ exports.isTextureFormatRenderable = isTextureFormatRenderable;
19
+ exports.isTextureFormatSupported = isTextureFormatSupported;
22
20
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
21
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
25
-
26
22
  var _api = require("@luma.gl/api");
27
-
28
23
  var _constants = _interopRequireDefault(require("@luma.gl/constants"));
29
-
30
24
  var _webglChecks = require("../../context/context/webgl-checks");
31
-
32
25
  var _DATA_FORMAT_CHANNELS, _TYPE_SIZES;
33
-
34
26
  var texture_compression_bc = 'texture-compression-bc';
35
27
  var texture_compression_astc = 'texture-compression-astc';
36
28
  var texture_compression_etc2 = 'texture-compression-etc2';
@@ -50,17 +42,14 @@ var EXT_SRGB = 'EXT_sRGB';
50
42
  var EXT_TEXTURE_NORM16 = 'EXT_texture_norm16';
51
43
  var EXT_FLOAT_WEBGL1 = 'WEBGL_color_buffer_float';
52
44
  var EXT_FLOAT_RENDER_WEBGL2 = 'EXT_color_buffer_float';
53
-
54
45
  var checkExtension = function checkExtension(gl, extension) {
55
46
  return gl.getExtension(extension);
56
47
  };
57
-
58
48
  var checkExtensions = function checkExtensions(gl, extensions) {
59
49
  return extensions.every(function (extension) {
60
50
  return gl.getExtension(extension);
61
51
  });
62
52
  };
63
-
64
53
  var TEXTURE_FEATURE_CHECKS = {
65
54
  'texture-blend-float-webgl1': function textureBlendFloatWebgl1(gl) {
66
55
  return (0, _webglChecks.isWebGL2)(gl) ? true : checkExtension(gl, 'EXT_float_blend');
@@ -117,26 +106,21 @@ var TEXTURE_FEATURE_CHECKS = {
117
106
  return checkExtensions(gl, [X_ATC]);
118
107
  }
119
108
  };
120
-
121
109
  function checkTextureFeature(gl, feature) {
122
110
  var _TEXTURE_FEATURE_CHEC;
123
-
124
111
  return ((_TEXTURE_FEATURE_CHEC = TEXTURE_FEATURE_CHECKS[feature]) === null || _TEXTURE_FEATURE_CHEC === void 0 ? void 0 : _TEXTURE_FEATURE_CHEC.call(TEXTURE_FEATURE_CHECKS, gl)) || false;
125
112
  }
126
-
127
113
  var checkTextureFeatures = function checkTextureFeatures(gl, features) {
128
114
  return features.every(function (feature) {
129
115
  return checkTextureFeature(gl, feature);
130
116
  });
131
117
  };
132
-
133
118
  function getTextureFeatures(gl) {
134
119
  var textureFeatures = Object.keys(TEXTURE_FEATURE_CHECKS);
135
120
  return textureFeatures.filter(function (feature) {
136
121
  return checkTextureFeature(gl, feature);
137
122
  });
138
123
  }
139
-
140
124
  var TEXTURE_FORMATS = {
141
125
  'rgb8unorm-unsized': {
142
126
  gl: _constants.default.RGB,
@@ -776,57 +760,43 @@ var TEXTURE_FORMATS = {
776
760
  }
777
761
  };
778
762
  exports.TEXTURE_FORMATS = TEXTURE_FORMATS;
779
-
780
763
  function getTextureFormat(format) {
781
764
  if (typeof format === 'string') {
782
765
  return format;
783
766
  }
784
-
785
767
  var entry = Object.entries(TEXTURE_FORMATS).find(function (_ref) {
786
768
  var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
787
- entry = _ref2[1];
788
-
769
+ entry = _ref2[1];
789
770
  return entry.gl === format || entry.gl1 === format;
790
771
  });
791
-
792
772
  if (!entry) {
793
773
  throw new Error("Unknown texture format ".concat(format));
794
774
  }
795
-
796
775
  return entry[0];
797
776
  }
798
-
799
777
  function isTextureFormatSupported(gl, formatOrGL) {
800
778
  var format = getTextureFormat(formatOrGL);
801
779
  var info = TEXTURE_FORMATS[format];
802
-
803
780
  if (!info) {
804
781
  return false;
805
782
  }
806
-
807
783
  if ((0, _webglChecks.isWebGL2)(gl) ? info.gl === undefined : info.gl1 === undefined) {
808
784
  return false;
809
785
  }
810
-
811
786
  var extension = info.x || ((0, _webglChecks.isWebGL2)(gl) ? info.gl2ext || info.gl1ext : info.gl1ext);
812
-
813
787
  if (extension) {
814
788
  return Boolean(gl.getExtension(extension));
815
789
  }
816
-
817
790
  return true;
818
791
  }
819
-
820
792
  function getTextureFormatSupport(gl, formatOrGL) {
821
793
  var format = getTextureFormat(formatOrGL);
822
794
  var info = TEXTURE_FORMATS[format];
823
-
824
795
  if (!info) {
825
796
  return {
826
797
  supported: false
827
798
  };
828
799
  }
829
-
830
800
  var supported = (0, _webglChecks.isWebGL2)(gl) ? info.gl === undefined : info.gl1 === undefined;
831
801
  supported = supported && checkTextureFeatures(gl, [info.f]);
832
802
  return {
@@ -837,65 +807,49 @@ function getTextureFormatSupport(gl, formatOrGL) {
837
807
  storable: false
838
808
  };
839
809
  }
840
-
841
810
  function isTextureFormatFilterable(gl, formatOrGL) {
842
811
  var format = getTextureFormat(formatOrGL);
843
-
844
812
  if (!isTextureFormatSupported(gl, format)) {
845
813
  return false;
846
814
  }
847
-
848
815
  try {
849
816
  var decoded = (0, _api.decodeTextureFormat)(format);
850
-
851
817
  if (decoded.signed) {
852
818
  return false;
853
819
  }
854
820
  } catch (_unused) {
855
821
  return false;
856
822
  }
857
-
858
823
  if (format.endsWith('32float')) {
859
824
  return Boolean(gl.getExtension('OES_texture_float_linear'));
860
825
  }
861
-
862
826
  if (format.endsWith('16float')) {
863
827
  return Boolean(gl.getExtension('OES_texture_half_float_linear'));
864
828
  }
865
-
866
829
  return true;
867
830
  }
868
-
869
831
  function isTextureFormatRenderable(gl, formatOrGL) {
870
832
  var format = getTextureFormat(formatOrGL);
871
-
872
833
  if (!isTextureFormatSupported(gl, format)) {
873
834
  return false;
874
835
  }
875
-
876
836
  if (typeof format === 'number') {
877
837
  return false;
878
838
  }
879
-
880
839
  return true;
881
840
  }
882
-
883
841
  function getWebGLTextureFormat(gl, formatOrGL) {
884
842
  var format = getTextureFormat(formatOrGL);
885
843
  var formatInfo = TEXTURE_FORMATS[format];
886
844
  var webglFormat = (0, _webglChecks.isWebGL2)(gl) ? formatInfo === null || formatInfo === void 0 ? void 0 : formatInfo.gl : formatInfo === null || formatInfo === void 0 ? void 0 : formatInfo.gl1;
887
-
888
845
  if (typeof format === 'number') {
889
846
  return webglFormat || format;
890
847
  }
891
-
892
848
  if (webglFormat === undefined) {
893
849
  throw new Error("Unsupported texture format ".concat(format));
894
850
  }
895
-
896
851
  return webglFormat;
897
852
  }
898
-
899
853
  function getWebGLTextureParameters(gl, formatOrGL) {
900
854
  var format = getTextureFormat(formatOrGL);
901
855
  var webglFormat = getWebGLTextureFormat(gl, format);
@@ -907,31 +861,24 @@ function getWebGLTextureParameters(gl, formatOrGL) {
907
861
  compressed: decoded.compressed
908
862
  };
909
863
  }
910
-
911
864
  function getWebGLDepthStencilAttachment(formatOrGL) {
912
865
  var format = getTextureFormat(formatOrGL);
913
-
914
866
  if (typeof format === 'number') {
915
867
  throw new Error('unsupported depth stencil format');
916
868
  }
917
-
918
869
  var info = TEXTURE_FORMATS[format];
919
870
  var attachment = info.attachment;
920
-
921
871
  if (!attachment) {
922
872
  throw new Error('not a depth stencil format');
923
873
  }
924
-
925
874
  return attachment;
926
875
  }
927
-
928
876
  function _checkFloat32ColorAttachment(gl) {
929
877
  var internalFormat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : gl.RGBA;
930
878
  var srcFormat = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _constants.default.RGBA;
931
879
  var srcType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants.default.UNSIGNED_BYTE;
932
880
  var texture = null;
933
881
  var framebuffer = null;
934
-
935
882
  try {
936
883
  texture = gl.createTexture();
937
884
  gl.bindTexture(_constants.default.TEXTURE_2D, texture);
@@ -944,9 +891,7 @@ function _checkFloat32ColorAttachment(gl) {
944
891
  framebuffer = gl.createFramebuffer();
945
892
  gl.bindFramebuffer(_constants.default.FRAMEBUFFER, framebuffer);
946
893
  gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, _constants.default.COLOR_ATTACHMENT0, _constants.default.TEXTURE_2D, texture, 0);
947
-
948
894
  var status = gl.checkFramebufferStatus(_constants.default.FRAMEBUFFER) === _constants.default.FRAMEBUFFER_COMPLETE;
949
-
950
895
  gl.bindTexture(_constants.default.TEXTURE_2D, null);
951
896
  return status;
952
897
  } finally {
@@ -954,10 +899,8 @@ function _checkFloat32ColorAttachment(gl) {
954
899
  gl.deleteFramebuffer(framebuffer);
955
900
  }
956
901
  }
957
-
958
902
  var DATA_FORMAT_CHANNELS = (_DATA_FORMAT_CHANNELS = {}, (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RED, 1), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RED_INTEGER, 1), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RG, 2), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RG_INTEGER, 2), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RGB, 3), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RGB_INTEGER, 3), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RGBA, 4), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.RGBA_INTEGER, 4), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.DEPTH_COMPONENT, 1), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.DEPTH_STENCIL, 1), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.ALPHA, 1), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.LUMINANCE, 1), (0, _defineProperty2.default)(_DATA_FORMAT_CHANNELS, _constants.default.LUMINANCE_ALPHA, 2), _DATA_FORMAT_CHANNELS);
959
903
  var TYPE_SIZES = (_TYPE_SIZES = {}, (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.FLOAT, 4), (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.UNSIGNED_INT, 4), (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.INT, 4), (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.UNSIGNED_SHORT, 2), (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.SHORT, 2), (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.HALF_FLOAT, 2), (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.BYTE, 1), (0, _defineProperty2.default)(_TYPE_SIZES, _constants.default.UNSIGNED_BYTE, 1), _TYPE_SIZES);
960
-
961
904
  function getTextureFormatBytesPerPixel(gl, formatOrGL) {
962
905
  var format = getTextureFormat(formatOrGL);
963
906
  var params = getWebGLTextureParameters(gl, format);
@@ -965,56 +908,41 @@ function getTextureFormatBytesPerPixel(gl, formatOrGL) {
965
908
  var channelSize = TYPE_SIZES[params.type] || 1;
966
909
  return channels * channelSize;
967
910
  }
968
-
969
911
  function getWebGLPixelDataFormat(dataFormat, integer, normalized, format) {
970
912
  if (format === _constants.default.RGBA || format === _constants.default.RGB) {
971
913
  return format;
972
914
  }
973
-
974
915
  switch (dataFormat) {
975
916
  case 'r':
976
917
  return integer && !normalized ? _constants.default.RED_INTEGER : _constants.default.RED;
977
-
978
918
  case 'rg':
979
919
  return integer && !normalized ? _constants.default.RG_INTEGER : _constants.default.RG;
980
-
981
920
  case 'rgb':
982
921
  return integer && !normalized ? _constants.default.RGB_INTEGER : _constants.default.RGB;
983
-
984
922
  case 'rgba':
985
923
  return integer && !normalized ? _constants.default.RGBA_INTEGER : _constants.default.RGBA;
986
-
987
924
  default:
988
925
  return _constants.default.RGBA;
989
926
  }
990
927
  }
991
-
992
928
  function getWebGLDataType(dataType) {
993
929
  switch (dataType) {
994
930
  case 'uint8':
995
931
  return _constants.default.UNSIGNED_BYTE;
996
-
997
932
  case 'sint8':
998
933
  return _constants.default.BYTE;
999
-
1000
934
  case 'uint16':
1001
935
  return _constants.default.UNSIGNED_SHORT;
1002
-
1003
936
  case 'sint16':
1004
937
  return _constants.default.SHORT;
1005
-
1006
938
  case 'uint32':
1007
939
  return _constants.default.UNSIGNED_INT;
1008
-
1009
940
  case 'sint32':
1010
941
  return _constants.default.INT;
1011
-
1012
942
  case 'float16':
1013
943
  return _constants.default.HALF_FLOAT;
1014
-
1015
944
  case 'float32':
1016
945
  return _constants.default.FLOAT;
1017
-
1018
946
  default:
1019
947
  return _constants.default.UNSIGNED_BYTE;
1020
948
  }