@deck.gl/aggregation-layers 9.0.0-alpha.7 → 9.0.0-beta.10

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 (364) hide show
  1. package/{typed → dist}/aggregation-layer.d.ts.map +1 -1
  2. package/dist/aggregation-layer.js +153 -0
  3. package/{typed → dist}/contour-layer/contour-layer.d.ts +1 -1
  4. package/dist/contour-layer/contour-layer.d.ts.map +1 -0
  5. package/dist/contour-layer/contour-layer.js +240 -0
  6. package/dist/contour-layer/contour-utils.js +64 -0
  7. package/dist/contour-layer/marching-squares-codes.js +337 -0
  8. package/dist/contour-layer/marching-squares.js +147 -0
  9. package/{typed → dist}/cpu-grid-layer/cpu-grid-layer.d.ts +3 -3
  10. package/dist/cpu-grid-layer/cpu-grid-layer.d.ts.map +1 -0
  11. package/dist/cpu-grid-layer/cpu-grid-layer.js +129 -0
  12. package/dist/cpu-grid-layer/grid-aggregator.js +141 -0
  13. package/dist/dist.dev.js +1447 -10846
  14. package/dist/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +30 -0
  15. package/dist/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +112 -0
  16. package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer.d.ts +1 -1
  17. package/dist/gpu-grid-layer/gpu-grid-cell-layer.d.ts.map +1 -0
  18. package/dist/gpu-grid-layer/gpu-grid-cell-layer.js +145 -0
  19. package/{typed → dist}/gpu-grid-layer/gpu-grid-layer.d.ts +4 -4
  20. package/dist/gpu-grid-layer/gpu-grid-layer.d.ts.map +1 -0
  21. package/dist/gpu-grid-layer/gpu-grid-layer.js +288 -0
  22. package/{typed → dist}/grid-aggregation-layer.d.ts +3 -3
  23. package/dist/grid-aggregation-layer.d.ts.map +1 -0
  24. package/dist/grid-aggregation-layer.js +172 -0
  25. package/{typed → dist}/grid-layer/grid-layer.d.ts +2 -2
  26. package/dist/grid-layer/grid-layer.d.ts.map +1 -0
  27. package/dist/grid-layer/grid-layer.js +63 -0
  28. package/{typed → dist}/heatmap-layer/heatmap-layer-utils.d.ts +0 -9
  29. package/dist/heatmap-layer/heatmap-layer-utils.d.ts.map +1 -0
  30. package/dist/heatmap-layer/heatmap-layer-utils.js +63 -0
  31. package/{typed → dist}/heatmap-layer/heatmap-layer.d.ts +5 -6
  32. package/dist/heatmap-layer/heatmap-layer.d.ts.map +1 -0
  33. package/dist/heatmap-layer/heatmap-layer.js +455 -0
  34. package/dist/heatmap-layer/max-fs.glsl.js +9 -0
  35. package/dist/heatmap-layer/max-vs.glsl.d.ts +3 -0
  36. package/{typed → dist}/heatmap-layer/max-vs.glsl.d.ts.map +1 -1
  37. package/dist/heatmap-layer/max-vs.glsl.js +15 -0
  38. package/dist/heatmap-layer/triangle-layer-fragment.glsl.d.ts +3 -0
  39. package/dist/heatmap-layer/triangle-layer-fragment.glsl.js +51 -0
  40. package/dist/heatmap-layer/triangle-layer-vertex.glsl.js +47 -0
  41. package/{typed → dist}/heatmap-layer/triangle-layer.d.ts +10 -2
  42. package/dist/heatmap-layer/triangle-layer.d.ts.map +1 -0
  43. package/dist/heatmap-layer/triangle-layer.js +59 -0
  44. package/dist/heatmap-layer/weights-fs.glsl.js +17 -0
  45. package/dist/heatmap-layer/weights-vs.glsl.d.ts +3 -0
  46. package/{typed → dist}/heatmap-layer/weights-vs.glsl.d.ts.map +1 -1
  47. package/dist/heatmap-layer/weights-vs.glsl.js +21 -0
  48. package/dist/hexagon-layer/hexagon-aggregator.js +112 -0
  49. package/{typed → dist}/hexagon-layer/hexagon-layer.d.ts +4 -4
  50. package/dist/hexagon-layer/hexagon-layer.d.ts.map +1 -0
  51. package/dist/hexagon-layer/hexagon-layer.js +173 -0
  52. package/dist/index.cjs +4327 -0
  53. package/dist/index.cjs.map +7 -0
  54. package/dist/index.d.ts +20 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +32 -0
  57. package/{typed → dist}/screen-grid-layer/screen-grid-cell-layer.d.ts +2 -3
  58. package/dist/screen-grid-layer/screen-grid-cell-layer.d.ts.map +1 -0
  59. package/dist/screen-grid-layer/screen-grid-cell-layer.js +163 -0
  60. package/dist/screen-grid-layer/screen-grid-layer-fragment.glsl.js +35 -0
  61. package/dist/screen-grid-layer/screen-grid-layer-vertex.glsl.js +72 -0
  62. package/{typed → dist}/screen-grid-layer/screen-grid-layer.d.ts +1 -4
  63. package/dist/screen-grid-layer/screen-grid-layer.d.ts.map +1 -0
  64. package/dist/screen-grid-layer/screen-grid-layer.js +209 -0
  65. package/dist/types.js +1 -0
  66. package/dist/utils/aggregation-operation-utils.js +94 -0
  67. package/{typed → dist}/utils/bin-sorter.d.ts +1 -1
  68. package/dist/utils/bin-sorter.js +167 -0
  69. package/dist/utils/color-utils.js +53 -0
  70. package/dist/utils/cpu-aggregator.js +421 -0
  71. package/dist/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +36 -0
  72. package/dist/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +42 -0
  73. package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +30 -0
  74. package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +61 -0
  75. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +41 -0
  76. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +1 -0
  77. package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts.map +1 -1
  78. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +555 -0
  79. package/dist/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +32 -0
  80. package/dist/utils/grid-aggregation-utils.js +114 -0
  81. package/dist/utils/prop-utils.js +28 -0
  82. package/{typed → dist}/utils/resource-utils.d.ts.map +1 -1
  83. package/dist/utils/resource-utils.js +38 -0
  84. package/dist/utils/scale-utils.js +184 -0
  85. package/dist.min.js +299 -555
  86. package/package.json +19 -14
  87. package/src/aggregation-layer.ts +3 -1
  88. package/src/contour-layer/contour-layer.ts +4 -5
  89. package/src/cpu-grid-layer/cpu-grid-layer.ts +1 -2
  90. package/src/gpu-grid-layer/gpu-grid-cell-layer.ts +1 -1
  91. package/src/gpu-grid-layer/gpu-grid-layer.ts +3 -3
  92. package/src/grid-layer/grid-layer.ts +4 -2
  93. package/src/heatmap-layer/heatmap-layer-utils.ts +0 -23
  94. package/src/heatmap-layer/heatmap-layer.ts +92 -128
  95. package/src/heatmap-layer/max-vs.glsl.ts +11 -5
  96. package/src/heatmap-layer/triangle-layer-fragment.glsl.ts +2 -2
  97. package/src/heatmap-layer/triangle-layer.ts +17 -24
  98. package/src/heatmap-layer/weights-vs.glsl.ts +4 -2
  99. package/src/hexagon-layer/hexagon-layer.ts +2 -3
  100. package/src/screen-grid-layer/screen-grid-cell-layer.ts +0 -4
  101. package/src/screen-grid-layer/screen-grid-layer.ts +2 -12
  102. package/src/utils/cpu-aggregator.ts +1 -1
  103. package/src/utils/gpu-grid-aggregation/gpu-grid-aggregator.ts +14 -28
  104. package/src/utils/resource-utils.ts +2 -8
  105. package/dist/es5/aggregation-layer.js +0 -213
  106. package/dist/es5/aggregation-layer.js.map +0 -1
  107. package/dist/es5/contour-layer/contour-layer.js +0 -353
  108. package/dist/es5/contour-layer/contour-layer.js.map +0 -1
  109. package/dist/es5/contour-layer/contour-utils.js +0 -110
  110. package/dist/es5/contour-layer/contour-utils.js.map +0 -1
  111. package/dist/es5/contour-layer/marching-squares-codes.js +0 -152
  112. package/dist/es5/contour-layer/marching-squares-codes.js.map +0 -1
  113. package/dist/es5/contour-layer/marching-squares.js +0 -168
  114. package/dist/es5/contour-layer/marching-squares.js.map +0 -1
  115. package/dist/es5/cpu-grid-layer/cpu-grid-layer.js +0 -235
  116. package/dist/es5/cpu-grid-layer/cpu-grid-layer.js.map +0 -1
  117. package/dist/es5/cpu-grid-layer/grid-aggregator.js +0 -180
  118. package/dist/es5/cpu-grid-layer/grid-aggregator.js.map +0 -1
  119. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +0 -9
  120. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js.map +0 -1
  121. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +0 -9
  122. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js.map +0 -1
  123. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js +0 -247
  124. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js.map +0 -1
  125. package/dist/es5/gpu-grid-layer/gpu-grid-layer.js +0 -424
  126. package/dist/es5/gpu-grid-layer/gpu-grid-layer.js.map +0 -1
  127. package/dist/es5/grid-aggregation-layer.js +0 -280
  128. package/dist/es5/grid-aggregation-layer.js.map +0 -1
  129. package/dist/es5/grid-layer/grid-layer.js +0 -125
  130. package/dist/es5/grid-layer/grid-layer.js.map +0 -1
  131. package/dist/es5/heatmap-layer/heatmap-layer-utils.js +0 -122
  132. package/dist/es5/heatmap-layer/heatmap-layer-utils.js.map +0 -1
  133. package/dist/es5/heatmap-layer/heatmap-layer.js +0 -672
  134. package/dist/es5/heatmap-layer/heatmap-layer.js.map +0 -1
  135. package/dist/es5/heatmap-layer/max-fs.glsl.js +0 -9
  136. package/dist/es5/heatmap-layer/max-fs.glsl.js.map +0 -1
  137. package/dist/es5/heatmap-layer/max-vs.glsl.js +0 -9
  138. package/dist/es5/heatmap-layer/max-vs.glsl.js.map +0 -1
  139. package/dist/es5/heatmap-layer/triangle-layer-fragment.glsl.js +0 -9
  140. package/dist/es5/heatmap-layer/triangle-layer-fragment.glsl.js.map +0 -1
  141. package/dist/es5/heatmap-layer/triangle-layer-vertex.glsl.js +0 -9
  142. package/dist/es5/heatmap-layer/triangle-layer-vertex.glsl.js.map +0 -1
  143. package/dist/es5/heatmap-layer/triangle-layer.js +0 -122
  144. package/dist/es5/heatmap-layer/triangle-layer.js.map +0 -1
  145. package/dist/es5/heatmap-layer/weights-fs.glsl.js +0 -9
  146. package/dist/es5/heatmap-layer/weights-fs.glsl.js.map +0 -1
  147. package/dist/es5/heatmap-layer/weights-vs.glsl.js +0 -9
  148. package/dist/es5/heatmap-layer/weights-vs.glsl.js.map +0 -1
  149. package/dist/es5/hexagon-layer/hexagon-aggregator.js +0 -118
  150. package/dist/es5/hexagon-layer/hexagon-aggregator.js.map +0 -1
  151. package/dist/es5/hexagon-layer/hexagon-layer.js +0 -289
  152. package/dist/es5/hexagon-layer/hexagon-layer.js.map +0 -1
  153. package/dist/es5/index.js +0 -104
  154. package/dist/es5/index.js.map +0 -1
  155. package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js +0 -244
  156. package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js.map +0 -1
  157. package/dist/es5/screen-grid-layer/screen-grid-layer-fragment.glsl.js +0 -9
  158. package/dist/es5/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +0 -1
  159. package/dist/es5/screen-grid-layer/screen-grid-layer-vertex.glsl.js +0 -9
  160. package/dist/es5/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +0 -1
  161. package/dist/es5/screen-grid-layer/screen-grid-layer.js +0 -317
  162. package/dist/es5/screen-grid-layer/screen-grid-layer.js.map +0 -1
  163. package/dist/es5/types.js +0 -2
  164. package/dist/es5/types.js.map +0 -1
  165. package/dist/es5/utils/aggregation-operation-utils.js +0 -123
  166. package/dist/es5/utils/aggregation-operation-utils.js.map +0 -1
  167. package/dist/es5/utils/bin-sorter.js +0 -248
  168. package/dist/es5/utils/bin-sorter.js.map +0 -1
  169. package/dist/es5/utils/color-utils.js +0 -39
  170. package/dist/es5/utils/color-utils.js.map +0 -1
  171. package/dist/es5/utils/cpu-aggregator.js +0 -496
  172. package/dist/es5/utils/cpu-aggregator.js.map +0 -1
  173. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +0 -9
  174. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js.map +0 -1
  175. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +0 -9
  176. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js.map +0 -1
  177. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +0 -9
  178. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js.map +0 -1
  179. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +0 -9
  180. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js.map +0 -1
  181. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +0 -63
  182. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js.map +0 -1
  183. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +0 -2
  184. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js.map +0 -1
  185. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +0 -732
  186. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.js.map +0 -1
  187. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.md +0 -155
  188. package/dist/es5/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +0 -9
  189. package/dist/es5/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js.map +0 -1
  190. package/dist/es5/utils/grid-aggregation-utils.js +0 -118
  191. package/dist/es5/utils/grid-aggregation-utils.js.map +0 -1
  192. package/dist/es5/utils/prop-utils.js +0 -19
  193. package/dist/es5/utils/prop-utils.js.map +0 -1
  194. package/dist/es5/utils/resource-utils.js +0 -61
  195. package/dist/es5/utils/resource-utils.js.map +0 -1
  196. package/dist/es5/utils/scale-utils.js +0 -254
  197. package/dist/es5/utils/scale-utils.js.map +0 -1
  198. package/dist/esm/aggregation-layer.js +0 -154
  199. package/dist/esm/aggregation-layer.js.map +0 -1
  200. package/dist/esm/contour-layer/contour-layer.js +0 -316
  201. package/dist/esm/contour-layer/contour-layer.js.map +0 -1
  202. package/dist/esm/contour-layer/contour-utils.js +0 -81
  203. package/dist/esm/contour-layer/contour-utils.js.map +0 -1
  204. package/dist/esm/contour-layer/marching-squares-codes.js +0 -219
  205. package/dist/esm/contour-layer/marching-squares-codes.js.map +0 -1
  206. package/dist/esm/contour-layer/marching-squares.js +0 -151
  207. package/dist/esm/contour-layer/marching-squares.js.map +0 -1
  208. package/dist/esm/cpu-grid-layer/cpu-grid-layer.js +0 -186
  209. package/dist/esm/cpu-grid-layer/cpu-grid-layer.js.map +0 -1
  210. package/dist/esm/cpu-grid-layer/grid-aggregator.js +0 -142
  211. package/dist/esm/cpu-grid-layer/grid-aggregator.js.map +0 -1
  212. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +0 -16
  213. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js.map +0 -1
  214. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +0 -122
  215. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js.map +0 -1
  216. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js +0 -196
  217. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js.map +0 -1
  218. package/dist/esm/gpu-grid-layer/gpu-grid-layer.js +0 -399
  219. package/dist/esm/gpu-grid-layer/gpu-grid-layer.js.map +0 -1
  220. package/dist/esm/grid-aggregation-layer.js +0 -240
  221. package/dist/esm/grid-aggregation-layer.js.map +0 -1
  222. package/dist/esm/grid-layer/grid-layer.js +0 -80
  223. package/dist/esm/grid-layer/grid-layer.js.map +0 -1
  224. package/dist/esm/heatmap-layer/heatmap-layer-utils.js +0 -68
  225. package/dist/esm/heatmap-layer/heatmap-layer-utils.js.map +0 -1
  226. package/dist/esm/heatmap-layer/heatmap-layer.js +0 -626
  227. package/dist/esm/heatmap-layer/heatmap-layer.js.map +0 -1
  228. package/dist/esm/heatmap-layer/max-fs.glsl.js +0 -10
  229. package/dist/esm/heatmap-layer/max-fs.glsl.js.map +0 -1
  230. package/dist/esm/heatmap-layer/max-vs.glsl.js +0 -14
  231. package/dist/esm/heatmap-layer/max-vs.glsl.js.map +0 -1
  232. package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js +0 -43
  233. package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js.map +0 -1
  234. package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js +0 -33
  235. package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js.map +0 -1
  236. package/dist/esm/heatmap-layer/triangle-layer.js +0 -80
  237. package/dist/esm/heatmap-layer/triangle-layer.js.map +0 -1
  238. package/dist/esm/heatmap-layer/weights-fs.glsl.js +0 -22
  239. package/dist/esm/heatmap-layer/weights-fs.glsl.js.map +0 -1
  240. package/dist/esm/heatmap-layer/weights-vs.glsl.js +0 -25
  241. package/dist/esm/heatmap-layer/weights-vs.glsl.js.map +0 -1
  242. package/dist/esm/hexagon-layer/hexagon-aggregator.js +0 -87
  243. package/dist/esm/hexagon-layer/hexagon-aggregator.js.map +0 -1
  244. package/dist/esm/hexagon-layer/hexagon-layer.js +0 -232
  245. package/dist/esm/hexagon-layer/hexagon-layer.js.map +0 -1
  246. package/dist/esm/index.js +0 -13
  247. package/dist/esm/index.js.map +0 -1
  248. package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js +0 -203
  249. package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js.map +0 -1
  250. package/dist/esm/screen-grid-layer/screen-grid-layer-fragment.glsl.js +0 -21
  251. package/dist/esm/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +0 -1
  252. package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js +0 -66
  253. package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +0 -1
  254. package/dist/esm/screen-grid-layer/screen-grid-layer.js +0 -285
  255. package/dist/esm/screen-grid-layer/screen-grid-layer.js.map +0 -1
  256. package/dist/esm/types.js +0 -2
  257. package/dist/esm/types.js.map +0 -1
  258. package/dist/esm/utils/aggregation-operation-utils.js +0 -91
  259. package/dist/esm/utils/aggregation-operation-utils.js.map +0 -1
  260. package/dist/esm/utils/bin-sorter.js +0 -165
  261. package/dist/esm/utils/bin-sorter.js.map +0 -1
  262. package/dist/esm/utils/color-utils.js +0 -28
  263. package/dist/esm/utils/color-utils.js.map +0 -1
  264. package/dist/esm/utils/cpu-aggregator.js +0 -487
  265. package/dist/esm/utils/cpu-aggregator.js.map +0 -1
  266. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +0 -21
  267. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js.map +0 -1
  268. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +0 -35
  269. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js.map +0 -1
  270. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +0 -16
  271. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js.map +0 -1
  272. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +0 -60
  273. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js.map +0 -1
  274. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +0 -42
  275. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js.map +0 -1
  276. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +0 -2
  277. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js.map +0 -1
  278. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +0 -720
  279. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.js.map +0 -1
  280. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.md +0 -155
  281. package/dist/esm/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +0 -19
  282. package/dist/esm/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js.map +0 -1
  283. package/dist/esm/utils/grid-aggregation-utils.js +0 -109
  284. package/dist/esm/utils/grid-aggregation-utils.js.map +0 -1
  285. package/dist/esm/utils/prop-utils.js +0 -12
  286. package/dist/esm/utils/prop-utils.js.map +0 -1
  287. package/dist/esm/utils/resource-utils.js +0 -45
  288. package/dist/esm/utils/resource-utils.js.map +0 -1
  289. package/dist/esm/utils/scale-utils.js +0 -192
  290. package/dist/esm/utils/scale-utils.js.map +0 -1
  291. package/typed/contour-layer/contour-layer.d.ts.map +0 -1
  292. package/typed/cpu-grid-layer/cpu-grid-layer.d.ts.map +0 -1
  293. package/typed/gpu-grid-layer/gpu-grid-cell-layer.d.ts.map +0 -1
  294. package/typed/gpu-grid-layer/gpu-grid-layer.d.ts.map +0 -1
  295. package/typed/grid-aggregation-layer.d.ts.map +0 -1
  296. package/typed/grid-layer/grid-layer.d.ts.map +0 -1
  297. package/typed/heatmap-layer/heatmap-layer-utils.d.ts.map +0 -1
  298. package/typed/heatmap-layer/heatmap-layer.d.ts.map +0 -1
  299. package/typed/heatmap-layer/max-vs.glsl.d.ts +0 -3
  300. package/typed/heatmap-layer/triangle-layer-fragment.glsl.d.ts +0 -3
  301. package/typed/heatmap-layer/triangle-layer.d.ts.map +0 -1
  302. package/typed/heatmap-layer/weights-vs.glsl.d.ts +0 -3
  303. package/typed/hexagon-layer/hexagon-layer.d.ts.map +0 -1
  304. package/typed/index.d.ts +0 -20
  305. package/typed/index.d.ts.map +0 -1
  306. package/typed/screen-grid-layer/screen-grid-cell-layer.d.ts.map +0 -1
  307. package/typed/screen-grid-layer/screen-grid-layer.d.ts.map +0 -1
  308. /package/{typed → dist}/aggregation-layer.d.ts +0 -0
  309. /package/{typed → dist}/contour-layer/contour-utils.d.ts +0 -0
  310. /package/{typed → dist}/contour-layer/contour-utils.d.ts.map +0 -0
  311. /package/{typed → dist}/contour-layer/marching-squares-codes.d.ts +0 -0
  312. /package/{typed → dist}/contour-layer/marching-squares-codes.d.ts.map +0 -0
  313. /package/{typed → dist}/contour-layer/marching-squares.d.ts +0 -0
  314. /package/{typed → dist}/contour-layer/marching-squares.d.ts.map +0 -0
  315. /package/{typed → dist}/cpu-grid-layer/grid-aggregator.d.ts +0 -0
  316. /package/{typed → dist}/cpu-grid-layer/grid-aggregator.d.ts.map +0 -0
  317. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts +0 -0
  318. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts.map +0 -0
  319. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts +0 -0
  320. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts.map +0 -0
  321. /package/{typed → dist}/heatmap-layer/max-fs.glsl.d.ts +0 -0
  322. /package/{typed → dist}/heatmap-layer/max-fs.glsl.d.ts.map +0 -0
  323. /package/{typed → dist}/heatmap-layer/triangle-layer-fragment.glsl.d.ts.map +0 -0
  324. /package/{typed → dist}/heatmap-layer/triangle-layer-vertex.glsl.d.ts +0 -0
  325. /package/{typed → dist}/heatmap-layer/triangle-layer-vertex.glsl.d.ts.map +0 -0
  326. /package/{typed → dist}/heatmap-layer/weights-fs.glsl.d.ts +0 -0
  327. /package/{typed → dist}/heatmap-layer/weights-fs.glsl.d.ts.map +0 -0
  328. /package/{typed → dist}/hexagon-layer/hexagon-aggregator.d.ts +0 -0
  329. /package/{typed → dist}/hexagon-layer/hexagon-aggregator.d.ts.map +0 -0
  330. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts +0 -0
  331. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts.map +0 -0
  332. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts +0 -0
  333. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts.map +0 -0
  334. /package/{typed → dist}/types.d.ts +0 -0
  335. /package/{typed → dist}/types.d.ts.map +0 -0
  336. /package/{typed → dist}/utils/aggregation-operation-utils.d.ts +0 -0
  337. /package/{typed → dist}/utils/aggregation-operation-utils.d.ts.map +0 -0
  338. /package/{typed → dist}/utils/bin-sorter.d.ts.map +0 -0
  339. /package/{typed → dist}/utils/color-utils.d.ts +0 -0
  340. /package/{typed → dist}/utils/color-utils.d.ts.map +0 -0
  341. /package/{typed → dist}/utils/cpu-aggregator.d.ts +0 -0
  342. /package/{typed → dist}/utils/cpu-aggregator.d.ts.map +0 -0
  343. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.d.ts +0 -0
  344. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.d.ts.map +0 -0
  345. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.d.ts +0 -0
  346. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.d.ts.map +0 -0
  347. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.d.ts +0 -0
  348. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.d.ts.map +0 -0
  349. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.d.ts +0 -0
  350. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.d.ts.map +0 -0
  351. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.d.ts +0 -0
  352. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.d.ts.map +0 -0
  353. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.d.ts +0 -0
  354. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.d.ts.map +0 -0
  355. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts +0 -0
  356. /package/{typed → dist}/utils/gpu-grid-aggregation/transform-mean-vs.glsl.d.ts +0 -0
  357. /package/{typed → dist}/utils/gpu-grid-aggregation/transform-mean-vs.glsl.d.ts.map +0 -0
  358. /package/{typed → dist}/utils/grid-aggregation-utils.d.ts +0 -0
  359. /package/{typed → dist}/utils/grid-aggregation-utils.d.ts.map +0 -0
  360. /package/{typed → dist}/utils/prop-utils.d.ts +0 -0
  361. /package/{typed → dist}/utils/prop-utils.d.ts.map +0 -0
  362. /package/{typed → dist}/utils/resource-utils.d.ts +0 -0
  363. /package/{typed → dist}/utils/scale-utils.d.ts +0 -0
  364. /package/{typed → dist}/utils/scale-utils.d.ts.map +0 -0
@@ -18,14 +18,14 @@
18
18
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  // THE SOFTWARE.
20
20
 
21
- import type {Device, Texture} from '@luma.gl/core';
22
- import {Model, Geometry} from '@luma.gl/engine';
23
- import {GL} from '@luma.gl/constants';
21
+ import type {Buffer, Device, Texture} from '@luma.gl/core';
22
+ import {Model} from '@luma.gl/engine';
24
23
  import {Layer, LayerContext, project32} from '@deck.gl/core';
25
24
  import vs from './triangle-layer-vertex.glsl';
26
25
  import fs from './triangle-layer-fragment.glsl';
27
26
 
28
27
  type _TriangleLayerProps = {
28
+ data: {attributes: {positions: Buffer; texCoords: Buffer}};
29
29
  colorDomain: number[];
30
30
  aggregationMode: string;
31
31
  threshold: number;
@@ -33,7 +33,7 @@ type _TriangleLayerProps = {
33
33
  vertexCount: number;
34
34
  colorTexture: Texture;
35
35
  maxTexture: Texture;
36
- texture: Texture;
36
+ weightsTexture: Texture;
37
37
  };
38
38
 
39
39
  export default class TriangleLayer extends Layer<_TriangleLayerProps> {
@@ -41,6 +41,8 @@ export default class TriangleLayer extends Layer<_TriangleLayerProps> {
41
41
 
42
42
  state!: {
43
43
  model: Model;
44
+ positions: Buffer;
45
+ texCoords: Buffer;
44
46
  };
45
47
 
46
48
  getShaders() {
@@ -48,40 +50,31 @@ export default class TriangleLayer extends Layer<_TriangleLayerProps> {
48
50
  }
49
51
 
50
52
  initializeState({device}: LayerContext): void {
51
- const attributeManager = this.getAttributeManager()!;
52
- attributeManager.add({
53
- positions: {size: 3, noAlloc: true},
54
- texCoords: {size: 2, noAlloc: true}
55
- });
56
- this.setState({
57
- model: this._getModel(device)
58
- });
53
+ this.setState({model: this._getModel(device)});
59
54
  }
60
55
 
61
56
  _getModel(device: Device): Model {
62
- const {vertexCount} = this.props;
57
+ const {vertexCount, data, weightsTexture, maxTexture, colorTexture} = this.props;
63
58
 
64
59
  return new Model(device, {
65
60
  ...this.getShaders(),
66
61
  id: this.props.id,
67
- geometry: new Geometry({
68
- topology: 'triangle-fan-webgl',
69
- vertexCount
70
- })
62
+ bindings: {weightsTexture, maxTexture, colorTexture},
63
+ attributes: data.attributes,
64
+ bufferLayout: [
65
+ {name: 'positions', format: 'float32x3'},
66
+ {name: 'texCoords', format: 'float32x2'}
67
+ ],
68
+ topology: 'triangle-fan-webgl',
69
+ vertexCount
71
70
  });
72
71
  }
73
72
 
74
73
  draw({uniforms}): void {
75
74
  const {model} = this.state;
76
-
77
- const {texture, maxTexture, colorTexture, intensity, threshold, aggregationMode, colorDomain} =
78
- this.props;
79
-
75
+ const {intensity, threshold, aggregationMode, colorDomain} = this.props;
80
76
  model.setUniforms({
81
77
  ...uniforms,
82
- texture,
83
- maxTexture,
84
- colorTexture,
85
78
  intensity,
86
79
  threshold,
87
80
  aggregationMode,
@@ -8,17 +8,19 @@ uniform float radiusPixels;
8
8
  uniform float textureWidth;
9
9
  uniform vec4 commonBounds;
10
10
  uniform float weightsScale;
11
+
11
12
  void main()
12
13
  {
13
14
  weightsTexture = vec4(weights * weightsScale, 0., 0., 1.);
14
15
 
15
- float radiusTexels = project_pixel_size(radiusPixels) * textureWidth / (commonBounds.z - commonBounds.x);
16
+ float radiusTexels = project_pixel_size(radiusPixels) * textureWidth / (commonBounds.z - commonBounds.x);
16
17
  gl_PointSize = radiusTexels * 2.;
17
18
 
18
19
  vec3 commonPosition = project_position(positions, positions64Low);
19
20
 
20
- // map xy from commonBounds to [-1, 1]
21
+ // // map xy from commonBounds to [-1, 1]
21
22
  gl_Position.xy = (commonPosition.xy - commonBounds.xy) / (commonBounds.zw - commonBounds.xy) ;
22
23
  gl_Position.xy = (gl_Position.xy * 2.) - (1.);
24
+ gl_Position.w = 1.0;
23
25
  }
24
26
  `;
@@ -29,7 +29,6 @@ import {
29
29
  DefaultProps
30
30
  } from '@deck.gl/core';
31
31
  import {ColumnLayer} from '@deck.gl/layers';
32
- import {GL} from '@luma.gl/constants';
33
32
 
34
33
  import {defaultColorRange} from '../utils/color-utils';
35
34
 
@@ -249,7 +248,7 @@ type _HexagonLayerProps<DataT = unknown> = {
249
248
  /** Aggregates data into a hexagon-based heatmap. The color and height of a hexagon are determined based on the objects it contains. */
250
249
  export default class HexagonLayer<DataT, ExtraPropsT extends {} = {}> extends AggregationLayer<
251
250
  DataT,
252
- ExtraPropsT & Required<_HexagonLayerProps>
251
+ ExtraPropsT & Required<_HexagonLayerProps<DataT>>
253
252
  > {
254
253
  static layerName = 'HexagonLayer';
255
254
  static defaultProps = defaultProps;
@@ -272,7 +271,7 @@ export default class HexagonLayer<DataT, ExtraPropsT extends {} = {}> extends Ag
272
271
  };
273
272
  const attributeManager = this.getAttributeManager()!;
274
273
  attributeManager.add({
275
- positions: {size: 3, type: GL.DOUBLE, accessor: 'getPosition'}
274
+ positions: {size: 3, type: 'float64', accessor: 'getPosition'}
276
275
  });
277
276
  // color and elevation attributes can't be added as attributes
278
277
  // they are calculated using 'getValue' accessor that takes an array of pints.
@@ -54,10 +54,6 @@ export default class ScreenGridCellLayer<DataT = any, ExtraPropsT extends {} = {
54
54
  static layerName = 'ScreenGridCellLayer';
55
55
  static defaultProps = defaultProps;
56
56
 
57
- static isSupported(device: Device) {
58
- return device.features.has('texture-formats-float32-webgl1');
59
- }
60
-
61
57
  state!: {
62
58
  model?: Model;
63
59
  };
@@ -32,7 +32,6 @@ import {
32
32
  DefaultProps
33
33
  } from '@deck.gl/core';
34
34
  import type {Buffer, Texture} from '@luma.gl/core';
35
- import {GL} from '@luma.gl/constants';
36
35
  import GPUGridAggregator from '../utils/gpu-grid-aggregation/gpu-grid-aggregator';
37
36
  import {AGGREGATION_OPERATION, getValueFunc} from '../utils/aggregation-operation-utils';
38
37
  import ScreenGridCellLayer from './screen-grid-cell-layer';
@@ -44,7 +43,7 @@ const defaultProps: DefaultProps<ScreenGridLayerProps> = {
44
43
  getPosition: {type: 'accessor', value: (d: any) => d.position},
45
44
  getWeight: {type: 'accessor', value: 1},
46
45
 
47
- gpuAggregation: true,
46
+ gpuAggregation: false, // TODO(v9): Re-enable GPU aggregation.
48
47
  aggregation: 'SUM'
49
48
  };
50
49
 
@@ -121,9 +120,6 @@ export type _ScreenGridLayerProps<DataT> = {
121
120
  /**
122
121
  * Perform aggregation is performed on GPU.
123
122
  *
124
- * NOTE: GPU Aggregation requires WebGL2 support by the browser.
125
- * When `gpuAggregation` is set to true and browser doesn't support WebGL2, aggregation falls back to CPU.
126
- *
127
123
  * @default true
128
124
  */
129
125
  gpuAggregation?: boolean;
@@ -157,12 +153,6 @@ export default class ScreenGridLayer<
157
153
  };
158
154
 
159
155
  initializeState() {
160
- if (!ScreenGridCellLayer.isSupported(this.context.device)) {
161
- // max aggregated value is sampled from a float texture
162
- this.setState({supported: false});
163
- log.error(`ScreenGridLayer: ${this.id} is not supported on this browser`)();
164
- return;
165
- }
166
156
  super.initializeAggregationLayer({
167
157
  dimensions: DIMENSIONS,
168
158
  // @ts-expect-error
@@ -191,7 +181,7 @@ export default class ScreenGridLayer<
191
181
  [POSITION_ATTRIBUTE_NAME]: {
192
182
  size: 3,
193
183
  accessor: 'getPosition',
194
- type: GL.DOUBLE,
184
+ type: 'float64',
195
185
  fp64: this.use64bitPositions()
196
186
  },
197
187
  // this attribute is used in gpu aggregation path only
@@ -21,7 +21,7 @@ import BinSorter from './bin-sorter';
21
21
  import {getScaleFunctionByScaleType} from './scale-utils';
22
22
  import {getValueFunc, wrapGetValueFunc} from './aggregation-operation-utils';
23
23
 
24
- // @eslint-disable-next-line @typescript-eslint/no-empty-function
24
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
25
25
  function noop() {}
26
26
 
27
27
  const dimensionSteps = ['getBins', 'getDomain', 'getScaleFunc'];
@@ -21,7 +21,6 @@
21
21
  import type {Device, DeviceFeature} from '@luma.gl/core';
22
22
  import {Model, TextureTransform} from '@luma.gl/engine';
23
23
  import {fp64arithmetic} from '@luma.gl/shadertools';
24
- import {readPixelsToBuffer, withGLParameters, clear} from '@luma.gl/webgl';
25
24
  import {GL} from '@luma.gl/constants';
26
25
  import {log, project32, _mergeShaders as mergeShaders, getShaderAssembler} from '@deck.gl/core';
27
26
 
@@ -52,11 +51,8 @@ const ARRAY_BUFFER_MAP = {
52
51
  };
53
52
 
54
53
  const REQUIRED_FEATURES: DeviceFeature[] = [
55
- 'webgl2',
56
- 'blend-minmax-webgl1',
57
- 'texture-renderable-float32-webgl',
58
- 'texture-blend-float-webgl1',
59
- 'texture-formats-float32-webgl1'
54
+ 'float32-renderable-webgl',
55
+ 'texture-blend-float-webgl'
60
56
  ];
61
57
 
62
58
  export type GPUGridAggregatorProps = {
@@ -180,15 +176,10 @@ export default class GPUGridAggregator {
180
176
  this.device = device;
181
177
 
182
178
  const REQUIRED_FEATURES: DeviceFeature[] = [
183
- 'blend-minmax-webgl1', // set min/max blend modes
184
- 'texture-renderable-float32-webgl', // render to float texture
185
- 'texture-formats-float32-webgl1' // sample from a float texture
179
+ 'float32-renderable-webgl' // render to float texture
186
180
  ];
187
181
 
188
- // gl_InstanceID usage in min/max calculation shaders
189
- this._hasGPUSupport =
190
- this.device.info.type === 'webgl2' &&
191
- REQUIRED_FEATURES.every(feature => device.features.has(feature));
182
+ this._hasGPUSupport = REQUIRED_FEATURES.every(feature => device.features.has(feature));
192
183
  if (this._hasGPUSupport) {
193
184
  this._setupModels();
194
185
  }
@@ -227,9 +218,6 @@ export default class GPUGridAggregator {
227
218
  // reset results
228
219
  this.setState({results: {}});
229
220
  const aggregationParams = this._normalizeAggregationParams(opts);
230
- if (!this._hasGPUSupport) {
231
- log.log(1, 'GPUGridAggregator: not supported')();
232
- }
233
221
  return this._runAggregation(aggregationParams);
234
222
  }
235
223
 
@@ -302,26 +290,26 @@ export default class GPUGridAggregator {
302
290
  results[id] = {};
303
291
  const {needMin, needMax, combineMaxMin} = weights[id];
304
292
  results[id].aggregationTexture = textures[id];
305
- results[id].aggregationBuffer = readPixelsToBuffer(framebuffers[id], {
293
+ results[id].aggregationBuffer = this.device.readPixelsToBufferWebGL(framebuffers[id], {
306
294
  target: weights[id].aggregationBuffer, // update if a buffer is provided
307
295
  sourceType: GL.FLOAT
308
296
  });
309
297
  if (needMin && needMax && combineMaxMin) {
310
- results[id].maxMinBuffer = readPixelsToBuffer(maxMinFramebuffers[id], {
298
+ results[id].maxMinBuffer = this.device.readPixelsToBufferWebGL(maxMinFramebuffers[id], {
311
299
  target: weights[id].maxMinBuffer, // update if a buffer is provided
312
300
  sourceType: GL.FLOAT
313
301
  });
314
302
  results[id].maxMinTexture = resources[`${id}-maxMinTexture`];
315
303
  } else {
316
304
  if (needMin) {
317
- results[id].minBuffer = readPixelsToBuffer(minFramebuffers[id], {
305
+ results[id].minBuffer = this.device.readPixelsToBufferWebGL(minFramebuffers[id], {
318
306
  target: weights[id].minBuffer, // update if a buffer is provided
319
307
  sourceType: GL.FLOAT
320
308
  });
321
309
  results[id].minTexture = resources[`${id}-minTexture`];
322
310
  }
323
311
  if (needMax) {
324
- results[id].maxBuffer = readPixelsToBuffer(maxFramebuffers[id], {
312
+ results[id].maxBuffer = this.device.readPixelsToBufferWebGL(maxFramebuffers[id], {
325
313
  target: weights[id].maxBuffer, // update if a buffer is provided
326
314
  sourceType: GL.FLOAT
327
315
  });
@@ -413,15 +401,14 @@ export default class GPUGridAggregator {
413
401
  const {framebuffers} = this.state;
414
402
  const {allAggregationModel} = this;
415
403
 
416
- withGLParameters(
417
- this.device,
404
+ this.device.withParametersWebGL(
418
405
  {
419
406
  ...clearParams,
420
407
  framebuffer: minOrMaxFb,
421
408
  viewport: [0, 0, gridSize[0], gridSize[1]]
422
409
  },
423
410
  () => {
424
- clear(this.device, {color: true});
411
+ this.device.clearWebGL({color: true});
425
412
 
426
413
  // allAggregationModel.setParameters(parameters);
427
414
  allAggregationModel.setUniforms({gridSize, combineMaxMin});
@@ -444,15 +431,14 @@ export default class GPUGridAggregator {
444
431
  operation === AGGREGATION_OPERATION.MIN
445
432
  ? [MAX_32_BIT_FLOAT, MAX_32_BIT_FLOAT, MAX_32_BIT_FLOAT, 0]
446
433
  : [0, 0, 0, 0];
447
- withGLParameters(
448
- this.device,
434
+ this.device.withParametersWebGL(
449
435
  {
450
436
  framebuffer: framebuffers[id],
451
437
  viewport: [0, 0, gridSize[0], gridSize[1]],
452
438
  clearColor
453
439
  },
454
440
  () => {
455
- clear(this.device, {color: true});
441
+ this.device.clearWebGL({color: true});
456
442
 
457
443
  const attributes = {weights: weightAttributes[id]};
458
444
  gridAggregationModel.draw({
@@ -483,7 +469,7 @@ export default class GPUGridAggregator {
483
469
  }
484
470
  });
485
471
 
486
- // update framebuffer with mean results so readPixelsToBuffer returns mean values
472
+ // update framebuffer with mean results so device.readPixelsToBufferWebGL returns mean values
487
473
  framebuffers[id].attach({[GL.COLOR_ATTACHMENT0]: textures[id]});
488
474
  }
489
475
  }
@@ -607,7 +593,7 @@ export default class GPUGridAggregator {
607
593
  if (results[id]) {
608
594
  for (const bufferName of BUFFER_NAMES) {
609
595
  if (results[id][bufferName] && weights[id][bufferName] !== results[id][bufferName]) {
610
- // No result buffer is provided in weights object, `readPixelsToBuffer` has created a new Buffer object
596
+ // No result buffer is provided in weights object, `device.readPixelsToBufferWebGL` has created a new Buffer object
611
597
  // collect the new buffer for garabge collection
612
598
  const name = `gpu-result-${id}-${bufferName}`;
613
599
  if (resources[name]) {
@@ -1,4 +1,4 @@
1
- import {Device, Sampler, SamplerProps} from '@luma.gl/core';
1
+ import {Device, SamplerProps} from '@luma.gl/core';
2
2
 
3
3
  const DEFAULT_PARAMETERS: SamplerProps = {
4
4
  minFilter: 'nearest',
@@ -16,13 +16,7 @@ type FloatTextureOptions = {
16
16
 
17
17
  // TODO - not working
18
18
  export function getFloatTexture(device: Device, opts: FloatTextureOptions) {
19
- const {
20
- width = 1,
21
- height = 1,
22
- data = null,
23
- unpackFlipY = true,
24
- parameters = DEFAULT_PARAMETERS
25
- } = opts;
19
+ const {width = 1, height = 1, data = null, parameters = DEFAULT_PARAMETERS} = opts;
26
20
  const texture = device.createTexture({
27
21
  data,
28
22
  format: 'rgba32float', // device.info.type === 'webgl2' ? 'rgba32float' : GL.RGBA,
@@ -1,213 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _core = require("@deck.gl/core");
21
-
22
- var _propUtils = require("./utils/prop-utils");
23
-
24
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
25
-
26
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
27
-
28
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
29
-
30
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
31
-
32
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
33
-
34
- var AggregationLayer = function (_CompositeLayer) {
35
- (0, _inherits2.default)(AggregationLayer, _CompositeLayer);
36
-
37
- var _super = _createSuper(AggregationLayer);
38
-
39
- function AggregationLayer() {
40
- var _this;
41
-
42
- (0, _classCallCheck2.default)(this, AggregationLayer);
43
-
44
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
45
- args[_key] = arguments[_key];
46
- }
47
-
48
- _this = _super.call.apply(_super, [this].concat(args));
49
- _this.state = void 0;
50
- return _this;
51
- }
52
-
53
- var _proto = AggregationLayer.prototype;
54
-
55
- _proto.initializeAggregationLayer = function initializeAggregationLayer(dimensions) {
56
- (0, _get2.default)((0, _getPrototypeOf2.default)(AggregationLayer.prototype), "initializeState", this).call(this, this.context);
57
- this.setState({
58
- ignoreProps: (0, _propUtils.filterProps)(this.constructor._propTypes, dimensions.data.props),
59
- dimensions: dimensions
60
- });
61
- };
62
-
63
- _proto.updateState = function updateState(opts) {
64
- (0, _get2.default)((0, _getPrototypeOf2.default)(AggregationLayer.prototype), "updateState", this).call(this, opts);
65
- var changeFlags = opts.changeFlags;
66
-
67
- if (changeFlags.extensionsChanged) {
68
- var shaders = this.getShaders({});
69
-
70
- if (shaders && shaders.defines) {
71
- shaders.defines.NON_INSTANCED_MODEL = 1;
72
- }
73
-
74
- this.updateShaders(shaders);
75
- }
76
-
77
- this._updateAttributes();
78
- };
79
-
80
- _proto.updateAttributes = function updateAttributes(changedAttributes) {
81
- this.setState({
82
- changedAttributes: changedAttributes
83
- });
84
- };
85
-
86
- _proto.getAttributes = function getAttributes() {
87
- return this.getAttributeManager().getAttributes();
88
- };
89
-
90
- _proto.getModuleSettings = function getModuleSettings() {
91
- var _this$context = this.context,
92
- viewport = _this$context.viewport,
93
- mousePosition = _this$context.mousePosition,
94
- device = _this$context.device;
95
- var moduleSettings = Object.assign(Object.create(this.props), {
96
- viewport: viewport,
97
- mousePosition: mousePosition,
98
- pickingActive: 0,
99
- devicePixelRatio: device.canvasContext.cssToDeviceRatio()
100
- });
101
- return moduleSettings;
102
- };
103
-
104
- _proto.updateShaders = function updateShaders(shaders) {};
105
-
106
- _proto.isAggregationDirty = function isAggregationDirty(updateOpts) {
107
- var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
108
- var props = updateOpts.props,
109
- oldProps = updateOpts.oldProps,
110
- changeFlags = updateOpts.changeFlags;
111
- var _params$compareAll = params.compareAll,
112
- compareAll = _params$compareAll === void 0 ? false : _params$compareAll,
113
- dimension = params.dimension;
114
- var ignoreProps = this.state.ignoreProps;
115
- var dataProps = dimension.props,
116
- _dimension$accessors = dimension.accessors,
117
- accessors = _dimension$accessors === void 0 ? [] : _dimension$accessors;
118
- var updateTriggersChanged = changeFlags.updateTriggersChanged;
119
-
120
- if (changeFlags.dataChanged) {
121
- return true;
122
- }
123
-
124
- if (updateTriggersChanged) {
125
- if (updateTriggersChanged.all) {
126
- return true;
127
- }
128
-
129
- var _iterator = _createForOfIteratorHelper(accessors),
130
- _step;
131
-
132
- try {
133
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
134
- var accessor = _step.value;
135
-
136
- if (updateTriggersChanged[accessor]) {
137
- return true;
138
- }
139
- }
140
- } catch (err) {
141
- _iterator.e(err);
142
- } finally {
143
- _iterator.f();
144
- }
145
- }
146
-
147
- if (compareAll) {
148
- if (changeFlags.extensionsChanged) {
149
- return true;
150
- }
151
-
152
- return (0, _core._compareProps)({
153
- oldProps: oldProps,
154
- newProps: props,
155
- ignoreProps: ignoreProps,
156
- propTypes: this.constructor._propTypes
157
- });
158
- }
159
-
160
- var _iterator2 = _createForOfIteratorHelper(dataProps),
161
- _step2;
162
-
163
- try {
164
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
165
- var name = _step2.value;
166
-
167
- if (props[name] !== oldProps[name]) {
168
- return true;
169
- }
170
- }
171
- } catch (err) {
172
- _iterator2.e(err);
173
- } finally {
174
- _iterator2.f();
175
- }
176
-
177
- return false;
178
- };
179
-
180
- _proto.isAttributeChanged = function isAttributeChanged(name) {
181
- var changedAttributes = this.state.changedAttributes;
182
-
183
- if (!name) {
184
- return !isObjectEmpty(changedAttributes);
185
- }
186
-
187
- return changedAttributes && changedAttributes[name] !== undefined;
188
- };
189
-
190
- _proto._getAttributeManager = function _getAttributeManager() {
191
- return new _core.AttributeManager(this.context.device, {
192
- id: this.props.id,
193
- stats: this.context.stats
194
- });
195
- };
196
-
197
- return AggregationLayer;
198
- }(_core.CompositeLayer);
199
-
200
- exports.default = AggregationLayer;
201
- AggregationLayer.layerName = 'AggregationLayer';
202
-
203
- function isObjectEmpty(obj) {
204
- var isEmpty = true;
205
-
206
- for (var key in obj) {
207
- isEmpty = false;
208
- break;
209
- }
210
-
211
- return isEmpty;
212
- }
213
- //# sourceMappingURL=aggregation-layer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/aggregation-layer.ts"],"names":["AggregationLayer","state","initializeAggregationLayer","dimensions","context","setState","ignoreProps","constructor","_propTypes","data","props","updateState","opts","changeFlags","extensionsChanged","shaders","getShaders","defines","NON_INSTANCED_MODEL","updateShaders","_updateAttributes","updateAttributes","changedAttributes","getAttributes","getAttributeManager","getModuleSettings","viewport","mousePosition","device","moduleSettings","Object","assign","create","pickingActive","devicePixelRatio","canvasContext","cssToDeviceRatio","isAggregationDirty","updateOpts","params","oldProps","compareAll","dimension","dataProps","accessors","updateTriggersChanged","dataChanged","all","accessor","newProps","propTypes","name","isAttributeChanged","isObjectEmpty","undefined","_getAttributeManager","AttributeManager","id","stats","CompositeLayer","layerName","obj","isEmpty","key"],"mappings":"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","sourcesContent":["// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport {\n CompositeLayer,\n AttributeManager,\n LayerDataSource,\n _compareProps as compareProps,\n UpdateParameters,\n CompositeLayerProps\n} from '@deck.gl/core';\nimport {filterProps} from './utils/prop-utils';\n\nexport type AggregationLayerProps<DataT> = CompositeLayerProps & {\n data: LayerDataSource<DataT>;\n};\n\nexport default abstract class AggregationLayer<\n DataT,\n ExtraPropsT extends {} = {}\n> extends CompositeLayer<Required<AggregationLayer<DataT>> & ExtraPropsT> {\n static layerName = 'AggregationLayer';\n\n state!: {\n ignoreProps?: Record<string, any>;\n dimensions?: any;\n changedAttributes?: Record<string, any>;\n };\n\n initializeAggregationLayer(dimensions: any) {\n super.initializeState(this.context);\n\n this.setState({\n // Layer props , when changed doesn't require updating aggregation\n ignoreProps: filterProps((this.constructor as any)._propTypes, dimensions.data.props),\n dimensions\n });\n }\n\n updateState(opts: UpdateParameters<this>) {\n super.updateState(opts);\n const {changeFlags} = opts;\n if (changeFlags.extensionsChanged) {\n const shaders = this.getShaders({});\n if (shaders && shaders.defines) {\n shaders.defines.NON_INSTANCED_MODEL = 1;\n }\n this.updateShaders(shaders);\n }\n\n // Explictly call to update attributes as 'CompositeLayer' doesn't call this\n this._updateAttributes();\n }\n\n updateAttributes(changedAttributes) {\n // Super classes, can refer to state.changedAttributes to determine what\n // attributes changed\n this.setState({changedAttributes});\n }\n\n getAttributes() {\n return this.getAttributeManager()!.getAttributes();\n }\n\n getModuleSettings() {\n // For regular layer draw this happens during draw cycle (_drawLayersInViewport) not during update cycle\n // For aggregation layers this is called during updateState to update aggregation data\n // NOTE: it is similar to LayerPass._getModuleParameters() but doesn't inlcude `effects` it is not needed for aggregation\n const {viewport, mousePosition, device} = this.context;\n const moduleSettings = Object.assign(Object.create(this.props), {\n viewport,\n mousePosition,\n pickingActive: 0,\n // @ts-expect-error TODO - assuming WebGL context\n devicePixelRatio: device.canvasContext.cssToDeviceRatio()\n });\n return moduleSettings;\n }\n\n updateShaders(shaders) {\n // Default implemention is empty, subclasses can update their Model objects if needed\n }\n\n /**\n * Checks if aggregation is dirty\n * @param {Object} updateOpts - object {props, oldProps, changeFlags}\n * @param {Object} params - object {dimension, compareAll}\n * @param {Object} params.dimension - {props, accessors} array of props and/or accessors\n * @param {Boolean} params.compareAll - when `true` it will include non layer props for comparision\n * @returns {Boolean} - returns true if dimensions' prop or accessor is changed\n **/\n isAggregationDirty(\n updateOpts,\n params: {compareAll?: boolean; dimension?: any} = {}\n ): string | boolean {\n const {props, oldProps, changeFlags} = updateOpts;\n const {compareAll = false, dimension} = params;\n const {ignoreProps} = this.state;\n const {props: dataProps, accessors = []} = dimension;\n const {updateTriggersChanged} = changeFlags;\n if (changeFlags.dataChanged) {\n return true;\n }\n if (updateTriggersChanged) {\n if (updateTriggersChanged.all) {\n return true;\n }\n for (const accessor of accessors) {\n if (updateTriggersChanged[accessor]) {\n return true;\n }\n }\n }\n if (compareAll) {\n if (changeFlags.extensionsChanged) {\n return true;\n }\n // Compare non layer props too (like extension props)\n // ignoreprops refers to all Layer props other than aggregation props that need to be comapred\n return compareProps({\n oldProps,\n newProps: props,\n ignoreProps,\n propTypes: (this.constructor as any)._propTypes\n });\n }\n // Compare props of the dimension\n for (const name of dataProps) {\n if (props[name] !== oldProps[name]) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Checks if an attribute is changed\n * @param {String} name - name of the attribute\n * @returns {Boolean} - `true` if attribute `name` is changed, `false` otherwise,\n * If `name` is not passed or `undefiend`, `true` if any attribute is changed, `false` otherwise\n **/\n isAttributeChanged(name?: string) {\n const {changedAttributes} = this.state;\n if (!name) {\n // if name not specified return true if any attribute is changed\n return !isObjectEmpty(changedAttributes);\n }\n return changedAttributes && changedAttributes[name] !== undefined;\n }\n\n // Private\n\n // override Composite layer private method to create AttributeManager instance\n _getAttributeManager() {\n return new AttributeManager(this.context.device, {\n id: this.props.id,\n stats: this.context.stats\n });\n }\n}\n\n// Helper methods\n\n// Returns true if given object is empty, false otherwise.\nfunction isObjectEmpty(obj) {\n let isEmpty = true;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n for (const key in obj) {\n isEmpty = false;\n break;\n }\n return isEmpty;\n}\n"],"file":"aggregation-layer.js"}