@luma.gl/webgl 9.0.0-alpha.3 → 9.0.0-alpha.31

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 (512) hide show
  1. package/LICENSE +2 -1
  2. package/dist/adapter/converters/device-parameters.d.ts +14 -4
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/device-parameters.js +28 -46
  5. package/dist/adapter/converters/device-parameters.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts +5 -5
  7. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  8. package/dist/adapter/converters/sampler-parameters.js +20 -56
  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 +53 -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 +165 -201
  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 +48 -16
  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 +13 -20
  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 +2 -5
  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 +9 -11
  33. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  34. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  35. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  36. package/dist/adapter/helpers/decode-webgl-types.d.ts +26 -0
  37. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -0
  38. package/dist/adapter/helpers/{uniforms.js → decode-webgl-types.js} +20 -29
  39. package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
  40. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  41. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  42. package/dist/adapter/helpers/get-shader-info.js +25 -0
  43. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  44. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -48
  45. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  46. package/dist/adapter/helpers/get-shader-layout.js +58 -113
  47. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  48. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  49. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  50. package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
  51. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  52. package/dist/adapter/helpers/set-uniform.d.ts +2 -2
  53. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  54. package/dist/adapter/helpers/set-uniform.js +3 -33
  55. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  56. package/dist/adapter/helpers/webgl-topology-utils.d.ts +11 -0
  57. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
  58. package/dist/adapter/helpers/{attribute-utils.js → webgl-topology-utils.js} +2 -19
  59. package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
  60. package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
  61. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  62. package/dist/adapter/objects/constants-to-keys.js +1 -28
  63. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  64. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  65. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  66. package/dist/adapter/objects/webgl-renderbuffer.js +35 -41
  67. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  68. package/dist/adapter/objects/webgl-resource.d.ts +6 -9
  69. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  70. package/dist/adapter/objects/webgl-resource.js +19 -75
  71. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  72. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +39 -11
  73. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  74. package/dist/adapter/objects/webgl-vertex-array-object.js +122 -32
  75. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  76. package/dist/adapter/resources/webgl-buffer.d.ts +18 -10
  77. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  78. package/dist/adapter/resources/webgl-buffer.js +43 -71
  79. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  80. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  81. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  82. package/dist/adapter/resources/webgl-command-buffer.js +169 -41
  83. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  84. package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
  85. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  86. package/dist/adapter/resources/webgl-command-encoder.js +9 -18
  87. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  88. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  89. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -24
  90. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  91. package/dist/adapter/resources/webgl-framebuffer.js +41 -149
  92. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  93. package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
  94. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  95. package/dist/adapter/resources/webgl-render-pass.js +88 -9
  96. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  97. package/dist/adapter/resources/webgl-render-pipeline.d.ts +52 -14
  98. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  99. package/dist/adapter/resources/webgl-render-pipeline.js +119 -182
  100. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  101. package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
  102. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  103. package/dist/adapter/resources/webgl-sampler.js +7 -15
  104. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  105. package/dist/adapter/resources/webgl-shader.d.ts +3 -4
  106. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  107. package/dist/adapter/resources/webgl-shader.js +9 -22
  108. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  109. package/dist/adapter/resources/webgl-texture.d.ts +64 -44
  110. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  111. package/dist/adapter/resources/webgl-texture.js +98 -213
  112. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  113. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  114. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  115. package/dist/adapter/webgl-canvas-context.js +8 -20
  116. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  117. package/dist/adapter/webgl-device.d.ts +64 -41
  118. package/dist/adapter/webgl-device.d.ts.map +1 -1
  119. package/dist/adapter/webgl-device.js +133 -113
  120. package/dist/adapter/webgl-device.js.map +1 -1
  121. package/dist/classic/accessor.d.ts +3 -3
  122. package/dist/classic/accessor.d.ts.map +1 -1
  123. package/dist/classic/accessor.js +14 -38
  124. package/dist/classic/accessor.js.map +1 -1
  125. package/dist/classic/{buffer.d.ts → buffer-with-accessor.d.ts} +16 -28
  126. package/dist/classic/buffer-with-accessor.d.ts.map +1 -0
  127. package/dist/classic/{buffer.js → buffer-with-accessor.js} +54 -122
  128. package/dist/classic/buffer-with-accessor.js.map +1 -0
  129. package/dist/classic/clear.d.ts +22 -0
  130. package/dist/classic/clear.d.ts.map +1 -0
  131. package/dist/classic/clear.js +88 -0
  132. package/dist/classic/clear.js.map +1 -0
  133. package/dist/classic/copy-and-blit.d.ts +62 -0
  134. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  135. package/dist/classic/copy-and-blit.js +202 -0
  136. package/dist/classic/copy-and-blit.js.map +1 -0
  137. package/dist/classic/format-utils.d.ts +3 -0
  138. package/dist/classic/format-utils.d.ts.map +1 -0
  139. package/dist/classic/format-utils.js +38 -0
  140. package/dist/classic/format-utils.js.map +1 -0
  141. package/dist/classic/typed-array-utils.d.ts +15 -17
  142. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  143. package/dist/classic/typed-array-utils.js +1 -21
  144. package/dist/classic/typed-array-utils.js.map +1 -1
  145. package/dist/context/context/create-browser-context.d.ts +40 -0
  146. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  147. package/dist/{esm/context/context/create-context.js → context/context/create-browser-context.js} +23 -19
  148. package/dist/context/context/create-browser-context.js.map +1 -0
  149. package/dist/context/context/create-headless-context.d.ts +9 -0
  150. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  151. package/dist/context/context/create-headless-context.js +42 -0
  152. package/dist/context/context/create-headless-context.js.map +1 -0
  153. package/dist/context/context/webgl-checks.js +1 -4
  154. package/dist/context/context/webgl-checks.js.map +1 -1
  155. package/dist/context/debug/spector.d.ts +1 -2
  156. package/dist/context/debug/spector.d.ts.map +1 -1
  157. package/dist/context/debug/spector.js +8 -20
  158. package/dist/context/debug/spector.js.map +1 -1
  159. package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
  160. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  161. package/dist/context/debug/webgl-developer-tools.js +11 -34
  162. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  163. package/dist/context/parameters/unified-parameter-api.d.ts +8 -7
  164. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  165. package/dist/context/parameters/unified-parameter-api.js +8 -18
  166. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  167. package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
  168. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  169. package/dist/context/parameters/webgl-parameter-tables.js +18 -36
  170. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  171. package/dist/context/polyfill/context-data.d.ts +13 -0
  172. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  173. package/dist/context/polyfill/context-data.js +12 -0
  174. package/dist/context/polyfill/context-data.js.map +1 -0
  175. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  176. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  177. package/dist/context/polyfill/get-parameter-polyfill.js +4 -9
  178. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  179. package/dist/context/polyfill/polyfill-context.js +21 -29
  180. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  181. package/dist/context/polyfill/polyfill-table.d.ts +8 -8
  182. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  183. package/dist/context/polyfill/polyfill-table.js +10 -32
  184. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  185. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  186. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
  187. package/dist/context/polyfill/polyfill-vertex-array-object.js.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 +16 -51
  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 +7 -9
  196. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  197. package/dist/dist.dev.js +10245 -0
  198. package/dist/index.cjs +6550 -0
  199. package/dist/index.d.ts +25 -22
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +27 -26
  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 +37 -0
  207. package/package.json +21 -9
  208. package/src/adapter/converters/device-parameters.ts +88 -35
  209. package/src/adapter/converters/sampler-parameters.ts +19 -9
  210. package/src/adapter/converters/shader-formats.ts +41 -0
  211. package/src/adapter/converters/texture-formats.ts +264 -194
  212. package/src/adapter/converters/vertex-formats.ts +68 -10
  213. package/src/adapter/device-helpers/device-features.ts +10 -3
  214. package/src/adapter/device-helpers/device-limits.ts +3 -3
  215. package/src/adapter/device-helpers/get-device-info.ts +14 -10
  216. package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +36 -21
  217. package/src/adapter/helpers/get-shader-info.ts +40 -0
  218. package/src/adapter/helpers/get-shader-layout.ts +120 -146
  219. package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
  220. package/src/adapter/helpers/set-uniform.ts +7 -6
  221. package/src/adapter/helpers/{attribute-utils.ts → webgl-topology-utils.ts} +4 -5
  222. package/src/adapter/objects/constants-to-keys.ts +3 -25
  223. package/src/adapter/objects/webgl-renderbuffer.ts +40 -37
  224. package/src/adapter/objects/webgl-resource.ts +14 -23
  225. package/src/adapter/objects/webgl-vertex-array-object.ts +202 -37
  226. package/src/adapter/resources/webgl-buffer.ts +56 -58
  227. package/src/adapter/resources/webgl-command-buffer.ts +332 -25
  228. package/src/adapter/resources/webgl-command-encoder.ts +17 -12
  229. package/src/adapter/resources/webgl-external-texture.ts +2 -2
  230. package/src/adapter/resources/webgl-framebuffer.ts +88 -133
  231. package/src/adapter/resources/webgl-render-pass.ts +155 -4
  232. package/src/adapter/resources/webgl-render-pipeline.ts +232 -131
  233. package/src/adapter/resources/webgl-sampler.ts +13 -8
  234. package/src/adapter/resources/webgl-shader.ts +11 -10
  235. package/src/adapter/resources/webgl-texture.ts +113 -85
  236. package/src/adapter/webgl-canvas-context.ts +14 -14
  237. package/src/adapter/webgl-device.ts +192 -77
  238. package/src/classic/accessor.ts +4 -17
  239. package/src/classic/{buffer.ts → buffer-with-accessor.ts} +67 -75
  240. package/src/classic/clear.ts +110 -0
  241. package/src/classic/copy-and-blit.ts +308 -0
  242. package/src/classic/format-utils.ts +43 -0
  243. package/src/classic/typed-array-utils.ts +18 -27
  244. package/src/context/context/{create-context.ts → create-browser-context.ts} +48 -31
  245. package/src/context/context/create-headless-context.ts +48 -0
  246. package/src/context/context/webgl-checks.ts +1 -1
  247. package/src/context/debug/spector.ts +7 -6
  248. package/src/context/debug/webgl-developer-tools.ts +21 -15
  249. package/src/context/parameters/unified-parameter-api.ts +20 -14
  250. package/src/context/parameters/webgl-parameter-tables.ts +117 -98
  251. package/src/context/polyfill/context-data.ts +27 -0
  252. package/src/context/polyfill/get-parameter-polyfill.ts +8 -7
  253. package/src/context/polyfill/polyfill-context.ts +7 -9
  254. package/src/context/polyfill/polyfill-table.ts +18 -16
  255. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  256. package/src/context/state-tracker/track-context-state.ts +14 -13
  257. package/src/context/state-tracker/with-parameters.ts +8 -2
  258. package/src/index.ts +42 -33
  259. package/src/types.ts +2 -0
  260. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  261. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  262. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  263. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  264. package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
  265. package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
  266. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  267. package/dist/adapter/helpers/uniforms.d.ts +0 -26
  268. package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
  269. package/dist/adapter/helpers/uniforms.js.map +0 -1
  270. package/dist/bundle.d.ts +0 -2
  271. package/dist/bundle.d.ts.map +0 -1
  272. package/dist/bundle.js +0 -5
  273. package/dist/bundle.js.map +0 -1
  274. package/dist/classic/buffer.d.ts.map +0 -1
  275. package/dist/classic/buffer.js.map +0 -1
  276. package/dist/context/context/context-state.d.ts +0 -18
  277. package/dist/context/context/context-state.d.ts.map +0 -1
  278. package/dist/context/context/context-state.js +0 -26
  279. package/dist/context/context/context-state.js.map +0 -1
  280. package/dist/context/context/create-context.d.ts +0 -41
  281. package/dist/context/context/create-context.d.ts.map +0 -1
  282. package/dist/context/context/create-context.js +0 -49
  283. package/dist/context/context/create-context.js.map +0 -1
  284. package/dist/context/context/device-pixels.d.ts +0 -25
  285. package/dist/context/context/device-pixels.d.ts.map +0 -1
  286. package/dist/context/context/device-pixels.js +0 -98
  287. package/dist/context/context/device-pixels.js.map +0 -1
  288. package/dist/es5/adapter/converters/device-parameters.js +0 -170
  289. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  290. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  291. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  292. package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
  293. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  294. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  295. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  296. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  297. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  298. package/dist/es5/adapter/device-helpers/device-features.js +0 -144
  299. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  300. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  301. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  302. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  303. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  304. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  305. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  306. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  307. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  308. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
  309. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  310. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  311. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  312. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  313. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  314. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  315. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  316. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  317. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  318. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  319. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  320. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  321. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  322. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  323. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  324. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  325. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  326. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  327. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  328. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  329. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  330. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  331. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  332. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
  333. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  334. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
  335. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  336. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
  337. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  338. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  339. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  340. package/dist/es5/adapter/resources/webgl-shader.js +0 -149
  341. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  342. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  343. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  344. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  345. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  346. package/dist/es5/adapter/webgl-device.js +0 -399
  347. package/dist/es5/adapter/webgl-device.js.map +0 -1
  348. package/dist/es5/bundle.js +0 -7
  349. package/dist/es5/bundle.js.map +0 -1
  350. package/dist/es5/classic/accessor.js +0 -181
  351. package/dist/es5/classic/accessor.js.map +0 -1
  352. package/dist/es5/classic/buffer.js +0 -470
  353. package/dist/es5/classic/buffer.js.map +0 -1
  354. package/dist/es5/classic/typed-array-utils.js +0 -126
  355. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  356. package/dist/es5/context/context/context-state.js +0 -31
  357. package/dist/es5/context/context/context-state.js.map +0 -1
  358. package/dist/es5/context/context/create-context.js +0 -69
  359. package/dist/es5/context/context/create-context.js.map +0 -1
  360. package/dist/es5/context/context/device-pixels.js +0 -115
  361. package/dist/es5/context/context/device-pixels.js.map +0 -1
  362. package/dist/es5/context/context/webgl-checks.js +0 -54
  363. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  364. package/dist/es5/context/debug/spector.js +0 -133
  365. package/dist/es5/context/debug/spector.js.map +0 -1
  366. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  367. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  368. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  369. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  370. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  371. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  372. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  373. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  374. package/dist/es5/context/polyfill/polyfill-context.js +0 -135
  375. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  376. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  377. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  378. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  379. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  380. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  381. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  382. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  383. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  384. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  385. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  386. package/dist/es5/index.js +0 -276
  387. package/dist/es5/index.js.map +0 -1
  388. package/dist/es5/init.js +0 -10
  389. package/dist/es5/init.js.map +0 -1
  390. package/dist/es5/types/webgl.js +0 -6
  391. package/dist/es5/types/webgl.js.map +0 -1
  392. package/dist/es5/types.js +0 -2
  393. package/dist/es5/types.js.map +0 -1
  394. package/dist/esm/adapter/converters/device-parameters.js +0 -155
  395. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  396. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  397. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  398. package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
  399. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  400. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  401. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  402. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  403. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  404. package/dist/esm/adapter/device-helpers/device-features.js +0 -102
  405. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  406. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  407. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  408. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  409. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  410. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  411. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  412. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  413. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  414. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
  415. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  416. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  417. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  418. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  419. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  420. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  421. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  422. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  423. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  424. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  425. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  426. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  427. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  428. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  429. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  430. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  431. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  432. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  433. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  434. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  435. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  436. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  437. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  438. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
  439. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  440. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
  441. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  442. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  443. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  444. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  445. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  446. package/dist/esm/adapter/resources/webgl-shader.js +0 -75
  447. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  448. package/dist/esm/adapter/resources/webgl-texture.js +0 -831
  449. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  450. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  451. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  452. package/dist/esm/adapter/webgl-device.js +0 -280
  453. package/dist/esm/adapter/webgl-device.js.map +0 -1
  454. package/dist/esm/bundle.js +0 -5
  455. package/dist/esm/bundle.js.map +0 -1
  456. package/dist/esm/classic/accessor.js +0 -144
  457. package/dist/esm/classic/accessor.js.map +0 -1
  458. package/dist/esm/classic/buffer.js +0 -384
  459. package/dist/esm/classic/buffer.js.map +0 -1
  460. package/dist/esm/classic/typed-array-utils.js +0 -112
  461. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  462. package/dist/esm/context/context/context-state.js +0 -26
  463. package/dist/esm/context/context/context-state.js.map +0 -1
  464. package/dist/esm/context/context/create-context.js.map +0 -1
  465. package/dist/esm/context/context/device-pixels.js +0 -98
  466. package/dist/esm/context/context/device-pixels.js.map +0 -1
  467. package/dist/esm/context/context/webgl-checks.js +0 -34
  468. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  469. package/dist/esm/context/debug/spector.js +0 -76
  470. package/dist/esm/context/debug/spector.js.map +0 -1
  471. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  472. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  473. package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
  474. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  475. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  476. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  477. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  478. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  479. package/dist/esm/context/polyfill/polyfill-context.js +0 -92
  480. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  481. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  482. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  483. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  484. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  485. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  486. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  487. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  488. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  489. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  490. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  491. package/dist/esm/index.js +0 -27
  492. package/dist/esm/index.js.map +0 -1
  493. package/dist/esm/init.js +0 -4
  494. package/dist/esm/init.js.map +0 -1
  495. package/dist/esm/types/webgl.js +0 -2
  496. package/dist/esm/types/webgl.js.map +0 -1
  497. package/dist/esm/types.js +0 -2
  498. package/dist/esm/types.js.map +0 -1
  499. package/dist/init.d.ts +0 -2
  500. package/dist/init.d.ts.map +0 -1
  501. package/dist/init.js +0 -4
  502. package/dist/init.js.map +0 -1
  503. package/dist/types/webgl.d.ts +0 -144
  504. package/dist/types/webgl.d.ts.map +0 -1
  505. package/dist/types/webgl.js +0 -2
  506. package/dist/types/webgl.js.map +0 -1
  507. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  508. package/src/bundle.ts +0 -4
  509. package/src/context/context/context-state.ts +0 -41
  510. package/src/context/context/device-pixels.ts +0 -152
  511. package/src/init.ts +0 -4
  512. package/src/types/webgl.ts +0 -283
@@ -1,345 +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", undefined);
61
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_ownResources", []);
62
- _this.device = device;
63
- _this.gl = device.gl;
64
- _this.handle = _this.props.handle !== undefined ? _this.props.handle : _this.gl.createFramebuffer();
65
-
66
- if (_this.handle) {
67
- _this.handle.__SPECTOR_Metadata = {
68
- id: _this.props.id,
69
- props: _this.props
70
- };
71
- }
72
-
73
- _this.colorAttachments = _this._createColorAttachments();
74
- _this.depthStencilAttachment = _this._createDepthStencilAttachment();
75
-
76
- var prevHandle = _this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, _this.handle);
77
-
78
- for (var i = 0; i < _this.colorAttachments.length; ++i) {
79
- var attachment = _this.colorAttachments[i];
80
- var attachmentPoint = _constants.default.COLOR_ATTACHMENT0 + i;
81
-
82
- if (attachment) {
83
- _this._attachOne(attachmentPoint, attachment);
84
- }
85
- }
86
-
87
- if (_this.props.depthStencilAttachment) {
88
- _this._attachOne((0, _textureFormats.getWebGLDepthStencilAttachment)(_this.depthStencilAttachment.format), _this.depthStencilAttachment);
89
- }
90
-
91
- _this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
92
-
93
- if (props.check !== false) {
94
- _this._checkStatus();
95
- }
96
-
97
- return _this;
98
- }
99
-
100
- (0, _createClass2.default)(WEBGLFramebuffer, [{
101
- key: "texture",
102
- get: function get() {
103
- return this.colorAttachments[0];
104
- }
105
- }, {
106
- key: "destroy",
107
- value: function destroy() {
108
- if (this.handle !== null) {
109
- var _iterator = _createForOfIteratorHelper(this._ownResources),
110
- _step;
111
-
112
- try {
113
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
114
- var resource = _step.value;
115
- resource.destroy();
116
- }
117
- } catch (err) {
118
- _iterator.e(err);
119
- } finally {
120
- _iterator.f();
121
- }
122
-
123
- this.gl.deleteFramebuffer(this.handle);
124
- this.handle = null;
125
- }
126
- }
127
- }, {
128
- key: "_checkStatus",
129
- value: function _checkStatus() {
130
- var gl = this.gl;
131
- var prevHandle = gl.bindFramebuffer(_constants.default.FRAMEBUFFER, this.handle);
132
- var status = gl.checkFramebufferStatus(_constants.default.FRAMEBUFFER);
133
- gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
134
-
135
- if (status !== gl.FRAMEBUFFER_COMPLETE) {
136
- throw new Error("Framebuffer ".concat(_getFrameBufferStatus(status)));
137
- }
138
- }
139
- }, {
140
- key: "_createColorAttachments",
141
- value: function _createColorAttachments() {
142
- var _this2 = this;
143
-
144
- return this.props.colorAttachments.map(function (colorAttachment) {
145
- if (!colorAttachment) {
146
- return undefined;
147
- }
148
-
149
- if (colorAttachment instanceof _webglTexture.default) {
150
- return colorAttachment;
151
- }
152
-
153
- return _this2._createColorAttachment(colorAttachment, _this2.width, _this2.height);
154
- });
155
- }
156
- }, {
157
- key: "_createColorAttachment",
158
- value: function _createColorAttachment(format, width, height) {
159
- var texture = this.device._createTexture({
160
- id: "".concat(this.id, "-color"),
161
- data: null,
162
- format: format,
163
- width: width,
164
- height: height,
165
- mipmaps: false,
166
- sampler: {
167
- minFilter: 'linear',
168
- magFilter: 'linear',
169
- addressModeU: 'clamp-to-edge',
170
- addressModeV: 'clamp-to-edge'
171
- }
172
- });
173
-
174
- this._ownResources.push(texture);
175
-
176
- return texture;
177
- }
178
- }, {
179
- key: "_createDepthStencilAttachment",
180
- value: function _createDepthStencilAttachment() {
181
- if (!this.props.depthStencilAttachment) {
182
- return undefined;
183
- }
184
-
185
- if (this.props.depthStencilAttachment instanceof _webglRenderbuffer.default) {
186
- return this.props.depthStencilAttachment;
187
- }
188
-
189
- if (this.props.depthStencilAttachment instanceof _api.Texture) {
190
- return this.props.depthStencilAttachment;
191
- }
192
-
193
- var format = this.props.depthStencilAttachment;
194
- var webglFormat = (0, _textureFormats.getWebGLTextureFormat)(this.gl, format);
195
- var texture = new _webglRenderbuffer.default(this.device, {
196
- id: "".concat(this.id, "-depth-stencil"),
197
- format: webglFormat,
198
- width: this.width,
199
- height: this.height
200
- });
201
-
202
- this._ownResources.push(texture);
203
-
204
- return texture;
205
- }
206
- }, {
207
- key: "_resizeAttachments",
208
- value: function _resizeAttachments(width, height) {
209
- var _this$depthStencilAtt;
210
-
211
- if (this.handle === null) {
212
- this.width = this.gl.drawingBufferWidth;
213
- this.height = this.gl.drawingBufferHeight;
214
- return this;
215
- }
216
-
217
- if (width === undefined) {
218
- width = this.gl.drawingBufferWidth;
219
- }
220
-
221
- if (height === undefined) {
222
- height = this.gl.drawingBufferHeight;
223
- }
224
-
225
- if (width !== this.width && height !== this.height) {
226
- _api.log.log(2, "Resizing framebuffer ".concat(this.id, " to ").concat(width, "x").concat(height))();
227
- }
228
-
229
- var _iterator2 = _createForOfIteratorHelper(this.colorAttachments),
230
- _step2;
231
-
232
- try {
233
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
234
- var colorAttachment = _step2.value;
235
- colorAttachment.resize({
236
- width: width,
237
- height: height
238
- });
239
- }
240
- } catch (err) {
241
- _iterator2.e(err);
242
- } finally {
243
- _iterator2.f();
244
- }
245
-
246
- (_this$depthStencilAtt = this.depthStencilAttachment) === null || _this$depthStencilAtt === void 0 ? void 0 : _this$depthStencilAtt.resize({
247
- width: width,
248
- height: height
249
- });
250
- return this;
251
- }
252
- }, {
253
- key: "_attachOne",
254
- value: function _attachOne(attachmentPoint, attachment) {
255
- if (attachment instanceof _webglRenderbuffer.default) {
256
- this._attachRenderbuffer(attachmentPoint, attachment);
257
-
258
- return attachment;
259
- } else if (Array.isArray(attachment)) {
260
- var _attachment = (0, _slicedToArray2.default)(attachment, 3),
261
- texture = _attachment[0],
262
- _attachment$ = _attachment[1],
263
- layer = _attachment$ === void 0 ? 0 : _attachment$,
264
- _attachment$2 = _attachment[2],
265
- level = _attachment$2 === void 0 ? 0 : _attachment$2;
266
-
267
- this._attachTexture(attachmentPoint, texture, layer, level);
268
-
269
- return texture;
270
- } else if (attachment instanceof _webglTexture.default) {
271
- this._attachTexture(attachmentPoint, attachment, 0, 0);
272
-
273
- return attachment;
274
- }
275
- }
276
- }, {
277
- key: "_attachRenderbuffer",
278
- value: function _attachRenderbuffer(attachment, renderbuffer) {
279
- this.gl.framebufferRenderbuffer(_constants.default.FRAMEBUFFER, attachment, _constants.default.RENDERBUFFER, renderbuffer.handle);
280
- }
281
- }, {
282
- key: "_attachTexture",
283
- value: function _attachTexture(attachment, texture, layer, level) {
284
- var _this$device = this.device,
285
- gl = _this$device.gl,
286
- gl2 = _this$device.gl2;
287
- gl.bindTexture(texture.target, texture.handle);
288
-
289
- switch (texture.target) {
290
- case _constants.default.TEXTURE_2D_ARRAY:
291
- case _constants.default.TEXTURE_3D:
292
- this.device.assertWebGL2();
293
- gl2.framebufferTextureLayer(_constants.default.FRAMEBUFFER, attachment, texture.target, level, layer);
294
- break;
295
-
296
- case _constants.default.TEXTURE_CUBE_MAP:
297
- var face = mapIndexToCubeMapFace(layer);
298
- gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, attachment, face, texture.handle, level);
299
- break;
300
-
301
- case _constants.default.TEXTURE_2D:
302
- gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, attachment, _constants.default.TEXTURE_2D, texture.handle, level);
303
- break;
304
-
305
- default:
306
- (0, _api.assert)(false, 'Illegal texture type');
307
- }
308
-
309
- gl.bindTexture(texture.target, null);
310
- }
311
- }]);
312
- return WEBGLFramebuffer;
313
- }(_api.Framebuffer);
314
-
315
- exports.default = WEBGLFramebuffer;
316
-
317
- function mapIndexToCubeMapFace(layer) {
318
- return layer < _constants.default.TEXTURE_CUBE_MAP_POSITIVE_X ? layer + _constants.default.TEXTURE_CUBE_MAP_POSITIVE_X : layer;
319
- }
320
-
321
- function _getFrameBufferStatus(status) {
322
- switch (status) {
323
- case _constants.default.FRAMEBUFFER_COMPLETE:
324
- return 'success';
325
-
326
- case _constants.default.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:
327
- return 'Mismatched attachments';
328
-
329
- case _constants.default.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
330
- return 'No attachments';
331
-
332
- case _constants.default.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:
333
- return 'Height/width mismatch';
334
-
335
- case _constants.default.FRAMEBUFFER_UNSUPPORTED:
336
- return 'Unsupported or split attachments';
337
-
338
- case _constants.default.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:
339
- return 'Samples mismatch';
340
-
341
- default:
342
- return "".concat(status);
343
- }
344
- }
345
- //# sourceMappingURL=webgl-framebuffer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/adapter/resources/webgl-framebuffer.ts"],"names":["WEBGLFramebuffer","device","props","undefined","gl","handle","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","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":["import 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 | undefined = undefined;\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 }\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,61 +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
- return _this;
42
- }
43
-
44
- (0, _createClass2.default)(WEBGLRenderPass, [{
45
- key: "endPass",
46
- value: function endPass() {}
47
- }, {
48
- key: "pushDebugGroup",
49
- value: function pushDebugGroup(groupLabel) {}
50
- }, {
51
- key: "popDebugGroup",
52
- value: function popDebugGroup() {}
53
- }, {
54
- key: "insertDebugMarker",
55
- value: function insertDebugMarker(markerLabel) {}
56
- }]);
57
- return WEBGLRenderPass;
58
- }(_api.RenderPass);
59
-
60
- exports.default = WEBGLRenderPass;
61
- //# 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;AAAA;AAExD;;;;WAED,mBAAgB,CAAE;;;WAElB,wBAAeC,UAAf,EAAyC,CAAE;;;WAC3C,yBAAsB,CAAE;;;WACxB,2BAAkBC,WAAlB,EAA6C,CAAE;;;EAXJC,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 }\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"}