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

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 (417) 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/adapter/converters/device-parameters.ts +5 -2
  162. package/src/adapter/converters/sampler-parameters.ts +4 -2
  163. package/src/adapter/converters/texture-formats.ts +3 -1
  164. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  165. package/src/adapter/helpers/get-shader-info.ts +1 -1
  166. package/src/adapter/helpers/get-shader-layout.ts +4 -4
  167. package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
  168. package/src/adapter/helpers/set-uniform.ts +2 -0
  169. package/src/adapter/objects/webgl-renderbuffer.ts +1 -1
  170. package/src/adapter/objects/webgl-resource.ts +1 -1
  171. package/src/adapter/objects/webgl-vertex-array-object.ts +1 -1
  172. package/src/adapter/resources/webgl-buffer.ts +6 -6
  173. package/src/adapter/resources/webgl-command-encoder.ts +1 -1
  174. package/src/adapter/resources/webgl-framebuffer.ts +3 -4
  175. package/src/adapter/resources/webgl-render-pipeline.ts +19 -20
  176. package/src/adapter/resources/webgl-shader.ts +1 -1
  177. package/src/adapter/resources/webgl-texture.ts +8 -9
  178. package/src/adapter/webgl-canvas-context.ts +2 -2
  179. package/src/adapter/webgl-device.ts +12 -2
  180. package/src/classic/accessor.ts +1 -1
  181. package/src/classic/buffer.ts +3 -3
  182. package/src/classic/typed-array-utils.ts +1 -1
  183. package/src/context/context/create-browser-context.ts +4 -2
  184. package/src/context/context/create-headless-context.ts +2 -2
  185. package/src/context/debug/spector.ts +5 -4
  186. package/src/context/debug/webgl-developer-tools.ts +1 -0
  187. package/src/context/polyfill/polyfill-table.ts +1 -0
  188. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  189. package/src/context/state-tracker/track-context-state.ts +6 -5
  190. package/src/context/state-tracker/with-parameters.ts +1 -1
  191. package/src/index.ts +1 -5
  192. package/src/types/webgl.ts +2 -0
  193. package/dist/bundle.d.ts +0 -2
  194. package/dist/bundle.d.ts.map +0 -1
  195. package/dist/bundle.js +0 -4
  196. package/dist/dist.min.js +0 -1
  197. package/dist/es5/adapter/converters/device-parameters.js +0 -139
  198. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  199. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -151
  200. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  201. package/dist/es5/adapter/converters/sampler-parameters.js +0 -182
  202. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  203. package/dist/es5/adapter/converters/texture-formats.js +0 -950
  204. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  205. package/dist/es5/adapter/converters/vertex-formats.js +0 -36
  206. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  207. package/dist/es5/adapter/device-helpers/device-features.js +0 -121
  208. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  209. package/dist/es5/adapter/device-helpers/device-limits.js +0 -54
  210. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  211. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -49
  212. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  213. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -15
  214. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  215. package/dist/es5/adapter/helpers/attribute-utils.js +0 -69
  216. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  217. package/dist/es5/adapter/helpers/get-shader-info.js +0 -31
  218. package/dist/es5/adapter/helpers/get-shader-info.js.map +0 -1
  219. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -311
  220. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  221. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -54
  222. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  223. package/dist/es5/adapter/helpers/set-uniform.js +0 -92
  224. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  225. package/dist/es5/adapter/helpers/uniforms.js +0 -88
  226. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  227. package/dist/es5/adapter/objects/constants-to-keys.js +0 -43
  228. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  229. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -122
  230. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  231. package/dist/es5/adapter/objects/webgl-resource.js +0 -233
  232. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  233. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -109
  234. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  235. package/dist/es5/adapter/resources/webgl-buffer.js +0 -196
  236. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  237. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -70
  238. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  239. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -80
  240. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  241. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  242. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  243. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -275
  244. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  245. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -45
  246. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  247. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -385
  248. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  249. package/dist/es5/adapter/resources/webgl-sampler.js +0 -75
  250. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  251. package/dist/es5/adapter/resources/webgl-shader.js +0 -111
  252. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  253. package/dist/es5/adapter/resources/webgl-texture.js +0 -826
  254. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  255. package/dist/es5/adapter/webgl-canvas-context.js +0 -72
  256. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  257. package/dist/es5/adapter/webgl-device.js +0 -387
  258. package/dist/es5/adapter/webgl-device.js.map +0 -1
  259. package/dist/es5/bundle.js +0 -6
  260. package/dist/es5/bundle.js.map +0 -1
  261. package/dist/es5/classic/accessor.js +0 -151
  262. package/dist/es5/classic/accessor.js.map +0 -1
  263. package/dist/es5/classic/buffer.js +0 -398
  264. package/dist/es5/classic/buffer.js.map +0 -1
  265. package/dist/es5/classic/typed-array-utils.js +0 -99
  266. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  267. package/dist/es5/context/context/create-browser-context.js +0 -66
  268. package/dist/es5/context/context/create-browser-context.js.map +0 -1
  269. package/dist/es5/context/context/create-headless-context.js +0 -47
  270. package/dist/es5/context/context/create-headless-context.js.map +0 -1
  271. package/dist/es5/context/context/webgl-checks.js +0 -44
  272. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  273. package/dist/es5/context/debug/spector.js +0 -99
  274. package/dist/es5/context/debug/spector.js.map +0 -1
  275. package/dist/es5/context/debug/webgl-developer-tools.js +0 -146
  276. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  277. package/dist/es5/context/parameters/unified-parameter-api.js +0 -76
  278. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  279. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -346
  280. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  281. package/dist/es5/context/polyfill/context-data.js +0 -18
  282. package/dist/es5/context/polyfill/context-data.js.map +0 -1
  283. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -69
  284. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  285. package/dist/es5/context/polyfill/polyfill-context.js +0 -109
  286. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  287. package/dist/es5/context/polyfill/polyfill-table.js +0 -143
  288. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  289. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -271
  290. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  291. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -23
  292. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  293. package/dist/es5/context/state-tracker/track-context-state.js +0 -167
  294. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  295. package/dist/es5/context/state-tracker/with-parameters.js +0 -40
  296. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  297. package/dist/es5/index.js +0 -249
  298. package/dist/es5/index.js.map +0 -1
  299. package/dist/es5/init.js +0 -7
  300. package/dist/es5/init.js.map +0 -1
  301. package/dist/es5/types/webgl.js +0 -5
  302. package/dist/es5/types/webgl.js.map +0 -1
  303. package/dist/es5/types.js +0 -2
  304. package/dist/es5/types.js.map +0 -1
  305. package/dist/esm/adapter/converters/device-parameters.js +0 -137
  306. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  307. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -181
  308. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  309. package/dist/esm/adapter/converters/sampler-parameters.js +0 -172
  310. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  311. package/dist/esm/adapter/converters/texture-formats.js +0 -901
  312. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  313. package/dist/esm/adapter/converters/vertex-formats.js +0 -29
  314. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  315. package/dist/esm/adapter/device-helpers/device-features.js +0 -95
  316. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  317. package/dist/esm/adapter/device-helpers/device-limits.js +0 -88
  318. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  319. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -42
  320. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  321. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -9
  322. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  323. package/dist/esm/adapter/helpers/attribute-utils.js +0 -64
  324. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  325. package/dist/esm/adapter/helpers/get-shader-info.js +0 -25
  326. package/dist/esm/adapter/helpers/get-shader-info.js.map +0 -1
  327. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -282
  328. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  329. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -30
  330. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  331. package/dist/esm/adapter/helpers/set-uniform.js +0 -85
  332. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  333. package/dist/esm/adapter/helpers/uniforms.js +0 -89
  334. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  335. package/dist/esm/adapter/objects/constants-to-keys.js +0 -35
  336. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  337. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -78
  338. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  339. package/dist/esm/adapter/objects/webgl-resource.js +0 -163
  340. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  341. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -74
  342. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  343. package/dist/esm/adapter/resources/webgl-buffer.js +0 -134
  344. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  345. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -50
  346. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  347. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -41
  348. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  349. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  350. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  351. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -207
  352. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  353. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -14
  354. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  355. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -311
  356. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  357. package/dist/esm/adapter/resources/webgl-sampler.js +0 -42
  358. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  359. package/dist/esm/adapter/resources/webgl-shader.js +0 -62
  360. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  361. package/dist/esm/adapter/resources/webgl-texture.js +0 -714
  362. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  363. package/dist/esm/adapter/webgl-canvas-context.js +0 -41
  364. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  365. package/dist/esm/adapter/webgl-device.js +0 -276
  366. package/dist/esm/adapter/webgl-device.js.map +0 -1
  367. package/dist/esm/bundle.js +0 -4
  368. package/dist/esm/bundle.js.map +0 -1
  369. package/dist/esm/classic/accessor.js +0 -120
  370. package/dist/esm/classic/accessor.js.map +0 -1
  371. package/dist/esm/classic/buffer.js +0 -327
  372. package/dist/esm/classic/buffer.js.map +0 -1
  373. package/dist/esm/classic/typed-array-utils.js +0 -92
  374. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  375. package/dist/esm/context/context/create-browser-context.js +0 -53
  376. package/dist/esm/context/context/create-browser-context.js.map +0 -1
  377. package/dist/esm/context/context/create-headless-context.js +0 -39
  378. package/dist/esm/context/context/create-headless-context.js.map +0 -1
  379. package/dist/esm/context/context/webgl-checks.js +0 -31
  380. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  381. package/dist/esm/context/debug/spector.js +0 -64
  382. package/dist/esm/context/debug/spector.js.map +0 -1
  383. package/dist/esm/context/debug/webgl-developer-tools.js +0 -97
  384. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  385. package/dist/esm/context/parameters/unified-parameter-api.js +0 -55
  386. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  387. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -427
  388. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  389. package/dist/esm/context/polyfill/context-data.js +0 -12
  390. package/dist/esm/context/polyfill/context-data.js.map +0 -1
  391. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -86
  392. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  393. package/dist/esm/context/polyfill/polyfill-context.js +0 -84
  394. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  395. package/dist/esm/context/polyfill/polyfill-table.js +0 -138
  396. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  397. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -265
  398. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  399. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -17
  400. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  401. package/dist/esm/context/state-tracker/track-context-state.js +0 -148
  402. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  403. package/dist/esm/context/state-tracker/with-parameters.js +0 -34
  404. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  405. package/dist/esm/index.js +0 -27
  406. package/dist/esm/index.js.map +0 -1
  407. package/dist/esm/init.js +0 -4
  408. package/dist/esm/init.js.map +0 -1
  409. package/dist/esm/types/webgl.js +0 -2
  410. package/dist/esm/types/webgl.js.map +0 -1
  411. package/dist/esm/types.js +0 -2
  412. package/dist/esm/types.js.map +0 -1
  413. package/dist/init.d.ts +0 -2
  414. package/dist/init.d.ts.map +0 -1
  415. package/dist/init.js +0 -3
  416. package/src/bundle.ts +0 -4
  417. package/src/init.ts +0 -4
@@ -1,826 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
18
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
- var _api = require("@luma.gl/api");
20
- var _constants = _interopRequireDefault(require("@luma.gl/constants"));
21
- var _withParameters = require("../../context/state-tracker/with-parameters");
22
- var _textureFormats = require("../converters/texture-formats");
23
- var _samplerParameters = require("../converters/sampler-parameters");
24
- var _webglBuffer = _interopRequireDefault(require("./webgl-buffer"));
25
- var _webglSampler = _interopRequireDefault(require("./webgl-sampler"));
26
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
27
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
28
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
29
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
30
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
31
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
32
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
33
- var WEBGLTexture = function (_Texture) {
34
- (0, _inherits2.default)(WEBGLTexture, _Texture);
35
- var _super = _createSuper(WEBGLTexture);
36
- function WEBGLTexture(device, props) {
37
- var _this$props;
38
- var _this;
39
- (0, _classCallCheck2.default)(this, WEBGLTexture);
40
- _this = _super.call(this, device, _objectSpread({
41
- format: _constants.default.RGBA
42
- }, props));
43
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "MAX_ATTRIBUTES", void 0);
44
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "device", void 0);
45
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "gl", void 0);
46
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "gl2", void 0);
47
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handle", void 0);
48
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "data", void 0);
49
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "width", undefined);
50
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "height", undefined);
51
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "depth", undefined);
52
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "format", undefined);
53
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "type", undefined);
54
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "dataFormat", undefined);
55
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "mipmaps", undefined);
56
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "target", void 0);
57
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "textureUnit", undefined);
58
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "sampler", undefined);
59
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "loaded", false);
60
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_video", void 0);
61
- _this.device = (0, _api.cast)(device);
62
- _this.gl = _this.device.gl;
63
- _this.gl2 = _this.device.gl2;
64
- _this.handle = _this.props.handle || _this.gl.createTexture();
65
- _this.handle.__SPECTOR_Metadata = _objectSpread(_objectSpread({}, _this.props), {}, {
66
- data: (0, _typeof2.default)(_this.props.data)
67
- });
68
- _this.target = getWebGLTextureTarget(_this.props);
69
- _this.loaded = false;
70
- if (typeof ((_this$props = _this.props) === null || _this$props === void 0 ? void 0 : _this$props.data) === 'string') {
71
- Object.assign(_this.props, {
72
- data: (0, _api.loadImage)(_this.props.data)
73
- });
74
- }
75
- _this.initialize(_this.props);
76
- Object.seal((0, _assertThisInitialized2.default)(_this));
77
- return _this;
78
- }
79
- (0, _createClass2.default)(WEBGLTexture, [{
80
- key: "destroy",
81
- value: function destroy() {
82
- if (this.handle) {
83
- this.gl.deleteTexture(this.handle);
84
- this.removeStats();
85
- this.trackDeallocatedMemory('Texture');
86
- this.destroyed = true;
87
- }
88
- }
89
- }, {
90
- key: "toString",
91
- value: function toString() {
92
- return "Texture(".concat(this.id, ",").concat(this.width, "x").concat(this.height, ")");
93
- }
94
- }, {
95
- key: "initialize",
96
- value: function initialize() {
97
- var _this2 = this;
98
- var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
99
- if (this.props.dimension === 'cube') {
100
- return this.initializeCube(props);
101
- }
102
- var data = props.data;
103
- if (data instanceof Promise) {
104
- data.then(function (resolvedImageData) {
105
- return _this2.initialize(Object.assign({}, props, {
106
- pixels: resolvedImageData,
107
- data: resolvedImageData
108
- }));
109
- });
110
- return this;
111
- }
112
- var isVideo = typeof HTMLVideoElement !== 'undefined' && data instanceof HTMLVideoElement;
113
- if (isVideo && data.readyState < HTMLVideoElement.HAVE_METADATA) {
114
- this._video = null;
115
- data.addEventListener('loadeddata', function () {
116
- return _this2.initialize(props);
117
- });
118
- return this;
119
- }
120
- var _props$parameters = props.parameters,
121
- parameters = _props$parameters === void 0 ? {} : _props$parameters;
122
- var _props$pixels = props.pixels,
123
- pixels = _props$pixels === void 0 ? null : _props$pixels,
124
- _props$recreate = props.recreate,
125
- recreate = _props$recreate === void 0 ? false : _props$recreate,
126
- _props$pixelStore = props.pixelStore,
127
- pixelStore = _props$pixelStore === void 0 ? {} : _props$pixelStore,
128
- _props$textureUnit = props.textureUnit,
129
- textureUnit = _props$textureUnit === void 0 ? undefined : _props$textureUnit;
130
- if (!data) {
131
- data = pixels;
132
- }
133
- var width = props.width,
134
- height = props.height,
135
- dataFormat = props.dataFormat,
136
- type = props.type,
137
- _props$compressed = props.compressed,
138
- compressed = _props$compressed === void 0 ? false : _props$compressed,
139
- _props$mipmaps = props.mipmaps,
140
- mipmaps = _props$mipmaps === void 0 ? true : _props$mipmaps;
141
- var _props$depth = props.depth,
142
- depth = _props$depth === void 0 ? 0 : _props$depth;
143
- var _this$_deduceParamete = this._deduceParameters({
144
- format: props.format,
145
- type: type,
146
- dataFormat: dataFormat,
147
- compressed: compressed,
148
- data: data,
149
- width: width,
150
- height: height
151
- });
152
- width = _this$_deduceParamete.width;
153
- height = _this$_deduceParamete.height;
154
- compressed = _this$_deduceParamete.compressed;
155
- dataFormat = _this$_deduceParamete.dataFormat;
156
- type = _this$_deduceParamete.type;
157
- var format = (0, _textureFormats.getWebGLTextureFormat)(this.gl, props.format);
158
- this.width = width;
159
- this.height = height;
160
- this.depth = depth;
161
- this.format = format;
162
- this.type = type;
163
- this.dataFormat = dataFormat;
164
- this.textureUnit = textureUnit;
165
- if (Number.isFinite(this.textureUnit)) {
166
- this.gl.activeTexture(_constants.default.TEXTURE0 + this.textureUnit);
167
- this.gl.bindTexture(this.target, this.handle);
168
- }
169
- if (mipmaps && this.device.isWebGL1 && isNPOT(this.width, this.height)) {
170
- _api.log.warn("texture: ".concat(this, " is Non-Power-Of-Two, disabling mipmaps"))();
171
- mipmaps = false;
172
- }
173
- this.mipmaps = mipmaps;
174
- this.setImageData({
175
- data: data,
176
- width: width,
177
- height: height,
178
- depth: depth,
179
- format: format,
180
- type: type,
181
- dataFormat: dataFormat,
182
- parameters: pixelStore,
183
- compressed: compressed
184
- });
185
- this.setSampler(props.sampler);
186
- this._setSamplerParameters(parameters);
187
- if (mipmaps) {
188
- this.generateMipmap();
189
- }
190
- if (recreate) {
191
- this.data = data;
192
- }
193
- if (isVideo) {
194
- this._video = {
195
- video: data,
196
- parameters: parameters,
197
- lastTime: data.readyState >= HTMLVideoElement.HAVE_CURRENT_DATA ? data.currentTime : -1
198
- };
199
- }
200
- return this;
201
- }
202
- }, {
203
- key: "initializeCube",
204
- value: function initializeCube(props) {
205
- var _this3 = this;
206
- var _props$mipmaps2 = props.mipmaps,
207
- mipmaps = _props$mipmaps2 === void 0 ? true : _props$mipmaps2,
208
- _props$parameters2 = props.parameters,
209
- parameters = _props$parameters2 === void 0 ? {} : _props$parameters2;
210
- this.setCubeMapImageData(props).then(function () {
211
- _this3.loaded = true;
212
- if (mipmaps) {
213
- _this3.generateMipmap(props);
214
- }
215
- _this3.setSampler(props.sampler);
216
- _this3._setSamplerParameters(parameters);
217
- });
218
- return this;
219
- }
220
- }, {
221
- key: "setSampler",
222
- value: function setSampler() {
223
- var sampler = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
224
- var samplerProps;
225
- if (sampler instanceof _webglSampler.default) {
226
- this.sampler = sampler;
227
- samplerProps = sampler.props;
228
- } else {
229
- this.sampler = new _webglSampler.default(this.device, sampler);
230
- samplerProps = sampler;
231
- }
232
- var parameters = (0, _samplerParameters.convertSamplerParametersToWebGL)(samplerProps);
233
- this._setSamplerParameters(parameters);
234
- return this;
235
- }
236
- }, {
237
- key: "resize",
238
- value: function resize(options) {
239
- var height = options.height,
240
- width = options.width,
241
- _options$mipmaps = options.mipmaps,
242
- mipmaps = _options$mipmaps === void 0 ? false : _options$mipmaps;
243
- if (width !== this.width || height !== this.height) {
244
- return this.initialize({
245
- width: width,
246
- height: height,
247
- format: this.format,
248
- type: this.type,
249
- dataFormat: this.dataFormat,
250
- mipmaps: mipmaps
251
- });
252
- }
253
- return this;
254
- }
255
- }, {
256
- key: "update",
257
- value: function update() {
258
- if (this._video) {
259
- var _this$_video = this._video,
260
- video = _this$_video.video,
261
- parameters = _this$_video.parameters,
262
- lastTime = _this$_video.lastTime;
263
- if (lastTime === video.currentTime || video.readyState < HTMLVideoElement.HAVE_CURRENT_DATA) {
264
- return;
265
- }
266
- this.setSubImageData({
267
- data: video,
268
- parameters: parameters
269
- });
270
- if (this.mipmaps) {
271
- this.generateMipmap();
272
- }
273
- this._video.lastTime = video.currentTime;
274
- }
275
- }
276
- }, {
277
- key: "generateMipmap",
278
- value: function generateMipmap() {
279
- var _this4 = this;
280
- var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
281
- if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
282
- _api.log.warn("texture: ".concat(this, " is Non-Power-Of-Two, disabling mipmaping"))();
283
- return this;
284
- }
285
- this.mipmaps = true;
286
- this.gl.bindTexture(this.target, this.handle);
287
- (0, _withParameters.withParameters)(this.gl, params, function () {
288
- _this4.gl.generateMipmap(_this4.target);
289
- });
290
- this.gl.bindTexture(this.target, null);
291
- return this;
292
- }
293
- }, {
294
- key: "setImageData",
295
- value: function setImageData(options) {
296
- var _this5 = this;
297
- if (this.props.dimension === '3d') {
298
- return this.setImageData3D(options);
299
- }
300
- this.trackDeallocatedMemory('Texture');
301
- var _options$target = options.target,
302
- target = _options$target === void 0 ? this.target : _options$target,
303
- _options$pixels = options.pixels,
304
- pixels = _options$pixels === void 0 ? null : _options$pixels,
305
- _options$level = options.level,
306
- level = _options$level === void 0 ? 0 : _options$level,
307
- _options$format = options.format,
308
- format = _options$format === void 0 ? this.format : _options$format,
309
- _options$offset = options.offset,
310
- offset = _options$offset === void 0 ? 0 : _options$offset,
311
- _options$parameters = options.parameters,
312
- parameters = _options$parameters === void 0 ? {} : _options$parameters;
313
- var _options$data = options.data,
314
- data = _options$data === void 0 ? null : _options$data,
315
- _options$type = options.type,
316
- type = _options$type === void 0 ? this.type : _options$type,
317
- _options$width = options.width,
318
- width = _options$width === void 0 ? this.width : _options$width,
319
- _options$height = options.height,
320
- height = _options$height === void 0 ? this.height : _options$height,
321
- _options$dataFormat = options.dataFormat,
322
- dataFormat = _options$dataFormat === void 0 ? this.dataFormat : _options$dataFormat,
323
- _options$compressed = options.compressed,
324
- compressed = _options$compressed === void 0 ? false : _options$compressed;
325
- if (!data) {
326
- data = pixels;
327
- }
328
- var _this$_deduceParamete2 = this._deduceParameters({
329
- format: this.props.format,
330
- type: type,
331
- dataFormat: dataFormat,
332
- compressed: compressed,
333
- data: data,
334
- width: width,
335
- height: height
336
- });
337
- type = _this$_deduceParamete2.type;
338
- dataFormat = _this$_deduceParamete2.dataFormat;
339
- compressed = _this$_deduceParamete2.compressed;
340
- width = _this$_deduceParamete2.width;
341
- height = _this$_deduceParamete2.height;
342
- var gl = this.gl;
343
- gl.bindTexture(this.target, this.handle);
344
- var dataType = null;
345
- var _this$_getDataType = this._getDataType({
346
- data: data,
347
- compressed: compressed
348
- });
349
- data = _this$_getDataType.data;
350
- dataType = _this$_getDataType.dataType;
351
- var gl2;
352
- (0, _withParameters.withParameters)(this.gl, parameters, function () {
353
- switch (dataType) {
354
- case 'null':
355
- gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data);
356
- break;
357
- case 'typed-array':
358
- gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data, offset);
359
- break;
360
- case 'buffer':
361
- gl2 = _this5.device.assertWebGL2();
362
- gl2.bindBuffer(_constants.default.PIXEL_UNPACK_BUFFER, data.handle || data);
363
- gl2.texImage2D(target, level, format, width, height, 0, dataFormat, type, offset);
364
- gl2.bindBuffer(_constants.default.PIXEL_UNPACK_BUFFER, null);
365
- break;
366
- case 'browser-object':
367
- if (_this5.device.isWebGL2) {
368
- gl.texImage2D(target, level, format, width, height, 0, dataFormat, type, data);
369
- } else {
370
- gl.texImage2D(target, level, format, dataFormat, type, data);
371
- }
372
- break;
373
- case 'compressed':
374
- var _iterator = _createForOfIteratorHelper(data.entries()),
375
- _step;
376
- try {
377
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
378
- var _step$value = (0, _slicedToArray2.default)(_step.value, 2),
379
- levelIndex = _step$value[0],
380
- levelData = _step$value[1];
381
- gl.compressedTexImage2D(target, levelIndex, levelData.format, levelData.width, levelData.height, 0, levelData.data);
382
- }
383
- } catch (err) {
384
- _iterator.e(err);
385
- } finally {
386
- _iterator.f();
387
- }
388
- break;
389
- default:
390
- (0, _api.assert)(false, 'Unknown image data type');
391
- }
392
- });
393
- if (data && data.byteLength) {
394
- this.trackAllocatedMemory(data.byteLength, 'Texture');
395
- } else {
396
- var bytesPerPixel = (0, _textureFormats.getTextureFormatBytesPerPixel)(this.gl, this.props.format);
397
- this.trackAllocatedMemory(this.width * this.height * bytesPerPixel, 'Texture');
398
- }
399
- this.loaded = true;
400
- return this;
401
- }
402
- }, {
403
- key: "setSubImageData",
404
- value: function setSubImageData(_ref) {
405
- var _this6 = this;
406
- var _ref$target = _ref.target,
407
- target = _ref$target === void 0 ? this.target : _ref$target,
408
- _ref$pixels = _ref.pixels,
409
- pixels = _ref$pixels === void 0 ? null : _ref$pixels,
410
- _ref$data = _ref.data,
411
- data = _ref$data === void 0 ? null : _ref$data,
412
- _ref$x = _ref.x,
413
- x = _ref$x === void 0 ? 0 : _ref$x,
414
- _ref$y = _ref.y,
415
- y = _ref$y === void 0 ? 0 : _ref$y,
416
- _ref$width = _ref.width,
417
- width = _ref$width === void 0 ? this.width : _ref$width,
418
- _ref$height = _ref.height,
419
- height = _ref$height === void 0 ? this.height : _ref$height,
420
- _ref$level = _ref.level,
421
- level = _ref$level === void 0 ? 0 : _ref$level,
422
- _ref$format = _ref.format,
423
- format = _ref$format === void 0 ? this.format : _ref$format,
424
- _ref$type = _ref.type,
425
- type = _ref$type === void 0 ? this.type : _ref$type,
426
- _ref$dataFormat = _ref.dataFormat,
427
- dataFormat = _ref$dataFormat === void 0 ? this.dataFormat : _ref$dataFormat,
428
- _ref$compressed = _ref.compressed,
429
- compressed = _ref$compressed === void 0 ? false : _ref$compressed,
430
- _ref$offset = _ref.offset,
431
- offset = _ref$offset === void 0 ? 0 : _ref$offset,
432
- _ref$parameters = _ref.parameters,
433
- parameters = _ref$parameters === void 0 ? {} : _ref$parameters;
434
- var _this$_deduceParamete3 = this._deduceParameters({
435
- format: this.props.format,
436
- type: type,
437
- dataFormat: dataFormat,
438
- compressed: compressed,
439
- data: data,
440
- width: width,
441
- height: height
442
- });
443
- type = _this$_deduceParamete3.type;
444
- dataFormat = _this$_deduceParamete3.dataFormat;
445
- compressed = _this$_deduceParamete3.compressed;
446
- width = _this$_deduceParamete3.width;
447
- height = _this$_deduceParamete3.height;
448
- (0, _api.assert)(this.depth === 1, 'texSubImage not supported for 3D textures');
449
- if (!data) {
450
- data = pixels;
451
- }
452
- if (data && data.data) {
453
- var ndarray = data;
454
- data = ndarray.data;
455
- width = ndarray.shape[0];
456
- height = ndarray.shape[1];
457
- }
458
- if (data instanceof _webglBuffer.default) {
459
- data = data.handle;
460
- }
461
- this.gl.bindTexture(this.target, this.handle);
462
- (0, _withParameters.withParameters)(this.gl, parameters, function () {
463
- if (compressed) {
464
- _this6.gl.compressedTexSubImage2D(target, level, x, y, width, height, format, data);
465
- } else if (data === null) {
466
- _this6.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
467
- } else if (ArrayBuffer.isView(data)) {
468
- _this6.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data, offset);
469
- } else if (typeof WebGLBuffer !== 'undefined' && data instanceof WebGLBuffer) {
470
- var gl2 = _this6.device.assertWebGL2();
471
- gl2.bindBuffer(_constants.default.PIXEL_UNPACK_BUFFER, data);
472
- gl2.texSubImage2D(target, level, x, y, width, height, dataFormat, type, offset);
473
- gl2.bindBuffer(_constants.default.PIXEL_UNPACK_BUFFER, null);
474
- } else if (_this6.device.isWebGL2) {
475
- var _gl = _this6.device.assertWebGL2();
476
- _gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data);
477
- } else {
478
- _this6.gl.texSubImage2D(target, level, x, y, dataFormat, type, data);
479
- }
480
- });
481
- this.gl.bindTexture(this.target, null);
482
- }
483
- }, {
484
- key: "copyFramebuffer",
485
- value: function copyFramebuffer() {
486
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
487
- _api.log.error('Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})')();
488
- return null;
489
- }
490
- }, {
491
- key: "getActiveUnit",
492
- value: function getActiveUnit() {
493
- return this.gl.getParameter(_constants.default.ACTIVE_TEXTURE) - _constants.default.TEXTURE0;
494
- }
495
- }, {
496
- key: "bind",
497
- value: function bind() {
498
- var textureUnit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.textureUnit;
499
- var gl = this.gl;
500
- if (textureUnit !== undefined) {
501
- this.textureUnit = textureUnit;
502
- gl.activeTexture(gl.TEXTURE0 + textureUnit);
503
- }
504
- gl.bindTexture(this.target, this.handle);
505
- return textureUnit;
506
- }
507
- }, {
508
- key: "unbind",
509
- value: function unbind() {
510
- var textureUnit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.textureUnit;
511
- var gl = this.gl;
512
- if (textureUnit !== undefined) {
513
- this.textureUnit = textureUnit;
514
- gl.activeTexture(gl.TEXTURE0 + textureUnit);
515
- }
516
- gl.bindTexture(this.target, null);
517
- return textureUnit;
518
- }
519
- }, {
520
- key: "_getDataType",
521
- value: function _getDataType(_ref2) {
522
- var data = _ref2.data,
523
- _ref2$compressed = _ref2.compressed,
524
- compressed = _ref2$compressed === void 0 ? false : _ref2$compressed;
525
- if (compressed) {
526
- return {
527
- data: data,
528
- dataType: 'compressed'
529
- };
530
- }
531
- if (data === null) {
532
- return {
533
- data: data,
534
- dataType: 'null'
535
- };
536
- }
537
- if (ArrayBuffer.isView(data)) {
538
- return {
539
- data: data,
540
- dataType: 'typed-array'
541
- };
542
- }
543
- if (data instanceof _webglBuffer.default) {
544
- return {
545
- data: data.handle,
546
- dataType: 'buffer'
547
- };
548
- }
549
- if (typeof WebGLBuffer !== 'undefined' && data instanceof WebGLBuffer) {
550
- return {
551
- data: data,
552
- dataType: 'buffer'
553
- };
554
- }
555
- return {
556
- data: data,
557
- dataType: 'browser-object'
558
- };
559
- }
560
- }, {
561
- key: "_deduceParameters",
562
- value: function _deduceParameters(opts) {
563
- var format = opts.format,
564
- data = opts.data;
565
- var width = opts.width,
566
- height = opts.height,
567
- dataFormat = opts.dataFormat,
568
- type = opts.type,
569
- compressed = opts.compressed;
570
- var parameters = (0, _textureFormats.getWebGLTextureParameters)(this.gl, format);
571
- dataFormat = dataFormat || parameters.dataFormat;
572
- type = type || parameters.type;
573
- compressed = compressed || parameters.compressed;
574
- var _this$_deduceImageSiz = this._deduceImageSize(data, width, height);
575
- width = _this$_deduceImageSiz.width;
576
- height = _this$_deduceImageSiz.height;
577
- return {
578
- dataFormat: dataFormat,
579
- type: type,
580
- compressed: compressed,
581
- width: width,
582
- height: height,
583
- format: format,
584
- data: data
585
- };
586
- }
587
- }, {
588
- key: "_deduceImageSize",
589
- value: function _deduceImageSize(data, width, height) {
590
- var size;
591
- if (typeof ImageData !== 'undefined' && data instanceof ImageData) {
592
- size = {
593
- width: data.width,
594
- height: data.height
595
- };
596
- } else if (typeof HTMLImageElement !== 'undefined' && data instanceof HTMLImageElement) {
597
- size = {
598
- width: data.naturalWidth,
599
- height: data.naturalHeight
600
- };
601
- } else if (typeof HTMLCanvasElement !== 'undefined' && data instanceof HTMLCanvasElement) {
602
- size = {
603
- width: data.width,
604
- height: data.height
605
- };
606
- } else if (typeof ImageBitmap !== 'undefined' && data instanceof ImageBitmap) {
607
- size = {
608
- width: data.width,
609
- height: data.height
610
- };
611
- } else if (typeof HTMLVideoElement !== 'undefined' && data instanceof HTMLVideoElement) {
612
- size = {
613
- width: data.videoWidth,
614
- height: data.videoHeight
615
- };
616
- } else if (!data) {
617
- size = {
618
- width: width >= 0 ? width : 1,
619
- height: height >= 0 ? height : 1
620
- };
621
- } else {
622
- size = {
623
- width: width,
624
- height: height
625
- };
626
- }
627
- (0, _api.assert)(size, 'Could not deduced texture size');
628
- (0, _api.assert)(width === undefined || size.width === width, 'Deduced texture width does not match supplied width');
629
- (0, _api.assert)(height === undefined || size.height === height, 'Deduced texture height does not match supplied height');
630
- return size;
631
- }
632
- }, {
633
- key: "setCubeMapImageData",
634
- value: function () {
635
- var _setCubeMapImageData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
636
- var _this7 = this;
637
- var gl, width, height, pixels, data, _options$format2, format, _options$type2, type, imageDataMap, resolvedFaces;
638
- return _regenerator.default.wrap(function _callee$(_context) {
639
- while (1) switch (_context.prev = _context.next) {
640
- case 0:
641
- gl = this.gl;
642
- width = options.width, height = options.height, pixels = options.pixels, data = options.data, _options$format2 = options.format, format = _options$format2 === void 0 ? _constants.default.RGBA : _options$format2, _options$type2 = options.type, type = _options$type2 === void 0 ? _constants.default.UNSIGNED_BYTE : _options$type2;
643
- imageDataMap = pixels || data;
644
- _context.next = 5;
645
- return Promise.all(WEBGLTexture.FACES.map(function (face) {
646
- var facePixels = imageDataMap[face];
647
- return Promise.all(Array.isArray(facePixels) ? facePixels : [facePixels]);
648
- }));
649
- case 5:
650
- resolvedFaces = _context.sent;
651
- this.bind();
652
- WEBGLTexture.FACES.forEach(function (face, index) {
653
- if (resolvedFaces[index].length > 1 && _this7.props.mipmaps !== false) {
654
- _api.log.warn("".concat(_this7.id, " has mipmap and multiple LODs."))();
655
- }
656
- resolvedFaces[index].forEach(function (image, lodLevel) {
657
- if (width && height) {
658
- gl.texImage2D(face, lodLevel, format, width, height, 0, format, type, image);
659
- } else {
660
- gl.texImage2D(face, lodLevel, format, format, type, image);
661
- }
662
- });
663
- });
664
- this.unbind();
665
- case 9:
666
- case "end":
667
- return _context.stop();
668
- }
669
- }, _callee, this);
670
- }));
671
- function setCubeMapImageData(_x) {
672
- return _setCubeMapImageData.apply(this, arguments);
673
- }
674
- return setCubeMapImageData;
675
- }()
676
- }, {
677
- key: "setImageDataForFace",
678
- value: function setImageDataForFace(options) {
679
- var _this8 = this;
680
- var face = options.face,
681
- width = options.width,
682
- height = options.height,
683
- pixels = options.pixels,
684
- data = options.data,
685
- _options$format3 = options.format,
686
- format = _options$format3 === void 0 ? _constants.default.RGBA : _options$format3,
687
- _options$type3 = options.type,
688
- type = _options$type3 === void 0 ? _constants.default.UNSIGNED_BYTE : _options$type3;
689
- var gl = this.gl;
690
- var imageData = pixels || data;
691
- this.bind();
692
- if (imageData instanceof Promise) {
693
- imageData.then(function (resolvedImageData) {
694
- return _this8.setImageDataForFace(Object.assign({}, options, {
695
- face: face,
696
- data: resolvedImageData,
697
- pixels: resolvedImageData
698
- }));
699
- });
700
- } else if (this.width || this.height) {
701
- gl.texImage2D(face, 0, format, width, height, 0, format, type, imageData);
702
- } else {
703
- gl.texImage2D(face, 0, format, format, type, imageData);
704
- }
705
- return this;
706
- }
707
- }, {
708
- key: "setImageData3D",
709
- value: function setImageData3D(options) {
710
- var _this9 = this;
711
- var _options$level2 = options.level,
712
- level = _options$level2 === void 0 ? 0 : _options$level2,
713
- dataFormat = options.dataFormat,
714
- format = options.format,
715
- type = options.type,
716
- width = options.width,
717
- height = options.height,
718
- _options$depth = options.depth,
719
- depth = _options$depth === void 0 ? 1 : _options$depth,
720
- _options$offset2 = options.offset,
721
- offset = _options$offset2 === void 0 ? 0 : _options$offset2,
722
- data = options.data,
723
- _options$parameters2 = options.parameters,
724
- parameters = _options$parameters2 === void 0 ? {} : _options$parameters2;
725
- this.trackDeallocatedMemory('Texture');
726
- this.gl.bindTexture(this.target, this.handle);
727
- var webglTextureFormat = (0, _textureFormats.getWebGLTextureParameters)(this.gl, format);
728
- (0, _withParameters.withParameters)(this.gl, parameters, function () {
729
- if (ArrayBuffer.isView(data)) {
730
- _this9.gl.texImage3D(_this9.target, level, webglTextureFormat.format, width, height, depth, 0, webglTextureFormat.dataFormat, webglTextureFormat.type, data);
731
- }
732
- if (data instanceof _webglBuffer.default) {
733
- _this9.gl.bindBuffer(_constants.default.PIXEL_UNPACK_BUFFER, data.handle);
734
- _this9.gl.texImage3D(_this9.target, level, dataFormat, width, height, depth, 0, format, type, offset);
735
- }
736
- });
737
- if (data && data.byteLength) {
738
- this.trackAllocatedMemory(data.byteLength, 'Texture');
739
- } else {
740
- var bytesPerPixel = (0, _textureFormats.getTextureFormatBytesPerPixel)(this.gl, this.props.format);
741
- this.trackAllocatedMemory(this.width * this.height * this.depth * bytesPerPixel, 'Texture');
742
- }
743
- this.loaded = true;
744
- return this;
745
- }
746
- }, {
747
- key: "_setSamplerParameters",
748
- value: function _setSamplerParameters(parameters) {
749
- if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
750
- parameters = (0, _samplerParameters.updateSamplerParametersForNPOT)(parameters);
751
- }
752
- if ((0, _api.isObjectEmpty)(parameters)) {
753
- return;
754
- }
755
- logParameters(parameters);
756
- this.gl.bindTexture(this.target, this.handle);
757
- for (var _i = 0, _Object$entries = Object.entries(parameters); _i < _Object$entries.length; _i++) {
758
- var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
759
- pname = _Object$entries$_i[0],
760
- pvalue = _Object$entries$_i[1];
761
- var param = Number(pname);
762
- var value = pvalue;
763
- switch (param) {
764
- case _constants.default.TEXTURE_MIN_LOD:
765
- case _constants.default.TEXTURE_MAX_LOD:
766
- this.gl.texParameterf(this.target, param, value);
767
- break;
768
- default:
769
- this.gl.texParameteri(this.target, param, value);
770
- break;
771
- }
772
- }
773
- this.gl.bindTexture(this.target, null);
774
- return;
775
- }
776
- }, {
777
- key: "_getWebGL1NPOTParameterOverride",
778
- value: function _getWebGL1NPOTParameterOverride(pname, value) {
779
- var npot = this.device.isWebGL1 && isNPOT(this.width, this.height);
780
- if (npot) {
781
- switch (pname) {
782
- case _constants.default.TEXTURE_MIN_FILTER:
783
- if (value !== _constants.default.LINEAR && value !== _constants.default.NEAREST) {
784
- return _constants.default.LINEAR;
785
- }
786
- break;
787
- case _constants.default.TEXTURE_WRAP_S:
788
- case _constants.default.TEXTURE_WRAP_T:
789
- return _constants.default.CLAMP_TO_EDGE;
790
- default:
791
- break;
792
- }
793
- }
794
- return value;
795
- }
796
- }]);
797
- return WEBGLTexture;
798
- }(_api.Texture);
799
- exports.default = WEBGLTexture;
800
- (0, _defineProperty2.default)(WEBGLTexture, "FACES", [_constants.default.TEXTURE_CUBE_MAP_POSITIVE_X, _constants.default.TEXTURE_CUBE_MAP_NEGATIVE_X, _constants.default.TEXTURE_CUBE_MAP_POSITIVE_Y, _constants.default.TEXTURE_CUBE_MAP_NEGATIVE_Y, _constants.default.TEXTURE_CUBE_MAP_POSITIVE_Z, _constants.default.TEXTURE_CUBE_MAP_NEGATIVE_Z]);
801
- function getWebGLTextureTarget(props) {
802
- switch (props.dimension) {
803
- case '2d':
804
- return _constants.default.TEXTURE_2D;
805
- case 'cube':
806
- return _constants.default.TEXTURE_CUBE_MAP;
807
- case '2d-array':
808
- return _constants.default.TEXTURE_2D_ARRAY;
809
- case '3d':
810
- return _constants.default.TEXTURE_3D;
811
- case '1d':
812
- case 'cube-array':
813
- default:
814
- throw new Error(props.dimension);
815
- }
816
- }
817
- function isNPOT(width, height) {
818
- if (!width || !height) {
819
- return false;
820
- }
821
- return !(0, _api.isPowerOfTwo)(width) || !(0, _api.isPowerOfTwo)(height);
822
- }
823
- function logParameters(parameters) {
824
- _api.log.log(1, 'texture sampler parameters', parameters)();
825
- }
826
- //# sourceMappingURL=webgl-texture.js.map