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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +117 -200
  3. package/dist/adapter/converters/device-parameters.js.map +1 -0
  4. package/dist/adapter/converters/renderbuffer-formats.d.ts +1 -1
  5. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
  6. package/dist/adapter/converters/renderbuffer-formats.js +172 -62
  7. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
  8. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  9. package/dist/adapter/converters/sampler-parameters.js +151 -149
  10. package/dist/adapter/converters/sampler-parameters.js.map +1 -0
  11. package/dist/adapter/converters/texture-formats.d.ts +2 -2
  12. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  13. package/dist/adapter/converters/texture-formats.js +847 -438
  14. package/dist/adapter/converters/texture-formats.js.map +1 -0
  15. package/dist/adapter/converters/vertex-formats.js +24 -15
  16. package/dist/adapter/converters/vertex-formats.js.map +1 -0
  17. package/dist/adapter/device-helpers/device-features.js +84 -120
  18. package/dist/adapter/device-helpers/device-features.js.map +1 -0
  19. package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
  20. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  21. package/dist/adapter/device-helpers/device-limits.js +83 -88
  22. package/dist/adapter/device-helpers/device-limits.js.map +1 -0
  23. package/dist/adapter/device-helpers/get-device-info.js +37 -42
  24. package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
  25. package/dist/adapter/device-helpers/is-old-ie.js +8 -10
  26. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
  27. package/dist/adapter/helpers/attribute-utils.js +57 -50
  28. package/dist/adapter/helpers/attribute-utils.js.map +1 -0
  29. package/dist/adapter/helpers/get-shader-info.d.ts +1 -1
  30. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -1
  31. package/dist/adapter/helpers/get-shader-info.js +19 -21
  32. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  33. package/dist/adapter/helpers/get-shader-layout.js +251 -310
  34. package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
  35. package/dist/adapter/helpers/parse-shader-compiler-log.js +26 -32
  36. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  37. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  38. package/dist/adapter/helpers/set-uniform.js +80 -67
  39. package/dist/adapter/helpers/set-uniform.js.map +1 -0
  40. package/dist/adapter/helpers/uniforms.js +75 -80
  41. package/dist/adapter/helpers/uniforms.js.map +1 -0
  42. package/dist/adapter/objects/constants-to-keys.js +26 -33
  43. package/dist/adapter/objects/constants-to-keys.js.map +1 -0
  44. package/dist/adapter/objects/webgl-renderbuffer.d.ts +1 -1
  45. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  46. package/dist/adapter/objects/webgl-renderbuffer.js +70 -67
  47. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
  48. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  49. package/dist/adapter/objects/webgl-resource.js +158 -213
  50. package/dist/adapter/objects/webgl-resource.js.map +1 -0
  51. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
  52. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  53. package/dist/adapter/objects/webgl-vertex-array-object.js +66 -74
  54. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
  55. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  56. package/dist/adapter/resources/webgl-buffer.js +118 -150
  57. package/dist/adapter/resources/webgl-buffer.js.map +1 -0
  58. package/dist/adapter/resources/webgl-command-buffer.d.ts +5 -5
  59. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  60. package/dist/adapter/resources/webgl-command-buffer.js +41 -40
  61. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
  62. package/dist/adapter/resources/webgl-command-encoder.js +37 -26
  63. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
  64. package/dist/adapter/resources/webgl-external-texture.js +1 -91
  65. package/dist/adapter/resources/webgl-external-texture.js.map +1 -0
  66. package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
  67. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  68. package/dist/adapter/resources/webgl-framebuffer.js +198 -231
  69. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
  70. package/dist/adapter/resources/webgl-render-pass.js +11 -8
  71. package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
  72. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  73. package/dist/adapter/resources/webgl-render-pipeline.js +289 -316
  74. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
  75. package/dist/adapter/resources/webgl-sampler.js +35 -42
  76. package/dist/adapter/resources/webgl-sampler.js.map +1 -0
  77. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  78. package/dist/adapter/resources/webgl-shader.js +53 -57
  79. package/dist/adapter/resources/webgl-shader.js.map +1 -0
  80. package/dist/adapter/resources/webgl-texture.d.ts +4 -4
  81. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  82. package/dist/adapter/resources/webgl-texture.js +697 -661
  83. package/dist/adapter/resources/webgl-texture.js.map +1 -0
  84. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  85. package/dist/adapter/webgl-canvas-context.js +35 -55
  86. package/dist/adapter/webgl-canvas-context.js.map +1 -0
  87. package/dist/adapter/webgl-device.d.ts +5 -0
  88. package/dist/adapter/webgl-device.d.ts.map +1 -1
  89. package/dist/adapter/webgl-device.js +270 -287
  90. package/dist/adapter/webgl-device.js.map +1 -0
  91. package/dist/classic/accessor.js +103 -120
  92. package/dist/classic/accessor.js.map +1 -0
  93. package/dist/classic/buffer.d.ts +1 -1
  94. package/dist/classic/buffer.d.ts.map +1 -1
  95. package/dist/classic/buffer.js +300 -325
  96. package/dist/classic/buffer.js.map +1 -0
  97. package/dist/classic/typed-array-utils.d.ts +1 -1
  98. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  99. package/dist/classic/typed-array-utils.js +81 -91
  100. package/dist/classic/typed-array-utils.js.map +1 -0
  101. package/dist/context/context/create-browser-context.d.ts +3 -1
  102. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  103. package/dist/context/context/create-browser-context.js +49 -66
  104. package/dist/context/context/create-browser-context.js.map +1 -0
  105. package/dist/context/context/create-headless-context.d.ts +1 -1
  106. package/dist/context/context/create-headless-context.d.ts.map +1 -1
  107. package/dist/context/context/create-headless-context.js +30 -24
  108. package/dist/context/context/create-headless-context.js.map +1 -0
  109. package/dist/context/context/webgl-checks.js +17 -25
  110. package/dist/context/context/webgl-checks.js.map +1 -0
  111. package/dist/context/debug/spector.d.ts +3 -1
  112. package/dist/context/debug/spector.d.ts.map +1 -1
  113. package/dist/context/debug/spector.js +50 -53
  114. package/dist/context/debug/spector.js.map +1 -0
  115. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  116. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  117. package/dist/context/debug/webgl-developer-tools.js +76 -107
  118. package/dist/context/debug/webgl-developer-tools.js.map +1 -0
  119. package/dist/context/parameters/unified-parameter-api.js +46 -93
  120. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  121. package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
  122. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  123. package/dist/context/parameters/webgl-parameter-tables.js +404 -462
  124. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  125. package/dist/context/polyfill/context-data.js +10 -16
  126. package/dist/context/polyfill/context-data.js.map +1 -0
  127. package/dist/context/polyfill/get-parameter-polyfill.js +71 -91
  128. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  129. package/dist/context/polyfill/polyfill-context.js +73 -75
  130. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  131. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  132. package/dist/context/polyfill/polyfill-table.js +116 -133
  133. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  134. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  135. package/dist/context/polyfill/polyfill-vertex-array-object.js +227 -255
  136. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  137. package/dist/context/state-tracker/deep-array-equal.js +14 -16
  138. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  139. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  140. package/dist/context/state-tracker/track-context-state.js +127 -183
  141. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  142. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  143. package/dist/context/state-tracker/with-parameters.js +29 -43
  144. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  145. package/dist/dist.dev.js +9205 -0
  146. package/dist/index.cjs +5948 -0
  147. package/dist/index.d.ts +0 -2
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +25 -41
  150. package/dist/index.js.map +1 -0
  151. package/dist/types/webgl.d.ts +16 -16
  152. package/dist/types/webgl.d.ts.map +1 -1
  153. package/dist/types/webgl.js +1 -0
  154. package/dist/types/webgl.js.map +1 -0
  155. package/dist/types.d.ts +1 -1
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/types.js +1 -0
  158. package/dist/types.js.map +1 -0
  159. package/dist.min.js +36 -0
  160. package/package.json +18 -9
  161. package/src/.DS_Store +0 -0
  162. package/src/adapter/.DS_Store +0 -0
  163. package/src/adapter/converters/device-parameters.ts +5 -2
  164. package/src/adapter/converters/sampler-parameters.ts +4 -2
  165. package/src/adapter/converters/texture-formats.ts +3 -1
  166. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  167. package/src/adapter/helpers/get-shader-info.ts +1 -1
  168. package/src/adapter/helpers/get-shader-layout.ts +4 -4
  169. package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
  170. package/src/adapter/helpers/set-uniform.ts +2 -0
  171. package/src/adapter/objects/webgl-renderbuffer.ts +1 -1
  172. package/src/adapter/objects/webgl-resource.ts +1 -1
  173. package/src/adapter/objects/webgl-vertex-array-object.ts +1 -1
  174. package/src/adapter/resources/webgl-buffer.ts +5 -5
  175. package/src/adapter/resources/webgl-command-encoder.ts +1 -1
  176. package/src/adapter/resources/webgl-framebuffer.ts +3 -4
  177. package/src/adapter/resources/webgl-render-pipeline.ts +19 -20
  178. package/src/adapter/resources/webgl-shader.ts +1 -1
  179. package/src/adapter/resources/webgl-texture.ts +8 -9
  180. package/src/adapter/webgl-canvas-context.ts +2 -2
  181. package/src/adapter/webgl-device.ts +12 -2
  182. package/src/classic/accessor.ts +1 -1
  183. package/src/classic/buffer.ts +3 -3
  184. package/src/classic/typed-array-utils.ts +1 -1
  185. package/src/context/.DS_Store +0 -0
  186. package/src/context/context/create-browser-context.ts +4 -2
  187. package/src/context/context/create-headless-context.ts +2 -2
  188. package/src/context/debug/spector.ts +5 -4
  189. package/src/context/debug/webgl-developer-tools.ts +1 -0
  190. package/src/context/polyfill/polyfill-table.ts +1 -0
  191. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  192. package/src/context/state-tracker/track-context-state.ts +6 -5
  193. package/src/context/state-tracker/with-parameters.ts +1 -1
  194. package/src/index.ts +1 -5
  195. package/src/types/webgl.ts +2 -0
  196. package/dist/bundle.d.ts +0 -2
  197. package/dist/bundle.d.ts.map +0 -1
  198. package/dist/bundle.js +0 -4
  199. package/dist/dist.min.js +0 -1
  200. package/dist/es5/adapter/converters/device-parameters.js +0 -139
  201. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  202. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -151
  203. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  204. package/dist/es5/adapter/converters/sampler-parameters.js +0 -182
  205. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  206. package/dist/es5/adapter/converters/texture-formats.js +0 -950
  207. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  208. package/dist/es5/adapter/converters/vertex-formats.js +0 -36
  209. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  210. package/dist/es5/adapter/device-helpers/device-features.js +0 -121
  211. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  212. package/dist/es5/adapter/device-helpers/device-limits.js +0 -54
  213. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  214. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -49
  215. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  216. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -15
  217. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  218. package/dist/es5/adapter/helpers/attribute-utils.js +0 -69
  219. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  220. package/dist/es5/adapter/helpers/get-shader-info.js +0 -31
  221. package/dist/es5/adapter/helpers/get-shader-info.js.map +0 -1
  222. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -311
  223. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  224. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -54
  225. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  226. package/dist/es5/adapter/helpers/set-uniform.js +0 -92
  227. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  228. package/dist/es5/adapter/helpers/uniforms.js +0 -88
  229. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  230. package/dist/es5/adapter/objects/constants-to-keys.js +0 -43
  231. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  232. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -122
  233. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  234. package/dist/es5/adapter/objects/webgl-resource.js +0 -233
  235. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  236. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -109
  237. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  238. package/dist/es5/adapter/resources/webgl-buffer.js +0 -196
  239. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  240. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -70
  241. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  242. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -80
  243. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  244. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  245. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  246. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -275
  247. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  248. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -45
  249. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  250. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -385
  251. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  252. package/dist/es5/adapter/resources/webgl-sampler.js +0 -75
  253. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  254. package/dist/es5/adapter/resources/webgl-shader.js +0 -111
  255. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  256. package/dist/es5/adapter/resources/webgl-texture.js +0 -826
  257. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  258. package/dist/es5/adapter/webgl-canvas-context.js +0 -72
  259. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  260. package/dist/es5/adapter/webgl-device.js +0 -387
  261. package/dist/es5/adapter/webgl-device.js.map +0 -1
  262. package/dist/es5/bundle.js +0 -6
  263. package/dist/es5/bundle.js.map +0 -1
  264. package/dist/es5/classic/accessor.js +0 -151
  265. package/dist/es5/classic/accessor.js.map +0 -1
  266. package/dist/es5/classic/buffer.js +0 -398
  267. package/dist/es5/classic/buffer.js.map +0 -1
  268. package/dist/es5/classic/typed-array-utils.js +0 -99
  269. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  270. package/dist/es5/context/context/create-browser-context.js +0 -66
  271. package/dist/es5/context/context/create-browser-context.js.map +0 -1
  272. package/dist/es5/context/context/create-headless-context.js +0 -47
  273. package/dist/es5/context/context/create-headless-context.js.map +0 -1
  274. package/dist/es5/context/context/webgl-checks.js +0 -44
  275. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  276. package/dist/es5/context/debug/spector.js +0 -99
  277. package/dist/es5/context/debug/spector.js.map +0 -1
  278. package/dist/es5/context/debug/webgl-developer-tools.js +0 -146
  279. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  280. package/dist/es5/context/parameters/unified-parameter-api.js +0 -76
  281. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  282. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -346
  283. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  284. package/dist/es5/context/polyfill/context-data.js +0 -18
  285. package/dist/es5/context/polyfill/context-data.js.map +0 -1
  286. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -69
  287. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  288. package/dist/es5/context/polyfill/polyfill-context.js +0 -109
  289. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  290. package/dist/es5/context/polyfill/polyfill-table.js +0 -143
  291. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  292. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -271
  293. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  294. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -23
  295. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  296. package/dist/es5/context/state-tracker/track-context-state.js +0 -167
  297. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  298. package/dist/es5/context/state-tracker/with-parameters.js +0 -40
  299. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  300. package/dist/es5/index.js +0 -249
  301. package/dist/es5/index.js.map +0 -1
  302. package/dist/es5/init.js +0 -7
  303. package/dist/es5/init.js.map +0 -1
  304. package/dist/es5/types/webgl.js +0 -5
  305. package/dist/es5/types/webgl.js.map +0 -1
  306. package/dist/es5/types.js +0 -2
  307. package/dist/es5/types.js.map +0 -1
  308. package/dist/esm/adapter/converters/device-parameters.js +0 -137
  309. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  310. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -181
  311. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  312. package/dist/esm/adapter/converters/sampler-parameters.js +0 -172
  313. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  314. package/dist/esm/adapter/converters/texture-formats.js +0 -901
  315. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  316. package/dist/esm/adapter/converters/vertex-formats.js +0 -29
  317. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  318. package/dist/esm/adapter/device-helpers/device-features.js +0 -95
  319. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  320. package/dist/esm/adapter/device-helpers/device-limits.js +0 -88
  321. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  322. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -42
  323. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  324. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -9
  325. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  326. package/dist/esm/adapter/helpers/attribute-utils.js +0 -64
  327. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  328. package/dist/esm/adapter/helpers/get-shader-info.js +0 -25
  329. package/dist/esm/adapter/helpers/get-shader-info.js.map +0 -1
  330. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -282
  331. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  332. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -30
  333. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  334. package/dist/esm/adapter/helpers/set-uniform.js +0 -85
  335. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  336. package/dist/esm/adapter/helpers/uniforms.js +0 -89
  337. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  338. package/dist/esm/adapter/objects/constants-to-keys.js +0 -35
  339. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  340. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -78
  341. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  342. package/dist/esm/adapter/objects/webgl-resource.js +0 -163
  343. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  344. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -74
  345. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  346. package/dist/esm/adapter/resources/webgl-buffer.js +0 -134
  347. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  348. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -50
  349. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  350. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -41
  351. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  352. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  353. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  354. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -207
  355. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  356. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -14
  357. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  358. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -311
  359. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  360. package/dist/esm/adapter/resources/webgl-sampler.js +0 -42
  361. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  362. package/dist/esm/adapter/resources/webgl-shader.js +0 -62
  363. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  364. package/dist/esm/adapter/resources/webgl-texture.js +0 -714
  365. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  366. package/dist/esm/adapter/webgl-canvas-context.js +0 -41
  367. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  368. package/dist/esm/adapter/webgl-device.js +0 -276
  369. package/dist/esm/adapter/webgl-device.js.map +0 -1
  370. package/dist/esm/bundle.js +0 -4
  371. package/dist/esm/bundle.js.map +0 -1
  372. package/dist/esm/classic/accessor.js +0 -120
  373. package/dist/esm/classic/accessor.js.map +0 -1
  374. package/dist/esm/classic/buffer.js +0 -327
  375. package/dist/esm/classic/buffer.js.map +0 -1
  376. package/dist/esm/classic/typed-array-utils.js +0 -92
  377. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  378. package/dist/esm/context/context/create-browser-context.js +0 -53
  379. package/dist/esm/context/context/create-browser-context.js.map +0 -1
  380. package/dist/esm/context/context/create-headless-context.js +0 -39
  381. package/dist/esm/context/context/create-headless-context.js.map +0 -1
  382. package/dist/esm/context/context/webgl-checks.js +0 -31
  383. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  384. package/dist/esm/context/debug/spector.js +0 -64
  385. package/dist/esm/context/debug/spector.js.map +0 -1
  386. package/dist/esm/context/debug/webgl-developer-tools.js +0 -97
  387. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  388. package/dist/esm/context/parameters/unified-parameter-api.js +0 -55
  389. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  390. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -427
  391. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  392. package/dist/esm/context/polyfill/context-data.js +0 -12
  393. package/dist/esm/context/polyfill/context-data.js.map +0 -1
  394. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -86
  395. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  396. package/dist/esm/context/polyfill/polyfill-context.js +0 -84
  397. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  398. package/dist/esm/context/polyfill/polyfill-table.js +0 -138
  399. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  400. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -265
  401. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  402. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -17
  403. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  404. package/dist/esm/context/state-tracker/track-context-state.js +0 -148
  405. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  406. package/dist/esm/context/state-tracker/with-parameters.js +0 -34
  407. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  408. package/dist/esm/index.js +0 -27
  409. package/dist/esm/index.js.map +0 -1
  410. package/dist/esm/init.js +0 -4
  411. package/dist/esm/init.js.map +0 -1
  412. package/dist/esm/types/webgl.js +0 -2
  413. package/dist/esm/types/webgl.js.map +0 -1
  414. package/dist/esm/types.js +0 -2
  415. package/dist/esm/types.js.map +0 -1
  416. package/dist/init.d.ts +0 -2
  417. package/dist/init.d.ts.map +0 -1
  418. package/dist/init.js +0 -3
  419. package/src/bundle.ts +0 -4
  420. package/src/init.ts +0 -4
@@ -1,714 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { isObjectEmpty } from '@luma.gl/api';
3
- import { Texture, cast, log, assert, isPowerOfTwo, loadImage } from '@luma.gl/api';
4
- import GL from '@luma.gl/constants';
5
- import { withParameters } from '../../context/state-tracker/with-parameters';
6
- import { getWebGLTextureFormat, getWebGLTextureParameters, getTextureFormatBytesPerPixel } from '../converters/texture-formats';
7
- import { convertSamplerParametersToWebGL, updateSamplerParametersForNPOT } from '../converters/sampler-parameters';
8
- import WEBGLBuffer from './webgl-buffer';
9
- import WEBGLSampler from './webgl-sampler';
10
- export default class WEBGLTexture extends Texture {
11
- constructor(device, props) {
12
- var _this$props;
13
- super(device, {
14
- format: GL.RGBA,
15
- ...props
16
- });
17
- _defineProperty(this, "MAX_ATTRIBUTES", void 0);
18
- _defineProperty(this, "device", void 0);
19
- _defineProperty(this, "gl", void 0);
20
- _defineProperty(this, "gl2", void 0);
21
- _defineProperty(this, "handle", void 0);
22
- _defineProperty(this, "data", void 0);
23
- _defineProperty(this, "width", undefined);
24
- _defineProperty(this, "height", undefined);
25
- _defineProperty(this, "depth", undefined);
26
- _defineProperty(this, "format", undefined);
27
- _defineProperty(this, "type", undefined);
28
- _defineProperty(this, "dataFormat", undefined);
29
- _defineProperty(this, "mipmaps", undefined);
30
- _defineProperty(this, "target", void 0);
31
- _defineProperty(this, "textureUnit", undefined);
32
- _defineProperty(this, "sampler", undefined);
33
- _defineProperty(this, "loaded", false);
34
- _defineProperty(this, "_video", void 0);
35
- this.device = cast(device);
36
- this.gl = this.device.gl;
37
- this.gl2 = this.device.gl2;
38
- this.handle = this.props.handle || this.gl.createTexture();
39
- this.handle.__SPECTOR_Metadata = {
40
- ...this.props,
41
- data: typeof this.props.data
42
- };
43
- this.target = getWebGLTextureTarget(this.props);
44
- this.loaded = false;
45
- if (typeof ((_this$props = this.props) === null || _this$props === void 0 ? void 0 : _this$props.data) === 'string') {
46
- Object.assign(this.props, {
47
- data: loadImage(this.props.data)
48
- });
49
- }
50
- this.initialize(this.props);
51
- Object.seal(this);
52
- }
53
- destroy() {
54
- if (this.handle) {
55
- this.gl.deleteTexture(this.handle);
56
- this.removeStats();
57
- this.trackDeallocatedMemory('Texture');
58
- this.destroyed = true;
59
- }
60
- }
61
- toString() {
62
- return "Texture(".concat(this.id, ",").concat(this.width, "x").concat(this.height, ")");
63
- }
64
- initialize() {
65
- let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
66
- if (this.props.dimension === 'cube') {
67
- return this.initializeCube(props);
68
- }
69
- let data = props.data;
70
- if (data instanceof Promise) {
71
- data.then(resolvedImageData => this.initialize(Object.assign({}, props, {
72
- pixels: resolvedImageData,
73
- data: resolvedImageData
74
- })));
75
- return this;
76
- }
77
- const isVideo = typeof HTMLVideoElement !== 'undefined' && data instanceof HTMLVideoElement;
78
- if (isVideo && data.readyState < HTMLVideoElement.HAVE_METADATA) {
79
- this._video = null;
80
- data.addEventListener('loadeddata', () => this.initialize(props));
81
- return this;
82
- }
83
- let {
84
- parameters = {}
85
- } = props;
86
- const {
87
- pixels = null,
88
- recreate = false,
89
- pixelStore = {},
90
- textureUnit = undefined
91
- } = props;
92
- if (!data) {
93
- data = pixels;
94
- }
95
- let {
96
- width,
97
- height,
98
- dataFormat,
99
- type,
100
- compressed = false,
101
- mipmaps = true
102
- } = props;
103
- const {
104
- depth = 0
105
- } = props;
106
- ({
107
- width,
108
- height,
109
- compressed,
110
- dataFormat,
111
- type
112
- } = this._deduceParameters({
113
- format: props.format,
114
- type,
115
- dataFormat,
116
- compressed,
117
- data,
118
- width,
119
- height
120
- }));
121
- const format = getWebGLTextureFormat(this.gl, props.format);
122
- this.width = width;
123
- this.height = height;
124
- this.depth = depth;
125
- this.format = format;
126
- this.type = type;
127
- this.dataFormat = dataFormat;
128
- this.textureUnit = textureUnit;
129
- if (Number.isFinite(this.textureUnit)) {
130
- this.gl.activeTexture(GL.TEXTURE0 + this.textureUnit);
131
- this.gl.bindTexture(this.target, this.handle);
132
- }
133
- if (mipmaps && this.device.isWebGL1 && isNPOT(this.width, this.height)) {
134
- log.warn("texture: ".concat(this, " is Non-Power-Of-Two, disabling mipmaps"))();
135
- mipmaps = false;
136
- }
137
- this.mipmaps = mipmaps;
138
- this.setImageData({
139
- data,
140
- width,
141
- height,
142
- depth,
143
- format,
144
- type,
145
- dataFormat,
146
- parameters: pixelStore,
147
- compressed
148
- });
149
- this.setSampler(props.sampler);
150
- this._setSamplerParameters(parameters);
151
- if (mipmaps) {
152
- this.generateMipmap();
153
- }
154
- if (recreate) {
155
- this.data = data;
156
- }
157
- if (isVideo) {
158
- this._video = {
159
- video: data,
160
- parameters,
161
- lastTime: data.readyState >= HTMLVideoElement.HAVE_CURRENT_DATA ? data.currentTime : -1
162
- };
163
- }
164
- return this;
165
- }
166
- initializeCube(props) {
167
- const {
168
- mipmaps = true,
169
- parameters = {}
170
- } = props;
171
- this.setCubeMapImageData(props).then(() => {
172
- this.loaded = true;
173
- if (mipmaps) {
174
- this.generateMipmap(props);
175
- }
176
- this.setSampler(props.sampler);
177
- this._setSamplerParameters(parameters);
178
- });
179
- return this;
180
- }
181
- setSampler() {
182
- let sampler = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
183
- let samplerProps;
184
- if (sampler instanceof WEBGLSampler) {
185
- this.sampler = sampler;
186
- samplerProps = sampler.props;
187
- } else {
188
- this.sampler = new WEBGLSampler(this.device, sampler);
189
- samplerProps = sampler;
190
- }
191
- const parameters = convertSamplerParametersToWebGL(samplerProps);
192
- this._setSamplerParameters(parameters);
193
- return this;
194
- }
195
- resize(options) {
196
- const {
197
- height,
198
- width,
199
- mipmaps = false
200
- } = options;
201
- if (width !== this.width || height !== this.height) {
202
- return this.initialize({
203
- width,
204
- height,
205
- format: this.format,
206
- type: this.type,
207
- dataFormat: this.dataFormat,
208
- mipmaps
209
- });
210
- }
211
- return this;
212
- }
213
- update() {
214
- if (this._video) {
215
- const {
216
- video,
217
- parameters,
218
- lastTime
219
- } = this._video;
220
- if (lastTime === video.currentTime || video.readyState < HTMLVideoElement.HAVE_CURRENT_DATA) {
221
- return;
222
- }
223
- this.setSubImageData({
224
- data: video,
225
- parameters
226
- });
227
- if (this.mipmaps) {
228
- this.generateMipmap();
229
- }
230
- this._video.lastTime = video.currentTime;
231
- }
232
- }
233
- generateMipmap() {
234
- let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
235
- if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
236
- log.warn("texture: ".concat(this, " is Non-Power-Of-Two, disabling mipmaping"))();
237
- return this;
238
- }
239
- this.mipmaps = true;
240
- this.gl.bindTexture(this.target, this.handle);
241
- withParameters(this.gl, params, () => {
242
- this.gl.generateMipmap(this.target);
243
- });
244
- this.gl.bindTexture(this.target, null);
245
- return this;
246
- }
247
- setImageData(options) {
248
- if (this.props.dimension === '3d') {
249
- return this.setImageData3D(options);
250
- }
251
- this.trackDeallocatedMemory('Texture');
252
- const {
253
- target = this.target,
254
- pixels = null,
255
- level = 0,
256
- format = this.format,
257
- offset = 0,
258
- parameters = {}
259
- } = options;
260
- let {
261
- data = null,
262
- type = this.type,
263
- width = this.width,
264
- height = this.height,
265
- dataFormat = this.dataFormat,
266
- compressed = false
267
- } = options;
268
- if (!data) {
269
- data = pixels;
270
- }
271
- ({
272
- type,
273
- dataFormat,
274
- compressed,
275
- width,
276
- height
277
- } = this._deduceParameters({
278
- format: this.props.format,
279
- type,
280
- dataFormat,
281
- compressed,
282
- data,
283
- width,
284
- height
285
- }));
286
- const {
287
- gl
288
- } = this;
289
- gl.bindTexture(this.target, this.handle);
290
- let dataType = null;
291
- ({
292
- data,
293
- dataType
294
- } = this._getDataType({
295
- data,
296
- compressed
297
- }));
298
- let gl2;
299
- withParameters(this.gl, parameters, () => {
300
- switch (dataType) {
301
- case 'null':
302
- gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data);
303
- break;
304
- case 'typed-array':
305
- gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data, offset);
306
- break;
307
- case 'buffer':
308
- gl2 = this.device.assertWebGL2();
309
- gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle || data);
310
- gl2.texImage2D(target, level, format, width, height, 0, dataFormat, type, offset);
311
- gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, null);
312
- break;
313
- case 'browser-object':
314
- if (this.device.isWebGL2) {
315
- gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data);
316
- } else {
317
- gl.texImage2D(target, level, format, dataFormat, type, data);
318
- }
319
- break;
320
- case 'compressed':
321
- for (const [levelIndex, levelData] of data.entries()) {
322
- gl.compressedTexImage2D(target, levelIndex, levelData.format, levelData.width, levelData.height, 0, levelData.data);
323
- }
324
- break;
325
- default:
326
- assert(false, 'Unknown image data type');
327
- }
328
- });
329
- if (data && data.byteLength) {
330
- this.trackAllocatedMemory(data.byteLength, 'Texture');
331
- } else {
332
- const bytesPerPixel = getTextureFormatBytesPerPixel(this.gl, this.props.format);
333
- this.trackAllocatedMemory(this.width * this.height * bytesPerPixel, 'Texture');
334
- }
335
- this.loaded = true;
336
- return this;
337
- }
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;
355
- ({
356
- type,
357
- dataFormat,
358
- compressed,
359
- width,
360
- height
361
- } = this._deduceParameters({
362
- format: this.props.format,
363
- type,
364
- dataFormat,
365
- compressed,
366
- data,
367
- width,
368
- height
369
- }));
370
- assert(this.depth === 1, 'texSubImage not supported for 3D textures');
371
- if (!data) {
372
- data = pixels;
373
- }
374
- if (data && data.data) {
375
- const ndarray = data;
376
- data = ndarray.data;
377
- width = ndarray.shape[0];
378
- height = ndarray.shape[1];
379
- }
380
- if (data instanceof WEBGLBuffer) {
381
- data = data.handle;
382
- }
383
- this.gl.bindTexture(this.target, this.handle);
384
- withParameters(this.gl, parameters, () => {
385
- if (compressed) {
386
- this.gl.compressedTexSubImage2D(target, level, x, y, width, height, format, data);
387
- } else if (data === null) {
388
- this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
389
- } else if (ArrayBuffer.isView(data)) {
390
- this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data, offset);
391
- } else if (typeof WebGLBuffer !== 'undefined' && data instanceof WebGLBuffer) {
392
- const gl2 = this.device.assertWebGL2();
393
- gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data);
394
- gl2.texSubImage2D(target, level, x, y, width, height, dataFormat, type, offset);
395
- gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, null);
396
- } else if (this.device.isWebGL2) {
397
- const gl2 = this.device.assertWebGL2();
398
- gl2.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data);
399
- } else {
400
- this.gl.texSubImage2D(target, level, x, y, dataFormat, type, data);
401
- }
402
- });
403
- this.gl.bindTexture(this.target, null);
404
- }
405
- copyFramebuffer() {
406
- let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
407
- log.error('Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})')();
408
- return null;
409
- }
410
- getActiveUnit() {
411
- return this.gl.getParameter(GL.ACTIVE_TEXTURE) - GL.TEXTURE0;
412
- }
413
- bind() {
414
- let textureUnit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.textureUnit;
415
- const {
416
- gl
417
- } = this;
418
- if (textureUnit !== undefined) {
419
- this.textureUnit = textureUnit;
420
- gl.activeTexture(gl.TEXTURE0 + textureUnit);
421
- }
422
- gl.bindTexture(this.target, this.handle);
423
- return textureUnit;
424
- }
425
- unbind() {
426
- let textureUnit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.textureUnit;
427
- const {
428
- gl
429
- } = this;
430
- if (textureUnit !== undefined) {
431
- this.textureUnit = textureUnit;
432
- gl.activeTexture(gl.TEXTURE0 + textureUnit);
433
- }
434
- gl.bindTexture(this.target, null);
435
- return textureUnit;
436
- }
437
- _getDataType(_ref2) {
438
- let {
439
- data,
440
- compressed = false
441
- } = _ref2;
442
- if (compressed) {
443
- return {
444
- data,
445
- dataType: 'compressed'
446
- };
447
- }
448
- if (data === null) {
449
- return {
450
- data,
451
- dataType: 'null'
452
- };
453
- }
454
- if (ArrayBuffer.isView(data)) {
455
- return {
456
- data,
457
- dataType: 'typed-array'
458
- };
459
- }
460
- if (data instanceof WEBGLBuffer) {
461
- return {
462
- data: data.handle,
463
- dataType: 'buffer'
464
- };
465
- }
466
- if (typeof WebGLBuffer !== 'undefined' && data instanceof WebGLBuffer) {
467
- return {
468
- data,
469
- dataType: 'buffer'
470
- };
471
- }
472
- return {
473
- data,
474
- dataType: 'browser-object'
475
- };
476
- }
477
- _deduceParameters(opts) {
478
- const {
479
- format,
480
- data
481
- } = opts;
482
- let {
483
- width,
484
- height,
485
- dataFormat,
486
- type,
487
- compressed
488
- } = opts;
489
- const parameters = getWebGLTextureParameters(this.gl, format);
490
- dataFormat = dataFormat || parameters.dataFormat;
491
- type = type || parameters.type;
492
- compressed = compressed || parameters.compressed;
493
- ({
494
- width,
495
- height
496
- } = this._deduceImageSize(data, width, height));
497
- return {
498
- dataFormat,
499
- type,
500
- compressed,
501
- width,
502
- height,
503
- format,
504
- data
505
- };
506
- }
507
- _deduceImageSize(data, width, height) {
508
- let size;
509
- if (typeof ImageData !== 'undefined' && data instanceof ImageData) {
510
- size = {
511
- width: data.width,
512
- height: data.height
513
- };
514
- } else if (typeof HTMLImageElement !== 'undefined' && data instanceof HTMLImageElement) {
515
- size = {
516
- width: data.naturalWidth,
517
- height: data.naturalHeight
518
- };
519
- } else if (typeof HTMLCanvasElement !== 'undefined' && data instanceof HTMLCanvasElement) {
520
- size = {
521
- width: data.width,
522
- height: data.height
523
- };
524
- } else if (typeof ImageBitmap !== 'undefined' && data instanceof ImageBitmap) {
525
- size = {
526
- width: data.width,
527
- height: data.height
528
- };
529
- } else if (typeof HTMLVideoElement !== 'undefined' && data instanceof HTMLVideoElement) {
530
- size = {
531
- width: data.videoWidth,
532
- height: data.videoHeight
533
- };
534
- } else if (!data) {
535
- size = {
536
- width: width >= 0 ? width : 1,
537
- height: height >= 0 ? height : 1
538
- };
539
- } else {
540
- size = {
541
- width,
542
- height
543
- };
544
- }
545
- assert(size, 'Could not deduced texture size');
546
- assert(width === undefined || size.width === width, 'Deduced texture width does not match supplied width');
547
- assert(height === undefined || size.height === height, 'Deduced texture height does not match supplied height');
548
- return size;
549
- }
550
- async setCubeMapImageData(options) {
551
- const {
552
- gl
553
- } = this;
554
- const {
555
- width,
556
- height,
557
- pixels,
558
- data,
559
- format = GL.RGBA,
560
- type = GL.UNSIGNED_BYTE
561
- } = options;
562
- const imageDataMap = pixels || data;
563
- const resolvedFaces = await Promise.all(WEBGLTexture.FACES.map(face => {
564
- const facePixels = imageDataMap[face];
565
- return Promise.all(Array.isArray(facePixels) ? facePixels : [facePixels]);
566
- }));
567
- this.bind();
568
- WEBGLTexture.FACES.forEach((face, index) => {
569
- if (resolvedFaces[index].length > 1 && this.props.mipmaps !== false) {
570
- log.warn("".concat(this.id, " has mipmap and multiple LODs."))();
571
- }
572
- resolvedFaces[index].forEach((image, lodLevel) => {
573
- if (width && height) {
574
- gl.texImage2D(face, lodLevel, format, width, height, 0, format, type, image);
575
- } else {
576
- gl.texImage2D(face, lodLevel, format, format, type, image);
577
- }
578
- });
579
- });
580
- this.unbind();
581
- }
582
- setImageDataForFace(options) {
583
- const {
584
- face,
585
- width,
586
- height,
587
- pixels,
588
- data,
589
- format = GL.RGBA,
590
- type = GL.UNSIGNED_BYTE
591
- } = options;
592
- const {
593
- gl
594
- } = this;
595
- const imageData = pixels || data;
596
- this.bind();
597
- if (imageData instanceof Promise) {
598
- imageData.then(resolvedImageData => this.setImageDataForFace(Object.assign({}, options, {
599
- face,
600
- data: resolvedImageData,
601
- pixels: resolvedImageData
602
- })));
603
- } else if (this.width || this.height) {
604
- gl.texImage2D(face, 0, format, width, height, 0, format, type, imageData);
605
- } else {
606
- gl.texImage2D(face, 0, format, format, type, imageData);
607
- }
608
- return this;
609
- }
610
- setImageData3D(options) {
611
- const {
612
- level = 0,
613
- dataFormat,
614
- format,
615
- type,
616
- width,
617
- height,
618
- depth = 1,
619
- offset = 0,
620
- data,
621
- parameters = {}
622
- } = options;
623
- this.trackDeallocatedMemory('Texture');
624
- this.gl.bindTexture(this.target, this.handle);
625
- const webglTextureFormat = getWebGLTextureParameters(this.gl, format);
626
- withParameters(this.gl, parameters, () => {
627
- if (ArrayBuffer.isView(data)) {
628
- this.gl.texImage3D(this.target, level, webglTextureFormat.format, width, height, depth, 0, webglTextureFormat.dataFormat, webglTextureFormat.type, data);
629
- }
630
- if (data instanceof WEBGLBuffer) {
631
- this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);
632
- this.gl.texImage3D(this.target, level, dataFormat, width, height, depth, 0, format, type, offset);
633
- }
634
- });
635
- if (data && data.byteLength) {
636
- this.trackAllocatedMemory(data.byteLength, 'Texture');
637
- } else {
638
- const bytesPerPixel = getTextureFormatBytesPerPixel(this.gl, this.props.format);
639
- this.trackAllocatedMemory(this.width * this.height * this.depth * bytesPerPixel, 'Texture');
640
- }
641
- this.loaded = true;
642
- return this;
643
- }
644
- _setSamplerParameters(parameters) {
645
- if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
646
- parameters = updateSamplerParametersForNPOT(parameters);
647
- }
648
- if (isObjectEmpty(parameters)) {
649
- return;
650
- }
651
- logParameters(parameters);
652
- this.gl.bindTexture(this.target, this.handle);
653
- for (const [pname, pvalue] of Object.entries(parameters)) {
654
- const param = Number(pname);
655
- let value = pvalue;
656
- switch (param) {
657
- case GL.TEXTURE_MIN_LOD:
658
- case GL.TEXTURE_MAX_LOD:
659
- this.gl.texParameterf(this.target, param, value);
660
- break;
661
- default:
662
- this.gl.texParameteri(this.target, param, value);
663
- break;
664
- }
665
- }
666
- this.gl.bindTexture(this.target, null);
667
- return;
668
- }
669
- _getWebGL1NPOTParameterOverride(pname, value) {
670
- const npot = this.device.isWebGL1 && isNPOT(this.width, this.height);
671
- if (npot) {
672
- switch (pname) {
673
- case GL.TEXTURE_MIN_FILTER:
674
- if (value !== GL.LINEAR && value !== GL.NEAREST) {
675
- return GL.LINEAR;
676
- }
677
- break;
678
- case GL.TEXTURE_WRAP_S:
679
- case GL.TEXTURE_WRAP_T:
680
- return GL.CLAMP_TO_EDGE;
681
- default:
682
- break;
683
- }
684
- }
685
- return value;
686
- }
687
- }
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]);
689
- function getWebGLTextureTarget(props) {
690
- switch (props.dimension) {
691
- case '2d':
692
- return GL.TEXTURE_2D;
693
- case 'cube':
694
- return GL.TEXTURE_CUBE_MAP;
695
- case '2d-array':
696
- return GL.TEXTURE_2D_ARRAY;
697
- case '3d':
698
- return GL.TEXTURE_3D;
699
- case '1d':
700
- case 'cube-array':
701
- default:
702
- throw new Error(props.dimension);
703
- }
704
- }
705
- function isNPOT(width, height) {
706
- if (!width || !height) {
707
- return false;
708
- }
709
- return !isPowerOfTwo(width) || !isPowerOfTwo(height);
710
- }
711
- function logParameters(parameters) {
712
- log.log(1, 'texture sampler parameters', parameters)();
713
- }
714
- //# sourceMappingURL=webgl-texture.js.map