@deck.gl/aggregation-layers 9.0.0-beta.1 → 9.0.0-beta.3

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 (336) hide show
  1. package/dist/aggregation-layer.js +153 -0
  2. package/dist/contour-layer/contour-layer.js +241 -0
  3. package/dist/contour-layer/contour-utils.js +64 -0
  4. package/dist/contour-layer/marching-squares-codes.js +337 -0
  5. package/dist/contour-layer/marching-squares.js +147 -0
  6. package/dist/cpu-grid-layer/cpu-grid-layer.js +130 -0
  7. package/dist/cpu-grid-layer/grid-aggregator.js +141 -0
  8. package/dist/dist.dev.js +1187 -10528
  9. package/dist/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +34 -0
  10. package/dist/{esm/gpu-grid-layer → gpu-grid-layer}/gpu-grid-cell-layer-vertex.glsl.js +20 -1
  11. package/dist/gpu-grid-layer/gpu-grid-cell-layer.js +145 -0
  12. package/dist/gpu-grid-layer/gpu-grid-layer.js +288 -0
  13. package/dist/grid-aggregation-layer.js +172 -0
  14. package/dist/grid-layer/grid-layer.js +63 -0
  15. package/{typed → dist}/heatmap-layer/heatmap-layer-utils.d.ts +0 -9
  16. package/dist/heatmap-layer/heatmap-layer-utils.d.ts.map +1 -0
  17. package/dist/heatmap-layer/heatmap-layer-utils.js +63 -0
  18. package/{typed → dist}/heatmap-layer/heatmap-layer.d.ts +4 -4
  19. package/dist/heatmap-layer/heatmap-layer.d.ts.map +1 -0
  20. package/dist/heatmap-layer/heatmap-layer.js +471 -0
  21. package/dist/{esm/heatmap-layer → heatmap-layer}/max-fs.glsl.js +0 -1
  22. package/dist/heatmap-layer/max-vs.glsl.d.ts +3 -0
  23. package/{typed → dist}/heatmap-layer/max-vs.glsl.d.ts.map +1 -1
  24. package/dist/heatmap-layer/max-vs.glsl.js +19 -0
  25. package/dist/heatmap-layer/triangle-layer-fragment.glsl.d.ts +3 -0
  26. package/dist/heatmap-layer/triangle-layer-fragment.glsl.js +61 -0
  27. package/dist/heatmap-layer/triangle-layer-vertex.glsl.js +52 -0
  28. package/{typed → dist}/heatmap-layer/triangle-layer.d.ts +10 -2
  29. package/dist/heatmap-layer/triangle-layer.d.ts.map +1 -0
  30. package/dist/heatmap-layer/triangle-layer.js +59 -0
  31. package/dist/{esm/heatmap-layer → heatmap-layer}/weights-fs.glsl.js +0 -1
  32. package/dist/heatmap-layer/weights-vs.glsl.d.ts +3 -0
  33. package/{typed → dist}/heatmap-layer/weights-vs.glsl.d.ts.map +1 -1
  34. package/dist/{esm/heatmap-layer → heatmap-layer}/weights-vs.glsl.js +4 -3
  35. package/dist/hexagon-layer/hexagon-aggregator.js +112 -0
  36. package/dist/hexagon-layer/hexagon-layer.js +174 -0
  37. package/dist/index.cjs +4494 -0
  38. package/dist/index.cjs.map +7 -0
  39. package/dist/index.js +32 -0
  40. package/dist/screen-grid-layer/screen-grid-cell-layer.js +166 -0
  41. package/dist/screen-grid-layer/screen-grid-layer-fragment.glsl.js +40 -0
  42. package/dist/{esm/screen-grid-layer → screen-grid-layer}/screen-grid-layer-vertex.glsl.js +19 -1
  43. package/dist/screen-grid-layer/screen-grid-layer.js +216 -0
  44. package/dist/types.js +1 -0
  45. package/dist/utils/aggregation-operation-utils.js +94 -0
  46. package/dist/utils/bin-sorter.js +167 -0
  47. package/dist/utils/color-utils.js +53 -0
  48. package/dist/utils/cpu-aggregator.js +421 -0
  49. package/dist/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +39 -0
  50. package/dist/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +53 -0
  51. package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +34 -0
  52. package/dist/{esm/utils → utils}/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +19 -1
  53. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +41 -0
  54. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +1 -0
  55. package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts.map +1 -1
  56. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +566 -0
  57. package/dist/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +37 -0
  58. package/dist/utils/grid-aggregation-utils.js +114 -0
  59. package/dist/utils/prop-utils.js +28 -0
  60. package/dist/utils/resource-utils.js +38 -0
  61. package/dist/utils/scale-utils.js +184 -0
  62. package/dist.min.js +74 -178
  63. package/package.json +18 -11
  64. package/src/heatmap-layer/heatmap-layer-utils.ts +0 -23
  65. package/src/heatmap-layer/heatmap-layer.ts +87 -105
  66. package/src/heatmap-layer/max-vs.glsl.ts +11 -5
  67. package/src/heatmap-layer/triangle-layer-fragment.glsl.ts +2 -2
  68. package/src/heatmap-layer/triangle-layer.ts +17 -23
  69. package/src/heatmap-layer/weights-vs.glsl.ts +4 -2
  70. package/src/utils/gpu-grid-aggregation/gpu-grid-aggregator.ts +10 -13
  71. package/dist/es5/aggregation-layer.js +0 -215
  72. package/dist/es5/aggregation-layer.js.map +0 -1
  73. package/dist/es5/contour-layer/contour-layer.js +0 -353
  74. package/dist/es5/contour-layer/contour-layer.js.map +0 -1
  75. package/dist/es5/contour-layer/contour-utils.js +0 -110
  76. package/dist/es5/contour-layer/contour-utils.js.map +0 -1
  77. package/dist/es5/contour-layer/marching-squares-codes.js +0 -152
  78. package/dist/es5/contour-layer/marching-squares-codes.js.map +0 -1
  79. package/dist/es5/contour-layer/marching-squares.js +0 -168
  80. package/dist/es5/contour-layer/marching-squares.js.map +0 -1
  81. package/dist/es5/cpu-grid-layer/cpu-grid-layer.js +0 -235
  82. package/dist/es5/cpu-grid-layer/cpu-grid-layer.js.map +0 -1
  83. package/dist/es5/cpu-grid-layer/grid-aggregator.js +0 -180
  84. package/dist/es5/cpu-grid-layer/grid-aggregator.js.map +0 -1
  85. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +0 -9
  86. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js.map +0 -1
  87. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +0 -9
  88. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js.map +0 -1
  89. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js +0 -247
  90. package/dist/es5/gpu-grid-layer/gpu-grid-cell-layer.js.map +0 -1
  91. package/dist/es5/gpu-grid-layer/gpu-grid-layer.js +0 -424
  92. package/dist/es5/gpu-grid-layer/gpu-grid-layer.js.map +0 -1
  93. package/dist/es5/grid-aggregation-layer.js +0 -280
  94. package/dist/es5/grid-aggregation-layer.js.map +0 -1
  95. package/dist/es5/grid-layer/grid-layer.js +0 -125
  96. package/dist/es5/grid-layer/grid-layer.js.map +0 -1
  97. package/dist/es5/heatmap-layer/heatmap-layer-utils.js +0 -122
  98. package/dist/es5/heatmap-layer/heatmap-layer-utils.js.map +0 -1
  99. package/dist/es5/heatmap-layer/heatmap-layer.js +0 -672
  100. package/dist/es5/heatmap-layer/heatmap-layer.js.map +0 -1
  101. package/dist/es5/heatmap-layer/max-fs.glsl.js +0 -9
  102. package/dist/es5/heatmap-layer/max-fs.glsl.js.map +0 -1
  103. package/dist/es5/heatmap-layer/max-vs.glsl.js +0 -9
  104. package/dist/es5/heatmap-layer/max-vs.glsl.js.map +0 -1
  105. package/dist/es5/heatmap-layer/triangle-layer-fragment.glsl.js +0 -9
  106. package/dist/es5/heatmap-layer/triangle-layer-fragment.glsl.js.map +0 -1
  107. package/dist/es5/heatmap-layer/triangle-layer-vertex.glsl.js +0 -9
  108. package/dist/es5/heatmap-layer/triangle-layer-vertex.glsl.js.map +0 -1
  109. package/dist/es5/heatmap-layer/triangle-layer.js +0 -122
  110. package/dist/es5/heatmap-layer/triangle-layer.js.map +0 -1
  111. package/dist/es5/heatmap-layer/weights-fs.glsl.js +0 -9
  112. package/dist/es5/heatmap-layer/weights-fs.glsl.js.map +0 -1
  113. package/dist/es5/heatmap-layer/weights-vs.glsl.js +0 -9
  114. package/dist/es5/heatmap-layer/weights-vs.glsl.js.map +0 -1
  115. package/dist/es5/hexagon-layer/hexagon-aggregator.js +0 -118
  116. package/dist/es5/hexagon-layer/hexagon-aggregator.js.map +0 -1
  117. package/dist/es5/hexagon-layer/hexagon-layer.js +0 -289
  118. package/dist/es5/hexagon-layer/hexagon-layer.js.map +0 -1
  119. package/dist/es5/index.js +0 -104
  120. package/dist/es5/index.js.map +0 -1
  121. package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js +0 -244
  122. package/dist/es5/screen-grid-layer/screen-grid-cell-layer.js.map +0 -1
  123. package/dist/es5/screen-grid-layer/screen-grid-layer-fragment.glsl.js +0 -9
  124. package/dist/es5/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +0 -1
  125. package/dist/es5/screen-grid-layer/screen-grid-layer-vertex.glsl.js +0 -9
  126. package/dist/es5/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +0 -1
  127. package/dist/es5/screen-grid-layer/screen-grid-layer.js +0 -317
  128. package/dist/es5/screen-grid-layer/screen-grid-layer.js.map +0 -1
  129. package/dist/es5/types.js +0 -2
  130. package/dist/es5/types.js.map +0 -1
  131. package/dist/es5/utils/aggregation-operation-utils.js +0 -123
  132. package/dist/es5/utils/aggregation-operation-utils.js.map +0 -1
  133. package/dist/es5/utils/bin-sorter.js +0 -248
  134. package/dist/es5/utils/bin-sorter.js.map +0 -1
  135. package/dist/es5/utils/color-utils.js +0 -39
  136. package/dist/es5/utils/color-utils.js.map +0 -1
  137. package/dist/es5/utils/cpu-aggregator.js +0 -496
  138. package/dist/es5/utils/cpu-aggregator.js.map +0 -1
  139. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +0 -9
  140. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js.map +0 -1
  141. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +0 -9
  142. package/dist/es5/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js.map +0 -1
  143. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +0 -9
  144. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js.map +0 -1
  145. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +0 -9
  146. package/dist/es5/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js.map +0 -1
  147. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +0 -63
  148. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js.map +0 -1
  149. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +0 -2
  150. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js.map +0 -1
  151. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +0 -732
  152. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.js.map +0 -1
  153. package/dist/es5/utils/gpu-grid-aggregation/gpu-grid-aggregator.md +0 -155
  154. package/dist/es5/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +0 -9
  155. package/dist/es5/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js.map +0 -1
  156. package/dist/es5/utils/grid-aggregation-utils.js +0 -118
  157. package/dist/es5/utils/grid-aggregation-utils.js.map +0 -1
  158. package/dist/es5/utils/prop-utils.js +0 -19
  159. package/dist/es5/utils/prop-utils.js.map +0 -1
  160. package/dist/es5/utils/resource-utils.js +0 -59
  161. package/dist/es5/utils/resource-utils.js.map +0 -1
  162. package/dist/es5/utils/scale-utils.js +0 -254
  163. package/dist/es5/utils/scale-utils.js.map +0 -1
  164. package/dist/esm/aggregation-layer.js +0 -156
  165. package/dist/esm/aggregation-layer.js.map +0 -1
  166. package/dist/esm/contour-layer/contour-layer.js +0 -316
  167. package/dist/esm/contour-layer/contour-layer.js.map +0 -1
  168. package/dist/esm/contour-layer/contour-utils.js +0 -81
  169. package/dist/esm/contour-layer/contour-utils.js.map +0 -1
  170. package/dist/esm/contour-layer/marching-squares-codes.js +0 -219
  171. package/dist/esm/contour-layer/marching-squares-codes.js.map +0 -1
  172. package/dist/esm/contour-layer/marching-squares.js +0 -151
  173. package/dist/esm/contour-layer/marching-squares.js.map +0 -1
  174. package/dist/esm/cpu-grid-layer/cpu-grid-layer.js +0 -186
  175. package/dist/esm/cpu-grid-layer/cpu-grid-layer.js.map +0 -1
  176. package/dist/esm/cpu-grid-layer/grid-aggregator.js +0 -142
  177. package/dist/esm/cpu-grid-layer/grid-aggregator.js.map +0 -1
  178. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +0 -16
  179. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js.map +0 -1
  180. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js.map +0 -1
  181. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js +0 -196
  182. package/dist/esm/gpu-grid-layer/gpu-grid-cell-layer.js.map +0 -1
  183. package/dist/esm/gpu-grid-layer/gpu-grid-layer.js +0 -399
  184. package/dist/esm/gpu-grid-layer/gpu-grid-layer.js.map +0 -1
  185. package/dist/esm/grid-aggregation-layer.js +0 -240
  186. package/dist/esm/grid-aggregation-layer.js.map +0 -1
  187. package/dist/esm/grid-layer/grid-layer.js +0 -80
  188. package/dist/esm/grid-layer/grid-layer.js.map +0 -1
  189. package/dist/esm/heatmap-layer/heatmap-layer-utils.js +0 -68
  190. package/dist/esm/heatmap-layer/heatmap-layer-utils.js.map +0 -1
  191. package/dist/esm/heatmap-layer/heatmap-layer.js +0 -626
  192. package/dist/esm/heatmap-layer/heatmap-layer.js.map +0 -1
  193. package/dist/esm/heatmap-layer/max-fs.glsl.js.map +0 -1
  194. package/dist/esm/heatmap-layer/max-vs.glsl.js +0 -14
  195. package/dist/esm/heatmap-layer/max-vs.glsl.js.map +0 -1
  196. package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js +0 -43
  197. package/dist/esm/heatmap-layer/triangle-layer-fragment.glsl.js.map +0 -1
  198. package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js +0 -33
  199. package/dist/esm/heatmap-layer/triangle-layer-vertex.glsl.js.map +0 -1
  200. package/dist/esm/heatmap-layer/triangle-layer.js +0 -80
  201. package/dist/esm/heatmap-layer/triangle-layer.js.map +0 -1
  202. package/dist/esm/heatmap-layer/weights-fs.glsl.js.map +0 -1
  203. package/dist/esm/heatmap-layer/weights-vs.glsl.js.map +0 -1
  204. package/dist/esm/hexagon-layer/hexagon-aggregator.js +0 -87
  205. package/dist/esm/hexagon-layer/hexagon-aggregator.js.map +0 -1
  206. package/dist/esm/hexagon-layer/hexagon-layer.js +0 -232
  207. package/dist/esm/hexagon-layer/hexagon-layer.js.map +0 -1
  208. package/dist/esm/index.js +0 -13
  209. package/dist/esm/index.js.map +0 -1
  210. package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js +0 -203
  211. package/dist/esm/screen-grid-layer/screen-grid-cell-layer.js.map +0 -1
  212. package/dist/esm/screen-grid-layer/screen-grid-layer-fragment.glsl.js +0 -21
  213. package/dist/esm/screen-grid-layer/screen-grid-layer-fragment.glsl.js.map +0 -1
  214. package/dist/esm/screen-grid-layer/screen-grid-layer-vertex.glsl.js.map +0 -1
  215. package/dist/esm/screen-grid-layer/screen-grid-layer.js +0 -285
  216. package/dist/esm/screen-grid-layer/screen-grid-layer.js.map +0 -1
  217. package/dist/esm/types.js +0 -2
  218. package/dist/esm/types.js.map +0 -1
  219. package/dist/esm/utils/aggregation-operation-utils.js +0 -91
  220. package/dist/esm/utils/aggregation-operation-utils.js.map +0 -1
  221. package/dist/esm/utils/bin-sorter.js +0 -165
  222. package/dist/esm/utils/bin-sorter.js.map +0 -1
  223. package/dist/esm/utils/color-utils.js +0 -28
  224. package/dist/esm/utils/color-utils.js.map +0 -1
  225. package/dist/esm/utils/cpu-aggregator.js +0 -487
  226. package/dist/esm/utils/cpu-aggregator.js.map +0 -1
  227. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +0 -21
  228. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js.map +0 -1
  229. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +0 -35
  230. package/dist/esm/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js.map +0 -1
  231. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +0 -16
  232. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js.map +0 -1
  233. package/dist/esm/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js.map +0 -1
  234. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +0 -42
  235. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js.map +0 -1
  236. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js +0 -2
  237. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.js.map +0 -1
  238. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +0 -720
  239. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.js.map +0 -1
  240. package/dist/esm/utils/gpu-grid-aggregation/gpu-grid-aggregator.md +0 -155
  241. package/dist/esm/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +0 -19
  242. package/dist/esm/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js.map +0 -1
  243. package/dist/esm/utils/grid-aggregation-utils.js +0 -109
  244. package/dist/esm/utils/grid-aggregation-utils.js.map +0 -1
  245. package/dist/esm/utils/prop-utils.js +0 -12
  246. package/dist/esm/utils/prop-utils.js.map +0 -1
  247. package/dist/esm/utils/resource-utils.js +0 -44
  248. package/dist/esm/utils/resource-utils.js.map +0 -1
  249. package/dist/esm/utils/scale-utils.js +0 -192
  250. package/dist/esm/utils/scale-utils.js.map +0 -1
  251. package/typed/heatmap-layer/heatmap-layer-utils.d.ts.map +0 -1
  252. package/typed/heatmap-layer/heatmap-layer.d.ts.map +0 -1
  253. package/typed/heatmap-layer/max-vs.glsl.d.ts +0 -3
  254. package/typed/heatmap-layer/triangle-layer-fragment.glsl.d.ts +0 -3
  255. package/typed/heatmap-layer/triangle-layer.d.ts.map +0 -1
  256. package/typed/heatmap-layer/weights-vs.glsl.d.ts +0 -3
  257. /package/{typed → dist}/aggregation-layer.d.ts +0 -0
  258. /package/{typed → dist}/aggregation-layer.d.ts.map +0 -0
  259. /package/{typed → dist}/contour-layer/contour-layer.d.ts +0 -0
  260. /package/{typed → dist}/contour-layer/contour-layer.d.ts.map +0 -0
  261. /package/{typed → dist}/contour-layer/contour-utils.d.ts +0 -0
  262. /package/{typed → dist}/contour-layer/contour-utils.d.ts.map +0 -0
  263. /package/{typed → dist}/contour-layer/marching-squares-codes.d.ts +0 -0
  264. /package/{typed → dist}/contour-layer/marching-squares-codes.d.ts.map +0 -0
  265. /package/{typed → dist}/contour-layer/marching-squares.d.ts +0 -0
  266. /package/{typed → dist}/contour-layer/marching-squares.d.ts.map +0 -0
  267. /package/{typed → dist}/cpu-grid-layer/cpu-grid-layer.d.ts +0 -0
  268. /package/{typed → dist}/cpu-grid-layer/cpu-grid-layer.d.ts.map +0 -0
  269. /package/{typed → dist}/cpu-grid-layer/grid-aggregator.d.ts +0 -0
  270. /package/{typed → dist}/cpu-grid-layer/grid-aggregator.d.ts.map +0 -0
  271. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts +0 -0
  272. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.d.ts.map +0 -0
  273. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts +0 -0
  274. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.d.ts.map +0 -0
  275. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer.d.ts +0 -0
  276. /package/{typed → dist}/gpu-grid-layer/gpu-grid-cell-layer.d.ts.map +0 -0
  277. /package/{typed → dist}/gpu-grid-layer/gpu-grid-layer.d.ts +0 -0
  278. /package/{typed → dist}/gpu-grid-layer/gpu-grid-layer.d.ts.map +0 -0
  279. /package/{typed → dist}/grid-aggregation-layer.d.ts +0 -0
  280. /package/{typed → dist}/grid-aggregation-layer.d.ts.map +0 -0
  281. /package/{typed → dist}/grid-layer/grid-layer.d.ts +0 -0
  282. /package/{typed → dist}/grid-layer/grid-layer.d.ts.map +0 -0
  283. /package/{typed → dist}/heatmap-layer/max-fs.glsl.d.ts +0 -0
  284. /package/{typed → dist}/heatmap-layer/max-fs.glsl.d.ts.map +0 -0
  285. /package/{typed → dist}/heatmap-layer/triangle-layer-fragment.glsl.d.ts.map +0 -0
  286. /package/{typed → dist}/heatmap-layer/triangle-layer-vertex.glsl.d.ts +0 -0
  287. /package/{typed → dist}/heatmap-layer/triangle-layer-vertex.glsl.d.ts.map +0 -0
  288. /package/{typed → dist}/heatmap-layer/weights-fs.glsl.d.ts +0 -0
  289. /package/{typed → dist}/heatmap-layer/weights-fs.glsl.d.ts.map +0 -0
  290. /package/{typed → dist}/hexagon-layer/hexagon-aggregator.d.ts +0 -0
  291. /package/{typed → dist}/hexagon-layer/hexagon-aggregator.d.ts.map +0 -0
  292. /package/{typed → dist}/hexagon-layer/hexagon-layer.d.ts +0 -0
  293. /package/{typed → dist}/hexagon-layer/hexagon-layer.d.ts.map +0 -0
  294. /package/{typed → dist}/index.d.ts +0 -0
  295. /package/{typed → dist}/index.d.ts.map +0 -0
  296. /package/{typed → dist}/screen-grid-layer/screen-grid-cell-layer.d.ts +0 -0
  297. /package/{typed → dist}/screen-grid-layer/screen-grid-cell-layer.d.ts.map +0 -0
  298. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts +0 -0
  299. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-fragment.glsl.d.ts.map +0 -0
  300. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts +0 -0
  301. /package/{typed → dist}/screen-grid-layer/screen-grid-layer-vertex.glsl.d.ts.map +0 -0
  302. /package/{typed → dist}/screen-grid-layer/screen-grid-layer.d.ts +0 -0
  303. /package/{typed → dist}/screen-grid-layer/screen-grid-layer.d.ts.map +0 -0
  304. /package/{typed → dist}/types.d.ts +0 -0
  305. /package/{typed → dist}/types.d.ts.map +0 -0
  306. /package/{typed → dist}/utils/aggregation-operation-utils.d.ts +0 -0
  307. /package/{typed → dist}/utils/aggregation-operation-utils.d.ts.map +0 -0
  308. /package/{typed → dist}/utils/bin-sorter.d.ts +0 -0
  309. /package/{typed → dist}/utils/bin-sorter.d.ts.map +0 -0
  310. /package/{typed → dist}/utils/color-utils.d.ts +0 -0
  311. /package/{typed → dist}/utils/color-utils.d.ts.map +0 -0
  312. /package/{typed → dist}/utils/cpu-aggregator.d.ts +0 -0
  313. /package/{typed → dist}/utils/cpu-aggregator.d.ts.map +0 -0
  314. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.d.ts +0 -0
  315. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.d.ts.map +0 -0
  316. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.d.ts +0 -0
  317. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.d.ts.map +0 -0
  318. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.d.ts +0 -0
  319. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.d.ts.map +0 -0
  320. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.d.ts +0 -0
  321. /package/{typed → dist}/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.d.ts.map +0 -0
  322. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.d.ts +0 -0
  323. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.d.ts.map +0 -0
  324. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.d.ts +0 -0
  325. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator-utils.d.ts.map +0 -0
  326. /package/{typed → dist}/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts +0 -0
  327. /package/{typed → dist}/utils/gpu-grid-aggregation/transform-mean-vs.glsl.d.ts +0 -0
  328. /package/{typed → dist}/utils/gpu-grid-aggregation/transform-mean-vs.glsl.d.ts.map +0 -0
  329. /package/{typed → dist}/utils/grid-aggregation-utils.d.ts +0 -0
  330. /package/{typed → dist}/utils/grid-aggregation-utils.d.ts.map +0 -0
  331. /package/{typed → dist}/utils/prop-utils.d.ts +0 -0
  332. /package/{typed → dist}/utils/prop-utils.d.ts.map +0 -0
  333. /package/{typed → dist}/utils/resource-utils.d.ts +0 -0
  334. /package/{typed → dist}/utils/resource-utils.d.ts.map +0 -0
  335. /package/{typed → dist}/utils/scale-utils.d.ts +0 -0
  336. /package/{typed → dist}/utils/scale-utils.d.ts.map +0 -0
package/package.json CHANGED
@@ -2,7 +2,8 @@
2
2
  "name": "@deck.gl/aggregation-layers",
3
3
  "description": "deck.gl layers that aggregate the input data into alternative representations",
4
4
  "license": "MIT",
5
- "version": "9.0.0-beta.1",
5
+ "type": "module",
6
+ "version": "9.0.0-beta.3",
6
7
  "publishConfig": {
7
8
  "access": "public"
8
9
  },
@@ -16,13 +17,19 @@
16
17
  "type": "git",
17
18
  "url": "https://github.com/visgl/deck.gl.git"
18
19
  },
19
- "main": "dist/es5/index.js",
20
- "module": "dist/esm/index.js",
21
- "types": "typed/index.d.ts",
20
+ "types": "dist/index.d.ts",
21
+ "main": "dist/index.cjs",
22
+ "module": "dist/index.js",
23
+ "exports": {
24
+ ".": {
25
+ "types": "./dist/index.d.ts",
26
+ "import": "./dist/index.js",
27
+ "require": "./dist/index.cjs"
28
+ }
29
+ },
22
30
  "files": [
23
31
  "dist",
24
32
  "src",
25
- "typed",
26
33
  "dist.min.js"
27
34
  ],
28
35
  "sideEffects": false,
@@ -32,17 +39,17 @@
32
39
  },
33
40
  "dependencies": {
34
41
  "@babel/runtime": "^7.0.0",
35
- "@luma.gl/constants": "9.0.0-alpha.54",
36
- "@luma.gl/core": "9.0.0-alpha.54",
37
- "@luma.gl/shadertools": "9.0.0-alpha.54",
42
+ "@luma.gl/constants": "9.0.0-beta.4",
43
+ "@luma.gl/core": "9.0.0-beta.4",
44
+ "@luma.gl/shadertools": "9.0.0-beta.4",
38
45
  "@math.gl/web-mercator": "^4.0.0",
39
46
  "d3-hexbin": "^0.2.1"
40
47
  },
41
48
  "peerDependencies": {
42
49
  "@deck.gl/core": "^9.0.0-alpha",
43
50
  "@deck.gl/layers": "^9.0.0-alpha",
44
- "@luma.gl/core": "9.0.0-alpha.54",
45
- "@luma.gl/engine": "9.0.0-alpha.54"
51
+ "@luma.gl/core": "9.0.0-beta.4",
52
+ "@luma.gl/engine": "9.0.0-beta.4"
46
53
  },
47
- "gitHead": "9628417918bec5cc73c1345bfcd2f2be575741f1"
54
+ "gitHead": "643d1009268bbf92b5bc0941d00aa59d5e3a582b"
48
55
  }
@@ -1,6 +1,3 @@
1
- import {Device} from '@luma.gl/core';
2
- import {GL} from '@luma.gl/constants';
3
-
4
1
  export function getBounds(points: number[][]): number[] {
5
2
  // Now build bounding box in world space (aligned to world coordiante system)
6
3
  const x = points.map(p => p[0]);
@@ -77,23 +74,3 @@ export function getTextureCoordinates(point: number[], bounds: number[]) {
77
74
  const [xMin, yMin, xMax, yMax] = bounds;
78
75
  return [(point[0] - xMin) / (xMax - xMin), (point[1] - yMin) / (yMax - yMin)];
79
76
  }
80
-
81
- // Returns format and type for creating texture objects
82
- export function getTextureParams({
83
- device,
84
- floatTargetSupport
85
- }: {
86
- device: Device;
87
- floatTargetSupport?: boolean;
88
- }) {
89
- return floatTargetSupport
90
- ? {
91
- // format: should be RGBA32F on WebGL2 (float textures), RGBA in WebGL1 for float or non float textures
92
- format: device.info.type === 'webgl2' ? GL.RGBA32F : GL.RGBA,
93
- type: GL.FLOAT
94
- }
95
- : {
96
- format: GL.RGBA,
97
- type: GL.UNSIGNED_BYTE
98
- };
99
- }
@@ -24,13 +24,11 @@ import {
24
24
  boundsContain,
25
25
  packVertices,
26
26
  scaleToAspectRatio,
27
- getTextureCoordinates,
28
- getTextureParams
27
+ getTextureCoordinates
29
28
  } from './heatmap-layer-utils';
30
29
  import {Buffer, DeviceFeature, Texture, TextureProps, TextureFormat} from '@luma.gl/core';
31
30
  import {GL} from '@luma.gl/constants';
32
31
  import {TextureTransform, TextureTransformProps} from '@luma.gl/engine';
33
- import {withGLParameters} from '@luma.gl/webgl';
34
32
  import {
35
33
  Accessor,
36
34
  AccessorFunction,
@@ -51,16 +49,16 @@ import AggregationLayer, {AggregationLayerProps} from '../aggregation-layer';
51
49
  import {defaultColorRange, colorRangeToFlatArray} from '../utils/color-utils';
52
50
  import weightsVs from './weights-vs.glsl';
53
51
  import weightsFs from './weights-fs.glsl';
54
- import vsMax from './max-vs.glsl';
55
- import fsMax from './max-fs.glsl';
52
+ import maxVs from './max-vs.glsl';
53
+ import maxFs from './max-fs.glsl';
56
54
 
57
55
  const RESOLUTION = 2; // (number of common space pixels) / (number texels)
58
56
  const TEXTURE_PROPS: TextureProps = {
59
57
  format: 'rgba8unorm',
60
58
  mipmaps: false,
61
59
  sampler: {
62
- minFilter: 'nearest',
63
- magFilter: 'nearest',
60
+ minFilter: 'linear',
61
+ magFilter: 'linear',
64
62
  addressModeU: 'clamp-to-edge',
65
63
  addressModeV: 'clamp-to-edge'
66
64
  }
@@ -205,7 +203,6 @@ export default class HeatmapLayer<
205
203
  maxWeightTransform?: TextureTransform;
206
204
  textureSize: number;
207
205
  format: TextureFormat;
208
- type: GL;
209
206
  weightsScale: number;
210
207
  visibleWorldBounds: number[];
211
208
  viewportCorners: number[][];
@@ -303,7 +300,7 @@ export default class HeatmapLayer<
303
300
  maxTexture: maxWeightsTexture,
304
301
  colorTexture,
305
302
  aggregationMode: AGGREGATION_MODE[aggregation] || 0,
306
- texture: weightsTexture,
303
+ weightsTexture,
307
304
  intensity,
308
305
  threshold,
309
306
  colorDomain
@@ -369,17 +366,21 @@ export default class HeatmapLayer<
369
366
  }
370
367
 
371
368
  _createTextures() {
372
- const {textureSize, format, type} = this.state;
369
+ const {textureSize, format} = this.state;
373
370
 
374
371
  this.setState({
375
372
  weightsTexture: this.context.device.createTexture({
373
+ ...TEXTURE_PROPS,
376
374
  width: textureSize,
377
375
  height: textureSize,
378
- format,
379
- type,
380
- ...TEXTURE_PROPS
376
+ format
381
377
  }),
382
- maxWeightsTexture: this.context.device.createTexture({format, type, ...TEXTURE_PROPS}) // 1 X 1 texture,
378
+ maxWeightsTexture: this.context.device.createTexture({
379
+ ...TEXTURE_PROPS,
380
+ width: 1,
381
+ height: 1,
382
+ format
383
+ })
383
384
  });
384
385
  }
385
386
 
@@ -398,61 +399,71 @@ export default class HeatmapLayer<
398
399
 
399
400
  const textureSize = Math.min(weightsTextureSize, device.limits.maxTextureDimension2D as number);
400
401
  const floatTargetSupport = FLOAT_TARGET_FEATURES.every(feature => device.features.has(feature));
401
- const {format, type} = getTextureParams({device, floatTargetSupport});
402
+ const format: TextureFormat = floatTargetSupport ? 'rgba32float' : 'rgba8unorm';
402
403
  const weightsScale = floatTargetSupport ? 1 : 1 / 255;
403
- this.setState({textureSize, format, type, weightsScale});
404
+ this.setState({textureSize, format, weightsScale});
404
405
  if (!floatTargetSupport) {
405
406
  log.warn(
406
- `HeatmapLayer: ${this.id} rendering to float texture not supported, fallingback to low precession format`
407
+ `HeatmapLayer: ${this.id} rendering to float texture not supported, falling back to low precision format`
407
408
  )();
408
409
  }
409
410
  }
410
411
 
411
- getShaders(type) {
412
- return super.getShaders(
413
- type === 'max-weights-transform'
414
- ? {
415
- vs: vsMax,
416
- _fs: fsMax
417
- }
418
- : {
419
- vs: weightsVs,
420
- _fs: weightsFs
421
- }
422
- );
423
- }
424
-
425
- _createWeightsTransform(shaders = {}) {
412
+ _createWeightsTransform(shaders: {vs: string; fs?: string}) {
426
413
  let {weightsTransform} = this.state;
427
- weightsTransform?.delete();
414
+ const {weightsTexture} = this.state;
415
+ const attributeManager = this.getAttributeManager()!;
428
416
 
417
+ weightsTransform?.destroy();
429
418
  weightsTransform = new TextureTransform(this.context.device, {
430
419
  id: `${this.id}-weights-transform`,
420
+ bufferLayout: attributeManager.getBufferLayouts(),
431
421
  vertexCount: 1,
432
- targetTexture: this.state.weightsTexture!,
433
- targetTextureVarying: 'weightsTexture',
422
+ targetTexture: weightsTexture!,
423
+ parameters: {
424
+ depthWriteEnabled: false,
425
+ blendColorOperation: 'add',
426
+ blendColorSrcFactor: 'one',
427
+ blendColorDstFactor: 'one',
428
+ blendAlphaSrcFactor: 'one',
429
+ blendAlphaDstFactor: 'one'
430
+ },
431
+ topology: 'point-list',
434
432
  ...shaders
435
433
  } as TextureTransformProps);
434
+
436
435
  this.setState({weightsTransform});
437
436
  }
438
437
 
439
438
  _setupResources() {
440
439
  this._createTextures();
440
+ const {device} = this.context;
441
441
  const {textureSize, weightsTexture, maxWeightsTexture} = this.state;
442
442
 
443
- const weightsTransformShaders = this.getShaders('weights-transform');
443
+ const weightsTransformShaders = this.getShaders({
444
+ vs: weightsVs,
445
+ fs: weightsFs
446
+ });
444
447
  this._createWeightsTransform(weightsTransformShaders);
445
448
 
446
- const maxWeightsTransformShaders = this.getShaders('max-weights-transform');
447
- const maxWeightTransform = new TextureTransform(this.context.device, {
449
+ const maxWeightsTransformShaders = this.getShaders({vs: maxVs, fs: maxFs});
450
+ const maxWeightTransform = new TextureTransform(device, {
448
451
  id: `${this.id}-max-weights-transform`,
449
- _sourceTextures: {
450
- inTexture: weightsTexture
451
- },
452
- _targetTexture: maxWeightsTexture,
453
- _targetTextureVarying: 'outTexture',
452
+ bindings: {inTexture: weightsTexture},
453
+ uniforms: {textureSize},
454
+ targetTexture: maxWeightsTexture,
454
455
  ...maxWeightsTransformShaders,
455
- elementCount: textureSize * textureSize
456
+ vertexCount: textureSize * textureSize,
457
+ topology: 'point-list',
458
+ parameters: {
459
+ depthWriteEnabled: false,
460
+ blendColorOperation: 'max',
461
+ blendAlphaOperation: 'max',
462
+ blendColorSrcFactor: 'one',
463
+ blendColorDstFactor: 'one',
464
+ blendAlphaSrcFactor: 'one',
465
+ blendAlphaDstFactor: 'one'
466
+ }
456
467
  });
457
468
 
458
469
  this.setState({
@@ -460,35 +471,27 @@ export default class HeatmapLayer<
460
471
  maxWeightsTexture,
461
472
  maxWeightTransform,
462
473
  zoom: null,
463
- triPositionBuffer: this.context.device.createBuffer({
464
- byteLength: 48,
465
- // @ts-expect-error
466
- accessor: {size: 3}
467
- }),
468
- triTexCoordBuffer: this.context.device.createBuffer({
469
- byteLength: 48,
470
- // @ts-expect-error
471
- accessor: {size: 2}
472
- })
474
+ triPositionBuffer: device.createBuffer({byteLength: 48}),
475
+ triTexCoordBuffer: device.createBuffer({byteLength: 48})
473
476
  });
474
477
  }
475
478
 
476
479
  // overwrite super class method to update transform model
477
480
  updateShaders(shaderOptions) {
478
- // sahder params (modules, injects) changed, update model object
479
- this._createWeightsTransform(shaderOptions);
481
+ // shader params (modules, injects) changed, update model object
482
+ this._createWeightsTransform({
483
+ vs: weightsVs,
484
+ fs: weightsFs,
485
+ ...shaderOptions
486
+ });
480
487
  }
481
488
 
482
489
  _updateMaxWeightValue() {
483
- const {maxWeightTransform} = this.state;
490
+ const {maxWeightTransform, textureSize} = this.state;
491
+
484
492
  maxWeightTransform!.run({
485
- parameters: {
486
- // @ts-expect-error TODO(v9): Resolve errors.
487
- blend: true,
488
- depthTest: false,
489
- blendFunc: [GL.ONE, GL.ONE],
490
- blendEquation: GL.MAX
491
- }
493
+ parameters: {viewport: [0, 0, 1, 1]},
494
+ clearColor: [0, 0, 0, 0]
492
495
  });
493
496
  }
494
497
 
@@ -563,18 +566,16 @@ export default class HeatmapLayer<
563
566
  let {colorTexture} = this.state;
564
567
  const colors = colorRangeToFlatArray(colorRange, false, Uint8Array as any);
565
568
 
566
- if (colorTexture) {
567
- // @ts-expect-error TODO - no longer supported in v9?
568
- colorTexture.setImageData({
569
- data: colors,
570
- width: colorRange.length
571
- });
569
+ if (colorTexture && colorTexture?.width === colorRange.length) {
570
+ // TODO(v9): Unclear whether `setSubImageData` is a public API, or what to use if not.
571
+ (colorTexture as any).setSubImageData({data: colors});
572
572
  } else {
573
+ colorTexture?.destroy();
573
574
  colorTexture = this.context.device.createTexture({
575
+ ...TEXTURE_PROPS,
574
576
  data: colors,
575
577
  width: colorRange.length,
576
- height: 1,
577
- ...TEXTURE_PROPS
578
+ height: 1
578
579
  });
579
580
  }
580
581
  this.setState({colorTexture});
@@ -602,41 +603,22 @@ export default class HeatmapLayer<
602
603
  this.state.colorDomain = colorDomain || DEFAULT_COLOR_DOMAIN;
603
604
  }
604
605
 
605
- const uniforms = {
606
- radiusPixels,
607
- commonBounds,
608
- textureWidth: textureSize,
609
- weightsScale
610
- };
611
- // Attribute manager sets data array count as instaceCount on model
612
- // we need to set that as elementCount on 'weightsTransform'
613
- weightsTransform.update({
614
- elementCount: this.getNumInstances()
615
- });
616
- // Need to explictly specify clearColor as external context may have modified it
617
- withGLParameters(this.context.gl, {clearColor: [0, 0, 0, 0]}, () => {
618
- weightsTransform.run({
619
- uniforms,
620
- parameters: {
621
- // @ts-expect-error TODO(v9): Resolve errors.
622
- blend: true,
623
- depthTest: false,
624
- blendFunc: [GL.ONE, GL.ONE],
625
- blendEquation: GL.FUNC_ADD
626
- },
627
- clearRenderTarget: true,
628
- attributes: this.getAttributes(),
629
- moduleSettings: this.getModuleSettings()
630
- });
606
+ const attributeManager = this.getAttributeManager()!;
607
+ const attributes = attributeManager.getAttributes();
608
+ const moduleSettings = this.getModuleSettings();
609
+ const positions = attributes.positions.buffer;
610
+ const uniforms = {radiusPixels, commonBounds, textureWidth: textureSize, weightsScale};
611
+ const weights = attributes.weights.buffer;
612
+ weightsTransform.model.setAttributes({positions, weights});
613
+ weightsTransform.model.setVertexCount(this.getNumInstances());
614
+ weightsTransform.model.setUniforms(uniforms);
615
+ weightsTransform.model.updateModuleSettings(moduleSettings);
616
+ weightsTransform.run({
617
+ parameters: {viewport: [0, 0, textureSize, textureSize]},
618
+ clearColor: [0, 0, 0, 0]
631
619
  });
632
- this._updateMaxWeightValue();
633
620
 
634
- // reset filtering parameters (TODO: remove once luma issue#1193 is fixed)
635
- // TODO v9 sampler support in luma.gl needs to improve
636
- // weightsTexture.setSampler({
637
- // magFilter: 'linear',
638
- // minFilter: 'linear'
639
- // });
621
+ this._updateMaxWeightValue();
640
622
  }
641
623
 
642
624
  _debouncedUpdateWeightmap(fromTimer = false) {
@@ -1,13 +1,19 @@
1
1
  export default `\
2
2
  #version 300 es
3
- in vec4 inTexture;
3
+ uniform sampler2D inTexture;
4
+ uniform float textureSize;
4
5
  out vec4 outTexture;
5
6
 
6
7
  void main()
7
8
  {
8
- outTexture = inTexture;
9
- gl_Position = vec4(0, 0, 0, 1.);
10
- // Enforce default value for ANGLE issue (https://bugs.chromium.org/p/angleproject/issues/detail?id=3941)
11
- gl_PointSize = 1.0;
9
+ // Sample every pixel in texture
10
+ int yIndex = gl_VertexID / int(textureSize);
11
+ int xIndex = gl_VertexID - (yIndex * int(textureSize));
12
+ vec2 uv = (0.5 + vec2(float(xIndex), float(yIndex))) / textureSize;
13
+ outTexture = texture(inTexture, uv);
14
+
15
+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
16
+ // Enforce default value for ANGLE issue (https://bugs.chromium.org/p/angleproject/issues/detail?id=3941)
17
+ gl_PointSize = 1.0;
12
18
  }
13
19
  `;
@@ -25,7 +25,7 @@ export default `\
25
25
  precision highp float;
26
26
 
27
27
  uniform float opacity;
28
- uniform sampler2D texture;
28
+ uniform sampler2D weightsTexture;
29
29
  uniform sampler2D colorTexture;
30
30
  uniform float aggregationMode;
31
31
 
@@ -43,7 +43,7 @@ vec4 getLinearColor(float value) {
43
43
  }
44
44
 
45
45
  void main(void) {
46
- vec4 weights = texture(texture, vTexCoords);
46
+ vec4 weights = texture(weightsTexture, vTexCoords);
47
47
  float weight = weights.r;
48
48
 
49
49
  if (aggregationMode > 0.5) {
@@ -18,13 +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';
21
+ import type {Buffer, Device, Texture} from '@luma.gl/core';
22
+ import {Model} from '@luma.gl/engine';
23
23
  import {Layer, LayerContext, project32} from '@deck.gl/core';
24
24
  import vs from './triangle-layer-vertex.glsl';
25
25
  import fs from './triangle-layer-fragment.glsl';
26
26
 
27
27
  type _TriangleLayerProps = {
28
+ data: {attributes: {positions: Buffer; texCoords: Buffer}};
28
29
  colorDomain: number[];
29
30
  aggregationMode: string;
30
31
  threshold: number;
@@ -32,7 +33,7 @@ type _TriangleLayerProps = {
32
33
  vertexCount: number;
33
34
  colorTexture: Texture;
34
35
  maxTexture: Texture;
35
- texture: Texture;
36
+ weightsTexture: Texture;
36
37
  };
37
38
 
38
39
  export default class TriangleLayer extends Layer<_TriangleLayerProps> {
@@ -40,6 +41,8 @@ export default class TriangleLayer extends Layer<_TriangleLayerProps> {
40
41
 
41
42
  state!: {
42
43
  model: Model;
44
+ positions: Buffer;
45
+ texCoords: Buffer;
43
46
  };
44
47
 
45
48
  getShaders() {
@@ -47,40 +50,31 @@ export default class TriangleLayer extends Layer<_TriangleLayerProps> {
47
50
  }
48
51
 
49
52
  initializeState({device}: LayerContext): void {
50
- const attributeManager = this.getAttributeManager()!;
51
- attributeManager.add({
52
- positions: {size: 3, noAlloc: true},
53
- texCoords: {size: 2, noAlloc: true}
54
- });
55
- this.setState({
56
- model: this._getModel(device)
57
- });
53
+ this.setState({model: this._getModel(device)});
58
54
  }
59
55
 
60
56
  _getModel(device: Device): Model {
61
- const {vertexCount} = this.props;
57
+ const {vertexCount, data, weightsTexture, maxTexture, colorTexture} = this.props;
62
58
 
63
59
  return new Model(device, {
64
60
  ...this.getShaders(),
65
61
  id: this.props.id,
66
- geometry: new Geometry({
67
- topology: 'triangle-fan-webgl',
68
- vertexCount
69
- })
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
70
70
  });
71
71
  }
72
72
 
73
73
  draw({uniforms}): void {
74
74
  const {model} = this.state;
75
-
76
- const {texture, maxTexture, colorTexture, intensity, threshold, aggregationMode, colorDomain} =
77
- this.props;
78
-
75
+ const {intensity, threshold, aggregationMode, colorDomain} = this.props;
79
76
  model.setUniforms({
80
77
  ...uniforms,
81
- texture,
82
- maxTexture,
83
- colorTexture,
84
78
  intensity,
85
79
  threshold,
86
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
  `;
@@ -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
 
@@ -302,26 +301,26 @@ export default class GPUGridAggregator {
302
301
  results[id] = {};
303
302
  const {needMin, needMax, combineMaxMin} = weights[id];
304
303
  results[id].aggregationTexture = textures[id];
305
- results[id].aggregationBuffer = readPixelsToBuffer(framebuffers[id], {
304
+ results[id].aggregationBuffer = this.device.readPixelsToBufferWebGL(framebuffers[id], {
306
305
  target: weights[id].aggregationBuffer, // update if a buffer is provided
307
306
  sourceType: GL.FLOAT
308
307
  });
309
308
  if (needMin && needMax && combineMaxMin) {
310
- results[id].maxMinBuffer = readPixelsToBuffer(maxMinFramebuffers[id], {
309
+ results[id].maxMinBuffer = this.device.readPixelsToBufferWebGL(maxMinFramebuffers[id], {
311
310
  target: weights[id].maxMinBuffer, // update if a buffer is provided
312
311
  sourceType: GL.FLOAT
313
312
  });
314
313
  results[id].maxMinTexture = resources[`${id}-maxMinTexture`];
315
314
  } else {
316
315
  if (needMin) {
317
- results[id].minBuffer = readPixelsToBuffer(minFramebuffers[id], {
316
+ results[id].minBuffer = this.device.readPixelsToBufferWebGL(minFramebuffers[id], {
318
317
  target: weights[id].minBuffer, // update if a buffer is provided
319
318
  sourceType: GL.FLOAT
320
319
  });
321
320
  results[id].minTexture = resources[`${id}-minTexture`];
322
321
  }
323
322
  if (needMax) {
324
- results[id].maxBuffer = readPixelsToBuffer(maxFramebuffers[id], {
323
+ results[id].maxBuffer = this.device.readPixelsToBufferWebGL(maxFramebuffers[id], {
325
324
  target: weights[id].maxBuffer, // update if a buffer is provided
326
325
  sourceType: GL.FLOAT
327
326
  });
@@ -413,15 +412,14 @@ export default class GPUGridAggregator {
413
412
  const {framebuffers} = this.state;
414
413
  const {allAggregationModel} = this;
415
414
 
416
- withGLParameters(
417
- this.device,
415
+ this.device.withParametersWebGL(
418
416
  {
419
417
  ...clearParams,
420
418
  framebuffer: minOrMaxFb,
421
419
  viewport: [0, 0, gridSize[0], gridSize[1]]
422
420
  },
423
421
  () => {
424
- clear(this.device, {color: true});
422
+ this.device.clearWebGL({color: true});
425
423
 
426
424
  // allAggregationModel.setParameters(parameters);
427
425
  allAggregationModel.setUniforms({gridSize, combineMaxMin});
@@ -444,15 +442,14 @@ export default class GPUGridAggregator {
444
442
  operation === AGGREGATION_OPERATION.MIN
445
443
  ? [MAX_32_BIT_FLOAT, MAX_32_BIT_FLOAT, MAX_32_BIT_FLOAT, 0]
446
444
  : [0, 0, 0, 0];
447
- withGLParameters(
448
- this.device,
445
+ this.device.withParametersWebGL(
449
446
  {
450
447
  framebuffer: framebuffers[id],
451
448
  viewport: [0, 0, gridSize[0], gridSize[1]],
452
449
  clearColor
453
450
  },
454
451
  () => {
455
- clear(this.device, {color: true});
452
+ this.device.clearWebGL({color: true});
456
453
 
457
454
  const attributes = {weights: weightAttributes[id]};
458
455
  gridAggregationModel.draw({
@@ -483,7 +480,7 @@ export default class GPUGridAggregator {
483
480
  }
484
481
  });
485
482
 
486
- // update framebuffer with mean results so readPixelsToBuffer returns mean values
483
+ // update framebuffer with mean results so device.readPixelsToBufferWebGL returns mean values
487
484
  framebuffers[id].attach({[GL.COLOR_ATTACHMENT0]: textures[id]});
488
485
  }
489
486
  }
@@ -607,7 +604,7 @@ export default class GPUGridAggregator {
607
604
  if (results[id]) {
608
605
  for (const bufferName of BUFFER_NAMES) {
609
606
  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
607
+ // No result buffer is provided in weights object, `device.readPixelsToBufferWebGL` has created a new Buffer object
611
608
  // collect the new buffer for garabge collection
612
609
  const name = `gpu-result-${id}-${bufferName}`;
613
610
  if (resources[name]) {