@luma.gl/webgl 9.0.0-alpha.4 → 9.0.0-alpha.40

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 (525) hide show
  1. package/LICENSE +3 -1
  2. package/dist/adapter/converters/device-parameters.d.ts +23 -4
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/device-parameters.js +42 -47
  5. package/dist/adapter/converters/device-parameters.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts +5 -5
  7. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  8. package/dist/adapter/converters/sampler-parameters.js +20 -56
  9. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  10. package/dist/adapter/converters/shader-formats.d.ts +9 -0
  11. package/dist/adapter/converters/shader-formats.d.ts.map +1 -0
  12. package/dist/adapter/converters/shader-formats.js +53 -0
  13. package/dist/adapter/converters/shader-formats.js.map +1 -0
  14. package/dist/adapter/converters/texture-formats.d.ts +32 -44
  15. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  16. package/dist/adapter/converters/texture-formats.js +165 -201
  17. package/dist/adapter/converters/texture-formats.js.map +1 -1
  18. package/dist/adapter/converters/vertex-formats.d.ts +9 -3
  19. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  20. package/dist/adapter/converters/vertex-formats.js +51 -19
  21. package/dist/adapter/converters/vertex-formats.js.map +1 -1
  22. package/dist/adapter/device-helpers/device-features.d.ts +1 -1
  23. package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
  24. package/dist/adapter/device-helpers/device-features.js +14 -21
  25. package/dist/adapter/device-helpers/device-features.js.map +1 -1
  26. package/dist/adapter/device-helpers/device-limits.d.ts +3 -3
  27. package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
  28. package/dist/adapter/device-helpers/device-limits.js +2 -5
  29. package/dist/adapter/device-helpers/device-limits.js.map +1 -1
  30. package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
  31. package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
  32. package/dist/adapter/device-helpers/get-device-info.js +9 -11
  33. package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
  34. package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -1
  35. package/dist/adapter/device-helpers/is-old-ie.js +2 -1
  36. package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
  37. package/dist/adapter/helpers/decode-webgl-types.d.ts +26 -0
  38. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -0
  39. package/dist/adapter/helpers/{uniforms.js → decode-webgl-types.js} +20 -29
  40. package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
  41. package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
  42. package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
  43. package/dist/adapter/helpers/get-shader-info.js +25 -0
  44. package/dist/adapter/helpers/get-shader-info.js.map +1 -0
  45. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -48
  46. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  47. package/dist/adapter/helpers/get-shader-layout.js +60 -115
  48. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  49. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  50. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  51. package/dist/adapter/helpers/parse-shader-compiler-log.js +0 -7
  52. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  53. package/dist/adapter/helpers/set-uniform.d.ts +3 -2
  54. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  55. package/dist/adapter/helpers/set-uniform.js +27 -57
  56. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  57. package/dist/adapter/helpers/webgl-topology-utils.d.ts +11 -0
  58. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
  59. package/dist/adapter/helpers/{attribute-utils.js → webgl-topology-utils.js} +2 -19
  60. package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
  61. package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
  62. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  63. package/dist/adapter/objects/constants-to-keys.js +2 -29
  64. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  65. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  66. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  67. package/dist/adapter/objects/webgl-renderbuffer.js +34 -41
  68. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  69. package/dist/adapter/objects/webgl-resource.d.ts +6 -9
  70. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  71. package/dist/adapter/objects/webgl-resource.js +26 -83
  72. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  73. package/dist/adapter/resources/webgl-buffer.d.ts +18 -10
  74. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  75. package/dist/adapter/resources/webgl-buffer.js +49 -78
  76. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  77. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  78. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  79. package/dist/adapter/resources/webgl-command-buffer.js +169 -43
  80. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  81. package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
  82. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  83. package/dist/adapter/resources/webgl-command-encoder.js +10 -20
  84. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  85. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  86. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -24
  87. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  88. package/dist/adapter/resources/webgl-framebuffer.js +46 -155
  89. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  90. package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
  91. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  92. package/dist/adapter/resources/webgl-render-pass.js +91 -11
  93. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  94. package/dist/adapter/resources/webgl-render-pipeline.d.ts +53 -19
  95. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  96. package/dist/adapter/resources/webgl-render-pipeline.js +107 -230
  97. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  98. package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
  99. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  100. package/dist/adapter/resources/webgl-sampler.js +10 -19
  101. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  102. package/dist/adapter/resources/webgl-shader.d.ts +3 -4
  103. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  104. package/dist/adapter/resources/webgl-shader.js +19 -31
  105. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  106. package/dist/adapter/resources/webgl-texture.d.ts +64 -44
  107. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  108. package/dist/adapter/resources/webgl-texture.js +119 -235
  109. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  110. package/dist/adapter/resources/webgl-vertex-array.d.ts +67 -0
  111. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -0
  112. package/dist/adapter/resources/webgl-vertex-array.js +166 -0
  113. package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
  114. package/dist/adapter/webgl-canvas-context.d.ts +6 -7
  115. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  116. package/dist/adapter/webgl-canvas-context.js +10 -23
  117. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  118. package/dist/adapter/webgl-device.d.ts +74 -41
  119. package/dist/adapter/webgl-device.d.ts.map +1 -1
  120. package/dist/adapter/webgl-device.js +214 -128
  121. package/dist/adapter/webgl-device.js.map +1 -1
  122. package/dist/classic/accessor.d.ts +3 -3
  123. package/dist/classic/accessor.d.ts.map +1 -1
  124. package/dist/classic/accessor.js +23 -48
  125. package/dist/classic/accessor.js.map +1 -1
  126. package/dist/classic/{buffer.d.ts → buffer-with-accessor.d.ts} +16 -29
  127. package/dist/classic/buffer-with-accessor.d.ts.map +1 -0
  128. package/dist/classic/{buffer.js → buffer-with-accessor.js} +55 -125
  129. package/dist/classic/buffer-with-accessor.js.map +1 -0
  130. package/dist/classic/clear.d.ts +22 -0
  131. package/dist/classic/clear.d.ts.map +1 -0
  132. package/dist/classic/clear.js +88 -0
  133. package/dist/classic/clear.js.map +1 -0
  134. package/dist/classic/copy-and-blit.d.ts +62 -0
  135. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  136. package/dist/classic/copy-and-blit.js +200 -0
  137. package/dist/classic/copy-and-blit.js.map +1 -0
  138. package/dist/classic/format-utils.d.ts +3 -0
  139. package/dist/classic/format-utils.d.ts.map +1 -0
  140. package/dist/classic/format-utils.js +38 -0
  141. package/dist/classic/format-utils.js.map +1 -0
  142. package/dist/classic/typed-array-utils.d.ts +15 -17
  143. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  144. package/dist/classic/typed-array-utils.js +1 -21
  145. package/dist/classic/typed-array-utils.js.map +1 -1
  146. package/dist/context/context/create-browser-context.d.ts +40 -0
  147. package/dist/context/context/create-browser-context.d.ts.map +1 -0
  148. package/dist/context/context/create-browser-context.js +53 -0
  149. package/dist/context/context/create-browser-context.js.map +1 -0
  150. package/dist/context/context/create-headless-context.d.ts +9 -0
  151. package/dist/context/context/create-headless-context.d.ts.map +1 -0
  152. package/dist/context/context/create-headless-context.js +42 -0
  153. package/dist/context/context/create-headless-context.js.map +1 -0
  154. package/dist/context/context/webgl-checks.d.ts.map +1 -1
  155. package/dist/context/context/webgl-checks.js +1 -4
  156. package/dist/context/context/webgl-checks.js.map +1 -1
  157. package/dist/context/debug/spector.d.ts +1 -2
  158. package/dist/context/debug/spector.d.ts.map +1 -1
  159. package/dist/context/debug/spector.js +8 -20
  160. package/dist/context/debug/spector.js.map +1 -1
  161. package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
  162. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  163. package/dist/context/debug/webgl-developer-tools.js +16 -39
  164. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  165. package/dist/context/parameters/unified-parameter-api.d.ts +9 -8
  166. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  167. package/dist/context/parameters/unified-parameter-api.js +9 -19
  168. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  169. package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
  170. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  171. package/dist/context/parameters/webgl-parameter-tables.js +18 -36
  172. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  173. package/dist/context/polyfill/context-data.d.ts +13 -0
  174. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  175. package/dist/context/polyfill/context-data.js +12 -0
  176. package/dist/context/polyfill/context-data.js.map +1 -0
  177. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  178. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  179. package/dist/context/polyfill/get-parameter-polyfill.js +4 -9
  180. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  181. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -1
  182. package/dist/context/polyfill/polyfill-context.js +22 -30
  183. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  184. package/dist/context/polyfill/polyfill-table.d.ts +8 -8
  185. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  186. package/dist/context/polyfill/polyfill-table.js +10 -32
  187. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  188. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  189. package/dist/context/polyfill/polyfill-vertex-array-object.js +0 -70
  190. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  191. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  192. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  193. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  194. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  195. package/dist/context/state-tracker/track-context-state.js +26 -62
  196. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  197. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  198. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  199. package/dist/context/state-tracker/with-parameters.js +8 -10
  200. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  201. package/dist/dist.dev.js +10390 -0
  202. package/dist/index.cjs +6615 -0
  203. package/dist/index.d.ts +27 -24
  204. package/dist/index.d.ts.map +1 -1
  205. package/dist/index.js +27 -26
  206. package/dist/index.js.map +1 -1
  207. package/dist/types.d.ts +3 -1
  208. package/dist/types.d.ts.map +1 -1
  209. package/dist/types.js.map +1 -1
  210. package/dist.min.js +37 -0
  211. package/package.json +21 -9
  212. package/src/adapter/converters/device-parameters.ts +124 -36
  213. package/src/adapter/converters/sampler-parameters.ts +22 -9
  214. package/src/adapter/converters/shader-formats.ts +44 -0
  215. package/src/adapter/converters/texture-formats.ts +267 -194
  216. package/src/adapter/converters/vertex-formats.ts +71 -10
  217. package/src/adapter/device-helpers/device-features.ts +13 -3
  218. package/src/adapter/device-helpers/device-limits.ts +5 -3
  219. package/src/adapter/device-helpers/get-device-info.ts +17 -10
  220. package/src/adapter/device-helpers/is-old-ie.ts +3 -0
  221. package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +39 -21
  222. package/src/adapter/helpers/get-shader-info.ts +41 -0
  223. package/src/adapter/helpers/get-shader-layout.ts +121 -146
  224. package/src/adapter/helpers/parse-shader-compiler-log.ts +4 -2
  225. package/src/adapter/helpers/set-uniform.ts +39 -35
  226. package/src/adapter/helpers/{attribute-utils.ts → webgl-topology-utils.ts} +7 -5
  227. package/src/adapter/objects/constants-to-keys.ts +6 -25
  228. package/src/adapter/objects/webgl-renderbuffer.ts +43 -37
  229. package/src/adapter/objects/webgl-resource.ts +16 -23
  230. package/src/adapter/resources/webgl-buffer.ts +59 -58
  231. package/src/adapter/resources/webgl-command-buffer.ts +333 -25
  232. package/src/adapter/resources/webgl-command-encoder.ts +20 -12
  233. package/src/adapter/resources/webgl-external-texture.ts +5 -2
  234. package/src/adapter/resources/webgl-framebuffer.ts +89 -133
  235. package/src/adapter/resources/webgl-render-pass.ts +160 -4
  236. package/src/adapter/resources/webgl-render-pipeline.ts +254 -174
  237. package/src/adapter/resources/webgl-sampler.ts +15 -9
  238. package/src/adapter/resources/webgl-shader.ts +14 -11
  239. package/src/adapter/resources/webgl-texture.ts +120 -90
  240. package/src/adapter/resources/webgl-vertex-array.ts +279 -0
  241. package/src/adapter/webgl-canvas-context.ts +16 -14
  242. package/src/adapter/webgl-device.ts +321 -78
  243. package/src/classic/accessor.ts +7 -17
  244. package/src/classic/{buffer.ts → buffer-with-accessor.ts} +68 -76
  245. package/src/classic/clear.ts +113 -0
  246. package/src/classic/copy-and-blit.ts +314 -0
  247. package/src/classic/format-utils.ts +46 -0
  248. package/src/classic/typed-array-utils.ts +19 -27
  249. package/src/context/context/create-browser-context.ts +140 -0
  250. package/src/context/context/create-headless-context.ts +51 -0
  251. package/src/context/context/webgl-checks.ts +3 -1
  252. package/src/context/debug/spector.ts +9 -6
  253. package/src/context/debug/webgl-developer-tools.ts +23 -15
  254. package/src/context/parameters/unified-parameter-api.ts +23 -14
  255. package/src/context/parameters/webgl-parameter-tables.ts +120 -98
  256. package/src/context/polyfill/context-data.ts +30 -0
  257. package/src/context/polyfill/get-parameter-polyfill.ts +11 -7
  258. package/src/context/polyfill/polyfill-context.ts +10 -9
  259. package/src/context/polyfill/polyfill-table.ts +21 -16
  260. package/src/context/polyfill/polyfill-vertex-array-object.ts +5 -0
  261. package/src/context/state-tracker/deep-array-equal.ts +2 -0
  262. package/src/context/state-tracker/track-context-state.ts +20 -16
  263. package/src/context/state-tracker/with-parameters.ts +13 -4
  264. package/src/index.ts +69 -35
  265. package/src/types.ts +5 -0
  266. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  267. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  268. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  269. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  270. package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
  271. package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
  272. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  273. package/dist/adapter/helpers/uniforms.d.ts +0 -26
  274. package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
  275. package/dist/adapter/helpers/uniforms.js.map +0 -1
  276. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
  277. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
  278. package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
  279. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  280. package/dist/bundle.d.ts +0 -2
  281. package/dist/bundle.d.ts.map +0 -1
  282. package/dist/bundle.js +0 -5
  283. package/dist/bundle.js.map +0 -1
  284. package/dist/classic/buffer.d.ts.map +0 -1
  285. package/dist/classic/buffer.js.map +0 -1
  286. package/dist/context/context/context-state.d.ts +0 -18
  287. package/dist/context/context/context-state.d.ts.map +0 -1
  288. package/dist/context/context/context-state.js +0 -26
  289. package/dist/context/context/context-state.js.map +0 -1
  290. package/dist/context/context/create-context.d.ts +0 -41
  291. package/dist/context/context/create-context.d.ts.map +0 -1
  292. package/dist/context/context/create-context.js +0 -49
  293. package/dist/context/context/create-context.js.map +0 -1
  294. package/dist/context/context/device-pixels.d.ts +0 -25
  295. package/dist/context/context/device-pixels.d.ts.map +0 -1
  296. package/dist/context/context/device-pixels.js +0 -98
  297. package/dist/context/context/device-pixels.js.map +0 -1
  298. package/dist/es5/adapter/converters/device-parameters.js +0 -170
  299. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  300. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  301. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  302. package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
  303. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  304. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  305. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  306. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  307. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  308. package/dist/es5/adapter/device-helpers/device-features.js +0 -144
  309. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  310. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  311. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  312. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  313. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  314. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  315. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  316. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  317. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  318. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
  319. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  320. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  321. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  322. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  323. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  324. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  325. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  326. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  327. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  328. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  329. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  330. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  331. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  332. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  333. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  334. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  335. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  336. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  337. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  338. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  339. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  340. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  341. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  342. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
  343. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  344. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
  345. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  346. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
  347. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  348. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  349. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  350. package/dist/es5/adapter/resources/webgl-shader.js +0 -149
  351. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  352. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  353. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  354. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  355. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  356. package/dist/es5/adapter/webgl-device.js +0 -399
  357. package/dist/es5/adapter/webgl-device.js.map +0 -1
  358. package/dist/es5/bundle.js +0 -7
  359. package/dist/es5/bundle.js.map +0 -1
  360. package/dist/es5/classic/accessor.js +0 -181
  361. package/dist/es5/classic/accessor.js.map +0 -1
  362. package/dist/es5/classic/buffer.js +0 -470
  363. package/dist/es5/classic/buffer.js.map +0 -1
  364. package/dist/es5/classic/typed-array-utils.js +0 -126
  365. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  366. package/dist/es5/context/context/context-state.js +0 -31
  367. package/dist/es5/context/context/context-state.js.map +0 -1
  368. package/dist/es5/context/context/create-context.js +0 -69
  369. package/dist/es5/context/context/create-context.js.map +0 -1
  370. package/dist/es5/context/context/device-pixels.js +0 -115
  371. package/dist/es5/context/context/device-pixels.js.map +0 -1
  372. package/dist/es5/context/context/webgl-checks.js +0 -54
  373. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  374. package/dist/es5/context/debug/spector.js +0 -133
  375. package/dist/es5/context/debug/spector.js.map +0 -1
  376. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  377. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  378. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  379. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  380. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  381. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  382. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  383. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  384. package/dist/es5/context/polyfill/polyfill-context.js +0 -135
  385. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  386. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  387. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  388. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  389. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  390. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  391. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  392. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  393. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  394. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  395. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  396. package/dist/es5/index.js +0 -276
  397. package/dist/es5/index.js.map +0 -1
  398. package/dist/es5/init.js +0 -10
  399. package/dist/es5/init.js.map +0 -1
  400. package/dist/es5/types/webgl.js +0 -6
  401. package/dist/es5/types/webgl.js.map +0 -1
  402. package/dist/es5/types.js +0 -2
  403. package/dist/es5/types.js.map +0 -1
  404. package/dist/esm/adapter/converters/device-parameters.js +0 -155
  405. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  406. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  407. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  408. package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
  409. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  410. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  411. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  412. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  413. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  414. package/dist/esm/adapter/device-helpers/device-features.js +0 -102
  415. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  416. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  417. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  418. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  419. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  420. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  421. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  422. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  423. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  424. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
  425. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  426. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  427. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  428. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  429. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  430. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  431. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  432. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  433. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  434. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  435. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  436. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  437. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  438. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  439. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  440. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  441. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  442. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  443. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  444. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  445. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  446. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  447. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  448. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
  449. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  450. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
  451. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  452. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
  453. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  454. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  455. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  456. package/dist/esm/adapter/resources/webgl-shader.js +0 -75
  457. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  458. package/dist/esm/adapter/resources/webgl-texture.js +0 -831
  459. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  460. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  461. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  462. package/dist/esm/adapter/webgl-device.js +0 -280
  463. package/dist/esm/adapter/webgl-device.js.map +0 -1
  464. package/dist/esm/bundle.js +0 -5
  465. package/dist/esm/bundle.js.map +0 -1
  466. package/dist/esm/classic/accessor.js +0 -144
  467. package/dist/esm/classic/accessor.js.map +0 -1
  468. package/dist/esm/classic/buffer.js +0 -384
  469. package/dist/esm/classic/buffer.js.map +0 -1
  470. package/dist/esm/classic/typed-array-utils.js +0 -112
  471. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  472. package/dist/esm/context/context/context-state.js +0 -26
  473. package/dist/esm/context/context/context-state.js.map +0 -1
  474. package/dist/esm/context/context/create-context.js +0 -49
  475. package/dist/esm/context/context/create-context.js.map +0 -1
  476. package/dist/esm/context/context/device-pixels.js +0 -98
  477. package/dist/esm/context/context/device-pixels.js.map +0 -1
  478. package/dist/esm/context/context/webgl-checks.js +0 -34
  479. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  480. package/dist/esm/context/debug/spector.js +0 -76
  481. package/dist/esm/context/debug/spector.js.map +0 -1
  482. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  483. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  484. package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
  485. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  486. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  487. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  488. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  489. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  490. package/dist/esm/context/polyfill/polyfill-context.js +0 -92
  491. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  492. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  493. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  494. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  495. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  496. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  497. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  498. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  499. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  500. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  501. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  502. package/dist/esm/index.js +0 -27
  503. package/dist/esm/index.js.map +0 -1
  504. package/dist/esm/init.js +0 -4
  505. package/dist/esm/init.js.map +0 -1
  506. package/dist/esm/types/webgl.js +0 -2
  507. package/dist/esm/types/webgl.js.map +0 -1
  508. package/dist/esm/types.js +0 -2
  509. package/dist/esm/types.js.map +0 -1
  510. package/dist/init.d.ts +0 -2
  511. package/dist/init.d.ts.map +0 -1
  512. package/dist/init.js +0 -4
  513. package/dist/init.js.map +0 -1
  514. package/dist/types/webgl.d.ts +0 -144
  515. package/dist/types/webgl.d.ts.map +0 -1
  516. package/dist/types/webgl.js +0 -2
  517. package/dist/types/webgl.js.map +0 -1
  518. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  519. package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
  520. package/src/bundle.ts +0 -4
  521. package/src/context/context/context-state.ts +0 -41
  522. package/src/context/context/create-context.ts +0 -110
  523. package/src/context/context/device-pixels.ts +0 -152
  524. package/src/init.ts +0 -4
  525. package/src/types/webgl.ts +0 -283
@@ -1,110 +0,0 @@
1
- // luma.gl, MIT license
2
-
3
- /**
4
- * ContextProps
5
- * @param webgl2 Set to false to not create a WebGL2 context (force webgl1)
6
- * @param webgl1 set to false to not create a WebGL1 context (fail if webgl2 not available)
7
- * @param onContextLost
8
- * @param onContextRestored
9
- *
10
- * BROWSER CONTEXT PARAMETERS
11
- * @param debug Instrument context (at the expense of performance).
12
- * @param alpha Default render target has an alpha buffer.
13
- * @param depth Default render target has a depth buffer of at least 16 bits.
14
- * @param stencil Default render target has a stencil buffer of at least 8 bits.
15
- * @param antialias Boolean that indicates whether or not to perform anti-aliasing.
16
- * @param premultipliedAlpha Boolean that indicates that the page compositor will assume the drawing buffer contains colors with pre-multiplied alpha.
17
- * @param preserveDrawingBuffer Default render target buffers will not be automatically cleared and will preserve their values until cleared or overwritten
18
- * @param failIfMajorPerformanceCaveat Do not create if the system performance is low.
19
- */
20
- type ContextProps = {
21
- type?: 'webgl' | 'webgl1' | 'webgl2' | string;
22
- webgl1?: boolean;
23
- webgl2?: boolean;
24
- onContextLost?: (event: Event) => void;
25
- onContextRestored?: (event: Event) => void;
26
- alpha?: boolean; // indicates if the canvas contains an alpha buffer.
27
- desynchronized?: boolean; // hints the user agent to reduce the latency by desynchronizing the canvas paint cycle from the event loop
28
- antialias?: boolean; // indicates whether or not to perform anti-aliasing.
29
- depth?: boolean; // indicates that the drawing buffer has a depth buffer of at least 16 bits.
30
- failIfMajorPerformanceCaveat?: boolean, // indicates if a context will be created if the system performance is low or if no hardware GPU is available.
31
- powerPreference?: 'default' | 'high-performance' | 'low-power',
32
- premultipliedAlpha?: boolean, // page compositor will assume the drawing buffer contains colors with pre-multiplied alpha.
33
- preserveDrawingBuffer?: boolean // buffers will not be cleared and will preserve their values until cleared or overwritten by the author.
34
- };
35
-
36
- const DEFAULT_CONTEXT_PROPS: ContextProps = {
37
- webgl2: true, // Attempt to create a WebGL2 context
38
- webgl1: true, // Attempt to create a WebGL1 context (false to fail if webgl2 not available)
39
- powerPreference: 'high-performance', // After all, most apps are using WebGL for performance reasons
40
- onContextLost: () => console.error('WebGL context lost'),
41
- onContextRestored: () => console.info('WebGL context restored'),
42
- };
43
-
44
- /**
45
- * Create a WebGL context for a canvas
46
- * Note calling this multiple time on the same canvas does return the same context
47
- * @param canvas A canvas element or offscreen canvas
48
- */
49
- export function createBrowserContext(canvas: HTMLCanvasElement | OffscreenCanvas, props: ContextProps): WebGLRenderingContext {
50
- props = {...DEFAULT_CONTEXT_PROPS, ...props};
51
-
52
- // Try to extract any extra information about why context creation failed
53
- let errorMessage = null;
54
- const onCreateError = (error) => (errorMessage = error.statusMessage || errorMessage);
55
- canvas.addEventListener('webglcontextcreationerror', onCreateError, false);
56
-
57
- // Create the desired context
58
- let gl = null;
59
-
60
- if (props.type === 'webgl2') {
61
- props = {...props, webgl1: false};
62
- }
63
- if (props.type === 'webgl1') {
64
- props = {...props, webgl2: false};
65
- }
66
-
67
- // Prefer webgl2 over webgl1 if both are acceptable
68
- if (props.webgl2) {
69
- gl = gl || canvas.getContext('webgl2', props);
70
- }
71
- if (props.webgl1) {
72
- gl = gl || canvas.getContext('webgl', props);
73
- }
74
-
75
- // TODO are we removing this listener before giving it a chance to fire?
76
- canvas.removeEventListener('webglcontextcreationerror', onCreateError, false);
77
-
78
- if (!gl) {
79
- throw new Error(
80
- `Failed to create ${props.webgl2 && !props.webgl1 ? 'WebGL2' : 'WebGL'} context: ${
81
- errorMessage || 'Unknown error'
82
- }`
83
- );
84
- }
85
-
86
- canvas.addEventListener('webglcontextlost', props.onContextLost, false);
87
- canvas.addEventListener('webglcontextrestored', props.onContextRestored, false);
88
-
89
- return gl;
90
- }
91
-
92
- /* TODO - can we call this asynchronously to catch the error events?
93
- export async function createBrowserContextAsync(canvas: HTMLCanvasElement | OffscreenCanvas, props: ContextProps): Promise<WebGLRenderingContext> {
94
- props = {...DEFAULT_CONTEXT_PROPS, ...props};
95
-
96
- // Try to extract any extra information about why context creation failed
97
- let errorMessage = null;
98
- const onCreateError = (error) => (errorMessage = error.statusMessage || errorMessage);
99
- canvas.addEventListener('webglcontextcreationerror', onCreateError, false);
100
-
101
- const gl = createBrowserContext(canvas, props);
102
-
103
- // Give the listener a chance to fire
104
- await new Promise(resolve => setTimeout(resolve, 0));
105
-
106
- canvas.removeEventListener('webglcontextcreationerror', onCreateError, false);
107
-
108
- return gl;
109
- }
110
- */
@@ -1,152 +0,0 @@
1
- import {log} from '@luma.gl/api';
2
- import {getContextState} from './context-state';
3
-
4
- /**
5
- * Returns multiplier need to convert CSS size to Device size
6
- */
7
- export function cssToDeviceRatio(gl: WebGLRenderingContext): number {
8
- const state = getContextState(gl);
9
-
10
- if (gl.canvas && state) {
11
- // For headless gl we might have used custom width and height
12
- // hence use cached clientWidth
13
- const {clientWidth} = state._canvasSizeInfo;
14
- return clientWidth ? gl.drawingBufferWidth / clientWidth : 1;
15
- }
16
- // use default device pixel ratio
17
- return 1;
18
- }
19
-
20
- /**
21
- * Maps CSS pixel position to device pixel position
22
- */
23
- export function cssToDevicePixels(
24
- gl: WebGLRenderingContext,
25
- cssPixel: number[],
26
- yInvert: boolean = true
27
- ): {
28
- x: number;
29
- y: number;
30
- width: number;
31
- height: number;
32
- } {
33
- const ratio = cssToDeviceRatio(gl);
34
- const width = gl.drawingBufferWidth;
35
- const height = gl.drawingBufferHeight;
36
- return scalePixels(cssPixel, ratio, width, height, yInvert);
37
- }
38
-
39
- /**
40
- * Calulates device pixel ratio, used during context creation
41
- *
42
- * @param useDevicePixels - boolean or a number
43
- * @return - device pixel ratio
44
- */
45
- export function getDevicePixelRatio(useDevicePixels: boolean | number): number {
46
- const windowRatio = typeof window === 'undefined' ? 1 : window.devicePixelRatio || 1;
47
- if (Number.isFinite(useDevicePixels)) {
48
- // @ts-expect-error Can no longer be boolean after previous line
49
- return useDevicePixels <= 0 ? 1 : useDevicePixels;
50
- }
51
- return useDevicePixels ? windowRatio : 1;
52
- }
53
-
54
- // use devicePixelRatio to set canvas width and height
55
- export function setDevicePixelRatio(gl: WebGLRenderingContext, devicePixelRatio: number, options: {width?: number, height?: number} = {}) {
56
- // NOTE: if options.width and options.height not used remove in v8
57
- let clientWidth = 'width' in options ? options.width : gl.canvas.clientWidth;
58
- let clientHeight = 'height' in options ? options.height : gl.canvas.clientHeight;
59
-
60
- if (!clientWidth || !clientHeight) {
61
- log.log(1, 'Canvas clientWidth/clientHeight is 0')();
62
- // by forcing devicePixel ratio to 1, we do not scale gl.canvas.width and height in each frame.
63
- devicePixelRatio = 1;
64
- clientWidth = gl.canvas.width || 1;
65
- clientHeight = gl.canvas.height || 1;
66
- }
67
-
68
- const contextState = getContextState(gl);
69
- const cachedSize = contextState._canvasSizeInfo;
70
- // Check if canvas needs to be resized
71
- if (
72
- cachedSize.clientWidth !== clientWidth ||
73
- cachedSize.clientHeight !== clientHeight ||
74
- cachedSize.devicePixelRatio !== devicePixelRatio
75
- ) {
76
- let clampedPixelRatio = devicePixelRatio;
77
-
78
- const canvasWidth = Math.floor(clientWidth * clampedPixelRatio);
79
- const canvasHeight = Math.floor(clientHeight * clampedPixelRatio);
80
- gl.canvas.width = canvasWidth;
81
- gl.canvas.height = canvasHeight;
82
-
83
- // Note: when devicePixelRatio is too high, it is possible we might hit system limit for
84
- // drawing buffer width and hight, in those cases they get clamped and resulting aspect ration may not be maintained
85
- // for those cases, reduce devicePixelRatio.
86
- if (gl.drawingBufferWidth !== canvasWidth || gl.drawingBufferHeight !== canvasHeight) {
87
- log.warn(`Device pixel ratio clamped`)();
88
- clampedPixelRatio = Math.min(
89
- gl.drawingBufferWidth / clientWidth,
90
- gl.drawingBufferHeight / clientHeight
91
- );
92
-
93
- gl.canvas.width = Math.floor(clientWidth * clampedPixelRatio);
94
- gl.canvas.height = Math.floor(clientHeight * clampedPixelRatio);
95
- }
96
-
97
- Object.assign(contextState._canvasSizeInfo, {clientWidth, clientHeight, devicePixelRatio});
98
- }
99
- }
100
-
101
-
102
- // PRIVATE
103
-
104
- function scalePixels(pixel: number[], ratio: number, width: number, height: number, yInvert: boolean): {
105
- x: number;
106
- y: number;
107
- width: number;
108
- height: number;
109
- } {
110
- const x = scaleX(pixel[0], ratio, width);
111
- let y = scaleY(pixel[1], ratio, height, yInvert);
112
-
113
- // Find boundaries of next pixel to provide valid range of device pixel locaitons
114
-
115
- let t = scaleX(pixel[0] + 1, ratio, width);
116
- // If next pixel's position is clamped to boundary, use it as is, otherwise subtract 1 for current pixel boundary
117
- const xHigh = t === width - 1 ? t : t - 1;
118
-
119
- t = scaleY(pixel[1] + 1, ratio, height, yInvert);
120
- let yHigh;
121
- if (yInvert) {
122
- // If next pixel's position is clamped to boundary, use it as is, otherwise clamp it to valid range
123
- t = t === 0 ? t : t + 1;
124
- // swap y and yHigh
125
- yHigh = y;
126
- y = t;
127
- } else {
128
- // If next pixel's position is clamped to boundary, use it as is, otherwise clamp it to valid range
129
- yHigh = t === height - 1 ? t : t - 1;
130
- // y remains same
131
- }
132
- return {
133
- x,
134
- y,
135
- // when ratio < 1, current css pixel and next css pixel may point to same device pixel, set width/height to 1 in those cases.
136
- width: Math.max(xHigh - x + 1, 1),
137
- height: Math.max(yHigh - y + 1, 1)
138
- };
139
- }
140
-
141
- function scaleX(x: number, ratio: number, width: number): number {
142
- // since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit
143
- const r = Math.min(Math.round(x * ratio), width - 1);
144
- return r;
145
- }
146
-
147
- function scaleY(y: number, ratio: number, height: number, yInvert: boolean): number {
148
- // since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit
149
- return yInvert
150
- ? Math.max(0, height - 1 - Math.round(y * ratio))
151
- : Math.min(Math.round(y * ratio), height - 1);
152
- }
package/src/init.ts DELETED
@@ -1,4 +0,0 @@
1
- import {luma} from '@luma.gl/api';
2
- import WebGLDevice from './adapter/webgl-device';
3
-
4
- luma.registerDevices([WebGLDevice]);
@@ -1,283 +0,0 @@
1
- import type {NumberArray} from '@luma.gl/api';
2
- import GL from '@luma.gl/constants';
3
-
4
- type Framebuffer = any;
5
-
6
- export type GLDrawMode =
7
- | GL.POINTS
8
- | GL.LINES
9
- | GL.LINE_STRIP
10
- | GL.LINE_LOOP
11
- | GL.TRIANGLES
12
- | GL.TRIANGLE_STRIP
13
- | GL.TRIANGLE_FAN;
14
-
15
- export type GLPrimitive = GL.POINTS | GL.LINES | GL.TRIANGLES;
16
-
17
- export type GLType =
18
- | GL.FLOAT
19
- | GL.UNSIGNED_SHORT
20
- | GL.UNSIGNED_INT
21
- | GL.UNSIGNED_BYTE
22
- | GL.BYTE
23
- | GL.SHORT
24
- | GL.INT;
25
-
26
- export type GLPackedType =
27
- | GL.UNSIGNED_SHORT_5_6_5
28
- | GL.UNSIGNED_SHORT_4_4_4_4
29
- | GL.UNSIGNED_SHORT_5_5_5_1;
30
-
31
- export type GLUniformType = GLSamplerType | GLCompositeType;
32
-
33
- export type GLSamplerType =
34
- | GL.SAMPLER_2D
35
- | GL.SAMPLER_CUBE
36
- | GL.SAMPLER_3D
37
- | GL.SAMPLER_2D_SHADOW
38
- | GL.SAMPLER_2D_ARRAY
39
- | GL.SAMPLER_2D_ARRAY_SHADOW
40
- | GL.SAMPLER_CUBE_SHADOW
41
- | GL.INT_SAMPLER_2D
42
- | GL.INT_SAMPLER_3D
43
- | GL.INT_SAMPLER_CUBE
44
- | GL.INT_SAMPLER_2D_ARRAY
45
- | GL.UNSIGNED_INT_SAMPLER_2D
46
- | GL.UNSIGNED_INT_SAMPLER_3D
47
- | GL.UNSIGNED_INT_SAMPLER_CUBE
48
- | GL.UNSIGNED_INT_SAMPLER_2D_ARRAY;
49
-
50
- // Composite types table
51
- export type GLCompositeType =
52
- | GL.FLOAT
53
- | GL.FLOAT_VEC2
54
- | GL.FLOAT_VEC3
55
- | GL.FLOAT_VEC4
56
- | GL.INT
57
- | GL.INT_VEC2
58
- | GL.INT_VEC3
59
- | GL.INT_VEC4
60
- | GL.UNSIGNED_INT
61
- | GL.UNSIGNED_INT_VEC2
62
- | GL.UNSIGNED_INT_VEC3
63
- | GL.UNSIGNED_INT_VEC4
64
- | GL.BOOL
65
- | GL.BOOL_VEC2
66
- | GL.BOOL_VEC3
67
- | GL.BOOL_VEC4
68
- | GL.FLOAT_MAT2
69
- | GL.FLOAT_MAT2x3
70
- | GL.FLOAT_MAT2x4
71
- | GL.FLOAT_MAT3x2
72
- | GL.FLOAT_MAT3
73
- | GL.FLOAT_MAT3x4
74
- | GL.FLOAT_MAT4x2
75
- | GL.FLOAT_MAT4x3
76
- | GL.FLOAT_MAT4;
77
-
78
- export type GLFunction =
79
- | GL.NEVER
80
- | GL.LESS
81
- | GL.EQUAL
82
- | GL.LEQUAL
83
- | GL.GREATER
84
- | GL.NOTEQUAL
85
- | GL.GEQUAL
86
- | GL.ALWAYS;
87
-
88
- export type GLBlendEquation =
89
- | GL.FUNC_ADD
90
- | GL.FUNC_SUBTRACT
91
- | GL.FUNC_REVERSE_SUBTRACT
92
- | GL.MIN_EXT
93
- | GL.MAX_EXT;
94
-
95
- export type GLBlendFunction =
96
- | GL.ZERO
97
- | GL.ONE
98
- | GL.SRC_COLOR
99
- | GL.ONE_MINUS_SRC_COLOR
100
- | GL.DST_COLOR
101
- | GL.ONE_MINUS_DST_COLOR
102
- | GL.SRC_ALPHA
103
- | GL.ONE_MINUS_SRC_ALPHA
104
- | GL.DST_ALPHA
105
- | GL.ONE_MINUS_DST_ALPHA
106
- | GL.CONSTANT_COLOR
107
- | GL.ONE_MINUS_CONSTANT_COLOR
108
- | GL.CONSTANT_ALPHA
109
- | GL.ONE_MINUS_CONSTANT_ALPHA
110
- | GL.SRC_ALPHA_SATURATE;
111
-
112
- export type GLStencilOp =
113
- | GL.KEEP
114
- | GL.ZERO
115
- | GL.REPLACE
116
- | GL.INCR
117
- | GL.INCR_WRAP
118
- | GL.DECR
119
- | GL.DECR_WRAP
120
- | GL.INVERT;
121
-
122
- /** Parameters for textures and samplers */
123
- export type WebGLSamplerParameters = {
124
- [GL.TEXTURE_WRAP_S]?: GL.CLAMP_TO_EDGE | GL.REPEAT | GL.MIRRORED_REPEAT;
125
- [GL.TEXTURE_WRAP_T]?: GL.CLAMP_TO_EDGE | GL.REPEAT | GL.MIRRORED_REPEAT;
126
- [GL.TEXTURE_WRAP_R]?: GL.CLAMP_TO_EDGE | GL.REPEAT | GL.MIRRORED_REPEAT;
127
- [GL.TEXTURE_MAG_FILTER]?: GL.NEAREST | GL.LINEAR;
128
- [GL.TEXTURE_MIN_FILTER]?:
129
- | GL.NEAREST
130
- | GL.LINEAR
131
- | GL.NEAREST_MIPMAP_NEAREST
132
- | GL.NEAREST_MIPMAP_LINEAR
133
- | GL.LINEAR_MIPMAP_NEAREST
134
- | GL.LINEAR_MIPMAP_LINEAR;
135
- [GL.TEXTURE_MIN_LOD]?: number;
136
- [GL.TEXTURE_MAX_LOD]?: number;
137
- [GL.TEXTURE_COMPARE_FUNC]?: number; // COMPARE_FUNC);
138
- [GL.TEXTURE_MAX_ANISOTROPY_EXT]?: number; //
139
- };
140
-
141
- /**
142
- * All global WebGL values set by a variety of setter gl.enable ...
143
- */
144
- export type GLValueParameters = {
145
- [GL.BLEND]?: boolean;
146
- [GL.BLEND_COLOR]?: [number, number, number, number] | NumberArray;
147
- [GL.BLEND_EQUATION_RGB]?: GLBlendEquation;
148
- [GL.BLEND_EQUATION_ALPHA]?: GLBlendEquation;
149
- [GL.BLEND_SRC_RGB]?: GLBlendFunction;
150
- [GL.BLEND_DST_RGB]?: GLBlendFunction;
151
- [GL.BLEND_SRC_ALPHA]?: GLBlendFunction;
152
- [GL.BLEND_DST_ALPHA]?: GLBlendFunction;
153
- [GL.COLOR_CLEAR_VALUE]?: [number, number, number, number] | NumberArray;
154
- [GL.COLOR_WRITEMASK]?: [boolean, boolean, boolean, boolean] | boolean[];
155
- [GL.CULL_FACE]?: boolean;
156
- [GL.CULL_FACE_MODE]?: GL.FRONT | GL.BACK | GL.FRONT_AND_BACK;
157
- [GL.DEPTH_TEST]?: boolean;
158
- [GL.DEPTH_CLEAR_VALUE]?: number;
159
- [GL.DEPTH_FUNC]?: GLFunction;
160
- [GL.DEPTH_RANGE]?: [number, number] | NumberArray;
161
- [GL.DEPTH_WRITEMASK]?: boolean;
162
- [GL.DITHER]?: boolean;
163
- [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
164
- [GL.CURRENT_PROGRAM]?: WebGLProgram | null;
165
- [GL.FRAMEBUFFER_BINDING]?: WebGLFramebuffer | null;
166
- [GL.RENDERBUFFER_BINDING]?: WebGLRenderbuffer | null;
167
- [GL.TRANSFORM_FEEDBACK_BINDING]?: WebGLTransformFeedback | null;
168
- [GL.VERTEX_ARRAY_BINDING]?: WebGLVertexArrayObject | null;
169
- [GL.ARRAY_BUFFER_BINDING]?: WebGLBuffer | null;
170
- [GL.COPY_READ_BUFFER_BINDING]?: WebGLBuffer | null;
171
- [GL.COPY_WRITE_BUFFER_BINDING]?: WebGLBuffer | null;
172
- [GL.PIXEL_PACK_BUFFER_BINDING]?: WebGLBuffer | null;
173
- [GL.PIXEL_UNPACK_BUFFER_BINDING]?: WebGLBuffer | null;
174
- [GL.TEXTURE_BINDING_2D]?: WebGLTexture | null;
175
- [GL.TEXTURE_BINDING_2D_ARRAY]?: WebGLTexture | null;
176
- [GL.TEXTURE_BINDING_3D]?: WebGLTexture | null;
177
- [GL.TEXTURE_BINDING_CUBE_MAP]?: WebGLTexture | null;
178
- [GL.FRONT_FACE]?: GL.CW | GL.CCW;
179
- [GL.GENERATE_MIPMAP_HINT]?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
180
- [GL.LINE_WIDTH]?: number;
181
- [GL.POLYGON_OFFSET_FILL]?: boolean;
182
- [GL.POLYGON_OFFSET_FACTOR]?: number;
183
- [GL.POLYGON_OFFSET_UNITS]?: number;
184
- [GL.SAMPLE_ALPHA_TO_COVERAGE]?: boolean;
185
- [GL.SAMPLE_COVERAGE]?: boolean;
186
- [GL.RASTERIZER_DISCARD]?: boolean;
187
- [GL.SAMPLE_COVERAGE_VALUE]?: number;
188
- [GL.SAMPLE_COVERAGE_INVERT]?: boolean;
189
- [GL.SCISSOR_TEST]?: boolean;
190
- [GL.SCISSOR_BOX]?: [number, number, number, number] | NumberArray;
191
- [GL.STENCIL_TEST]?: boolean;
192
- [GL.STENCIL_CLEAR_VALUE]?: number;
193
- [GL.STENCIL_WRITEMASK]?: number;
194
- [GL.STENCIL_BACK_WRITEMASK]?: number;
195
- [GL.STENCIL_FUNC]?: GLFunction;
196
- [GL.STENCIL_REF]?: GLFunction;
197
- [GL.STENCIL_VALUE_MASK]?: GLFunction;
198
- [GL.STENCIL_BACK_FUNC]?: GLFunction;
199
- [GL.STENCIL_BACK_REF]?: GLFunction;
200
- [GL.STENCIL_BACK_VALUE_MASK]?: GLFunction;
201
- [GL.STENCIL_FAIL]?: GLStencilOp;
202
- [GL.STENCIL_PASS_DEPTH_FAIL]?: GLStencilOp;
203
- [GL.STENCIL_PASS_DEPTH_PASS]?: GLStencilOp;
204
- [GL.STENCIL_BACK_FAIL]?: GLStencilOp;
205
- [GL.STENCIL_BACK_PASS_DEPTH_FAIL]?: GLStencilOp;
206
- [GL.STENCIL_BACK_PASS_DEPTH_PASS]?: GLStencilOp;
207
- [GL.VIEWPORT]?: [number, number, number, number] | NumberArray;
208
-
209
- // WEBGL1 PIXEL PACK/UNPACK MODES
210
- [GL.PACK_ALIGNMENT]?: number;
211
- [GL.UNPACK_ALIGNMENT]?: number;
212
- [GL.UNPACK_FLIP_Y_WEBGL]?: boolean;
213
- [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]?: boolean;
214
- [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]?: GL.NONE | GL.BROWSER_DEFAULT_WEBGL;
215
-
216
- // WEBGL2 PIXEL PACK/UNPACK MODES
217
- // RASTERIZER_DISCARD ...
218
- [GL.PACK_ROW_LENGTH]?: number;
219
- [GL.PACK_SKIP_PIXELS]?: number;
220
- [GL.PACK_SKIP_ROWS]?: number;
221
- [GL.READ_FRAMEBUFFER_BINDING]?: Framebuffer | null;
222
- [GL.UNPACK_ROW_LENGTH]?: number;
223
- [GL.UNPACK_IMAGE_HEIGHT]?: number;
224
- [GL.UNPACK_SKIP_PIXELS]?: number;
225
- [GL.UNPACK_SKIP_ROWS]?: number;
226
- [GL.UNPACK_SKIP_IMAGES]?: number;
227
- };
228
-
229
- export type GLFunctionParameters = {
230
- // Function-style setters
231
- framebuffer?: Framebuffer | null;
232
- blend?: boolean;
233
- blendColor?: [number, number, number, number] | NumberArray;
234
- blendEquation?: GLBlendEquation | [GLBlendEquation, GLBlendEquation];
235
- blendFunc?:
236
- | [GLBlendFunction, GLBlendFunction]
237
- | [GLBlendFunction, GLBlendFunction, GLBlendFunction, GLBlendFunction];
238
-
239
- clearColor?: [number, number, number, number] | NumberArray;
240
- clearDepth?: number;
241
- clearStencil?: number;
242
-
243
- colorMask?: [boolean, boolean, boolean, boolean];
244
-
245
- cull?: boolean;
246
- cullFace?: GL.FRONT | GL.BACK | GL.FRONT_AND_BACK;
247
-
248
- depthTest?: boolean;
249
- depthFunc?: GLFunction;
250
- depthMask?: boolean;
251
- depthRange?: [number, number] | NumberArray;
252
-
253
- dither?: boolean;
254
-
255
- derivativeHint?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
256
-
257
- frontFace?: GL.CW | GL.CCW;
258
-
259
- mipmapHint?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
260
-
261
- lineWidth?: number;
262
-
263
- polygonOffsetFill?: boolean;
264
- polygonOffset?: [number, number];
265
-
266
- sampleCoverage?: [number, boolean];
267
-
268
- scissorTest?: boolean;
269
- scissor?: [number, number, number, number] | NumberArray;
270
-
271
- stencilTest?: boolean;
272
- stencilMask?: number | [number, number];
273
- stencilFunc?:
274
- | [GLFunction, number, number]
275
- | [GLFunction, number, number, GLFunction, number, number];
276
- stencilOp?:
277
- | [GLStencilOp, GLStencilOp, GLStencilOp]
278
- | [GLStencilOp, GLStencilOp, GLStencilOp, GLStencilOp, GLStencilOp, GLStencilOp];
279
- viewport?: [number, number, number, number] | NumberArray;
280
- };
281
-
282
- /** WebGL style parameters object (with both GL constants and function style fields) */
283
- export type GLParameters = GLValueParameters | GLFunctionParameters;