@luma.gl/webgl 9.0.0-alpha.5 → 9.0.0-alpha.51

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 (527) hide show
  1. package/LICENSE +3 -1
  2. package/dist/adapter/converters/device-parameters.d.ts +23 -4
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/device-parameters.js +101 -73
  5. package/dist/adapter/converters/device-parameters.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts +6 -6
  7. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  8. package/dist/adapter/converters/sampler-parameters.js +74 -111
  9. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  10. package/dist/adapter/converters/shader-formats.d.ts +9 -0
  11. package/dist/adapter/converters/shader-formats.d.ts.map +1 -0
  12. package/dist/adapter/converters/shader-formats.js +52 -0
  13. package/dist/adapter/converters/shader-formats.js.map +1 -0
  14. package/dist/adapter/converters/texture-formats.d.ts +32 -44
  15. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  16. package/dist/adapter/converters/texture-formats.js +309 -346
  17. package/dist/adapter/converters/texture-formats.js.map +1 -1
  18. package/dist/adapter/converters/vertex-formats.d.ts +9 -3
  19. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  20. package/dist/adapter/converters/vertex-formats.js +53 -22
  21. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  22. package/dist/adapter/device-helpers/device-features.d.ts +1 -1
  23. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  24. package/dist/adapter/device-helpers/device-features.js +17 -23
  25. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  26. package/dist/adapter/device-helpers/device-limits.d.ts +3 -3
  27. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  28. package/dist/adapter/device-helpers/device-limits.js +54 -58
  29. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  30. package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
  31. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
  32. package/dist/adapter/device-helpers/get-device-info.js +31 -22
  33. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  34. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -1
  35. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  36. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  37. package/dist/adapter/helpers/decode-webgl-types.d.ts +26 -0
  38. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -0
  39. package/dist/adapter/helpers/decode-webgl-types.js +89 -0
  40. package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
  41. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -48
  42. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  43. package/dist/adapter/helpers/get-shader-layout.js +87 -143
  44. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  45. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  46. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  47. package/dist/adapter/helpers/parse-shader-compiler-log.js +16 -11
  48. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  49. package/dist/adapter/helpers/set-uniform.d.ts +3 -2
  50. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  51. package/dist/adapter/helpers/set-uniform.js +51 -82
  52. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  53. package/dist/adapter/helpers/webgl-topology-utils.d.ts +16 -0
  54. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
  55. package/dist/adapter/helpers/webgl-topology-utils.js +103 -0
  56. package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
  57. package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
  58. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  59. package/dist/adapter/objects/constants-to-keys.js +2 -29
  60. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  61. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  62. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  63. package/dist/adapter/objects/webgl-renderbuffer.js +36 -44
  64. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  65. package/dist/adapter/objects/webgl-resource.d.ts +6 -9
  66. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  67. package/dist/adapter/objects/webgl-resource.js +26 -83
  68. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  69. package/dist/adapter/resources/webgl-buffer.d.ts +19 -11
  70. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  71. package/dist/adapter/resources/webgl-buffer.js +60 -88
  72. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  73. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  74. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  75. package/dist/adapter/resources/webgl-command-buffer.js +175 -48
  76. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  77. package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
  78. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  79. package/dist/adapter/resources/webgl-command-encoder.js +10 -20
  80. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  81. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  82. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -24
  83. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  84. package/dist/adapter/resources/webgl-framebuffer.js +63 -173
  85. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  86. package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
  87. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  88. package/dist/adapter/resources/webgl-render-pass.js +99 -11
  89. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  90. package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -21
  91. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  92. package/dist/adapter/resources/webgl-render-pipeline.js +108 -270
  93. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  94. package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
  95. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  96. package/dist/adapter/resources/webgl-sampler.js +11 -21
  97. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  98. package/dist/adapter/resources/webgl-shader.d.ts +5 -5
  99. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  100. package/dist/adapter/resources/webgl-shader.js +18 -43
  101. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  102. package/dist/adapter/resources/webgl-texture.d.ts +62 -42
  103. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  104. package/dist/adapter/resources/webgl-texture.js +137 -256
  105. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  106. package/dist/adapter/resources/webgl-transform-feedback.d.ts +47 -0
  107. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -0
  108. package/dist/adapter/resources/webgl-transform-feedback.js +164 -0
  109. package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -0
  110. package/dist/adapter/resources/webgl-vertex-array.d.ts +67 -0
  111. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -0
  112. package/dist/adapter/resources/webgl-vertex-array.js +167 -0
  113. package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
  114. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  115. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  116. package/dist/adapter/webgl-canvas-context.js +10 -23
  117. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  118. package/dist/adapter/webgl-device.d.ts +76 -41
  119. package/dist/adapter/webgl-device.d.ts.map +1 -1
  120. package/dist/adapter/webgl-device.js +219 -129
  121. package/dist/adapter/webgl-device.js.map +1 -1
  122. package/dist/classic/accessor.d.ts +3 -3
  123. package/dist/classic/accessor.d.ts.map +1 -1
  124. package/dist/classic/accessor.js +26 -52
  125. package/dist/classic/accessor.js.map +1 -1
  126. package/dist/classic/clear.d.ts +22 -0
  127. package/dist/classic/clear.d.ts.map +1 -0
  128. package/dist/classic/clear.js +88 -0
  129. package/dist/classic/clear.js.map +1 -0
  130. package/dist/classic/copy-and-blit.d.ts +62 -0
  131. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  132. package/dist/classic/copy-and-blit.js +191 -0
  133. package/dist/classic/copy-and-blit.js.map +1 -0
  134. package/dist/classic/format-utils.d.ts +3 -0
  135. package/dist/classic/format-utils.d.ts.map +1 -0
  136. package/dist/classic/format-utils.js +37 -0
  137. package/dist/classic/format-utils.js.map +1 -0
  138. package/dist/classic/typed-array-utils.d.ts +17 -17
  139. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  140. package/dist/classic/typed-array-utils.js +18 -39
  141. package/dist/classic/typed-array-utils.js.map +1 -1
  142. package/dist/context/context/create-browser-context.d.ts +40 -0
  143. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  144. package/dist/context/context/create-browser-context.js +53 -0
  145. package/dist/context/context/create-browser-context.js.map +1 -0
  146. package/dist/context/context/create-headless-context.d.ts +9 -0
  147. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  148. package/dist/context/context/create-headless-context.js +42 -0
  149. package/dist/context/context/create-headless-context.js.map +1 -0
  150. package/dist/context/context/webgl-checks.d.ts.map +1 -1
  151. package/dist/context/context/webgl-checks.js +1 -4
  152. package/dist/context/context/webgl-checks.js.map +1 -1
  153. package/dist/context/debug/spector.d.ts +1 -2
  154. package/dist/context/debug/spector.d.ts.map +1 -1
  155. package/dist/context/debug/spector.js +8 -20
  156. package/dist/context/debug/spector.js.map +1 -1
  157. package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
  158. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  159. package/dist/context/debug/webgl-developer-tools.js +15 -39
  160. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  161. package/dist/context/parameters/unified-parameter-api.d.ts +9 -8
  162. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  163. package/dist/context/parameters/unified-parameter-api.js +9 -19
  164. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  165. package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
  166. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  167. package/dist/context/parameters/webgl-parameter-tables.js +267 -286
  168. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  169. package/dist/context/polyfill/context-data.d.ts +13 -0
  170. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  171. package/dist/context/polyfill/context-data.js +12 -0
  172. package/dist/context/polyfill/context-data.js.map +1 -0
  173. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  174. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  175. package/dist/context/polyfill/get-parameter-polyfill.js +37 -43
  176. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  177. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -1
  178. package/dist/context/polyfill/polyfill-context.js +22 -30
  179. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  180. package/dist/context/polyfill/polyfill-table.d.ts +8 -8
  181. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  182. package/dist/context/polyfill/polyfill-table.js +18 -41
  183. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  184. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  185. package/dist/context/polyfill/polyfill-vertex-array-object.js +17 -87
  186. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  187. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  188. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  189. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  190. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  191. package/dist/context/state-tracker/track-context-state.js +26 -62
  192. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  193. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  194. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  195. package/dist/context/state-tracker/with-parameters.js +8 -10
  196. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  197. package/dist/dist.dev.js +8624 -0
  198. package/dist/index.cjs +6570 -0
  199. package/dist/index.d.ts +26 -24
  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 +52 -0
  207. package/package.json +21 -9
  208. package/src/adapter/converters/device-parameters.ts +144 -41
  209. package/src/adapter/converters/sampler-parameters.ts +103 -41
  210. package/src/adapter/converters/shader-formats.ts +44 -0
  211. package/src/adapter/converters/texture-formats.ts +268 -195
  212. package/src/adapter/converters/vertex-formats.ts +71 -10
  213. package/src/adapter/device-helpers/device-features.ts +14 -3
  214. package/src/adapter/device-helpers/device-limits.ts +5 -3
  215. package/src/adapter/device-helpers/get-device-info.ts +53 -18
  216. package/src/adapter/device-helpers/is-old-ie.ts +3 -0
  217. package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +39 -21
  218. package/src/adapter/helpers/get-shader-layout.ts +121 -146
  219. package/src/adapter/helpers/parse-shader-compiler-log.ts +24 -8
  220. package/src/adapter/helpers/set-uniform.ts +39 -35
  221. package/src/adapter/helpers/webgl-topology-utils.ts +103 -0
  222. package/src/adapter/objects/constants-to-keys.ts +6 -25
  223. package/src/adapter/objects/webgl-renderbuffer.ts +43 -37
  224. package/src/adapter/objects/webgl-resource.ts +16 -23
  225. package/src/adapter/resources/.webgl-render-pipeline.ts.swp +0 -0
  226. package/src/adapter/resources/webgl-buffer.ts +67 -62
  227. package/src/adapter/resources/webgl-command-buffer.ts +327 -25
  228. package/src/adapter/resources/webgl-command-encoder.ts +20 -12
  229. package/src/adapter/resources/webgl-external-texture.ts +5 -2
  230. package/src/adapter/resources/webgl-framebuffer.ts +90 -134
  231. package/src/adapter/resources/webgl-render-pass.ts +166 -4
  232. package/src/adapter/resources/webgl-render-pipeline.ts +256 -192
  233. package/src/adapter/resources/webgl-sampler.ts +16 -10
  234. package/src/adapter/resources/webgl-shader.ts +33 -27
  235. package/src/adapter/resources/webgl-texture.ts +138 -99
  236. package/src/adapter/resources/webgl-transform-feedback.ts +202 -0
  237. package/src/adapter/resources/webgl-vertex-array.ts +283 -0
  238. package/src/adapter/webgl-canvas-context.ts +16 -14
  239. package/src/adapter/webgl-device.ts +328 -79
  240. package/src/classic/accessor.ts +8 -18
  241. package/src/classic/clear.ts +113 -0
  242. package/src/classic/copy-and-blit.ts +311 -0
  243. package/src/classic/format-utils.ts +46 -0
  244. package/src/classic/typed-array-utils.ts +21 -27
  245. package/src/context/context/create-browser-context.ts +140 -0
  246. package/src/context/context/create-headless-context.ts +51 -0
  247. package/src/context/context/webgl-checks.ts +3 -1
  248. package/src/context/debug/spector.ts +9 -6
  249. package/src/context/debug/webgl-developer-tools.ts +23 -15
  250. package/src/context/parameters/unified-parameter-api.ts +23 -14
  251. package/src/context/parameters/webgl-parameter-tables.ts +120 -98
  252. package/src/context/polyfill/context-data.ts +30 -0
  253. package/src/context/polyfill/get-parameter-polyfill.ts +11 -7
  254. package/src/context/polyfill/polyfill-context.ts +10 -9
  255. package/src/context/polyfill/polyfill-table.ts +21 -16
  256. package/src/context/polyfill/polyfill-vertex-array-object.ts +5 -0
  257. package/src/context/state-tracker/deep-array-equal.ts +2 -0
  258. package/src/context/state-tracker/track-context-state.ts +14 -11
  259. package/src/context/state-tracker/with-parameters.ts +13 -4
  260. package/src/index.ts +70 -35
  261. package/src/types.ts +5 -0
  262. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  263. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  264. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  265. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  266. package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
  267. package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
  268. package/dist/adapter/helpers/attribute-utils.js +0 -81
  269. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  270. package/dist/adapter/helpers/uniforms.d.ts +0 -26
  271. package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
  272. package/dist/adapter/helpers/uniforms.js +0 -99
  273. package/dist/adapter/helpers/uniforms.js.map +0 -1
  274. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
  275. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
  276. package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
  277. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  278. package/dist/bundle.d.ts +0 -2
  279. package/dist/bundle.d.ts.map +0 -1
  280. package/dist/bundle.js +0 -5
  281. package/dist/bundle.js.map +0 -1
  282. package/dist/classic/buffer.d.ts +0 -95
  283. package/dist/classic/buffer.d.ts.map +0 -1
  284. package/dist/classic/buffer.js +0 -384
  285. package/dist/classic/buffer.js.map +0 -1
  286. package/dist/context/context/context-state.d.ts +0 -18
  287. package/dist/context/context/context-state.d.ts.map +0 -1
  288. package/dist/context/context/context-state.js +0 -26
  289. package/dist/context/context/context-state.js.map +0 -1
  290. package/dist/context/context/create-context.d.ts +0 -41
  291. package/dist/context/context/create-context.d.ts.map +0 -1
  292. package/dist/context/context/create-context.js +0 -49
  293. package/dist/context/context/create-context.js.map +0 -1
  294. package/dist/context/context/device-pixels.d.ts +0 -25
  295. package/dist/context/context/device-pixels.d.ts.map +0 -1
  296. package/dist/context/context/device-pixels.js +0 -98
  297. package/dist/context/context/device-pixels.js.map +0 -1
  298. package/dist/es5/adapter/converters/device-parameters.js +0 -170
  299. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  300. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  301. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  302. package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
  303. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  304. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  305. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  306. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  307. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  308. package/dist/es5/adapter/device-helpers/device-features.js +0 -144
  309. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  310. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  311. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  312. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  313. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  314. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  315. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  316. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  317. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  318. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
  319. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  320. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  321. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  322. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  323. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  324. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  325. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  326. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  327. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  328. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  329. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  330. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  331. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  332. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  333. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  334. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  335. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  336. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  337. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  338. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  339. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  340. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  341. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  342. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
  343. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  344. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
  345. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  346. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
  347. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  348. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  349. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  350. package/dist/es5/adapter/resources/webgl-shader.js +0 -149
  351. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  352. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  353. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  354. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  355. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  356. package/dist/es5/adapter/webgl-device.js +0 -399
  357. package/dist/es5/adapter/webgl-device.js.map +0 -1
  358. package/dist/es5/bundle.js +0 -7
  359. package/dist/es5/bundle.js.map +0 -1
  360. package/dist/es5/classic/accessor.js +0 -181
  361. package/dist/es5/classic/accessor.js.map +0 -1
  362. package/dist/es5/classic/buffer.js +0 -470
  363. package/dist/es5/classic/buffer.js.map +0 -1
  364. package/dist/es5/classic/typed-array-utils.js +0 -126
  365. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  366. package/dist/es5/context/context/context-state.js +0 -31
  367. package/dist/es5/context/context/context-state.js.map +0 -1
  368. package/dist/es5/context/context/create-context.js +0 -69
  369. package/dist/es5/context/context/create-context.js.map +0 -1
  370. package/dist/es5/context/context/device-pixels.js +0 -115
  371. package/dist/es5/context/context/device-pixels.js.map +0 -1
  372. package/dist/es5/context/context/webgl-checks.js +0 -54
  373. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  374. package/dist/es5/context/debug/spector.js +0 -133
  375. package/dist/es5/context/debug/spector.js.map +0 -1
  376. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  377. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  378. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  379. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  380. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  381. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  382. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  383. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  384. package/dist/es5/context/polyfill/polyfill-context.js +0 -135
  385. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  386. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  387. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  388. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  389. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  390. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  391. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  392. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  393. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  394. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  395. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  396. package/dist/es5/index.js +0 -276
  397. package/dist/es5/index.js.map +0 -1
  398. package/dist/es5/init.js +0 -10
  399. package/dist/es5/init.js.map +0 -1
  400. package/dist/es5/types/webgl.js +0 -6
  401. package/dist/es5/types/webgl.js.map +0 -1
  402. package/dist/es5/types.js +0 -2
  403. package/dist/es5/types.js.map +0 -1
  404. package/dist/esm/adapter/converters/device-parameters.js +0 -155
  405. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  406. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  407. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  408. package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
  409. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  410. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  411. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  412. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  413. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  414. package/dist/esm/adapter/device-helpers/device-features.js +0 -102
  415. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  416. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  417. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  418. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  419. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  420. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  421. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  422. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  423. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  424. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
  425. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  426. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  427. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  428. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  429. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  430. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  431. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  432. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  433. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  434. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  435. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  436. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  437. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  438. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  439. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  440. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  441. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  442. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  443. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  444. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  445. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  446. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  447. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  448. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
  449. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  450. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
  451. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  452. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  453. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  454. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  455. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  456. package/dist/esm/adapter/resources/webgl-shader.js +0 -75
  457. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  458. package/dist/esm/adapter/resources/webgl-texture.js +0 -833
  459. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  460. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  461. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  462. package/dist/esm/adapter/webgl-device.js +0 -280
  463. package/dist/esm/adapter/webgl-device.js.map +0 -1
  464. package/dist/esm/bundle.js +0 -5
  465. package/dist/esm/bundle.js.map +0 -1
  466. package/dist/esm/classic/accessor.js +0 -144
  467. package/dist/esm/classic/accessor.js.map +0 -1
  468. package/dist/esm/classic/buffer.js +0 -384
  469. package/dist/esm/classic/buffer.js.map +0 -1
  470. package/dist/esm/classic/typed-array-utils.js +0 -112
  471. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  472. package/dist/esm/context/context/context-state.js +0 -26
  473. package/dist/esm/context/context/context-state.js.map +0 -1
  474. package/dist/esm/context/context/create-context.js +0 -49
  475. package/dist/esm/context/context/create-context.js.map +0 -1
  476. package/dist/esm/context/context/device-pixels.js +0 -98
  477. package/dist/esm/context/context/device-pixels.js.map +0 -1
  478. package/dist/esm/context/context/webgl-checks.js +0 -34
  479. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  480. package/dist/esm/context/debug/spector.js +0 -76
  481. package/dist/esm/context/debug/spector.js.map +0 -1
  482. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  483. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  484. package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
  485. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  486. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  487. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  488. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  489. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  490. package/dist/esm/context/polyfill/polyfill-context.js +0 -92
  491. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  492. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  493. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  494. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  495. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  496. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  497. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  498. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  499. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  500. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  501. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  502. package/dist/esm/index.js +0 -27
  503. package/dist/esm/index.js.map +0 -1
  504. package/dist/esm/init.js +0 -4
  505. package/dist/esm/init.js.map +0 -1
  506. package/dist/esm/types/webgl.js +0 -2
  507. package/dist/esm/types/webgl.js.map +0 -1
  508. package/dist/esm/types.js +0 -2
  509. package/dist/esm/types.js.map +0 -1
  510. package/dist/init.d.ts +0 -2
  511. package/dist/init.d.ts.map +0 -1
  512. package/dist/init.js +0 -4
  513. package/dist/init.js.map +0 -1
  514. package/dist/types/webgl.d.ts +0 -145
  515. package/dist/types/webgl.d.ts.map +0 -1
  516. package/dist/types/webgl.js +0 -2
  517. package/dist/types/webgl.js.map +0 -1
  518. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  519. package/src/adapter/helpers/attribute-utils.ts +0 -61
  520. package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
  521. package/src/bundle.ts +0 -4
  522. package/src/classic/buffer.ts +0 -474
  523. package/src/context/context/context-state.ts +0 -41
  524. package/src/context/context/create-context.ts +0 -110
  525. package/src/context/context/device-pixels.ts +0 -152
  526. package/src/init.ts +0 -4
  527. package/src/types/webgl.ts +0 -284
@@ -1,115 +1,84 @@
1
- import GL from '@luma.gl/constants';
2
1
  export function setUniform(gl, location, type, value) {
3
2
  const gl2 = gl;
4
-
5
- if (typeof value === 'number') {
6
- switch (type) {
7
- case GL.SAMPLER_2D:
8
- case GL.SAMPLER_CUBE:
9
- case GL.SAMPLER_3D:
10
- case GL.SAMPLER_2D_SHADOW:
11
- case GL.SAMPLER_2D_ARRAY:
12
- case GL.SAMPLER_2D_ARRAY_SHADOW:
13
- case GL.SAMPLER_CUBE_SHADOW:
14
- case GL.INT_SAMPLER_2D:
15
- case GL.INT_SAMPLER_3D:
16
- case GL.INT_SAMPLER_CUBE:
17
- case GL.INT_SAMPLER_2D_ARRAY:
18
- case GL.UNSIGNED_INT_SAMPLER_2D:
19
- case GL.UNSIGNED_INT_SAMPLER_3D:
20
- case GL.UNSIGNED_INT_SAMPLER_CUBE:
21
- case GL.UNSIGNED_INT_SAMPLER_2D_ARRAY:
22
- return gl.uniform1i(location, value);
23
- }
3
+ let uniformValue = value;
4
+ if (uniformValue === true) {
5
+ uniformValue = 1;
24
6
  }
25
-
26
- if (value === true) {
27
- value = 1;
7
+ if (uniformValue === false) {
8
+ uniformValue = 0;
28
9
  }
29
-
30
- if (value === false) {
31
- value = 1;
32
- }
33
-
34
- const arrayValue = typeof value === 'number' ? [value] : value;
35
-
10
+ const arrayValue = typeof uniformValue === 'number' ? [uniformValue] : uniformValue;
36
11
  switch (type) {
37
- case GL.FLOAT:
12
+ case 35678:
13
+ case 35680:
14
+ case 35679:
15
+ case 35682:
16
+ case 36289:
17
+ case 36292:
18
+ case 36293:
19
+ case 36298:
20
+ case 36299:
21
+ case 36300:
22
+ case 36303:
23
+ case 36306:
24
+ case 36307:
25
+ case 36308:
26
+ case 36311:
27
+ if (typeof value !== 'number') {
28
+ throw new Error('samplers must be set to integers');
29
+ }
30
+ return gl.uniform1i(location, value);
31
+ case 5126:
38
32
  return gl.uniform1fv(location, arrayValue);
39
-
40
- case GL.FLOAT_VEC2:
33
+ case 35664:
41
34
  return gl.uniform2fv(location, arrayValue);
42
-
43
- case GL.FLOAT_VEC3:
35
+ case 35665:
44
36
  return gl.uniform3fv(location, arrayValue);
45
-
46
- case GL.FLOAT_VEC4:
37
+ case 35666:
47
38
  return gl.uniform4fv(location, arrayValue);
48
-
49
- case GL.INT:
39
+ case 5124:
50
40
  return gl.uniform1iv(location, arrayValue);
51
-
52
- case GL.INT_VEC2:
41
+ case 35667:
53
42
  return gl.uniform2iv(location, arrayValue);
54
-
55
- case GL.INT_VEC3:
43
+ case 35668:
56
44
  return gl.uniform3iv(location, arrayValue);
57
-
58
- case GL.INT_VEC4:
45
+ case 35669:
59
46
  return gl.uniform4iv(location, arrayValue);
60
-
61
- case GL.BOOL:
47
+ case 35670:
62
48
  return gl.uniform1iv(location, arrayValue);
63
-
64
- case GL.BOOL_VEC2:
49
+ case 35671:
65
50
  return gl.uniform2iv(location, arrayValue);
66
-
67
- case GL.BOOL_VEC3:
51
+ case 35672:
68
52
  return gl.uniform3iv(location, arrayValue);
69
-
70
- case GL.BOOL_VEC4:
71
- gl.uniform4iv(location, arrayValue);
72
-
73
- case GL.UNSIGNED_INT:
53
+ case 35673:
54
+ return gl.uniform4iv(location, arrayValue);
55
+ case 5125:
74
56
  return gl2.uniform1uiv(location, arrayValue, 1);
75
-
76
- case GL.UNSIGNED_INT_VEC2:
57
+ case 36294:
77
58
  return gl2.uniform2uiv(location, arrayValue, 2);
78
-
79
- case GL.UNSIGNED_INT_VEC3:
59
+ case 36295:
80
60
  return gl2.uniform3uiv(location, arrayValue, 3);
81
-
82
- case GL.UNSIGNED_INT_VEC4:
61
+ case 36296:
83
62
  return gl2.uniform4uiv(location, arrayValue, 4);
84
-
85
- case GL.FLOAT_MAT2:
63
+ case 35674:
86
64
  return gl.uniformMatrix2fv(location, false, arrayValue);
87
-
88
- case GL.FLOAT_MAT3:
65
+ case 35675:
89
66
  return gl.uniformMatrix3fv(location, false, arrayValue);
90
-
91
- case GL.FLOAT_MAT4:
67
+ case 35676:
92
68
  return gl.uniformMatrix4fv(location, false, arrayValue);
93
-
94
- case GL.FLOAT_MAT2x3:
69
+ case 35685:
95
70
  return gl2.uniformMatrix2x3fv(location, false, arrayValue);
96
-
97
- case GL.FLOAT_MAT2x4:
71
+ case 35686:
98
72
  return gl2.uniformMatrix2x4fv(location, false, arrayValue);
99
-
100
- case GL.FLOAT_MAT3x2:
73
+ case 35687:
101
74
  return gl2.uniformMatrix3x2fv(location, false, arrayValue);
102
-
103
- case GL.FLOAT_MAT3x4:
75
+ case 35688:
104
76
  return gl2.uniformMatrix3x4fv(location, false, arrayValue);
105
-
106
- case GL.FLOAT_MAT4x2:
77
+ case 35689:
107
78
  return gl2.uniformMatrix4x2fv(location, false, arrayValue);
108
-
109
- case GL.FLOAT_MAT4x3:
79
+ case 35690:
110
80
  return gl2.uniformMatrix4x3fv(location, false, arrayValue);
111
81
  }
112
-
113
82
  throw new Error('Illegal uniform');
114
83
  }
115
84
  //# sourceMappingURL=set-uniform.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/adapter/helpers/set-uniform.ts"],"names":["GL","setUniform","gl","location","type","value","gl2","SAMPLER_2D","SAMPLER_CUBE","SAMPLER_3D","SAMPLER_2D_SHADOW","SAMPLER_2D_ARRAY","SAMPLER_2D_ARRAY_SHADOW","SAMPLER_CUBE_SHADOW","INT_SAMPLER_2D","INT_SAMPLER_3D","INT_SAMPLER_CUBE","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_2D_ARRAY","uniform1i","arrayValue","FLOAT","uniform1fv","FLOAT_VEC2","uniform2fv","FLOAT_VEC3","uniform3fv","FLOAT_VEC4","uniform4fv","INT","uniform1iv","INT_VEC2","uniform2iv","INT_VEC3","uniform3iv","INT_VEC4","uniform4iv","BOOL","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","UNSIGNED_INT","uniform1uiv","UNSIGNED_INT_VEC2","uniform2uiv","UNSIGNED_INT_VEC3","uniform3uiv","UNSIGNED_INT_VEC4","uniform4uiv","FLOAT_MAT2","uniformMatrix2fv","FLOAT_MAT3","uniformMatrix3fv","FLOAT_MAT4","uniformMatrix4fv","FLOAT_MAT2x3","uniformMatrix2x3fv","FLOAT_MAT2x4","uniformMatrix2x4fv","FLOAT_MAT3x2","uniformMatrix3x2fv","FLOAT_MAT3x4","uniformMatrix3x4fv","FLOAT_MAT4x2","uniformMatrix4x2fv","FLOAT_MAT4x3","uniformMatrix4x3fv","Error"],"mappings":"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","sourcesContent":["// Uniforms\nimport GL from '@luma.gl/constants';\n\n/** Set a raw uniform (without type conversion and caching) */\n/* eslint-disable max-len */\nexport function setUniform(\n gl: WebGLRenderingContext,\n location: WebGLUniformLocation,\n type: GL,\n value: number | Float32Array | Int32Array | Uint32Array\n): void {\n const gl2 = gl as WebGL2RenderingContext;\n\n if (typeof value === 'number') {\n // prettier-ignore\n switch (type) {\n // WebGL1 samplers\n case GL.SAMPLER_2D:\n case GL.SAMPLER_CUBE:\n // WebGL2 samplers\n case GL.SAMPLER_3D:\n case GL.SAMPLER_2D_SHADOW:\n case GL.SAMPLER_2D_ARRAY:\n case GL.SAMPLER_2D_ARRAY_SHADOW:\n case GL.SAMPLER_CUBE_SHADOW:\n case GL.INT_SAMPLER_2D:\n case GL.INT_SAMPLER_3D:\n case GL.INT_SAMPLER_CUBE:\n case GL.INT_SAMPLER_2D_ARRAY:\n case GL.UNSIGNED_INT_SAMPLER_2D:\n case GL.UNSIGNED_INT_SAMPLER_3D:\n case GL.UNSIGNED_INT_SAMPLER_CUBE:\n case GL.UNSIGNED_INT_SAMPLER_2D_ARRAY:\n return gl.uniform1i(location, value);\n }\n }\n\n // @ts-expect-error\n if (value === true) {\n value = 1;\n }\n // @ts-expect-error\n if (value === false) {\n value = 1;\n }\n const arrayValue = (typeof value === 'number') ? [value] : value;\n\n // prettier-ignore\n switch (type) {\n case GL.FLOAT: return gl.uniform1fv(location, arrayValue);\n case GL.FLOAT_VEC2: return gl.uniform2fv(location, arrayValue);\n case GL.FLOAT_VEC3: return gl.uniform3fv(location, arrayValue);\n case GL.FLOAT_VEC4: return gl.uniform4fv(location, arrayValue);\n\n case GL.INT: return gl.uniform1iv(location, arrayValue);\n case GL.INT_VEC2: return gl.uniform2iv(location, arrayValue);\n case GL.INT_VEC3: return gl.uniform3iv(location, arrayValue);\n case GL.INT_VEC4: return gl.uniform4iv(location, arrayValue);\n\n case GL.BOOL: return gl.uniform1iv(location, arrayValue);\n case GL.BOOL_VEC2: return gl.uniform2iv(location, arrayValue);\n case GL.BOOL_VEC3: return gl.uniform3iv(location, arrayValue);\n case GL.BOOL_VEC4: gl.uniform4iv(location, arrayValue);\n\n // WEBGL2 - unsigned integers\n case GL.UNSIGNED_INT: return gl2.uniform1uiv(location, arrayValue, 1);\n case GL.UNSIGNED_INT_VEC2: return gl2.uniform2uiv(location, arrayValue, 2);\n case GL.UNSIGNED_INT_VEC3: return gl2.uniform3uiv(location, arrayValue, 3);\n case GL.UNSIGNED_INT_VEC4: return gl2.uniform4uiv(location, arrayValue, 4);\n\n // WebGL2 - quadratic matrices\n // false: don't transpose the matrix\n case GL.FLOAT_MAT2: return gl.uniformMatrix2fv(location, false, arrayValue);\n case GL.FLOAT_MAT3: return gl.uniformMatrix3fv(location, false, arrayValue);\n case GL.FLOAT_MAT4: return gl.uniformMatrix4fv(location, false, arrayValue);\n\n // WebGL2 - rectangular matrices\n case GL.FLOAT_MAT2x3: return gl2.uniformMatrix2x3fv(location, false, arrayValue);\n case GL.FLOAT_MAT2x4: return gl2.uniformMatrix2x4fv(location, false, arrayValue);\n case GL.FLOAT_MAT3x2: return gl2.uniformMatrix3x2fv(location, false, arrayValue);\n case GL.FLOAT_MAT3x4: return gl2.uniformMatrix3x4fv(location, false, arrayValue);\n case GL.FLOAT_MAT4x2: return gl2.uniformMatrix4x2fv(location, false, arrayValue);\n case GL.FLOAT_MAT4x3: return gl2.uniformMatrix4x3fv(location, false, arrayValue);\n }\n\n throw new Error('Illegal uniform');\n}\n"],"file":"set-uniform.js"}
1
+ {"version":3,"file":"set-uniform.js","names":["setUniform","gl","location","type","value","gl2","uniformValue","arrayValue","Error","uniform1i","uniform1fv","uniform2fv","uniform3fv","uniform4fv","uniform1iv","uniform2iv","uniform3iv","uniform4iv","uniform1uiv","uniform2uiv","uniform3uiv","uniform4uiv","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","uniformMatrix2x3fv","uniformMatrix2x4fv","uniformMatrix3x2fv","uniformMatrix3x4fv","uniformMatrix4x2fv","uniformMatrix4x3fv"],"sources":["../../../src/adapter/helpers/set-uniform.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable */\n\n// Uniforms\nimport type {UniformValue} from '@luma.gl/core';\nimport {GL, GLCompositeType, GLSamplerType} from '@luma.gl/constants';\n\n/** Set a raw uniform (without type conversion and caching) */\n/* eslint-disable max-len */\nexport function setUniform(\n gl: WebGLRenderingContext,\n location: WebGLUniformLocation,\n type: GLCompositeType | GLSamplerType,\n value: UniformValue\n): void {\n const gl2 = gl as WebGL2RenderingContext;\n\n // Prepare the value for WebGL setters\n let uniformValue = value;\n if (uniformValue === true) {\n uniformValue = 1;\n }\n if (uniformValue === false) {\n uniformValue = 0;\n }\n const arrayValue = typeof uniformValue === 'number' ? [uniformValue] : uniformValue;\n\n // prettier-ignore\n switch (type) {\n // WebGL1 samplers\n case GL.SAMPLER_2D:\n case GL.SAMPLER_CUBE:\n // WebGL2 samplers\n case GL.SAMPLER_3D:\n case GL.SAMPLER_2D_SHADOW:\n case GL.SAMPLER_2D_ARRAY:\n case GL.SAMPLER_2D_ARRAY_SHADOW:\n case GL.SAMPLER_CUBE_SHADOW:\n case GL.INT_SAMPLER_2D:\n case GL.INT_SAMPLER_3D:\n case GL.INT_SAMPLER_CUBE:\n case GL.INT_SAMPLER_2D_ARRAY:\n case GL.UNSIGNED_INT_SAMPLER_2D:\n case GL.UNSIGNED_INT_SAMPLER_3D:\n case GL.UNSIGNED_INT_SAMPLER_CUBE:\n case GL.UNSIGNED_INT_SAMPLER_2D_ARRAY:\n if (typeof value !== 'number') {\n throw new Error('samplers must be set to integers');\n }\n return gl.uniform1i(location, value);\n\n case GL.FLOAT: return gl.uniform1fv(location, arrayValue);\n case GL.FLOAT_VEC2: return gl.uniform2fv(location, arrayValue);\n case GL.FLOAT_VEC3: return gl.uniform3fv(location, arrayValue);\n case GL.FLOAT_VEC4: return gl.uniform4fv(location, arrayValue);\n\n case GL.INT: return gl.uniform1iv(location, arrayValue);\n case GL.INT_VEC2: return gl.uniform2iv(location, arrayValue);\n case GL.INT_VEC3: return gl.uniform3iv(location, arrayValue);\n case GL.INT_VEC4: return gl.uniform4iv(location, arrayValue);\n\n case GL.BOOL: return gl.uniform1iv(location, arrayValue);\n case GL.BOOL_VEC2: return gl.uniform2iv(location, arrayValue);\n case GL.BOOL_VEC3: return gl.uniform3iv(location, arrayValue);\n case GL.BOOL_VEC4: return gl.uniform4iv(location, arrayValue);\n\n // WEBGL2 - unsigned integers\n case GL.UNSIGNED_INT: return gl2.uniform1uiv(location, arrayValue, 1);\n case GL.UNSIGNED_INT_VEC2: return gl2.uniform2uiv(location, arrayValue, 2);\n case GL.UNSIGNED_INT_VEC3: return gl2.uniform3uiv(location, arrayValue, 3);\n case GL.UNSIGNED_INT_VEC4: return gl2.uniform4uiv(location, arrayValue, 4);\n\n // WebGL2 - quadratic matrices\n // false: don't transpose the matrix\n case GL.FLOAT_MAT2: return gl.uniformMatrix2fv(location, false, arrayValue);\n case GL.FLOAT_MAT3: return gl.uniformMatrix3fv(location, false, arrayValue);\n case GL.FLOAT_MAT4: return gl.uniformMatrix4fv(location, false, arrayValue);\n\n // WebGL2 - rectangular matrices\n case GL.FLOAT_MAT2x3: return gl2.uniformMatrix2x3fv(location, false, arrayValue);\n case GL.FLOAT_MAT2x4: return gl2.uniformMatrix2x4fv(location, false, arrayValue);\n case GL.FLOAT_MAT3x2: return gl2.uniformMatrix3x2fv(location, false, arrayValue);\n case GL.FLOAT_MAT3x4: return gl2.uniformMatrix3x4fv(location, false, arrayValue);\n case GL.FLOAT_MAT4x2: return gl2.uniformMatrix4x2fv(location, false, arrayValue);\n case GL.FLOAT_MAT4x3: return gl2.uniformMatrix4x3fv(location, false, arrayValue);\n }\n\n throw new Error('Illegal uniform');\n}\n"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { GL, GLPrimitiveTopology, GLPrimitive } from '@luma.gl/constants';
2
+ import { PrimitiveTopology } from '@luma.gl/core';
3
+ export declare function getPrimitiveDrawMode(drawMode: GLPrimitiveTopology): GLPrimitive;
4
+ export declare function getPrimitiveCount(options: {
5
+ drawMode: GLPrimitiveTopology;
6
+ vertexCount: number;
7
+ }): number;
8
+ export declare function getVertexCount(options: {
9
+ drawMode: GLPrimitiveTopology;
10
+ vertexCount: number;
11
+ }): number;
12
+ /** Get the primitive type for draw */
13
+ export declare function getGLDrawMode(topology: PrimitiveTopology): GL.POINTS | GL.LINES | GL.LINE_STRIP | GL.LINE_LOOP | GL.TRIANGLES | GL.TRIANGLE_STRIP | GL.TRIANGLE_FAN;
14
+ /** Get the primitive type for transform feedback */
15
+ export declare function getGLPrimitive(topology: PrimitiveTopology): GL.POINTS | GL.LINES | GL.TRIANGLES;
16
+ //# sourceMappingURL=webgl-topology-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-topology-utils.d.ts","sourceRoot":"","sources":["../../../src/adapter/helpers/webgl-topology-utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,EAAE,EAAE,mBAAmB,EAAE,WAAW,EAAC,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAGhD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,WAAW,CAmB/E;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IAAC,QAAQ,EAAE,mBAAmB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,GAAG,MAAM,CAkBvG;AAGD,wBAAgB,cAAc,CAAC,OAAO,EAAE;IAAC,QAAQ,EAAE,mBAAmB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAC,GAAG,MAAM,CAapG;AAED,sCAAsC;AACtC,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,iBAAiB,GAEzB,EAAE,CAAC,MAAM,GACT,EAAE,CAAC,KAAK,GACR,EAAE,CAAC,UAAU,GACb,EAAE,CAAC,SAAS,GACZ,EAAE,CAAC,SAAS,GACZ,EAAE,CAAC,cAAc,GACjB,EAAE,CAAC,YAAY,CAYlB;AAED,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAY/F"}
@@ -0,0 +1,103 @@
1
+ export function getPrimitiveDrawMode(drawMode) {
2
+ switch (drawMode) {
3
+ case 0:
4
+ return 0;
5
+ case 1:
6
+ return 1;
7
+ case 3:
8
+ return 1;
9
+ case 2:
10
+ return 1;
11
+ case 4:
12
+ return 4;
13
+ case 5:
14
+ return 4;
15
+ case 6:
16
+ return 4;
17
+ default:
18
+ throw new Error('drawMode');
19
+ }
20
+ }
21
+ export function getPrimitiveCount(options) {
22
+ const {
23
+ drawMode,
24
+ vertexCount
25
+ } = options;
26
+ switch (drawMode) {
27
+ case 0:
28
+ case 2:
29
+ return vertexCount;
30
+ case 1:
31
+ return vertexCount / 2;
32
+ case 3:
33
+ return vertexCount - 1;
34
+ case 4:
35
+ return vertexCount / 3;
36
+ case 5:
37
+ case 6:
38
+ return vertexCount - 2;
39
+ default:
40
+ throw new Error('drawMode');
41
+ }
42
+ }
43
+ export function getVertexCount(options) {
44
+ const {
45
+ drawMode,
46
+ vertexCount
47
+ } = options;
48
+ const primitiveCount = getPrimitiveCount({
49
+ drawMode,
50
+ vertexCount
51
+ });
52
+ switch (getPrimitiveDrawMode(drawMode)) {
53
+ case 0:
54
+ return primitiveCount;
55
+ case 1:
56
+ return primitiveCount * 2;
57
+ case 4:
58
+ return primitiveCount * 3;
59
+ default:
60
+ throw new Error('drawMode');
61
+ }
62
+ }
63
+ export function getGLDrawMode(topology) {
64
+ switch (topology) {
65
+ case 'point-list':
66
+ return 0;
67
+ case 'line-list':
68
+ return 1;
69
+ case 'line-strip':
70
+ return 3;
71
+ case 'line-loop-webgl':
72
+ return 2;
73
+ case 'triangle-list':
74
+ return 4;
75
+ case 'triangle-strip':
76
+ return 5;
77
+ case 'triangle-fan-webgl':
78
+ return 6;
79
+ default:
80
+ throw new Error(topology);
81
+ }
82
+ }
83
+ export function getGLPrimitive(topology) {
84
+ switch (topology) {
85
+ case 'point-list':
86
+ return 0;
87
+ case 'line-list':
88
+ return 1;
89
+ case 'line-strip':
90
+ return 1;
91
+ case 'line-loop-webgl':
92
+ return 1;
93
+ case 'triangle-list':
94
+ return 4;
95
+ case 'triangle-strip':
96
+ return 4;
97
+ case 'triangle-fan-webgl':
98
+ return 4;
99
+ default:
100
+ throw new Error(topology);
101
+ }
102
+ }
103
+ //# sourceMappingURL=webgl-topology-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-topology-utils.js","names":["getPrimitiveDrawMode","drawMode","Error","getPrimitiveCount","options","vertexCount","getVertexCount","primitiveCount","getGLDrawMode","topology","getGLPrimitive"],"sources":["../../../src/adapter/helpers/webgl-topology-utils.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport {GL, GLPrimitiveTopology, GLPrimitive} from '@luma.gl/constants';\nimport {PrimitiveTopology} from '@luma.gl/core';\n\n// Counts the number of complete primitives given a number of vertices and a drawMode\nexport function getPrimitiveDrawMode(drawMode: GLPrimitiveTopology): GLPrimitive {\n switch (drawMode) {\n case GL.POINTS:\n return GL.POINTS;\n case GL.LINES:\n return GL.LINES;\n case GL.LINE_STRIP:\n return GL.LINES;\n case GL.LINE_LOOP:\n return GL.LINES;\n case GL.TRIANGLES:\n return GL.TRIANGLES;\n case GL.TRIANGLE_STRIP:\n return GL.TRIANGLES;\n case GL.TRIANGLE_FAN:\n return GL.TRIANGLES;\n default:\n throw new Error('drawMode');\n }\n}\n\n// Counts the number of complete \"primitives\" given a number of vertices and a drawMode\nexport function getPrimitiveCount(options: {drawMode: GLPrimitiveTopology, vertexCount: number}): number {\n const {drawMode, vertexCount} = options;\n switch (drawMode) {\n case GL.POINTS:\n case GL.LINE_LOOP:\n return vertexCount;\n case GL.LINES:\n return vertexCount / 2;\n case GL.LINE_STRIP:\n return vertexCount - 1;\n case GL.TRIANGLES:\n return vertexCount / 3;\n case GL.TRIANGLE_STRIP:\n case GL.TRIANGLE_FAN:\n return vertexCount - 2;\n default:\n throw new Error('drawMode');\n }\n}\n\n// Counts the number of vertices after splitting the vertex stream into separate \"primitives\"\nexport function getVertexCount(options: {drawMode: GLPrimitiveTopology, vertexCount: number}): number {\n const {drawMode, vertexCount} = options;\n const primitiveCount = getPrimitiveCount({drawMode, vertexCount});\n switch (getPrimitiveDrawMode(drawMode)) {\n case GL.POINTS:\n return primitiveCount;\n case GL.LINES:\n return primitiveCount * 2;\n case GL.TRIANGLES:\n return primitiveCount * 3;\n default:\n throw new Error('drawMode');\n }\n}\n\n/** Get the primitive type for draw */\nexport function getGLDrawMode(\n topology: PrimitiveTopology\n):\n | GL.POINTS\n | GL.LINES\n | GL.LINE_STRIP\n | GL.LINE_LOOP\n | GL.TRIANGLES\n | GL.TRIANGLE_STRIP\n | GL.TRIANGLE_FAN {\n // prettier-ignore\n switch (topology) {\n case 'point-list': return GL.POINTS;\n case 'line-list': return GL.LINES;\n case 'line-strip': return GL.LINE_STRIP;\n case 'line-loop-webgl': return GL.LINE_LOOP;\n case 'triangle-list': return GL.TRIANGLES;\n case 'triangle-strip': return GL.TRIANGLE_STRIP;\n case 'triangle-fan-webgl': return GL.TRIANGLE_FAN;\n default: throw new Error(topology);\n }\n}\n\n/** Get the primitive type for transform feedback */\nexport function getGLPrimitive(topology: PrimitiveTopology): GL.POINTS | GL.LINES | GL.TRIANGLES {\n // prettier-ignore\n switch (topology) {\n case 'point-list': return GL.POINTS;\n case 'line-list': return GL.LINES;\n case 'line-strip': return GL.LINES;\n case 'line-loop-webgl': return GL.LINES;\n case 'triangle-list': return GL.TRIANGLES;\n case 'triangle-strip': return GL.TRIANGLES;\n case 'triangle-fan-webgl': return GL.TRIANGLES;\n default: throw new Error(topology);\n }\n}\n"],"mappings":"AAOA,OAAO,SAASA,oBAAoBA,CAACC,QAA6B,EAAe;EAC/E,QAAQA,QAAQ;IACd;MACE;IACF;MACE;IACF;MACE;IACF;MACE;IACF;MACE;IACF;MACE;IACF;MACE;IACF;MACE,MAAM,IAAIC,KAAK,CAAC,UAAU,CAAC;EAC/B;AACF;AAGA,OAAO,SAASC,iBAAiBA,CAACC,OAA6D,EAAU;EACvG,MAAM;IAACH,QAAQ;IAAEI;EAAW,CAAC,GAAGD,OAAO;EACvC,QAAQH,QAAQ;IACd;IACA;MACE,OAAOI,WAAW;IACpB;MACE,OAAOA,WAAW,GAAG,CAAC;IACxB;MACE,OAAOA,WAAW,GAAG,CAAC;IACxB;MACE,OAAOA,WAAW,GAAG,CAAC;IACxB;IACA;MACE,OAAOA,WAAW,GAAG,CAAC;IACxB;MACE,MAAM,IAAIH,KAAK,CAAC,UAAU,CAAC;EAC/B;AACF;AAGA,OAAO,SAASI,cAAcA,CAACF,OAA6D,EAAU;EACpG,MAAM;IAACH,QAAQ;IAAEI;EAAW,CAAC,GAAGD,OAAO;EACvC,MAAMG,cAAc,GAAGJ,iBAAiB,CAAC;IAACF,QAAQ;IAAEI;EAAW,CAAC,CAAC;EACjE,QAAQL,oBAAoB,CAACC,QAAQ,CAAC;IACpC;MACE,OAAOM,cAAc;IACvB;MACE,OAAOA,cAAc,GAAG,CAAC;IAC3B;MACE,OAAOA,cAAc,GAAG,CAAC;IAC3B;MACE,MAAM,IAAIL,KAAK,CAAC,UAAU,CAAC;EAC/B;AACF;AAGA,OAAO,SAASM,aAAaA,CAC3BC,QAA2B,EAQT;EAElB,QAAQA,QAAQ;IACd,KAAK,YAAY;MAAE;IACnB,KAAK,WAAW;MAAE;IAClB,KAAK,YAAY;MAAE;IACnB,KAAK,iBAAiB;MAAE;IACxB,KAAK,eAAe;MAAE;IACtB,KAAK,gBAAgB;MAAE;IACvB,KAAK,oBAAoB;MAAE;IAC3B;MAAS,MAAM,IAAIP,KAAK,CAACO,QAAQ,CAAC;EACpC;AACF;AAGA,OAAO,SAASC,cAAcA,CAACD,QAA2B,EAAuC;EAE/F,QAAQA,QAAQ;IACd,KAAK,YAAY;MAAE;IACnB,KAAK,WAAW;MAAE;IAClB,KAAK,YAAY;MAAE;IACnB,KAAK,iBAAiB;MAAE;IACxB,KAAK,eAAe;MAAE;IACtB,KAAK,gBAAgB;MAAE;IACvB,KAAK,oBAAoB;MAAE;IAC3B;MAAS,MAAM,IAAIP,KAAK,CAACO,QAAQ,CAAC;EACpC;AACF"}
@@ -1,5 +1,3 @@
1
- import GL from '@luma.gl/constants';
1
+ import { GL } from '@luma.gl/constants';
2
2
  export declare function getKeyValue(gl: WebGLRenderingContext, name: string | GL): GL;
3
- export declare function getKey(gl: WebGLRenderingContext, value: any): string;
4
- export declare function getKeyType(gl: WebGLRenderingContext, value: any): string;
5
3
  //# sourceMappingURL=constants-to-keys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants-to-keys.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/constants-to-keys.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGpC,wBAAgB,WAAW,CAAC,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE,CAiB5E;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM,CAUpE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,GAAG,MAAM,CASxE"}
1
+ {"version":3,"file":"constants-to-keys.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/constants-to-keys.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AAGtC,wBAAgB,WAAW,CAAC,EAAE,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,GAAG,EAAE,CAkB5E"}
@@ -1,42 +1,15 @@
1
- import { assert } from '@luma.gl/api';
1
+ import { assert } from '@luma.gl/core';
2
2
  export function getKeyValue(gl, name) {
3
3
  if (typeof name !== 'string') {
4
4
  return name;
5
5
  }
6
-
7
6
  const number = Number(name);
8
-
9
7
  if (!isNaN(number)) {
10
8
  return number;
11
9
  }
12
-
13
10
  name = name.replace(/^.*\./, '');
14
11
  const value = gl[name];
15
- assert(value !== undefined, "Accessing undefined constant GL.".concat(name));
12
+ assert(value !== undefined, `Accessing undefined constant GL.${name}`);
16
13
  return value;
17
14
  }
18
- export function getKey(gl, value) {
19
- gl = gl.gl || gl;
20
- value = Number(value);
21
-
22
- for (const key in gl) {
23
- if (gl[key] === value) {
24
- return "GL.".concat(key);
25
- }
26
- }
27
-
28
- return String(value);
29
- }
30
- export function getKeyType(gl, value) {
31
- assert(value !== undefined, 'undefined key');
32
- value = Number(value);
33
-
34
- for (const key in gl) {
35
- if (gl[key] === value) {
36
- return "GL.".concat(key);
37
- }
38
- }
39
-
40
- return String(value);
41
- }
42
15
  //# sourceMappingURL=constants-to-keys.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/adapter/objects/constants-to-keys.ts"],"names":["assert","getKeyValue","gl","name","number","Number","isNaN","replace","value","undefined","getKey","key","String","getKeyType"],"mappings":"AAAA,SAAQA,MAAR,QAAqB,cAArB;AAIA,OAAO,SAASC,WAAT,CAAqBC,EAArB,EAAgDC,IAAhD,EAAuE;AAE5E,MAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AAC5B,WAAOA,IAAP;AACD;;AAGD,QAAMC,MAAM,GAAGC,MAAM,CAACF,IAAD,CAArB;;AACA,MAAI,CAACG,KAAK,CAACF,MAAD,CAAV,EAAoB;AAClB,WAAOA,MAAP;AACD;;AAGDD,EAAAA,IAAI,GAAGA,IAAI,CAACI,OAAL,CAAa,OAAb,EAAsB,EAAtB,CAAP;AACA,QAAMC,KAAK,GAAGN,EAAE,CAACC,IAAD,CAAhB;AACAH,EAAAA,MAAM,CAACQ,KAAK,KAAKC,SAAX,4CAAyDN,IAAzD,EAAN;AACA,SAAOK,KAAP;AACD;AAED,OAAO,SAASE,MAAT,CAAgBR,EAAhB,EAA2CM,KAA3C,EAA+D;AAEpEN,EAAAA,EAAE,GAAGA,EAAE,CAACA,EAAH,IAASA,EAAd;AACAM,EAAAA,KAAK,GAAGH,MAAM,CAACG,KAAD,CAAd;;AACA,OAAK,MAAMG,GAAX,IAAkBT,EAAlB,EAAsB;AACpB,QAAIA,EAAE,CAACS,GAAD,CAAF,KAAYH,KAAhB,EAAuB;AACrB,0BAAaG,GAAb;AACD;AACF;;AACD,SAAOC,MAAM,CAACJ,KAAD,CAAb;AACD;AAED,OAAO,SAASK,UAAT,CAAoBX,EAApB,EAA+CM,KAA/C,EAAmE;AACxER,EAAAA,MAAM,CAACQ,KAAK,KAAKC,SAAX,EAAsB,eAAtB,CAAN;AACAD,EAAAA,KAAK,GAAGH,MAAM,CAACG,KAAD,CAAd;;AACA,OAAK,MAAMG,GAAX,IAAkBT,EAAlB,EAAsB;AACpB,QAAIA,EAAE,CAACS,GAAD,CAAF,KAAYH,KAAhB,EAAuB;AACrB,0BAAaG,GAAb;AACD;AACF;;AACD,SAAOC,MAAM,CAACJ,KAAD,CAAb;AACD","sourcesContent":["import {assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\n\n// Resolve a WebGL enumeration name (returns itself if already a number)\nexport function getKeyValue(gl: WebGLRenderingContext, name: string | GL): GL {\n // If not a string, return (assume number)\n if (typeof name !== 'string') {\n return name;\n }\n\n // If string converts to number, return number\n const number = Number(name);\n if (!isNaN(number)) {\n return number;\n }\n\n // Look up string, after removing any 'GL.' or 'gl.' prefix\n name = name.replace(/^.*\\./, '');\n const value = gl[name];\n assert(value !== undefined, `Accessing undefined constant GL.${name}`);\n return value;\n}\n\nexport function getKey(gl: WebGLRenderingContext, value: any): string {\n // @ts-expect-error \n gl = gl.gl || gl;\n value = Number(value);\n for (const key in gl) {\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n\nexport function getKeyType(gl: WebGLRenderingContext, value: any): string {\n assert(value !== undefined, 'undefined key');\n value = Number(value);\n for (const key in gl) {\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n"],"file":"constants-to-keys.js"}
1
+ {"version":3,"file":"constants-to-keys.js","names":["assert","getKeyValue","gl","name","number","Number","isNaN","replace","value","undefined"],"sources":["../../../src/adapter/objects/constants-to-keys.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport {assert} from '@luma.gl/core';\nimport {GL} from '@luma.gl/constants';\n\n// Resolve a WebGL enumeration name (returns itself if already a number)\nexport function getKeyValue(gl: WebGLRenderingContext, name: string | GL): GL {\n // If not a string, return (assume number)\n if (typeof name !== 'string') {\n return name;\n }\n\n // If string converts to number, return number\n const number = Number(name);\n if (!isNaN(number)) {\n return number;\n }\n\n // Look up string, after removing any 'GL.' or 'gl.' prefix\n name = name.replace(/^.*\\./, '');\n // @ts-ignore expect-error depends on settings\n const value = gl[name];\n assert(value !== undefined, `Accessing undefined constant GL.${name}`);\n return value;\n}\n"],"mappings":"AAGA,SAAQA,MAAM,QAAO,eAAe;AAIpC,OAAO,SAASC,WAAWA,CAACC,EAAyB,EAAEC,IAAiB,EAAM;EAE5E,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,OAAOA,IAAI;EACb;EAGA,MAAMC,MAAM,GAAGC,MAAM,CAACF,IAAI,CAAC;EAC3B,IAAI,CAACG,KAAK,CAACF,MAAM,CAAC,EAAE;IAClB,OAAOA,MAAM;EACf;EAGAD,IAAI,GAAGA,IAAI,CAACI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;EAEhC,MAAMC,KAAK,GAAGN,EAAE,CAACC,IAAI,CAAC;EACtBH,MAAM,CAACQ,KAAK,KAAKC,SAAS,EAAG,mCAAkCN,IAAK,EAAC,CAAC;EACtE,OAAOK,KAAK;AACd"}
@@ -1,8 +1,9 @@
1
- import { ResourceProps } from '@luma.gl/api';
2
- import WebGLDevice from '../webgl-device';
3
- import WebGLResource from './webgl-resource';
4
- export declare type RenderbufferProps = ResourceProps & {
5
- format: number;
1
+ import { ResourceProps, TextureFormat } from '@luma.gl/core';
2
+ import { GL } from '@luma.gl/constants';
3
+ import { WebGLDevice } from '../webgl-device';
4
+ import { WebGLResource } from './webgl-resource';
5
+ export type RenderbufferProps = ResourceProps & {
6
+ format: TextureFormat;
6
7
  width?: number;
7
8
  height?: number;
8
9
  samples?: number;
@@ -17,22 +18,24 @@ export declare type RenderbufferProps = ResourceProps & {
17
18
  * use Textures instead.
18
19
  * Renderbuffer objects also natively accommodate Multisampling (MSAA).
19
20
  */
20
- export default class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps> {
21
+ export declare class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps> {
22
+ static readonly defaultProps: Required<RenderbufferProps>;
21
23
  get [Symbol.toStringTag](): string;
22
24
  get width(): number;
23
25
  get height(): number;
24
- get format(): number;
26
+ get format(): TextureFormat;
25
27
  get samples(): number;
26
- static isSupported(gl: WebGLRenderingContext, options?: {
27
- format?: number;
28
- }): boolean;
28
+ get attachment(): void;
29
+ /** WebGL format constant */
30
+ glFormat: GL;
31
+ static isTextureFormatSupported(device: WebGLDevice, format: TextureFormat): boolean;
29
32
  constructor(device: WebGLDevice, props: RenderbufferProps);
30
33
  resize(size: {
31
34
  width: number;
32
35
  height: number;
33
- }): this;
36
+ }): void;
34
37
  /** Creates and initializes a renderbuffer object's data store */
35
- protected _initialize(props: Required<RenderbufferProps>): this;
38
+ protected _initialize(props: Required<RenderbufferProps>): void;
36
39
  _createHandle(): WebGLRenderbuffer;
37
40
  _deleteHandle(): void;
38
41
  _bindHandle(handle: WEBGLRenderbuffer): void;
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-renderbuffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-renderbuffer.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,aAAa,EAAC,MAAM,cAAc,CAAC;AAEnD,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAK7C,oBAAY,iBAAiB,GAAG,aAAa,GAAG;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAYF;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IAC7E,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAA2B;IAE7D,IAAI,KAAK,IAAI,MAAM,CAA6B;IAChD,IAAI,MAAM,IAAI,MAAM,CAA8B;IAClD,IAAI,MAAM,IAAI,MAAM,CAA+B;IACnD,IAAI,OAAO,IAAI,MAAM,CAA+B;IAEpD,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO;gBAIvE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB;IAKzD,MAAM,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAWnD,iEAAiE;IACjE,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC;IA0BxD,aAAa;IAIb,aAAa,IAAI,IAAI;IAKrB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;CAG7C"}
1
+ {"version":3,"file":"webgl-renderbuffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-renderbuffer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAS,aAAa,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AACnE,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,aAAa,EAAC,MAAM,kBAAkB,CAAC;AAI/C,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,iBAAiB,CAAC;IACrE,gBAAyB,YAAY,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAQhE;IAEF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAA2B;IAEtE,IAAI,KAAK,IAAI,MAAM,CAA6B;IAChD,IAAI,MAAM,IAAI,MAAM,CAA8B;IAClD,IAAI,MAAM,IAAI,aAAa,CAA8B;IACzD,IAAI,OAAO,IAAI,MAAM,CAA+B;IACpD,IAAI,UAAU,SAAc;IAE5B,4BAA4B;IAC5B,QAAQ,EAAE,EAAE,CAAC;IAEb,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO;gBAIxE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB;IAUzD,MAAM,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IAUnD,iEAAiE;IACjE,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAuBtD,aAAa;IAIb,aAAa,IAAI,IAAI;IAKrB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;CAGtD"}
@@ -1,60 +1,50 @@
1
- import { assert } from '@luma.gl/api';
2
- import GL from '@luma.gl/constants';
3
- import WebGLResource from './webgl-resource';
4
- import { isRenderbufferFormatSupported, getRenderbufferFormatBytesPerPixel } from '../converters/renderbuffer-formats';
5
- const DEFAULT_RENDERBUFFER_PROPS = {
6
- id: undefined,
7
- handle: undefined,
8
- userData: undefined,
9
- format: 0,
10
- width: 1,
11
- height: 1,
12
- samples: 0
13
- };
14
- export default class WEBGLRenderbuffer extends WebGLResource {
15
- get [Symbol.toStringTag]() {
1
+ let _Symbol$toStringTag;
2
+ import { assert } from '@luma.gl/core';
3
+ import { WebGLResource } from "./webgl-resource.js";
4
+ import { isRenderbufferFormatSupported } from "../converters/texture-formats.js";
5
+ import { convertTextureFormatToGL, getTextureFormatBytesPerPixel } from "../converters/texture-formats.js";
6
+ _Symbol$toStringTag = Symbol.toStringTag;
7
+ export class WEBGLRenderbuffer extends WebGLResource {
8
+ get [_Symbol$toStringTag]() {
16
9
  return 'Renderbuffer';
17
10
  }
18
-
19
11
  get width() {
20
12
  return this.props.width;
21
13
  }
22
-
23
14
  get height() {
24
15
  return this.props.height;
25
16
  }
26
-
27
17
  get format() {
28
18
  return this.props.format;
29
19
  }
30
-
31
20
  get samples() {
32
21
  return this.props.samples;
33
22
  }
34
-
35
- static isSupported(gl, options) {
36
- return !options.format || isRenderbufferFormatSupported(gl, options.format);
23
+ get attachment() {
24
+ return;
25
+ }
26
+ static isTextureFormatSupported(device, format) {
27
+ return isRenderbufferFormatSupported(device.gl, format);
37
28
  }
38
-
39
29
  constructor(device, props) {
40
- super(device, props, DEFAULT_RENDERBUFFER_PROPS);
41
-
30
+ if (typeof props.format === 'number') {
31
+ throw new Error('Renderbuffer');
32
+ }
33
+ super(device, props, WEBGLRenderbuffer.defaultProps);
34
+ this.glFormat = void 0;
35
+ this.glFormat = convertTextureFormatToGL(this.props.format, device.isWebGL2);
42
36
  this._initialize(this.props);
43
37
  }
44
-
45
38
  resize(size) {
46
39
  if (size.width !== this.width || size.height !== this.height) {
47
- Object.assign(this.props, { ...size,
40
+ Object.assign(this.props, {
41
+ ...size,
48
42
  format: this.format,
49
43
  samples: this.samples
50
44
  });
51
-
52
45
  this._initialize(this.props);
53
46
  }
54
-
55
- return this;
56
47
  }
57
-
58
48
  _initialize(props) {
59
49
  const {
60
50
  format,
@@ -64,31 +54,33 @@ export default class WEBGLRenderbuffer extends WebGLResource {
64
54
  } = props;
65
55
  assert(format, 'Needs format');
66
56
  this.trackDeallocatedMemory();
67
- this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
68
-
57
+ this.gl.bindRenderbuffer(36161, this.handle);
69
58
  if (samples !== 0 && this.device.isWebGL2) {
70
- this.gl.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, format, width, height);
59
+ this.gl2.renderbufferStorageMultisample(36161, samples, this.glFormat, width, height);
71
60
  } else {
72
- this.gl.renderbufferStorage(GL.RENDERBUFFER, format, width, height);
61
+ this.gl.renderbufferStorage(36161, this.glFormat, width, height);
73
62
  }
74
-
75
- this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);
76
- this.trackAllocatedMemory(width * height * (samples || 1) * getRenderbufferFormatBytesPerPixel(format));
77
- return this;
63
+ this.gl.bindRenderbuffer(36161, null);
64
+ this.trackAllocatedMemory(width * height * (samples || 1) * getTextureFormatBytesPerPixel(this.glFormat, this.device.isWebGL2));
78
65
  }
79
-
80
66
  _createHandle() {
81
67
  return this.gl.createRenderbuffer();
82
68
  }
83
-
84
69
  _deleteHandle() {
85
70
  this.gl.deleteRenderbuffer(this.handle);
86
71
  this.trackDeallocatedMemory();
87
72
  }
88
-
89
73
  _bindHandle(handle) {
90
- this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);
74
+ this.gl.bindRenderbuffer(36161, handle);
91
75
  }
92
-
93
76
  }
77
+ WEBGLRenderbuffer.defaultProps = {
78
+ id: undefined,
79
+ handle: undefined,
80
+ userData: undefined,
81
+ format: undefined,
82
+ width: 1,
83
+ height: 1,
84
+ samples: 0
85
+ };
94
86
  //# sourceMappingURL=webgl-renderbuffer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/adapter/objects/webgl-renderbuffer.ts"],"names":["assert","GL","WebGLResource","isRenderbufferFormatSupported","getRenderbufferFormatBytesPerPixel","DEFAULT_RENDERBUFFER_PROPS","id","undefined","handle","userData","format","width","height","samples","WEBGLRenderbuffer","Symbol","toStringTag","props","isSupported","gl","options","constructor","device","_initialize","resize","size","Object","assign","trackDeallocatedMemory","bindRenderbuffer","RENDERBUFFER","isWebGL2","renderbufferStorageMultisample","renderbufferStorage","trackAllocatedMemory","_createHandle","createRenderbuffer","_deleteHandle","deleteRenderbuffer","_bindHandle"],"mappings":"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","sourcesContent":["/* eslint-disable no-inline-comments */\nimport {assert, ResourceProps} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport WebGLDevice from '../webgl-device';\nimport WebGLResource from './webgl-resource';\nimport {\n isRenderbufferFormatSupported, getRenderbufferFormatBytesPerPixel\n} from '../converters/renderbuffer-formats';\n\nexport type RenderbufferProps = ResourceProps & {\n format: number;\n width?: number;\n height?: number;\n samples?: number;\n};\n\nconst DEFAULT_RENDERBUFFER_PROPS: Required<RenderbufferProps> = {\n id: undefined,\n handle: undefined,\n userData: undefined,\n format: 0,\n width: 1, \n height: 1, \n samples: 0\n};\n\n/**\n * Renderbuffers are GPU objects that contain images.\n * In contrast to Textures they are optimized for use as render targets, with Framebuffers.\n * while Textures may not be, and are the logical choice when\n * you do not need to sample (i.e. in a post-pass shader)\n * from the produced image. If you need to resample\n * (such as when reading depth back in a second shader pass),\n * use Textures instead.\n * Renderbuffer objects also natively accommodate Multisampling (MSAA).\n */\nexport default class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps> {\n get [Symbol.toStringTag](): string { return 'Renderbuffer'; }\n\n get width(): number { return this.props.width; }\n get height(): number { return this.props.height; }\n get format(): number { return this.props.format; }\n get samples(): number { return this.props.samples; }\n\n static isSupported(gl: WebGLRenderingContext, options?: {format?: number}): boolean {\n return !options.format || isRenderbufferFormatSupported(gl, options.format);\n }\n\n constructor(device: WebGLDevice, props: RenderbufferProps) {\n super(device, props, DEFAULT_RENDERBUFFER_PROPS);\n this._initialize(this.props);\n }\n\n resize(size: {width: number, height: number}): this {\n // Don't resize if width/height haven't changed\n if (size.width !== this.width || size.height !== this.height) {\n Object.assign(this.props, {...size, format: this.format, samples: this.samples});\n this._initialize(this.props);\n }\n return this;\n }\n\n // PRIVATE METHODS\n\n /** Creates and initializes a renderbuffer object's data store */\n protected _initialize(props: Required<RenderbufferProps>) {\n const {format, width, height, samples} = props;\n assert(format, 'Needs format');\n\n this.trackDeallocatedMemory();\n\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);\n\n if (samples !== 0 && this.device.isWebGL2) {\n // @ts-expect-error\n this.gl.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, format, width, height);\n } else {\n this.gl.renderbufferStorage(GL.RENDERBUFFER, format, width, height);\n }\n\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);\n\n this.trackAllocatedMemory(\n width * height * (samples || 1) * getRenderbufferFormatBytesPerPixel(format)\n );\n\n return this;\n }\n\n // RESOURCE IMPLEMENTATION\n\n _createHandle() {\n return this.gl.createRenderbuffer();\n }\n\n _deleteHandle(): void {\n this.gl.deleteRenderbuffer(this.handle);\n this.trackDeallocatedMemory();\n }\n\n _bindHandle(handle: WEBGLRenderbuffer): void {\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);\n }\n}\n"],"file":"webgl-renderbuffer.js"}
1
+ {"version":3,"file":"webgl-renderbuffer.js","names":["assert","WebGLResource","isRenderbufferFormatSupported","convertTextureFormatToGL","getTextureFormatBytesPerPixel","_Symbol$toStringTag","Symbol","toStringTag","WEBGLRenderbuffer","width","props","height","format","samples","attachment","isTextureFormatSupported","device","gl","constructor","Error","defaultProps","glFormat","isWebGL2","_initialize","resize","size","Object","assign","trackDeallocatedMemory","bindRenderbuffer","handle","gl2","renderbufferStorageMultisample","renderbufferStorage","trackAllocatedMemory","_createHandle","createRenderbuffer","_deleteHandle","deleteRenderbuffer","_bindHandle","id","undefined","userData"],"sources":["../../../src/adapter/objects/webgl-renderbuffer.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport {assert, ResourceProps, TextureFormat} from '@luma.gl/core';\nimport {GL} from '@luma.gl/constants';\nimport {WebGLDevice} from '../webgl-device';\nimport {WebGLResource} from './webgl-resource';\nimport {isRenderbufferFormatSupported} from '../converters/texture-formats';\nimport {convertTextureFormatToGL, getTextureFormatBytesPerPixel} from '../converters/texture-formats';\n\nexport type RenderbufferProps = ResourceProps & {\n format: TextureFormat;\n width?: number;\n height?: number;\n samples?: number;\n};\n\n/**\n * Renderbuffers are GPU objects that contain images.\n * In contrast to Textures they are optimized for use as render targets, with Framebuffers.\n * while Textures may not be, and are the logical choice when\n * you do not need to sample (i.e. in a post-pass shader)\n * from the produced image. If you need to resample\n * (such as when reading depth back in a second shader pass),\n * use Textures instead.\n * Renderbuffer objects also natively accommodate Multisampling (MSAA).\n */\nexport class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps> {\n static override readonly defaultProps: Required<RenderbufferProps> = {\n id: undefined,\n handle: undefined,\n userData: undefined,\n format: undefined, // 'depth16unorm'\n width: 1,\n height: 1, \n samples: 0\n }; \n\n override get [Symbol.toStringTag](): string { return 'Renderbuffer'; }\n\n get width(): number { return this.props.width; }\n get height(): number { return this.props.height; }\n get format(): TextureFormat { return this.props.format; }\n get samples(): number { return this.props.samples; }\n get attachment() { return }\n\n /** WebGL format constant */\n glFormat: GL;\n\n static isTextureFormatSupported(device: WebGLDevice, format: TextureFormat): boolean {\n return isRenderbufferFormatSupported(device.gl, format);\n }\n\n constructor(device: WebGLDevice, props: RenderbufferProps) {\n // TODO - remove temporary sanity check\n if (typeof props.format === 'number') {\n throw new Error('Renderbuffer');\n }\n super(device, props, WEBGLRenderbuffer.defaultProps);\n this.glFormat = convertTextureFormatToGL(this.props.format, device.isWebGL2);\n this._initialize(this.props);\n }\n\n resize(size: {width: number, height: number}): void {\n // Don't resize if width/height haven't changed\n if (size.width !== this.width || size.height !== this.height) {\n Object.assign(this.props, {...size, format: this.format, samples: this.samples});\n this._initialize(this.props);\n }\n }\n\n // PRIVATE METHODS\n\n /** Creates and initializes a renderbuffer object's data store */\n protected _initialize(props: Required<RenderbufferProps>): void {\n const {format, width, height, samples} = props;\n assert(format, 'Needs format');\n\n this.trackDeallocatedMemory();\n\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);\n\n if (samples !== 0 && this.device.isWebGL2) {\n this.gl2.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, this.glFormat, width, height);\n } else {\n this.gl.renderbufferStorage(GL.RENDERBUFFER, this.glFormat, width, height);\n }\n\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);\n\n this.trackAllocatedMemory(\n width * height * (samples || 1) * getTextureFormatBytesPerPixel(this.glFormat, this.device.isWebGL2)\n );\n }\n\n // RESOURCE IMPLEMENTATION\n\n override _createHandle() {\n return this.gl.createRenderbuffer();\n }\n\n override _deleteHandle(): void {\n this.gl.deleteRenderbuffer(this.handle);\n this.trackDeallocatedMemory();\n }\n\n override _bindHandle(handle: WEBGLRenderbuffer): void {\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);\n }\n}\n"],"mappings":"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"}