@luma.gl/webgl 8.6.0-alpha.1 → 8.6.0-alpha.5

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 (701) hide show
  1. package/LICENSE +8 -1
  2. package/dist/_deprecated/context-api.d.ts +85 -0
  3. package/dist/_deprecated/context-api.d.ts.map +1 -0
  4. package/dist/_deprecated/context-api.js +76 -0
  5. package/dist/_deprecated/context-api.js.map +1 -0
  6. package/dist/{features/webgl-features-table.d.ts → _deprecated/features.d.ts} +4 -7
  7. package/dist/_deprecated/features.d.ts.map +1 -0
  8. package/dist/_deprecated/features.js +111 -0
  9. package/dist/_deprecated/features.js.map +1 -0
  10. package/dist/adapter/converters/set-device-parameters.d.ts +5 -0
  11. package/dist/adapter/converters/set-device-parameters.d.ts.map +1 -0
  12. package/dist/adapter/converters/set-device-parameters.js +124 -0
  13. package/dist/adapter/converters/set-device-parameters.js.map +1 -0
  14. package/dist/adapter/converters/webgpu-texture-formats.d.ts +281 -0
  15. package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +1 -0
  16. package/dist/adapter/converters/webgpu-texture-formats.js +285 -0
  17. package/dist/adapter/converters/webgpu-texture-formats.js.map +1 -0
  18. package/dist/adapter/device-helpers/device-features.d.ts +12 -0
  19. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -0
  20. package/dist/adapter/device-helpers/device-features.js +123 -0
  21. package/dist/adapter/device-helpers/device-features.js.map +1 -0
  22. package/dist/adapter/device-helpers/device-limits.d.ts +51 -0
  23. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -0
  24. package/dist/adapter/device-helpers/device-limits.js +90 -0
  25. package/dist/adapter/device-helpers/device-limits.js.map +1 -0
  26. package/dist/adapter/device-helpers/get-device-info.d.ts +4 -0
  27. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -0
  28. package/dist/adapter/device-helpers/get-device-info.js +44 -0
  29. package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
  30. package/dist/adapter/device-helpers/is-old-ie.d.ts +2 -0
  31. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -0
  32. package/dist/{esm/features/check-old-ie.js → adapter/device-helpers/is-old-ie.js} +3 -3
  33. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
  34. package/dist/adapter/webgl-device.d.ts +110 -0
  35. package/dist/adapter/webgl-device.d.ts.map +1 -0
  36. package/dist/adapter/webgl-device.js +207 -0
  37. package/dist/adapter/webgl-device.js.map +1 -0
  38. package/dist/adapter/webgl-shader.d.ts +18 -0
  39. package/dist/adapter/webgl-shader.d.ts.map +1 -0
  40. package/dist/adapter/webgl-shader.js +82 -0
  41. package/dist/adapter/webgl-shader.js.map +1 -0
  42. package/dist/classes/accessor.js +2 -2
  43. package/dist/classes/accessor.js.map +1 -1
  44. package/dist/classes/accessor.ts.disabled +1 -1
  45. package/dist/classes/clear.d.ts +3 -2
  46. package/dist/classes/clear.d.ts.map +1 -1
  47. package/dist/classes/clear.js +7 -4
  48. package/dist/classes/clear.js.map +1 -1
  49. package/dist/classes/copy-and-blit.d.ts +18 -1
  50. package/dist/classes/copy-and-blit.d.ts.map +1 -1
  51. package/dist/classes/copy-and-blit.js +30 -25
  52. package/dist/classes/copy-and-blit.js.map +1 -1
  53. package/dist/classes/framebuffer.d.ts +10 -1
  54. package/dist/classes/framebuffer.d.ts.map +1 -1
  55. package/dist/classes/framebuffer.js +15 -15
  56. package/dist/classes/framebuffer.js.map +1 -1
  57. package/dist/classes/program-configuration.d.ts +14 -17
  58. package/dist/classes/program-configuration.d.ts.map +1 -1
  59. package/dist/classes/program-configuration.js +10 -97
  60. package/dist/classes/program-configuration.js.map +1 -1
  61. package/dist/classes/program.d.ts +25 -20
  62. package/dist/classes/program.d.ts.map +1 -1
  63. package/dist/classes/program.js +39 -28
  64. package/dist/classes/program.js.map +1 -1
  65. package/dist/classes/query.d.ts.map +1 -1
  66. package/dist/classes/query.js +6 -5
  67. package/dist/classes/query.js.map +1 -1
  68. package/dist/classes/renderbuffer-formats.js +1 -1
  69. package/dist/classes/renderbuffer-formats.js.map +1 -1
  70. package/dist/classes/renderbuffer.d.ts.map +1 -1
  71. package/dist/classes/renderbuffer.js +4 -3
  72. package/dist/classes/renderbuffer.js.map +1 -1
  73. package/dist/classes/{webgl-shader.d.ts → shader.d.ts} +4 -13
  74. package/dist/classes/shader.d.ts.map +1 -0
  75. package/dist/classes/{webgl-shader.js → shader.js} +7 -79
  76. package/dist/classes/shader.js.map +1 -0
  77. package/dist/classes/texture-2d.d.ts +4 -3
  78. package/dist/classes/texture-2d.d.ts.map +1 -1
  79. package/dist/classes/texture-2d.js +5 -8
  80. package/dist/classes/texture-2d.js.map +1 -1
  81. package/dist/classes/texture-3d.d.ts +3 -2
  82. package/dist/classes/texture-3d.d.ts.map +1 -1
  83. package/dist/classes/texture-3d.js +15 -6
  84. package/dist/classes/texture-3d.js.map +1 -1
  85. package/dist/classes/texture-cube.d.ts +2 -1
  86. package/dist/classes/texture-cube.d.ts.map +1 -1
  87. package/dist/classes/texture-cube.js +3 -4
  88. package/dist/classes/texture-cube.js.map +1 -1
  89. package/dist/classes/texture-formats.js +1 -1
  90. package/dist/classes/texture-formats.js.map +1 -1
  91. package/dist/classes/texture.d.ts +14 -9
  92. package/dist/classes/texture.d.ts.map +1 -1
  93. package/dist/classes/texture.js +19 -18
  94. package/dist/classes/texture.js.map +1 -1
  95. package/dist/classes/transform-feedback.d.ts.map +1 -1
  96. package/dist/classes/transform-feedback.js +5 -4
  97. package/dist/classes/transform-feedback.js.map +1 -1
  98. package/dist/classes/uniform-buffer-layout.js +1 -1
  99. package/dist/classes/uniform-buffer-layout.js.map +1 -1
  100. package/dist/classes/uniforms.d.ts +0 -1
  101. package/dist/classes/uniforms.d.ts.map +1 -1
  102. package/dist/classes/uniforms.js +1 -2
  103. package/dist/classes/uniforms.js.map +1 -1
  104. package/dist/classes/vertex-array-object.d.ts +7 -6
  105. package/dist/classes/vertex-array-object.d.ts.map +1 -1
  106. package/dist/classes/vertex-array-object.js +11 -12
  107. package/dist/classes/vertex-array-object.js.map +1 -1
  108. package/dist/classes/vertex-array.d.ts +14 -14
  109. package/dist/classes/vertex-array.d.ts.map +1 -1
  110. package/dist/classes/vertex-array.js +3 -4
  111. package/dist/classes/vertex-array.js.map +1 -1
  112. package/dist/classes/webgl-buffer.d.ts +2 -0
  113. package/dist/classes/webgl-buffer.d.ts.map +1 -1
  114. package/dist/classes/webgl-buffer.js +8 -5
  115. package/dist/classes/webgl-buffer.js.map +1 -1
  116. package/dist/classes/webgl-resource.d.ts +6 -4
  117. package/dist/classes/webgl-resource.d.ts.map +1 -1
  118. package/dist/classes/webgl-resource.js +12 -8
  119. package/dist/classes/webgl-resource.js.map +1 -1
  120. package/dist/context/context/context-state.d.ts +18 -0
  121. package/dist/context/context/context-state.d.ts.map +1 -0
  122. package/dist/context/context/context-state.js +26 -0
  123. package/dist/context/context/context-state.js.map +1 -0
  124. package/dist/context/context/create-context.d.ts +40 -0
  125. package/dist/context/context/create-context.d.ts.map +1 -0
  126. package/dist/context/context/create-context.js +37 -0
  127. package/dist/context/context/create-context.js.map +1 -0
  128. package/dist/context/context/device-pixels.d.ts +25 -0
  129. package/dist/context/context/device-pixels.d.ts.map +1 -0
  130. package/dist/context/context/device-pixels.js +98 -0
  131. package/dist/context/context/device-pixels.js.map +1 -0
  132. package/dist/context/context/get-canvas.d.ts +13 -0
  133. package/dist/context/context/get-canvas.d.ts.map +1 -0
  134. package/dist/context/context/get-canvas.js +31 -0
  135. package/dist/context/context/get-canvas.js.map +1 -0
  136. package/dist/context/context/resize-context.d.ts +20 -0
  137. package/dist/context/context/resize-context.d.ts.map +1 -0
  138. package/dist/context/context/resize-context.js +15 -0
  139. package/dist/context/context/resize-context.js.map +1 -0
  140. package/dist/context/context/webgl-checks.d.ts +13 -0
  141. package/dist/context/context/webgl-checks.d.ts.map +1 -0
  142. package/dist/context/context/webgl-checks.js +34 -0
  143. package/dist/context/context/webgl-checks.js.map +1 -0
  144. package/dist/context/parameters/unified-parameter-api.d.ts +31 -0
  145. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -0
  146. package/dist/context/parameters/unified-parameter-api.js +65 -0
  147. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  148. package/dist/context/parameters/webgl-parameter-tables.d.ts +169 -0
  149. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -0
  150. package/dist/context/parameters/webgl-parameter-tables.js +445 -0
  151. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  152. package/dist/context/parameters/webgl-parameters.d.ts +144 -0
  153. package/dist/context/parameters/webgl-parameters.d.ts.map +1 -0
  154. package/dist/context/parameters/webgl-parameters.js +2 -0
  155. package/dist/context/parameters/webgl-parameters.js.map +1 -0
  156. package/dist/context/polyfill/get-parameter-polyfill.d.ts +2 -0
  157. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -0
  158. package/dist/context/polyfill/get-parameter-polyfill.js +91 -0
  159. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
  160. package/dist/context/polyfill/polyfill-context.d.ts +5 -0
  161. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -0
  162. package/dist/context/polyfill/polyfill-context.js +91 -0
  163. package/dist/context/polyfill/polyfill-context.js.map +1 -0
  164. package/dist/context/polyfill/polyfill-table.d.ts +48 -0
  165. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -0
  166. package/dist/context/polyfill/polyfill-table.js +160 -0
  167. package/dist/context/polyfill/polyfill-table.js.map +1 -0
  168. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts +2 -0
  169. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -0
  170. package/dist/context/polyfill/polyfill-vertex-array-object.js +335 -0
  171. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  172. package/dist/context/state-tracker/deep-array-equal.d.ts +3 -0
  173. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -0
  174. package/dist/context/state-tracker/deep-array-equal.js +21 -0
  175. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  176. package/dist/context/state-tracker/track-context-state.d.ts +22 -0
  177. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -0
  178. package/dist/context/state-tracker/track-context-state.js +169 -0
  179. package/dist/context/state-tracker/track-context-state.js.map +1 -0
  180. package/dist/context/state-tracker/with-parameters.d.ts +13 -0
  181. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -0
  182. package/dist/context/state-tracker/with-parameters.js +36 -0
  183. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  184. package/dist/debug/debug-uniforms.js +1 -1
  185. package/dist/debug/debug-uniforms.js.map +1 -1
  186. package/dist/debug/debug-vertex-array.js +2 -2
  187. package/dist/debug/debug-vertex-array.js.map +1 -1
  188. package/dist/es5/_deprecated/context-api.js +116 -0
  189. package/dist/es5/_deprecated/context-api.js.map +1 -0
  190. package/dist/es5/_deprecated/features.js +118 -0
  191. package/dist/es5/_deprecated/features.js.map +1 -0
  192. package/dist/es5/adapter/converters/set-device-parameters.js +138 -0
  193. package/dist/es5/adapter/converters/set-device-parameters.js.map +1 -0
  194. package/dist/es5/adapter/converters/webgpu-texture-formats.js +296 -0
  195. package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +1 -0
  196. package/dist/es5/adapter/device-helpers/device-features.js +152 -0
  197. package/dist/es5/adapter/device-helpers/device-features.js.map +1 -0
  198. package/dist/es5/adapter/device-helpers/device-limits.js +64 -0
  199. package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -0
  200. package/dist/es5/adapter/device-helpers/get-device-info.js +55 -0
  201. package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -0
  202. package/dist/es5/adapter/device-helpers/is-old-ie.js +16 -0
  203. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -0
  204. package/dist/es5/adapter/webgl-device.js +279 -0
  205. package/dist/es5/adapter/webgl-device.js.map +1 -0
  206. package/dist/es5/adapter/webgl-shader.js +155 -0
  207. package/dist/es5/adapter/webgl-shader.js.map +1 -0
  208. package/dist/es5/bundle.js +1 -1
  209. package/dist/es5/bundle.js.map +1 -1
  210. package/dist/es5/classes/accessor.js +104 -74
  211. package/dist/es5/classes/accessor.js.map +1 -1
  212. package/dist/es5/classes/accessor.ts.disabled +1 -1
  213. package/dist/es5/classes/clear.js +55 -34
  214. package/dist/es5/classes/clear.js.map +1 -1
  215. package/dist/es5/classes/copy-and-blit.js +175 -156
  216. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  217. package/dist/es5/classes/framebuffer.js +647 -518
  218. package/dist/es5/classes/framebuffer.js.map +1 -1
  219. package/dist/es5/classes/program-configuration.js +78 -128
  220. package/dist/es5/classes/program-configuration.js.map +1 -1
  221. package/dist/es5/classes/program.js +379 -292
  222. package/dist/es5/classes/program.js.map +1 -1
  223. package/dist/es5/classes/query.js +172 -107
  224. package/dist/es5/classes/query.js.map +1 -1
  225. package/dist/es5/classes/renderbuffer-formats.js +126 -164
  226. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  227. package/dist/es5/classes/renderbuffer.js +151 -98
  228. package/dist/es5/classes/renderbuffer.js.map +1 -1
  229. package/dist/es5/classes/shader.js +195 -0
  230. package/dist/es5/classes/shader.js.map +1 -0
  231. package/dist/es5/classes/texture-2d.js +44 -17
  232. package/dist/es5/classes/texture-2d.js.map +1 -1
  233. package/dist/es5/classes/texture-3d.js +107 -48
  234. package/dist/es5/classes/texture-3d.js.map +1 -1
  235. package/dist/es5/classes/texture-cube.js +169 -110
  236. package/dist/es5/classes/texture-cube.js.map +1 -1
  237. package/dist/es5/classes/texture-formats.js +42 -71
  238. package/dist/es5/classes/texture-formats.js.map +1 -1
  239. package/dist/es5/classes/texture.js +780 -665
  240. package/dist/es5/classes/texture.js.map +1 -1
  241. package/dist/es5/classes/transform-feedback.js +206 -150
  242. package/dist/es5/classes/transform-feedback.js.map +1 -1
  243. package/dist/es5/classes/uniform-buffer-layout.js +103 -89
  244. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  245. package/dist/es5/classes/uniforms.js +39 -80
  246. package/dist/es5/classes/uniforms.js.map +1 -1
  247. package/dist/es5/classes/vertex-array-object.js +268 -209
  248. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  249. package/dist/es5/classes/vertex-array.js +348 -303
  250. package/dist/es5/classes/vertex-array.js.map +1 -1
  251. package/dist/es5/classes/webgl-buffer.js +374 -303
  252. package/dist/es5/classes/webgl-buffer.js.map +1 -1
  253. package/dist/es5/classes/webgl-resource.js +231 -161
  254. package/dist/es5/classes/webgl-resource.js.map +1 -1
  255. package/dist/es5/context/context/context-state.js +31 -0
  256. package/dist/es5/context/context/context-state.js.map +1 -0
  257. package/dist/es5/context/context/create-context.js +57 -0
  258. package/dist/es5/context/context/create-context.js.map +1 -0
  259. package/dist/es5/context/context/device-pixels.js +115 -0
  260. package/dist/es5/context/context/device-pixels.js.map +1 -0
  261. package/dist/es5/context/context/get-canvas.js +40 -0
  262. package/dist/es5/context/context/get-canvas.js.map +1 -0
  263. package/dist/es5/context/context/resize-context.js +23 -0
  264. package/dist/es5/context/context/resize-context.js.map +1 -0
  265. package/dist/es5/context/context/webgl-checks.js +54 -0
  266. package/dist/es5/context/context/webgl-checks.js.map +1 -0
  267. package/dist/es5/context/parameters/unified-parameter-api.js +95 -0
  268. package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -0
  269. package/dist/es5/context/parameters/webgl-parameter-tables.js +392 -0
  270. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -0
  271. package/dist/es5/context/parameters/webgl-parameters.js +6 -0
  272. package/dist/es5/context/parameters/webgl-parameters.js.map +1 -0
  273. package/dist/es5/context/polyfill/get-parameter-polyfill.js +81 -0
  274. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -0
  275. package/dist/es5/context/polyfill/polyfill-context.js +134 -0
  276. package/dist/es5/context/polyfill/polyfill-context.js.map +1 -0
  277. package/dist/es5/context/polyfill/polyfill-table.js +166 -0
  278. package/dist/es5/context/polyfill/polyfill-table.js.map +1 -0
  279. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +341 -0
  280. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  281. package/dist/es5/context/state-tracker/deep-array-equal.js +28 -0
  282. package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -0
  283. package/dist/es5/context/state-tracker/track-context-state.js +196 -0
  284. package/dist/es5/context/state-tracker/track-context-state.js.map +1 -0
  285. package/dist/es5/context/state-tracker/with-parameters.js +44 -0
  286. package/dist/es5/context/state-tracker/with-parameters.js.map +1 -0
  287. package/dist/es5/debug/debug-program-configuration.js +48 -20
  288. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  289. package/dist/es5/debug/debug-uniforms.js +110 -70
  290. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  291. package/dist/es5/debug/debug-vertex-array.js +49 -54
  292. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  293. package/dist/es5/helpers/get-program-bindings.js +274 -0
  294. package/dist/es5/helpers/get-program-bindings.js.map +1 -0
  295. package/dist/es5/helpers/program-bindings.js +2 -0
  296. package/dist/es5/helpers/program-bindings.js.map +1 -0
  297. package/dist/es5/index.js +268 -192
  298. package/dist/es5/index.js.map +1 -1
  299. package/dist/es5/init.js +18 -14
  300. package/dist/es5/init.js.map +1 -1
  301. package/dist/es5/types/accessor.d.ts +29 -0
  302. package/dist/es5/webgl-utils/attribute-utils.js +74 -87
  303. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  304. package/dist/es5/webgl-utils/constants-to-keys.js +7 -7
  305. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  306. package/dist/es5/webgl-utils/format-utils.js +4 -4
  307. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  308. package/dist/es5/webgl-utils/get-error.js +18 -18
  309. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  310. package/dist/es5/webgl-utils/index.js +10 -10
  311. package/dist/es5/webgl-utils/parse-shader-compiler-log.js +53 -25
  312. package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +1 -1
  313. package/dist/es5/webgl-utils/texture-utils.js +32 -36
  314. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  315. package/dist/es5/webgl-utils/typed-array-utils.js +33 -32
  316. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  317. package/dist/esm/_deprecated/context-api.js +76 -0
  318. package/dist/esm/_deprecated/context-api.js.map +1 -0
  319. package/dist/esm/_deprecated/features.js +111 -0
  320. package/dist/esm/_deprecated/features.js.map +1 -0
  321. package/dist/esm/adapter/converters/set-device-parameters.js +124 -0
  322. package/dist/esm/adapter/converters/set-device-parameters.js.map +1 -0
  323. package/dist/esm/adapter/converters/webgpu-texture-formats.js +285 -0
  324. package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +1 -0
  325. package/dist/esm/adapter/device-helpers/device-features.js +123 -0
  326. package/dist/esm/adapter/device-helpers/device-features.js.map +1 -0
  327. package/dist/esm/adapter/device-helpers/device-limits.js +90 -0
  328. package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -0
  329. package/dist/esm/adapter/device-helpers/get-device-info.js +44 -0
  330. package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -0
  331. package/dist/{features/check-old-ie.js → esm/adapter/device-helpers/is-old-ie.js} +3 -3
  332. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -0
  333. package/dist/esm/adapter/webgl-device.js +207 -0
  334. package/dist/esm/adapter/webgl-device.js.map +1 -0
  335. package/dist/esm/adapter/webgl-shader.js +82 -0
  336. package/dist/esm/adapter/webgl-shader.js.map +1 -0
  337. package/dist/esm/classes/accessor.js +2 -2
  338. package/dist/esm/classes/accessor.js.map +1 -1
  339. package/dist/esm/classes/accessor.ts.disabled +1 -1
  340. package/dist/esm/classes/clear.js +7 -4
  341. package/dist/esm/classes/clear.js.map +1 -1
  342. package/dist/esm/classes/copy-and-blit.js +30 -25
  343. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  344. package/dist/esm/classes/framebuffer.js +15 -15
  345. package/dist/esm/classes/framebuffer.js.map +1 -1
  346. package/dist/esm/classes/program-configuration.js +10 -97
  347. package/dist/esm/classes/program-configuration.js.map +1 -1
  348. package/dist/esm/classes/program.js +39 -28
  349. package/dist/esm/classes/program.js.map +1 -1
  350. package/dist/esm/classes/query.js +6 -5
  351. package/dist/esm/classes/query.js.map +1 -1
  352. package/dist/esm/classes/renderbuffer-formats.js +1 -1
  353. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  354. package/dist/esm/classes/renderbuffer.js +4 -3
  355. package/dist/esm/classes/renderbuffer.js.map +1 -1
  356. package/dist/esm/classes/{webgl-shader.js → shader.js} +7 -79
  357. package/dist/esm/classes/shader.js.map +1 -0
  358. package/dist/esm/classes/texture-2d.js +5 -8
  359. package/dist/esm/classes/texture-2d.js.map +1 -1
  360. package/dist/esm/classes/texture-3d.js +15 -6
  361. package/dist/esm/classes/texture-3d.js.map +1 -1
  362. package/dist/esm/classes/texture-cube.js +3 -4
  363. package/dist/esm/classes/texture-cube.js.map +1 -1
  364. package/dist/esm/classes/texture-formats.js +1 -1
  365. package/dist/esm/classes/texture-formats.js.map +1 -1
  366. package/dist/esm/classes/texture.js +19 -18
  367. package/dist/esm/classes/texture.js.map +1 -1
  368. package/dist/esm/classes/transform-feedback.js +5 -4
  369. package/dist/esm/classes/transform-feedback.js.map +1 -1
  370. package/dist/esm/classes/uniform-buffer-layout.js +1 -1
  371. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  372. package/dist/esm/classes/uniforms.js +1 -2
  373. package/dist/esm/classes/uniforms.js.map +1 -1
  374. package/dist/esm/classes/vertex-array-object.js +11 -12
  375. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  376. package/dist/esm/classes/vertex-array.js +3 -4
  377. package/dist/esm/classes/vertex-array.js.map +1 -1
  378. package/dist/esm/classes/webgl-buffer.js +8 -5
  379. package/dist/esm/classes/webgl-buffer.js.map +1 -1
  380. package/dist/esm/classes/webgl-resource.js +12 -8
  381. package/dist/esm/classes/webgl-resource.js.map +1 -1
  382. package/dist/esm/context/context/context-state.js +26 -0
  383. package/dist/esm/context/context/context-state.js.map +1 -0
  384. package/dist/esm/context/context/create-context.js +37 -0
  385. package/dist/esm/context/context/create-context.js.map +1 -0
  386. package/dist/esm/context/context/device-pixels.js +98 -0
  387. package/dist/esm/context/context/device-pixels.js.map +1 -0
  388. package/dist/esm/context/context/get-canvas.js +31 -0
  389. package/dist/esm/context/context/get-canvas.js.map +1 -0
  390. package/dist/esm/context/context/resize-context.js +15 -0
  391. package/dist/esm/context/context/resize-context.js.map +1 -0
  392. package/dist/esm/context/context/webgl-checks.js +34 -0
  393. package/dist/esm/context/context/webgl-checks.js.map +1 -0
  394. package/dist/esm/context/parameters/unified-parameter-api.js +65 -0
  395. package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -0
  396. package/dist/esm/context/parameters/webgl-parameter-tables.js +445 -0
  397. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -0
  398. package/dist/esm/context/parameters/webgl-parameters.js +2 -0
  399. package/dist/esm/context/parameters/webgl-parameters.js.map +1 -0
  400. package/dist/esm/context/polyfill/get-parameter-polyfill.js +91 -0
  401. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -0
  402. package/dist/esm/context/polyfill/polyfill-context.js +91 -0
  403. package/dist/esm/context/polyfill/polyfill-context.js.map +1 -0
  404. package/dist/esm/context/polyfill/polyfill-table.js +160 -0
  405. package/dist/esm/context/polyfill/polyfill-table.js.map +1 -0
  406. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +335 -0
  407. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
  408. package/dist/esm/context/state-tracker/deep-array-equal.js +21 -0
  409. package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -0
  410. package/dist/esm/context/state-tracker/track-context-state.js +169 -0
  411. package/dist/esm/context/state-tracker/track-context-state.js.map +1 -0
  412. package/dist/esm/context/state-tracker/with-parameters.js +36 -0
  413. package/dist/esm/context/state-tracker/with-parameters.js.map +1 -0
  414. package/dist/esm/debug/debug-uniforms.js +1 -1
  415. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  416. package/dist/esm/debug/debug-vertex-array.js +2 -2
  417. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  418. package/dist/esm/helpers/get-program-bindings.js +228 -0
  419. package/dist/esm/helpers/get-program-bindings.js.map +1 -0
  420. package/dist/esm/helpers/program-bindings.js +2 -0
  421. package/dist/esm/helpers/program-bindings.js.map +1 -0
  422. package/dist/esm/index.js +26 -20
  423. package/dist/esm/index.js.map +1 -1
  424. package/dist/esm/init.js +11 -8
  425. package/dist/esm/init.js.map +1 -1
  426. package/dist/esm/types/accessor.d.ts +29 -0
  427. package/dist/esm/webgl-utils/attribute-utils.js +1 -1
  428. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  429. package/dist/esm/webgl-utils/constants-to-keys.js +1 -1
  430. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  431. package/dist/esm/webgl-utils/format-utils.js +1 -1
  432. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  433. package/dist/esm/webgl-utils/texture-utils.js +2 -2
  434. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  435. package/dist/esm/webgl-utils/typed-array-utils.js +22 -18
  436. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  437. package/dist/helpers/get-program-bindings.d.ts +8 -0
  438. package/dist/helpers/get-program-bindings.d.ts.map +1 -0
  439. package/dist/helpers/get-program-bindings.js +228 -0
  440. package/dist/helpers/get-program-bindings.js.map +1 -0
  441. package/dist/helpers/program-bindings.d.ts +41 -0
  442. package/dist/helpers/program-bindings.d.ts.map +1 -0
  443. package/dist/helpers/program-bindings.js +2 -0
  444. package/dist/helpers/program-bindings.js.map +1 -0
  445. package/dist/index.d.ts +41 -20
  446. package/dist/index.d.ts.map +1 -1
  447. package/dist/index.js +26 -20
  448. package/dist/index.js.map +1 -1
  449. package/dist/init.d.ts.map +1 -1
  450. package/dist/init.js +11 -8
  451. package/dist/init.js.map +1 -1
  452. package/dist/types/accessor.d.ts +29 -0
  453. package/dist/webgl-utils/attribute-utils.d.ts +1 -1
  454. package/dist/webgl-utils/attribute-utils.js +1 -1
  455. package/dist/webgl-utils/attribute-utils.js.map +1 -1
  456. package/dist/webgl-utils/constants-to-keys.js +1 -1
  457. package/dist/webgl-utils/constants-to-keys.js.map +1 -1
  458. package/dist/webgl-utils/format-utils.d.ts +2 -2
  459. package/dist/webgl-utils/format-utils.js +1 -1
  460. package/dist/webgl-utils/format-utils.js.map +1 -1
  461. package/dist/webgl-utils/texture-utils.d.ts +12 -8
  462. package/dist/webgl-utils/texture-utils.d.ts.map +1 -1
  463. package/dist/webgl-utils/texture-utils.js +2 -2
  464. package/dist/webgl-utils/texture-utils.js.map +1 -1
  465. package/dist/webgl-utils/typed-array-utils.d.ts +39 -32
  466. package/dist/webgl-utils/typed-array-utils.d.ts.map +1 -1
  467. package/dist/webgl-utils/typed-array-utils.js +22 -18
  468. package/dist/webgl-utils/typed-array-utils.js.map +1 -1
  469. package/package.json +5 -6
  470. package/src/.DS_Store +0 -0
  471. package/src/_deprecated/context-api.ts +146 -0
  472. package/src/_deprecated/features.ts +159 -0
  473. package/src/adapter/converters/set-device-parameters.ts +182 -0
  474. package/src/adapter/converters/webgpu-texture-formats.ts +167 -0
  475. package/src/adapter/device-helpers/device-features.ts +227 -0
  476. package/src/adapter/device-helpers/device-limits.ts +150 -0
  477. package/src/adapter/device-helpers/get-device-info.ts +49 -0
  478. package/src/{features/check-old-ie.ts → adapter/device-helpers/is-old-ie.ts} +3 -3
  479. package/src/adapter/webgl-device.ts +399 -0
  480. package/src/adapter/webgl-shader.ts +84 -0
  481. package/src/classes/accessor.js +2 -2
  482. package/src/classes/accessor.ts.disabled +1 -1
  483. package/src/classes/clear.ts +9 -4
  484. package/src/classes/copy-and-blit.ts +49 -52
  485. package/src/classes/framebuffer.ts +38 -35
  486. package/src/classes/program-configuration.ts +28 -81
  487. package/src/classes/program.ts +89 -75
  488. package/src/classes/query.ts +6 -6
  489. package/src/classes/renderbuffer-formats.ts +1 -1
  490. package/src/classes/renderbuffer.ts +5 -4
  491. package/src/classes/{webgl-shader.ts → shader.ts} +7 -78
  492. package/src/classes/texture-2d.ts +6 -11
  493. package/src/classes/texture-3d.ts +16 -11
  494. package/src/classes/texture-cube.ts +7 -7
  495. package/src/classes/texture-formats.ts +1 -1
  496. package/src/classes/texture.ts +39 -40
  497. package/src/classes/transform-feedback.ts +14 -13
  498. package/src/classes/uniform-buffer-layout.ts +1 -1
  499. package/src/classes/uniforms.ts +4 -10
  500. package/src/classes/vertex-array-object.ts +17 -20
  501. package/src/classes/vertex-array.ts +16 -11
  502. package/src/classes/webgl-buffer.ts +7 -5
  503. package/src/classes/webgl-resource.ts +20 -18
  504. package/src/context/context/context-state.ts +39 -0
  505. package/src/context/context/create-context.ts +83 -0
  506. package/src/context/context/device-pixels.ts +147 -0
  507. package/src/context/context/get-canvas.ts +37 -0
  508. package/src/context/context/resize-context.ts +37 -0
  509. package/src/context/context/webgl-checks.ts +49 -0
  510. package/src/context/parameters/unified-parameter-api.ts +128 -0
  511. package/src/context/parameters/webgl-parameter-tables.ts +625 -0
  512. package/src/context/parameters/webgl-parameters.ts +197 -0
  513. package/src/context/polyfill/get-parameter-polyfill.ts +118 -0
  514. package/src/context/polyfill/polyfill-context.ts +98 -0
  515. package/src/context/polyfill/polyfill-table.ts +162 -0
  516. package/src/context/polyfill/polyfill-vertex-array-object.ts +360 -0
  517. package/src/context/state-tracker/deep-array-equal.ts +20 -0
  518. package/src/context/state-tracker/track-context-state.ts +250 -0
  519. package/src/context/state-tracker/with-parameters.ts +50 -0
  520. package/src/debug/debug-uniforms.ts +1 -1
  521. package/src/debug/debug-vertex-array.ts +2 -4
  522. package/src/helpers/get-program-bindings.ts +244 -0
  523. package/src/helpers/program-bindings.ts +46 -0
  524. package/src/index.ts +94 -23
  525. package/src/init.ts +12 -9
  526. package/src/types/accessor.d.ts +29 -0
  527. package/src/types.ts +1 -1
  528. package/src/webgl-utils/attribute-utils.ts +1 -1
  529. package/src/webgl-utils/constants-to-keys.ts +1 -1
  530. package/src/webgl-utils/format-utils.ts +1 -1
  531. package/src/webgl-utils/{texture-utils.js → texture-utils.ts} +13 -10
  532. package/src/webgl-utils/{typed-array-utils.js → typed-array-utils.ts} +59 -16
  533. package/dist/classes/webgl-shader.d.ts.map +0 -1
  534. package/dist/classes/webgl-shader.js.map +0 -1
  535. package/dist/context/gl-context.d.ts +0 -15
  536. package/dist/context/gl-context.d.ts.map +0 -1
  537. package/dist/context/gl-context.js +0 -32
  538. package/dist/context/gl-context.js.map +0 -1
  539. package/dist/context/luma-context-data.d.ts +0 -31
  540. package/dist/context/luma-context-data.d.ts.map +0 -1
  541. package/dist/context/luma-context-data.js +0 -5
  542. package/dist/context/luma-context-data.js.map +0 -1
  543. package/dist/es5/classes/webgl-shader.js +0 -213
  544. package/dist/es5/classes/webgl-shader.js.map +0 -1
  545. package/dist/es5/context/gl-context.js +0 -46
  546. package/dist/es5/context/gl-context.js.map +0 -1
  547. package/dist/es5/context/luma-context-data.js +0 -12
  548. package/dist/es5/context/luma-context-data.js.map +0 -1
  549. package/dist/es5/features/check-glsl-extension.js +0 -40
  550. package/dist/es5/features/check-glsl-extension.js.map +0 -1
  551. package/dist/es5/features/check-old-ie.js +0 -15
  552. package/dist/es5/features/check-old-ie.js.map +0 -1
  553. package/dist/es5/features/features.js +0 -85
  554. package/dist/es5/features/features.js.map +0 -1
  555. package/dist/es5/features/index.js +0 -64
  556. package/dist/es5/features/index.js.map +0 -1
  557. package/dist/es5/features/limits.js +0 -72
  558. package/dist/es5/features/limits.js.map +0 -1
  559. package/dist/es5/features/webgl-features-table.js +0 -84
  560. package/dist/es5/features/webgl-features-table.js.map +0 -1
  561. package/dist/es5/features/webgl-limits-table.js +0 -172
  562. package/dist/es5/features/webgl-limits-table.js.map +0 -1
  563. package/dist/es5/utils/array-utils-flat.js +0 -50
  564. package/dist/es5/utils/array-utils-flat.js.map +0 -1
  565. package/dist/es5/utils/assert.js +0 -13
  566. package/dist/es5/utils/assert.js.map +0 -1
  567. package/dist/es5/utils/check-props.js +0 -50
  568. package/dist/es5/utils/check-props.js.map +0 -1
  569. package/dist/es5/utils/format-value.js +0 -57
  570. package/dist/es5/utils/format-value.js.map +0 -1
  571. package/dist/es5/utils/index.js +0 -68
  572. package/dist/es5/utils/index.js.map +0 -1
  573. package/dist/es5/utils/is-old-ie.js +0 -13
  574. package/dist/es5/utils/is-old-ie.js.map +0 -1
  575. package/dist/es5/utils/load-file.js +0 -43
  576. package/dist/es5/utils/load-file.js.map +0 -1
  577. package/dist/es5/utils/stub-methods.js +0 -25
  578. package/dist/es5/utils/stub-methods.js.map +0 -1
  579. package/dist/es5/utils/utils.js +0 -31
  580. package/dist/es5/utils/utils.js.map +0 -1
  581. package/dist/es5/webgl-utils/texture-utils.d.ts +0 -11
  582. package/dist/es5/webgl-utils/typed-array-utils.d.ts +0 -36
  583. package/dist/esm/classes/webgl-shader.js.map +0 -1
  584. package/dist/esm/context/gl-context.js +0 -32
  585. package/dist/esm/context/gl-context.js.map +0 -1
  586. package/dist/esm/context/luma-context-data.js +0 -5
  587. package/dist/esm/context/luma-context-data.js.map +0 -1
  588. package/dist/esm/features/check-glsl-extension.js +0 -27
  589. package/dist/esm/features/check-glsl-extension.js.map +0 -1
  590. package/dist/esm/features/check-old-ie.js.map +0 -1
  591. package/dist/esm/features/features.js +0 -67
  592. package/dist/esm/features/features.js.map +0 -1
  593. package/dist/esm/features/index.js +0 -5
  594. package/dist/esm/features/index.js.map +0 -1
  595. package/dist/esm/features/limits.js +0 -55
  596. package/dist/esm/features/limits.js.map +0 -1
  597. package/dist/esm/features/webgl-features-table.js +0 -71
  598. package/dist/esm/features/webgl-features-table.js.map +0 -1
  599. package/dist/esm/features/webgl-limits-table.js +0 -161
  600. package/dist/esm/features/webgl-limits-table.js.map +0 -1
  601. package/dist/esm/utils/array-utils-flat.js +0 -39
  602. package/dist/esm/utils/array-utils-flat.js.map +0 -1
  603. package/dist/esm/utils/assert.js +0 -6
  604. package/dist/esm/utils/assert.js.map +0 -1
  605. package/dist/esm/utils/check-props.js +0 -38
  606. package/dist/esm/utils/check-props.js.map +0 -1
  607. package/dist/esm/utils/format-value.js +0 -50
  608. package/dist/esm/utils/format-value.js.map +0 -1
  609. package/dist/esm/utils/index.js +0 -7
  610. package/dist/esm/utils/index.js.map +0 -1
  611. package/dist/esm/utils/is-old-ie.js +0 -5
  612. package/dist/esm/utils/is-old-ie.js.map +0 -1
  613. package/dist/esm/utils/load-file.js +0 -30
  614. package/dist/esm/utils/load-file.js.map +0 -1
  615. package/dist/esm/utils/stub-methods.js +0 -16
  616. package/dist/esm/utils/stub-methods.js.map +0 -1
  617. package/dist/esm/utils/utils.js +0 -20
  618. package/dist/esm/utils/utils.js.map +0 -1
  619. package/dist/esm/webgl-utils/texture-utils.d.ts +0 -11
  620. package/dist/esm/webgl-utils/typed-array-utils.d.ts +0 -36
  621. package/dist/features/check-glsl-extension.d.ts +0 -2
  622. package/dist/features/check-glsl-extension.d.ts.map +0 -1
  623. package/dist/features/check-glsl-extension.js +0 -27
  624. package/dist/features/check-glsl-extension.js.map +0 -1
  625. package/dist/features/check-old-ie.d.ts +0 -2
  626. package/dist/features/check-old-ie.d.ts.map +0 -1
  627. package/dist/features/check-old-ie.js.map +0 -1
  628. package/dist/features/features.d.ts +0 -6
  629. package/dist/features/features.d.ts.map +0 -1
  630. package/dist/features/features.js +0 -67
  631. package/dist/features/features.js.map +0 -1
  632. package/dist/features/index.d.ts +0 -5
  633. package/dist/features/index.d.ts.map +0 -1
  634. package/dist/features/index.js +0 -5
  635. package/dist/features/index.js.map +0 -1
  636. package/dist/features/limits.d.ts +0 -28
  637. package/dist/features/limits.d.ts.map +0 -1
  638. package/dist/features/limits.js +0 -55
  639. package/dist/features/limits.js.map +0 -1
  640. package/dist/features/webgl-features-table.d.ts.map +0 -1
  641. package/dist/features/webgl-features-table.js +0 -71
  642. package/dist/features/webgl-features-table.js.map +0 -1
  643. package/dist/features/webgl-limits-table.d.ts +0 -161
  644. package/dist/features/webgl-limits-table.d.ts.map +0 -1
  645. package/dist/features/webgl-limits-table.js +0 -161
  646. package/dist/features/webgl-limits-table.js.map +0 -1
  647. package/dist/utils/array-utils-flat.d.ts +0 -9
  648. package/dist/utils/array-utils-flat.d.ts.map +0 -1
  649. package/dist/utils/array-utils-flat.js +0 -39
  650. package/dist/utils/array-utils-flat.js.map +0 -1
  651. package/dist/utils/assert.d.ts +0 -2
  652. package/dist/utils/assert.d.ts.map +0 -1
  653. package/dist/utils/assert.js +0 -6
  654. package/dist/utils/assert.js.map +0 -1
  655. package/dist/utils/check-props.d.ts +0 -2
  656. package/dist/utils/check-props.d.ts.map +0 -1
  657. package/dist/utils/check-props.js +0 -38
  658. package/dist/utils/check-props.js.map +0 -1
  659. package/dist/utils/format-value.d.ts +0 -5
  660. package/dist/utils/format-value.d.ts.map +0 -1
  661. package/dist/utils/format-value.js +0 -50
  662. package/dist/utils/format-value.js.map +0 -1
  663. package/dist/utils/index.d.ts +0 -7
  664. package/dist/utils/index.d.ts.map +0 -1
  665. package/dist/utils/index.js +0 -7
  666. package/dist/utils/index.js.map +0 -1
  667. package/dist/utils/is-old-ie.d.ts +0 -4
  668. package/dist/utils/is-old-ie.d.ts.map +0 -1
  669. package/dist/utils/is-old-ie.js +0 -5
  670. package/dist/utils/is-old-ie.js.map +0 -1
  671. package/dist/utils/load-file.d.ts +0 -4
  672. package/dist/utils/load-file.d.ts.map +0 -1
  673. package/dist/utils/load-file.js +0 -30
  674. package/dist/utils/load-file.js.map +0 -1
  675. package/dist/utils/stub-methods.d.ts +0 -2
  676. package/dist/utils/stub-methods.d.ts.map +0 -1
  677. package/dist/utils/stub-methods.js +0 -16
  678. package/dist/utils/stub-methods.js.map +0 -1
  679. package/dist/utils/utils.d.ts +0 -15
  680. package/dist/utils/utils.d.ts.map +0 -1
  681. package/dist/utils/utils.js +0 -20
  682. package/dist/utils/utils.js.map +0 -1
  683. package/src/context/gl-context.ts +0 -31
  684. package/src/context/luma-context-data.ts +0 -27
  685. package/src/features/check-glsl-extension.ts +0 -34
  686. package/src/features/features.ts +0 -80
  687. package/src/features/index.ts +0 -5
  688. package/src/features/limits.ts +0 -66
  689. package/src/features/webgl-features-table.ts +0 -104
  690. package/src/features/webgl-limits-table.ts +0 -51
  691. package/src/utils/array-utils-flat.ts +0 -56
  692. package/src/utils/assert.ts +0 -7
  693. package/src/utils/check-props.ts +0 -68
  694. package/src/utils/format-value.ts +0 -37
  695. package/src/utils/index.ts +0 -6
  696. package/src/utils/is-old-ie.ts +0 -6
  697. package/src/utils/load-file.ts +0 -40
  698. package/src/utils/stub-methods.ts +0 -20
  699. package/src/utils/utils.ts +0 -35
  700. package/src/webgl-utils/texture-utils.d.ts +0 -11
  701. package/src/webgl-utils/typed-array-utils.d.ts +0 -36
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/renderbuffer.ts"],"names":["DEFAULT_RENDERBUFFER_PROPS","id","undefined","handle","userData","format","width","height","samples","ImmutableRenderbuffer","WebGLResource","isSupported","gl","options","constructor","props","_initialize","trackDeallocatedMemory","bindRenderbuffer","GL","RENDERBUFFER","renderbufferStorageMultisample","renderbufferStorage","trackAllocatedMemory","_createHandle","createRenderbuffer","_deleteHandle","deleteRenderbuffer","_bindHandle","Renderbuffer","getSamplesForFormat","getInternalformatParameter","SAMPLES","resize","size","initialize","Object","assign","_syncHandle","getRenderbufferParameter","RENDERBUFFER_INTERNAL_FORMAT","RENDERBUFFER_WIDTH","RENDERBUFFER_HEIGHT","RENDERBUFFER_SAMPLES","_getParameter","pname","value"],"mappings":"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","sourcesContent":["/* eslint-disable no-inline-comments */\nimport GL from '@luma.gl/constants';\nimport WebGLResource, {ResourceProps} from './webgl-resource';\nimport {isRenderbufferFormatSupported, getRenderbufferFormatBytesPerPixel} from './renderbuffer-formats';\nimport {isWebGL2} from '@luma.gl/gltools';\nimport {assert} from '../utils';\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 class ImmutableRenderbuffer extends WebGLResource<RenderbufferProps> {\n static isSupported(gl: WebGLRenderingContext, options?: {format?: number}): boolean {\n return !options.format || isRenderbufferFormatSupported(gl, options.format);\n }\n\n constructor(gl: WebGLRenderingContext, props: RenderbufferProps) {\n super(gl, props, DEFAULT_RENDERBUFFER_PROPS);\n this._initialize(this.props);\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 && isWebGL2(this.gl)) {\n // @ts-ignore\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 // RESOURECE 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): void {\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);\n }\n}\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 Renderbuffer extends ImmutableRenderbuffer {\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 ImmutableRenderbuffer.isSupported(gl, options);\n }\n\n static getSamplesForFormat(gl: WebGL2RenderingContext, options: {format: number}): number{\n // Polyfilled to return [0] under WebGL1\n return gl.getInternalformatParameter(GL.RENDERBUFFER, options.format, GL.SAMPLES);\n }\n\n constructor(gl: WebGLRenderingContext, props?: RenderbufferProps) {\n super(gl, 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 return this.initialize({...size, format: this.format, samples: this.samples});\n }\n return this;\n }\n\n /** Creates and initializes a renderbuffer object's data store */\n initialize(props: RenderbufferProps): this {\n Object.assign(this.props, props);\n this._initialize(this.props);\n return this;\n }\n\n // PRIVATE\n\n _syncHandle(handle) {\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);\n Object.assign(this.props, {\n format: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_INTERNAL_FORMAT),\n width: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_WIDTH),\n height: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_HEIGHT),\n samples: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_SAMPLES)\n });\n }\n\n // @param {Boolean} opt.autobind=true - method call will bind/unbind object\n // @returns {GLenum|GLint} - depends on pname\n _getParameter(pname) {\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);\n const value = this.gl.getRenderbufferParameter(GL.RENDERBUFFER, pname);\n // this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);\n return value;\n }\n}\n"],"file":"renderbuffer.js"}
1
+ {"version":3,"sources":["../../../src/classes/renderbuffer.ts"],"names":["DEFAULT_RENDERBUFFER_PROPS","id","undefined","handle","userData","format","width","height","samples","ImmutableRenderbuffer","gl","props","WebGLDevice","attach","_initialize","trackDeallocatedMemory","bindRenderbuffer","GL","RENDERBUFFER","renderbufferStorageMultisample","renderbufferStorage","trackAllocatedMemory","createRenderbuffer","deleteRenderbuffer","options","WebGLResource","Renderbuffer","size","initialize","Object","assign","getRenderbufferParameter","RENDERBUFFER_INTERNAL_FORMAT","RENDERBUFFER_WIDTH","RENDERBUFFER_HEIGHT","RENDERBUFFER_SAMPLES","pname","value","isSupported","getInternalformatParameter","SAMPLES"],"mappings":"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","sourcesContent":["/* eslint-disable no-inline-comments */\nimport {assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport WebGLDevice from '../adapter/webgl-device';\nimport WebGLResource, {ResourceProps} from './webgl-resource';\nimport {isRenderbufferFormatSupported, getRenderbufferFormatBytesPerPixel} from './renderbuffer-formats';\nimport {isWebGL2} from '../context/context/webgl-checks';\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 class ImmutableRenderbuffer extends WebGLResource<RenderbufferProps> {\n static isSupported(gl: WebGLRenderingContext, options?: {format?: number}): boolean {\n return !options.format || isRenderbufferFormatSupported(gl, options.format);\n }\n\n constructor(gl: WebGLRenderingContext, props: RenderbufferProps) {\n super(WebGLDevice.attach(gl), props, DEFAULT_RENDERBUFFER_PROPS);\n this._initialize(this.props);\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 && isWebGL2(this.gl)) {\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 // RESOURECE 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): void {\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);\n }\n}\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 Renderbuffer extends ImmutableRenderbuffer {\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 ImmutableRenderbuffer.isSupported(gl, options);\n }\n\n static getSamplesForFormat(gl: WebGL2RenderingContext, options: {format: number}): number{\n // Polyfilled to return [0] under WebGL1\n return gl.getInternalformatParameter(GL.RENDERBUFFER, options.format, GL.SAMPLES);\n }\n\n constructor(gl: WebGLRenderingContext, props?: RenderbufferProps) {\n super(gl, 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 return this.initialize({...size, format: this.format, samples: this.samples});\n }\n return this;\n }\n\n /** Creates and initializes a renderbuffer object's data store */\n initialize(props: RenderbufferProps): this {\n Object.assign(this.props, props);\n this._initialize(this.props);\n return this;\n }\n\n // PRIVATE\n\n _syncHandle(handle) {\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);\n Object.assign(this.props, {\n format: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_INTERNAL_FORMAT),\n width: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_WIDTH),\n height: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_HEIGHT),\n samples: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_SAMPLES)\n });\n }\n\n // @param {Boolean} opt.autobind=true - method call will bind/unbind object\n // @returns {GLenum|GLint} - depends on pname\n _getParameter(pname) {\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);\n const value = this.gl.getRenderbufferParameter(GL.RENDERBUFFER, pname);\n // this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);\n return value;\n }\n}\n"],"file":"renderbuffer.js"}
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.FragmentShader = exports.VertexShader = exports.Shader = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
24
+ var _api = require("@luma.gl/api");
25
+
26
+ var _constants = _interopRequireDefault(require("@luma.gl/constants"));
27
+
28
+ var _shadertools = require("@luma.gl/shadertools");
29
+
30
+ var _webglChecks = require("../context/context/webgl-checks");
31
+
32
+ var _webglShader = require("../adapter/webgl-shader");
33
+
34
+ var _webglDevice = _interopRequireDefault(require("../adapter/webgl-device"));
35
+
36
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
37
+
38
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
39
+
40
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
41
+
42
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
+
44
+ var ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';
45
+
46
+ var Shader = function (_WEBGLShader) {
47
+ (0, _inherits2.default)(Shader, _WEBGLShader);
48
+
49
+ var _super = _createSuper(Shader);
50
+
51
+ function Shader(gl, props) {
52
+ var _this;
53
+
54
+ (0, _classCallCheck2.default)(this, Shader);
55
+ (0, _webglChecks.assertWebGLContext)(gl);
56
+ (0, _api.assert)(typeof props.source === 'string', ERR_SOURCE);
57
+ _this = _super.call(this, _webglDevice.default.attach(gl), _objectSpread(_objectSpread({}, props), {}, {
58
+ stage: props.shaderType === _constants.default.VERTEX_SHADER ? 'vertex' : 'fragment'
59
+ }));
60
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "shaderType", void 0);
61
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "source", void 0);
62
+ _this.shaderType = props.shaderType;
63
+ _this.source = props.source;
64
+ var shaderName = (0, _shadertools.getShaderInfo)(props.source).name;
65
+
66
+ if (shaderName) {
67
+ _this.id = (0, _api.uid)(shaderName);
68
+ }
69
+
70
+ return _this;
71
+ }
72
+
73
+ (0, _createClass2.default)(Shader, [{
74
+ key: "initialize",
75
+ value: function initialize(props) {
76
+ this._compile(props.source);
77
+
78
+ var shaderName = (0, _shadertools.getShaderInfo)(props.source).name;
79
+
80
+ if (shaderName) {
81
+ this.id = (0, _api.uid)(shaderName);
82
+ }
83
+
84
+ return this;
85
+ }
86
+ }, {
87
+ key: "getParameter",
88
+ value: function getParameter(pname) {
89
+ return this.gl.getShaderParameter(this.handle, pname);
90
+ }
91
+ }, {
92
+ key: "toString",
93
+ value: function toString() {
94
+ return "".concat(Shader.getTypeName(this.shaderType), ":").concat(this.id);
95
+ }
96
+ }, {
97
+ key: "getName",
98
+ value: function getName() {
99
+ return (0, _shadertools.getShaderInfo)(this.source).name || 'unnamed-shader';
100
+ }
101
+ }, {
102
+ key: "getSource",
103
+ value: function getSource() {
104
+ return this.gl.getShaderSource(this.handle);
105
+ }
106
+ }, {
107
+ key: "getTranslatedSource",
108
+ value: function getTranslatedSource() {
109
+ var extension = this.gl.getExtension('WEBGL_debug_shaders');
110
+ return extension ? extension.getTranslatedShaderSource(this.handle) : 'No translated source available. WEBGL_debug_shaders not implemented';
111
+ }
112
+ }, {
113
+ key: "_getOptsFromHandle",
114
+ value: function _getOptsFromHandle() {
115
+ return {
116
+ type: this.getParameter(_constants.default.SHADER_TYPE),
117
+ source: this.getSource()
118
+ };
119
+ }
120
+ }], [{
121
+ key: "getTypeName",
122
+ value: function getTypeName(shaderType) {
123
+ switch (shaderType) {
124
+ case _constants.default.VERTEX_SHADER:
125
+ return 'vertex-shader';
126
+
127
+ case _constants.default.FRAGMENT_SHADER:
128
+ return 'fragment-shader';
129
+
130
+ default:
131
+ (0, _api.assert)(false);
132
+ return 'unknown';
133
+ }
134
+ }
135
+ }]);
136
+ return Shader;
137
+ }(_webglShader.WEBGLShader);
138
+
139
+ exports.Shader = Shader;
140
+
141
+ var VertexShader = function (_Shader) {
142
+ (0, _inherits2.default)(VertexShader, _Shader);
143
+
144
+ var _super2 = _createSuper(VertexShader);
145
+
146
+ function VertexShader(gl, props) {
147
+ (0, _classCallCheck2.default)(this, VertexShader);
148
+ return _super2.call(this, gl, getShaderProps(props, _constants.default.VERTEX_SHADER));
149
+ }
150
+
151
+ (0, _createClass2.default)(VertexShader, [{
152
+ key: "_createHandle",
153
+ value: function _createHandle() {
154
+ return this.gl.createShader(_constants.default.VERTEX_SHADER);
155
+ }
156
+ }]);
157
+ return VertexShader;
158
+ }(Shader);
159
+
160
+ exports.VertexShader = VertexShader;
161
+
162
+ var FragmentShader = function (_Shader2) {
163
+ (0, _inherits2.default)(FragmentShader, _Shader2);
164
+
165
+ var _super3 = _createSuper(FragmentShader);
166
+
167
+ function FragmentShader(gl, props) {
168
+ (0, _classCallCheck2.default)(this, FragmentShader);
169
+ return _super3.call(this, gl, getShaderProps(props, _constants.default.FRAGMENT_SHADER));
170
+ }
171
+
172
+ (0, _createClass2.default)(FragmentShader, [{
173
+ key: "_createHandle",
174
+ value: function _createHandle() {
175
+ return this.gl.createShader(_constants.default.FRAGMENT_SHADER);
176
+ }
177
+ }]);
178
+ return FragmentShader;
179
+ }(Shader);
180
+
181
+ exports.FragmentShader = FragmentShader;
182
+
183
+ function getShaderProps(props, shaderType) {
184
+ if (typeof props === 'string') {
185
+ return {
186
+ source: props,
187
+ shaderType: shaderType
188
+ };
189
+ }
190
+
191
+ return _objectSpread(_objectSpread({}, props), {}, {
192
+ shaderType: shaderType
193
+ });
194
+ }
195
+ //# sourceMappingURL=shader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/classes/shader.ts"],"names":["ERR_SOURCE","Shader","gl","props","source","WebGLDevice","attach","stage","shaderType","GL","VERTEX_SHADER","shaderName","name","id","_compile","pname","getShaderParameter","handle","getTypeName","getShaderSource","extension","getExtension","getTranslatedShaderSource","type","getParameter","SHADER_TYPE","getSource","FRAGMENT_SHADER","WEBGLShader","VertexShader","getShaderProps","createShader","FragmentShader"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport {assert, uid, ShaderProps} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {getShaderInfo} from '@luma.gl/shadertools';\nimport {assertWebGLContext} from '../context/context/webgl-checks';\nimport {WEBGLShader} from '../adapter/webgl-shader'\nimport WebGLDevice from '../adapter/webgl-device'\n\nconst ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';\n\nexport type {ShaderProps};\n\n/**\n * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline\n * This is an internal class, use FragmentShader or VertexShader\n */\nexport class Shader extends WEBGLShader {\n shaderType: GL.FRAGMENT_SHADER | GL.VERTEX_SHADER;\n source: string;\n\n static getTypeName(shaderType: any): 'vertex-shader' | 'fragment-shader' | 'unknown' {\n switch (shaderType) {\n case GL.VERTEX_SHADER:\n return 'vertex-shader';\n case GL.FRAGMENT_SHADER:\n return 'fragment-shader';\n default:\n assert(false);\n return 'unknown';\n }\n }\n\n constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'>) {\n assertWebGLContext(gl);\n assert(typeof props.source === 'string', ERR_SOURCE);\n super(WebGLDevice.attach(gl), {...props, stage: props.shaderType === GL.VERTEX_SHADER ? 'vertex' : 'fragment'});\n\n this.shaderType = props.shaderType;\n this.source = props.source;\n\n const shaderName = getShaderInfo(props.source).name;\n if (shaderName) {\n this.id = uid(shaderName);\n }\n }\n\n initialize(props: ShaderProps): this {\n this._compile(props.source);\n const shaderName = getShaderInfo(props.source).name;\n if (shaderName) {\n this.id = uid(shaderName);\n }\n return this;\n }\n\n // Accessors\n\n getParameter(pname: number): any {\n return this.gl.getShaderParameter(this.handle, pname);\n }\n\n toString(): string {\n return `${Shader.getTypeName(this.shaderType)}:${this.id}`;\n }\n\n getName(): string {\n return getShaderInfo(this.source).name || 'unnamed-shader';\n }\n\n getSource(): string {\n return this.gl.getShaderSource(this.handle);\n }\n\n /** Debug method - Returns translated source if available */\n getTranslatedSource(): string {\n const extension = this.gl.getExtension('WEBGL_debug_shaders');\n return extension\n ? extension.getTranslatedShaderSource(this.handle)\n : 'No translated source available. WEBGL_debug_shaders not implemented';\n }\n\n // PRIVATE METHODS\n\n _getOptsFromHandle() {\n return {\n type: this.getParameter(GL.SHADER_TYPE),\n source: this.getSource()\n };\n }\n}\n\n/**\n * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline\n * @deprecated Use `device.createShader({stage: 'vertex', ...})`\n */\n export class VertexShader extends Shader {\n constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'> | string) {\n super(gl, getShaderProps(props, GL.VERTEX_SHADER));\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createShader(GL.VERTEX_SHADER);\n }\n}\n\n/**\n * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline\n * @deprecated Use `device.createShader({stage: 'fragment', ...})`\n */\n export class FragmentShader extends Shader {\n constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'> | string) {\n super(gl, getShaderProps(props, GL.FRAGMENT_SHADER));\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createShader(GL.FRAGMENT_SHADER);\n }\n}\n\n// HELPERS\n\nfunction getShaderProps(props: Omit<ShaderProps, 'stage'> | string, shaderType: GL.VERTEX_SHADER | GL.FRAGMENT_SHADER): Omit<ShaderProps, 'stage'> {\n if (typeof props === 'string') {\n return {source: props, shaderType};\n }\n return {...props, shaderType};\n}\n"],"file":"shader.js"}
@@ -7,23 +7,39 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _constants = _interopRequireDefault(require("@luma.gl/constants"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
11
17
 
12
- var _gltools = require("@luma.gl/gltools");
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _api = require("@luma.gl/api");
23
+
24
+ var _constants = _interopRequireDefault(require("@luma.gl/constants"));
13
25
 
14
26
  var _texture = _interopRequireDefault(require("./texture"));
15
27
 
16
- var _loadFile = require("../utils/load-file");
28
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
17
29
 
18
- class Texture2D extends _texture.default {
19
- static isSupported(gl, opts) {
20
- return _texture.default.isSupported(gl, opts);
21
- }
30
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
31
+
32
+ var Texture2D = function (_Texture, _Symbol$toStringTag) {
33
+ (0, _inherits2.default)(Texture2D, _Texture);
22
34
 
23
- constructor(gl, props) {
35
+ var _super = _createSuper(Texture2D);
36
+
37
+ function Texture2D(device, props) {
24
38
  var _props;
25
39
 
26
- (0, _gltools.assertWebGLContext)(gl);
40
+ var _this;
41
+
42
+ (0, _classCallCheck2.default)(this, Texture2D);
27
43
 
28
44
  if (props instanceof Promise || typeof props === 'string') {
29
45
  props = {
@@ -33,22 +49,33 @@ class Texture2D extends _texture.default {
33
49
 
34
50
  if (typeof ((_props = props) === null || _props === void 0 ? void 0 : _props.data) === 'string') {
35
51
  props = Object.assign({}, props, {
36
- data: (0, _loadFile.loadImage)(props.data)
52
+ data: (0, _api.loadImage)(props.data)
37
53
  });
38
54
  }
39
55
 
40
- super(gl, Object.assign({}, props, {
56
+ _this = _super.call(this, device, Object.assign({}, props, {
41
57
  target: _constants.default.TEXTURE_2D
42
58
  }));
43
- this.initialize(props);
44
- Object.seal(this);
45
- }
46
59
 
47
- get [Symbol.toStringTag]() {
48
- return 'Texture2D';
60
+ _this.initialize(props);
61
+
62
+ Object.seal((0, _assertThisInitialized2.default)(_this));
63
+ return _this;
49
64
  }
50
65
 
51
- }
66
+ (0, _createClass2.default)(Texture2D, [{
67
+ key: _Symbol$toStringTag,
68
+ get: function get() {
69
+ return 'Texture2D';
70
+ }
71
+ }], [{
72
+ key: "isSupported",
73
+ value: function isSupported(device, opts) {
74
+ return _texture.default.isSupported(device, opts);
75
+ }
76
+ }]);
77
+ return Texture2D;
78
+ }(_texture.default, Symbol.toStringTag);
52
79
 
53
80
  exports.default = Texture2D;
54
81
  //# sourceMappingURL=texture-2d.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/texture-2d.ts"],"names":["Texture2D","Texture","isSupported","gl","opts","constructor","props","Promise","data","Object","assign","target","GL","TEXTURE_2D","initialize","seal","Symbol","toStringTag"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAMe,MAAMA,SAAN,SAAwBC,gBAAxB,CAAgC;AAC3B,SAAXC,WAAW,CAACC,EAAD,EAA4BC,IAA5B,EAAoD;AAEpE,WAAOH,iBAAQC,WAAR,CAAoBC,EAApB,EAAwBC,IAAxB,CAAP;AACD;;AAEDC,EAAAA,WAAW,CAACF,EAAD,EAA4BG,KAA5B,EAA8E;AAAA;;AACrF,qCAAmBH,EAAnB;;AAGF,QAAIG,KAAK,YAAYC,OAAjB,IAA4B,OAAOD,KAAP,KAAiB,QAAjD,EAA2D;AACzDA,MAAAA,KAAK,GAAG;AAACE,QAAAA,IAAI,EAAEF;AAAP,OAAR;AACD;;AAGD,QAAI,kBAAOA,KAAP,2CAAO,OAAOE,IAAd,MAAuB,QAA3B,EAAqC;AAEnCF,MAAAA,KAAK,GAAGG,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBJ,KAAlB,EAAyB;AAACE,QAAAA,IAAI,EAAE,yBAAUF,KAAK,CAACE,IAAhB;AAAP,OAAzB,CAAR;AACD;;AAED,UAAML,EAAN,EAAUM,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBJ,KAAlB,EAAyB;AAACK,MAAAA,MAAM,EAAEC,mBAAGC;AAAZ,KAAzB,CAAV;AAEA,SAAKC,UAAL,CAAgBR,KAAhB;AAEAG,IAAAA,MAAM,CAACM,IAAP,CAAY,IAAZ;AACD;;AAEsB,OAAlBC,MAAM,CAACC,WAAW,IAAY;AACjC,WAAO,WAAP;AACD;;AA7B4C","sourcesContent":["import GL from '@luma.gl/constants';\nimport {assertWebGLContext} from '@luma.gl/gltools';\nimport Texture, {TextureProps} from './texture';\nimport {loadImage} from '../utils/load-file';\n\n\nexport type Texture2DProps = TextureProps & {\n};\n\nexport default class Texture2D extends Texture {\n static isSupported(gl: WebGLRenderingContext, opts?: object): boolean {\n // @ts-expect-error\n return Texture.isSupported(gl, opts);\n }\n\n constructor(gl: WebGLRenderingContext, props?: Texture2DProps | Promise<Texture2DProps>) {\n assertWebGLContext(gl);\n\n // Signature: new Texture2D(gl, url | Promise)\n if (props instanceof Promise || typeof props === 'string') {\n props = {data: props};\n }\n\n // Signature: new Texture2D(gl, {data: url})\n if (typeof props?.data === 'string') {\n // @ts-expect-error\n props = Object.assign({}, props, {data: loadImage(props.data)});\n }\n\n super(gl, Object.assign({}, props, {target: GL.TEXTURE_2D}));\n\n this.initialize(props);\n\n Object.seal(this);\n }\n\n get [Symbol.toStringTag](): string {\n return 'Texture2D';\n }\n}\n"],"file":"texture-2d.js"}
1
+ {"version":3,"sources":["../../../src/classes/texture-2d.ts"],"names":["Texture2D","device","props","Promise","data","Object","assign","target","GL","TEXTURE_2D","initialize","seal","opts","Texture","isSupported","Symbol","toStringTag"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;IAMqBA,S;;;;;AAKnB,qBAAYC,MAAZ,EAAoDC,KAApD,EAAsG;AAAA;;AAAA;;AAAA;;AAEpG,QAAIA,KAAK,YAAYC,OAAjB,IAA4B,OAAOD,KAAP,KAAiB,QAAjD,EAA2D;AACzDA,MAAAA,KAAK,GAAG;AAACE,QAAAA,IAAI,EAAEF;AAAP,OAAR;AACD;;AAGD,QAAI,kBAAOA,KAAP,2CAAO,OAAOE,IAAd,MAAuB,QAA3B,EAAqC;AACnCF,MAAAA,KAAK,GAAGG,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBJ,KAAlB,EAAyB;AAACE,QAAAA,IAAI,EAAE,oBAAUF,KAAK,CAACE,IAAhB;AAAP,OAAzB,CAAR;AACD;;AAED,8BAAMH,MAAN,EAAcI,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBJ,KAAlB,EAAyB;AAACK,MAAAA,MAAM,EAAEC,mBAAGC;AAAZ,KAAzB,CAAd;;AAEA,UAAKC,UAAL,CAAgBR,KAAhB;;AAEAG,IAAAA,MAAM,CAACM,IAAP;AAfoG;AAgBrG;;;;SAED,eAAmC;AACjC,aAAO,WAAP;AACD;;;WAxBD,qBAAmBV,MAAnB,EAA2DW,IAA3D,EAAkG;AAChG,aAAOC,iBAAQC,WAAR,CAAoBb,MAApB,EAA4BW,IAA5B,CAAP;AACD;;;EAHoCC,gB,EAuBhCE,MAAM,CAACC,W","sourcesContent":["import {Device, loadImage} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport Texture, {TextureProps, TextureSupportOptions} from './texture';\n\n\nexport type Texture2DProps = TextureProps & {\n};\n\nexport default class Texture2D extends Texture {\n static isSupported(device: Device | WebGLRenderingContext, opts?: TextureSupportOptions): boolean {\n return Texture.isSupported(device, opts);\n }\n\n constructor(device: Device | WebGLRenderingContext, props?: Texture2DProps | Promise<Texture2DProps>) {\n // Signature: new Texture2D(gl, url | Promise)\n if (props instanceof Promise || typeof props === 'string') {\n props = {data: props};\n }\n\n // Signature: new Texture2D(gl, {data: url})\n if (typeof props?.data === 'string') {\n props = Object.assign({}, props, {data: loadImage(props.data)});\n }\n\n super(device, Object.assign({}, props, {target: GL.TEXTURE_2D}));\n\n this.initialize(props);\n\n Object.seal(this);\n }\n\n get [Symbol.toStringTag](): string {\n return 'Texture2D';\n }\n}\n"],"file":"texture-2d.js"}
@@ -7,9 +7,27 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
10
24
  var _constants = _interopRequireDefault(require("@luma.gl/constants"));
11
25
 
12
- var _gltools = require("@luma.gl/gltools");
26
+ var _webglDevice = _interopRequireDefault(require("../adapter/webgl-device"));
27
+
28
+ var _webglChecks = require("../context/context/webgl-checks");
29
+
30
+ var _withParameters = require("../context/state-tracker/with-parameters");
13
31
 
14
32
  var _texture = _interopRequireDefault(require("./texture"));
15
33
 
@@ -17,67 +35,108 @@ var _textureFormats = require("./texture-formats");
17
35
 
18
36
  var _webglBuffer = _interopRequireDefault(require("./webgl-buffer"));
19
37
 
20
- class Texture3D extends _texture.default {
21
- static isSupported(gl) {
22
- return (0, _gltools.isWebGL2)(gl);
23
- }
38
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
39
+
40
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
41
+
42
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
43
+
44
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
24
45
 
25
- constructor(gl, props = {}) {
26
- super(gl, props);
27
- (0, _gltools.assertWebGL2Context)(gl);
46
+ var Texture3D = function (_Texture, _Symbol$toStringTag) {
47
+ (0, _inherits2.default)(Texture3D, _Texture);
48
+
49
+ var _super = _createSuper(Texture3D);
50
+
51
+ function Texture3D(device) {
52
+ var _this;
53
+
54
+ var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
55
+ (0, _classCallCheck2.default)(this, Texture3D);
56
+ _this = _super.call(this, device, _objectSpread(_objectSpread({}, props), {}, {
57
+ target: _constants.default.TEXTURE_3D
58
+ }));
59
+ (0, _webglChecks.assertWebGL2Context)(_this.gl2);
28
60
  props = Object.assign({
29
61
  depth: 1
30
62
  }, props, {
31
63
  target: _constants.default.TEXTURE_3D,
32
64
  unpackFlipY: false
33
65
  });
34
- this.initialize(props);
35
- Object.seal(this);
36
- }
37
66
 
38
- get [Symbol.toStringTag]() {
39
- return 'Texture3D';
67
+ _this.initialize(props);
68
+
69
+ Object.seal((0, _assertThisInitialized2.default)(_this));
70
+ return _this;
40
71
  }
41
72
 
42
- setImageData({
43
- level = 0,
44
- dataFormat = _constants.default.RGBA,
45
- width,
46
- height,
47
- depth = 1,
48
- border = 0,
49
- format,
50
- type = _constants.default.UNSIGNED_BYTE,
51
- offset = 0,
52
- data,
53
- parameters = {}
54
- }) {
55
- this.trackDeallocatedMemory('Texture');
56
- this.gl.bindTexture(this.target, this.handle);
57
- (0, _gltools.withParameters)(this.gl, parameters, () => {
58
- if (ArrayBuffer.isView(data)) {
59
- this.gl.texImage3D(this.target, level, dataFormat, width, height, depth, border, format, type, data);
73
+ (0, _createClass2.default)(Texture3D, [{
74
+ key: _Symbol$toStringTag,
75
+ get: function get() {
76
+ return 'Texture3D';
77
+ }
78
+ }, {
79
+ key: "setImageData",
80
+ value: function setImageData(_ref) {
81
+ var _this2 = this;
82
+
83
+ var _ref$level = _ref.level,
84
+ level = _ref$level === void 0 ? 0 : _ref$level,
85
+ _ref$dataFormat = _ref.dataFormat,
86
+ dataFormat = _ref$dataFormat === void 0 ? _constants.default.RGBA : _ref$dataFormat,
87
+ width = _ref.width,
88
+ height = _ref.height,
89
+ _ref$depth = _ref.depth,
90
+ depth = _ref$depth === void 0 ? 1 : _ref$depth,
91
+ _ref$border = _ref.border,
92
+ border = _ref$border === void 0 ? 0 : _ref$border,
93
+ format = _ref.format,
94
+ _ref$type = _ref.type,
95
+ type = _ref$type === void 0 ? _constants.default.UNSIGNED_BYTE : _ref$type,
96
+ _ref$offset = _ref.offset,
97
+ offset = _ref$offset === void 0 ? 0 : _ref$offset,
98
+ data = _ref.data,
99
+ _ref$parameters = _ref.parameters,
100
+ parameters = _ref$parameters === void 0 ? {} : _ref$parameters;
101
+ this.trackDeallocatedMemory('Texture');
102
+ this.gl.bindTexture(this.target, this.handle);
103
+ (0, _withParameters.withParameters)(this.gl, parameters, function () {
104
+ if (ArrayBuffer.isView(data)) {
105
+ _this2.gl.texImage3D(_this2.target, level, dataFormat, width, height, depth, border, format, type, data);
106
+ }
107
+
108
+ if (data instanceof _webglBuffer.default) {
109
+ _this2.gl.bindBuffer(_constants.default.PIXEL_UNPACK_BUFFER, data.handle);
110
+
111
+ _this2.gl.texImage3D(_this2.target, level, dataFormat, width, height, depth, border, format, type, offset);
112
+ }
113
+ });
114
+
115
+ if (data && data.byteLength) {
116
+ this.trackAllocatedMemory(data.byteLength, 'Texture');
117
+ } else {
118
+ var channels = _textureFormats.DATA_FORMAT_CHANNELS[this.dataFormat] || 4;
119
+ var channelSize = _textureFormats.TYPE_SIZES[this.type] || 1;
120
+ this.trackAllocatedMemory(this.width * this.height * this.depth * channels * channelSize, 'Texture');
60
121
  }
61
122
 
62
- if (data instanceof _webglBuffer.default) {
63
- this.gl.bindBuffer(_constants.default.PIXEL_UNPACK_BUFFER, data.handle);
64
- this.gl.texImage3D(this.target, level, dataFormat, width, height, depth, border, format, type, offset);
123
+ this.loaded = true;
124
+ return this;
125
+ }
126
+ }], [{
127
+ key: "isSupported",
128
+ value: function isSupported(device) {
129
+ try {
130
+ var webglDevice = _webglDevice.default.attach(device);
131
+
132
+ return webglDevice.isWebGL2;
133
+ } catch (_unused) {
134
+ return false;
65
135
  }
66
- });
67
-
68
- if (data && data.byteLength) {
69
- this.trackAllocatedMemory(data.byteLength, 'Texture');
70
- } else {
71
- const channels = _textureFormats.DATA_FORMAT_CHANNELS[this.dataFormat] || 4;
72
- const channelSize = _textureFormats.TYPE_SIZES[this.type] || 1;
73
- this.trackAllocatedMemory(this.width * this.height * this.depth * channels * channelSize, 'Texture');
74
136
  }
75
-
76
- this.loaded = true;
77
- return this;
78
- }
79
-
80
- }
137
+ }]);
138
+ return Texture3D;
139
+ }(_texture.default, Symbol.toStringTag);
81
140
 
82
141
  exports.default = Texture3D;
83
142
  //# sourceMappingURL=texture-3d.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/texture-3d.ts"],"names":["Texture3D","Texture","isSupported","gl","constructor","props","Object","assign","depth","target","GL","TEXTURE_3D","unpackFlipY","initialize","seal","Symbol","toStringTag","setImageData","level","dataFormat","RGBA","width","height","border","format","type","UNSIGNED_BYTE","offset","data","parameters","trackDeallocatedMemory","bindTexture","handle","ArrayBuffer","isView","texImage3D","Buffer","bindBuffer","PIXEL_UNPACK_BUFFER","byteLength","trackAllocatedMemory","channels","DATA_FORMAT_CHANNELS","channelSize","TYPE_SIZES","loaded"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAuBe,MAAMA,SAAN,SAAwBC,gBAAxB,CAAgC;AAC3B,SAAXC,WAAW,CAACC,EAAD,EAAqC;AACrD,WAAO,uBAASA,EAAT,CAAP;AACD;;AAEDC,EAAAA,WAAW,CAACD,EAAD,EAA6BE,KAAqB,GAAG,EAArD,EAAyD;AAClE,UAAMF,EAAN,EAAmCE,KAAnC;AACA,sCAAoBF,EAApB;AACAE,IAAAA,KAAK,GAAGC,MAAM,CAACC,MAAP,CAAc;AAACC,MAAAA,KAAK,EAAE;AAAR,KAAd,EAA0BH,KAA1B,EAAiC;AAACI,MAAAA,MAAM,EAAEC,mBAAGC,UAAZ;AAAwBC,MAAAA,WAAW,EAAE;AAArC,KAAjC,CAAR;AACA,SAAKC,UAAL,CAAgBR,KAAhB;AAEAC,IAAAA,MAAM,CAACQ,IAAP,CAAY,IAAZ;AACD;;AAEsB,OAAlBC,MAAM,CAACC,WAAW,IAAY;AACjC,WAAO,WAAP;AACD;;AAGDC,EAAAA,YAAY,CAAC;AACXC,IAAAA,KAAK,GAAG,CADG;AAEXC,IAAAA,UAAU,GAAGT,mBAAGU,IAFL;AAGXC,IAAAA,KAHW;AAIXC,IAAAA,MAJW;AAKXd,IAAAA,KAAK,GAAG,CALG;AAMXe,IAAAA,MAAM,GAAG,CANE;AAOXC,IAAAA,MAPW;AAQXC,IAAAA,IAAI,GAAGf,mBAAGgB,aARC;AASXC,IAAAA,MAAM,GAAG,CATE;AAUXC,IAAAA,IAVW;AAWXC,IAAAA,UAAU,GAAG;AAXF,GAAD,EAYY;AACtB,SAAKC,sBAAL,CAA4B,SAA5B;AAEA,SAAK3B,EAAL,CAAQ4B,WAAR,CAAoB,KAAKtB,MAAzB,EAAiC,KAAKuB,MAAtC;AAEA,iCAAe,KAAK7B,EAApB,EAAwB0B,UAAxB,EAAoC,MAAM;AACxC,UAAII,WAAW,CAACC,MAAZ,CAAmBN,IAAnB,CAAJ,EAA8B;AAE5B,aAAKzB,EAAL,CAAQgC,UAAR,CACE,KAAK1B,MADP,EAEES,KAFF,EAGEC,UAHF,EAIEE,KAJF,EAKEC,MALF,EAMEd,KANF,EAOEe,MAPF,EAQEC,MARF,EASEC,IATF,EAUEG,IAVF;AAYD;;AAED,UAAIA,IAAI,YAAYQ,oBAApB,EAA4B;AAC1B,aAAKjC,EAAL,CAAQkC,UAAR,CAAmB3B,mBAAG4B,mBAAtB,EAA2CV,IAAI,CAACI,MAAhD;AAEA,aAAK7B,EAAL,CAAQgC,UAAR,CACE,KAAK1B,MADP,EAEES,KAFF,EAGEC,UAHF,EAIEE,KAJF,EAKEC,MALF,EAMEd,KANF,EAOEe,MAPF,EAQEC,MARF,EASEC,IATF,EAUEE,MAVF;AAYD;AACF,KAjCD;;AAmCA,QAAIC,IAAI,IAAIA,IAAI,CAACW,UAAjB,EAA6B;AAC3B,WAAKC,oBAAL,CAA0BZ,IAAI,CAACW,UAA/B,EAA2C,SAA3C;AACD,KAFD,MAEO;AAGL,YAAME,QAAQ,GAAGC,qCAAqB,KAAKvB,UAA1B,KAAyC,CAA1D;AAEA,YAAMwB,WAAW,GAAGC,2BAAW,KAAKnB,IAAhB,KAAyB,CAA7C;AAEA,WAAKe,oBAAL,CACE,KAAKnB,KAAL,GAAa,KAAKC,MAAlB,GAA2B,KAAKd,KAAhC,GAAwCiC,QAAxC,GAAmDE,WADrD,EAEE,SAFF;AAID;;AAED,SAAKE,MAAL,GAAc,IAAd;AAEA,WAAO,IAAP;AACD;;AAzF4C","sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2, assertWebGL2Context, withParameters} from '@luma.gl/gltools';\nimport Texture, {TextureProps} from './texture';\nimport {DATA_FORMAT_CHANNELS, TYPE_SIZES} from './texture-formats';\nimport Buffer from './webgl-buffer';\n\nexport type Texture3DProps = TextureProps & {\n};\n\ntype SetImageDataOptions = {\n level?: number;\n dataFormat?: any;\n width: any;\n height: any;\n depth?: number;\n border?: number;\n format: any;\n type?: any;\n offset?: number;\n data: any;\n parameters?: {};\n};\n\n/**\n * Textures that have 3 dimensions: width, height, and depth.\n * They are accessed by 3-dimensional texture coordinates.\n */\nexport default class Texture3D extends Texture {\n static isSupported(gl: WebGLRenderingContext): boolean {\n return isWebGL2(gl);\n }\n\n constructor(gl: WebGL2RenderingContext, props: Texture3DProps = {}) {\n super(gl as WebGLRenderingContext, props);\n assertWebGL2Context(gl);\n props = Object.assign({depth: 1}, props, {target: GL.TEXTURE_3D, unpackFlipY: false});\n this.initialize(props);\n\n Object.seal(this);\n }\n\n get [Symbol.toStringTag](): string {\n return 'Texture3D';\n }\n\n /** Image 3D copies from Typed Array or WebGLBuffer */\n setImageData({\n level = 0,\n dataFormat = GL.RGBA,\n width,\n height,\n depth = 1,\n border = 0,\n format,\n type = GL.UNSIGNED_BYTE,\n offset = 0,\n data,\n parameters = {}\n }: SetImageDataOptions) {\n this.trackDeallocatedMemory('Texture');\n\n this.gl.bindTexture(this.target, this.handle);\n\n withParameters(this.gl, parameters, () => {\n if (ArrayBuffer.isView(data)) {\n // @ts-ignore\n this.gl.texImage3D(\n this.target,\n level,\n dataFormat,\n width,\n height,\n depth,\n border,\n format,\n type,\n data\n );\n }\n\n if (data instanceof Buffer) {\n this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);\n // @ts-ignore\n this.gl.texImage3D(\n this.target,\n level,\n dataFormat,\n width,\n height,\n depth,\n border,\n format,\n type,\n offset\n );\n }\n });\n\n if (data && data.byteLength) {\n this.trackAllocatedMemory(data.byteLength, 'Texture');\n } else {\n // NOTE(Tarek): Default to RGBA bytes\n // @ts-ignore\n const channels = DATA_FORMAT_CHANNELS[this.dataFormat] || 4;\n // @ts-ignore\n const channelSize = TYPE_SIZES[this.type] || 1;\n\n this.trackAllocatedMemory(\n this.width * this.height * this.depth * channels * channelSize,\n 'Texture'\n );\n }\n\n this.loaded = true;\n\n return this;\n }\n}\n"],"file":"texture-3d.js"}
1
+ {"version":3,"sources":["../../../src/classes/texture-3d.ts"],"names":["Texture3D","device","props","target","GL","TEXTURE_3D","gl2","Object","assign","depth","unpackFlipY","initialize","seal","level","dataFormat","RGBA","width","height","border","format","type","UNSIGNED_BYTE","offset","data","parameters","trackDeallocatedMemory","gl","bindTexture","handle","ArrayBuffer","isView","texImage3D","Buffer","bindBuffer","PIXEL_UNPACK_BUFFER","byteLength","trackAllocatedMemory","channels","DATA_FORMAT_CHANNELS","channelSize","TYPE_SIZES","loaded","webglDevice","WebGLDevice","attach","isWebGL2","Texture","Symbol","toStringTag"],"mappings":"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","sourcesContent":["import {Device} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport WebGLDevice from '../adapter/webgl-device';\nimport {assertWebGL2Context} from '../context/context/webgl-checks';\nimport {withParameters} from '../context/state-tracker/with-parameters';\nimport Texture, {TextureProps} from './texture';\nimport {DATA_FORMAT_CHANNELS, TYPE_SIZES} from './texture-formats';\nimport Buffer from './webgl-buffer';\n\nexport type Texture3DProps = TextureProps & {\n};\n\ntype SetImageDataOptions = {\n level?: number;\n dataFormat?: any;\n width: any;\n height: any;\n depth?: number;\n border?: number;\n format: any;\n type?: any;\n offset?: number;\n data: any;\n parameters?: {};\n};\n\n/**\n * Textures that have 3 dimensions: width, height, and depth.\n * They are accessed by 3-dimensional texture coordinates.\n */\nexport default class Texture3D extends Texture {\n static isSupported(device: Device | WebGLRenderingContext): boolean {\n try {\n const webglDevice = WebGLDevice.attach(device);\n return webglDevice.isWebGL2;\n } catch {\n return false;\n }\n }\n\n constructor(device: Device | WebGL2RenderingContext, props: Texture3DProps = {}) {\n super(device, {...props, target: GL.TEXTURE_3D});\n assertWebGL2Context(this.gl2);\n props = Object.assign({depth: 1}, props, {target: GL.TEXTURE_3D, unpackFlipY: false});\n this.initialize(props);\n Object.seal(this);\n }\n\n get [Symbol.toStringTag](): string {\n return 'Texture3D';\n }\n\n /** Image 3D copies from Typed Array or WebGLBuffer */\n setImageData({\n level = 0,\n dataFormat = GL.RGBA,\n width,\n height,\n depth = 1,\n border = 0,\n format,\n type = GL.UNSIGNED_BYTE,\n offset = 0,\n data,\n parameters = {}\n }: SetImageDataOptions) {\n this.trackDeallocatedMemory('Texture');\n\n this.gl.bindTexture(this.target, this.handle);\n\n withParameters(this.gl, parameters, () => {\n if (ArrayBuffer.isView(data)) {\n // @ts-expect-error\n this.gl.texImage3D(\n this.target,\n level,\n dataFormat,\n width,\n height,\n depth,\n border,\n format,\n type,\n data\n );\n }\n\n if (data instanceof Buffer) {\n this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);\n // @ts-expect-error\n this.gl.texImage3D(\n this.target,\n level,\n dataFormat,\n width,\n height,\n depth,\n border,\n format,\n type,\n offset\n );\n }\n });\n\n if (data && data.byteLength) {\n this.trackAllocatedMemory(data.byteLength, 'Texture');\n } else {\n // NOTE(Tarek): Default to RGBA bytes\n const channels = DATA_FORMAT_CHANNELS[this.dataFormat] || 4;\n const channelSize = TYPE_SIZES[this.type] || 1;\n\n this.trackAllocatedMemory(\n this.width * this.height * this.depth * channels * channelSize,\n 'Texture'\n );\n }\n\n this.loaded = true;\n\n return this;\n }\n}\n"],"file":"texture-3d.js"}