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

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 (401) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +3 -23
  3. package/dist/adapter/converters/device-parameters.js.map +1 -1
  4. package/dist/adapter/converters/renderbuffer-formats.js +1 -5
  5. package/dist/adapter/converters/renderbuffer-formats.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  7. package/dist/adapter/converters/sampler-parameters.js +3 -58
  8. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  9. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  10. package/dist/adapter/converters/texture-formats.js +10 -54
  11. package/dist/adapter/converters/texture-formats.js.map +1 -1
  12. package/dist/adapter/converters/vertex-formats.js +0 -9
  13. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  14. package/dist/adapter/device-helpers/device-features.js +5 -22
  15. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  16. package/dist/adapter/device-helpers/device-limits.js +1 -4
  17. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  18. package/dist/adapter/device-helpers/get-device-info.js +6 -12
  19. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  20. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  21. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  22. package/dist/adapter/helpers/attribute-utils.js +0 -17
  23. package/dist/adapter/helpers/attribute-utils.js.map +1 -1
  24. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  25. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  26. package/dist/adapter/helpers/get-shader-info.js +25 -0
  27. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  28. package/dist/adapter/helpers/get-shader-layout.js +9 -57
  29. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  30. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  31. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  32. package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
  33. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  34. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  35. package/dist/adapter/helpers/set-uniform.js +0 -30
  36. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  37. package/dist/adapter/helpers/uniforms.js +0 -10
  38. package/dist/adapter/helpers/uniforms.js.map +1 -1
  39. package/dist/adapter/objects/constants-to-keys.js +0 -7
  40. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  41. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  42. package/dist/adapter/objects/webgl-renderbuffer.js +4 -20
  43. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  44. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  45. package/dist/adapter/objects/webgl-resource.js +13 -60
  46. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  47. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
  48. package/dist/adapter/objects/webgl-vertex-array-object.js +6 -16
  49. package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -1
  50. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  51. package/dist/adapter/resources/webgl-buffer.js +13 -42
  52. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  53. package/dist/adapter/resources/webgl-command-buffer.js +2 -17
  54. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  55. package/dist/adapter/resources/webgl-command-encoder.js +1 -14
  56. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  57. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  58. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  59. package/dist/adapter/resources/webgl-framebuffer.js +5 -65
  60. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  61. package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
  62. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  63. package/dist/adapter/resources/webgl-render-pass.js +1 -8
  64. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  65. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  66. package/dist/adapter/resources/webgl-render-pipeline.js +9 -98
  67. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  68. package/dist/adapter/resources/webgl-sampler.js +1 -13
  69. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  70. package/dist/adapter/resources/webgl-shader.d.ts +1 -2
  71. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  72. package/dist/adapter/resources/webgl-shader.js +3 -17
  73. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  74. package/dist/adapter/resources/webgl-texture.d.ts +1 -1
  75. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  76. package/dist/adapter/resources/webgl-texture.js +44 -162
  77. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  78. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  79. package/dist/adapter/webgl-canvas-context.js +2 -16
  80. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  81. package/dist/adapter/webgl-device.d.ts +5 -0
  82. package/dist/adapter/webgl-device.d.ts.map +1 -1
  83. package/dist/adapter/webgl-device.js +40 -107
  84. package/dist/adapter/webgl-device.js.map +1 -1
  85. package/dist/classic/accessor.js +11 -35
  86. package/dist/classic/accessor.js.map +1 -1
  87. package/dist/classic/buffer.d.ts.map +1 -1
  88. package/dist/classic/buffer.js +20 -76
  89. package/dist/classic/buffer.js.map +1 -1
  90. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  91. package/dist/classic/typed-array-utils.js +0 -20
  92. package/dist/classic/typed-array-utils.js.map +1 -1
  93. package/dist/context/context/create-browser-context.d.ts +1 -0
  94. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  95. package/dist/context/context/create-browser-context.js +6 -14
  96. package/dist/context/context/create-browser-context.js.map +1 -1
  97. package/dist/context/context/create-headless-context.js +6 -7
  98. package/dist/context/context/create-headless-context.js.map +1 -1
  99. package/dist/context/context/webgl-checks.js +0 -3
  100. package/dist/context/context/webgl-checks.js.map +1 -1
  101. package/dist/context/debug/spector.d.ts +1 -0
  102. package/dist/context/debug/spector.d.ts.map +1 -1
  103. package/dist/context/debug/spector.js +6 -18
  104. package/dist/context/debug/spector.js.map +1 -1
  105. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  106. package/dist/context/debug/webgl-developer-tools.js +4 -22
  107. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  108. package/dist/context/parameters/unified-parameter-api.js +4 -15
  109. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  110. package/dist/context/parameters/webgl-parameter-tables.js +1 -20
  111. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  112. package/dist/context/polyfill/context-data.js +0 -2
  113. package/dist/context/polyfill/context-data.js.map +1 -1
  114. package/dist/context/polyfill/get-parameter-polyfill.js +1 -6
  115. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  116. package/dist/context/polyfill/polyfill-context.js +17 -24
  117. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  118. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  119. package/dist/context/polyfill/polyfill-table.js +3 -26
  120. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  121. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  122. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
  123. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  124. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  125. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  126. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  127. package/dist/context/state-tracker/track-context-state.js +14 -48
  128. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  129. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  130. package/dist/context/state-tracker/with-parameters.js +3 -9
  131. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  132. package/dist/dist.dev.js +9205 -0
  133. package/dist/index.cjs +5948 -0
  134. package/dist/index.d.ts +0 -2
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +24 -26
  137. package/dist/index.js.map +1 -1
  138. package/dist/types/webgl.d.ts +4 -4
  139. package/dist/types/webgl.d.ts.map +1 -1
  140. package/dist/types/webgl.js.map +1 -1
  141. package/dist/types.js.map +1 -1
  142. package/dist.min.js +36 -0
  143. package/package.json +18 -9
  144. package/src/.DS_Store +0 -0
  145. package/src/adapter/.DS_Store +0 -0
  146. package/src/adapter/converters/device-parameters.ts +5 -2
  147. package/src/adapter/converters/sampler-parameters.ts +4 -2
  148. package/src/adapter/converters/texture-formats.ts +3 -1
  149. package/src/adapter/device-helpers/get-device-info.ts +8 -8
  150. package/src/adapter/helpers/get-shader-info.ts +37 -0
  151. package/src/adapter/helpers/get-shader-layout.ts +4 -4
  152. package/src/adapter/helpers/parse-shader-compiler-log.ts +2 -2
  153. package/src/adapter/helpers/set-uniform.ts +2 -0
  154. package/src/adapter/objects/webgl-renderbuffer.ts +1 -1
  155. package/src/adapter/objects/webgl-resource.ts +1 -1
  156. package/src/adapter/objects/webgl-vertex-array-object.ts +1 -1
  157. package/src/adapter/resources/webgl-buffer.ts +5 -5
  158. package/src/adapter/resources/webgl-command-encoder.ts +1 -1
  159. package/src/adapter/resources/webgl-framebuffer.ts +3 -4
  160. package/src/adapter/resources/webgl-render-pass.ts +1 -1
  161. package/src/adapter/resources/webgl-render-pipeline.ts +19 -20
  162. package/src/adapter/resources/webgl-shader.ts +3 -3
  163. package/src/adapter/resources/webgl-texture.ts +8 -9
  164. package/src/adapter/webgl-canvas-context.ts +2 -2
  165. package/src/adapter/webgl-device.ts +13 -3
  166. package/src/classic/accessor.ts +1 -1
  167. package/src/classic/buffer.ts +3 -3
  168. package/src/classic/typed-array-utils.ts +1 -1
  169. package/src/context/.DS_Store +0 -0
  170. package/src/context/context/create-browser-context.ts +4 -2
  171. package/src/context/context/create-headless-context.ts +2 -2
  172. package/src/context/debug/spector.ts +5 -4
  173. package/src/context/debug/webgl-developer-tools.ts +1 -1
  174. package/src/context/polyfill/polyfill-table.ts +1 -0
  175. package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
  176. package/src/context/state-tracker/track-context-state.ts +6 -5
  177. package/src/context/state-tracker/with-parameters.ts +1 -1
  178. package/src/index.ts +1 -5
  179. package/src/types/webgl.ts +6 -4
  180. package/dist/bundle.d.ts +0 -2
  181. package/dist/bundle.d.ts.map +0 -1
  182. package/dist/bundle.js +0 -5
  183. package/dist/bundle.js.map +0 -1
  184. package/dist/es5/adapter/converters/device-parameters.js +0 -174
  185. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  186. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  187. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  188. package/dist/es5/adapter/converters/sampler-parameters.js +0 -245
  189. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  190. package/dist/es5/adapter/converters/texture-formats.js +0 -1022
  191. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  192. package/dist/es5/adapter/converters/vertex-formats.js +0 -48
  193. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  194. package/dist/es5/adapter/device-helpers/device-features.js +0 -155
  195. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  196. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  197. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  198. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -59
  199. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  200. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  201. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  202. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  203. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  204. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -389
  205. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  206. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  207. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  208. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  209. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  210. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  211. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  212. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  213. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  214. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  215. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  216. package/dist/es5/adapter/objects/webgl-resource.js +0 -287
  217. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  218. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  219. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  220. package/dist/es5/adapter/resources/webgl-buffer.js +0 -242
  221. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  222. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  223. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  224. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  225. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  226. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  227. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  228. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -347
  229. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  230. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -62
  231. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  232. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -494
  233. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  234. package/dist/es5/adapter/resources/webgl-sampler.js +0 -101
  235. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  236. package/dist/es5/adapter/resources/webgl-shader.js +0 -150
  237. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  238. package/dist/es5/adapter/resources/webgl-texture.js +0 -980
  239. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  240. package/dist/es5/adapter/webgl-canvas-context.js +0 -96
  241. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  242. package/dist/es5/adapter/webgl-device.js +0 -474
  243. package/dist/es5/adapter/webgl-device.js.map +0 -1
  244. package/dist/es5/bundle.js +0 -7
  245. package/dist/es5/bundle.js.map +0 -1
  246. package/dist/es5/classic/accessor.js +0 -181
  247. package/dist/es5/classic/accessor.js.map +0 -1
  248. package/dist/es5/classic/buffer.js +0 -468
  249. package/dist/es5/classic/buffer.js.map +0 -1
  250. package/dist/es5/classic/typed-array-utils.js +0 -126
  251. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  252. package/dist/es5/context/context/create-browser-context.js +0 -83
  253. package/dist/es5/context/context/create-browser-context.js.map +0 -1
  254. package/dist/es5/context/context/create-headless-context.js +0 -60
  255. package/dist/es5/context/context/create-headless-context.js.map +0 -1
  256. package/dist/es5/context/context/webgl-checks.js +0 -54
  257. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  258. package/dist/es5/context/debug/spector.js +0 -133
  259. package/dist/es5/context/debug/spector.js.map +0 -1
  260. package/dist/es5/context/debug/webgl-developer-tools.js +0 -192
  261. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  262. package/dist/es5/context/parameters/unified-parameter-api.js +0 -101
  263. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  264. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -393
  265. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  266. package/dist/es5/context/polyfill/context-data.js +0 -21
  267. package/dist/es5/context/polyfill/context-data.js.map +0 -1
  268. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  269. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  270. package/dist/es5/context/polyfill/polyfill-context.js +0 -134
  271. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  272. package/dist/es5/context/polyfill/polyfill-table.js +0 -167
  273. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  274. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  275. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  276. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  277. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  278. package/dist/es5/context/state-tracker/track-context-state.js +0 -210
  279. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  280. package/dist/es5/context/state-tracker/with-parameters.js +0 -52
  281. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  282. package/dist/es5/index.js +0 -276
  283. package/dist/es5/index.js.map +0 -1
  284. package/dist/es5/init.js +0 -10
  285. package/dist/es5/init.js.map +0 -1
  286. package/dist/es5/types/webgl.js +0 -6
  287. package/dist/es5/types/webgl.js.map +0 -1
  288. package/dist/es5/types.js +0 -2
  289. package/dist/es5/types.js.map +0 -1
  290. package/dist/esm/adapter/converters/device-parameters.js +0 -157
  291. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  292. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  293. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  294. package/dist/esm/adapter/converters/sampler-parameters.js +0 -227
  295. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  296. package/dist/esm/adapter/converters/texture-formats.js +0 -945
  297. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  298. package/dist/esm/adapter/converters/vertex-formats.js +0 -38
  299. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  300. package/dist/esm/adapter/device-helpers/device-features.js +0 -112
  301. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  302. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  303. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  304. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -48
  305. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  306. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  307. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  308. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  309. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  310. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -328
  311. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  312. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  313. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  314. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  315. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  316. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  317. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  318. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  319. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  320. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  321. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  322. package/dist/esm/adapter/objects/webgl-resource.js +0 -210
  323. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  324. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  325. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  326. package/dist/esm/adapter/resources/webgl-buffer.js +0 -162
  327. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  328. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  329. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  330. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  331. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  332. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  333. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  334. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -267
  335. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  336. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -21
  337. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  338. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  339. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  340. package/dist/esm/adapter/resources/webgl-sampler.js +0 -54
  341. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  342. package/dist/esm/adapter/resources/webgl-shader.js +0 -76
  343. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  344. package/dist/esm/adapter/resources/webgl-texture.js +0 -832
  345. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  346. package/dist/esm/adapter/webgl-canvas-context.js +0 -55
  347. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  348. package/dist/esm/adapter/webgl-device.js +0 -346
  349. package/dist/esm/adapter/webgl-device.js.map +0 -1
  350. package/dist/esm/bundle.js +0 -5
  351. package/dist/esm/bundle.js.map +0 -1
  352. package/dist/esm/classic/accessor.js +0 -144
  353. package/dist/esm/classic/accessor.js.map +0 -1
  354. package/dist/esm/classic/buffer.js +0 -383
  355. package/dist/esm/classic/buffer.js.map +0 -1
  356. package/dist/esm/classic/typed-array-utils.js +0 -112
  357. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  358. package/dist/esm/context/context/create-browser-context.js +0 -61
  359. package/dist/esm/context/context/create-browser-context.js.map +0 -1
  360. package/dist/esm/context/context/create-headless-context.js +0 -43
  361. package/dist/esm/context/context/create-headless-context.js.map +0 -1
  362. package/dist/esm/context/context/webgl-checks.js +0 -34
  363. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  364. package/dist/esm/context/debug/spector.js +0 -76
  365. package/dist/esm/context/debug/spector.js.map +0 -1
  366. package/dist/esm/context/debug/webgl-developer-tools.js +0 -115
  367. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  368. package/dist/esm/context/parameters/unified-parameter-api.js +0 -66
  369. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  370. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -446
  371. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  372. package/dist/esm/context/polyfill/context-data.js +0 -14
  373. package/dist/esm/context/polyfill/context-data.js.map +0 -1
  374. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  375. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  376. package/dist/esm/context/polyfill/polyfill-context.js +0 -91
  377. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  378. package/dist/esm/context/polyfill/polyfill-table.js +0 -161
  379. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  380. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  381. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  382. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  383. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  384. package/dist/esm/context/state-tracker/track-context-state.js +0 -182
  385. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  386. package/dist/esm/context/state-tracker/with-parameters.js +0 -40
  387. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  388. package/dist/esm/index.js +0 -27
  389. package/dist/esm/index.js.map +0 -1
  390. package/dist/esm/init.js +0 -4
  391. package/dist/esm/init.js.map +0 -1
  392. package/dist/esm/types/webgl.js +0 -2
  393. package/dist/esm/types/webgl.js.map +0 -1
  394. package/dist/esm/types.js +0 -2
  395. package/dist/esm/types.js.map +0 -1
  396. package/dist/init.d.ts +0 -2
  397. package/dist/init.d.ts.map +0 -1
  398. package/dist/init.js +0 -4
  399. package/dist/init.js.map +0 -1
  400. package/src/bundle.ts +0 -4
  401. package/src/init.ts +0 -4
@@ -32,11 +32,9 @@ const COMPOSITE_GL_TYPES = {
32
32
  };
33
33
  export function decodeUniformType(uniformType) {
34
34
  const typeAndSize = COMPOSITE_GL_TYPES[uniformType];
35
-
36
35
  if (!typeAndSize) {
37
36
  throw new Error('uniform');
38
37
  }
39
-
40
38
  const [glType, components,, format] = typeAndSize;
41
39
  return {
42
40
  format,
@@ -46,11 +44,9 @@ export function decodeUniformType(uniformType) {
46
44
  }
47
45
  export function decodeAttributeType(attributeType) {
48
46
  const typeAndSize = COMPOSITE_GL_TYPES[attributeType];
49
-
50
47
  if (!typeAndSize) {
51
48
  throw new Error('attribute');
52
49
  }
53
-
54
50
  const [glType, components,,, format] = typeAndSize;
55
51
  return {
56
52
  format,
@@ -60,11 +56,9 @@ export function decodeAttributeType(attributeType) {
60
56
  }
61
57
  export function decomposeCompositeGLType(compositeGLType) {
62
58
  const typeAndSize = COMPOSITE_GL_TYPES[compositeGLType];
63
-
64
59
  if (!typeAndSize) {
65
60
  return null;
66
61
  }
67
-
68
62
  const [type, components] = typeAndSize;
69
63
  return {
70
64
  type,
@@ -79,13 +73,10 @@ export function getCompositeGLType(type, components) {
79
73
  case GL.UNSIGNED_SHORT:
80
74
  type = GL.FLOAT;
81
75
  break;
82
-
83
76
  default:
84
77
  }
85
-
86
78
  for (const glType in COMPOSITE_GL_TYPES) {
87
79
  const [compType, compComponents, name] = COMPOSITE_GL_TYPES[glType];
88
-
89
80
  if (compType === type && compComponents === components) {
90
81
  return {
91
82
  glType: Number(glType),
@@ -93,7 +84,6 @@ export function getCompositeGLType(type, components) {
93
84
  };
94
85
  }
95
86
  }
96
-
97
87
  return null;
98
88
  }
99
89
  //# sourceMappingURL=uniforms.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/adapter/helpers/uniforms.ts"],"names":["GL","isSamplerUniform","type","SAMPLER_TYPES","includes","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","COMPOSITE_GL_TYPES","FLOAT","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","INT","INT_VEC2","INT_VEC3","INT_VEC4","UNSIGNED_INT","UNSIGNED_INT_VEC2","UNSIGNED_INT_VEC3","UNSIGNED_INT_VEC4","BOOL","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","FLOAT_MAT2","FLOAT_MAT2x3","FLOAT_MAT2x4","FLOAT_MAT3x2","FLOAT_MAT3","FLOAT_MAT3x4","FLOAT_MAT4x2","FLOAT_MAT4x3","FLOAT_MAT4","decodeUniformType","uniformType","typeAndSize","Error","glType","components","format","decodeAttributeType","attributeType","decomposeCompositeGLType","compositeGLType","getCompositeGLType","BYTE","UNSIGNED_BYTE","SHORT","UNSIGNED_SHORT","compType","compComponents","name","Number"],"mappings":"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","sourcesContent":["import {UniformFormat, VertexFormat} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {GLUniformType, GLSamplerType, GLCompositeType, GLType} from '../../types/webgl';\n\n/** Check is uniform is of sampler type */\nexport function isSamplerUniform(type: GLUniformType): boolean {\n return SAMPLER_TYPES.includes(type as GLSamplerType);\n}\n\nconst SAMPLER_TYPES: GLSamplerType[] = [\n GL.SAMPLER_2D,\n GL.SAMPLER_CUBE,\n GL.SAMPLER_3D,\n GL.SAMPLER_2D_SHADOW,\n GL.SAMPLER_2D_ARRAY,\n GL.SAMPLER_2D_ARRAY_SHADOW,\n GL.SAMPLER_CUBE_SHADOW,\n GL.INT_SAMPLER_2D,\n GL.INT_SAMPLER_3D,\n GL.INT_SAMPLER_CUBE,\n GL.INT_SAMPLER_2D_ARRAY,\n GL.UNSIGNED_INT_SAMPLER_2D,\n GL.UNSIGNED_INT_SAMPLER_3D,\n GL.UNSIGNED_INT_SAMPLER_CUBE,\n GL.UNSIGNED_INT_SAMPLER_2D_ARRAY\n];\n\n// Composite types table\nconst COMPOSITE_GL_TYPES: Record<\n GLCompositeType,\n [GLType, number, string, UniformFormat, VertexFormat?]\n> = {\n [GL.FLOAT]: [GL.FLOAT, 1, 'float', 'f32', 'float32'],\n [GL.FLOAT_VEC2]: [GL.FLOAT, 2, 'vec2', 'vec2<f32>', 'float32x2'],\n [GL.FLOAT_VEC3]: [GL.FLOAT, 3, 'vec3', 'vec3<f32>', 'float32x3'],\n [GL.FLOAT_VEC4]: [GL.FLOAT, 4, 'vec4', 'vec4<f32>', 'float32x4'],\n\n [GL.INT]: [GL.INT, 1, 'int', 'i32', 'sint32'],\n [GL.INT_VEC2]: [GL.INT, 2, 'ivec2', 'vec2<i32>', 'sint32x2'],\n [GL.INT_VEC3]: [GL.INT, 3, 'ivec3', 'vec3<i32>', 'sint32x3'],\n [GL.INT_VEC4]: [GL.INT, 4, 'ivec4', 'vec4<i32>', 'sint32x4'],\n\n [GL.UNSIGNED_INT]: [GL.UNSIGNED_INT, 1, 'uint', 'u32', 'uint32'],\n [GL.UNSIGNED_INT_VEC2]: [GL.UNSIGNED_INT, 2, 'uvec2', 'vec2<u32>', 'uint32x2'],\n [GL.UNSIGNED_INT_VEC3]: [GL.UNSIGNED_INT, 3, 'uvec3', 'vec3<u32>', 'uint32x3'],\n [GL.UNSIGNED_INT_VEC4]: [GL.UNSIGNED_INT, 4, 'uvec4', 'vec4<u32>', 'uint32x4'],\n\n [GL.BOOL]: [GL.FLOAT, 1, 'bool', 'f32', 'float32x2'],\n [GL.BOOL_VEC2]: [GL.FLOAT, 2, 'bvec2', 'vec2<f32>'],\n [GL.BOOL_VEC3]: [GL.FLOAT, 3, 'bvec3', 'vec3<f32>'],\n [GL.BOOL_VEC4]: [GL.FLOAT, 4, 'bvec4', 'vec4<f32>'],\n\n [GL.FLOAT_MAT2]: [GL.FLOAT, 8, 'mat2', 'mat2x2<f32>'], // 4\n [GL.FLOAT_MAT2x3]: [GL.FLOAT, 8, 'mat2x3', 'mat2x3<f32>'], // 6\n [GL.FLOAT_MAT2x4]: [GL.FLOAT, 8, 'mat2x4', 'mat2x4<f32>'], // 8\n\n [GL.FLOAT_MAT3x2]: [GL.FLOAT, 12, 'mat3x2', 'mat3x2<f32>'], // 6\n [GL.FLOAT_MAT3]: [GL.FLOAT, 12, 'mat3', 'mat3x3<f32>'], // 9\n [GL.FLOAT_MAT3x4]: [GL.FLOAT, 12, 'mat3x4', 'mat3x4<f32>'], // 12\n\n [GL.FLOAT_MAT4x2]: [GL.FLOAT, 16, 'mat4x2', 'mat4x2<f32>'], // 8\n [GL.FLOAT_MAT4x3]: [GL.FLOAT, 16, 'mat4x3', 'mat4x3<f32>'], // 12\n [GL.FLOAT_MAT4]: [GL.FLOAT, 16, 'mat4', 'mat4x4<f32>'] // 16\n};\n\n/** Decomposes a composite type GL.VEC3 into a basic type (GL.FLOAT) and components (3) */\nexport function decodeUniformType(\n uniformType: GL\n): {format: UniformFormat; components: number; glType: GLType} {\n const typeAndSize = COMPOSITE_GL_TYPES[uniformType];\n if (!typeAndSize) {\n throw new Error('uniform');\n }\n const [glType, components, , format] = typeAndSize;\n return {format, components, glType};\n}\n\nexport function decodeAttributeType(attributeType: GL): {\n format: VertexFormat;\n components: number;\n glType: GLType;\n} {\n const typeAndSize = COMPOSITE_GL_TYPES[attributeType];\n if (!typeAndSize) {\n throw new Error('attribute')\n }\n const [glType, components, , , format] = typeAndSize;\n return {format, components, glType};\n}\n\n/** Decomposes a composite type GL.VEC3 into a basic type (GL.FLOAT) and components (3) */\nexport function decomposeCompositeGLType(\n compositeGLType: GLCompositeType\n): {type: GLType; components: number} | null {\n const typeAndSize = COMPOSITE_GL_TYPES[compositeGLType];\n if (!typeAndSize) {\n return null;\n }\n const [type, components] = typeAndSize;\n return {type, components};\n}\n\nexport function getCompositeGLType(type: GL, components): {glType: GLType; name: string} | null {\n switch (type) {\n case GL.BYTE:\n case GL.UNSIGNED_BYTE:\n case GL.SHORT:\n case GL.UNSIGNED_SHORT:\n type = GL.FLOAT;\n break;\n default:\n }\n\n for (const glType in COMPOSITE_GL_TYPES) {\n const [compType, compComponents, name] = COMPOSITE_GL_TYPES[glType];\n if (compType === type && compComponents === components) {\n return {glType: Number(glType), name};\n }\n }\n return null;\n}\n"],"file":"uniforms.js"}
1
+ {"version":3,"file":"uniforms.js","names":["GL","isSamplerUniform","type","SAMPLER_TYPES","includes","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","COMPOSITE_GL_TYPES","FLOAT","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","INT","INT_VEC2","INT_VEC3","INT_VEC4","UNSIGNED_INT","UNSIGNED_INT_VEC2","UNSIGNED_INT_VEC3","UNSIGNED_INT_VEC4","BOOL","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","FLOAT_MAT2","FLOAT_MAT2x3","FLOAT_MAT2x4","FLOAT_MAT3x2","FLOAT_MAT3","FLOAT_MAT3x4","FLOAT_MAT4x2","FLOAT_MAT4x3","FLOAT_MAT4","decodeUniformType","uniformType","typeAndSize","Error","glType","components","format","decodeAttributeType","attributeType","decomposeCompositeGLType","compositeGLType","getCompositeGLType","BYTE","UNSIGNED_BYTE","SHORT","UNSIGNED_SHORT","compType","compComponents","name","Number"],"sources":["../../../src/adapter/helpers/uniforms.ts"],"sourcesContent":["import {UniformFormat, VertexFormat} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {GLUniformType, GLSamplerType, GLCompositeType, GLType} from '../../types/webgl';\n\n/** Check is uniform is of sampler type */\nexport function isSamplerUniform(type: GLUniformType): boolean {\n return SAMPLER_TYPES.includes(type as GLSamplerType);\n}\n\nconst SAMPLER_TYPES: GLSamplerType[] = [\n GL.SAMPLER_2D,\n GL.SAMPLER_CUBE,\n GL.SAMPLER_3D,\n GL.SAMPLER_2D_SHADOW,\n GL.SAMPLER_2D_ARRAY,\n GL.SAMPLER_2D_ARRAY_SHADOW,\n GL.SAMPLER_CUBE_SHADOW,\n GL.INT_SAMPLER_2D,\n GL.INT_SAMPLER_3D,\n GL.INT_SAMPLER_CUBE,\n GL.INT_SAMPLER_2D_ARRAY,\n GL.UNSIGNED_INT_SAMPLER_2D,\n GL.UNSIGNED_INT_SAMPLER_3D,\n GL.UNSIGNED_INT_SAMPLER_CUBE,\n GL.UNSIGNED_INT_SAMPLER_2D_ARRAY\n];\n\n// Composite types table\nconst COMPOSITE_GL_TYPES: Record<\n GLCompositeType,\n [GLType, number, string, UniformFormat, VertexFormat?]\n> = {\n [GL.FLOAT]: [GL.FLOAT, 1, 'float', 'f32', 'float32'],\n [GL.FLOAT_VEC2]: [GL.FLOAT, 2, 'vec2', 'vec2<f32>', 'float32x2'],\n [GL.FLOAT_VEC3]: [GL.FLOAT, 3, 'vec3', 'vec3<f32>', 'float32x3'],\n [GL.FLOAT_VEC4]: [GL.FLOAT, 4, 'vec4', 'vec4<f32>', 'float32x4'],\n\n [GL.INT]: [GL.INT, 1, 'int', 'i32', 'sint32'],\n [GL.INT_VEC2]: [GL.INT, 2, 'ivec2', 'vec2<i32>', 'sint32x2'],\n [GL.INT_VEC3]: [GL.INT, 3, 'ivec3', 'vec3<i32>', 'sint32x3'],\n [GL.INT_VEC4]: [GL.INT, 4, 'ivec4', 'vec4<i32>', 'sint32x4'],\n\n [GL.UNSIGNED_INT]: [GL.UNSIGNED_INT, 1, 'uint', 'u32', 'uint32'],\n [GL.UNSIGNED_INT_VEC2]: [GL.UNSIGNED_INT, 2, 'uvec2', 'vec2<u32>', 'uint32x2'],\n [GL.UNSIGNED_INT_VEC3]: [GL.UNSIGNED_INT, 3, 'uvec3', 'vec3<u32>', 'uint32x3'],\n [GL.UNSIGNED_INT_VEC4]: [GL.UNSIGNED_INT, 4, 'uvec4', 'vec4<u32>', 'uint32x4'],\n\n [GL.BOOL]: [GL.FLOAT, 1, 'bool', 'f32', 'float32x2'],\n [GL.BOOL_VEC2]: [GL.FLOAT, 2, 'bvec2', 'vec2<f32>'],\n [GL.BOOL_VEC3]: [GL.FLOAT, 3, 'bvec3', 'vec3<f32>'],\n [GL.BOOL_VEC4]: [GL.FLOAT, 4, 'bvec4', 'vec4<f32>'],\n\n [GL.FLOAT_MAT2]: [GL.FLOAT, 8, 'mat2', 'mat2x2<f32>'], // 4\n [GL.FLOAT_MAT2x3]: [GL.FLOAT, 8, 'mat2x3', 'mat2x3<f32>'], // 6\n [GL.FLOAT_MAT2x4]: [GL.FLOAT, 8, 'mat2x4', 'mat2x4<f32>'], // 8\n\n [GL.FLOAT_MAT3x2]: [GL.FLOAT, 12, 'mat3x2', 'mat3x2<f32>'], // 6\n [GL.FLOAT_MAT3]: [GL.FLOAT, 12, 'mat3', 'mat3x3<f32>'], // 9\n [GL.FLOAT_MAT3x4]: [GL.FLOAT, 12, 'mat3x4', 'mat3x4<f32>'], // 12\n\n [GL.FLOAT_MAT4x2]: [GL.FLOAT, 16, 'mat4x2', 'mat4x2<f32>'], // 8\n [GL.FLOAT_MAT4x3]: [GL.FLOAT, 16, 'mat4x3', 'mat4x3<f32>'], // 12\n [GL.FLOAT_MAT4]: [GL.FLOAT, 16, 'mat4', 'mat4x4<f32>'] // 16\n};\n\n/** Decomposes a composite type GL.VEC3 into a basic type (GL.FLOAT) and components (3) */\nexport function decodeUniformType(\n uniformType: GL\n): {format: UniformFormat; components: number; glType: GLType} {\n const typeAndSize = COMPOSITE_GL_TYPES[uniformType];\n if (!typeAndSize) {\n throw new Error('uniform');\n }\n const [glType, components, , format] = typeAndSize;\n return {format, components, glType};\n}\n\nexport function decodeAttributeType(attributeType: GL): {\n format: VertexFormat;\n components: number;\n glType: GLType;\n} {\n const typeAndSize = COMPOSITE_GL_TYPES[attributeType];\n if (!typeAndSize) {\n throw new Error('attribute')\n }\n const [glType, components, , , format] = typeAndSize;\n return {format, components, glType};\n}\n\n/** Decomposes a composite type GL.VEC3 into a basic type (GL.FLOAT) and components (3) */\nexport function decomposeCompositeGLType(\n compositeGLType: GLCompositeType\n): {type: GLType; components: number} | null {\n const typeAndSize = COMPOSITE_GL_TYPES[compositeGLType];\n if (!typeAndSize) {\n return null;\n }\n const [type, components] = typeAndSize;\n return {type, components};\n}\n\nexport function getCompositeGLType(type: GL, components): {glType: GLType; name: string} | null {\n switch (type) {\n case GL.BYTE:\n case GL.UNSIGNED_BYTE:\n case GL.SHORT:\n case GL.UNSIGNED_SHORT:\n type = GL.FLOAT;\n break;\n default:\n }\n\n for (const glType in COMPOSITE_GL_TYPES) {\n const [compType, compComponents, name] = COMPOSITE_GL_TYPES[glType];\n if (compType === type && compComponents === components) {\n return {glType: Number(glType), name};\n }\n }\n return null;\n}\n"],"mappings":"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"}
@@ -3,13 +3,10 @@ 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
12
  assert(value !== undefined, "Accessing undefined constant GL.".concat(name));
@@ -18,25 +15,21 @@ export function getKeyValue(gl, name) {
18
15
  export function getKey(gl, value) {
19
16
  gl = gl.gl || gl;
20
17
  value = Number(value);
21
-
22
18
  for (const key in gl) {
23
19
  if (gl[key] === value) {
24
20
  return "GL.".concat(key);
25
21
  }
26
22
  }
27
-
28
23
  return String(value);
29
24
  }
30
25
  export function getKeyType(gl, value) {
31
26
  assert(value !== undefined, 'undefined key');
32
27
  value = Number(value);
33
-
34
28
  for (const key in gl) {
35
29
  if (gl[key] === value) {
36
30
  return "GL.".concat(key);
37
31
  }
38
32
  }
39
-
40
33
  return String(value);
41
34
  }
42
35
  //# 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;AAEA,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;AAEpB,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;AAEpB,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 // @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\nexport function getKey(gl: WebGLRenderingContext, value: any): string {\n // @ts-ignore expect-error depends on settings \n gl = gl.gl || gl;\n value = Number(value);\n for (const key in gl) {\n // @ts-ignore expect-error depends on settings\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 // @ts-ignore expect-error depends on settings\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","concat","getKey","key","String","getKeyType"],"sources":["../../../src/adapter/objects/constants-to-keys.ts"],"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 // @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\nexport function getKey(gl: WebGLRenderingContext, value: any): string {\n // @ts-ignore expect-error depends on settings \n gl = gl.gl || gl;\n value = Number(value);\n for (const key in gl) {\n // @ts-ignore expect-error depends on settings\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 // @ts-ignore expect-error depends on settings\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n"],"mappings":"AAAA,SAAQA,MAAM,QAAO,cAAc;AAInC,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,qCAAAC,MAAA,CAAqCP,IAAI,EAAG;EACtE,OAAOK,KAAK;AACd;AAEA,OAAO,SAASG,MAAMA,CAACT,EAAyB,EAAEM,KAAU,EAAU;EAEpEN,EAAE,GAAGA,EAAE,CAACA,EAAE,IAAIA,EAAE;EAChBM,KAAK,GAAGH,MAAM,CAACG,KAAK,CAAC;EACrB,KAAK,MAAMI,GAAG,IAAIV,EAAE,EAAE;IAEpB,IAAIA,EAAE,CAACU,GAAG,CAAC,KAAKJ,KAAK,EAAE;MACrB,aAAAE,MAAA,CAAaE,GAAG;IAClB;EACF;EACA,OAAOC,MAAM,CAACL,KAAK,CAAC;AACtB;AAEA,OAAO,SAASM,UAAUA,CAACZ,EAAyB,EAAEM,KAAU,EAAU;EACxER,MAAM,CAACQ,KAAK,KAAKC,SAAS,EAAE,eAAe,CAAC;EAC5CD,KAAK,GAAGH,MAAM,CAACG,KAAK,CAAC;EACrB,KAAK,MAAMI,GAAG,IAAIV,EAAE,EAAE;IAEpB,IAAIA,EAAE,CAACU,GAAG,CAAC,KAAKJ,KAAK,EAAE;MACrB,aAAAE,MAAA,CAAaE,GAAG;IAClB;EACF;EACA,OAAOC,MAAM,CAACL,KAAK,CAAC;AACtB"}
@@ -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;IAC9E,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAA2B;IAErE,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;IA0B/C,aAAa;IAIb,aAAa,IAAI,IAAI;IAKrB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;CAGtD"}
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,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,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;IA0B/C,aAAa;IAIb,aAAa,IAAI,IAAI;IAKrB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;CAGtD"}
@@ -1,7 +1,7 @@
1
1
  import { assert } from '@luma.gl/api';
2
2
  import GL from '@luma.gl/constants';
3
- import WebGLResource from './webgl-resource';
4
- import { isRenderbufferFormatSupported, getRenderbufferFormatBytesPerPixel } from '../converters/renderbuffer-formats';
3
+ import WebGLResource from "./webgl-resource.js";
4
+ import { isRenderbufferFormatSupported, getRenderbufferFormatBytesPerPixel } from "../converters/renderbuffer-formats.js";
5
5
  const DEFAULT_RENDERBUFFER_PROPS = {
6
6
  id: undefined,
7
7
  handle: undefined,
@@ -15,46 +15,36 @@ export default class WEBGLRenderbuffer extends WebGLResource {
15
15
  get [Symbol.toStringTag]() {
16
16
  return 'Renderbuffer';
17
17
  }
18
-
19
18
  get width() {
20
19
  return this.props.width;
21
20
  }
22
-
23
21
  get height() {
24
22
  return this.props.height;
25
23
  }
26
-
27
24
  get format() {
28
25
  return this.props.format;
29
26
  }
30
-
31
27
  get samples() {
32
28
  return this.props.samples;
33
29
  }
34
-
35
30
  static isSupported(gl, options) {
36
31
  return !(options !== null && options !== void 0 && options.format) || isRenderbufferFormatSupported(gl, options.format);
37
32
  }
38
-
39
33
  constructor(device, props) {
40
34
  super(device, props, DEFAULT_RENDERBUFFER_PROPS);
41
-
42
35
  this._initialize(this.props);
43
36
  }
44
-
45
37
  resize(size) {
46
38
  if (size.width !== this.width || size.height !== this.height) {
47
- Object.assign(this.props, { ...size,
39
+ Object.assign(this.props, {
40
+ ...size,
48
41
  format: this.format,
49
42
  samples: this.samples
50
43
  });
51
-
52
44
  this._initialize(this.props);
53
45
  }
54
-
55
46
  return this;
56
47
  }
57
-
58
48
  _initialize(props) {
59
49
  const {
60
50
  format,
@@ -65,30 +55,24 @@ export default class WEBGLRenderbuffer extends WebGLResource {
65
55
  assert(format, 'Needs format');
66
56
  this.trackDeallocatedMemory();
67
57
  this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
68
-
69
58
  if (samples !== 0 && this.device.isWebGL2) {
70
59
  this.gl.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, format, width, height);
71
60
  } else {
72
61
  this.gl.renderbufferStorage(GL.RENDERBUFFER, format, width, height);
73
62
  }
74
-
75
63
  this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);
76
64
  this.trackAllocatedMemory(width * height * (samples || 1) * getRenderbufferFormatBytesPerPixel(format));
77
65
  return this;
78
66
  }
79
-
80
67
  _createHandle() {
81
68
  return this.gl.createRenderbuffer();
82
69
  }
83
-
84
70
  _deleteHandle() {
85
71
  this.gl.deleteRenderbuffer(this.handle);
86
72
  this.trackDeallocatedMemory();
87
73
  }
88
-
89
74
  _bindHandle(handle) {
90
75
  this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);
91
76
  }
92
-
93
77
  }
94
78
  //# 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 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(): 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 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"],"file":"webgl-renderbuffer.js"}
1
+ {"version":3,"file":"webgl-renderbuffer.js","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"],"sources":["../../../src/adapter/objects/webgl-renderbuffer.ts"],"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 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(): 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 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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-resource.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-resource.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAkC,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpC,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAO1C;;GAEG;AACF,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,aAAa,CAAC,KAAK,SAAS,aAAa,CAAE,SAAQ,QAAQ,CAAC,KAAK,CAAC;IAC/F,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC;IACrC,OAAO,CAAC,OAAO,CAAM;IAErB,OAAO,CAAC,MAAM,CAAS;IAEvB,UAAU,SAAK;gBAEH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC;IA6B9D,QAAQ,IAAI,MAAM;IAI3B,IAAI,MAAM,QAWT;IAEQ,OAAO,IAAI,IAAI;IAIf,MAAM,CAAC,EAAC,cAAsB,EAAC;;KAAK;IAmB7C,IAAI,CAAC,YAAY,MAAc;IAuB/B,MAAM;IAIN;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,GAAQ,GAAG,GAAG;IAiCjD,aAAa,CAAC,OAAO,GAAE;QAAC,UAAU,CAAC,EAAE,GAAG,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAM;IAoC1D;;;;;;;;OAQG;IACH,YAAY,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAqClD,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;IAQzC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAK5E,UAAU,CAAC,KAAK,EAAE,aAAa;IAG/B,aAAa;IAIb,aAAa;IAIb,WAAW,CAAC,MAAM,EAAE,GAAG;IAIvB,kBAAkB;IAIlB,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAI5D,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG;CAuC7C"}
1
+ {"version":3,"file":"webgl-resource.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-resource.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAkC,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpC,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAO1C;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,aAAa,CAAC,KAAK,SAAS,aAAa,CAAE,SAAQ,QAAQ,CAAC,KAAK,CAAC;IAC9F,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC;IACrC,OAAO,CAAC,OAAO,CAAM;IAErB,OAAO,CAAC,MAAM,CAAS;IAEvB,UAAU,SAAK;gBAEH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC;IA6B9D,QAAQ,IAAI,MAAM;IAI3B,IAAI,MAAM,QAWT;IAEQ,OAAO,IAAI,IAAI;IAIf,MAAM,CAAC,EAAC,cAAsB,EAAC;;KAAK;IAmB7C,IAAI,CAAC,YAAY,MAAc;IAuB/B,MAAM;IAIN;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,GAAQ,GAAG,GAAG;IAiCjD,aAAa,CAAC,OAAO,GAAE;QAAC,UAAU,CAAC,EAAE,GAAG,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAM;IAoC1D;;;;;;;;OAQG;IACH,YAAY,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAqClD,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;IAQzC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAK5E,UAAU,CAAC,KAAK,EAAE,aAAa;IAG/B,aAAa;IAIb,aAAa;IAIb,WAAW,CAAC,MAAM,EAAE,GAAG;IAIvB,kBAAkB;IAIlB,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAI5D,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG;CAuC7C"}
@@ -1,25 +1,18 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import { Resource, assert, uid, stubRemovedMethods } from '@luma.gl/api';
3
- import { isWebGL2, assertWebGLContext } from '../../context/context/webgl-checks';
4
- import WebGLDevice from '../webgl-device';
5
- import { getKey, getKeyValue } from './constants-to-keys';
3
+ import { isWebGL2, assertWebGLContext } from "../../context/context/webgl-checks.js";
4
+ import WebGLDevice from "../webgl-device.js";
5
+ import { getKey, getKeyValue } from "./constants-to-keys.js";
6
6
  const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual methods';
7
7
  export default class WebGLResource extends Resource {
8
8
  constructor(device, props, defaultProps) {
9
9
  super(device, props, defaultProps);
10
-
11
10
  _defineProperty(this, "device", void 0);
12
-
13
11
  _defineProperty(this, "gl", void 0);
14
-
15
12
  _defineProperty(this, "gl2", void 0);
16
-
17
13
  _defineProperty(this, "_handle", void 0);
18
-
19
14
  _defineProperty(this, "_bound", false);
20
-
21
15
  _defineProperty(this, "byteLength", 0);
22
-
23
16
  this.device = WebGLDevice.attach(device);
24
17
  const gl = this.device.gl;
25
18
  assertWebGLContext(gl);
@@ -30,82 +23,64 @@ export default class WebGLResource extends Resource {
30
23
  this.gl2 = gl;
31
24
  this.id = id || uid(this.constructor.name);
32
25
  this._handle = props === null || props === void 0 ? void 0 : props.handle;
33
-
34
26
  if (this._handle === undefined) {
35
27
  this._handle = this._createHandle();
36
28
  }
37
-
38
29
  this.byteLength = 0;
39
30
  }
40
-
41
31
  toString() {
42
32
  return "".concat(this.constructor.name, "(").concat(this.id, ")");
43
33
  }
44
-
45
34
  get handle() {
46
35
  return this._handle;
47
36
  }
48
-
49
37
  destroy() {
50
38
  this.delete();
51
39
  }
52
-
53
- delete({
54
- deleteChildren = false
55
- } = {}) {
40
+ delete() {
41
+ let {
42
+ deleteChildren = false
43
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
56
44
  const children = this._handle && this._deleteHandle(this._handle);
57
-
58
45
  if (this._handle) {
59
46
  this.removeStats();
60
47
  }
61
-
62
48
  this._handle = null;
63
-
64
49
  if (children && deleteChildren) {
65
50
  children.filter(Boolean).forEach(child => child.delete());
66
51
  }
67
-
68
52
  return this;
69
53
  }
70
-
71
- bind(funcOrHandle = this.handle) {
54
+ bind() {
55
+ let funcOrHandle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.handle;
72
56
  if (typeof funcOrHandle !== 'function') {
73
57
  this._bindHandle(funcOrHandle);
74
-
75
58
  return this;
76
59
  }
77
-
78
60
  let value;
79
-
80
61
  if (!this._bound) {
81
62
  this._bindHandle(this.handle);
82
-
83
63
  this._bound = true;
84
64
  value = funcOrHandle();
85
65
  this._bound = false;
86
-
87
66
  this._bindHandle(null);
88
67
  } else {
89
68
  value = funcOrHandle();
90
69
  }
91
-
92
70
  return value;
93
71
  }
94
-
95
72
  unbind() {
96
73
  this.bind(null);
97
74
  }
98
-
99
- getParameter(pname, props = {}) {
75
+ getParameter(pname) {
76
+ let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
100
77
  pname = getKeyValue(this.gl, pname);
101
78
  assert(pname);
102
79
  const parameters = this.constructor.PARAMETERS || {};
103
80
  const parameter = parameters[pname];
104
-
105
81
  if (parameter) {
106
82
  const isWebgl2 = isWebGL2(this.gl);
107
83
  const parameterAvailable = (!('webgl2' in parameter) || isWebgl2) && (!('extension' in parameter) || this.gl.getExtension(parameter.extension));
108
-
109
84
  if (!parameterAvailable) {
110
85
  const webgl1Default = parameter.webgl1;
111
86
  const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;
@@ -113,11 +88,10 @@ export default class WebGLResource extends Resource {
113
88
  return defaultValue;
114
89
  }
115
90
  }
116
-
117
91
  return this._getParameter(pname, props);
118
92
  }
119
-
120
- getParameters(options = {}) {
93
+ getParameters() {
94
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
121
95
  const {
122
96
  parameters,
123
97
  keys
@@ -126,85 +100,64 @@ export default class WebGLResource extends Resource {
126
100
  const isWebgl2 = isWebGL2(this.gl);
127
101
  const values = {};
128
102
  const parameterKeys = parameters || Object.keys(PARAMETERS);
129
-
130
103
  for (const pname of parameterKeys) {
131
104
  const parameter = PARAMETERS[pname];
132
105
  const parameterAvailable = parameter && (!('webgl2' in parameter) || isWebgl2) && (!('extension' in parameter) || this.gl.getExtension(parameter.extension));
133
-
134
106
  if (parameterAvailable) {
135
107
  const key = keys ? getKey(this.gl, pname) : pname;
136
108
  values[key] = this.getParameter(pname, options);
137
-
138
109
  if (keys && parameter.type === 'GLenum') {
139
110
  values[key] = getKey(this.gl, values[key]);
140
111
  }
141
112
  }
142
113
  }
143
-
144
114
  return values;
145
115
  }
146
-
147
116
  setParameter(pname, value) {
148
117
  pname = getKeyValue(this.gl, pname);
149
118
  assert(pname);
150
119
  const parameters = this.constructor.PARAMETERS || {};
151
120
  const parameter = parameters[pname];
152
-
153
121
  if (parameter) {
154
122
  const isWebgl2 = isWebGL2(this.gl);
155
123
  const parameterAvailable = (!('webgl2' in parameter) || isWebgl2) && (!('extension' in parameter) || this.gl.getExtension(parameter.extension));
156
-
157
124
  if (!parameterAvailable) {
158
125
  throw new Error('Parameter not available on this platform');
159
126
  }
160
-
161
127
  if (parameter.type === 'GLenum') {
162
128
  value = getKeyValue(value);
163
129
  }
164
130
  }
165
-
166
131
  this._setParameter(pname, value);
167
-
168
132
  return this;
169
133
  }
170
-
171
134
  setParameters(parameters) {
172
135
  for (const pname in parameters) {
173
136
  this.setParameter(pname, parameters[pname]);
174
137
  }
175
-
176
138
  return this;
177
139
  }
178
-
179
140
  stubRemovedMethods(className, version, methodNames) {
180
141
  return stubRemovedMethods(this, className, version, methodNames);
181
142
  }
182
-
183
143
  initialize(props) {}
184
-
185
144
  _createHandle() {
186
145
  throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
187
146
  }
188
-
189
147
  _deleteHandle() {
190
148
  throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
191
149
  }
192
-
193
150
  _bindHandle(handle) {
194
151
  throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
195
152
  }
196
-
197
153
  _getOptsFromHandle() {
198
154
  throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
199
155
  }
200
-
201
156
  _getParameter(pname, props) {
202
157
  throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
203
158
  }
204
-
205
159
  _setParameter(pname, value) {
206
160
  throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
207
161
  }
208
-
209
162
  }
210
163
  //# sourceMappingURL=webgl-resource.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/adapter/objects/webgl-resource.ts"],"names":["Resource","assert","uid","stubRemovedMethods","isWebGL2","assertWebGLContext","WebGLDevice","getKey","getKeyValue","ERR_RESOURCE_METHOD_UNDEFINED","WebGLResource","constructor","device","props","defaultProps","attach","gl","id","gl2","name","_handle","handle","undefined","_createHandle","byteLength","toString","destroy","delete","deleteChildren","children","_deleteHandle","removeStats","filter","Boolean","forEach","child","bind","funcOrHandle","_bindHandle","value","_bound","unbind","getParameter","pname","parameters","PARAMETERS","parameter","isWebgl2","parameterAvailable","getExtension","extension","webgl1Default","webgl1","webgl2Default","webgl2","defaultValue","_getParameter","getParameters","options","keys","values","parameterKeys","Object","key","type","setParameter","Error","_setParameter","setParameters","className","version","methodNames","initialize","_getOptsFromHandle"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport {Resource, assert, uid, stubRemovedMethods} from '@luma.gl/api';\nimport type {Device, ResourceProps} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2, assertWebGLContext} from '../../context/context/webgl-checks';\nimport WebGLDevice from '../webgl-device';\n\n// Requires full GL enum to be bundled... Make these bindings dependent on dynamic import (debug)?\nimport {getKey, getKeyValue} from './constants-to-keys';\n\nconst ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual methods';\n\n/**\n * Base class for WebGL object wrappers\n */\n export default abstract class WebGLResource<Props extends ResourceProps> extends Resource<Props> {\n readonly device: WebGLDevice;\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext;\n private _handle: any;\n\n private _bound = false;\n // Only meaningful for resources that allocate GPU memory\n byteLength = 0;\n\n constructor(device: Device, props: Props, defaultProps: Required<Props>) {\n super(device, props, defaultProps);\n\n this.device = WebGLDevice.attach(device);\n const gl = this.device.gl;\n\n assertWebGLContext(gl);\n\n // extends \n const {id} = props || {};\n this.gl = gl;\n this.gl2 = gl as WebGL2RenderingContext;\n this.id = id || uid(this.constructor.name);\n\n // Set the handle\n // If handle was provided, use it, otherwise create a new handle\n\n // TODO - Stores the handle with context loss information\n // this.glCount = glGetContextLossCount(this.gl);\n\n // Default VertexArray needs to be created with null handle, so compare against undefined\n this._handle = props?.handle;\n if (this._handle === undefined) {\n this._handle = this._createHandle();\n }\n\n this.byteLength = 0;\n }\n\n override toString(): string {\n return `${this.constructor.name}(${this.id})`;\n }\n\n get handle() {\n // TODO - Add context loss handling\n // Will regenerate and reinitialize the handle if necessary\n // const glCount = glGetContextLossCount(this.gl);\n // if (this.glCount !== glCount) {\n // this._handle = this._createHandle(this.props);\n // this._glCount = glCount;\n // // Reinitialize object\n // this.initialize(this.props);\n // }\n return this._handle;\n }\n\n override destroy(): void {\n this.delete();\n }\n\n override delete({deleteChildren = false} = {}) {\n // Delete this object, and get refs to any children\n // @ts-expect-error\n const children = this._handle && this._deleteHandle(this._handle);\n if (this._handle) {\n this.removeStats();\n }\n this._handle = null;\n\n // Optionally, recursively delete the children\n // @ts-expect-error\n if (children && deleteChildren) {\n // @ts-expect-error\n children.filter(Boolean).forEach((child) => child.delete());\n }\n\n return this;\n }\n\n bind(funcOrHandle = this.handle) {\n if (typeof funcOrHandle !== 'function') {\n this._bindHandle(funcOrHandle);\n return this;\n }\n\n let value;\n\n if (!this._bound) {\n this._bindHandle(this.handle);\n this._bound = true;\n\n value = funcOrHandle();\n\n this._bound = false;\n this._bindHandle(null);\n } else {\n value = funcOrHandle();\n }\n\n return value;\n }\n\n unbind() {\n this.bind(null);\n }\n\n /**\n * Query a Resource parameter\n *\n * @param name\n * @return param\n */\n getParameter(pname: number, props: any = {}): any {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-expect-error\n const parameters = this.constructor.PARAMETERS || {};\n\n // Use parameter definitions to handle unsupported parameters\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if we can query for this parameter\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n const webgl1Default = parameter.webgl1;\n const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;\n const defaultValue = isWebgl2 ? webgl2Default : webgl1Default;\n return defaultValue;\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // Attempt to query for it and let WebGL report errors\n return this._getParameter(pname, props);\n }\n\n // Many resources support a getParameter call -\n // getParameters will get all parameters - slow but useful for debugging\n // eslint-disable-next-line complexity\n getParameters(options: {parameters?: any, keys?: any} = {}) {\n const {parameters, keys} = options;\n\n // Get parameter definitions for this Resource\n // @ts-expect-error\n const PARAMETERS = this.constructor.PARAMETERS || {};\n\n const isWebgl2 = isWebGL2(this.gl);\n\n const values: Record<string, any> = {};\n\n // Query all parameters if no list provided\n const parameterKeys = parameters || Object.keys(PARAMETERS);\n\n // WEBGL limits\n for (const pname of parameterKeys) {\n const parameter = PARAMETERS[pname];\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n parameter &&\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (parameterAvailable) {\n const key = keys ? getKey(this.gl, pname) : pname;\n values[key] = this.getParameter(pname, options);\n if (keys && parameter.type === 'GLenum') {\n values[key] = getKey(this.gl, values[key]);\n }\n }\n }\n\n return values;\n }\n\n /**\n * Update a Resource setting\n *\n * @todo - cache parameter to avoid issuing WebGL calls?\n *\n * @param pname - parameter (GL constant, value or key)\n * @param value {GLint|GLfloat|GLenum} \n * @return returns self to enable chaining\n */\n setParameter(pname: GL | string, value: any): this {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-expect-error\n const parameters = this.constructor.PARAMETERS || {};\n\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n throw new Error('Parameter not available on this platform');\n }\n\n // Handle string keys\n if (parameter.type === 'GLenum') {\n // @ts-expect-error\n value = getKeyValue(value);\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // attempt to set it and let WebGL report errors\n this._setParameter(pname, value);\n return this;\n }\n\n /*\n * Batch update resource parameters\n * Assumes the subclass supports a setParameter call\n */\n setParameters(parameters: Record<GL, any>) {\n for (const pname in parameters) {\n this.setParameter(pname, parameters[pname]);\n }\n return this;\n }\n\n // Install stubs for removed methods\n stubRemovedMethods(className: string, version: string, methodNames: string[]) {\n return stubRemovedMethods(this, className, version, methodNames);\n }\n\n // PUBLIC VIRTUAL METHODS\n initialize(props: ResourceProps) {}\n\n // PROTECTED METHODS - These must be overridden by subclass\n _createHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _deleteHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _bindHandle(handle: any) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getOptsFromHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getParameter(pname: GL, props: Record<string, any>): number {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _setParameter(pname: GL | string, value: any) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n // PRIVATE METHODS\n\n /*\n _addStats() {\n const name = this.constructor.name;\n const stats = lumaStats.get('Resource Counts');\n\n stats.get('Resources Created').incrementCount();\n stats.get(`${name}s Created`).incrementCount();\n stats.get(`${name}s Active`).incrementCount();\n }\n\n _removeStats() {\n const name = this.constructor.name;\n const stats = lumaStats.get('Resource Counts');\n\n stats.get(`${name}s Active`).decrementCount();\n }\n\n trackAllocatedMemory(bytes, name = this.constructor.name) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').addCount(bytes);\n stats.get(`${name} Memory`).addCount(bytes);\n this.byteLength = bytes;\n }\n\n trackDeallocatedMemory(name = this.constructor.name) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').subtractCount(this.byteLength);\n stats.get(`${name} Memory`).subtractCount(this.byteLength);\n this.byteLength = 0;\n }\n */\n}\n"],"file":"webgl-resource.js"}
1
+ {"version":3,"file":"webgl-resource.js","names":["Resource","assert","uid","stubRemovedMethods","isWebGL2","assertWebGLContext","WebGLDevice","getKey","getKeyValue","ERR_RESOURCE_METHOD_UNDEFINED","WebGLResource","constructor","device","props","defaultProps","_defineProperty","attach","gl","id","gl2","name","_handle","handle","undefined","_createHandle","byteLength","toString","concat","destroy","delete","deleteChildren","arguments","length","children","_deleteHandle","removeStats","filter","Boolean","forEach","child","bind","funcOrHandle","_bindHandle","value","_bound","unbind","getParameter","pname","parameters","PARAMETERS","parameter","isWebgl2","parameterAvailable","getExtension","extension","webgl1Default","webgl1","webgl2Default","webgl2","defaultValue","_getParameter","getParameters","options","keys","values","parameterKeys","Object","key","type","setParameter","Error","_setParameter","setParameters","className","version","methodNames","initialize","_getOptsFromHandle"],"sources":["../../../src/adapter/objects/webgl-resource.ts"],"sourcesContent":["// luma.gl, MIT license\nimport {Resource, assert, uid, stubRemovedMethods} from '@luma.gl/api';\nimport type {Device, ResourceProps} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2, assertWebGLContext} from '../../context/context/webgl-checks';\nimport WebGLDevice from '../webgl-device';\n\n// Requires full GL enum to be bundled... Make these bindings dependent on dynamic import (debug)?\nimport {getKey, getKeyValue} from './constants-to-keys';\n\nconst ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual methods';\n\n/**\n * Base class for WebGL object wrappers\n */\nexport default abstract class WebGLResource<Props extends ResourceProps> extends Resource<Props> {\n readonly device: WebGLDevice;\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext;\n private _handle: any;\n\n private _bound = false;\n // Only meaningful for resources that allocate GPU memory\n byteLength = 0;\n\n constructor(device: Device, props: Props, defaultProps: Required<Props>) {\n super(device, props, defaultProps);\n\n this.device = WebGLDevice.attach(device);\n const gl = this.device.gl;\n\n assertWebGLContext(gl);\n\n // extends \n const {id} = props || {};\n this.gl = gl;\n this.gl2 = gl as WebGL2RenderingContext;\n this.id = id || uid(this.constructor.name);\n\n // Set the handle\n // If handle was provided, use it, otherwise create a new handle\n\n // TODO - Stores the handle with context loss information\n // this.glCount = glGetContextLossCount(this.gl);\n\n // Default VertexArray needs to be created with null handle, so compare against undefined\n this._handle = props?.handle;\n if (this._handle === undefined) {\n this._handle = this._createHandle();\n }\n\n this.byteLength = 0;\n }\n\n override toString(): string {\n return `${this.constructor.name}(${this.id})`;\n }\n\n get handle() {\n // TODO - Add context loss handling\n // Will regenerate and reinitialize the handle if necessary\n // const glCount = glGetContextLossCount(this.gl);\n // if (this.glCount !== glCount) {\n // this._handle = this._createHandle(this.props);\n // this._glCount = glCount;\n // // Reinitialize object\n // this.initialize(this.props);\n // }\n return this._handle;\n }\n\n override destroy(): void {\n this.delete();\n }\n\n override delete({deleteChildren = false} = {}) {\n // Delete this object, and get refs to any children\n // @ts-expect-error\n const children = this._handle && this._deleteHandle(this._handle);\n if (this._handle) {\n this.removeStats();\n }\n this._handle = null;\n\n // Optionally, recursively delete the children\n // @ts-expect-error\n if (children && deleteChildren) {\n // @ts-expect-error\n children.filter(Boolean).forEach((child) => child.delete());\n }\n\n return this;\n }\n\n bind(funcOrHandle = this.handle) {\n if (typeof funcOrHandle !== 'function') {\n this._bindHandle(funcOrHandle);\n return this;\n }\n\n let value;\n\n if (!this._bound) {\n this._bindHandle(this.handle);\n this._bound = true;\n\n value = funcOrHandle();\n\n this._bound = false;\n this._bindHandle(null);\n } else {\n value = funcOrHandle();\n }\n\n return value;\n }\n\n unbind() {\n this.bind(null);\n }\n\n /**\n * Query a Resource parameter\n *\n * @param name\n * @return param\n */\n getParameter(pname: number, props: any = {}): any {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-expect-error\n const parameters = this.constructor.PARAMETERS || {};\n\n // Use parameter definitions to handle unsupported parameters\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if we can query for this parameter\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n const webgl1Default = parameter.webgl1;\n const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;\n const defaultValue = isWebgl2 ? webgl2Default : webgl1Default;\n return defaultValue;\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // Attempt to query for it and let WebGL report errors\n return this._getParameter(pname, props);\n }\n\n // Many resources support a getParameter call -\n // getParameters will get all parameters - slow but useful for debugging\n // eslint-disable-next-line complexity\n getParameters(options: {parameters?: any, keys?: any} = {}) {\n const {parameters, keys} = options;\n\n // Get parameter definitions for this Resource\n // @ts-expect-error\n const PARAMETERS = this.constructor.PARAMETERS || {};\n\n const isWebgl2 = isWebGL2(this.gl);\n\n const values: Record<string, any> = {};\n\n // Query all parameters if no list provided\n const parameterKeys = parameters || Object.keys(PARAMETERS);\n\n // WEBGL limits\n for (const pname of parameterKeys) {\n const parameter = PARAMETERS[pname];\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n parameter &&\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (parameterAvailable) {\n const key = keys ? getKey(this.gl, pname) : pname;\n values[key] = this.getParameter(pname, options);\n if (keys && parameter.type === 'GLenum') {\n values[key] = getKey(this.gl, values[key]);\n }\n }\n }\n\n return values;\n }\n\n /**\n * Update a Resource setting\n *\n * @todo - cache parameter to avoid issuing WebGL calls?\n *\n * @param pname - parameter (GL constant, value or key)\n * @param value {GLint|GLfloat|GLenum} \n * @return returns self to enable chaining\n */\n setParameter(pname: GL | string, value: any): this {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-expect-error\n const parameters = this.constructor.PARAMETERS || {};\n\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n throw new Error('Parameter not available on this platform');\n }\n\n // Handle string keys\n if (parameter.type === 'GLenum') {\n // @ts-expect-error\n value = getKeyValue(value);\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // attempt to set it and let WebGL report errors\n this._setParameter(pname, value);\n return this;\n }\n\n /*\n * Batch update resource parameters\n * Assumes the subclass supports a setParameter call\n */\n setParameters(parameters: Record<GL, any>) {\n for (const pname in parameters) {\n this.setParameter(pname, parameters[pname]);\n }\n return this;\n }\n\n // Install stubs for removed methods\n stubRemovedMethods(className: string, version: string, methodNames: string[]) {\n return stubRemovedMethods(this, className, version, methodNames);\n }\n\n // PUBLIC VIRTUAL METHODS\n initialize(props: ResourceProps) {}\n\n // PROTECTED METHODS - These must be overridden by subclass\n _createHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _deleteHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _bindHandle(handle: any) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getOptsFromHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getParameter(pname: GL, props: Record<string, any>): number {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _setParameter(pname: GL | string, value: any) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n // PRIVATE METHODS\n\n /*\n _addStats() {\n const name = this.constructor.name;\n const stats = lumaStats.get('Resource Counts');\n\n stats.get('Resources Created').incrementCount();\n stats.get(`${name}s Created`).incrementCount();\n stats.get(`${name}s Active`).incrementCount();\n }\n\n _removeStats() {\n const name = this.constructor.name;\n const stats = lumaStats.get('Resource Counts');\n\n stats.get(`${name}s Active`).decrementCount();\n }\n\n trackAllocatedMemory(bytes, name = this.constructor.name) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').addCount(bytes);\n stats.get(`${name} Memory`).addCount(bytes);\n this.byteLength = bytes;\n }\n\n trackDeallocatedMemory(name = this.constructor.name) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').subtractCount(this.byteLength);\n stats.get(`${name} Memory`).subtractCount(this.byteLength);\n this.byteLength = 0;\n }\n */\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-vertex-array-object.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-vertex-array-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,aAAa,EAAC,MAAM,cAAc,CAAC;AAInD,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAI/C;;GAEG;AACH,oBAAY,sBAAsB,GAAG,aAAa,GAAG,EACpD,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,aAAa,CAAC,sBAAsB,CAAC;IACxF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAEzC;gBAEW,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,sBAAsB;IAKtD,aAAa;IAIb,aAAa,IAAI,IAAI;IAOrB,WAAW,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAM1D,gBAAgB,CAAC,aAAa,GAAE,MAAM,GAAG,IAAW,EAAE,IAAI,KAAK;IAW/D,gGAAgG;IAChG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAgChE;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAO,GAAG,IAAI;CAe9C"}
1
+ {"version":3,"file":"webgl-vertex-array-object.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-vertex-array-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,aAAa,EAAC,MAAM,cAAc,CAAC;AAInD,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAI/C;;GAEG;AACH,oBAAY,sBAAsB,GAAG,aAAa,GAAG,EACpD,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,aAAa,CAAC,sBAAsB,CAAC;IACvF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAE1C;gBAEW,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,sBAAsB;IAKtD,aAAa;IAIb,aAAa,IAAI,IAAI;IAOrB,WAAW,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAM1D,gBAAgB,CAAC,aAAa,GAAE,MAAM,GAAG,IAAW,EAAE,IAAI,KAAK;IAW/D,gGAAgG;IAChG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAgChE;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAO,GAAG,IAAI;CAe9C"}