@luma.gl/webgl 9.0.0-alpha.15 → 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
@@ -10,68 +10,46 @@ import WEBGLSampler from './webgl-sampler';
10
10
  export default class WEBGLTexture extends Texture {
11
11
  constructor(device, props) {
12
12
  var _this$props;
13
-
14
13
  super(device, {
15
14
  format: GL.RGBA,
16
15
  ...props
17
16
  });
18
-
19
17
  _defineProperty(this, "MAX_ATTRIBUTES", void 0);
20
-
21
18
  _defineProperty(this, "device", void 0);
22
-
23
19
  _defineProperty(this, "gl", void 0);
24
-
25
20
  _defineProperty(this, "gl2", void 0);
26
-
27
21
  _defineProperty(this, "handle", void 0);
28
-
29
22
  _defineProperty(this, "data", void 0);
30
-
31
23
  _defineProperty(this, "width", undefined);
32
-
33
24
  _defineProperty(this, "height", undefined);
34
-
35
25
  _defineProperty(this, "depth", undefined);
36
-
37
26
  _defineProperty(this, "format", undefined);
38
-
39
27
  _defineProperty(this, "type", undefined);
40
-
41
28
  _defineProperty(this, "dataFormat", undefined);
42
-
43
29
  _defineProperty(this, "mipmaps", undefined);
44
-
45
30
  _defineProperty(this, "target", void 0);
46
-
47
31
  _defineProperty(this, "textureUnit", undefined);
48
-
49
32
  _defineProperty(this, "sampler", undefined);
50
-
51
33
  _defineProperty(this, "loaded", false);
52
-
53
34
  _defineProperty(this, "_video", void 0);
54
-
55
35
  this.device = cast(device);
56
36
  this.gl = this.device.gl;
57
37
  this.gl2 = this.device.gl2;
58
38
  this.handle = this.props.handle || this.gl.createTexture();
59
- this.handle.__SPECTOR_Metadata = { ...this.props,
39
+ this.handle.__SPECTOR_Metadata = {
40
+ ...this.props,
60
41
  data: typeof this.props.data
61
42
  };
62
43
  this.target = getWebGLTextureTarget(this.props);
63
44
  this.loaded = false;
64
-
65
45
  if (typeof ((_this$props = this.props) === null || _this$props === void 0 ? void 0 : _this$props.data) === 'string') {
66
46
  Object.assign(this.props, {
67
47
  data: loadImage(this.props.data)
68
48
  });
69
49
  }
70
-
71
50
  this.initialize(this.props);
72
51
  Object.seal(this);
73
52
  }
74
-
75
53
  destroy() {
76
54
  if (this.handle) {
77
55
  this.gl.deleteTexture(this.handle);
@@ -80,18 +58,15 @@ export default class WEBGLTexture extends Texture {
80
58
  this.destroyed = true;
81
59
  }
82
60
  }
83
-
84
61
  toString() {
85
62
  return "Texture(".concat(this.id, ",").concat(this.width, "x").concat(this.height, ")");
86
63
  }
87
-
88
- initialize(props = {}) {
64
+ initialize() {
65
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
89
66
  if (this.props.dimension === 'cube') {
90
67
  return this.initializeCube(props);
91
68
  }
92
-
93
69
  let data = props.data;
94
-
95
70
  if (data instanceof Promise) {
96
71
  data.then(resolvedImageData => this.initialize(Object.assign({}, props, {
97
72
  pixels: resolvedImageData,
@@ -99,15 +74,12 @@ export default class WEBGLTexture extends Texture {
99
74
  })));
100
75
  return this;
101
76
  }
102
-
103
77
  const isVideo = typeof HTMLVideoElement !== 'undefined' && data instanceof HTMLVideoElement;
104
-
105
78
  if (isVideo && data.readyState < HTMLVideoElement.HAVE_METADATA) {
106
79
  this._video = null;
107
80
  data.addEventListener('loadeddata', () => this.initialize(props));
108
81
  return this;
109
82
  }
110
-
111
83
  let {
112
84
  parameters = {}
113
85
  } = props;
@@ -117,11 +89,9 @@ export default class WEBGLTexture extends Texture {
117
89
  pixelStore = {},
118
90
  textureUnit = undefined
119
91
  } = props;
120
-
121
92
  if (!data) {
122
93
  data = pixels;
123
94
  }
124
-
125
95
  let {
126
96
  width,
127
97
  height,
@@ -156,17 +126,14 @@ export default class WEBGLTexture extends Texture {
156
126
  this.type = type;
157
127
  this.dataFormat = dataFormat;
158
128
  this.textureUnit = textureUnit;
159
-
160
129
  if (Number.isFinite(this.textureUnit)) {
161
130
  this.gl.activeTexture(GL.TEXTURE0 + this.textureUnit);
162
131
  this.gl.bindTexture(this.target, this.handle);
163
132
  }
164
-
165
133
  if (mipmaps && this.device.isWebGL1 && isNPOT(this.width, this.height)) {
166
134
  log.warn("texture: ".concat(this, " is Non-Power-Of-Two, disabling mipmaps"))();
167
135
  mipmaps = false;
168
136
  }
169
-
170
137
  this.mipmaps = mipmaps;
171
138
  this.setImageData({
172
139
  data,
@@ -180,17 +147,13 @@ export default class WEBGLTexture extends Texture {
180
147
  compressed
181
148
  });
182
149
  this.setSampler(props.sampler);
183
-
184
150
  this._setSamplerParameters(parameters);
185
-
186
151
  if (mipmaps) {
187
152
  this.generateMipmap();
188
153
  }
189
-
190
154
  if (recreate) {
191
155
  this.data = data;
192
156
  }
193
-
194
157
  if (isVideo) {
195
158
  this._video = {
196
159
  video: data,
@@ -198,10 +161,8 @@ export default class WEBGLTexture extends Texture {
198
161
  lastTime: data.readyState >= HTMLVideoElement.HAVE_CURRENT_DATA ? data.currentTime : -1
199
162
  };
200
163
  }
201
-
202
164
  return this;
203
165
  }
204
-
205
166
  initializeCube(props) {
206
167
  const {
207
168
  mipmaps = true,
@@ -209,21 +170,17 @@ export default class WEBGLTexture extends Texture {
209
170
  } = props;
210
171
  this.setCubeMapImageData(props).then(() => {
211
172
  this.loaded = true;
212
-
213
173
  if (mipmaps) {
214
174
  this.generateMipmap(props);
215
175
  }
216
-
217
176
  this.setSampler(props.sampler);
218
-
219
177
  this._setSamplerParameters(parameters);
220
178
  });
221
179
  return this;
222
180
  }
223
-
224
- setSampler(sampler = {}) {
181
+ setSampler() {
182
+ let sampler = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
225
183
  let samplerProps;
226
-
227
184
  if (sampler instanceof WEBGLSampler) {
228
185
  this.sampler = sampler;
229
186
  samplerProps = sampler.props;
@@ -231,21 +188,16 @@ export default class WEBGLTexture extends Texture {
231
188
  this.sampler = new WEBGLSampler(this.device, sampler);
232
189
  samplerProps = sampler;
233
190
  }
234
-
235
191
  const parameters = convertSamplerParametersToWebGL(samplerProps);
236
-
237
192
  this._setSamplerParameters(parameters);
238
-
239
193
  return this;
240
194
  }
241
-
242
195
  resize(options) {
243
196
  const {
244
197
  height,
245
198
  width,
246
199
  mipmaps = false
247
200
  } = options;
248
-
249
201
  if (width !== this.width || height !== this.height) {
250
202
  return this.initialize({
251
203
  width,
@@ -256,10 +208,8 @@ export default class WEBGLTexture extends Texture {
256
208
  mipmaps
257
209
  });
258
210
  }
259
-
260
211
  return this;
261
212
  }
262
-
263
213
  update() {
264
214
  if (this._video) {
265
215
  const {
@@ -267,30 +217,25 @@ export default class WEBGLTexture extends Texture {
267
217
  parameters,
268
218
  lastTime
269
219
  } = this._video;
270
-
271
220
  if (lastTime === video.currentTime || video.readyState < HTMLVideoElement.HAVE_CURRENT_DATA) {
272
221
  return;
273
222
  }
274
-
275
223
  this.setSubImageData({
276
224
  data: video,
277
225
  parameters
278
226
  });
279
-
280
227
  if (this.mipmaps) {
281
228
  this.generateMipmap();
282
229
  }
283
-
284
230
  this._video.lastTime = video.currentTime;
285
231
  }
286
232
  }
287
-
288
- generateMipmap(params = {}) {
233
+ generateMipmap() {
234
+ let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
289
235
  if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
290
236
  log.warn("texture: ".concat(this, " is Non-Power-Of-Two, disabling mipmaping"))();
291
237
  return this;
292
238
  }
293
-
294
239
  this.mipmaps = true;
295
240
  this.gl.bindTexture(this.target, this.handle);
296
241
  withParameters(this.gl, params, () => {
@@ -299,12 +244,10 @@ export default class WEBGLTexture extends Texture {
299
244
  this.gl.bindTexture(this.target, null);
300
245
  return this;
301
246
  }
302
-
303
247
  setImageData(options) {
304
248
  if (this.props.dimension === '3d') {
305
249
  return this.setImageData3D(options);
306
250
  }
307
-
308
251
  this.trackDeallocatedMemory('Texture');
309
252
  const {
310
253
  target = this.target,
@@ -322,11 +265,9 @@ export default class WEBGLTexture extends Texture {
322
265
  dataFormat = this.dataFormat,
323
266
  compressed = false
324
267
  } = options;
325
-
326
268
  if (!data) {
327
269
  data = pixels;
328
270
  }
329
-
330
271
  ({
331
272
  type,
332
273
  dataFormat,
@@ -360,66 +301,57 @@ export default class WEBGLTexture extends Texture {
360
301
  case 'null':
361
302
  gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data);
362
303
  break;
363
-
364
304
  case 'typed-array':
365
305
  gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data, offset);
366
306
  break;
367
-
368
307
  case 'buffer':
369
308
  gl2 = this.device.assertWebGL2();
370
309
  gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle || data);
371
310
  gl2.texImage2D(target, level, format, width, height, 0, dataFormat, type, offset);
372
311
  gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, null);
373
312
  break;
374
-
375
313
  case 'browser-object':
376
314
  if (this.device.isWebGL2) {
377
315
  gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data);
378
316
  } else {
379
317
  gl.texImage2D(target, level, format, dataFormat, type, data);
380
318
  }
381
-
382
319
  break;
383
-
384
320
  case 'compressed':
385
321
  for (const [levelIndex, levelData] of data.entries()) {
386
322
  gl.compressedTexImage2D(target, levelIndex, levelData.format, levelData.width, levelData.height, 0, levelData.data);
387
323
  }
388
-
389
324
  break;
390
-
391
325
  default:
392
326
  assert(false, 'Unknown image data type');
393
327
  }
394
328
  });
395
-
396
329
  if (data && data.byteLength) {
397
330
  this.trackAllocatedMemory(data.byteLength, 'Texture');
398
331
  } else {
399
332
  const bytesPerPixel = getTextureFormatBytesPerPixel(this.gl, this.props.format);
400
333
  this.trackAllocatedMemory(this.width * this.height * bytesPerPixel, 'Texture');
401
334
  }
402
-
403
335
  this.loaded = true;
404
336
  return this;
405
337
  }
406
-
407
- setSubImageData({
408
- target = this.target,
409
- pixels = null,
410
- data = null,
411
- x = 0,
412
- y = 0,
413
- width = this.width,
414
- height = this.height,
415
- level = 0,
416
- format = this.format,
417
- type = this.type,
418
- dataFormat = this.dataFormat,
419
- compressed = false,
420
- offset = 0,
421
- parameters = {}
422
- }) {
338
+ setSubImageData(_ref) {
339
+ let {
340
+ target = this.target,
341
+ pixels = null,
342
+ data = null,
343
+ x = 0,
344
+ y = 0,
345
+ width = this.width,
346
+ height = this.height,
347
+ level = 0,
348
+ format = this.format,
349
+ type = this.type,
350
+ dataFormat = this.dataFormat,
351
+ compressed = false,
352
+ offset = 0,
353
+ parameters = {}
354
+ } = _ref;
423
355
  ({
424
356
  type,
425
357
  dataFormat,
@@ -436,22 +368,18 @@ export default class WEBGLTexture extends Texture {
436
368
  height
437
369
  }));
438
370
  assert(this.depth === 1, 'texSubImage not supported for 3D textures');
439
-
440
371
  if (!data) {
441
372
  data = pixels;
442
373
  }
443
-
444
374
  if (data && data.data) {
445
375
  const ndarray = data;
446
376
  data = ndarray.data;
447
377
  width = ndarray.shape[0];
448
378
  height = ndarray.shape[1];
449
379
  }
450
-
451
380
  if (data instanceof WEBGLBuffer) {
452
381
  data = data.handle;
453
382
  }
454
-
455
383
  this.gl.bindTexture(this.target, this.handle);
456
384
  withParameters(this.gl, parameters, () => {
457
385
  if (compressed) {
@@ -474,89 +402,78 @@ export default class WEBGLTexture extends Texture {
474
402
  });
475
403
  this.gl.bindTexture(this.target, null);
476
404
  }
477
-
478
- copyFramebuffer(opts = {}) {
405
+ copyFramebuffer() {
406
+ let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
479
407
  log.error('Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})')();
480
408
  return null;
481
409
  }
482
-
483
410
  getActiveUnit() {
484
411
  return this.gl.getParameter(GL.ACTIVE_TEXTURE) - GL.TEXTURE0;
485
412
  }
486
-
487
- bind(textureUnit = this.textureUnit) {
413
+ bind() {
414
+ let textureUnit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.textureUnit;
488
415
  const {
489
416
  gl
490
417
  } = this;
491
-
492
418
  if (textureUnit !== undefined) {
493
419
  this.textureUnit = textureUnit;
494
420
  gl.activeTexture(gl.TEXTURE0 + textureUnit);
495
421
  }
496
-
497
422
  gl.bindTexture(this.target, this.handle);
498
423
  return textureUnit;
499
424
  }
500
-
501
- unbind(textureUnit = this.textureUnit) {
425
+ unbind() {
426
+ let textureUnit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.textureUnit;
502
427
  const {
503
428
  gl
504
429
  } = this;
505
-
506
430
  if (textureUnit !== undefined) {
507
431
  this.textureUnit = textureUnit;
508
432
  gl.activeTexture(gl.TEXTURE0 + textureUnit);
509
433
  }
510
-
511
434
  gl.bindTexture(this.target, null);
512
435
  return textureUnit;
513
436
  }
514
-
515
- _getDataType({
516
- data,
517
- compressed = false
518
- }) {
437
+ _getDataType(_ref2) {
438
+ let {
439
+ data,
440
+ compressed = false
441
+ } = _ref2;
519
442
  if (compressed) {
520
443
  return {
521
444
  data,
522
445
  dataType: 'compressed'
523
446
  };
524
447
  }
525
-
526
448
  if (data === null) {
527
449
  return {
528
450
  data,
529
451
  dataType: 'null'
530
452
  };
531
453
  }
532
-
533
454
  if (ArrayBuffer.isView(data)) {
534
455
  return {
535
456
  data,
536
457
  dataType: 'typed-array'
537
458
  };
538
459
  }
539
-
540
460
  if (data instanceof WEBGLBuffer) {
541
461
  return {
542
462
  data: data.handle,
543
463
  dataType: 'buffer'
544
464
  };
545
465
  }
546
-
547
466
  if (typeof WebGLBuffer !== 'undefined' && data instanceof WebGLBuffer) {
548
467
  return {
549
468
  data,
550
469
  dataType: 'buffer'
551
470
  };
552
471
  }
553
-
554
472
  return {
555
473
  data,
556
474
  dataType: 'browser-object'
557
475
  };
558
476
  }
559
-
560
477
  _deduceParameters(opts) {
561
478
  const {
562
479
  format,
@@ -587,10 +504,8 @@ export default class WEBGLTexture extends Texture {
587
504
  data
588
505
  };
589
506
  }
590
-
591
507
  _deduceImageSize(data, width, height) {
592
508
  let size;
593
-
594
509
  if (typeof ImageData !== 'undefined' && data instanceof ImageData) {
595
510
  size = {
596
511
  width: data.width,
@@ -627,13 +542,11 @@ export default class WEBGLTexture extends Texture {
627
542
  height
628
543
  };
629
544
  }
630
-
631
545
  assert(size, 'Could not deduced texture size');
632
546
  assert(width === undefined || size.width === width, 'Deduced texture width does not match supplied width');
633
547
  assert(height === undefined || size.height === height, 'Deduced texture height does not match supplied height');
634
548
  return size;
635
549
  }
636
-
637
550
  async setCubeMapImageData(options) {
638
551
  const {
639
552
  gl
@@ -656,7 +569,6 @@ export default class WEBGLTexture extends Texture {
656
569
  if (resolvedFaces[index].length > 1 && this.props.mipmaps !== false) {
657
570
  log.warn("".concat(this.id, " has mipmap and multiple LODs."))();
658
571
  }
659
-
660
572
  resolvedFaces[index].forEach((image, lodLevel) => {
661
573
  if (width && height) {
662
574
  gl.texImage2D(face, lodLevel, format, width, height, 0, format, type, image);
@@ -667,7 +579,6 @@ export default class WEBGLTexture extends Texture {
667
579
  });
668
580
  this.unbind();
669
581
  }
670
-
671
582
  setImageDataForFace(options) {
672
583
  const {
673
584
  face,
@@ -683,7 +594,6 @@ export default class WEBGLTexture extends Texture {
683
594
  } = this;
684
595
  const imageData = pixels || data;
685
596
  this.bind();
686
-
687
597
  if (imageData instanceof Promise) {
688
598
  imageData.then(resolvedImageData => this.setImageDataForFace(Object.assign({}, options, {
689
599
  face,
@@ -695,10 +605,8 @@ export default class WEBGLTexture extends Texture {
695
605
  } else {
696
606
  gl.texImage2D(face, 0, format, format, type, imageData);
697
607
  }
698
-
699
608
  return this;
700
609
  }
701
-
702
610
  setImageData3D(options) {
703
611
  const {
704
612
  level = 0,
@@ -719,113 +627,87 @@ export default class WEBGLTexture extends Texture {
719
627
  if (ArrayBuffer.isView(data)) {
720
628
  this.gl.texImage3D(this.target, level, webglTextureFormat.format, width, height, depth, 0, webglTextureFormat.dataFormat, webglTextureFormat.type, data);
721
629
  }
722
-
723
630
  if (data instanceof WEBGLBuffer) {
724
631
  this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);
725
632
  this.gl.texImage3D(this.target, level, dataFormat, width, height, depth, 0, format, type, offset);
726
633
  }
727
634
  });
728
-
729
635
  if (data && data.byteLength) {
730
636
  this.trackAllocatedMemory(data.byteLength, 'Texture');
731
637
  } else {
732
638
  const bytesPerPixel = getTextureFormatBytesPerPixel(this.gl, this.props.format);
733
639
  this.trackAllocatedMemory(this.width * this.height * this.depth * bytesPerPixel, 'Texture');
734
640
  }
735
-
736
641
  this.loaded = true;
737
642
  return this;
738
643
  }
739
-
740
644
  _setSamplerParameters(parameters) {
741
645
  if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
742
646
  parameters = updateSamplerParametersForNPOT(parameters);
743
647
  }
744
-
745
648
  if (isObjectEmpty(parameters)) {
746
649
  return;
747
650
  }
748
-
749
651
  logParameters(parameters);
750
652
  this.gl.bindTexture(this.target, this.handle);
751
-
752
653
  for (const [pname, pvalue] of Object.entries(parameters)) {
753
654
  const param = Number(pname);
754
655
  let value = pvalue;
755
-
756
656
  switch (param) {
757
657
  case GL.TEXTURE_MIN_LOD:
758
658
  case GL.TEXTURE_MAX_LOD:
759
659
  this.gl.texParameterf(this.target, param, value);
760
660
  break;
761
-
762
661
  default:
763
662
  this.gl.texParameteri(this.target, param, value);
764
663
  break;
765
664
  }
766
665
  }
767
-
768
666
  this.gl.bindTexture(this.target, null);
769
667
  return;
770
668
  }
771
-
772
669
  _getWebGL1NPOTParameterOverride(pname, value) {
773
670
  const npot = this.device.isWebGL1 && isNPOT(this.width, this.height);
774
-
775
671
  if (npot) {
776
672
  switch (pname) {
777
673
  case GL.TEXTURE_MIN_FILTER:
778
674
  if (value !== GL.LINEAR && value !== GL.NEAREST) {
779
675
  return GL.LINEAR;
780
676
  }
781
-
782
677
  break;
783
-
784
678
  case GL.TEXTURE_WRAP_S:
785
679
  case GL.TEXTURE_WRAP_T:
786
680
  return GL.CLAMP_TO_EDGE;
787
-
788
681
  default:
789
682
  break;
790
683
  }
791
684
  }
792
-
793
685
  return value;
794
686
  }
795
-
796
687
  }
797
-
798
688
  _defineProperty(WEBGLTexture, "FACES", [GL.TEXTURE_CUBE_MAP_POSITIVE_X, GL.TEXTURE_CUBE_MAP_NEGATIVE_X, GL.TEXTURE_CUBE_MAP_POSITIVE_Y, GL.TEXTURE_CUBE_MAP_NEGATIVE_Y, GL.TEXTURE_CUBE_MAP_POSITIVE_Z, GL.TEXTURE_CUBE_MAP_NEGATIVE_Z]);
799
-
800
689
  function getWebGLTextureTarget(props) {
801
690
  switch (props.dimension) {
802
691
  case '2d':
803
692
  return GL.TEXTURE_2D;
804
-
805
693
  case 'cube':
806
694
  return GL.TEXTURE_CUBE_MAP;
807
-
808
695
  case '2d-array':
809
696
  return GL.TEXTURE_2D_ARRAY;
810
-
811
697
  case '3d':
812
698
  return GL.TEXTURE_3D;
813
-
814
699
  case '1d':
815
700
  case 'cube-array':
816
701
  default:
817
702
  throw new Error(props.dimension);
818
703
  }
819
704
  }
820
-
821
705
  function isNPOT(width, height) {
822
706
  if (!width || !height) {
823
707
  return false;
824
708
  }
825
-
826
709
  return !isPowerOfTwo(width) || !isPowerOfTwo(height);
827
710
  }
828
-
829
711
  function logParameters(parameters) {
830
712
  log.log(1, 'texture sampler parameters', parameters)();
831
713
  }