@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,34 +0,0 @@
1
- import isOldIE from './check-old-ie';
2
- import WEBGL_FEATURES from './webgl-features-table';
3
- import {assert} from '../utils';
4
-
5
- // Enables feature detection in IE11 due to a bug where gl.getExtension may return true
6
- // but fail to compile when the extension is enabled in the shader. Specifically,
7
- // the OES_standard_derivatives extension fails to compile in IE11 even though its included
8
- // in the list of supported extensions.
9
- const compiledGlslExtensions = {};
10
-
11
- // options allows user agent to be overridden for testing
12
- export default function canCompileGLGSExtension(gl, cap, options = {}) {
13
- const feature = WEBGL_FEATURES[cap];
14
- assert(feature, cap);
15
-
16
- if (!isOldIE(options)) {
17
- return true;
18
- }
19
-
20
- if (cap in compiledGlslExtensions) {
21
- return compiledGlslExtensions[cap];
22
- }
23
-
24
- const extensionName = feature[0];
25
- const source = `#extension GL_${extensionName} : enable\nvoid main(void) {}`;
26
-
27
- const shader = gl.createShader(gl.VERTEX_SHADER);
28
- gl.shaderSource(shader, source);
29
- gl.compileShader(shader);
30
- const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
31
- gl.deleteShader(shader);
32
- compiledGlslExtensions[cap] = canCompile;
33
- return canCompile;
34
- }
@@ -1,80 +0,0 @@
1
- // Feature detection for WebGL
2
- //
3
- // Provides a function that enables simple checking of which WebGL features are
4
- // available in an WebGL1 or WebGL2 environment.
5
-
6
- import WEBGL_FEATURES from './webgl-features-table';
7
- import {isWebGL2, log} from '@luma.gl/gltools';
8
- import {assert} from '../utils';
9
- import {getLumaContextData} from '../context/luma-context-data';
10
-
11
- const LOG_UNSUPPORTED_FEATURE = 2;
12
-
13
- // Check one feature
14
- export function hasFeature(gl, feature) {
15
- return hasFeatures(gl, feature);
16
- }
17
-
18
- // Check one or more features
19
- export function hasFeatures(gl, features) {
20
- features = Array.isArray(features) ? features : [features];
21
- return features.every((feature) => {
22
- return isFeatureSupported(gl, feature);
23
- });
24
- }
25
-
26
- // Return a list of supported features
27
- export function getFeatures(gl) {
28
- const lumaContextData = getLumaContextData(gl);
29
- lumaContextData.caps = lumaContextData.caps || {};
30
- for (const cap in WEBGL_FEATURES) {
31
- if (lumaContextData.caps[cap] === undefined) {
32
- lumaContextData.caps[cap] = isFeatureSupported(gl, cap);
33
- }
34
- }
35
- return lumaContextData.caps;
36
- }
37
-
38
- // TODO - cache the value
39
- function isFeatureSupported(gl, cap) {
40
- const lumaContextData = getLumaContextData(gl);
41
- lumaContextData.caps = lumaContextData.caps || {};
42
-
43
- if (lumaContextData.caps[cap] === undefined) {
44
- lumaContextData.caps[cap] = queryFeature(gl, cap);
45
- }
46
-
47
- if (!lumaContextData.caps[cap]) {
48
- log.log(LOG_UNSUPPORTED_FEATURE, `Feature: ${cap} not supported`)();
49
- }
50
-
51
- return lumaContextData.caps[cap];
52
- }
53
-
54
- function queryFeature(gl, cap) {
55
- const feature = WEBGL_FEATURES[cap];
56
- assert(feature, cap);
57
-
58
- let isSupported;
59
-
60
- // Get extension name from table
61
- const featureDefinition = isWebGL2(gl) ? feature[1] || feature[0] : feature[0];
62
-
63
- // Check if the value is dependent on checking one or more extensions
64
- if (typeof featureDefinition === 'function') {
65
- isSupported = featureDefinition(gl);
66
- } else if (Array.isArray(featureDefinition)) {
67
- isSupported = true;
68
- for (const extension of featureDefinition) {
69
- isSupported = isSupported && Boolean(gl.getExtension(extension));
70
- }
71
- } else if (typeof featureDefinition === 'string') {
72
- isSupported = Boolean(gl.getExtension(featureDefinition));
73
- } else if (typeof featureDefinition === 'boolean') {
74
- isSupported = featureDefinition;
75
- } else {
76
- assert(false);
77
- }
78
-
79
- return isSupported;
80
- }
@@ -1,5 +0,0 @@
1
- export {getContextInfo, getGLContextInfo, getContextLimits} from './limits';
2
- export {FEATURES} from './webgl-features-table';
3
- export {hasFeature, hasFeatures, getFeatures} from './features';
4
-
5
- export {default as canCompileGLGSExtension} from './check-glsl-extension';
@@ -1,66 +0,0 @@
1
- import GL from '@luma.gl/constants';
2
- import {isWebGL2, getContextDebugInfo} from '@luma.gl/gltools';
3
- import WEBGL_LIMITS from './webgl-limits-table';
4
- import {getLumaContextData} from '../context/luma-context-data';
5
-
6
- export function getContextLimits(gl) {
7
- const lumaContextData = getLumaContextData(gl);
8
-
9
- if (!lumaContextData.limits) {
10
- lumaContextData.limits = {};
11
- lumaContextData.webgl1MinLimits = {};
12
- lumaContextData.webgl2MinLimits = {};
13
-
14
- const isWebgl2 = isWebGL2(gl);
15
-
16
- // WEBGL limits
17
- for (const parameter in WEBGL_LIMITS) {
18
- const limit = WEBGL_LIMITS[parameter];
19
-
20
- const webgl1MinLimit = limit.gl1;
21
- const webgl2MinLimit = 'gl2' in limit ? limit.gl2 : limit.gl1;
22
- const minLimit = isWebgl2 ? webgl2MinLimit : webgl1MinLimit;
23
-
24
- // Check if we can query for this limit
25
- const limitNotAvailable =
26
- ('gl2' in limit && !isWebgl2) ||
27
- // @ts-ignore
28
- ('extension' in limit && !gl.getExtension(limit.extension));
29
-
30
- const value = limitNotAvailable ? minLimit : gl.getParameter(parameter);
31
- lumaContextData.limits[parameter] = value;
32
- lumaContextData.webgl1MinLimits[parameter] = webgl1MinLimit;
33
- lumaContextData.webgl2MinLimits[parameter] = webgl2MinLimit;
34
- }
35
- }
36
-
37
- return lumaContextData.limits;
38
- }
39
-
40
- export function getGLContextInfo(gl) {
41
- const lumaContextData = getLumaContextData(gl);
42
-
43
- const info = getContextDebugInfo(gl);
44
- if (!lumaContextData.info) {
45
- lumaContextData.info = {
46
- [GL.UNMASKED_VENDOR_WEBGL]: info.vendor,
47
- [GL.UNMASKED_RENDERER_WEBGL]: info.renderer,
48
- [GL.VENDOR]: info.vendorMasked,
49
- [GL.RENDERER]: info.rendererMasked,
50
- [GL.VERSION]: info.version,
51
- [GL.SHADING_LANGUAGE_VERSION]: info.shadingLanguageVersion
52
- };
53
- }
54
-
55
- return lumaContextData.info;
56
- }
57
-
58
- export function getContextInfo(gl) {
59
- const lumaContextData = getLumaContextData(gl);
60
- return Object.assign(getContextDebugInfo(gl), {
61
- limits: getContextLimits(gl),
62
- info: getGLContextInfo(gl),
63
- webgl1MinLimits: lumaContextData.webgl1MinLimits,
64
- webgl2MinLimits: lumaContextData.webgl2MinLimits
65
- });
66
- }
@@ -1,104 +0,0 @@
1
- import Framebuffer from '../classes/framebuffer';
2
- import Texture2D from '../classes/texture-2d';
3
- // TODO - this should be the default export, test cases need updating
4
- export const FEATURES = {
5
- WEBGL2: 'WEBGL2',
6
-
7
- // API SUPPORT
8
- VERTEX_ARRAY_OBJECT: 'VERTEX_ARRAY_OBJECT',
9
- TIMER_QUERY: 'TIMER_QUERY',
10
- INSTANCED_RENDERING: 'INSTANCED_RENDERING',
11
- MULTIPLE_RENDER_TARGETS: 'MULTIPLE_RENDER_TARGETS',
12
-
13
- // FEATURES
14
- ELEMENT_INDEX_UINT32: 'ELEMENT_INDEX_UINT32',
15
-
16
- // BLENDING
17
- BLEND_EQUATION_MINMAX: 'BLEND_EQUATION_MINMAX',
18
- FLOAT_BLEND: 'FLOAT_BLEND',
19
-
20
- // TEXTURES: '// TEXTURES', RENDERBUFFERS
21
- COLOR_ENCODING_SRGB: 'COLOR_ENCODING_SRGB',
22
-
23
- // TEXTURES
24
- TEXTURE_DEPTH: 'TEXTURE_DEPTH',
25
- TEXTURE_FLOAT: 'TEXTURE_FLOAT',
26
- TEXTURE_HALF_FLOAT: 'TEXTURE_HALF_FLOAT',
27
-
28
- TEXTURE_FILTER_LINEAR_FLOAT: 'TEXTURE_FILTER_LINEAR_FLOAT',
29
- TEXTURE_FILTER_LINEAR_HALF_FLOAT: 'TEXTURE_FILTER_LINEAR_HALF_FLOAT',
30
- TEXTURE_FILTER_ANISOTROPIC: 'TEXTURE_FILTER_ANISOTROPIC',
31
-
32
- // FRAMEBUFFERS: '// FRAMEBUFFERS', TEXTURES AND RENDERBUFFERS
33
- COLOR_ATTACHMENT_RGBA32F: 'COLOR_ATTACHMENT_RGBA32F',
34
- COLOR_ATTACHMENT_FLOAT: 'COLOR_ATTACHMENT_FLOAT',
35
- COLOR_ATTACHMENT_HALF_FLOAT: 'COLOR_ATTACHMENT_HALF_FLOAT',
36
-
37
- // GLSL extensions
38
- GLSL_FRAG_DATA: 'GLSL_FRAG_DATA',
39
- GLSL_FRAG_DEPTH: 'GLSL_FRAG_DEPTH',
40
- GLSL_DERIVATIVES: 'GLSL_DERIVATIVES',
41
- GLSL_TEXTURE_LOD: 'GLSL_TEXTURE_LOD'
42
- };
43
-
44
- // function to test if Float 32 bit format texture can be bound as color attachment
45
- function checkFloat32ColorAttachment(gl) {
46
- const testTexture = new Texture2D(gl, {
47
- format: gl.RGBA,
48
- type: gl.FLOAT,
49
- dataFormat: gl.RGBA
50
- });
51
- const testFb = new Framebuffer(gl, {
52
- id: `test-framebuffer`,
53
- check: false,
54
- attachments: {
55
- [gl.COLOR_ATTACHMENT0]: testTexture
56
- }
57
- });
58
- const status = testFb.getStatus();
59
- testTexture.delete();
60
- testFb.delete();
61
- return status === gl.FRAMEBUFFER_COMPLETE;
62
- }
63
-
64
- // Defines luma.gl "feature" names and semantics
65
- // Format: 'feature-name: [WebGL1 support, WebGL2 support] / [WebGL1 and WebGL2 support]', when support is 'string' it is the name of the extension
66
- export default {
67
- [FEATURES.WEBGL2]: [false, true],
68
-
69
- // API SUPPORT
70
- [FEATURES.VERTEX_ARRAY_OBJECT]: ['OES_vertex_array_object', true],
71
- [FEATURES.TIMER_QUERY]: ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],
72
- [FEATURES.INSTANCED_RENDERING]: ['ANGLE_instanced_arrays', true],
73
- [FEATURES.MULTIPLE_RENDER_TARGETS]: ['WEBGL_draw_buffers', true],
74
-
75
- // FEATURES
76
- [FEATURES.ELEMENT_INDEX_UINT32]: ['OES_element_index_uint', true],
77
-
78
- // BLENDING
79
- [FEATURES.BLEND_EQUATION_MINMAX]: ['EXT_blend_minmax', true],
80
- [FEATURES.FLOAT_BLEND]: ['EXT_float_blend'],
81
-
82
- // TEXTURES, RENDERBUFFERS
83
- [FEATURES.COLOR_ENCODING_SRGB]: ['EXT_sRGB', true],
84
-
85
- // TEXTURES
86
- [FEATURES.TEXTURE_DEPTH]: ['WEBGL_depth_texture', true],
87
- [FEATURES.TEXTURE_FLOAT]: ['OES_texture_float', true],
88
- [FEATURES.TEXTURE_HALF_FLOAT]: ['OES_texture_half_float', true],
89
-
90
- [FEATURES.TEXTURE_FILTER_LINEAR_FLOAT]: ['OES_texture_float_linear'],
91
- [FEATURES.TEXTURE_FILTER_LINEAR_HALF_FLOAT]: ['OES_texture_half_float_linear'],
92
- [FEATURES.TEXTURE_FILTER_ANISOTROPIC]: ['EXT_texture_filter_anisotropic'],
93
-
94
- // FRAMEBUFFERS, TEXTURES AND RENDERBUFFERS
95
- [FEATURES.COLOR_ATTACHMENT_RGBA32F]: [checkFloat32ColorAttachment, 'EXT_color_buffer_float'],
96
- [FEATURES.COLOR_ATTACHMENT_FLOAT]: [false, 'EXT_color_buffer_float'],
97
- [FEATURES.COLOR_ATTACHMENT_HALF_FLOAT]: ['EXT_color_buffer_half_float'],
98
-
99
- // GLSL extensions
100
- [FEATURES.GLSL_FRAG_DATA]: ['WEBGL_draw_buffers', true],
101
- [FEATURES.GLSL_FRAG_DEPTH]: ['EXT_frag_depth', true],
102
- [FEATURES.GLSL_DERIVATIVES]: ['OES_standard_derivatives', true],
103
- [FEATURES.GLSL_TEXTURE_LOD]: ['EXT_shader_texture_lod', true]
104
- };
@@ -1,51 +0,0 @@
1
- import GL from '@luma.gl/constants';
2
-
3
- export default {
4
- [GL.ALIASED_LINE_WIDTH_RANGE]: {gl1: new Float32Array([1, 1])},
5
- [GL.ALIASED_POINT_SIZE_RANGE]: {gl1: new Float32Array([1, 1])},
6
- [GL.MAX_TEXTURE_SIZE]: {gl1: 64, gl2: 2048}, // GLint
7
- [GL.MAX_CUBE_MAP_TEXTURE_SIZE]: {gl1: 16}, // GLint
8
- [GL.MAX_TEXTURE_IMAGE_UNITS]: {gl1: 8}, // GLint
9
- [GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS]: {gl1: 8}, // GLint
10
- [GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS]: {gl1: 0}, // GLint
11
- [GL.MAX_RENDERBUFFER_SIZE]: {gl1: 1}, // GLint
12
- [GL.MAX_VARYING_VECTORS]: {gl1: 8}, // GLint
13
- [GL.MAX_VERTEX_ATTRIBS]: {gl1: 8}, // GLint
14
- [GL.MAX_VERTEX_UNIFORM_VECTORS]: {gl1: 128}, // GLint
15
- [GL.MAX_FRAGMENT_UNIFORM_VECTORS]: {gl1: 16}, // GLint
16
- [GL.MAX_VIEWPORT_DIMS]: {gl1: new Int32Array([0, 0])},
17
-
18
- // Extensions
19
- // [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: {gl1: 1.0, extension: 'EXT_texture_filter_anisotropic'},
20
-
21
- // WebGL2 Limits
22
- [GL.MAX_3D_TEXTURE_SIZE]: {gl1: 0, gl2: 256}, // GLint
23
- [GL.MAX_ARRAY_TEXTURE_LAYERS]: {gl1: 0, gl2: 256}, // GLint
24
- [GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: {gl1: 0, gl2: 0}, // GLint64
25
- [GL.MAX_COLOR_ATTACHMENTS]: {gl1: 0, gl2: 4}, // GLint
26
- [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint64
27
- [GL.MAX_COMBINED_UNIFORM_BLOCKS]: {gl1: 0, gl2: 0}, // GLint
28
- [GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint64
29
- [GL.MAX_DRAW_BUFFERS]: {gl1: 0, gl2: 4}, // GLint
30
- [GL.MAX_ELEMENT_INDEX]: {gl1: 0, gl2: 0}, // GLint64
31
- [GL.MAX_ELEMENTS_INDICES]: {gl1: 0, gl2: 0}, // GLint
32
- [GL.MAX_ELEMENTS_VERTICES]: {gl1: 0, gl2: 0}, // GLint
33
- [GL.MAX_FRAGMENT_INPUT_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint
34
- [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: {gl1: 0, gl2: 0}, // GLint
35
- [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint
36
- [GL.MAX_SAMPLES]: {gl1: 0, gl2: 0}, // GLint
37
- [GL.MAX_SERVER_WAIT_TIMEOUT]: {gl1: 0, gl2: 0}, // GLint64
38
- [GL.MAX_TEXTURE_LOD_BIAS]: {gl1: 0, gl2: 0}, // GLfloat
39
- [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint
40
- [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: {gl1: 0, gl2: 0}, // GLint
41
- [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint
42
- [GL.MAX_UNIFORM_BLOCK_SIZE]: {gl1: 0, gl2: 0}, // GLint64
43
- [GL.MAX_UNIFORM_BUFFER_BINDINGS]: {gl1: 0, gl2: 0}, // GLint
44
- [GL.MAX_VARYING_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint
45
- [GL.MAX_VERTEX_OUTPUT_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint
46
- [GL.MAX_VERTEX_UNIFORM_BLOCKS]: {gl1: 0, gl2: 0}, // GLint
47
- [GL.MAX_VERTEX_UNIFORM_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint
48
- [GL.MIN_PROGRAM_TEXEL_OFFSET]: {gl1: 0, gl2: -8, negative: true}, // GLint
49
- [GL.MAX_PROGRAM_TEXEL_OFFSET]: {gl1: 0, gl2: 7}, // GLint
50
- [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: {gl1: 0, gl2: 0} // GLint
51
- };
@@ -1,56 +0,0 @@
1
- let arrayBuffer = null;
2
-
3
- export function getScratchArrayBuffer(byteLength) {
4
- if (!arrayBuffer || arrayBuffer.byteLength < byteLength) {
5
- arrayBuffer = new ArrayBuffer(byteLength);
6
- }
7
- return arrayBuffer;
8
- }
9
-
10
- export function getScratchArray(Type, length) {
11
- const scratchArrayBuffer = getScratchArrayBuffer(Type.BYTES_PER_ELEMENT * length);
12
- return new Type(scratchArrayBuffer, 0, length); // arrayBuffer, byteOffset, length (in elements)
13
- }
14
-
15
- // Uses copyWithin to significantly speed up typed array value filling
16
- export function fillArray({target, source, start = 0, count = 1}) {
17
- const length = source.length;
18
- const total = count * length;
19
- let copied = 0;
20
- for (let i = start; copied < length; copied++) {
21
- target[i++] = source[copied];
22
- }
23
-
24
- while (copied < total) {
25
- // If we have copied less than half, copy everything we got
26
- // else copy remaining in one operation
27
- if (copied < total - copied) {
28
- target.copyWithin(start + copied, start, start + copied);
29
- copied *= 2;
30
- } else {
31
- target.copyWithin(start + copied, start, start + total - copied);
32
- copied = total;
33
- }
34
- }
35
-
36
- return target;
37
- }
38
-
39
- /*
40
-
41
- // Creates a new Uint8Array based on two different ArrayBuffers
42
- // @private
43
- // @param {ArrayBuffers} buffer1 The first buffer.
44
- // @param {ArrayBuffers} buffer2 The second buffer.
45
- // @return {ArrayBuffers} The new ArrayBuffer created out of the two.
46
- //
47
- export function copyArrayBuffer(
48
- targetBuffer, sourceBuffer, byteOffset, byteLength = sourceBuffer.byteLength
49
- ) {
50
- const targetArray = new Uint8Array(targetBuffer, byteOffset, byteLength);
51
- const sourceArray = new Uint8Array(sourceBuffer);
52
- targetArray.set(sourceArray);
53
- return targetBuffer;
54
- }
55
-
56
- */
@@ -1,7 +0,0 @@
1
- // Recommendation is to ignore message but current test suite checks agains the
2
- // message so keep it for now.
3
- export default function assert(condition, message?: string): void {
4
- if (!condition) {
5
- throw new Error(message || 'luma.gl: assertion failed.');
6
- }
7
- }
@@ -1,68 +0,0 @@
1
- /* Use as
2
- import {checkProps} from '../util/check-props;'
3
-
4
- const PROP_CHECKS = {
5
- // Removed props no longer supported, print error and link to upgrade guide
6
- removedProps: {
7
- },
8
- // Deprecated props
9
- deprecatedProps: {
10
- offset: 'accessor',
11
- stride: 'accessor',
12
- type: 'accessor',
13
- size: 'accessor',
14
- divisor: 'accessor',
15
- normalized: 'accessor',
16
- integer: 'accessor'
17
- },
18
- // Deprecated props that can be autosubstituted, print warning and return updated props object
19
- replacedProps: {
20
- bytes: 'byteLength'
21
- }
22
- }
23
-
24
- class Buffer {
25
- setProps(props) {
26
- checkProps('Buffer', props, PROP_CHECKS);
27
- }
28
- }
29
- */
30
- import {log} from '@luma.gl/gltools';
31
-
32
- export function checkProps(className, props, propChecks) {
33
- const {removedProps = {}, deprecatedProps = {}, replacedProps = {}} = propChecks;
34
-
35
- // removedProps: Removed props no longer supported
36
- // print error and link to upgrade guide
37
- for (const propName in removedProps) {
38
- if (propName in props) {
39
- const replacementProp = removedProps[propName];
40
- const replacement = replacementProp ? `${className}.${removedProps[propName]}` : 'N/A';
41
- log.removed(`${className}.${propName}`, replacement)();
42
- }
43
- }
44
-
45
- // deprecatedProps: Deprecated props that can not be autosubstituted
46
- // print warning and rely on caller to substitute
47
- for (const propName in deprecatedProps) {
48
- if (propName in props) {
49
- const replacementProp = deprecatedProps[propName];
50
- log.deprecated(`${className}.${propName}`, `${className}.${replacementProp}`)();
51
- }
52
- }
53
-
54
- // replacedProps: Deprecated props that can be autosubstituted
55
- // print warning and return updated props object
56
- let newProps = null;
57
- for (const propName in replacedProps) {
58
- if (propName in props) {
59
- const replacementProp = replacedProps[propName];
60
- log.deprecated(`${className}.${propName}`, `${className}.${replacementProp}`)();
61
- newProps = newProps || Object.assign({}, props);
62
- newProps[replacementProp] = props[propName];
63
- delete newProps[propName];
64
- }
65
- }
66
-
67
- return newProps || props;
68
- }
@@ -1,37 +0,0 @@
1
- // TODO / DEPRECATED - delete when confident that probe.gl logging implements all opts
2
- /* eslint-disable no-console */
3
- function formatArrayValue(v, opts) {
4
- const {maxElts = 16, size = 1} = opts;
5
- let string = '[';
6
- for (let i = 0; i < v.length && i < maxElts; ++i) {
7
- if (i > 0) {
8
- string += `,${i % size === 0 ? ' ' : ''}`;
9
- }
10
- string += formatValue(v[i], opts);
11
- }
12
- const terminator = v.length > maxElts ? '...' : ']';
13
- return `${string}${terminator}`;
14
- }
15
-
16
- export function formatValue(v, opts?: {isInteger?: boolean, size?: number}) {
17
- const EPSILON = 1e-16;
18
- const {isInteger = false} = opts || {};
19
- if (Array.isArray(v) || ArrayBuffer.isView(v)) {
20
- return formatArrayValue(v, opts);
21
- }
22
- if (!Number.isFinite(v)) {
23
- return String(v);
24
- }
25
- if (Math.abs(v) < EPSILON) {
26
- return isInteger ? '0' : '0.';
27
- }
28
- if (isInteger) {
29
- return v.toFixed(0);
30
- }
31
- if (Math.abs(v) > 100 && Math.abs(v) < 10000) {
32
- return v.toFixed(0);
33
- }
34
- const string = v.toPrecision(2);
35
- const decimal = string.indexOf('.0');
36
- return decimal === string.length - 2 ? string.slice(0, -1) : string;
37
- }
@@ -1,6 +0,0 @@
1
- export {default as assert} from './assert';
2
- export {default as isOldIE} from './is-old-ie';
3
- export {uid, isPowerOfTwo, isObjectEmpty} from './utils';
4
- export {formatValue} from './format-value';
5
- export {stubRemovedMethods} from './stub-methods';
6
- export {checkProps} from './check-props';
@@ -1,6 +0,0 @@
1
- import {getBrowser} from 'probe.gl/env';
2
-
3
- // opts allows user agent to be overridden for testing
4
- export default function isOldIE(opts: {userAgent?}): boolean {
5
- return getBrowser(opts.userAgent) === 'IE';
6
- }
@@ -1,40 +0,0 @@
1
- import {assert} from '../utils';
2
-
3
- let pathPrefix = '';
4
-
5
- /*
6
- * Set a relative path prefix
7
- */
8
- export function setPathPrefix(prefix) {
9
- pathPrefix = prefix;
10
- }
11
-
12
- // Reads raw file data from:
13
- export function loadFile(url, options = {}) {
14
- assert(typeof url === 'string');
15
- url = pathPrefix + url;
16
- // @ts-expect-error
17
- const dataType = options.dataType || 'text';
18
- return fetch(url, options).then((res) => res[dataType]());
19
- }
20
-
21
- /*
22
- * Loads images asynchronously
23
- * image.crossOrigin can be set via opts.crossOrigin, default to 'anonymous'
24
- * returns a promise tracking the load
25
- */
26
- export function loadImage(url, opts) {
27
- assert(typeof url === 'string');
28
- url = pathPrefix + url;
29
- return new Promise((resolve, reject) => {
30
- try {
31
- const image = new Image();
32
- image.onload = () => resolve(image);
33
- image.onerror = () => reject(new Error(`Could not load image ${url}.`));
34
- image.crossOrigin = (opts && opts.crossOrigin) || 'anonymous';
35
- image.src = url;
36
- } catch (error) {
37
- reject(error);
38
- }
39
- });
40
- }
@@ -1,20 +0,0 @@
1
- import {log} from '@luma.gl/gltools';
2
-
3
- // Install stubs for removed methods
4
- export function stubRemovedMethods(instance, className, version, methodNames) {
5
- const upgradeMessage = `See luma.gl ${version} Upgrade Guide at \
6
- https://luma.gl/docs/upgrade-guide`;
7
-
8
- const prototype = Object.getPrototypeOf(instance);
9
-
10
- methodNames.forEach((methodName) => {
11
- if (prototype.methodName) {
12
- return;
13
- }
14
-
15
- prototype[methodName] = () => {
16
- log.removed(`Calling removed method ${className}.${methodName}: `, upgradeMessage)();
17
- throw new Error(methodName);
18
- };
19
- });
20
- }
@@ -1,35 +0,0 @@
1
- import assert from './assert';
2
-
3
- const uidCounters = {};
4
-
5
- /**
6
- * Returns a UID.
7
- * @param id= - Identifier base name
8
- * @return uid
9
- **/
10
- export function uid(id: string = 'id'): string {
11
- uidCounters[id] = uidCounters[id] || 1;
12
- const count = uidCounters[id]++;
13
- return `${id}-${count}`;
14
- }
15
-
16
- /**
17
- * Verifies if a given number is power of two or not.
18
- * @param n - The number to check.
19
- * @return Returns true if the given number is power of 2, false otherwise.
20
- **/
21
- export function isPowerOfTwo(n: number): boolean {
22
- return n && (n & (n - 1)) === 0;
23
- }
24
-
25
- /** Returns true if given object is empty, false otherwise. */
26
- export function isObjectEmpty(obj: object): boolean {
27
- let isEmpty = true;
28
- /* eslint-disable no-unused-vars */
29
- for (const key in obj) {
30
- isEmpty = false;
31
- break;
32
- }
33
- /* eslint-enable no-unused-vars */
34
- return isEmpty;
35
- }
@@ -1,11 +0,0 @@
1
- import Texture2D from '../classes/texture-2d';
2
- import TextureCube from '../classes/texture-cube';
3
- import Texture3D from '../classes/texture-3d';
4
- import Texture from '../classes/texture';
5
- import Framebuffer, {FramebufferProps} from '../classes/framebuffer';
6
-
7
- type TextureType = Texture2D | TextureCube | Texture3D;
8
-
9
- export function cloneTextureFrom<T extends TextureType>(refTexture: T, overrides?: any): T;
10
-
11
- export function toFramebuffer(texture: Texture, opts?: FramebufferProps): Framebuffer;
@@ -1,36 +0,0 @@
1
- type TypedArrayConstructor =
2
- | Float32ArrayConstructor
3
- | Uint16ArrayConstructor
4
- | Uint32ArrayConstructor
5
- | Uint8ArrayConstructor
6
- | Uint8ClampedArrayConstructor
7
- | Int8ArrayConstructor
8
- | Int16ArrayConstructor
9
- | Int32ArrayConstructor;
10
-
11
- export function getGLTypeFromTypedArray(arrayOrType: any): any;
12
-
13
- export function getTypedArrayFromGLType(
14
- glType: any,
15
- options?: {
16
- clamped?: boolean;
17
- }
18
- ): TypedArrayConstructor;
19
-
20
- export function flipRows(options: {
21
- data: any;
22
- width: any;
23
- height: any;
24
- bytesPerPixel?: number;
25
- temp?: any;
26
- }): void;
27
-
28
- export function scalePixels(options: {
29
- data: any;
30
- width: any;
31
- height: any;
32
- }): {
33
- data: Uint8Array;
34
- width: number;
35
- height: number;
36
- };