@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
@@ -2,8 +2,22 @@ import GL from '@luma.gl/constants';
2
2
 
3
3
  const ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';
4
4
 
5
- // Converts TYPED ARRAYS to corresponding GL constant
6
- // Used to auto deduce gl parameter types
5
+ type TypedArrayConstructor =
6
+ | Float32ArrayConstructor
7
+ | Uint16ArrayConstructor
8
+ | Uint32ArrayConstructor
9
+ | Uint8ArrayConstructor
10
+ | Uint8ClampedArrayConstructor
11
+ | Int8ArrayConstructor
12
+ | Int16ArrayConstructor
13
+ | Int32ArrayConstructor;
14
+
15
+ /**
16
+ * Converts TYPED ARRAYS to corresponding GL constant
17
+ * Used to auto deduce gl parameter types
18
+ * @param {*} arrayOrType
19
+ * @returns
20
+ */
7
21
  export function getGLTypeFromTypedArray(arrayOrType) {
8
22
  // If typed array, look up constructor
9
23
  const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
@@ -29,11 +43,21 @@ export function getGLTypeFromTypedArray(arrayOrType) {
29
43
  }
30
44
  }
31
45
 
32
- // Converts GL constant to corresponding TYPED ARRAY
33
- // Used to auto deduce gl parameter types
34
-
35
- /* eslint-disable complexity */
36
- export function getTypedArrayFromGLType(glType, {clamped = true} = {}) {
46
+ /**
47
+ * Converts GL constant to corresponding TYPED ARRAY
48
+ * Used to auto deduce gl parameter types
49
+ * @param {*} glType
50
+ * @param {*} param1
51
+ * @returns
52
+ */
53
+ // eslint-disable-next-line complexity
54
+ export function getTypedArrayFromGLType(
55
+ glType: any,
56
+ options?: {
57
+ clamped?: boolean;
58
+ }
59
+ ): TypedArrayConstructor {
60
+ const {clamped = true} = options || {};
37
61
  // Sorted in some order of likelihood to reduce amount of comparisons
38
62
  switch (glType) {
39
63
  case GL.FLOAT:
@@ -57,29 +81,48 @@ export function getTypedArrayFromGLType(glType, {clamped = true} = {}) {
57
81
  throw new Error('Failed to deduce typed array type from GL constant');
58
82
  }
59
83
  }
60
- /* eslint-enable complexity */
61
84
 
62
- // Flip rows (can be used on arrays returned from `Framebuffer.readPixels`)
63
- // https://stackoverflow.com/questions/41969562/
64
- // how-can-i-flip-the-result-of-webglrenderingcontext-readpixels
65
- export function flipRows({data, width, height, bytesPerPixel = 4, temp}) {
85
+ /**
86
+ * Flip rows (can be used on arrays returned from `Framebuffer.readPixels`)
87
+ * https: *stackoverflow.com/questions/41969562/
88
+ * how-can-i-flip-the-result-of-webglrenderingcontext-readpixels
89
+ * @param {*} param0
90
+ */
91
+ export function flipRows(options: {
92
+ data: any;
93
+ width: any;
94
+ height: any;
95
+ bytesPerPixel?: number;
96
+ temp?: any;
97
+ }): void {
98
+ const {data, width, height, bytesPerPixel = 4, temp} = options;
66
99
  const bytesPerRow = width * bytesPerPixel;
67
100
 
68
101
  // make a temp buffer to hold one row
69
- temp = temp || new Uint8Array(bytesPerRow);
102
+ const tempBuffer = temp || new Uint8Array(bytesPerRow);
70
103
  for (let y = 0; y < height / 2; ++y) {
71
104
  const topOffset = y * bytesPerRow;
72
105
  const bottomOffset = (height - y - 1) * bytesPerRow;
73
106
  // make copy of a row on the top half
74
- temp.set(data.subarray(topOffset, topOffset + bytesPerRow));
107
+ tempBuffer.set(data.subarray(topOffset, topOffset + bytesPerRow));
75
108
  // copy a row from the bottom half to the top
76
109
  data.copyWithin(topOffset, bottomOffset, bottomOffset + bytesPerRow);
77
110
  // copy the copy of the top half row to the bottom half
78
- data.set(temp, bottomOffset);
111
+ data.set(tempBuffer, bottomOffset);
79
112
  }
80
113
  }
81
114
 
82
- export function scalePixels({data, width, height}) {
115
+
116
+ export function scalePixels(options: {
117
+ data: any;
118
+ width: any;
119
+ height: any;
120
+ }): {
121
+ data: Uint8Array;
122
+ width: number;
123
+ height: number;
124
+ } {
125
+ const {data, width, height} = options;
83
126
  const newWidth = Math.round(width / 2);
84
127
  const newHeight = Math.round(height / 2);
85
128
  const newData = new Uint8Array(newWidth * newHeight * 4);
@@ -1 +0,0 @@
1
- {"version":3,"file":"webgl-shader.d.ts","sourceRoot":"","sources":["../../src/classes/webgl-shader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpC,OAAO,EAAgB,eAAe,EAAoB,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAC,MAAM,IAAI,SAAS,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AAO9D,YAAY,EAAC,WAAW,EAAC,CAAC;AAE1B,qBAAa,WAAY,SAAQ,SAAS;IACxC,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;gBAE1B,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,WAAW;IAiBzD,OAAO,IAAI,IAAI;IAST,eAAe,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;IAM5D,QAAQ,CAAC,MAAM,KAAA;CAqBhB;AAED;;;GAGG;AACH,qBAAa,MAAO,SAAQ,WAAW;IACrC,UAAU,EAAE,EAAE,CAAC,eAAe,GAAG,EAAE,CAAC,aAAa,CAAC;IAClD,MAAM,EAAE,MAAM,CAAC;IAEf,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS;gBAYxE,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;IAgBxE,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAWpC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG;IAIhC,QAAQ,IAAI,MAAM;IAIlB,OAAO,IAAI,MAAM;IAIjB,SAAS,IAAI,MAAM;IAInB,4DAA4D;IAC5D,mBAAmB,IAAI,MAAM;IAS7B,kBAAkB;;;;CAMnB;AAED;;;GAGG;AACF,qBAAa,YAAa,SAAQ,MAAM;gBAC3B,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,MAAM;IAKjF,aAAa;CAGd;AAED;;;GAGG;AACF,qBAAa,cAAe,SAAQ,MAAM;gBAC7B,EAAE,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,MAAM;IAKjF,aAAa;CAGd"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/classes/webgl-shader.ts"],"names":["GL","assertWebGLContext","log","getShaderInfo","formatCompilerLog","Shader","ShaderAPI","parseShaderCompilerLog","uid","assert","ERR_SOURCE","WEBGLShader","constructor","gl","props","id","getShaderIdFromProps","stage","handle","createShader","VERTEX_SHADER","FRAGMENT_SHADER","Error","_compile","source","destroy","removeStats","deleteShader","compilationInfo","getShaderInfoLog","startsWith","shaderSource","compileShader","compileStatus","getShaderParameter","COMPILE_STATUS","shaderLog","messages","filter","message","type","formattedLog","shaderName","name","shaderDescription","error","getTypeName","shaderType","initialize","getParameter","pname","toString","getName","getSource","getShaderSource","getTranslatedSource","extension","getExtension","getTranslatedShaderSource","_getOptsFromHandle","SHADER_TYPE","VertexShader","getShaderProps","_createHandle","FragmentShader"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport GL from '@luma.gl/constants';\nimport {assertWebGLContext, log} from '@luma.gl/gltools';\nimport {getShaderInfo, CompilerMessage, formatCompilerLog} from '@luma.gl/shadertools';\nimport {Shader as ShaderAPI, ShaderProps} from '@luma.gl/api';\nimport {parseShaderCompilerLog} from '../webgl-utils/parse-shader-compiler-log';\nimport {uid, assert} from '../utils';\n\nconst ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';\n\n\nexport type {ShaderProps};\n\nexport class WEBGLShader extends ShaderAPI {\n readonly gl: WebGLRenderingContext;\n readonly handle: WebGLShader;\n\n readonly stage: 'vertex' | 'fragment';\n\n constructor(gl: WebGLRenderingContext, props: ShaderProps) {\n super(gl as any, {id: getShaderIdFromProps(props), ...props});\n this.gl = gl;\n switch (this.props.stage) {\n case 'vertex':\n this.handle = this.props.handle || this.gl.createShader(GL.VERTEX_SHADER);\n break;\n case 'fragment':\n this.handle = this.props.handle || this.gl.createShader(GL.FRAGMENT_SHADER);\n break;\n default:\n throw new Error(this.props.stage);\n }\n this.stage = this.props.stage;\n this._compile(props.source);\n }\n\n destroy(): void {\n if (this.handle) {\n this.removeStats();\n this.gl.deleteShader(this.handle);\n // @ts-expect-error\n this.handle = null;\n }\n } \n \n async compilationInfo(): Promise<readonly CompilerMessage[]> {\n const log = this.gl.getShaderInfoLog(this.handle);\n return parseShaderCompilerLog(log);\n }\n\n // PRIVATE METHODS\n _compile(source) {\n if (!source.startsWith('#version ')) {\n source = `#version 100\\n${source}`;\n }\n this.gl.shaderSource(this.handle, source);\n this.gl.compileShader(this.handle);\n\n // TODO - For performance reasons, avoid checking shader compilation errors on production?\n // TODO - Load log even when no error reported, to catch warnings?\n // https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings\n const compileStatus = this.gl.getShaderParameter(this.handle, GL.COMPILE_STATUS);\n if (!compileStatus) {\n const shaderLog = this.gl.getShaderInfoLog(this.handle);\n const messages = parseShaderCompilerLog(shaderLog).filter(message => message.type === 'error');\n const formattedLog = formatCompilerLog(messages, source);\n const shaderName: string = getShaderInfo(source).name;\n const shaderDescription = `${this.stage} shader ${shaderName}`;\n log.error(`GLSL compilation errors in ${shaderName}\\n${formattedLog}`)();\n throw new Error(`GLSL compilation errors in ${shaderName}`);\n }\n }\n}\n \n/**\n * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline\n * For now this is an internal class\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\n // @ts-expect-error\n super(gl, {...props, id: getShaderIdFromProps(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\n/** Deduce an id, from shader source, or supplied id, or shader type */\nfunction getShaderIdFromProps(props: ShaderProps): string {\n return getShaderInfo(props.source).name ||\n props.id ||\n uid(`unnamed ${props.stage || Shader.getTypeName(props.shaderType)}`);\n}\n"],"file":"webgl-shader.js"}
@@ -1,15 +0,0 @@
1
- import type { GLContextOptions } from '@luma.gl/gltools';
2
- import { Device } from '@luma.gl/api';
3
- import type { BufferProps, ShaderProps } from '@luma.gl/api';
4
- import WEBGLBuffer from '../classes/webgl-buffer';
5
- import { WEBGLShader } from '../classes/webgl-shader';
6
- import Texture2D, { Texture2DProps } from '../classes/texture-2d';
7
- export default class GLContext extends Device {
8
- readonly gl: WebGLRenderingContext;
9
- readonly gl2: WebGL2RenderingContext | null;
10
- constructor(props: GLContextOptions);
11
- createBuffer(props: BufferProps): WEBGLBuffer;
12
- createTexture(props: Texture2DProps): Texture2D;
13
- createShader(props: ShaderProps): WEBGLShader;
14
- }
15
- //# sourceMappingURL=gl-context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gl-context.d.ts","sourceRoot":"","sources":["../../src/context/gl-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,EAAC,WAAW,EAAE,WAAW,EAAC,MAAM,cAAc,CAAC;AAC3D,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAC,WAAW,EAAG,MAAM,yBAAyB,CAAC;AACtD,OAAO,SAAS,EAAE,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAEhE,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,MAAM;IAC3C,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,GAAG,IAAI,CAAC;gBAEhC,KAAK,EAAE,gBAAgB;IAMnC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAI7C,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS;IAI/C,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;CAG9C"}
@@ -1,32 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { createGLContext, isWebGL2 } from '@luma.gl/gltools';
3
- import { Device } from '@luma.gl/api';
4
- import WEBGLBuffer from '../classes/webgl-buffer';
5
- import { WEBGLShader } from '../classes/webgl-shader';
6
- import Texture2D from '../classes/texture-2d';
7
- export default class GLContext extends Device {
8
- constructor(props) {
9
- super();
10
-
11
- _defineProperty(this, "gl", void 0);
12
-
13
- _defineProperty(this, "gl2", void 0);
14
-
15
- this.gl = createGLContext(props);
16
- this.gl2 = isWebGL2(this.gl) ? this.gl : null;
17
- }
18
-
19
- createBuffer(props) {
20
- return new WEBGLBuffer(this.gl, props);
21
- }
22
-
23
- createTexture(props) {
24
- return new Texture2D(this.gl, props);
25
- }
26
-
27
- createShader(props) {
28
- return new WEBGLShader(this.gl, props);
29
- }
30
-
31
- }
32
- //# sourceMappingURL=gl-context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/context/gl-context.ts"],"names":["createGLContext","isWebGL2","Device","WEBGLBuffer","WEBGLShader","Texture2D","GLContext","constructor","props","gl","gl2","createBuffer","createTexture","createShader"],"mappings":";AAEA,SAAQA,eAAR,EAAyBC,QAAzB,QAAwC,kBAAxC;AACA,SAAQC,MAAR,QAAqB,cAArB;AAEA,OAAOC,WAAP,MAAwB,yBAAxB;AACA,SAAQC,WAAR,QAA4B,yBAA5B;AACA,OAAOC,SAAP,MAAwC,uBAAxC;AAEA,eAAe,MAAMC,SAAN,SAAwBJ,MAAxB,CAA+B;AAI5CK,EAAAA,WAAW,CAACC,KAAD,EAA0B;AACnC;;AADmC;;AAAA;;AAEnC,SAAKC,EAAL,GAAUT,eAAe,CAACQ,KAAD,CAAzB;AACA,SAAKE,GAAL,GAAWT,QAAQ,CAAC,KAAKQ,EAAN,CAAR,GAAoB,KAAKA,EAAzB,GAAwD,IAAnE;AACD;;AAEDE,EAAAA,YAAY,CAACH,KAAD,EAAkC;AAC5C,WAAO,IAAIL,WAAJ,CAAgB,KAAKM,EAArB,EAAyBD,KAAzB,CAAP;AACD;;AAEDI,EAAAA,aAAa,CAACJ,KAAD,EAAmC;AAC9C,WAAO,IAAIH,SAAJ,CAAc,KAAKI,EAAnB,EAAuBD,KAAvB,CAAP;AACD;;AAEDK,EAAAA,YAAY,CAACL,KAAD,EAAkC;AAC5C,WAAO,IAAIJ,WAAJ,CAAgB,KAAKK,EAArB,EAAyBD,KAAzB,CAAP;AACD;;AApB2C","sourcesContent":["// \nimport type {GLContextOptions} from '@luma.gl/gltools';\nimport {createGLContext, isWebGL2} from '@luma.gl/gltools';\nimport {Device} from '@luma.gl/api';\nimport type {BufferProps, ShaderProps} from '@luma.gl/api';\nimport WEBGLBuffer from '../classes/webgl-buffer';\nimport {WEBGLShader, } from '../classes/webgl-shader';\nimport Texture2D, {Texture2DProps} from '../classes/texture-2d';\n\nexport default class GLContext extends Device {\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext | null;\n\n constructor(props: GLContextOptions) {\n super();\n this.gl = createGLContext(props);\n this.gl2 = isWebGL2(this.gl) ? this.gl as WebGL2RenderingContext : null;\n }\n\n createBuffer(props: BufferProps): WEBGLBuffer {\n return new WEBGLBuffer(this.gl, props);\n }\n\n createTexture(props: Texture2DProps): Texture2D {\n return new Texture2D(this.gl, props);\n }\n\n createShader(props: ShaderProps): WEBGLShader {\n return new WEBGLShader(this.gl, props);\n }\n}\n"],"file":"gl-context.js"}
@@ -1,31 +0,0 @@
1
- import type { default as Framebuffer } from '../classes/framebuffer';
2
- import type { default as VertexArrayObject } from '../classes/vertex-array-object';
3
- /**
4
- * Data stored by luma.gl on the context
5
- */
6
- export declare type LumaContextData = {
7
- defaultFramebuffer?: Framebuffer;
8
- defaultVertexArray?: VertexArrayObject;
9
- info: {
10
- [key: string]: any;
11
- };
12
- caps: {
13
- [key: string]: any;
14
- };
15
- limits: {
16
- [key: string]: any;
17
- };
18
- webgl1MinLimits: {
19
- [key: string]: any;
20
- };
21
- webgl2MinLimits: {
22
- [key: string]: any;
23
- };
24
- };
25
- /**
26
- *
27
- * @param gl
28
- * @returns
29
- */
30
- export declare function getLumaContextData(gl: WebGLRenderingContext): LumaContextData;
31
- //# sourceMappingURL=luma-context-data.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"luma-context-data.d.ts","sourceRoot":"","sources":["../../src/context/luma-context-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAC,OAAO,IAAI,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AAEjF;;GAEG;AACH,oBAAY,eAAe,GAAG;IAC5B,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IACvC,IAAI,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC3B,IAAI,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC3B,MAAM,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IAC7B,eAAe,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;IACtC,eAAe,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,CAAC;CACvC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,qBAAqB,GAAG,eAAe,CAK7E"}
@@ -1,5 +0,0 @@
1
- export function getLumaContextData(gl) {
2
- gl.luma = gl.luma || {};
3
- return gl.luma;
4
- }
5
- //# sourceMappingURL=luma-context-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/context/luma-context-data.ts"],"names":["getLumaContextData","gl","luma"],"mappings":"AAqBA,OAAO,SAASA,kBAAT,CAA4BC,EAA5B,EAAwE;AAE7EA,EAAAA,EAAE,CAACC,IAAH,GAAUD,EAAE,CAACC,IAAH,IAAW,EAArB;AAEA,SAAOD,EAAE,CAACC,IAAV;AACD","sourcesContent":["import type {default as Framebuffer} from '../classes/framebuffer';\nimport type {default as VertexArrayObject} from '../classes/vertex-array-object';\n\n/**\n * Data stored by luma.gl on the context\n */\nexport type LumaContextData = {\n defaultFramebuffer?: Framebuffer;\n defaultVertexArray?: VertexArrayObject;\n info: {[key: string]: any};\n caps: {[key: string]: any};\n limits: {[key: string]: any};\n webgl1MinLimits: {[key: string]: any};\n webgl2MinLimits: {[key: string]: any};\n};\n\n/**\n * \n * @param gl \n * @returns \n */\nexport function getLumaContextData(gl: WebGLRenderingContext): LumaContextData {\n // @ts-ignore\n gl.luma = gl.luma || {};\n // @ts-ignore\n return gl.luma as LumaContextData;\n}"],"file":"luma-context-data.js"}
@@ -1,213 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.FragmentShader = exports.VertexShader = exports.Shader = exports.WEBGLShader = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _constants = _interopRequireDefault(require("@luma.gl/constants"));
13
-
14
- var _gltools = require("@luma.gl/gltools");
15
-
16
- var _shadertools = require("@luma.gl/shadertools");
17
-
18
- var _api = require("@luma.gl/api");
19
-
20
- var _parseShaderCompilerLog = require("../webgl-utils/parse-shader-compiler-log");
21
-
22
- var _utils = require("../utils");
23
-
24
- const ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';
25
-
26
- class WEBGLShader extends _api.Shader {
27
- constructor(gl, props) {
28
- super(gl, {
29
- id: getShaderIdFromProps(props),
30
- ...props
31
- });
32
- (0, _defineProperty2.default)(this, "gl", void 0);
33
- (0, _defineProperty2.default)(this, "handle", void 0);
34
- (0, _defineProperty2.default)(this, "stage", void 0);
35
- this.gl = gl;
36
-
37
- switch (this.props.stage) {
38
- case 'vertex':
39
- this.handle = this.props.handle || this.gl.createShader(_constants.default.VERTEX_SHADER);
40
- break;
41
-
42
- case 'fragment':
43
- this.handle = this.props.handle || this.gl.createShader(_constants.default.FRAGMENT_SHADER);
44
- break;
45
-
46
- default:
47
- throw new Error(this.props.stage);
48
- }
49
-
50
- this.stage = this.props.stage;
51
-
52
- this._compile(props.source);
53
- }
54
-
55
- destroy() {
56
- if (this.handle) {
57
- this.removeStats();
58
- this.gl.deleteShader(this.handle);
59
- this.handle = null;
60
- }
61
- }
62
-
63
- async compilationInfo() {
64
- const log = this.gl.getShaderInfoLog(this.handle);
65
- return (0, _parseShaderCompilerLog.parseShaderCompilerLog)(log);
66
- }
67
-
68
- _compile(source) {
69
- if (!source.startsWith('#version ')) {
70
- source = "#version 100\n".concat(source);
71
- }
72
-
73
- this.gl.shaderSource(this.handle, source);
74
- this.gl.compileShader(this.handle);
75
- const compileStatus = this.gl.getShaderParameter(this.handle, _constants.default.COMPILE_STATUS);
76
-
77
- if (!compileStatus) {
78
- const shaderLog = this.gl.getShaderInfoLog(this.handle);
79
- const messages = (0, _parseShaderCompilerLog.parseShaderCompilerLog)(shaderLog).filter(message => message.type === 'error');
80
- const formattedLog = (0, _shadertools.formatCompilerLog)(messages, source);
81
- const shaderName = (0, _shadertools.getShaderInfo)(source).name;
82
- const shaderDescription = "".concat(this.stage, " shader ").concat(shaderName);
83
-
84
- _gltools.log.error("GLSL compilation errors in ".concat(shaderName, "\n").concat(formattedLog))();
85
-
86
- throw new Error("GLSL compilation errors in ".concat(shaderName));
87
- }
88
- }
89
-
90
- }
91
-
92
- exports.WEBGLShader = WEBGLShader;
93
-
94
- class Shader extends WEBGLShader {
95
- static getTypeName(shaderType) {
96
- switch (shaderType) {
97
- case _constants.default.VERTEX_SHADER:
98
- return 'vertex-shader';
99
-
100
- case _constants.default.FRAGMENT_SHADER:
101
- return 'fragment-shader';
102
-
103
- default:
104
- (0, _utils.assert)(false);
105
- return 'unknown';
106
- }
107
- }
108
-
109
- constructor(gl, props) {
110
- (0, _gltools.assertWebGLContext)(gl);
111
- (0, _utils.assert)(typeof props.source === 'string', ERR_SOURCE);
112
- super(gl, { ...props,
113
- id: getShaderIdFromProps(props),
114
- stage: props.shaderType === _constants.default.VERTEX_SHADER ? 'vertex' : 'fragment'
115
- });
116
- (0, _defineProperty2.default)(this, "shaderType", void 0);
117
- (0, _defineProperty2.default)(this, "source", void 0);
118
- this.shaderType = props.shaderType;
119
- this.source = props.source;
120
- const shaderName = (0, _shadertools.getShaderInfo)(props.source).name;
121
-
122
- if (shaderName) {
123
- this.id = (0, _utils.uid)(shaderName);
124
- }
125
- }
126
-
127
- initialize(props) {
128
- this._compile(props.source);
129
-
130
- const shaderName = (0, _shadertools.getShaderInfo)(props.source).name;
131
-
132
- if (shaderName) {
133
- this.id = (0, _utils.uid)(shaderName);
134
- }
135
-
136
- return this;
137
- }
138
-
139
- getParameter(pname) {
140
- return this.gl.getShaderParameter(this.handle, pname);
141
- }
142
-
143
- toString() {
144
- return "".concat(Shader.getTypeName(this.shaderType), ":").concat(this.id);
145
- }
146
-
147
- getName() {
148
- return (0, _shadertools.getShaderInfo)(this.source).name || 'unnamed-shader';
149
- }
150
-
151
- getSource() {
152
- return this.gl.getShaderSource(this.handle);
153
- }
154
-
155
- getTranslatedSource() {
156
- const extension = this.gl.getExtension('WEBGL_debug_shaders');
157
- return extension ? extension.getTranslatedShaderSource(this.handle) : 'No translated source available. WEBGL_debug_shaders not implemented';
158
- }
159
-
160
- _getOptsFromHandle() {
161
- return {
162
- type: this.getParameter(_constants.default.SHADER_TYPE),
163
- source: this.getSource()
164
- };
165
- }
166
-
167
- }
168
-
169
- exports.Shader = Shader;
170
-
171
- class VertexShader extends Shader {
172
- constructor(gl, props) {
173
- super(gl, getShaderProps(props, _constants.default.VERTEX_SHADER));
174
- }
175
-
176
- _createHandle() {
177
- return this.gl.createShader(_constants.default.VERTEX_SHADER);
178
- }
179
-
180
- }
181
-
182
- exports.VertexShader = VertexShader;
183
-
184
- class FragmentShader extends Shader {
185
- constructor(gl, props) {
186
- super(gl, getShaderProps(props, _constants.default.FRAGMENT_SHADER));
187
- }
188
-
189
- _createHandle() {
190
- return this.gl.createShader(_constants.default.FRAGMENT_SHADER);
191
- }
192
-
193
- }
194
-
195
- exports.FragmentShader = FragmentShader;
196
-
197
- function getShaderProps(props, shaderType) {
198
- if (typeof props === 'string') {
199
- return {
200
- source: props,
201
- shaderType
202
- };
203
- }
204
-
205
- return { ...props,
206
- shaderType
207
- };
208
- }
209
-
210
- function getShaderIdFromProps(props) {
211
- return (0, _shadertools.getShaderInfo)(props.source).name || props.id || (0, _utils.uid)("unnamed ".concat(props.stage || Shader.getTypeName(props.shaderType)));
212
- }
213
- //# sourceMappingURL=webgl-shader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/classes/webgl-shader.ts"],"names":["ERR_SOURCE","WEBGLShader","ShaderAPI","constructor","gl","props","id","getShaderIdFromProps","stage","handle","createShader","GL","VERTEX_SHADER","FRAGMENT_SHADER","Error","_compile","source","destroy","removeStats","deleteShader","compilationInfo","log","getShaderInfoLog","startsWith","shaderSource","compileShader","compileStatus","getShaderParameter","COMPILE_STATUS","shaderLog","messages","filter","message","type","formattedLog","shaderName","name","shaderDescription","error","Shader","getTypeName","shaderType","initialize","getParameter","pname","toString","getName","getSource","getShaderSource","getTranslatedSource","extension","getExtension","getTranslatedShaderSource","_getOptsFromHandle","SHADER_TYPE","VertexShader","getShaderProps","_createHandle","FragmentShader"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport GL from '@luma.gl/constants';\nimport {assertWebGLContext, log} from '@luma.gl/gltools';\nimport {getShaderInfo, CompilerMessage, formatCompilerLog} from '@luma.gl/shadertools';\nimport {Shader as ShaderAPI, ShaderProps} from '@luma.gl/api';\nimport {parseShaderCompilerLog} from '../webgl-utils/parse-shader-compiler-log';\nimport {uid, assert} from '../utils';\n\nconst ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';\n\n\nexport type {ShaderProps};\n\nexport class WEBGLShader extends ShaderAPI {\n readonly gl: WebGLRenderingContext;\n readonly handle: WebGLShader;\n\n readonly stage: 'vertex' | 'fragment';\n\n constructor(gl: WebGLRenderingContext, props: ShaderProps) {\n super(gl as any, {id: getShaderIdFromProps(props), ...props});\n this.gl = gl;\n switch (this.props.stage) {\n case 'vertex':\n this.handle = this.props.handle || this.gl.createShader(GL.VERTEX_SHADER);\n break;\n case 'fragment':\n this.handle = this.props.handle || this.gl.createShader(GL.FRAGMENT_SHADER);\n break;\n default:\n throw new Error(this.props.stage);\n }\n this.stage = this.props.stage;\n this._compile(props.source);\n }\n\n destroy(): void {\n if (this.handle) {\n this.removeStats();\n this.gl.deleteShader(this.handle);\n // @ts-expect-error\n this.handle = null;\n }\n } \n \n async compilationInfo(): Promise<readonly CompilerMessage[]> {\n const log = this.gl.getShaderInfoLog(this.handle);\n return parseShaderCompilerLog(log);\n }\n\n // PRIVATE METHODS\n _compile(source) {\n if (!source.startsWith('#version ')) {\n source = `#version 100\\n${source}`;\n }\n this.gl.shaderSource(this.handle, source);\n this.gl.compileShader(this.handle);\n\n // TODO - For performance reasons, avoid checking shader compilation errors on production?\n // TODO - Load log even when no error reported, to catch warnings?\n // https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings\n const compileStatus = this.gl.getShaderParameter(this.handle, GL.COMPILE_STATUS);\n if (!compileStatus) {\n const shaderLog = this.gl.getShaderInfoLog(this.handle);\n const messages = parseShaderCompilerLog(shaderLog).filter(message => message.type === 'error');\n const formattedLog = formatCompilerLog(messages, source);\n const shaderName: string = getShaderInfo(source).name;\n const shaderDescription = `${this.stage} shader ${shaderName}`;\n log.error(`GLSL compilation errors in ${shaderName}\\n${formattedLog}`)();\n throw new Error(`GLSL compilation errors in ${shaderName}`);\n }\n }\n}\n \n/**\n * Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline\n * For now this is an internal class\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\n // @ts-expect-error\n super(gl, {...props, id: getShaderIdFromProps(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\n/** Deduce an id, from shader source, or supplied id, or shader type */\nfunction getShaderIdFromProps(props: ShaderProps): string {\n return getShaderInfo(props.source).name ||\n props.id ||\n uid(`unnamed ${props.stage || Shader.getTypeName(props.shaderType)}`);\n}\n"],"file":"webgl-shader.js"}
@@ -1,46 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _gltools = require("@luma.gl/gltools");
13
-
14
- var _api = require("@luma.gl/api");
15
-
16
- var _webglBuffer = _interopRequireDefault(require("../classes/webgl-buffer"));
17
-
18
- var _webglShader = require("../classes/webgl-shader");
19
-
20
- var _texture2d = _interopRequireDefault(require("../classes/texture-2d"));
21
-
22
- class GLContext extends _api.Device {
23
- constructor(props) {
24
- super();
25
- (0, _defineProperty2.default)(this, "gl", void 0);
26
- (0, _defineProperty2.default)(this, "gl2", void 0);
27
- this.gl = (0, _gltools.createGLContext)(props);
28
- this.gl2 = (0, _gltools.isWebGL2)(this.gl) ? this.gl : null;
29
- }
30
-
31
- createBuffer(props) {
32
- return new _webglBuffer.default(this.gl, props);
33
- }
34
-
35
- createTexture(props) {
36
- return new _texture2d.default(this.gl, props);
37
- }
38
-
39
- createShader(props) {
40
- return new _webglShader.WEBGLShader(this.gl, props);
41
- }
42
-
43
- }
44
-
45
- exports.default = GLContext;
46
- //# sourceMappingURL=gl-context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/context/gl-context.ts"],"names":["GLContext","Device","constructor","props","gl","gl2","createBuffer","WEBGLBuffer","createTexture","Texture2D","createShader","WEBGLShader"],"mappings":";;;;;;;;;;;AAEA;;AACA;;AAEA;;AACA;;AACA;;AAEe,MAAMA,SAAN,SAAwBC,WAAxB,CAA+B;AAI5CC,EAAAA,WAAW,CAACC,KAAD,EAA0B;AACnC;AADmC;AAAA;AAEnC,SAAKC,EAAL,GAAU,8BAAgBD,KAAhB,CAAV;AACA,SAAKE,GAAL,GAAW,uBAAS,KAAKD,EAAd,IAAoB,KAAKA,EAAzB,GAAwD,IAAnE;AACD;;AAEDE,EAAAA,YAAY,CAACH,KAAD,EAAkC;AAC5C,WAAO,IAAII,oBAAJ,CAAgB,KAAKH,EAArB,EAAyBD,KAAzB,CAAP;AACD;;AAEDK,EAAAA,aAAa,CAACL,KAAD,EAAmC;AAC9C,WAAO,IAAIM,kBAAJ,CAAc,KAAKL,EAAnB,EAAuBD,KAAvB,CAAP;AACD;;AAEDO,EAAAA,YAAY,CAACP,KAAD,EAAkC;AAC5C,WAAO,IAAIQ,wBAAJ,CAAgB,KAAKP,EAArB,EAAyBD,KAAzB,CAAP;AACD;;AApB2C","sourcesContent":["// \nimport type {GLContextOptions} from '@luma.gl/gltools';\nimport {createGLContext, isWebGL2} from '@luma.gl/gltools';\nimport {Device} from '@luma.gl/api';\nimport type {BufferProps, ShaderProps} from '@luma.gl/api';\nimport WEBGLBuffer from '../classes/webgl-buffer';\nimport {WEBGLShader, } from '../classes/webgl-shader';\nimport Texture2D, {Texture2DProps} from '../classes/texture-2d';\n\nexport default class GLContext extends Device {\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext | null;\n\n constructor(props: GLContextOptions) {\n super();\n this.gl = createGLContext(props);\n this.gl2 = isWebGL2(this.gl) ? this.gl as WebGL2RenderingContext : null;\n }\n\n createBuffer(props: BufferProps): WEBGLBuffer {\n return new WEBGLBuffer(this.gl, props);\n }\n\n createTexture(props: Texture2DProps): Texture2D {\n return new Texture2D(this.gl, props);\n }\n\n createShader(props: ShaderProps): WEBGLShader {\n return new WEBGLShader(this.gl, props);\n }\n}\n"],"file":"gl-context.js"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getLumaContextData = getLumaContextData;
7
-
8
- function getLumaContextData(gl) {
9
- gl.luma = gl.luma || {};
10
- return gl.luma;
11
- }
12
- //# sourceMappingURL=luma-context-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/context/luma-context-data.ts"],"names":["getLumaContextData","gl","luma"],"mappings":";;;;;;;AAqBO,SAASA,kBAAT,CAA4BC,EAA5B,EAAwE;AAE7EA,EAAAA,EAAE,CAACC,IAAH,GAAUD,EAAE,CAACC,IAAH,IAAW,EAArB;AAEA,SAAOD,EAAE,CAACC,IAAV;AACD","sourcesContent":["import type {default as Framebuffer} from '../classes/framebuffer';\nimport type {default as VertexArrayObject} from '../classes/vertex-array-object';\n\n/**\n * Data stored by luma.gl on the context\n */\nexport type LumaContextData = {\n defaultFramebuffer?: Framebuffer;\n defaultVertexArray?: VertexArrayObject;\n info: {[key: string]: any};\n caps: {[key: string]: any};\n limits: {[key: string]: any};\n webgl1MinLimits: {[key: string]: any};\n webgl2MinLimits: {[key: string]: any};\n};\n\n/**\n * \n * @param gl \n * @returns \n */\nexport function getLumaContextData(gl: WebGLRenderingContext): LumaContextData {\n // @ts-ignore\n gl.luma = gl.luma || {};\n // @ts-ignore\n return gl.luma as LumaContextData;\n}"],"file":"luma-context-data.js"}
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = canCompileGLGSExtension;
9
-
10
- var _checkOldIe = _interopRequireDefault(require("./check-old-ie"));
11
-
12
- var _webglFeaturesTable = _interopRequireDefault(require("./webgl-features-table"));
13
-
14
- var _utils = require("../utils");
15
-
16
- const compiledGlslExtensions = {};
17
-
18
- function canCompileGLGSExtension(gl, cap, options = {}) {
19
- const feature = _webglFeaturesTable.default[cap];
20
- (0, _utils.assert)(feature, cap);
21
-
22
- if (!(0, _checkOldIe.default)(options)) {
23
- return true;
24
- }
25
-
26
- if (cap in compiledGlslExtensions) {
27
- return compiledGlslExtensions[cap];
28
- }
29
-
30
- const extensionName = feature[0];
31
- const source = "#extension GL_".concat(extensionName, " : enable\nvoid main(void) {}");
32
- const shader = gl.createShader(gl.VERTEX_SHADER);
33
- gl.shaderSource(shader, source);
34
- gl.compileShader(shader);
35
- const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
36
- gl.deleteShader(shader);
37
- compiledGlslExtensions[cap] = canCompile;
38
- return canCompile;
39
- }
40
- //# sourceMappingURL=check-glsl-extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/features/check-glsl-extension.ts"],"names":["compiledGlslExtensions","canCompileGLGSExtension","gl","cap","options","feature","WEBGL_FEATURES","extensionName","source","shader","createShader","VERTEX_SHADER","shaderSource","compileShader","canCompile","getShaderParameter","COMPILE_STATUS","deleteShader"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAMA,MAAMA,sBAAsB,GAAG,EAA/B;;AAGe,SAASC,uBAAT,CAAiCC,EAAjC,EAAqCC,GAArC,EAA0CC,OAAO,GAAG,EAApD,EAAwD;AACrE,QAAMC,OAAO,GAAGC,4BAAeH,GAAf,CAAhB;AACA,qBAAOE,OAAP,EAAgBF,GAAhB;;AAEA,MAAI,CAAC,yBAAQC,OAAR,CAAL,EAAuB;AACrB,WAAO,IAAP;AACD;;AAED,MAAID,GAAG,IAAIH,sBAAX,EAAmC;AACjC,WAAOA,sBAAsB,CAACG,GAAD,CAA7B;AACD;;AAED,QAAMI,aAAa,GAAGF,OAAO,CAAC,CAAD,CAA7B;AACA,QAAMG,MAAM,2BAAoBD,aAApB,kCAAZ;AAEA,QAAME,MAAM,GAAGP,EAAE,CAACQ,YAAH,CAAgBR,EAAE,CAACS,aAAnB,CAAf;AACAT,EAAAA,EAAE,CAACU,YAAH,CAAgBH,MAAhB,EAAwBD,MAAxB;AACAN,EAAAA,EAAE,CAACW,aAAH,CAAiBJ,MAAjB;AACA,QAAMK,UAAU,GAAGZ,EAAE,CAACa,kBAAH,CAAsBN,MAAtB,EAA8BP,EAAE,CAACc,cAAjC,CAAnB;AACAd,EAAAA,EAAE,CAACe,YAAH,CAAgBR,MAAhB;AACAT,EAAAA,sBAAsB,CAACG,GAAD,CAAtB,GAA8BW,UAA9B;AACA,SAAOA,UAAP;AACD","sourcesContent":["import isOldIE from './check-old-ie';\nimport WEBGL_FEATURES from './webgl-features-table';\nimport {assert} from '../utils';\n\n// Enables feature detection in IE11 due to a bug where gl.getExtension may return true\n// but fail to compile when the extension is enabled in the shader. Specifically,\n// the OES_standard_derivatives extension fails to compile in IE11 even though its included\n// in the list of supported extensions.\nconst compiledGlslExtensions = {};\n\n// options allows user agent to be overridden for testing\nexport default function canCompileGLGSExtension(gl, cap, options = {}) {\n const feature = WEBGL_FEATURES[cap];\n assert(feature, cap);\n\n if (!isOldIE(options)) {\n return true;\n }\n\n if (cap in compiledGlslExtensions) {\n return compiledGlslExtensions[cap];\n }\n\n const extensionName = feature[0];\n const source = `#extension GL_${extensionName} : enable\\nvoid main(void) {}`;\n\n const shader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n gl.deleteShader(shader);\n compiledGlslExtensions[cap] = canCompile;\n return canCompile;\n}\n"],"file":"check-glsl-extension.js"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = isOldIE;
7
-
8
- function isOldIE(opts = {}) {
9
- const navigator = typeof window !== 'undefined' && window.navigator || {};
10
- const userAgent = opts.userAgent || navigator.userAgent || '';
11
- const isMSIE = userAgent.indexOf('MSIE ') !== -1;
12
- const isTrident = userAgent.indexOf('Trident/') !== -1;
13
- return isMSIE || isTrident;
14
- }
15
- //# sourceMappingURL=check-old-ie.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/features/check-old-ie.ts"],"names":["isOldIE","opts","navigator","window","userAgent","isMSIE","indexOf","isTrident"],"mappings":";;;;;;;AACe,SAASA,OAAT,CAAiBC,IAAI,GAAG,EAAxB,EAA4B;AACzC,QAAMC,SAAS,GAAI,OAAOC,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAACD,SAAzC,IAAuD,EAAzE;AAEA,QAAME,SAAS,GAAGH,IAAI,CAACG,SAAL,IAAkBF,SAAS,CAACE,SAA5B,IAAyC,EAA3D;AAGA,QAAMC,MAAM,GAAGD,SAAS,CAACE,OAAV,CAAkB,OAAlB,MAA+B,CAAC,CAA/C;AACA,QAAMC,SAAS,GAAGH,SAAS,CAACE,OAAV,CAAkB,UAAlB,MAAkC,CAAC,CAArD;AACA,SAAOD,MAAM,IAAIE,SAAjB;AACD","sourcesContent":["// opts allows user agent to be overridden for testing\nexport default function isOldIE(opts = {}) {\n const navigator = (typeof window !== 'undefined' && window.navigator) || {};\n // @ts-ignore\n const userAgent = opts.userAgent || navigator.userAgent || '';\n // We only care about older versions of IE (IE 11 and below). Newer versions of IE (Edge)\n // have much better web standards support.\n const isMSIE = userAgent.indexOf('MSIE ') !== -1;\n const isTrident = userAgent.indexOf('Trident/') !== -1;\n return isMSIE || isTrident;\n}\n"],"file":"check-old-ie.js"}