@luma.gl/webgl 9.0.0-alpha.9 → 9.0.0-beta.1

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 (525) hide show
  1. package/LICENSE +3 -1
  2. package/dist/adapter/converters/device-parameters.d.ts +12 -3
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/device-parameters.js +89 -74
  5. package/dist/adapter/converters/device-parameters.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts +4 -10
  7. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  8. package/dist/adapter/converters/sampler-parameters.js +29 -180
  9. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  10. package/dist/adapter/converters/shader-formats.d.ts +9 -0
  11. package/dist/adapter/converters/shader-formats.d.ts.map +1 -0
  12. package/dist/adapter/converters/shader-formats.js +52 -0
  13. package/dist/adapter/converters/shader-formats.js.map +1 -0
  14. package/dist/adapter/converters/texture-formats.d.ts +32 -44
  15. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  16. package/dist/adapter/converters/texture-formats.js +306 -343
  17. package/dist/adapter/converters/texture-formats.js.map +1 -1
  18. package/dist/adapter/converters/vertex-formats.d.ts +9 -3
  19. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  20. package/dist/adapter/converters/vertex-formats.js +53 -22
  21. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  22. package/dist/adapter/device-helpers/device-features.d.ts +1 -1
  23. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  24. package/dist/adapter/device-helpers/device-features.js +9 -25
  25. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  26. package/dist/adapter/device-helpers/device-limits.d.ts +3 -3
  27. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  28. package/dist/adapter/device-helpers/device-limits.js +54 -58
  29. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  30. package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
  31. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
  32. package/dist/adapter/device-helpers/get-device-info.js +49 -22
  33. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  34. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -1
  35. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  36. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  37. package/dist/adapter/helpers/decode-webgl-types.d.ts +26 -0
  38. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -0
  39. package/dist/adapter/helpers/decode-webgl-types.js +89 -0
  40. package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
  41. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -48
  42. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  43. package/dist/adapter/helpers/get-shader-layout.js +58 -138
  44. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  45. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  46. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  47. package/dist/adapter/helpers/parse-shader-compiler-log.js +16 -11
  48. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  49. package/dist/adapter/helpers/set-uniform.d.ts +3 -2
  50. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  51. package/dist/adapter/helpers/set-uniform.js +51 -82
  52. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  53. package/dist/adapter/helpers/webgl-topology-utils.d.ts +16 -0
  54. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
  55. package/dist/adapter/helpers/webgl-topology-utils.js +103 -0
  56. package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
  57. package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
  58. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  59. package/dist/adapter/objects/constants-to-keys.js +2 -29
  60. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  61. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  62. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  63. package/dist/adapter/objects/webgl-renderbuffer.js +36 -44
  64. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  65. package/dist/adapter/objects/webgl-resource.d.ts +6 -9
  66. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  67. package/dist/adapter/objects/webgl-resource.js +26 -83
  68. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  69. package/dist/adapter/resources/webgl-buffer.d.ts +19 -14
  70. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  71. package/dist/adapter/resources/webgl-buffer.js +67 -101
  72. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  73. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  74. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  75. package/dist/adapter/resources/webgl-command-buffer.js +175 -48
  76. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  77. package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
  78. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  79. package/dist/adapter/resources/webgl-command-encoder.js +10 -20
  80. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  81. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  82. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -25
  83. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  84. package/dist/adapter/resources/webgl-framebuffer.js +63 -175
  85. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  86. package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
  87. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  88. package/dist/adapter/resources/webgl-render-pass.js +98 -12
  89. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  90. package/dist/adapter/resources/webgl-render-pipeline.d.ts +34 -20
  91. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  92. package/dist/adapter/resources/webgl-render-pipeline.js +110 -293
  93. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  94. package/dist/adapter/resources/webgl-sampler.d.ts +5 -4
  95. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  96. package/dist/adapter/resources/webgl-sampler.js +11 -21
  97. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  98. package/dist/adapter/resources/webgl-shader.d.ts +5 -5
  99. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  100. package/dist/adapter/resources/webgl-shader.js +18 -44
  101. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  102. package/dist/adapter/resources/webgl-texture.d.ts +51 -31
  103. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  104. package/dist/adapter/resources/webgl-texture.js +123 -244
  105. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  106. package/dist/adapter/resources/webgl-transform-feedback.d.ts +47 -0
  107. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -0
  108. package/dist/adapter/resources/webgl-transform-feedback.js +164 -0
  109. package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -0
  110. package/dist/adapter/resources/webgl-vertex-array.d.ts +67 -0
  111. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -0
  112. package/dist/adapter/resources/webgl-vertex-array.js +167 -0
  113. package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
  114. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  115. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  116. package/dist/adapter/webgl-canvas-context.js +12 -23
  117. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  118. package/dist/adapter/webgl-device.d.ts +92 -41
  119. package/dist/adapter/webgl-device.d.ts.map +1 -1
  120. package/dist/adapter/webgl-device.js +205 -158
  121. package/dist/adapter/webgl-device.js.map +1 -1
  122. package/dist/classic/accessor.d.ts +3 -3
  123. package/dist/classic/accessor.d.ts.map +1 -1
  124. package/dist/classic/accessor.js +26 -52
  125. package/dist/classic/accessor.js.map +1 -1
  126. package/dist/classic/clear.d.ts +22 -0
  127. package/dist/classic/clear.d.ts.map +1 -0
  128. package/dist/classic/clear.js +88 -0
  129. package/dist/classic/clear.js.map +1 -0
  130. package/dist/classic/copy-and-blit.d.ts +62 -0
  131. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  132. package/dist/classic/copy-and-blit.js +192 -0
  133. package/dist/classic/copy-and-blit.js.map +1 -0
  134. package/dist/classic/format-utils.d.ts +3 -0
  135. package/dist/classic/format-utils.d.ts.map +1 -0
  136. package/dist/classic/format-utils.js +37 -0
  137. package/dist/classic/format-utils.js.map +1 -0
  138. package/dist/classic/typed-array-utils.d.ts +17 -17
  139. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  140. package/dist/classic/typed-array-utils.js +18 -39
  141. package/dist/classic/typed-array-utils.js.map +1 -1
  142. package/dist/context/context/create-browser-context.d.ts +17 -18
  143. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  144. package/dist/context/context/create-browser-context.js +11 -19
  145. package/dist/context/context/create-browser-context.js.map +1 -1
  146. package/dist/context/context/create-headless-context.d.ts +1 -1
  147. package/dist/context/context/create-headless-context.d.ts.map +1 -1
  148. package/dist/context/context/create-headless-context.js +6 -7
  149. package/dist/context/context/create-headless-context.js.map +1 -1
  150. package/dist/context/context/webgl-checks.d.ts.map +1 -1
  151. package/dist/context/context/webgl-checks.js +1 -4
  152. package/dist/context/context/webgl-checks.js.map +1 -1
  153. package/dist/context/debug/spector.d.ts +1 -2
  154. package/dist/context/debug/spector.d.ts.map +1 -1
  155. package/dist/context/debug/spector.js +7 -19
  156. package/dist/context/debug/spector.js.map +1 -1
  157. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  158. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  159. package/dist/context/debug/webgl-developer-tools.js +18 -41
  160. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  161. package/dist/context/parameters/unified-parameter-api.d.ts +5 -5
  162. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  163. package/dist/context/parameters/unified-parameter-api.js +9 -17
  164. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  165. package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
  166. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  167. package/dist/context/parameters/webgl-parameter-tables.js +267 -286
  168. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  169. package/dist/context/polyfill/context-data.d.ts +13 -0
  170. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  171. package/dist/context/polyfill/context-data.js +12 -0
  172. package/dist/context/polyfill/context-data.js.map +1 -0
  173. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  174. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  175. package/dist/context/polyfill/get-parameter-polyfill.js +37 -43
  176. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  177. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -1
  178. package/dist/context/polyfill/polyfill-context.js +27 -31
  179. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  180. package/dist/context/polyfill/polyfill-table.d.ts +7 -7
  181. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  182. package/dist/context/polyfill/polyfill-table.js +17 -40
  183. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  184. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  185. package/dist/context/polyfill/polyfill-vertex-array-object.js +17 -87
  186. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  187. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  188. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  189. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  190. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  191. package/dist/context/state-tracker/track-context-state.js +25 -61
  192. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  193. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  194. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  195. package/dist/context/state-tracker/with-parameters.js +8 -10
  196. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  197. package/dist/dist.dev.js +9344 -0
  198. package/dist/index.cjs +6556 -0
  199. package/dist/index.d.ts +23 -24
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +27 -27
  202. package/dist/index.js.map +1 -1
  203. package/dist/types.d.ts +3 -1
  204. package/dist/types.d.ts.map +1 -1
  205. package/dist/types.js.map +1 -1
  206. package/dist.min.js +52 -0
  207. package/package.json +21 -9
  208. package/src/adapter/converters/device-parameters.ts +120 -43
  209. package/src/adapter/converters/sampler-parameters.ts +54 -126
  210. package/src/adapter/converters/shader-formats.ts +44 -0
  211. package/src/adapter/converters/texture-formats.ts +265 -192
  212. package/src/adapter/converters/vertex-formats.ts +71 -10
  213. package/src/adapter/device-helpers/device-features.ts +5 -2
  214. package/src/adapter/device-helpers/device-limits.ts +4 -2
  215. package/src/adapter/device-helpers/get-device-info.ts +72 -18
  216. package/src/adapter/device-helpers/is-old-ie.ts +3 -0
  217. package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +31 -24
  218. package/src/adapter/helpers/get-shader-layout.ts +87 -131
  219. package/src/adapter/helpers/parse-shader-compiler-log.ts +24 -8
  220. package/src/adapter/helpers/set-uniform.ts +39 -35
  221. package/src/adapter/helpers/webgl-topology-utils.ts +103 -0
  222. package/src/adapter/objects/constants-to-keys.ts +6 -25
  223. package/src/adapter/objects/webgl-renderbuffer.ts +43 -37
  224. package/src/adapter/objects/webgl-resource.ts +16 -23
  225. package/src/adapter/resources/webgl-buffer.ts +101 -106
  226. package/src/adapter/resources/webgl-command-buffer.ts +327 -25
  227. package/src/adapter/resources/webgl-command-encoder.ts +20 -12
  228. package/src/adapter/resources/webgl-external-texture.ts +5 -2
  229. package/src/adapter/resources/webgl-framebuffer.ts +86 -133
  230. package/src/adapter/resources/webgl-render-pass.ts +165 -4
  231. package/src/adapter/resources/webgl-render-pipeline.ts +209 -205
  232. package/src/adapter/resources/webgl-sampler.ts +12 -8
  233. package/src/adapter/resources/webgl-shader.ts +32 -27
  234. package/src/adapter/resources/webgl-texture.ts +117 -91
  235. package/src/adapter/resources/webgl-transform-feedback.ts +202 -0
  236. package/src/adapter/resources/webgl-vertex-array.ts +283 -0
  237. package/src/adapter/webgl-canvas-context.ts +18 -13
  238. package/src/adapter/webgl-device.ts +327 -92
  239. package/src/classic/accessor.ts +8 -5
  240. package/src/classic/clear.ts +113 -0
  241. package/src/classic/copy-and-blit.ts +312 -0
  242. package/src/classic/format-utils.ts +46 -0
  243. package/src/classic/typed-array-utils.ts +19 -27
  244. package/src/context/context/create-browser-context.ts +53 -31
  245. package/src/context/context/create-headless-context.ts +5 -2
  246. package/src/context/context/webgl-checks.ts +3 -1
  247. package/src/context/debug/spector.ts +8 -5
  248. package/src/context/debug/webgl-developer-tools.ts +26 -17
  249. package/src/context/parameters/unified-parameter-api.ts +15 -9
  250. package/src/context/parameters/webgl-parameter-tables.ts +120 -98
  251. package/src/context/polyfill/context-data.ts +30 -0
  252. package/src/context/polyfill/get-parameter-polyfill.ts +11 -7
  253. package/src/context/polyfill/polyfill-context.ts +15 -8
  254. package/src/context/polyfill/polyfill-table.ts +20 -15
  255. package/src/context/polyfill/polyfill-vertex-array-object.ts +5 -0
  256. package/src/context/state-tracker/deep-array-equal.ts +2 -0
  257. package/src/context/state-tracker/track-context-state.ts +13 -10
  258. package/src/context/state-tracker/with-parameters.ts +13 -4
  259. package/src/index.ts +65 -39
  260. package/src/types.ts +5 -0
  261. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  262. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  263. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  264. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  265. package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
  266. package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
  267. package/dist/adapter/helpers/attribute-utils.js +0 -81
  268. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  269. package/dist/adapter/helpers/uniforms.d.ts +0 -26
  270. package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
  271. package/dist/adapter/helpers/uniforms.js +0 -99
  272. package/dist/adapter/helpers/uniforms.js.map +0 -1
  273. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
  274. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
  275. package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
  276. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  277. package/dist/bundle.d.ts +0 -2
  278. package/dist/bundle.d.ts.map +0 -1
  279. package/dist/bundle.js +0 -5
  280. package/dist/bundle.js.map +0 -1
  281. package/dist/classic/buffer.d.ts +0 -95
  282. package/dist/classic/buffer.d.ts.map +0 -1
  283. package/dist/classic/buffer.js +0 -392
  284. package/dist/classic/buffer.js.map +0 -1
  285. package/dist/context/context/context-state.d.ts +0 -18
  286. package/dist/context/context/context-state.d.ts.map +0 -1
  287. package/dist/context/context/context-state.js +0 -26
  288. package/dist/context/context/context-state.js.map +0 -1
  289. package/dist/context/context/device-pixels.d.ts +0 -25
  290. package/dist/context/context/device-pixels.d.ts.map +0 -1
  291. package/dist/context/context/device-pixels.js +0 -103
  292. package/dist/context/context/device-pixels.js.map +0 -1
  293. package/dist/es5/adapter/converters/device-parameters.js +0 -185
  294. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  295. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  296. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  297. package/dist/es5/adapter/converters/sampler-parameters.js +0 -245
  298. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  299. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  300. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  301. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  302. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  303. package/dist/es5/adapter/device-helpers/device-features.js +0 -155
  304. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  305. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  306. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  307. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  308. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  309. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  310. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  311. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  312. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  313. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -391
  314. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  315. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  316. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  317. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  318. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  319. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  320. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  321. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  322. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  323. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  324. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  325. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  326. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  327. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  328. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  329. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  330. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  331. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  332. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  333. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  334. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  335. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  336. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  337. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -346
  338. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  339. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -62
  340. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  341. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -530
  342. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  343. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  344. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  345. package/dist/es5/adapter/resources/webgl-shader.js +0 -150
  346. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  347. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  348. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  349. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  350. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  351. package/dist/es5/adapter/webgl-device.js +0 -463
  352. package/dist/es5/adapter/webgl-device.js.map +0 -1
  353. package/dist/es5/bundle.js +0 -7
  354. package/dist/es5/bundle.js.map +0 -1
  355. package/dist/es5/classic/accessor.js +0 -181
  356. package/dist/es5/classic/accessor.js.map +0 -1
  357. package/dist/es5/classic/buffer.js +0 -478
  358. package/dist/es5/classic/buffer.js.map +0 -1
  359. package/dist/es5/classic/typed-array-utils.js +0 -126
  360. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  361. package/dist/es5/context/context/context-state.js +0 -31
  362. package/dist/es5/context/context/context-state.js.map +0 -1
  363. package/dist/es5/context/context/create-browser-context.js +0 -83
  364. package/dist/es5/context/context/create-browser-context.js.map +0 -1
  365. package/dist/es5/context/context/create-headless-context.js +0 -60
  366. package/dist/es5/context/context/create-headless-context.js.map +0 -1
  367. package/dist/es5/context/context/device-pixels.js +0 -121
  368. package/dist/es5/context/context/device-pixels.js.map +0 -1
  369. package/dist/es5/context/context/webgl-checks.js +0 -54
  370. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  371. package/dist/es5/context/debug/spector.js +0 -133
  372. package/dist/es5/context/debug/spector.js.map +0 -1
  373. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  374. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  375. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  376. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  377. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  378. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  379. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  380. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  381. package/dist/es5/context/polyfill/polyfill-context.js +0 -134
  382. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  383. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  384. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  385. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  386. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  387. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  388. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  389. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  390. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  391. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  392. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  393. package/dist/es5/index.js +0 -290
  394. package/dist/es5/index.js.map +0 -1
  395. package/dist/es5/init.js +0 -10
  396. package/dist/es5/init.js.map +0 -1
  397. package/dist/es5/types/webgl.js +0 -6
  398. package/dist/es5/types/webgl.js.map +0 -1
  399. package/dist/es5/types.js +0 -2
  400. package/dist/es5/types.js.map +0 -1
  401. package/dist/esm/adapter/converters/device-parameters.js +0 -168
  402. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  403. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  404. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  405. package/dist/esm/adapter/converters/sampler-parameters.js +0 -227
  406. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  407. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  408. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  409. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  410. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  411. package/dist/esm/adapter/device-helpers/device-features.js +0 -112
  412. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  413. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  414. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  415. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  416. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  417. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  418. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  419. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  420. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  421. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -330
  422. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  423. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  424. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  425. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  426. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  427. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  428. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  429. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  430. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  431. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  432. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  433. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  434. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  435. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  436. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  437. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  438. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  439. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  440. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  441. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  442. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  443. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  444. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  445. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -267
  446. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  447. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -21
  448. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  449. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -428
  450. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  451. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  452. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  453. package/dist/esm/adapter/resources/webgl-shader.js +0 -76
  454. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  455. package/dist/esm/adapter/resources/webgl-texture.js +0 -834
  456. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  457. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  458. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  459. package/dist/esm/adapter/webgl-device.js +0 -337
  460. package/dist/esm/adapter/webgl-device.js.map +0 -1
  461. package/dist/esm/bundle.js +0 -5
  462. package/dist/esm/bundle.js.map +0 -1
  463. package/dist/esm/classic/accessor.js +0 -144
  464. package/dist/esm/classic/accessor.js.map +0 -1
  465. package/dist/esm/classic/buffer.js +0 -392
  466. package/dist/esm/classic/buffer.js.map +0 -1
  467. package/dist/esm/classic/typed-array-utils.js +0 -112
  468. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  469. package/dist/esm/context/context/context-state.js +0 -26
  470. package/dist/esm/context/context/context-state.js.map +0 -1
  471. package/dist/esm/context/context/create-browser-context.js +0 -61
  472. package/dist/esm/context/context/create-browser-context.js.map +0 -1
  473. package/dist/esm/context/context/create-headless-context.js +0 -43
  474. package/dist/esm/context/context/create-headless-context.js.map +0 -1
  475. package/dist/esm/context/context/device-pixels.js +0 -103
  476. package/dist/esm/context/context/device-pixels.js.map +0 -1
  477. package/dist/esm/context/context/webgl-checks.js +0 -34
  478. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  479. package/dist/esm/context/debug/spector.js +0 -76
  480. package/dist/esm/context/debug/spector.js.map +0 -1
  481. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  482. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  483. package/dist/esm/context/parameters/unified-parameter-api.js +0 -63
  484. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  485. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  486. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  487. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  488. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  489. package/dist/esm/context/polyfill/polyfill-context.js +0 -91
  490. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  491. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  492. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  493. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  494. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  495. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  496. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  497. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  498. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  499. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  500. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  501. package/dist/esm/index.js +0 -28
  502. package/dist/esm/index.js.map +0 -1
  503. package/dist/esm/init.js +0 -4
  504. package/dist/esm/init.js.map +0 -1
  505. package/dist/esm/types/webgl.js +0 -2
  506. package/dist/esm/types/webgl.js.map +0 -1
  507. package/dist/esm/types.js +0 -2
  508. package/dist/esm/types.js.map +0 -1
  509. package/dist/init.d.ts +0 -2
  510. package/dist/init.d.ts.map +0 -1
  511. package/dist/init.js +0 -4
  512. package/dist/init.js.map +0 -1
  513. package/dist/types/webgl.d.ts +0 -145
  514. package/dist/types/webgl.d.ts.map +0 -1
  515. package/dist/types/webgl.js +0 -2
  516. package/dist/types/webgl.js.map +0 -1
  517. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  518. package/src/adapter/helpers/attribute-utils.ts +0 -61
  519. package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
  520. package/src/bundle.ts +0 -4
  521. package/src/classic/buffer.ts +0 -474
  522. package/src/context/context/context-state.ts +0 -41
  523. package/src/context/context/device-pixels.ts +0 -158
  524. package/src/init.ts +0 -4
  525. package/src/types/webgl.ts +0 -284
@@ -1,346 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
- var _api = require("@luma.gl/api");
27
-
28
- var _constants = _interopRequireDefault(require("@luma.gl/constants"));
29
-
30
- var _webglTexture = _interopRequireDefault(require("./webgl-texture"));
31
-
32
- var _webglRenderbuffer = _interopRequireDefault(require("../objects/webgl-renderbuffer"));
33
-
34
- var _textureFormats = require("../converters/texture-formats");
35
-
36
- 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; } } }; }
37
-
38
- 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); }
39
-
40
- 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; }
41
-
42
- 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); }; }
43
-
44
- 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; } }
45
-
46
- var WEBGLFramebuffer = function (_Framebuffer) {
47
- (0, _inherits2.default)(WEBGLFramebuffer, _Framebuffer);
48
-
49
- var _super = _createSuper(WEBGLFramebuffer);
50
-
51
- function WEBGLFramebuffer(device, props) {
52
- var _this;
53
-
54
- (0, _classCallCheck2.default)(this, WEBGLFramebuffer);
55
- _this = _super.call(this, device, props);
56
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "device", void 0);
57
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "gl", void 0);
58
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handle", void 0);
59
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "colorAttachments", []);
60
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "depthStencilAttachment", null);
61
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "d", void 0);
62
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_ownResources", []);
63
- _this.device = device;
64
- _this.gl = device.gl;
65
- _this.handle = _this.props.handle !== undefined ? _this.props.handle : _this.gl.createFramebuffer();
66
-
67
- if (_this.handle) {
68
- _this.handle.__SPECTOR_Metadata = {
69
- id: _this.props.id,
70
- props: _this.props
71
- };
72
- }
73
-
74
- _this.colorAttachments = _this._createColorAttachments();
75
- _this.depthStencilAttachment = _this._createDepthStencilAttachment();
76
-
77
- var prevHandle = _this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, _this.handle);
78
-
79
- for (var i = 0; i < _this.colorAttachments.length; ++i) {
80
- var attachment = _this.colorAttachments[i];
81
- var attachmentPoint = _constants.default.COLOR_ATTACHMENT0 + i;
82
-
83
- if (attachment) {
84
- _this._attachOne(attachmentPoint, attachment);
85
- }
86
- }
87
-
88
- if (_this.props.depthStencilAttachment) {
89
- _this._attachOne((0, _textureFormats.getWebGLDepthStencilAttachment)(_this.depthStencilAttachment.format), _this.depthStencilAttachment);
90
- }
91
-
92
- _this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
93
-
94
- if (props.check !== false) {
95
- _this._checkStatus();
96
- }
97
-
98
- return _this;
99
- }
100
-
101
- (0, _createClass2.default)(WEBGLFramebuffer, [{
102
- key: "texture",
103
- get: function get() {
104
- return this.colorAttachments[0];
105
- }
106
- }, {
107
- key: "destroy",
108
- value: function destroy() {
109
- if (this.handle !== null) {
110
- var _iterator = _createForOfIteratorHelper(this._ownResources),
111
- _step;
112
-
113
- try {
114
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
115
- var resource = _step.value;
116
- resource.destroy();
117
- }
118
- } catch (err) {
119
- _iterator.e(err);
120
- } finally {
121
- _iterator.f();
122
- }
123
-
124
- this.gl.deleteFramebuffer(this.handle);
125
- this.destroyed = true;
126
- }
127
- }
128
- }, {
129
- key: "_checkStatus",
130
- value: function _checkStatus() {
131
- var gl = this.gl;
132
- var prevHandle = gl.bindFramebuffer(_constants.default.FRAMEBUFFER, this.handle);
133
- var status = gl.checkFramebufferStatus(_constants.default.FRAMEBUFFER);
134
- gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
135
-
136
- if (status !== gl.FRAMEBUFFER_COMPLETE) {
137
- throw new Error("Framebuffer ".concat(_getFrameBufferStatus(status)));
138
- }
139
- }
140
- }, {
141
- key: "_createColorAttachments",
142
- value: function _createColorAttachments() {
143
- var _this2 = this;
144
-
145
- return this.props.colorAttachments.map(function (colorAttachment) {
146
- if (!colorAttachment) {
147
- return undefined;
148
- }
149
-
150
- if (colorAttachment instanceof _webglTexture.default) {
151
- return colorAttachment;
152
- }
153
-
154
- return _this2._createColorAttachment(colorAttachment, _this2.width, _this2.height);
155
- });
156
- }
157
- }, {
158
- key: "_createColorAttachment",
159
- value: function _createColorAttachment(format, width, height) {
160
- var texture = this.device._createTexture({
161
- id: "".concat(this.id, "-color"),
162
- data: null,
163
- format: format,
164
- width: width,
165
- height: height,
166
- mipmaps: false,
167
- sampler: {
168
- minFilter: 'linear',
169
- magFilter: 'linear',
170
- addressModeU: 'clamp-to-edge',
171
- addressModeV: 'clamp-to-edge'
172
- }
173
- });
174
-
175
- this._ownResources.push(texture);
176
-
177
- return texture;
178
- }
179
- }, {
180
- key: "_createDepthStencilAttachment",
181
- value: function _createDepthStencilAttachment() {
182
- if (!this.props.depthStencilAttachment) {
183
- return undefined;
184
- }
185
-
186
- if (this.props.depthStencilAttachment instanceof _webglRenderbuffer.default) {
187
- return this.props.depthStencilAttachment;
188
- }
189
-
190
- if (this.props.depthStencilAttachment instanceof _api.Texture) {
191
- return this.props.depthStencilAttachment;
192
- }
193
-
194
- var format = this.props.depthStencilAttachment;
195
- var webglFormat = (0, _textureFormats.getWebGLTextureFormat)(this.gl, format);
196
- var texture = new _webglRenderbuffer.default(this.device, {
197
- id: "".concat(this.id, "-depth-stencil"),
198
- format: webglFormat,
199
- width: this.width,
200
- height: this.height
201
- });
202
-
203
- this._ownResources.push(texture);
204
-
205
- return texture;
206
- }
207
- }, {
208
- key: "_resizeAttachments",
209
- value: function _resizeAttachments(width, height) {
210
- var _this$depthStencilAtt;
211
-
212
- if (this.handle === null) {
213
- this.width = this.gl.drawingBufferWidth;
214
- this.height = this.gl.drawingBufferHeight;
215
- return this;
216
- }
217
-
218
- if (width === undefined) {
219
- width = this.gl.drawingBufferWidth;
220
- }
221
-
222
- if (height === undefined) {
223
- height = this.gl.drawingBufferHeight;
224
- }
225
-
226
- if (width !== this.width && height !== this.height) {
227
- _api.log.log(2, "Resizing framebuffer ".concat(this.id, " to ").concat(width, "x").concat(height))();
228
- }
229
-
230
- var _iterator2 = _createForOfIteratorHelper(this.colorAttachments),
231
- _step2;
232
-
233
- try {
234
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
235
- var colorAttachment = _step2.value;
236
- colorAttachment.resize({
237
- width: width,
238
- height: height
239
- });
240
- }
241
- } catch (err) {
242
- _iterator2.e(err);
243
- } finally {
244
- _iterator2.f();
245
- }
246
-
247
- (_this$depthStencilAtt = this.depthStencilAttachment) === null || _this$depthStencilAtt === void 0 ? void 0 : _this$depthStencilAtt.resize({
248
- width: width,
249
- height: height
250
- });
251
- return this;
252
- }
253
- }, {
254
- key: "_attachOne",
255
- value: function _attachOne(attachmentPoint, attachment) {
256
- if (attachment instanceof _webglRenderbuffer.default) {
257
- this._attachRenderbuffer(attachmentPoint, attachment);
258
-
259
- return attachment;
260
- } else if (Array.isArray(attachment)) {
261
- var _attachment = (0, _slicedToArray2.default)(attachment, 3),
262
- texture = _attachment[0],
263
- _attachment$ = _attachment[1],
264
- layer = _attachment$ === void 0 ? 0 : _attachment$,
265
- _attachment$2 = _attachment[2],
266
- level = _attachment$2 === void 0 ? 0 : _attachment$2;
267
-
268
- this._attachTexture(attachmentPoint, texture, layer, level);
269
-
270
- return texture;
271
- } else if (attachment instanceof _webglTexture.default) {
272
- this._attachTexture(attachmentPoint, attachment, 0, 0);
273
-
274
- return attachment;
275
- }
276
- }
277
- }, {
278
- key: "_attachRenderbuffer",
279
- value: function _attachRenderbuffer(attachment, renderbuffer) {
280
- this.gl.framebufferRenderbuffer(_constants.default.FRAMEBUFFER, attachment, _constants.default.RENDERBUFFER, renderbuffer.handle);
281
- }
282
- }, {
283
- key: "_attachTexture",
284
- value: function _attachTexture(attachment, texture, layer, level) {
285
- var _this$device = this.device,
286
- gl = _this$device.gl,
287
- gl2 = _this$device.gl2;
288
- gl.bindTexture(texture.target, texture.handle);
289
-
290
- switch (texture.target) {
291
- case _constants.default.TEXTURE_2D_ARRAY:
292
- case _constants.default.TEXTURE_3D:
293
- this.device.assertWebGL2();
294
- gl2 === null || gl2 === void 0 ? void 0 : gl2.framebufferTextureLayer(_constants.default.FRAMEBUFFER, attachment, texture.target, level, layer);
295
- break;
296
-
297
- case _constants.default.TEXTURE_CUBE_MAP:
298
- var face = mapIndexToCubeMapFace(layer);
299
- gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, attachment, face, texture.handle, level);
300
- break;
301
-
302
- case _constants.default.TEXTURE_2D:
303
- gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, attachment, _constants.default.TEXTURE_2D, texture.handle, level);
304
- break;
305
-
306
- default:
307
- (0, _api.assert)(false, 'Illegal texture type');
308
- }
309
-
310
- gl.bindTexture(texture.target, null);
311
- }
312
- }]);
313
- return WEBGLFramebuffer;
314
- }(_api.Framebuffer);
315
-
316
- exports.default = WEBGLFramebuffer;
317
-
318
- function mapIndexToCubeMapFace(layer) {
319
- return layer < _constants.default.TEXTURE_CUBE_MAP_POSITIVE_X ? layer + _constants.default.TEXTURE_CUBE_MAP_POSITIVE_X : layer;
320
- }
321
-
322
- function _getFrameBufferStatus(status) {
323
- switch (status) {
324
- case _constants.default.FRAMEBUFFER_COMPLETE:
325
- return 'success';
326
-
327
- case _constants.default.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:
328
- return 'Mismatched attachments';
329
-
330
- case _constants.default.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
331
- return 'No attachments';
332
-
333
- case _constants.default.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:
334
- return 'Height/width mismatch';
335
-
336
- case _constants.default.FRAMEBUFFER_UNSUPPORTED:
337
- return 'Unsupported or split attachments';
338
-
339
- case _constants.default.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:
340
- return 'Samples mismatch';
341
-
342
- default:
343
- return "".concat(status);
344
- }
345
- }
346
- //# sourceMappingURL=webgl-framebuffer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/adapter/resources/webgl-framebuffer.ts"],"names":["WEBGLFramebuffer","device","props","gl","handle","undefined","createFramebuffer","__SPECTOR_Metadata","id","colorAttachments","_createColorAttachments","depthStencilAttachment","_createDepthStencilAttachment","prevHandle","bindFramebuffer","GL","FRAMEBUFFER","i","length","attachment","attachmentPoint","COLOR_ATTACHMENT0","_attachOne","format","check","_checkStatus","_ownResources","resource","destroy","deleteFramebuffer","destroyed","status","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","Error","_getFrameBufferStatus","map","colorAttachment","WebGLTexture","_createColorAttachment","width","height","texture","_createTexture","data","mipmaps","sampler","minFilter","magFilter","addressModeU","addressModeV","push","Renderbuffer","Texture","webglFormat","drawingBufferWidth","drawingBufferHeight","log","resize","_attachRenderbuffer","Array","isArray","layer","level","_attachTexture","renderbuffer","framebufferRenderbuffer","RENDERBUFFER","gl2","bindTexture","target","TEXTURE_2D_ARRAY","TEXTURE_3D","assertWebGL2","framebufferTextureLayer","TEXTURE_CUBE_MAP","face","mapIndexToCubeMapFace","framebufferTexture2D","TEXTURE_2D","Framebuffer","TEXTURE_CUBE_MAP_POSITIVE_X","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_UNSUPPORTED","FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\n\nimport type {FramebufferProps, DepthStencilTextureFormat, ColorTextureFormat} from '@luma.gl/api';\nimport {Framebuffer, Texture, log, assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport WebGLDevice from '../webgl-device';\nimport WebGLTexture from './webgl-texture';\nimport Renderbuffer from '../objects/webgl-renderbuffer';\nimport {getWebGLTextureFormat, getWebGLDepthStencilAttachment} from '../converters/texture-formats';\n\nexport type TextureAttachment = [Texture, number?, number?];\nexport type Attachment = WebGLTexture | Renderbuffer | TextureAttachment;\n\n/** luma.gl Framebuffer, WebGL implementation */\nexport default class WEBGLFramebuffer extends Framebuffer {\n device: WebGLDevice;\n gl: WebGLRenderingContext;\n handle: WebGLFramebuffer;\n\n get texture() { return this.colorAttachments[0]; }\n readonly colorAttachments: WebGLTexture[] = [];\n readonly depthStencilAttachment: WebGLTexture | null = null; d \n protected _ownResources: (WebGLTexture | Renderbuffer)[] = [];\n\n constructor(device: WebGLDevice, props: FramebufferProps) {\n super(device, props);\n this.device = device;\n this.gl = device.gl;\n this.handle = this.props.handle !== undefined ? this.props.handle : this.gl.createFramebuffer();\n\n if (this.handle) { // default framebuffer is null...\n // @ts-expect-error Per SPECTOR docs\n this.handle.__SPECTOR_Metadata = {id: this.props.id, props: this.props};\n }\n\n this.colorAttachments = this._createColorAttachments();\n // @ts-expect-error\n this.depthStencilAttachment = this._createDepthStencilAttachment();\n\n /** Attach from a map of attachments */\n const prevHandle = this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n\n // Walk the attachments\n for (let i = 0; i < this.colorAttachments.length; ++i) {\n const attachment = this.colorAttachments[i];\n const attachmentPoint = GL.COLOR_ATTACHMENT0 + i;\n if (attachment) {\n this._attachOne(attachmentPoint, attachment);\n }\n }\n\n if (this.props.depthStencilAttachment) {\n this._attachOne(getWebGLDepthStencilAttachment(this.depthStencilAttachment.format), this.depthStencilAttachment);\n }\n\n // @ts-expect-error\n this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n\n // @ts-expect-error\n if (props.check !== false) {\n this._checkStatus();\n }\n }\n\n destroy() {\n if (this.handle !== null) {\n for (const resource of this._ownResources) {\n resource.destroy();\n }\n this.gl.deleteFramebuffer(this.handle);\n // this.handle = null;\n this.destroyed = true;\n }\n }\n\n // PRIVATE\n\n /** Check the status */\n protected _checkStatus(): void {\n const {gl} = this;\n const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n const status = gl.checkFramebufferStatus(GL.FRAMEBUFFER);\n // @ts-expect-error\n gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n if (status !== gl.FRAMEBUFFER_COMPLETE) {\n throw new Error(`Framebuffer ${_getFrameBufferStatus(status)}`);\n }\n }\n\n _createColorAttachments(): WebGLTexture[] {\n return this.props.colorAttachments.map(colorAttachment => {\n if (!colorAttachment) {\n return undefined;\n }\n if (colorAttachment instanceof WebGLTexture) {\n return colorAttachment;\n }\n // if (typeof colorAttachment === 'default') {\n // return this._createColorAttachment('rgba8unorm', this.width, this.height);\n // }\n // @ts-expect-error\n return this._createColorAttachment(colorAttachment, this.width, this.height);\n });\n }\n\n /** Create a color attachment */\n protected _createColorAttachment(format: ColorTextureFormat, width: number, height: number): WebGLTexture {\n const texture = this.device._createTexture({\n id: `${this.id}-color`,\n data: null, // reserves texture memory, but texels are undefined\n format,\n // type: GL.UNSIGNED_BYTE,\n width,\n height,\n // Note: Mipmapping can be disabled by texture resource when we resize the texture\n // to a non-power-of-two dimenstion (NPOT texture) under WebGL1. To have consistant\n // behavior we always disable mipmaps.\n mipmaps: false,\n // Set MIN and MAG filtering parameters so mipmaps are not used in sampling.\n // Use LINEAR so subpixel algos like fxaa work.\n // Set WRAP modes that support NPOT textures too.\n sampler: {\n minFilter: 'linear',\n magFilter: 'linear',\n addressModeU: 'clamp-to-edge',\n addressModeV: 'clamp-to-edge'\n },\n // parameters: {\n // [GL.TEXTURE_MIN_FILTER]: GL.LINEAR,\n // [GL.TEXTURE_MAG_FILTER]: GL.LINEAR,\n // [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,\n // [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE\n // }\n }) as WebGLTexture;\n this._ownResources.push(texture);\n return texture;\n }\n\n /** Create a depth stencil attachment GL.DEPTH24_STENCIL8 */\n protected _createDepthStencilAttachment(): Renderbuffer | WebGLTexture {\n if (!this.props.depthStencilAttachment) {\n return undefined;\n }\n if (this.props.depthStencilAttachment instanceof Renderbuffer) {\n return this.props.depthStencilAttachment;\n }\n if (this.props.depthStencilAttachment instanceof Texture) {\n return this.props.depthStencilAttachment as unknown as WebGLTexture;\n }\n const format = this.props.depthStencilAttachment;\n const webglFormat = getWebGLTextureFormat(this.gl, format);\n\n const texture = new Renderbuffer(this.device, {\n id: `${this.id}-depth-stencil`, // TODO misleading if not depth and stencil?\n format: webglFormat,\n // dataFormat: GL.DEPTH_STENCIL,\n // type: GL.UNSIGNED_INT_24_8,\n width: this.width,\n height: this.height\n });\n this._ownResources.push(texture);\n return texture;\n }\n\n /** Attachment resize is expected to be a noop if size is same */\n protected _resizeAttachments(width: number, height: number): this {\n // for default framebuffer, just update the stored size\n if (this.handle === null) {\n // assert(width === undefined && height === undefined);\n this.width = this.gl.drawingBufferWidth;\n this.height = this.gl.drawingBufferHeight;\n return this;\n }\n if (width === undefined) {\n width = this.gl.drawingBufferWidth;\n }\n if (height === undefined) {\n height = this.gl.drawingBufferHeight;\n }\n\n if (width !== this.width && height !== this.height) {\n log.log(2, `Resizing framebuffer ${this.id} to ${width}x${height}`)();\n }\n\n for (const colorAttachment of this.colorAttachments) {\n colorAttachment.resize({width, height});\n }\n this.depthStencilAttachment?.resize({width, height});\n return this;\n }\n\n /** Attach one attachment */\n protected _attachOne(attachmentPoint: GL, attachment: Attachment): WebGLTexture | Renderbuffer {\n if (attachment instanceof Renderbuffer) {\n this._attachRenderbuffer(attachmentPoint, attachment);\n return attachment;\n } else if (Array.isArray(attachment)) {\n const [texture, layer = 0, level = 0] = attachment;\n this._attachTexture(attachmentPoint, texture as unknown as WebGLTexture, layer, level);\n return texture as unknown as WebGLTexture;\n } else if (attachment instanceof WebGLTexture) {\n this._attachTexture(attachmentPoint, attachment, 0, 0);\n return attachment;\n }\n }\n\n protected _attachRenderbuffer(attachment: GL, renderbuffer: Renderbuffer): void {\n this.gl.framebufferRenderbuffer(\n GL.FRAMEBUFFER,\n attachment,\n GL.RENDERBUFFER,\n renderbuffer.handle\n );\n }\n\n /**\n * @param attachment\n * @param texture\n * @param layer = 0 - index into WebGLTextureArray and Texture3D or face for `TextureCubeMap`\n * @param level = 0 - mipmapLevel (must be 0 in WebGL1)\n */\n protected _attachTexture(attachment: GL, texture: WebGLTexture, layer: number, level: number): void {\n const {gl, gl2} = this.device;\n gl.bindTexture(texture.target, texture.handle);\n\n switch (texture.target) {\n case GL.TEXTURE_2D_ARRAY:\n case GL.TEXTURE_3D:\n this.device.assertWebGL2();\n gl2?.framebufferTextureLayer(GL.FRAMEBUFFER, attachment, texture.target, level, layer);\n break;\n\n case GL.TEXTURE_CUBE_MAP:\n // layer must be a cubemap face (or if index, converted to cube map face)\n const face = mapIndexToCubeMapFace(layer);\n gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, face, texture.handle, level);\n break;\n\n case GL.TEXTURE_2D:\n gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, GL.TEXTURE_2D, texture.handle, level);\n break;\n\n default:\n assert(false, 'Illegal texture type');\n }\n\n gl.bindTexture(texture.target, null);\n }\n}\n\n// Helper functions\n\n// Map an index to a cube map face constant\nfunction mapIndexToCubeMapFace(layer) {\n // TEXTURE_CUBE_MAP_POSITIVE_X is a big value (0x8515)\n // if smaller assume layer is index, otherwise assume it is already a cube map face constant\n return layer < GL.TEXTURE_CUBE_MAP_POSITIVE_X ? layer + GL.TEXTURE_CUBE_MAP_POSITIVE_X : layer;\n}\n\n// Helper METHODS\n// Get a string describing the framebuffer error if installed\nfunction _getFrameBufferStatus(status) {\n switch (status) {\n case GL.FRAMEBUFFER_COMPLETE:\n return 'success';\n case GL.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:\n return 'Mismatched attachments';\n case GL.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:\n return 'No attachments';\n case GL.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:\n return 'Height/width mismatch';\n case GL.FRAMEBUFFER_UNSUPPORTED:\n return 'Unsupported or split attachments';\n // WebGL2\n case GL.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:\n return 'Samples mismatch';\n // OVR_multiview2 extension\n // case GL.FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: return 'baseViewIndex mismatch';\n default:\n return `${status}`;\n }\n}\n"],"file":"webgl-framebuffer.js"}
@@ -1,62 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
- var _api = require("@luma.gl/api");
25
-
26
- 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); }; }
27
-
28
- 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; } }
29
-
30
- var WEBGLRenderPass = function (_RenderPass) {
31
- (0, _inherits2.default)(WEBGLRenderPass, _RenderPass);
32
-
33
- var _super = _createSuper(WEBGLRenderPass);
34
-
35
- function WEBGLRenderPass(device, props) {
36
- var _this;
37
-
38
- (0, _classCallCheck2.default)(this, WEBGLRenderPass);
39
- _this = _super.call(this, device, props);
40
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "device", void 0);
41
- _this.device = device;
42
- return _this;
43
- }
44
-
45
- (0, _createClass2.default)(WEBGLRenderPass, [{
46
- key: "endPass",
47
- value: function endPass() {}
48
- }, {
49
- key: "pushDebugGroup",
50
- value: function pushDebugGroup(groupLabel) {}
51
- }, {
52
- key: "popDebugGroup",
53
- value: function popDebugGroup() {}
54
- }, {
55
- key: "insertDebugMarker",
56
- value: function insertDebugMarker(markerLabel) {}
57
- }]);
58
- return WEBGLRenderPass;
59
- }(_api.RenderPass);
60
-
61
- exports.default = WEBGLRenderPass;
62
- //# sourceMappingURL=webgl-render-pass.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/adapter/resources/webgl-render-pass.ts"],"names":["WEBGLRenderPass","device","props","groupLabel","markerLabel","RenderPass"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;IAGqBA,e;;;;;AAGnB,2BAAYC,MAAZ,EAAiCC,KAAjC,EAAyD;AAAA;;AAAA;AACvD,8BAAMD,MAAN,EAAcC,KAAd;AADuD;AAEvD,UAAKD,MAAL,GAAcA,MAAd;AAFuD;AAGxD;;;;WAED,mBAAgB,CAAE;;;WAElB,wBAAeE,UAAf,EAAyC,CAAE;;;WAC3C,yBAAsB,CAAE;;;WACxB,2BAAkBC,WAAlB,EAA6C,CAAE;;;EAZJC,e","sourcesContent":["import {RenderPass, RenderPassProps} from '@luma.gl/api';\nimport WebGLDevice from '../webgl-device';\n\nexport default class WEBGLRenderPass extends RenderPass {\n readonly device: WebGLDevice;\n\n constructor(device: WebGLDevice, props: RenderPassProps) {\n super(device, props);\n this.device = device;\n }\n\n endPass(): void {}\n\n pushDebugGroup(groupLabel: string): void {}\n popDebugGroup(): void {}\n insertDebugMarker(markerLabel: string): void {}\n\n // writeTimestamp(querySet: GPUQuerySet, queryIndex: number): void;\n\n // beginOcclusionQuery(queryIndex: number): void;\n // endOcclusionQuery(): void;\n\n // executeBundles(bundles: Iterable<GPURenderBundle>): void;\n}\n"],"file":"webgl-render-pass.js"}