@luma.gl/webgl 9.0.0-alpha.9 → 9.0.0-beta.2

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 +12 -3
  3. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/device-parameters.js +89 -74
  5. package/dist/adapter/converters/device-parameters.js.map +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts +4 -10
  7. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  8. package/dist/adapter/converters/sampler-parameters.js +29 -180
  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 +52 -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 +306 -343
  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 +53 -22
  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 +9 -25
  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 +54 -58
  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 +49 -22
  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/decode-webgl-types.js +89 -0
  40. package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
  41. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -48
  42. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  43. package/dist/adapter/helpers/get-shader-layout.js +58 -138
  44. package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
  45. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  46. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  47. package/dist/adapter/helpers/parse-shader-compiler-log.js +16 -11
  48. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  49. package/dist/adapter/helpers/set-uniform.d.ts +3 -2
  50. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  51. package/dist/adapter/helpers/set-uniform.js +51 -82
  52. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  53. package/dist/adapter/helpers/webgl-topology-utils.d.ts +16 -0
  54. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
  55. package/dist/adapter/helpers/webgl-topology-utils.js +103 -0
  56. package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
  57. package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
  58. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  59. package/dist/adapter/objects/constants-to-keys.js +2 -29
  60. package/dist/adapter/objects/constants-to-keys.js.map +1 -1
  61. package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
  62. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  63. package/dist/adapter/objects/webgl-renderbuffer.js +36 -44
  64. package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
  65. package/dist/adapter/objects/webgl-resource.d.ts +6 -9
  66. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  67. package/dist/adapter/objects/webgl-resource.js +26 -83
  68. package/dist/adapter/objects/webgl-resource.js.map +1 -1
  69. package/dist/adapter/resources/webgl-buffer.d.ts +19 -14
  70. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  71. package/dist/adapter/resources/webgl-buffer.js +67 -101
  72. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  73. package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
  74. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  75. package/dist/adapter/resources/webgl-command-buffer.js +175 -48
  76. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  77. package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
  78. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  79. package/dist/adapter/resources/webgl-command-encoder.js +10 -20
  80. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  81. package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
  82. package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -25
  83. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  84. package/dist/adapter/resources/webgl-framebuffer.js +63 -175
  85. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  86. package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
  87. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  88. package/dist/adapter/resources/webgl-render-pass.js +98 -12
  89. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  90. package/dist/adapter/resources/webgl-render-pipeline.d.ts +34 -20
  91. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  92. package/dist/adapter/resources/webgl-render-pipeline.js +110 -293
  93. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  94. package/dist/adapter/resources/webgl-sampler.d.ts +5 -4
  95. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  96. package/dist/adapter/resources/webgl-sampler.js +11 -21
  97. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  98. package/dist/adapter/resources/webgl-shader.d.ts +5 -5
  99. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  100. package/dist/adapter/resources/webgl-shader.js +18 -44
  101. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  102. package/dist/adapter/resources/webgl-texture.d.ts +51 -31
  103. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  104. package/dist/adapter/resources/webgl-texture.js +123 -244
  105. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  106. package/dist/adapter/resources/webgl-transform-feedback.d.ts +47 -0
  107. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -0
  108. package/dist/adapter/resources/webgl-transform-feedback.js +164 -0
  109. package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -0
  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 +167 -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 +12 -23
  117. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  118. package/dist/adapter/webgl-device.d.ts +100 -41
  119. package/dist/adapter/webgl-device.d.ts.map +1 -1
  120. package/dist/adapter/webgl-device.js +217 -158
  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 +26 -52
  125. package/dist/classic/accessor.js.map +1 -1
  126. package/dist/classic/clear.d.ts +22 -0
  127. package/dist/classic/clear.d.ts.map +1 -0
  128. package/dist/classic/clear.js +88 -0
  129. package/dist/classic/clear.js.map +1 -0
  130. package/dist/classic/copy-and-blit.d.ts +62 -0
  131. package/dist/classic/copy-and-blit.d.ts.map +1 -0
  132. package/dist/classic/copy-and-blit.js +192 -0
  133. package/dist/classic/copy-and-blit.js.map +1 -0
  134. package/dist/classic/format-utils.d.ts +3 -0
  135. package/dist/classic/format-utils.d.ts.map +1 -0
  136. package/dist/classic/format-utils.js +37 -0
  137. package/dist/classic/format-utils.js.map +1 -0
  138. package/dist/classic/typed-array-utils.d.ts +17 -17
  139. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  140. package/dist/classic/typed-array-utils.js +18 -39
  141. package/dist/classic/typed-array-utils.js.map +1 -1
  142. package/dist/context/context/create-browser-context.d.ts +17 -18
  143. package/dist/context/context/create-browser-context.d.ts.map +1 -1
  144. package/dist/context/context/create-browser-context.js +11 -19
  145. package/dist/context/context/create-browser-context.js.map +1 -1
  146. package/dist/context/context/create-headless-context.d.ts +1 -1
  147. package/dist/context/context/create-headless-context.d.ts.map +1 -1
  148. package/dist/context/context/create-headless-context.js +6 -7
  149. package/dist/context/context/create-headless-context.js.map +1 -1
  150. package/dist/context/context/webgl-checks.d.ts.map +1 -1
  151. package/dist/context/context/webgl-checks.js +1 -4
  152. package/dist/context/context/webgl-checks.js.map +1 -1
  153. package/dist/context/debug/spector.d.ts +1 -2
  154. package/dist/context/debug/spector.d.ts.map +1 -1
  155. package/dist/context/debug/spector.js +7 -19
  156. package/dist/context/debug/spector.js.map +1 -1
  157. package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
  158. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  159. package/dist/context/debug/webgl-developer-tools.js +18 -41
  160. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  161. package/dist/context/parameters/unified-parameter-api.d.ts +5 -5
  162. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  163. package/dist/context/parameters/unified-parameter-api.js +9 -17
  164. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  165. package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
  166. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  167. package/dist/context/parameters/webgl-parameter-tables.js +267 -286
  168. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  169. package/dist/context/polyfill/context-data.d.ts +13 -0
  170. package/dist/context/polyfill/context-data.d.ts.map +1 -0
  171. package/dist/context/polyfill/context-data.js +12 -0
  172. package/dist/context/polyfill/context-data.js.map +1 -0
  173. package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
  174. package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
  175. package/dist/context/polyfill/get-parameter-polyfill.js +37 -43
  176. package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
  177. package/dist/context/polyfill/polyfill-context.d.ts.map +1 -1
  178. package/dist/context/polyfill/polyfill-context.js +27 -31
  179. package/dist/context/polyfill/polyfill-context.js.map +1 -1
  180. package/dist/context/polyfill/polyfill-table.d.ts +7 -7
  181. package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
  182. package/dist/context/polyfill/polyfill-table.js +17 -40
  183. package/dist/context/polyfill/polyfill-table.js.map +1 -1
  184. package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
  185. package/dist/context/polyfill/polyfill-vertex-array-object.js +17 -87
  186. package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
  187. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  188. package/dist/context/state-tracker/deep-array-equal.js +0 -4
  189. package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
  190. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  191. package/dist/context/state-tracker/track-context-state.js +25 -61
  192. package/dist/context/state-tracker/track-context-state.js.map +1 -1
  193. package/dist/context/state-tracker/with-parameters.d.ts +2 -1
  194. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  195. package/dist/context/state-tracker/with-parameters.js +8 -10
  196. package/dist/context/state-tracker/with-parameters.js.map +1 -1
  197. package/dist/dist.dev.js +9296 -0
  198. package/dist/index.cjs +6469 -0
  199. package/dist/index.d.ts +20 -24
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +25 -27
  202. package/dist/index.js.map +1 -1
  203. package/dist/types.d.ts +3 -1
  204. package/dist/types.d.ts.map +1 -1
  205. package/dist/types.js.map +1 -1
  206. package/dist.min.js +52 -0
  207. package/package.json +21 -9
  208. package/src/adapter/converters/device-parameters.ts +120 -43
  209. package/src/adapter/converters/sampler-parameters.ts +54 -126
  210. package/src/adapter/converters/shader-formats.ts +44 -0
  211. package/src/adapter/converters/texture-formats.ts +265 -192
  212. package/src/adapter/converters/vertex-formats.ts +71 -10
  213. package/src/adapter/device-helpers/device-features.ts +5 -2
  214. package/src/adapter/device-helpers/device-limits.ts +4 -2
  215. package/src/adapter/device-helpers/get-device-info.ts +72 -18
  216. package/src/adapter/device-helpers/is-old-ie.ts +3 -0
  217. package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +31 -24
  218. package/src/adapter/helpers/get-shader-layout.ts +87 -131
  219. package/src/adapter/helpers/parse-shader-compiler-log.ts +24 -8
  220. package/src/adapter/helpers/set-uniform.ts +39 -35
  221. package/src/adapter/helpers/webgl-topology-utils.ts +103 -0
  222. package/src/adapter/objects/constants-to-keys.ts +6 -25
  223. package/src/adapter/objects/webgl-renderbuffer.ts +43 -37
  224. package/src/adapter/objects/webgl-resource.ts +16 -23
  225. package/src/adapter/resources/webgl-buffer.ts +101 -106
  226. package/src/adapter/resources/webgl-command-buffer.ts +327 -25
  227. package/src/adapter/resources/webgl-command-encoder.ts +20 -12
  228. package/src/adapter/resources/webgl-external-texture.ts +5 -2
  229. package/src/adapter/resources/webgl-framebuffer.ts +86 -133
  230. package/src/adapter/resources/webgl-render-pass.ts +165 -4
  231. package/src/adapter/resources/webgl-render-pipeline.ts +209 -205
  232. package/src/adapter/resources/webgl-sampler.ts +12 -8
  233. package/src/adapter/resources/webgl-shader.ts +32 -27
  234. package/src/adapter/resources/webgl-texture.ts +117 -91
  235. package/src/adapter/resources/webgl-transform-feedback.ts +202 -0
  236. package/src/adapter/resources/webgl-vertex-array.ts +283 -0
  237. package/src/adapter/webgl-canvas-context.ts +18 -13
  238. package/src/adapter/webgl-device.ts +343 -92
  239. package/src/classic/accessor.ts +8 -5
  240. package/src/classic/clear.ts +113 -0
  241. package/src/classic/copy-and-blit.ts +312 -0
  242. package/src/classic/format-utils.ts +46 -0
  243. package/src/classic/typed-array-utils.ts +19 -27
  244. package/src/context/context/create-browser-context.ts +53 -31
  245. package/src/context/context/create-headless-context.ts +5 -2
  246. package/src/context/context/webgl-checks.ts +3 -1
  247. package/src/context/debug/spector.ts +8 -5
  248. package/src/context/debug/webgl-developer-tools.ts +26 -17
  249. package/src/context/parameters/unified-parameter-api.ts +15 -9
  250. package/src/context/parameters/webgl-parameter-tables.ts +120 -98
  251. package/src/context/polyfill/context-data.ts +30 -0
  252. package/src/context/polyfill/get-parameter-polyfill.ts +11 -7
  253. package/src/context/polyfill/polyfill-context.ts +15 -8
  254. package/src/context/polyfill/polyfill-table.ts +20 -15
  255. package/src/context/polyfill/polyfill-vertex-array-object.ts +5 -0
  256. package/src/context/state-tracker/deep-array-equal.ts +2 -0
  257. package/src/context/state-tracker/track-context-state.ts +13 -10
  258. package/src/context/state-tracker/with-parameters.ts +13 -4
  259. package/src/index.ts +42 -42
  260. package/src/types.ts +5 -0
  261. package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
  262. package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
  263. package/dist/adapter/converters/renderbuffer-formats.js +0 -185
  264. package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
  265. package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
  266. package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
  267. package/dist/adapter/helpers/attribute-utils.js +0 -81
  268. package/dist/adapter/helpers/attribute-utils.js.map +0 -1
  269. package/dist/adapter/helpers/uniforms.d.ts +0 -26
  270. package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
  271. package/dist/adapter/helpers/uniforms.js +0 -99
  272. package/dist/adapter/helpers/uniforms.js.map +0 -1
  273. package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
  274. package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
  275. package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
  276. package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  277. package/dist/bundle.d.ts +0 -2
  278. package/dist/bundle.d.ts.map +0 -1
  279. package/dist/bundle.js +0 -5
  280. package/dist/bundle.js.map +0 -1
  281. package/dist/classic/buffer.d.ts +0 -95
  282. package/dist/classic/buffer.d.ts.map +0 -1
  283. package/dist/classic/buffer.js +0 -392
  284. package/dist/classic/buffer.js.map +0 -1
  285. package/dist/context/context/context-state.d.ts +0 -18
  286. package/dist/context/context/context-state.d.ts.map +0 -1
  287. package/dist/context/context/context-state.js +0 -26
  288. package/dist/context/context/context-state.js.map +0 -1
  289. package/dist/context/context/device-pixels.d.ts +0 -25
  290. package/dist/context/context/device-pixels.d.ts.map +0 -1
  291. package/dist/context/context/device-pixels.js +0 -103
  292. package/dist/context/context/device-pixels.js.map +0 -1
  293. package/dist/es5/adapter/converters/device-parameters.js +0 -185
  294. package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
  295. package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
  296. package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
  297. package/dist/es5/adapter/converters/sampler-parameters.js +0 -245
  298. package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
  299. package/dist/es5/adapter/converters/texture-formats.js +0 -1031
  300. package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
  301. package/dist/es5/adapter/converters/vertex-formats.js +0 -45
  302. package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
  303. package/dist/es5/adapter/device-helpers/device-features.js +0 -155
  304. package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
  305. package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
  306. package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
  307. package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
  308. package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
  309. package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
  310. package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
  311. package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
  312. package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
  313. package/dist/es5/adapter/helpers/get-shader-layout.js +0 -391
  314. package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
  315. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
  316. package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  317. package/dist/es5/adapter/helpers/set-uniform.js +0 -125
  318. package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
  319. package/dist/es5/adapter/helpers/uniforms.js +0 -112
  320. package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
  321. package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
  322. package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
  323. package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
  324. package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
  325. package/dist/es5/adapter/objects/webgl-resource.js +0 -292
  326. package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
  327. package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
  328. package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  329. package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
  330. package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
  331. package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
  332. package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
  333. package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
  334. package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
  335. package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
  336. package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
  337. package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -346
  338. package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
  339. package/dist/es5/adapter/resources/webgl-render-pass.js +0 -62
  340. package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
  341. package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -530
  342. package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
  343. package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
  344. package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
  345. package/dist/es5/adapter/resources/webgl-shader.js +0 -150
  346. package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
  347. package/dist/es5/adapter/resources/webgl-texture.js +0 -986
  348. package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
  349. package/dist/es5/adapter/webgl-canvas-context.js +0 -97
  350. package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
  351. package/dist/es5/adapter/webgl-device.js +0 -463
  352. package/dist/es5/adapter/webgl-device.js.map +0 -1
  353. package/dist/es5/bundle.js +0 -7
  354. package/dist/es5/bundle.js.map +0 -1
  355. package/dist/es5/classic/accessor.js +0 -181
  356. package/dist/es5/classic/accessor.js.map +0 -1
  357. package/dist/es5/classic/buffer.js +0 -478
  358. package/dist/es5/classic/buffer.js.map +0 -1
  359. package/dist/es5/classic/typed-array-utils.js +0 -126
  360. package/dist/es5/classic/typed-array-utils.js.map +0 -1
  361. package/dist/es5/context/context/context-state.js +0 -31
  362. package/dist/es5/context/context/context-state.js.map +0 -1
  363. package/dist/es5/context/context/create-browser-context.js +0 -83
  364. package/dist/es5/context/context/create-browser-context.js.map +0 -1
  365. package/dist/es5/context/context/create-headless-context.js +0 -60
  366. package/dist/es5/context/context/create-headless-context.js.map +0 -1
  367. package/dist/es5/context/context/device-pixels.js +0 -121
  368. package/dist/es5/context/context/device-pixels.js.map +0 -1
  369. package/dist/es5/context/context/webgl-checks.js +0 -54
  370. package/dist/es5/context/context/webgl-checks.js.map +0 -1
  371. package/dist/es5/context/debug/spector.js +0 -133
  372. package/dist/es5/context/debug/spector.js.map +0 -1
  373. package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
  374. package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
  375. package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
  376. package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
  377. package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
  378. package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
  379. package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
  380. package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
  381. package/dist/es5/context/polyfill/polyfill-context.js +0 -134
  382. package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
  383. package/dist/es5/context/polyfill/polyfill-table.js +0 -166
  384. package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
  385. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
  386. package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  387. package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
  388. package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
  389. package/dist/es5/context/state-tracker/track-context-state.js +0 -211
  390. package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
  391. package/dist/es5/context/state-tracker/with-parameters.js +0 -44
  392. package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
  393. package/dist/es5/index.js +0 -290
  394. package/dist/es5/index.js.map +0 -1
  395. package/dist/es5/init.js +0 -10
  396. package/dist/es5/init.js.map +0 -1
  397. package/dist/es5/types/webgl.js +0 -6
  398. package/dist/es5/types/webgl.js.map +0 -1
  399. package/dist/es5/types.js +0 -2
  400. package/dist/es5/types.js.map +0 -1
  401. package/dist/esm/adapter/converters/device-parameters.js +0 -168
  402. package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
  403. package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
  404. package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
  405. package/dist/esm/adapter/converters/sampler-parameters.js +0 -227
  406. package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
  407. package/dist/esm/adapter/converters/texture-formats.js +0 -954
  408. package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
  409. package/dist/esm/adapter/converters/vertex-formats.js +0 -35
  410. package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
  411. package/dist/esm/adapter/device-helpers/device-features.js +0 -112
  412. package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
  413. package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
  414. package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
  415. package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
  416. package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
  417. package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
  418. package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
  419. package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
  420. package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
  421. package/dist/esm/adapter/helpers/get-shader-layout.js +0 -330
  422. package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
  423. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
  424. package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
  425. package/dist/esm/adapter/helpers/set-uniform.js +0 -115
  426. package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
  427. package/dist/esm/adapter/helpers/uniforms.js +0 -99
  428. package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
  429. package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
  430. package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
  431. package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
  432. package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
  433. package/dist/esm/adapter/objects/webgl-resource.js +0 -216
  434. package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
  435. package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
  436. package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
  437. package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
  438. package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
  439. package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
  440. package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
  441. package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
  442. package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
  443. package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
  444. package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
  445. package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -267
  446. package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
  447. package/dist/esm/adapter/resources/webgl-render-pass.js +0 -21
  448. package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
  449. package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -428
  450. package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
  451. package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
  452. package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
  453. package/dist/esm/adapter/resources/webgl-shader.js +0 -76
  454. package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
  455. package/dist/esm/adapter/resources/webgl-texture.js +0 -834
  456. package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
  457. package/dist/esm/adapter/webgl-canvas-context.js +0 -54
  458. package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
  459. package/dist/esm/adapter/webgl-device.js +0 -337
  460. package/dist/esm/adapter/webgl-device.js.map +0 -1
  461. package/dist/esm/bundle.js +0 -5
  462. package/dist/esm/bundle.js.map +0 -1
  463. package/dist/esm/classic/accessor.js +0 -144
  464. package/dist/esm/classic/accessor.js.map +0 -1
  465. package/dist/esm/classic/buffer.js +0 -392
  466. package/dist/esm/classic/buffer.js.map +0 -1
  467. package/dist/esm/classic/typed-array-utils.js +0 -112
  468. package/dist/esm/classic/typed-array-utils.js.map +0 -1
  469. package/dist/esm/context/context/context-state.js +0 -26
  470. package/dist/esm/context/context/context-state.js.map +0 -1
  471. package/dist/esm/context/context/create-browser-context.js +0 -61
  472. package/dist/esm/context/context/create-browser-context.js.map +0 -1
  473. package/dist/esm/context/context/create-headless-context.js +0 -43
  474. package/dist/esm/context/context/create-headless-context.js.map +0 -1
  475. package/dist/esm/context/context/device-pixels.js +0 -103
  476. package/dist/esm/context/context/device-pixels.js.map +0 -1
  477. package/dist/esm/context/context/webgl-checks.js +0 -34
  478. package/dist/esm/context/context/webgl-checks.js.map +0 -1
  479. package/dist/esm/context/debug/spector.js +0 -76
  480. package/dist/esm/context/debug/spector.js.map +0 -1
  481. package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
  482. package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
  483. package/dist/esm/context/parameters/unified-parameter-api.js +0 -63
  484. package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
  485. package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
  486. package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
  487. package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
  488. package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
  489. package/dist/esm/context/polyfill/polyfill-context.js +0 -91
  490. package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
  491. package/dist/esm/context/polyfill/polyfill-table.js +0 -160
  492. package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
  493. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
  494. package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
  495. package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
  496. package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
  497. package/dist/esm/context/state-tracker/track-context-state.js +0 -183
  498. package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
  499. package/dist/esm/context/state-tracker/with-parameters.js +0 -36
  500. package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
  501. package/dist/esm/index.js +0 -28
  502. package/dist/esm/index.js.map +0 -1
  503. package/dist/esm/init.js +0 -4
  504. package/dist/esm/init.js.map +0 -1
  505. package/dist/esm/types/webgl.js +0 -2
  506. package/dist/esm/types/webgl.js.map +0 -1
  507. package/dist/esm/types.js +0 -2
  508. package/dist/esm/types.js.map +0 -1
  509. package/dist/init.d.ts +0 -2
  510. package/dist/init.d.ts.map +0 -1
  511. package/dist/init.js +0 -4
  512. package/dist/init.js.map +0 -1
  513. package/dist/types/webgl.d.ts +0 -145
  514. package/dist/types/webgl.d.ts.map +0 -1
  515. package/dist/types/webgl.js +0 -2
  516. package/dist/types/webgl.js.map +0 -1
  517. package/src/adapter/converters/renderbuffer-formats.ts +0 -92
  518. package/src/adapter/helpers/attribute-utils.ts +0 -61
  519. package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
  520. package/src/bundle.ts +0 -4
  521. package/src/classic/buffer.ts +0 -474
  522. package/src/context/context/context-state.ts +0 -41
  523. package/src/context/context/device-pixels.ts +0 -158
  524. package/src/init.ts +0 -4
  525. package/src/types/webgl.ts +0 -284
@@ -1,103 +0,0 @@
1
- import { log } from '@luma.gl/api';
2
- import { getContextState } from './context-state';
3
- export function cssToDeviceRatio(gl) {
4
- const state = getContextState(gl);
5
-
6
- if (gl.canvas && state) {
7
- const {
8
- clientWidth
9
- } = state._canvasSizeInfo;
10
- return clientWidth ? gl.drawingBufferWidth / clientWidth : 1;
11
- }
12
-
13
- return 1;
14
- }
15
- export function cssToDevicePixels(gl, cssPixel, yInvert = true) {
16
- const ratio = cssToDeviceRatio(gl);
17
- const width = gl.drawingBufferWidth;
18
- const height = gl.drawingBufferHeight;
19
- return scalePixels(cssPixel, ratio, width, height, yInvert);
20
- }
21
- export function getDevicePixelRatio(useDevicePixels) {
22
- const windowRatio = typeof window === 'undefined' ? 1 : window.devicePixelRatio || 1;
23
-
24
- if (Number.isFinite(useDevicePixels)) {
25
- return useDevicePixels <= 0 ? 1 : useDevicePixels;
26
- }
27
-
28
- return useDevicePixels ? windowRatio : 1;
29
- }
30
- export function setDevicePixelRatio(gl, devicePixelRatio, options = {}) {
31
- if (!(gl.canvas instanceof HTMLCanvasElement)) {
32
- return;
33
- }
34
-
35
- const canvas = gl.canvas;
36
- let clientWidth = 'width' in options ? options.width : canvas.clientWidth;
37
- let clientHeight = 'height' in options ? options.height : canvas.clientHeight;
38
-
39
- if (!clientWidth || !clientHeight) {
40
- log.log(1, 'Canvas clientWidth/clientHeight is 0')();
41
- devicePixelRatio = 1;
42
- clientWidth = canvas.width || 1;
43
- clientHeight = canvas.height || 1;
44
- }
45
-
46
- const contextState = getContextState(gl);
47
- const cachedSize = contextState._canvasSizeInfo;
48
-
49
- if (cachedSize.clientWidth !== clientWidth || cachedSize.clientHeight !== clientHeight || cachedSize.devicePixelRatio !== devicePixelRatio) {
50
- let clampedPixelRatio = devicePixelRatio;
51
- const canvasWidth = Math.floor(clientWidth * clampedPixelRatio);
52
- const canvasHeight = Math.floor(clientHeight * clampedPixelRatio);
53
- canvas.width = canvasWidth;
54
- canvas.height = canvasHeight;
55
-
56
- if (gl.drawingBufferWidth !== canvasWidth || gl.drawingBufferHeight !== canvasHeight) {
57
- log.warn("Device pixel ratio clamped")();
58
- clampedPixelRatio = Math.min(gl.drawingBufferWidth / clientWidth, gl.drawingBufferHeight / clientHeight);
59
- canvas.width = Math.floor(clientWidth * clampedPixelRatio);
60
- canvas.height = Math.floor(clientHeight * clampedPixelRatio);
61
- }
62
-
63
- Object.assign(contextState._canvasSizeInfo, {
64
- clientWidth,
65
- clientHeight,
66
- devicePixelRatio
67
- });
68
- }
69
- }
70
-
71
- function scalePixels(pixel, ratio, width, height, yInvert) {
72
- const x = scaleX(pixel[0], ratio, width);
73
- let y = scaleY(pixel[1], ratio, height, yInvert);
74
- let t = scaleX(pixel[0] + 1, ratio, width);
75
- const xHigh = t === width - 1 ? t : t - 1;
76
- t = scaleY(pixel[1] + 1, ratio, height, yInvert);
77
- let yHigh;
78
-
79
- if (yInvert) {
80
- t = t === 0 ? t : t + 1;
81
- yHigh = y;
82
- y = t;
83
- } else {
84
- yHigh = t === height - 1 ? t : t - 1;
85
- }
86
-
87
- return {
88
- x,
89
- y,
90
- width: Math.max(xHigh - x + 1, 1),
91
- height: Math.max(yHigh - y + 1, 1)
92
- };
93
- }
94
-
95
- function scaleX(x, ratio, width) {
96
- const r = Math.min(Math.round(x * ratio), width - 1);
97
- return r;
98
- }
99
-
100
- function scaleY(y, ratio, height, yInvert) {
101
- return yInvert ? Math.max(0, height - 1 - Math.round(y * ratio)) : Math.min(Math.round(y * ratio), height - 1);
102
- }
103
- //# sourceMappingURL=device-pixels.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/context/context/device-pixels.ts"],"names":["log","getContextState","cssToDeviceRatio","gl","state","canvas","clientWidth","_canvasSizeInfo","drawingBufferWidth","cssToDevicePixels","cssPixel","yInvert","ratio","width","height","drawingBufferHeight","scalePixels","getDevicePixelRatio","useDevicePixels","windowRatio","window","devicePixelRatio","Number","isFinite","setDevicePixelRatio","options","HTMLCanvasElement","clientHeight","contextState","cachedSize","clampedPixelRatio","canvasWidth","Math","floor","canvasHeight","warn","min","Object","assign","pixel","x","scaleX","y","scaleY","t","xHigh","yHigh","max","r","round"],"mappings":"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","sourcesContent":["import {log} from '@luma.gl/api';\nimport {getContextState} from './context-state';\n\n/**\n * Returns multiplier need to convert CSS size to Device size\n */\nexport function cssToDeviceRatio(gl: WebGLRenderingContext): number {\n const state = getContextState(gl);\n\n if (gl.canvas && state) {\n // For headless gl we might have used custom width and height\n // hence use cached clientWidth\n const {clientWidth} = state._canvasSizeInfo;\n return clientWidth ? gl.drawingBufferWidth / clientWidth : 1;\n }\n // use default device pixel ratio\n return 1;\n}\n\n/**\n * Maps CSS pixel position to device pixel position\n */\n export function cssToDevicePixels(\n gl: WebGLRenderingContext,\n cssPixel: number[],\n yInvert: boolean = true\n): {\n x: number;\n y: number;\n width: number;\n height: number;\n} {\n const ratio = cssToDeviceRatio(gl);\n const width = gl.drawingBufferWidth;\n const height = gl.drawingBufferHeight;\n return scalePixels(cssPixel, ratio, width, height, yInvert);\n}\n\n/**\n * Calulates device pixel ratio, used during context creation\n *\n * @param useDevicePixels - boolean or a number\n * @return - device pixel ratio\n */\n export function getDevicePixelRatio(useDevicePixels: boolean | number): number {\n const windowRatio = typeof window === 'undefined' ? 1 : window.devicePixelRatio || 1;\n if (Number.isFinite(useDevicePixels)) {\n // @ts-expect-error Can no longer be boolean after previous line\n return useDevicePixels <= 0 ? 1 : useDevicePixels;\n }\n return useDevicePixels ? windowRatio : 1;\n}\n\n// use devicePixelRatio to set canvas width and height\nexport function setDevicePixelRatio(gl: WebGLRenderingContext, devicePixelRatio: number, options: {width?: number, height?: number} = {}) {\n if (!(gl.canvas instanceof HTMLCanvasElement)) {\n return;\n }\n\n const canvas: HTMLCanvasElement = gl.canvas;\n\n // NOTE: if options.width and options.height not used remove in v8\n let clientWidth = 'width' in options ? options.width : canvas.clientWidth;\n let clientHeight = 'height' in options ? options.height : canvas.clientHeight;\n\n if (!clientWidth || !clientHeight) {\n log.log(1, 'Canvas clientWidth/clientHeight is 0')();\n // by forcing devicePixel ratio to 1, we do not scale canvas.width and height in each frame.\n devicePixelRatio = 1;\n clientWidth = canvas.width || 1;\n clientHeight = canvas.height || 1;\n }\n\n const contextState = getContextState(gl);\n const cachedSize = contextState._canvasSizeInfo;\n // Check if canvas needs to be resized\n if (\n cachedSize.clientWidth !== clientWidth ||\n cachedSize.clientHeight !== clientHeight ||\n cachedSize.devicePixelRatio !== devicePixelRatio\n ) {\n let clampedPixelRatio = devicePixelRatio;\n\n const canvasWidth = Math.floor(clientWidth * clampedPixelRatio);\n const canvasHeight = Math.floor(clientHeight * clampedPixelRatio);\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n\n // Note: when devicePixelRatio is too high, it is possible we might hit system limit for\n // drawing buffer width and hight, in those cases they get clamped and resulting aspect ration may not be maintained\n // for those cases, reduce devicePixelRatio.\n if (gl.drawingBufferWidth !== canvasWidth || gl.drawingBufferHeight !== canvasHeight) {\n log.warn(`Device pixel ratio clamped`)();\n clampedPixelRatio = Math.min(\n gl.drawingBufferWidth / clientWidth,\n gl.drawingBufferHeight / clientHeight\n );\n\n canvas.width = Math.floor(clientWidth * clampedPixelRatio);\n canvas.height = Math.floor(clientHeight * clampedPixelRatio);\n }\n\n Object.assign(contextState._canvasSizeInfo, {clientWidth, clientHeight, devicePixelRatio});\n }\n}\n\n\n// PRIVATE\n\nfunction scalePixels(pixel: number[], ratio: number, width: number, height: number, yInvert: boolean): {\n x: number;\n y: number;\n width: number;\n height: number;\n} {\n const x = scaleX(pixel[0], ratio, width);\n let y = scaleY(pixel[1], ratio, height, yInvert);\n\n // Find boundaries of next pixel to provide valid range of device pixel locaitons\n\n let t = scaleX(pixel[0] + 1, ratio, width);\n // If next pixel's position is clamped to boundary, use it as is, otherwise subtract 1 for current pixel boundary\n const xHigh = t === width - 1 ? t : t - 1;\n\n t = scaleY(pixel[1] + 1, ratio, height, yInvert);\n let yHigh;\n if (yInvert) {\n // If next pixel's position is clamped to boundary, use it as is, otherwise clamp it to valid range\n t = t === 0 ? t : t + 1;\n // swap y and yHigh\n yHigh = y;\n y = t;\n } else {\n // If next pixel's position is clamped to boundary, use it as is, otherwise clamp it to valid range\n yHigh = t === height - 1 ? t : t - 1;\n // y remains same\n }\n return {\n x,\n y,\n // when ratio < 1, current css pixel and next css pixel may point to same device pixel, set width/height to 1 in those cases.\n width: Math.max(xHigh - x + 1, 1),\n height: Math.max(yHigh - y + 1, 1)\n };\n}\n\nfunction scaleX(x: number, ratio: number, width: number): number {\n // since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit\n const r = Math.min(Math.round(x * ratio), width - 1);\n return r;\n}\n\nfunction scaleY(y: number, ratio: number, height: number, yInvert: boolean): number {\n // since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit\n return yInvert\n ? Math.max(0, height - 1 - Math.round(y * ratio))\n : Math.min(Math.round(y * ratio), height - 1);\n}\n"],"file":"device-pixels.js"}
@@ -1,185 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.withGLParameters = withGLParameters;
9
- exports.withDeviceParameters = withDeviceParameters;
10
- exports.setDeviceParameters = setDeviceParameters;
11
- exports.convertCompareFunction = convertCompareFunction;
12
- exports.convertToCompareFunction = convertToCompareFunction;
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
- var _api = require("@luma.gl/api");
17
-
18
- var _constants = _interopRequireDefault(require("@luma.gl/constants"));
19
-
20
- var _trackContextState = require("../../context/state-tracker/track-context-state");
21
-
22
- var _unifiedParameterApi = require("../../context/parameters/unified-parameter-api");
23
-
24
- var _webglDevice = _interopRequireDefault(require("../webgl-device"));
25
-
26
- function withGLParameters(device, parameters, func) {
27
- if ((0, _api.isObjectEmpty)(parameters)) {
28
- return func(device);
29
- }
30
-
31
- (0, _trackContextState.pushContextState)(device.gl);
32
-
33
- try {
34
- (0, _unifiedParameterApi.setParameters)(device, parameters);
35
- return func(device);
36
- } finally {
37
- (0, _trackContextState.popContextState)(device.gl);
38
- }
39
- }
40
-
41
- function withDeviceParameters(device, parameters, func) {
42
- if ((0, _api.isObjectEmpty)(parameters)) {
43
- return func(device);
44
- }
45
-
46
- (0, _trackContextState.pushContextState)(device.gl);
47
-
48
- try {
49
- setDeviceParameters(device, parameters);
50
- return func(device);
51
- } finally {
52
- (0, _trackContextState.popContextState)(device.gl);
53
- }
54
- }
55
-
56
- function setDeviceParameters(device, parameters) {
57
- var webglDevice = _webglDevice.default.attach(device);
58
-
59
- var gl = webglDevice.gl,
60
- gl2 = webglDevice.gl2;
61
-
62
- if (parameters.cullMode) {
63
- switch (parameters.cullMode) {
64
- case 'none':
65
- gl.disable(_constants.default.CULL_FACE);
66
- break;
67
-
68
- case 'front':
69
- gl.enable(_constants.default.CULL_FACE);
70
- gl.cullFace(_constants.default.FRONT);
71
- break;
72
-
73
- case 'back':
74
- gl.enable(_constants.default.CULL_FACE);
75
- gl.cullFace(_constants.default.BACK);
76
- break;
77
- }
78
- }
79
-
80
- if (parameters.frontFace) {
81
- gl.frontFace(map('frontFace', parameters.frontFace, {
82
- ccw: _constants.default.CCW,
83
- cw: _constants.default.CW
84
- }));
85
- }
86
-
87
- if (parameters.depthBias !== undefined) {
88
- gl.polygonOffset(parameters.depthBias, parameters.depthBiasSlopeScale || 0);
89
- }
90
-
91
- if (parameters.depthWriteEnabled !== undefined) {
92
- gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));
93
- }
94
-
95
- if (parameters.depthCompare) {
96
- parameters.depthCompare !== 'always' ? gl.enable(_constants.default.DEPTH_TEST) : gl.disable(_constants.default.DEPTH_TEST);
97
- gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));
98
- }
99
-
100
- if (parameters.stencilWriteMask) {
101
- var mask = parameters.stencilWriteMask;
102
- gl.stencilMaskSeparate(_constants.default.FRONT, mask);
103
- gl.stencilMaskSeparate(_constants.default.BACK, mask);
104
- }
105
-
106
- if (parameters.stencilReadMask) {
107
- _api.log.warn('stencilReadMask not supported under WebGL');
108
- }
109
-
110
- if (parameters.stencilCompare) {
111
- var _mask = parameters.stencilReadMask || 0xffffffff;
112
-
113
- var glValue = convertCompareFunction('depthCompare', parameters.stencilCompare);
114
- parameters.stencilCompare !== 'always' ? gl.enable(_constants.default.STENCIL_TEST) : gl.disable(_constants.default.STENCIL_TEST);
115
- gl.stencilFuncSeparate(_constants.default.FRONT, glValue, 0, _mask);
116
- gl.stencilFuncSeparate(_constants.default.BACK, glValue, 0, _mask);
117
- }
118
-
119
- if (parameters.stencilPassOperation && parameters.stencilFailOperation && parameters.stencilDepthFailOperation) {
120
- var dppass = convertStencilOperation('stencilPassOperation', parameters.stencilPassOperation);
121
- var sfail = convertStencilOperation('stencilFailOperation', parameters.stencilFailOperation);
122
- var dpfail = convertStencilOperation('stencilDepthFailOperation', parameters.stencilDepthFailOperation);
123
- gl.stencilOpSeparate(_constants.default.FRONT, sfail, dpfail, dppass);
124
- gl.stencilOpSeparate(_constants.default.BACK, sfail, dpfail, dppass);
125
- }
126
- }
127
-
128
- function convertCompareFunction(parameter, value) {
129
- return map(parameter, value, {
130
- 'never': _constants.default.NEVER,
131
- 'less': _constants.default.LESS,
132
- 'equal': _constants.default.EQUAL,
133
- 'less-equal': _constants.default.LEQUAL,
134
- 'greater': _constants.default.GREATER,
135
- 'not-equal': _constants.default.NOTEQUAL,
136
- 'greater-equal': _constants.default.GEQUAL,
137
- 'always': _constants.default.ALWAYS
138
- });
139
- }
140
-
141
- function convertToCompareFunction(parameter, value) {
142
- var _map;
143
-
144
- return map(parameter, value, (_map = {}, (0, _defineProperty2.default)(_map, _constants.default.NEVER, 'never'), (0, _defineProperty2.default)(_map, _constants.default.LESS, 'less'), (0, _defineProperty2.default)(_map, _constants.default.EQUAL, 'equal'), (0, _defineProperty2.default)(_map, _constants.default.LEQUAL, 'less-equal'), (0, _defineProperty2.default)(_map, _constants.default.GREATER, 'greater'), (0, _defineProperty2.default)(_map, _constants.default.NOTEQUAL, 'not-equal'), (0, _defineProperty2.default)(_map, _constants.default.GEQUAL, 'greater-equal'), (0, _defineProperty2.default)(_map, _constants.default.ALWAYS, 'always'), _map));
145
- }
146
-
147
- function convertStencilOperation(parameter, value) {
148
- return map(parameter, value, {
149
- 'keep': _constants.default.KEEP,
150
- 'zero': _constants.default.ZERO,
151
- 'replace': _constants.default.REPLACE,
152
- 'invert': _constants.default.INVERT,
153
- 'increment-clamp': _constants.default.INCR,
154
- 'decrement-clamp': _constants.default.DECR,
155
- 'increment-wrap': _constants.default.INCR_WRAP,
156
- 'decrement-wrap': _constants.default.DECR_WRAP
157
- });
158
- }
159
-
160
- function convertBlendOperationToEquation(parameter, value) {
161
- return map(parameter, value, {
162
- 'add': _constants.default.FUNC_ADD,
163
- 'sub': _constants.default.FUNC_SUBTRACT,
164
- 'reverse-subtract': _constants.default.FUNC_REVERSE_SUBTRACT,
165
- 'min': _constants.default.MIN,
166
- 'max': _constants.default.MAX
167
- });
168
- }
169
-
170
- function message(parameter, value) {
171
- return "Illegal parameter ".concat(value, " for ").concat(parameter);
172
- }
173
-
174
- function map(parameter, value, valueMap) {
175
- if (!(value in valueMap)) {
176
- throw new Error(message(parameter, value));
177
- }
178
-
179
- return valueMap[value];
180
- }
181
-
182
- function mapBoolean(parameter, value) {
183
- return value;
184
- }
185
- //# sourceMappingURL=device-parameters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/adapter/converters/device-parameters.ts"],"names":["withGLParameters","device","parameters","func","gl","withDeviceParameters","setDeviceParameters","webglDevice","WebGLDevice","attach","gl2","cullMode","disable","GL","CULL_FACE","enable","cullFace","FRONT","BACK","frontFace","map","ccw","CCW","cw","CW","depthBias","undefined","polygonOffset","depthBiasSlopeScale","depthWriteEnabled","depthMask","mapBoolean","depthCompare","DEPTH_TEST","depthFunc","convertCompareFunction","stencilWriteMask","mask","stencilMaskSeparate","stencilReadMask","log","warn","stencilCompare","glValue","STENCIL_TEST","stencilFuncSeparate","stencilPassOperation","stencilFailOperation","stencilDepthFailOperation","dppass","convertStencilOperation","sfail","dpfail","stencilOpSeparate","parameter","value","NEVER","LESS","EQUAL","LEQUAL","GREATER","NOTEQUAL","GEQUAL","ALWAYS","convertToCompareFunction","KEEP","ZERO","REPLACE","INVERT","INCR","DECR","INCR_WRAP","DECR_WRAP","convertBlendOperationToEquation","FUNC_ADD","FUNC_SUBTRACT","FUNC_REVERSE_SUBTRACT","MIN","MAX","message","valueMap","Error"],"mappings":"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","sourcesContent":["import {Device, Parameters, CompareFunction, StencilOperation, log, isObjectEmpty} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport type { GLParameters } from '../../types/webgl';\nimport {pushContextState, popContextState} from '../../context/state-tracker/track-context-state';\nimport {setParameters} from '../../context/parameters/unified-parameter-api';\nimport WebGLDevice from '../webgl-device';\n\n/**\n * Execute a function with a set of temporary WebGL parameter overrides\n * - Saves current \"global\" WebGL context settings\n * - Sets the supplies WebGL context parameters,\n * - Executes supplied function\n * - Restores parameters\n * - Returns the return value of the supplied function\n * @deprecated use withDeviceParameters instead\n */\n export function withGLParameters<T = unknown>(device: Device, parameters: GLParameters, func: (device?: Device) => T): T {\n if (isObjectEmpty(parameters)) {\n // Avoid setting state if no parameters provided. Just call and return\n return func(device);\n }\n\n // Wrap in a try-catch to ensure that parameters are restored on exceptions\n // @ts-expect-error\n pushContextState(device.gl);\n try {\n setParameters(device, parameters);\n return func(device);\n } finally {\n // @ts-expect-error\n popContextState(device.gl);\n }\n}\n\n/**\n * Execute a function with a set of temporary WebGL parameter overrides\n * - Saves current \"global\" WebGL context settings\n * - Sets the supplies WebGL context parameters,\n * - Executes supplied function\n * - Restores parameters\n * - Returns the return value of the supplied function\n */\nexport function withDeviceParameters<T = unknown>(device: Device, parameters: Parameters, func: (device?: Device) => T): T {\n if (isObjectEmpty(parameters)) {\n // Avoid setting state if no parameters provided. Just call and return\n return func(device);\n }\n\n // Wrap in a try-catch to ensure that parameters are restored on exceptions\n // @ts-expect-error\n pushContextState(device.gl);\n try {\n setDeviceParameters(device, parameters);\n return func(device);\n } finally {\n // @ts-expect-error\n popContextState(device.gl);\n }\n}\n\n\n/** Set WebGPU Style Parameters */\nexport function setDeviceParameters(device: Device, parameters: Parameters) {\n const webglDevice = WebGLDevice.attach(device);\n const {gl, gl2} = webglDevice;\n\n // RASTERIZATION SETTINGS\n if (parameters.cullMode) {\n switch (parameters.cullMode) {\n case 'none':\n gl.disable(GL.CULL_FACE);\n break;\n case 'front':\n gl.enable(GL.CULL_FACE);\n gl.cullFace(GL.FRONT);\n break;\n case 'back':\n gl.enable(GL.CULL_FACE);\n gl.cullFace(GL.BACK);\n break;\n }\n }\n\n if (parameters.frontFace) {\n gl.frontFace(map('frontFace', parameters.frontFace, {\n ccw: GL.CCW,\n cw: GL.CW\n }));\n }\n\n if (parameters.depthBias !== undefined) {\n gl.polygonOffset(parameters.depthBias, parameters.depthBiasSlopeScale || 0);\n }\n\n // depthBiasSlopeScale: {\n // // Handled by depthBias\n // },\n\n // DEPTH STENCIL\n\n if (parameters.depthWriteEnabled !== undefined) {\n gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));\n }\n\n if (parameters.depthCompare) {\n parameters.depthCompare !== 'always' ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST);\n gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));\n }\n\n if (parameters.stencilWriteMask) {\n const mask = parameters.stencilWriteMask;\n gl.stencilMaskSeparate(GL.FRONT, mask);\n gl.stencilMaskSeparate(GL.BACK, mask);\n }\n\n if (parameters.stencilReadMask) {\n // stencilReadMask is handle inside stencil***Compare.\n log.warn('stencilReadMask not supported under WebGL');\n }\n\n if (parameters.stencilCompare) {\n const mask = parameters.stencilReadMask || 0xffffffff;\n const glValue = convertCompareFunction('depthCompare', parameters.stencilCompare);\n // TODO - ensure back doesn't overwrite\n parameters.stencilCompare !== 'always' ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST);\n gl.stencilFuncSeparate(GL.FRONT, glValue, 0, mask);\n gl.stencilFuncSeparate(GL.BACK, glValue, 0, mask);\n }\n\n if (parameters.stencilPassOperation && parameters.stencilFailOperation && parameters.stencilDepthFailOperation) {\n const dppass = convertStencilOperation('stencilPassOperation', parameters.stencilPassOperation);\n const sfail = convertStencilOperation('stencilFailOperation', parameters.stencilFailOperation);\n const dpfail = convertStencilOperation('stencilDepthFailOperation', parameters.stencilDepthFailOperation);\n gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);\n gl.stencilOpSeparate(GL.BACK, sfail, dpfail, dppass);\n }\n\n // stencilDepthFailOperation() {\n // // handled by stencilPassOperation\n // },\n\n // stencilFailOperation() {\n // // handled by stencilPassOperation\n // },\n\n // COLOR STATE\n\n // if (parameters.blend) {\n // gl.enable(GL.BLEND);\n\n // const blend = parameters.blend;\n\n // let colorEquation = (blend && blend.color && blend.color.operation) || 'add';\n // let alphaEquation = (blend && blend.alpha && blend.alpha.operation) || 'add';\n // gl.blendEquationSeparate(colorEquation, alphaEquation);\n\n // let colorSrcFactor = (blend && blend.color && blend.color.srcFactor) || 'one';\n // let colorDstFactor = (blend && blend.color && blend.color.dstFactor) || 'zero';\n // let alphaSrcFactor = (blend && blend.alpha && blend.alpha.srcFactor) || 'one';\n // let alphaDstFactor = (blend && blend.alpha && blend.alpha.dstFactor) || 'zero';\n // gl.blendFuncSeparate(colorSrcFactor, colorDstFactor, alphaSrcFactor, alphaDstFactor);\n // }\n}\n\n/*\n rasterizationState: {\n cullMode: \"back\",\n },\n\n depthStencilState: {\n depthWriteEnabled: true,\n depthCompare: \"less\",\n format: \"depth24plus-stencil8\",\n },\n\n colorStates: [\n {\n format: \"bgra8unorm\",\n // colorBlend.srcFactor = wgpu::BlendFactor::SrcAlpha;\n // colorBlend.dstFactor = wgpu::BlendFactor::OneMinusSrcAlpha;\n // alphaBlend.srcFactor = wgpu::BlendFactor::SrcAlpha;\n // alphaBlend.dstFactor = wgpu::BlendFactor::OneMinusSrcAlpha;\n },\n ],\n });\n*/\n\nexport function convertCompareFunction(parameter: string, value: CompareFunction): GL {\n return map(parameter, value, {\n 'never': GL.NEVER,\n 'less': GL.LESS,\n 'equal': GL.EQUAL,\n 'less-equal': GL.LEQUAL,\n 'greater': GL.GREATER,\n 'not-equal': GL.NOTEQUAL,\n 'greater-equal': GL.GEQUAL,\n 'always': GL.ALWAYS\n });\n}\n\nexport function convertToCompareFunction(parameter: string, value: GL): CompareFunction {\n return map(parameter, value, {\n [GL.NEVER]: 'never',\n [GL.LESS]: 'less',\n [GL.EQUAL]: 'equal',\n [GL.LEQUAL]: 'less-equal',\n [GL.GREATER]: 'greater',\n [GL.NOTEQUAL]: 'not-equal',\n [GL.GEQUAL]: 'greater-equal',\n [GL.ALWAYS]: 'always'\n });\n}\n\nfunction convertStencilOperation(parameter: string, value: StencilOperation): GL {\n return map(parameter, value, {\n 'keep': GL.KEEP,\n 'zero': GL.ZERO,\n 'replace': GL.REPLACE,\n 'invert': GL.INVERT,\n 'increment-clamp': GL.INCR,\n 'decrement-clamp': GL.DECR,\n 'increment-wrap': GL.INCR_WRAP,\n 'decrement-wrap': GL.DECR_WRAP\n });\n}\n\nfunction convertBlendOperationToEquation(parameter: string, value: string): number {\n return map(parameter, value, {\n 'add': GL.FUNC_ADD,\n 'sub': GL.FUNC_SUBTRACT,\n 'reverse-subtract': GL.FUNC_REVERSE_SUBTRACT,\n // When using a WebGL 2 context, the following values are available additionally:\n 'min': GL.MIN,\n 'max': GL.MAX\n });\n}\n\nfunction message(parameter: string, value: any): string {\n return `Illegal parameter ${value} for ${parameter}`;\n}\n\nfunction map(parameter: string, value: any, valueMap: Record<string, any>): any {\n if (!(value in valueMap)) {\n throw new Error(message(parameter, value));\n }\n return valueMap[value];\n}\n\nfunction mapBoolean(parameter: string, value: boolean): boolean {\n return value;\n}\n"],"file":"device-parameters.js"}
@@ -1,163 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.isRenderbufferFormatSupported = isRenderbufferFormatSupported;
9
- exports.getRenderbufferFormatBytesPerPixel = getRenderbufferFormatBytesPerPixel;
10
- exports.default = void 0;
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _constants = _interopRequireDefault(require("@luma.gl/constants"));
15
-
16
- var _webglChecks = require("../../context/context/webgl-checks");
17
-
18
- var _RENDERBUFFER_FORMATS;
19
-
20
- function isRenderbufferFormatSupported(gl, format) {
21
- var info = RENDERBUFFER_FORMATS[format];
22
-
23
- if (!info) {
24
- return false;
25
- }
26
-
27
- if (info.ext) {
28
- return Boolean(gl.getExtension(info.ext));
29
- }
30
-
31
- if (info.gl2) {
32
- return (0, _webglChecks.isWebGL2)(gl);
33
- }
34
-
35
- return true;
36
- }
37
-
38
- function getRenderbufferFormatBytesPerPixel(format) {
39
- return RENDERBUFFER_FORMATS[format].bpp;
40
- }
41
-
42
- var EXT_FLOAT_WEBGL2 = 'EXT_color_buffer_float';
43
- var RENDERBUFFER_FORMATS = (_RENDERBUFFER_FORMATS = {}, (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.DEPTH_COMPONENT16, {
44
- bpp: 2
45
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.DEPTH_COMPONENT24, {
46
- gl2: true,
47
- bpp: 3
48
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.DEPTH_COMPONENT32F, {
49
- gl2: true,
50
- bpp: 4
51
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.STENCIL_INDEX8, {
52
- bpp: 1
53
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.DEPTH_STENCIL, {
54
- bpp: 4
55
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.DEPTH24_STENCIL8, {
56
- gl2: true,
57
- bpp: 4
58
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.DEPTH32F_STENCIL8, {
59
- gl2: true,
60
- bpp: 5
61
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGBA4, {
62
- bpp: 2
63
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGB565, {
64
- bpp: 2
65
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGB5_A1, {
66
- bpp: 2
67
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.R8, {
68
- gl2: true,
69
- bpp: 1
70
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.R8UI, {
71
- gl2: true,
72
- bpp: 1
73
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.R8I, {
74
- gl2: true,
75
- bpp: 1
76
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.R16UI, {
77
- gl2: true,
78
- bpp: 2
79
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.R16I, {
80
- gl2: true,
81
- bpp: 2
82
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.R32UI, {
83
- gl2: true,
84
- bpp: 4
85
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.R32I, {
86
- gl2: true,
87
- bpp: 4
88
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RG8, {
89
- gl2: true,
90
- bpp: 2
91
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RG8UI, {
92
- gl2: true,
93
- bpp: 2
94
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RG8I, {
95
- gl2: true,
96
- bpp: 2
97
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RG16UI, {
98
- gl2: true,
99
- bpp: 4
100
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RG16I, {
101
- gl2: true,
102
- bpp: 4
103
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RG32UI, {
104
- gl2: true,
105
- bpp: 8
106
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RG32I, {
107
- gl2: true,
108
- bpp: 8
109
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGB8, {
110
- gl2: true,
111
- bpp: 3
112
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGBA8, {
113
- gl2: true,
114
- bpp: 4
115
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGB10_A2, {
116
- gl2: true,
117
- bpp: 4
118
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGBA8UI, {
119
- gl2: true,
120
- bpp: 4
121
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGBA8I, {
122
- gl2: true,
123
- bpp: 4
124
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGB10_A2UI, {
125
- gl2: true,
126
- bpp: 4
127
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGBA16UI, {
128
- gl2: true,
129
- bpp: 8
130
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGBA16I, {
131
- gl2: true,
132
- bpp: 8
133
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGBA32I, {
134
- gl2: true,
135
- bpp: 16
136
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGBA32UI, {
137
- gl2: true,
138
- bpp: 16
139
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.R16F, {
140
- ext: EXT_FLOAT_WEBGL2,
141
- bpp: 2
142
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RG16F, {
143
- ext: EXT_FLOAT_WEBGL2,
144
- bpp: 4
145
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGBA16F, {
146
- ext: EXT_FLOAT_WEBGL2,
147
- bpp: 8
148
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.R32F, {
149
- ext: EXT_FLOAT_WEBGL2,
150
- bpp: 4
151
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RG32F, {
152
- ext: EXT_FLOAT_WEBGL2,
153
- bpp: 8
154
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.RGBA32F, {
155
- ext: EXT_FLOAT_WEBGL2,
156
- bpp: 16
157
- }), (0, _defineProperty2.default)(_RENDERBUFFER_FORMATS, _constants.default.R11F_G11F_B10F, {
158
- ext: EXT_FLOAT_WEBGL2,
159
- bpp: 4
160
- }), _RENDERBUFFER_FORMATS);
161
- var _default = RENDERBUFFER_FORMATS;
162
- exports.default = _default;
163
- //# sourceMappingURL=renderbuffer-formats.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/adapter/converters/renderbuffer-formats.ts"],"names":["isRenderbufferFormatSupported","gl","format","info","RENDERBUFFER_FORMATS","ext","Boolean","getExtension","gl2","getRenderbufferFormatBytesPerPixel","bpp","EXT_FLOAT_WEBGL2","GL","DEPTH_COMPONENT16","DEPTH_COMPONENT24","DEPTH_COMPONENT32F","STENCIL_INDEX8","DEPTH_STENCIL","DEPTH24_STENCIL8","DEPTH32F_STENCIL8","RGBA4","RGB565","RGB5_A1","R8","R8UI","R8I","R16UI","R16I","R32UI","R32I","RG8","RG8UI","RG8I","RG16UI","RG16I","RG32UI","RG32I","RGB8","RGBA8","RGB10_A2","RGBA8UI","RGBA8I","RGB10_A2UI","RGBA16UI","RGBA16I","RGBA32I","RGBA32UI","R16F","RG16F","RGBA16F","R32F","RG32F","RGBA32F","R11F_G11F_B10F"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\n\nexport function isRenderbufferFormatSupported(gl: WebGLRenderingContext, format: GL): boolean {\n const info = RENDERBUFFER_FORMATS[format];\n // Unknown format\n if (!info) {\n return false;\n }\n if (info.ext) {\n return Boolean(gl.getExtension(info.ext));\n }\n if (info.gl2) {\n return isWebGL2(gl);\n }\n return true;\n}\n\nexport function getRenderbufferFormatBytesPerPixel(format: GL): number {\n return RENDERBUFFER_FORMATS[format].bpp;\n}\n\n// Define local extension strings to optimize minification\nconst EXT_FLOAT_WEBGL2 = 'EXT_color_buffer_float';\n\n/**\n * @param bpp \"bytes per pixel\", used for memory usage calculations.\n * @param gl2 requires WebGL2\n * @param ext requires extension\n */\ntype RenderbufferFormat = {\n bpp: number;\n gl2?: boolean;\n ext?: string;\n};\n\nconst RENDERBUFFER_FORMATS: Record<string, RenderbufferFormat> = {\n [GL.DEPTH_COMPONENT16]: {bpp: 2}, // 16 depth bits.\n [GL.DEPTH_COMPONENT24]: {gl2: true, bpp: 3},\n [GL.DEPTH_COMPONENT32F]: {gl2: true, bpp: 4},\n\n [GL.STENCIL_INDEX8]: {bpp: 1}, // 8 stencil bits.\n\n [GL.DEPTH_STENCIL]: {bpp: 4},\n [GL.DEPTH24_STENCIL8]: {gl2: true, bpp: 4},\n [GL.DEPTH32F_STENCIL8]: {gl2: true, bpp: 5},\n\n // When using a WebGL 1 context, color renderbuffer formats are limited\n [GL.RGBA4]: {bpp: 2},\n [GL.RGB565]: {bpp: 2},\n [GL.RGB5_A1]: {bpp: 2},\n\n // When using a WebGL 2 context, the following values are available additionally:\n [GL.R8]: {gl2: true, bpp: 1},\n [GL.R8UI]: {gl2: true, bpp: 1},\n [GL.R8I]: {gl2: true, bpp: 1},\n [GL.R16UI]: {gl2: true, bpp: 2},\n [GL.R16I]: {gl2: true, bpp: 2},\n [GL.R32UI]: {gl2: true, bpp: 4},\n [GL.R32I]: {gl2: true, bpp: 4},\n [GL.RG8]: {gl2: true, bpp: 2},\n [GL.RG8UI]: {gl2: true, bpp: 2},\n [GL.RG8I]: {gl2: true, bpp: 2},\n [GL.RG16UI]: {gl2: true, bpp: 4},\n [GL.RG16I]: {gl2: true, bpp: 4},\n [GL.RG32UI]: {gl2: true, bpp: 8},\n [GL.RG32I]: {gl2: true, bpp: 8},\n [GL.RGB8]: {gl2: true, bpp: 3},\n [GL.RGBA8]: {gl2: true, bpp: 4},\n // [GL.SRGB8_ALPHA8]: {gl2: true, gl1: SRGB}, // When using the EXT_sRGB WebGL1 extension\n [GL.RGB10_A2]: {gl2: true, bpp: 4},\n [GL.RGBA8UI]: {gl2: true, bpp: 4},\n [GL.RGBA8I]: {gl2: true, bpp: 4},\n [GL.RGB10_A2UI]: {gl2: true, bpp: 4},\n [GL.RGBA16UI]: {gl2: true, bpp: 8},\n [GL.RGBA16I]: {gl2: true, bpp: 8},\n [GL.RGBA32I]: {gl2: true, bpp: 16},\n [GL.RGBA32UI]: {gl2: true, bpp: 16},\n\n // When using a WebGL 2 context and the EXT_color_buffer_float WebGL2 extension\n [GL.R16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 2},\n [GL.RG16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4},\n [GL.RGBA16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 8},\n [GL.R32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4},\n [GL.RG32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 8},\n // TODO - can't get WEBGL_color_buffer_float to work on renderbuffers\n [GL.RGBA32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 16},\n // [GL.RGBA32F]: {ext: EXT_FLOAT_WEBGL2, gl1: EXT_FLOAT_WEBGL1},\n [GL.R11F_G11F_B10F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4}\n};\n\nexport default RENDERBUFFER_FORMATS;\n"],"file":"renderbuffer-formats.js"}