@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,35 +1,25 @@
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
  });
8
- exports.withGLParameters = withGLParameters;
9
- exports.withDeviceParameters = withDeviceParameters;
10
- exports.setDeviceParameters = setDeviceParameters;
11
7
  exports.convertCompareFunction = convertCompareFunction;
12
8
  exports.convertToCompareFunction = convertToCompareFunction;
13
-
9
+ exports.setDeviceParameters = setDeviceParameters;
10
+ exports.withDeviceParameters = withDeviceParameters;
11
+ exports.withGLParameters = withGLParameters;
14
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
13
  var _api = require("@luma.gl/api");
17
-
18
14
  var _constants = _interopRequireDefault(require("@luma.gl/constants"));
19
-
20
15
  var _trackContextState = require("../../context/state-tracker/track-context-state");
21
-
22
16
  var _unifiedParameterApi = require("../../context/parameters/unified-parameter-api");
23
-
24
17
  var _webglDevice = _interopRequireDefault(require("../webgl-device"));
25
-
26
18
  function withGLParameters(device, parameters, func) {
27
19
  if ((0, _api.isObjectEmpty)(parameters)) {
28
20
  return func(device);
29
21
  }
30
-
31
22
  (0, _trackContextState.pushContextState)(device.gl);
32
-
33
23
  try {
34
24
  (0, _unifiedParameterApi.setParameters)(device, parameters);
35
25
  return func(device);
@@ -37,14 +27,11 @@ function withGLParameters(device, parameters, func) {
37
27
  (0, _trackContextState.popContextState)(device.gl);
38
28
  }
39
29
  }
40
-
41
30
  function withDeviceParameters(device, parameters, func) {
42
31
  if ((0, _api.isObjectEmpty)(parameters)) {
43
32
  return func(device);
44
33
  }
45
-
46
34
  (0, _trackContextState.pushContextState)(device.gl);
47
-
48
35
  try {
49
36
  setDeviceParameters(device, parameters);
50
37
  return func(device);
@@ -52,69 +39,55 @@ function withDeviceParameters(device, parameters, func) {
52
39
  (0, _trackContextState.popContextState)(device.gl);
53
40
  }
54
41
  }
55
-
56
42
  function setDeviceParameters(device, parameters) {
57
43
  var webglDevice = _webglDevice.default.attach(device);
58
-
59
44
  var gl = webglDevice.gl;
60
-
61
45
  if (parameters.cullMode) {
62
46
  switch (parameters.cullMode) {
63
47
  case 'none':
64
48
  gl.disable(_constants.default.CULL_FACE);
65
49
  break;
66
-
67
50
  case 'front':
68
51
  gl.enable(_constants.default.CULL_FACE);
69
52
  gl.cullFace(_constants.default.FRONT);
70
53
  break;
71
-
72
54
  case 'back':
73
55
  gl.enable(_constants.default.CULL_FACE);
74
56
  gl.cullFace(_constants.default.BACK);
75
57
  break;
76
58
  }
77
59
  }
78
-
79
60
  if (parameters.frontFace) {
80
61
  gl.frontFace(map('frontFace', parameters.frontFace, {
81
62
  ccw: _constants.default.CCW,
82
63
  cw: _constants.default.CW
83
64
  }));
84
65
  }
85
-
86
66
  if (parameters.depthBias !== undefined) {
87
67
  gl.polygonOffset(parameters.depthBias, parameters.depthBiasSlopeScale || 0);
88
68
  }
89
-
90
69
  if (parameters.depthWriteEnabled !== undefined) {
91
70
  gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));
92
71
  }
93
-
94
72
  if (parameters.depthCompare) {
95
73
  parameters.depthCompare !== 'always' ? gl.enable(_constants.default.DEPTH_TEST) : gl.disable(_constants.default.DEPTH_TEST);
96
74
  gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));
97
75
  }
98
-
99
76
  if (parameters.stencilWriteMask) {
100
77
  var mask = parameters.stencilWriteMask;
101
78
  gl.stencilMaskSeparate(_constants.default.FRONT, mask);
102
79
  gl.stencilMaskSeparate(_constants.default.BACK, mask);
103
80
  }
104
-
105
81
  if (parameters.stencilReadMask) {
106
82
  _api.log.warn('stencilReadMask not supported under WebGL');
107
83
  }
108
-
109
84
  if (parameters.stencilCompare) {
110
85
  var _mask = parameters.stencilReadMask || 0xffffffff;
111
-
112
86
  var glValue = convertCompareFunction('depthCompare', parameters.stencilCompare);
113
87
  parameters.stencilCompare !== 'always' ? gl.enable(_constants.default.STENCIL_TEST) : gl.disable(_constants.default.STENCIL_TEST);
114
88
  gl.stencilFuncSeparate(_constants.default.FRONT, glValue, 0, _mask);
115
89
  gl.stencilFuncSeparate(_constants.default.BACK, glValue, 0, _mask);
116
90
  }
117
-
118
91
  if (parameters.stencilPassOperation && parameters.stencilFailOperation && parameters.stencilDepthFailOperation) {
119
92
  var dppass = convertStencilOperation('stencilPassOperation', parameters.stencilPassOperation);
120
93
  var sfail = convertStencilOperation('stencilFailOperation', parameters.stencilFailOperation);
@@ -123,7 +96,6 @@ function setDeviceParameters(device, parameters) {
123
96
  gl.stencilOpSeparate(_constants.default.BACK, sfail, dpfail, dppass);
124
97
  }
125
98
  }
126
-
127
99
  function convertCompareFunction(parameter, value) {
128
100
  return map(parameter, value, {
129
101
  'never': _constants.default.NEVER,
@@ -136,13 +108,10 @@ function convertCompareFunction(parameter, value) {
136
108
  'always': _constants.default.ALWAYS
137
109
  });
138
110
  }
139
-
140
111
  function convertToCompareFunction(parameter, value) {
141
112
  var _map;
142
-
143
113
  return map(parameter, value, (_map = {}, (0, _defineProperty2.default)(_map, _constants.default.NEVER, 'never'), (0, _defineProperty2.default)(_map, _constants.default.LESS, 'less'), (0, _defineProperty2.default)(_map, _constants.default.EQUAL, 'equal'), (0, _defineProperty2.default)(_map, _constants.default.LEQUAL, 'less-equal'), (0, _defineProperty2.default)(_map, _constants.default.GREATER, 'greater'), (0, _defineProperty2.default)(_map, _constants.default.NOTEQUAL, 'not-equal'), (0, _defineProperty2.default)(_map, _constants.default.GEQUAL, 'greater-equal'), (0, _defineProperty2.default)(_map, _constants.default.ALWAYS, 'always'), _map));
144
114
  }
145
-
146
115
  function convertStencilOperation(parameter, value) {
147
116
  return map(parameter, value, {
148
117
  'keep': _constants.default.KEEP,
@@ -155,19 +124,15 @@ function convertStencilOperation(parameter, value) {
155
124
  'decrement-wrap': _constants.default.DECR_WRAP
156
125
  });
157
126
  }
158
-
159
127
  function message(parameter, value) {
160
128
  return "Illegal parameter ".concat(value, " for ").concat(parameter);
161
129
  }
162
-
163
130
  function map(parameter, value, valueMap) {
164
131
  if (!(value in valueMap)) {
165
132
  throw new Error(message(parameter, value));
166
133
  }
167
-
168
134
  return valueMap[value];
169
135
  }
170
-
171
136
  function mapBoolean(parameter, value) {
172
137
  return value;
173
138
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapter/converters/device-parameters.ts"],"names":["withGLParameters","device","parameters","func","gl","withDeviceParameters","setDeviceParameters","webglDevice","WebGLDevice","attach","cullMode","disable","GL","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","log","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":["_api","require","_constants","_interopRequireDefault","_trackContextState","_unifiedParameterApi","_webglDevice","withGLParameters","device","parameters","func","isObjectEmpty","pushContextState","gl","setParameters","popContextState","withDeviceParameters","setDeviceParameters","webglDevice","WebGLDevice","attach","cullMode","disable","GL","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","log","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","_map","_defineProperty2","default","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/**\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"],"mappings":"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"}
@@ -1,44 +1,32 @@
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
  });
8
- exports.isRenderbufferFormatSupported = isRenderbufferFormatSupported;
9
- exports.getRenderbufferFormatBytesPerPixel = getRenderbufferFormatBytesPerPixel;
10
7
  exports.default = void 0;
11
-
8
+ exports.getRenderbufferFormatBytesPerPixel = getRenderbufferFormatBytesPerPixel;
9
+ exports.isRenderbufferFormatSupported = isRenderbufferFormatSupported;
12
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
11
  var _constants = _interopRequireDefault(require("@luma.gl/constants"));
15
-
16
12
  var _webglChecks = require("../../context/context/webgl-checks");
17
-
18
13
  var _RENDERBUFFER_FORMATS;
19
-
20
14
  function isRenderbufferFormatSupported(gl, format) {
21
15
  var info = RENDERBUFFER_FORMATS[format];
22
-
23
16
  if (!info) {
24
17
  return false;
25
18
  }
26
-
27
19
  if (info.ext) {
28
20
  return Boolean(gl.getExtension(info.ext));
29
21
  }
30
-
31
22
  if (info.gl2) {
32
23
  return (0, _webglChecks.isWebGL2)(gl);
33
24
  }
34
-
35
25
  return true;
36
26
  }
37
-
38
27
  function getRenderbufferFormatBytesPerPixel(format) {
39
28
  return RENDERBUFFER_FORMATS[format].bpp;
40
29
  }
41
-
42
30
  var EXT_FLOAT_WEBGL2 = 'EXT_color_buffer_float';
43
31
  var RENDERBUFFER_FORMATS = (_RENDERBUFFER_FORMATS = {}, (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.DEPTH_COMPONENT16, {
44
32
  bpp: 2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/adapter/converters/renderbuffer-formats.ts"],"names":["isRenderbufferFormatSupported","gl","format","info","RENDERBUFFER_FORMATS","ext","Boolean","getExtension","gl2","getRenderbufferFormatBytesPerPixel","bpp","EXT_FLOAT_WEBGL2","GL","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":["_constants","_interopRequireDefault","require","_webglChecks","_RENDERBUFFER_FORMATS","isRenderbufferFormatSupported","gl","format","info","RENDERBUFFER_FORMATS","ext","Boolean","getExtension","gl2","isWebGL2","getRenderbufferFormatBytesPerPixel","bpp","EXT_FLOAT_WEBGL2","_defineProperty2","default","GL","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","_default","exports"],"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,243 +1,180 @@
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
  });
8
7
  exports.convertSamplerParametersToWebGL = convertSamplerParametersToWebGL;
9
8
  exports.convertToSamplerParameters = convertToSamplerParameters;
10
9
  exports.updateSamplerParametersForNPOT = updateSamplerParametersForNPOT;
11
-
12
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
11
  var _constants = _interopRequireDefault(require("@luma.gl/constants"));
15
-
16
12
  var _deviceParameters = require("./device-parameters");
17
-
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
19
-
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21
-
13
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22
15
  function convertSamplerParametersToWebGL(props) {
23
16
  var params = {};
24
-
25
17
  if (props.addressModeU) {
26
18
  params[_constants.default.TEXTURE_WRAP_S] = convertAddressMode(props.addressModeU);
27
19
  }
28
-
29
20
  if (props.addressModeV) {
30
21
  params[_constants.default.TEXTURE_WRAP_T] = convertAddressMode(props.addressModeV);
31
22
  }
32
-
33
23
  if (props.addressModeW) {
34
24
  params[_constants.default.TEXTURE_WRAP_R] = convertAddressMode(props.addressModeW);
35
25
  }
36
-
37
26
  if (props.magFilter) {
38
27
  params[_constants.default.TEXTURE_MAG_FILTER] = convertMaxFilterMode(props.magFilter);
39
28
  }
40
-
41
29
  if (props.minFilter || props.mipmapFilter) {
42
30
  params[_constants.default.TEXTURE_MIN_FILTER] = convertMinFilterMode(props.minFilter || 'linear', props.mipmapFilter);
43
31
  }
44
-
45
32
  if (props.lodMinClamp !== undefined) {
46
33
  params[_constants.default.TEXTURE_MIN_LOD] = props.lodMinClamp;
47
34
  }
48
-
49
35
  if (props.lodMaxClamp !== undefined) {
50
36
  params[_constants.default.TEXTURE_MAX_LOD] = props.lodMaxClamp;
51
37
  }
52
-
53
38
  if (props.type === 'comparison-sampler') {
54
39
  params[_constants.default.TEXTURE_COMPARE_MODE] = _constants.default.COMPARE_REF_TO_TEXTURE;
55
40
  }
56
-
57
41
  if (props.compare) {
58
42
  params[_constants.default.TEXTURE_COMPARE_FUNC] = (0, _deviceParameters.convertCompareFunction)('compare', props.compare);
59
43
  }
60
-
61
44
  if (props.maxAnisotropy) {
62
45
  params[_constants.default.TEXTURE_MAX_ANISOTROPY_EXT] = props.maxAnisotropy;
63
46
  }
64
-
65
47
  return params;
66
48
  }
67
-
68
49
  function convertAddressMode(addressMode) {
69
50
  switch (addressMode) {
70
51
  case 'clamp-to-edge':
71
52
  return _constants.default.CLAMP_TO_EDGE;
72
-
73
53
  case 'repeat':
74
54
  return _constants.default.REPEAT;
75
-
76
55
  case 'mirror-repeat':
77
56
  return _constants.default.MIRRORED_REPEAT;
78
57
  }
79
58
  }
80
-
81
59
  function convertMaxFilterMode(maxFilter) {
82
60
  switch (maxFilter) {
83
61
  case 'nearest':
84
62
  return _constants.default.NEAREST;
85
-
86
63
  case 'linear':
87
64
  return _constants.default.LINEAR;
88
65
  }
89
66
  }
90
-
91
67
  function convertMinFilterMode(minFilter, mipmapFilter) {
92
68
  if (!mipmapFilter) {
93
69
  return convertMaxFilterMode(minFilter);
94
70
  }
95
-
96
71
  switch (minFilter) {
97
72
  case 'nearest':
98
73
  return mipmapFilter === 'nearest' ? _constants.default.NEAREST_MIPMAP_NEAREST : _constants.default.NEAREST_MIPMAP_LINEAR;
99
-
100
74
  case 'linear':
101
75
  return mipmapFilter === 'nearest' ? _constants.default.LINEAR_MIPMAP_NEAREST : _constants.default.LINEAR_MIPMAP_LINEAR;
102
76
  }
103
77
  }
104
-
105
78
  function convertToSamplerParameters(params) {
106
79
  var props = {};
107
-
108
80
  if (params[_constants.default.TEXTURE_WRAP_S]) {
109
81
  props.addressModeU = convertToAddressMode(params[_constants.default.TEXTURE_WRAP_S]);
110
82
  }
111
-
112
83
  if (params[_constants.default.TEXTURE_WRAP_T]) {
113
84
  props.addressModeV = convertToAddressMode(params[_constants.default.TEXTURE_WRAP_T]);
114
85
  }
115
-
116
86
  if (params[_constants.default.TEXTURE_WRAP_R]) {
117
87
  props.addressModeW = convertToAddressMode(params[_constants.default.TEXTURE_WRAP_R]);
118
88
  }
119
-
120
89
  if (params[_constants.default.TEXTURE_MAG_FILTER]) {
121
90
  props.magFilter = convertToMaxFilterMode(params[_constants.default.TEXTURE_MAG_FILTER]);
122
91
  }
123
-
124
92
  if (params[_constants.default.TEXTURE_MIN_FILTER]) {
125
93
  props.minFilter = convertToMinFilterMode(params[_constants.default.TEXTURE_MIN_FILTER]);
126
94
  }
127
-
128
95
  if (params[_constants.default.TEXTURE_MIN_FILTER]) {
129
96
  props.mipmapFilter = convertToMipmapFilterMode(params[_constants.default.TEXTURE_MIN_FILTER]);
130
97
  }
131
-
132
98
  if (params[_constants.default.TEXTURE_MIN_LOD]) {
133
99
  props.lodMinClamp = params[_constants.default.TEXTURE_MIN_LOD];
134
100
  }
135
-
136
101
  if (params[_constants.default.TEXTURE_MAX_LOD]) {
137
102
  props.lodMaxClamp = params[_constants.default.TEXTURE_MAX_LOD];
138
103
  }
139
-
140
104
  if (params[_constants.default.TEXTURE_COMPARE_MODE]) {
141
105
  props.type = params[_constants.default.TEXTURE_COMPARE_MODE] === _constants.default.COMPARE_REF_TO_TEXTURE ? 'comparison-sampler' : 'color-sampler';
142
106
  }
143
-
144
107
  if (params[_constants.default.TEXTURE_COMPARE_FUNC]) {
145
108
  props.compare = (0, _deviceParameters.convertToCompareFunction)('compare', params[_constants.default.TEXTURE_COMPARE_FUNC]);
146
109
  }
147
-
148
110
  if (params[_constants.default.TEXTURE_MAX_ANISOTROPY_EXT]) {
149
111
  props.maxAnisotropy = params[_constants.default.TEXTURE_MAX_ANISOTROPY_EXT];
150
112
  }
151
-
152
113
  return props;
153
114
  }
154
-
155
115
  function convertToAddressMode(addressMode) {
156
116
  switch (addressMode) {
157
117
  case _constants.default.CLAMP_TO_EDGE:
158
118
  return 'clamp-to-edge';
159
-
160
119
  case _constants.default.REPEAT:
161
120
  return 'repeat';
162
-
163
121
  case _constants.default.MIRRORED_REPEAT:
164
122
  return 'mirror-repeat';
165
-
166
123
  default:
167
124
  throw new Error('address');
168
125
  }
169
126
  }
170
-
171
127
  function convertToMaxFilterMode(filterMode) {
172
128
  switch (filterMode) {
173
129
  case _constants.default.NEAREST:
174
130
  return 'nearest';
175
-
176
131
  case _constants.default.LINEAR:
177
132
  return 'linear';
178
-
179
133
  default:
180
134
  throw new Error('maxfilter');
181
135
  }
182
136
  }
183
-
184
137
  function convertToMinFilterMode(filterMode) {
185
138
  switch (filterMode) {
186
139
  case _constants.default.NEAREST:
187
140
  return 'nearest';
188
-
189
141
  case _constants.default.LINEAR:
190
142
  return 'linear';
191
-
192
143
  case _constants.default.NEAREST_MIPMAP_NEAREST:
193
144
  return 'nearest';
194
-
195
145
  case _constants.default.LINEAR_MIPMAP_NEAREST:
196
146
  return 'linear';
197
-
198
147
  case _constants.default.NEAREST_MIPMAP_LINEAR:
199
148
  return 'nearest';
200
-
201
149
  case _constants.default.LINEAR_MIPMAP_LINEAR:
202
150
  return 'linear';
203
-
204
151
  default:
205
152
  throw new Error('minfilter');
206
153
  }
207
154
  }
208
-
209
155
  function convertToMipmapFilterMode(filterMode) {
210
156
  switch (filterMode) {
211
157
  case _constants.default.NEAREST:
212
158
  return 'nearest';
213
-
214
159
  case _constants.default.LINEAR:
215
160
  return 'linear';
216
-
217
161
  case _constants.default.NEAREST_MIPMAP_NEAREST:
218
162
  return 'nearest';
219
-
220
163
  case _constants.default.LINEAR_MIPMAP_NEAREST:
221
164
  return 'nearest';
222
-
223
165
  case _constants.default.NEAREST_MIPMAP_LINEAR:
224
166
  return 'linear';
225
-
226
167
  case _constants.default.LINEAR_MIPMAP_LINEAR:
227
168
  return 'linear';
228
-
229
169
  default:
230
170
  throw new Error('mipmap');
231
171
  }
232
172
  }
233
-
234
173
  function updateSamplerParametersForNPOT(parameters) {
235
174
  var newParameters = _objectSpread({}, parameters);
236
-
237
175
  if (parameters[_constants.default.TEXTURE_MIN_FILTER] !== _constants.default.NEAREST) {
238
176
  newParameters[_constants.default.TEXTURE_MIN_FILTER] = _constants.default.LINEAR;
239
177
  }
240
-
241
178
  newParameters[_constants.default.TEXTURE_WRAP_S] = _constants.default.CLAMP_TO_EDGE;
242
179
  newParameters[_constants.default.TEXTURE_WRAP_T] = _constants.default.CLAMP_TO_EDGE;
243
180
  return newParameters;