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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/dist/adapter/converters/device-parameters.js +199 -136
  2. package/dist/adapter/converters/renderbuffer-formats.d.ts +1 -1
  3. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
  4. package/dist/adapter/converters/renderbuffer-formats.js +62 -176
  5. package/dist/adapter/converters/sampler-parameters.js +149 -206
  6. package/dist/adapter/converters/texture-formats.d.ts +2 -2
  7. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  8. package/dist/adapter/converters/texture-formats.js +437 -890
  9. package/dist/adapter/converters/vertex-formats.js +15 -33
  10. package/dist/adapter/device-helpers/device-features.js +119 -100
  11. package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
  12. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  13. package/dist/adapter/device-helpers/device-limits.js +88 -86
  14. package/dist/adapter/device-helpers/get-device-info.js +42 -43
  15. package/dist/adapter/device-helpers/is-old-ie.js +9 -6
  16. package/dist/adapter/helpers/attribute-utils.js +50 -74
  17. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  18. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  19. package/dist/adapter/helpers/get-shader-info.js +27 -0
  20. package/dist/adapter/helpers/get-shader-layout.js +307 -296
  21. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  22. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  23. package/dist/adapter/helpers/parse-shader-compiler-log.js +32 -33
  24. package/dist/adapter/helpers/set-uniform.js +67 -110
  25. package/dist/adapter/helpers/uniforms.js +80 -85
  26. package/dist/adapter/objects/constants-to-keys.js +33 -33
  27. package/dist/adapter/objects/webgl-renderbuffer.d.ts +1 -1
  28. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  29. package/dist/adapter/objects/webgl-renderbuffer.js +67 -86
  30. package/dist/adapter/objects/webgl-resource.js +213 -205
  31. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
  32. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  33. package/dist/adapter/objects/webgl-vertex-array-object.js +74 -76
  34. package/dist/adapter/resources/webgl-buffer.js +150 -147
  35. package/dist/adapter/resources/webgl-command-buffer.d.ts +5 -5
  36. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  37. package/dist/adapter/resources/webgl-command-buffer.js +39 -55
  38. package/dist/adapter/resources/webgl-command-encoder.js +25 -49
  39. package/dist/adapter/resources/webgl-external-texture.js +91 -1
  40. package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
  41. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  42. package/dist/adapter/resources/webgl-framebuffer.js +231 -258
  43. package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
  44. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  45. package/dist/adapter/resources/webgl-render-pass.js +8 -18
  46. package/dist/adapter/resources/webgl-render-pipeline.js +316 -378
  47. package/dist/adapter/resources/webgl-sampler.js +42 -47
  48. package/dist/adapter/resources/webgl-shader.d.ts +1 -2
  49. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  50. package/dist/adapter/resources/webgl-shader.js +58 -68
  51. package/dist/adapter/resources/webgl-texture.d.ts +5 -5
  52. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  53. package/dist/adapter/resources/webgl-texture.js +661 -815
  54. package/dist/adapter/webgl-canvas-context.js +55 -49
  55. package/dist/adapter/webgl-device.js +288 -338
  56. package/dist/bundle.js +1 -2
  57. package/dist/classic/accessor.js +120 -127
  58. package/dist/classic/buffer.d.ts +1 -1
  59. package/dist/classic/buffer.d.ts.map +1 -1
  60. package/dist/classic/buffer.js +325 -356
  61. package/dist/classic/typed-array-utils.d.ts +1 -1
  62. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  63. package/dist/classic/typed-array-utils.js +91 -101
  64. package/dist/context/context/create-browser-context.d.ts +1 -2
  65. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  66. package/dist/context/context/create-browser-context.js +61 -52
  67. package/dist/context/context/create-headless-context.d.ts +1 -1
  68. package/dist/context/context/create-headless-context.d.ts.map +1 -1
  69. package/dist/context/context/create-headless-context.js +26 -33
  70. package/dist/context/context/webgl-checks.js +25 -20
  71. package/dist/context/debug/spector.d.ts +1 -2
  72. package/dist/context/debug/spector.d.ts.map +1 -1
  73. package/dist/context/debug/spector.js +53 -62
  74. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  75. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  76. package/dist/context/debug/webgl-developer-tools.js +106 -93
  77. package/dist/context/parameters/unified-parameter-api.js +91 -55
  78. package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
  79. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  80. package/dist/context/parameters/webgl-parameter-tables.js +462 -423
  81. package/dist/context/polyfill/context-data.js +16 -12
  82. package/dist/context/polyfill/get-parameter-polyfill.js +91 -76
  83. package/dist/context/polyfill/polyfill-context.js +75 -80
  84. package/dist/context/polyfill/polyfill-table.js +133 -139
  85. package/dist/context/polyfill/polyfill-vertex-array-object.js +255 -297
  86. package/dist/context/state-tracker/deep-array-equal.js +16 -18
  87. package/dist/context/state-tracker/track-context-state.js +183 -161
  88. package/dist/context/state-tracker/with-parameters.js +43 -35
  89. package/dist/dist.min.js +1 -0
  90. package/dist/es5/adapter/converters/device-parameters.js +3 -38
  91. package/dist/es5/adapter/converters/device-parameters.js.map +1 -1
  92. package/dist/es5/adapter/converters/renderbuffer-formats.js +2 -14
  93. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -1
  94. package/dist/es5/adapter/converters/sampler-parameters.js +2 -65
  95. package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -1
  96. package/dist/es5/adapter/converters/texture-formats.js +9 -81
  97. package/dist/es5/adapter/converters/texture-formats.js.map +1 -1
  98. package/dist/es5/adapter/converters/vertex-formats.js +0 -12
  99. package/dist/es5/adapter/converters/vertex-formats.js.map +1 -1
  100. package/dist/es5/adapter/device-helpers/device-features.js +6 -40
  101. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
  102. package/dist/es5/adapter/device-helpers/device-limits.js +0 -10
  103. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
  104. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -10
  105. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
  106. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -1
  107. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -1
  108. package/dist/es5/adapter/helpers/attribute-utils.js +3 -25
  109. package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -1
  110. package/dist/es5/adapter/helpers/get-shader-info.js +31 -0
  111. package/dist/es5/adapter/helpers/get-shader-info.js.map +1 -0
  112. package/dist/es5/adapter/helpers/get-shader-layout.js +23 -101
  113. package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -1
  114. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +6 -24
  115. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  116. package/dist/es5/adapter/helpers/set-uniform.js +0 -33
  117. package/dist/es5/adapter/helpers/set-uniform.js.map +1 -1
  118. package/dist/es5/adapter/helpers/uniforms.js +13 -37
  119. package/dist/es5/adapter/helpers/uniforms.js.map +1 -1
  120. package/dist/es5/adapter/objects/constants-to-keys.js +1 -12
  121. package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -1
  122. package/dist/es5/adapter/objects/webgl-renderbuffer.js +5 -33
  123. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -1
  124. package/dist/es5/adapter/objects/webgl-resource.js +6 -60
  125. package/dist/es5/adapter/objects/webgl-resource.js.map +1 -1
  126. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +7 -35
  127. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  128. package/dist/es5/adapter/resources/webgl-buffer.js +20 -66
  129. package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -1
  130. package/dist/es5/adapter/resources/webgl-command-buffer.js +6 -32
  131. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -1
  132. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -18
  133. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -1
  134. package/dist/es5/adapter/resources/webgl-external-texture.js.map +1 -1
  135. package/dist/es5/adapter/resources/webgl-framebuffer.js +10 -82
  136. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -1
  137. package/dist/es5/adapter/resources/webgl-render-pass.js +2 -19
  138. package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -1
  139. package/dist/es5/adapter/resources/webgl-render-pipeline.js +24 -133
  140. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -1
  141. package/dist/es5/adapter/resources/webgl-sampler.js +2 -28
  142. package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -1
  143. package/dist/es5/adapter/resources/webgl-shader.js +13 -52
  144. package/dist/es5/adapter/resources/webgl-shader.js.map +1 -1
  145. package/dist/es5/adapter/resources/webgl-texture.js +137 -291
  146. package/dist/es5/adapter/resources/webgl-texture.js.map +1 -1
  147. package/dist/es5/adapter/webgl-canvas-context.js +0 -24
  148. package/dist/es5/adapter/webgl-canvas-context.js.map +1 -1
  149. package/dist/es5/adapter/webgl-device.js +40 -127
  150. package/dist/es5/adapter/webgl-device.js.map +1 -1
  151. package/dist/es5/bundle.js +0 -1
  152. package/dist/es5/bundle.js.map +1 -1
  153. package/dist/es5/classic/accessor.js +1 -31
  154. package/dist/es5/classic/accessor.js.map +1 -1
  155. package/dist/es5/classic/buffer.js +32 -102
  156. package/dist/es5/classic/buffer.js.map +1 -1
  157. package/dist/es5/classic/typed-array-utils.js +10 -37
  158. package/dist/es5/classic/typed-array-utils.js.map +1 -1
  159. package/dist/es5/context/context/create-browser-context.js +4 -21
  160. package/dist/es5/context/context/create-browser-context.js.map +1 -1
  161. package/dist/es5/context/context/create-headless-context.js +8 -21
  162. package/dist/es5/context/context/create-headless-context.js.map +1 -1
  163. package/dist/es5/context/context/webgl-checks.js +4 -14
  164. package/dist/es5/context/context/webgl-checks.js.map +1 -1
  165. package/dist/es5/context/debug/spector.js +20 -54
  166. package/dist/es5/context/debug/spector.js.map +1 -1
  167. package/dist/es5/context/debug/webgl-developer-tools.js +19 -65
  168. package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -1
  169. package/dist/es5/context/parameters/unified-parameter-api.js +3 -28
  170. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
  171. package/dist/es5/context/parameters/webgl-parameter-tables.js +18 -65
  172. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
  173. package/dist/es5/context/polyfill/context-data.js +0 -3
  174. package/dist/es5/context/polyfill/context-data.js.map +1 -1
  175. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -12
  176. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
  177. package/dist/es5/context/polyfill/polyfill-context.js +8 -33
  178. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
  179. package/dist/es5/context/polyfill/polyfill-table.js +3 -27
  180. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
  181. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -70
  182. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  183. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -5
  184. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
  185. package/dist/es5/context/state-tracker/track-context-state.js +10 -53
  186. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
  187. package/dist/es5/context/state-tracker/with-parameters.js +1 -13
  188. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
  189. package/dist/es5/index.js +72 -99
  190. package/dist/es5/index.js.map +1 -1
  191. package/dist/es5/init.js +0 -3
  192. package/dist/es5/init.js.map +1 -1
  193. package/dist/es5/types/webgl.js +0 -1
  194. package/dist/es5/types/webgl.js.map +1 -1
  195. package/dist/es5/types.js.map +1 -1
  196. package/dist/esm/adapter/converters/device-parameters.js +0 -20
  197. package/dist/esm/adapter/converters/device-parameters.js.map +1 -1
  198. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -4
  199. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -1
  200. package/dist/esm/adapter/converters/sampler-parameters.js +2 -57
  201. package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -1
  202. package/dist/esm/adapter/converters/texture-formats.js +8 -52
  203. package/dist/esm/adapter/converters/texture-formats.js.map +1 -1
  204. package/dist/esm/adapter/converters/vertex-formats.js +0 -9
  205. package/dist/esm/adapter/converters/vertex-formats.js.map +1 -1
  206. package/dist/esm/adapter/device-helpers/device-features.js +2 -19
  207. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
  208. package/dist/esm/adapter/device-helpers/device-limits.js +0 -3
  209. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
  210. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -6
  211. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
  212. package/dist/esm/adapter/device-helpers/is-old-ie.js +2 -1
  213. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -1
  214. package/dist/esm/adapter/helpers/attribute-utils.js +0 -17
  215. package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -1
  216. package/dist/esm/adapter/helpers/get-shader-info.js +25 -0
  217. package/dist/esm/adapter/helpers/get-shader-info.js.map +1 -0
  218. package/dist/esm/adapter/helpers/get-shader-layout.js +2 -48
  219. package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -1
  220. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -7
  221. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  222. package/dist/esm/adapter/helpers/set-uniform.js +0 -30
  223. package/dist/esm/adapter/helpers/set-uniform.js.map +1 -1
  224. package/dist/esm/adapter/helpers/uniforms.js +0 -10
  225. package/dist/esm/adapter/helpers/uniforms.js.map +1 -1
  226. package/dist/esm/adapter/objects/constants-to-keys.js +0 -7
  227. package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -1
  228. package/dist/esm/adapter/objects/webgl-renderbuffer.js +2 -18
  229. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -1
  230. package/dist/esm/adapter/objects/webgl-resource.js +10 -57
  231. package/dist/esm/adapter/objects/webgl-resource.js.map +1 -1
  232. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +5 -15
  233. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  234. package/dist/esm/adapter/resources/webgl-buffer.js +12 -40
  235. package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -1
  236. package/dist/esm/adapter/resources/webgl-command-buffer.js +2 -17
  237. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -1
  238. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -12
  239. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -1
  240. package/dist/esm/adapter/resources/webgl-external-texture.js.map +1 -1
  241. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -60
  242. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -1
  243. package/dist/esm/adapter/resources/webgl-render-pass.js +1 -8
  244. package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -1
  245. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -89
  246. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -1
  247. package/dist/esm/adapter/resources/webgl-sampler.js +0 -12
  248. package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -1
  249. package/dist/esm/adapter/resources/webgl-shader.js +2 -16
  250. package/dist/esm/adapter/resources/webgl-shader.js.map +1 -1
  251. package/dist/esm/adapter/resources/webgl-texture.js +36 -154
  252. package/dist/esm/adapter/resources/webgl-texture.js.map +1 -1
  253. package/dist/esm/adapter/webgl-canvas-context.js +0 -14
  254. package/dist/esm/adapter/webgl-canvas-context.js.map +1 -1
  255. package/dist/esm/adapter/webgl-device.js +19 -89
  256. package/dist/esm/adapter/webgl-device.js.map +1 -1
  257. package/dist/esm/bundle.js +0 -1
  258. package/dist/esm/bundle.js.map +1 -1
  259. package/dist/esm/classic/accessor.js +10 -34
  260. package/dist/esm/classic/accessor.js.map +1 -1
  261. package/dist/esm/classic/buffer.js +15 -71
  262. package/dist/esm/classic/buffer.js.map +1 -1
  263. package/dist/esm/classic/typed-array-utils.js +0 -20
  264. package/dist/esm/classic/typed-array-utils.js.map +1 -1
  265. package/dist/esm/context/context/create-browser-context.js +6 -14
  266. package/dist/esm/context/context/create-browser-context.js.map +1 -1
  267. package/dist/esm/context/context/create-headless-context.js +2 -6
  268. package/dist/esm/context/context/create-headless-context.js.map +1 -1
  269. package/dist/esm/context/context/webgl-checks.js +0 -3
  270. package/dist/esm/context/context/webgl-checks.js.map +1 -1
  271. package/dist/esm/context/debug/spector.js +2 -14
  272. package/dist/esm/context/debug/spector.js.map +1 -1
  273. package/dist/esm/context/debug/webgl-developer-tools.js +4 -22
  274. package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -1
  275. package/dist/esm/context/parameters/unified-parameter-api.js +2 -13
  276. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
  277. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -19
  278. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
  279. package/dist/esm/context/polyfill/context-data.js +0 -2
  280. package/dist/esm/context/polyfill/context-data.js.map +1 -1
  281. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -5
  282. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
  283. package/dist/esm/context/polyfill/polyfill-context.js +14 -21
  284. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
  285. package/dist/esm/context/polyfill/polyfill-table.js +0 -23
  286. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
  287. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -70
  288. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  289. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -4
  290. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
  291. package/dist/esm/context/state-tracker/track-context-state.js +11 -45
  292. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
  293. package/dist/esm/context/state-tracker/with-parameters.js +0 -6
  294. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
  295. package/dist/esm/index.js.map +1 -1
  296. package/dist/esm/init.js.map +1 -1
  297. package/dist/esm/types/webgl.js.map +1 -1
  298. package/dist/esm/types.js.map +1 -1
  299. package/dist/index.js +39 -25
  300. package/dist/init.js +1 -2
  301. package/dist/types/webgl.d.ts +20 -20
  302. package/dist/types/webgl.d.ts.map +1 -1
  303. package/dist/types/webgl.js +0 -1
  304. package/dist/types.d.ts +1 -1
  305. package/dist/types.d.ts.map +1 -1
  306. package/dist/types.js +0 -1
  307. package/package.json +8 -8
  308. package/src/adapter/helpers/get-shader-info.ts +37 -0
  309. package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
  310. package/src/adapter/resources/webgl-render-pass.ts +1 -1
  311. package/src/adapter/resources/webgl-shader.ts +2 -2
  312. package/src/adapter/webgl-device.ts +1 -1
  313. package/src/context/debug/webgl-developer-tools.ts +0 -1
  314. package/src/types/webgl.ts +4 -4
  315. package/dist/adapter/converters/device-parameters.js.map +0 -1
  316. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  317. package/dist/adapter/converters/sampler-parameters.js.map +0 -1
  318. package/dist/adapter/converters/texture-formats.js.map +0 -1
  319. package/dist/adapter/converters/vertex-formats.js.map +0 -1
  320. package/dist/adapter/device-helpers/device-features.js.map +0 -1
  321. package/dist/adapter/device-helpers/device-limits.js.map +0 -1
  322. package/dist/adapter/device-helpers/get-device-info.js.map +0 -1
  323. package/dist/adapter/device-helpers/is-old-ie.js.map +0 -1
  324. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  325. package/dist/adapter/helpers/get-shader-layout.js.map +0 -1
  326. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  327. package/dist/adapter/helpers/set-uniform.js.map +0 -1
  328. package/dist/adapter/helpers/uniforms.js.map +0 -1
  329. package/dist/adapter/objects/constants-to-keys.js.map +0 -1
  330. package/dist/adapter/objects/webgl-renderbuffer.js.map +0 -1
  331. package/dist/adapter/objects/webgl-resource.js.map +0 -1
  332. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  333. package/dist/adapter/resources/webgl-buffer.js.map +0 -1
  334. package/dist/adapter/resources/webgl-command-buffer.js.map +0 -1
  335. package/dist/adapter/resources/webgl-command-encoder.js.map +0 -1
  336. package/dist/adapter/resources/webgl-external-texture.js.map +0 -1
  337. package/dist/adapter/resources/webgl-framebuffer.js.map +0 -1
  338. package/dist/adapter/resources/webgl-render-pass.js.map +0 -1
  339. package/dist/adapter/resources/webgl-render-pipeline.js.map +0 -1
  340. package/dist/adapter/resources/webgl-sampler.js.map +0 -1
  341. package/dist/adapter/resources/webgl-shader.js.map +0 -1
  342. package/dist/adapter/resources/webgl-texture.js.map +0 -1
  343. package/dist/adapter/webgl-canvas-context.js.map +0 -1
  344. package/dist/adapter/webgl-device.js.map +0 -1
  345. package/dist/bundle.js.map +0 -1
  346. package/dist/classic/accessor.js.map +0 -1
  347. package/dist/classic/buffer.js.map +0 -1
  348. package/dist/classic/typed-array-utils.js.map +0 -1
  349. package/dist/context/context/create-browser-context.js.map +0 -1
  350. package/dist/context/context/create-headless-context.js.map +0 -1
  351. package/dist/context/context/webgl-checks.js.map +0 -1
  352. package/dist/context/debug/spector.js.map +0 -1
  353. package/dist/context/debug/webgl-developer-tools.js.map +0 -1
  354. package/dist/context/parameters/unified-parameter-api.js.map +0 -1
  355. package/dist/context/parameters/webgl-parameter-tables.js.map +0 -1
  356. package/dist/context/polyfill/context-data.js.map +0 -1
  357. package/dist/context/polyfill/get-parameter-polyfill.js.map +0 -1
  358. package/dist/context/polyfill/polyfill-context.js.map +0 -1
  359. package/dist/context/polyfill/polyfill-table.js.map +0 -1
  360. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  361. package/dist/context/state-tracker/deep-array-equal.js.map +0 -1
  362. package/dist/context/state-tracker/track-context-state.js.map +0 -1
  363. package/dist/context/state-tracker/with-parameters.js.map +0 -1
  364. package/dist/index.js.map +0 -1
  365. package/dist/init.js.map +0 -1
  366. package/dist/types/webgl.js.map +0 -1
  367. package/dist/types.js.map +0 -1
@@ -1,56 +1,33 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
-
12
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
11
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
12
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
13
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
14
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
16
  var _api = require("@luma.gl/api");
27
-
28
17
  var _constants = _interopRequireDefault(require("@luma.gl/constants"));
29
-
30
18
  var _webglTexture = _interopRequireDefault(require("./webgl-texture"));
31
-
32
19
  var _webglRenderbuffer = _interopRequireDefault(require("../objects/webgl-renderbuffer"));
33
-
34
20
  var _textureFormats = require("../converters/texture-formats");
35
-
36
21
  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
22
  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
-
23
+ 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; }
42
24
  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
25
  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
26
  var WEBGLFramebuffer = function (_Framebuffer) {
47
27
  (0, _inherits2.default)(WEBGLFramebuffer, _Framebuffer);
48
-
49
28
  var _super = _createSuper(WEBGLFramebuffer);
50
-
51
29
  function WEBGLFramebuffer(device, props) {
52
30
  var _this;
53
-
54
31
  (0, _classCallCheck2.default)(this, WEBGLFramebuffer);
55
32
  _this = _super.call(this, device, props);
56
33
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "device", void 0);
@@ -62,41 +39,31 @@ var WEBGLFramebuffer = function (_Framebuffer) {
62
39
  _this.device = device;
63
40
  _this.gl = device.gl;
64
41
  _this.handle = _this.props.handle !== undefined ? _this.props.handle : _this.gl.createFramebuffer();
65
-
66
42
  if (_this.handle) {
67
43
  _this.handle.__SPECTOR_Metadata = {
68
44
  id: _this.props.id,
69
45
  props: _this.props
70
46
  };
71
47
  }
72
-
73
48
  _this.colorAttachments = _this._createColorAttachments();
74
49
  _this.depthStencilAttachment = _this._createDepthStencilAttachment();
75
-
76
50
  var prevHandle = _this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, _this.handle);
77
-
78
51
  for (var i = 0; i < _this.colorAttachments.length; ++i) {
79
52
  var attachment = _this.colorAttachments[i];
80
53
  var attachmentPoint = _constants.default.COLOR_ATTACHMENT0 + i;
81
-
82
54
  if (attachment) {
83
55
  _this._attachOne(attachmentPoint, attachment);
84
56
  }
85
57
  }
86
-
87
58
  if (_this.props.depthStencilAttachment) {
88
59
  _this._attachOne((0, _textureFormats.getWebGLDepthStencilAttachment)(_this.depthStencilAttachment.format), _this.depthStencilAttachment);
89
60
  }
90
-
91
61
  _this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
92
-
93
62
  if (props.check !== false) {
94
63
  _this._checkStatus();
95
64
  }
96
-
97
65
  return _this;
98
66
  }
99
-
100
67
  (0, _createClass2.default)(WEBGLFramebuffer, [{
101
68
  key: "texture",
102
69
  get: function get() {
@@ -107,8 +74,7 @@ var WEBGLFramebuffer = function (_Framebuffer) {
107
74
  value: function destroy() {
108
75
  if (this.handle !== null) {
109
76
  var _iterator = _createForOfIteratorHelper(this._ownResources),
110
- _step;
111
-
77
+ _step;
112
78
  try {
113
79
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
114
80
  var resource = _step.value;
@@ -119,7 +85,6 @@ var WEBGLFramebuffer = function (_Framebuffer) {
119
85
  } finally {
120
86
  _iterator.f();
121
87
  }
122
-
123
88
  this.gl.deleteFramebuffer(this.handle);
124
89
  this.destroyed = true;
125
90
  }
@@ -131,7 +96,6 @@ var WEBGLFramebuffer = function (_Framebuffer) {
131
96
  var prevHandle = gl.bindFramebuffer(_constants.default.FRAMEBUFFER, this.handle);
132
97
  var status = gl.checkFramebufferStatus(_constants.default.FRAMEBUFFER);
133
98
  gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
134
-
135
99
  if (status !== gl.FRAMEBUFFER_COMPLETE) {
136
100
  throw new Error("Framebuffer ".concat(_getFrameBufferStatus(status)));
137
101
  }
@@ -140,16 +104,13 @@ var WEBGLFramebuffer = function (_Framebuffer) {
140
104
  key: "_createColorAttachments",
141
105
  value: function _createColorAttachments() {
142
106
  var _this2 = this;
143
-
144
107
  return this.props.colorAttachments.map(function (colorAttachment) {
145
108
  if (!colorAttachment) {
146
109
  return undefined;
147
110
  }
148
-
149
111
  if (colorAttachment instanceof _webglTexture.default) {
150
112
  return colorAttachment;
151
113
  }
152
-
153
114
  return _this2._createColorAttachment(colorAttachment, _this2.width, _this2.height);
154
115
  });
155
116
  }
@@ -170,9 +131,7 @@ var WEBGLFramebuffer = function (_Framebuffer) {
170
131
  addressModeV: 'clamp-to-edge'
171
132
  }
172
133
  });
173
-
174
134
  this._ownResources.push(texture);
175
-
176
135
  return texture;
177
136
  }
178
137
  }, {
@@ -181,15 +140,12 @@ var WEBGLFramebuffer = function (_Framebuffer) {
181
140
  if (!this.props.depthStencilAttachment) {
182
141
  return undefined;
183
142
  }
184
-
185
143
  if (this.props.depthStencilAttachment instanceof _webglRenderbuffer.default) {
186
144
  return this.props.depthStencilAttachment;
187
145
  }
188
-
189
146
  if (this.props.depthStencilAttachment instanceof _api.Texture) {
190
147
  return this.props.depthStencilAttachment;
191
148
  }
192
-
193
149
  var format = this.props.depthStencilAttachment;
194
150
  var webglFormat = (0, _textureFormats.getWebGLTextureFormat)(this.gl, format);
195
151
  var texture = new _webglRenderbuffer.default(this.device, {
@@ -198,37 +154,29 @@ var WEBGLFramebuffer = function (_Framebuffer) {
198
154
  width: this.width,
199
155
  height: this.height
200
156
  });
201
-
202
157
  this._ownResources.push(texture);
203
-
204
158
  return texture;
205
159
  }
206
160
  }, {
207
161
  key: "_resizeAttachments",
208
162
  value: function _resizeAttachments(width, height) {
209
163
  var _this$depthStencilAtt;
210
-
211
164
  if (this.handle === null) {
212
165
  this.width = this.gl.drawingBufferWidth;
213
166
  this.height = this.gl.drawingBufferHeight;
214
167
  return this;
215
168
  }
216
-
217
169
  if (width === undefined) {
218
170
  width = this.gl.drawingBufferWidth;
219
171
  }
220
-
221
172
  if (height === undefined) {
222
173
  height = this.gl.drawingBufferHeight;
223
174
  }
224
-
225
175
  if (width !== this.width && height !== this.height) {
226
176
  _api.log.log(2, "Resizing framebuffer ".concat(this.id, " to ").concat(width, "x").concat(height))();
227
177
  }
228
-
229
178
  var _iterator2 = _createForOfIteratorHelper(this.colorAttachments),
230
- _step2;
231
-
179
+ _step2;
232
180
  try {
233
181
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
234
182
  var colorAttachment = _step2.value;
@@ -242,7 +190,6 @@ var WEBGLFramebuffer = function (_Framebuffer) {
242
190
  } finally {
243
191
  _iterator2.f();
244
192
  }
245
-
246
193
  (_this$depthStencilAtt = this.depthStencilAttachment) === null || _this$depthStencilAtt === void 0 ? void 0 : _this$depthStencilAtt.resize({
247
194
  width: width,
248
195
  height: height
@@ -254,25 +201,20 @@ var WEBGLFramebuffer = function (_Framebuffer) {
254
201
  value: function _attachOne(attachmentPoint, attachment) {
255
202
  if (attachment instanceof _webglRenderbuffer.default) {
256
203
  this._attachRenderbuffer(attachmentPoint, attachment);
257
-
258
204
  return attachment;
259
205
  } else if (Array.isArray(attachment)) {
260
206
  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
-
207
+ texture = _attachment[0],
208
+ _attachment$ = _attachment[1],
209
+ layer = _attachment$ === void 0 ? 0 : _attachment$,
210
+ _attachment$2 = _attachment[2],
211
+ level = _attachment$2 === void 0 ? 0 : _attachment$2;
267
212
  this._attachTexture(attachmentPoint, texture, layer, level);
268
-
269
213
  return texture;
270
214
  } else if (attachment instanceof _webglTexture.default) {
271
215
  this._attachTexture(attachmentPoint, attachment, 0, 0);
272
-
273
216
  return attachment;
274
217
  }
275
-
276
218
  throw new Error('attach');
277
219
  }
278
220
  }, {
@@ -284,62 +226,48 @@ var WEBGLFramebuffer = function (_Framebuffer) {
284
226
  key: "_attachTexture",
285
227
  value: function _attachTexture(attachment, texture, layer, level) {
286
228
  var _this$device = this.device,
287
- gl = _this$device.gl,
288
- gl2 = _this$device.gl2;
229
+ gl = _this$device.gl,
230
+ gl2 = _this$device.gl2;
289
231
  gl.bindTexture(texture.target, texture.handle);
290
-
291
232
  switch (texture.target) {
292
233
  case _constants.default.TEXTURE_2D_ARRAY:
293
234
  case _constants.default.TEXTURE_3D:
294
235
  this.device.assertWebGL2();
295
236
  gl2 === null || gl2 === void 0 ? void 0 : gl2.framebufferTextureLayer(_constants.default.FRAMEBUFFER, attachment, texture.target, level, layer);
296
237
  break;
297
-
298
238
  case _constants.default.TEXTURE_CUBE_MAP:
299
239
  var face = mapIndexToCubeMapFace(layer);
300
240
  gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, attachment, face, texture.handle, level);
301
241
  break;
302
-
303
242
  case _constants.default.TEXTURE_2D:
304
243
  gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, attachment, _constants.default.TEXTURE_2D, texture.handle, level);
305
244
  break;
306
-
307
245
  default:
308
246
  (0, _api.assert)(false, 'Illegal texture type');
309
247
  }
310
-
311
248
  gl.bindTexture(texture.target, null);
312
249
  }
313
250
  }]);
314
251
  return WEBGLFramebuffer;
315
252
  }(_api.Framebuffer);
316
-
317
253
  exports.default = WEBGLFramebuffer;
318
-
319
254
  function mapIndexToCubeMapFace(layer) {
320
255
  return layer < _constants.default.TEXTURE_CUBE_MAP_POSITIVE_X ? layer + _constants.default.TEXTURE_CUBE_MAP_POSITIVE_X : layer;
321
256
  }
322
-
323
257
  function _getFrameBufferStatus(status) {
324
258
  switch (status) {
325
259
  case _constants.default.FRAMEBUFFER_COMPLETE:
326
260
  return 'success';
327
-
328
261
  case _constants.default.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:
329
262
  return 'Mismatched attachments';
330
-
331
263
  case _constants.default.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
332
264
  return 'No attachments';
333
-
334
265
  case _constants.default.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:
335
266
  return 'Height/width mismatch';
336
-
337
267
  case _constants.default.FRAMEBUFFER_UNSUPPORTED:
338
268
  return 'Unsupported or split attachments';
339
-
340
269
  case _constants.default.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:
341
270
  return 'Samples mismatch';
342
-
343
271
  default:
344
272
  return "".concat(status);
345
273
  }
@@ -1 +1 @@
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, 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;\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 override destroy(): void {\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 throw new Error('attach');\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: number | GL): GL {\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: GL) {\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
+ {"version":3,"file":"webgl-framebuffer.js","names":["_api","require","_constants","_interopRequireDefault","_webglTexture","_webglRenderbuffer","_textureFormats","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","WEBGLFramebuffer","_Framebuffer","_inherits2","_super","device","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","gl","handle","undefined","createFramebuffer","__SPECTOR_Metadata","id","colorAttachments","_createColorAttachments","depthStencilAttachment","_createDepthStencilAttachment","prevHandle","bindFramebuffer","GL","FRAMEBUFFER","attachment","attachmentPoint","COLOR_ATTACHMENT0","_attachOne","getWebGLDepthStencilAttachment","format","check","_checkStatus","_createClass2","key","get","destroy","_iterator","_ownResources","_step","resource","deleteFramebuffer","destroyed","status","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","Error","concat","_getFrameBufferStatus","_this2","map","colorAttachment","WebGLTexture","_createColorAttachment","width","height","texture","_createTexture","data","mipmaps","sampler","minFilter","magFilter","addressModeU","addressModeV","push","Renderbuffer","Texture","webglFormat","getWebGLTextureFormat","_resizeAttachments","_this$depthStencilAtt","drawingBufferWidth","drawingBufferHeight","log","_iterator2","_step2","resize","_attachRenderbuffer","_attachment","_slicedToArray2","_attachment$","layer","_attachment$2","level","_attachTexture","renderbuffer","framebufferRenderbuffer","RENDERBUFFER","_this$device","gl2","bindTexture","target","TEXTURE_2D_ARRAY","TEXTURE_3D","assertWebGL2","framebufferTextureLayer","TEXTURE_CUBE_MAP","face","mapIndexToCubeMapFace","framebufferTexture2D","TEXTURE_2D","assert","Framebuffer","exports","TEXTURE_CUBE_MAP_POSITIVE_X","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_UNSUPPORTED","FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"],"sources":["../../../../src/adapter/resources/webgl-framebuffer.ts"],"sourcesContent":["// luma.gl, MIT license\n\nimport type {FramebufferProps, 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;\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 override destroy(): void {\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 throw new Error('attach');\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: number | GL): GL {\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: GL) {\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"],"mappings":"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"}
@@ -1,50 +1,34 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
11
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
12
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
13
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
15
  var _api = require("@luma.gl/api");
25
-
26
16
  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
17
  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
18
  var WEBGLRenderPass = function (_RenderPass) {
31
19
  (0, _inherits2.default)(WEBGLRenderPass, _RenderPass);
32
-
33
20
  var _super = _createSuper(WEBGLRenderPass);
34
-
35
21
  function WEBGLRenderPass(device, props) {
36
22
  var _this;
37
-
38
23
  (0, _classCallCheck2.default)(this, WEBGLRenderPass);
39
24
  _this = _super.call(this, device, props);
40
25
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "device", void 0);
41
26
  _this.device = device;
42
27
  return _this;
43
28
  }
44
-
45
29
  (0, _createClass2.default)(WEBGLRenderPass, [{
46
- key: "endPass",
47
- value: function endPass() {}
30
+ key: "end",
31
+ value: function end() {}
48
32
  }, {
49
33
  key: "pushDebugGroup",
50
34
  value: function pushDebugGroup(groupLabel) {}
@@ -57,6 +41,5 @@ var WEBGLRenderPass = function (_RenderPass) {
57
41
  }]);
58
42
  return WEBGLRenderPass;
59
43
  }(_api.RenderPass);
60
-
61
44
  exports.default = WEBGLRenderPass;
62
45
  //# sourceMappingURL=webgl-render-pass.js.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"webgl-render-pass.js","names":["_api","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","WEBGLRenderPass","_RenderPass","_inherits2","_super","device","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_createClass2","key","value","end","pushDebugGroup","groupLabel","popDebugGroup","insertDebugMarker","markerLabel","RenderPass","exports"],"sources":["../../../../src/adapter/resources/webgl-render-pass.ts"],"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 end(): 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"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AAAyD,SAAAC,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,OAAA,CAAAC,SAAA,CAAAP,KAAA,EAAAQ,SAAA,EAAAJ,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAS,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAR,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAQ,OAAA,qBAAAA,OAAA,CAAAC,SAAA,oBAAAD,OAAA,CAAAC,SAAA,CAAAI,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,OAAA,CAAAC,SAAA,CAAAM,OAAA,8CAAAI,CAAA;AAAA,IAGpCC,eAAe,aAAAC,WAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,eAAA,EAAAC,WAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,eAAA;EAGlC,SAAAA,gBAAYI,MAAmB,EAAEC,KAAsB,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAvB,OAAA,QAAAgB,eAAA;IACvDM,KAAA,GAAAH,MAAA,CAAAL,IAAA,OAAMM,MAAM,EAAEC,KAAK;IAAE,IAAAG,gBAAA,CAAAxB,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAsB,KAAA;IACrBA,KAAA,CAAKF,MAAM,GAAGA,MAAM;IAAC,OAAAE,KAAA;EACvB;EAAC,IAAAI,aAAA,CAAA1B,OAAA,EAAAgB,eAAA;IAAAW,GAAA;IAAAC,KAAA,EAED,SAAAC,IAAA,EAAY,CAAC;EAAC;IAAAF,GAAA;IAAAC,KAAA,EAEd,SAAAE,eAAeC,UAAkB,EAAQ,CAAC;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAC3C,SAAAI,cAAA,EAAsB,CAAC;EAAC;IAAAL,GAAA;IAAAC,KAAA,EACxB,SAAAK,kBAAkBC,WAAmB,EAAQ,CAAC;EAAC;EAAA,OAAAlB,eAAA;AAAA,EAZJmB,eAAU;AAAAC,OAAA,CAAApC,OAAA,GAAAgB,eAAA"}