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

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 (53) hide show
  1. package/dist/contour-layer/contour-layer.d.ts.map +1 -1
  2. package/dist/contour-layer/contour-layer.js +2 -3
  3. package/dist/cpu-grid-layer/cpu-grid-layer.d.ts.map +1 -1
  4. package/dist/cpu-grid-layer/cpu-grid-layer.js +1 -2
  5. package/dist/dist.dev.js +228 -314
  6. package/dist/gpu-grid-layer/gpu-grid-cell-layer-fragment.glsl.js +2 -6
  7. package/dist/gpu-grid-layer/gpu-grid-cell-layer-vertex.glsl.js +50 -79
  8. package/dist/gpu-grid-layer/gpu-grid-cell-layer.js +4 -4
  9. package/dist/gpu-grid-layer/gpu-grid-layer.d.ts +1 -1
  10. package/dist/gpu-grid-layer/gpu-grid-layer.d.ts.map +1 -1
  11. package/dist/gpu-grid-layer/gpu-grid-layer.js +4 -4
  12. package/dist/grid-aggregation-layer.js +1 -1
  13. package/dist/heatmap-layer/heatmap-layer.d.ts +0 -1
  14. package/dist/heatmap-layer/heatmap-layer.d.ts.map +1 -1
  15. package/dist/heatmap-layer/heatmap-layer.js +4 -20
  16. package/dist/heatmap-layer/max-fs.glsl.js +2 -2
  17. package/dist/heatmap-layer/max-vs.glsl.js +6 -10
  18. package/dist/heatmap-layer/triangle-layer-fragment.glsl.js +15 -25
  19. package/dist/heatmap-layer/triangle-layer-vertex.glsl.js +11 -16
  20. package/dist/heatmap-layer/weights-fs.glsl.js +7 -11
  21. package/dist/heatmap-layer/weights-vs.glsl.js +7 -12
  22. package/dist/hexagon-layer/hexagon-layer.d.ts +1 -1
  23. package/dist/hexagon-layer/hexagon-layer.d.ts.map +1 -1
  24. package/dist/hexagon-layer/hexagon-layer.js +1 -2
  25. package/dist/index.cjs +223 -390
  26. package/dist/index.cjs.map +3 -3
  27. package/dist/screen-grid-layer/screen-grid-cell-layer.d.ts +1 -2
  28. package/dist/screen-grid-layer/screen-grid-cell-layer.d.ts.map +1 -1
  29. package/dist/screen-grid-layer/screen-grid-cell-layer.js +0 -3
  30. package/dist/screen-grid-layer/screen-grid-layer-fragment.glsl.js +5 -10
  31. package/dist/screen-grid-layer/screen-grid-layer-vertex.glsl.js +30 -42
  32. package/dist/screen-grid-layer/screen-grid-layer.d.ts +0 -3
  33. package/dist/screen-grid-layer/screen-grid-layer.d.ts.map +1 -1
  34. package/dist/screen-grid-layer/screen-grid-layer.js +1 -8
  35. package/dist/utils/gpu-grid-aggregation/aggregate-all-fs.glsl.js +6 -9
  36. package/dist/utils/gpu-grid-aggregation/aggregate-all-vs.glsl.js +14 -25
  37. package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-fs.glsl.js +2 -6
  38. package/dist/utils/gpu-grid-aggregation/aggregate-to-grid-vs.glsl.js +25 -42
  39. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator-constants.js +8 -8
  40. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator.d.ts.map +1 -1
  41. package/dist/utils/gpu-grid-aggregation/gpu-grid-aggregator.js +13 -24
  42. package/dist/utils/gpu-grid-aggregation/transform-mean-vs.glsl.js +4 -9
  43. package/dist.min.js +298 -450
  44. package/package.json +8 -10
  45. package/src/contour-layer/contour-layer.ts +2 -3
  46. package/src/cpu-grid-layer/cpu-grid-layer.ts +1 -2
  47. package/src/gpu-grid-layer/gpu-grid-cell-layer.ts +1 -1
  48. package/src/gpu-grid-layer/gpu-grid-layer.ts +2 -2
  49. package/src/heatmap-layer/heatmap-layer.ts +5 -23
  50. package/src/hexagon-layer/hexagon-layer.ts +2 -3
  51. package/src/screen-grid-layer/screen-grid-cell-layer.ts +0 -4
  52. package/src/screen-grid-layer/screen-grid-layer.ts +1 -11
  53. package/src/utils/gpu-grid-aggregation/gpu-grid-aggregator.ts +4 -15
package/dist/dist.dev.js CHANGED
@@ -86,8 +86,185 @@ var __exports__ = (() => {
86
86
  // src/screen-grid-layer/screen-grid-layer.ts
87
87
  var import_core8 = __toESM(require_core(), 1);
88
88
 
89
- // ../../node_modules/@luma.gl/constants/dist/constants-enum.js
90
- var GLEnum = function(GLEnum2) {
89
+ // src/utils/gpu-grid-aggregation/gpu-grid-aggregator.ts
90
+ var import_engine = __toESM(require_engine(), 1);
91
+
92
+ // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64-utils.js
93
+ function fp64ify(a, out = [], startIndex = 0) {
94
+ const hiPart = Math.fround(a);
95
+ const loPart = a - hiPart;
96
+ out[startIndex] = hiPart;
97
+ out[startIndex + 1] = loPart;
98
+ return out;
99
+ }
100
+ function fp64LowPart(a) {
101
+ return a - Math.fround(a);
102
+ }
103
+ function fp64ifyMatrix4(matrix) {
104
+ const matrixFP64 = new Float32Array(32);
105
+ for (let i = 0; i < 4; ++i) {
106
+ for (let j = 0; j < 4; ++j) {
107
+ const index = i * 4 + j;
108
+ fp64ify(matrix[j * 4 + i], matrixFP64, index * 2);
109
+ }
110
+ }
111
+ return matrixFP64;
112
+ }
113
+
114
+ // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64-arithmetic-glsl.js
115
+ var fp64arithmeticShader = `uniform float ONE;
116
+ vec2 split(float a) {
117
+ const float SPLIT = 4097.0;
118
+ float t = a * SPLIT;
119
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
120
+ float a_hi = t * ONE - (t - a);
121
+ float a_lo = a * ONE - a_hi;
122
+ #else
123
+ float a_hi = t - (t - a);
124
+ float a_lo = a - a_hi;
125
+ #endif
126
+ return vec2(a_hi, a_lo);
127
+ }
128
+ vec2 split2(vec2 a) {
129
+ vec2 b = split(a.x);
130
+ b.y += a.y;
131
+ return b;
132
+ }
133
+ vec2 quickTwoSum(float a, float b) {
134
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
135
+ float sum = (a + b) * ONE;
136
+ float err = b - (sum - a) * ONE;
137
+ #else
138
+ float sum = a + b;
139
+ float err = b - (sum - a);
140
+ #endif
141
+ return vec2(sum, err);
142
+ }
143
+ vec2 twoSum(float a, float b) {
144
+ float s = (a + b);
145
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
146
+ float v = (s * ONE - a) * ONE;
147
+ float err = (a - (s - v) * ONE) * ONE * ONE * ONE + (b - v);
148
+ #else
149
+ float v = s - a;
150
+ float err = (a - (s - v)) + (b - v);
151
+ #endif
152
+ return vec2(s, err);
153
+ }
154
+ vec2 twoSub(float a, float b) {
155
+ float s = (a - b);
156
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
157
+ float v = (s * ONE - a) * ONE;
158
+ float err = (a - (s - v) * ONE) * ONE * ONE * ONE - (b + v);
159
+ #else
160
+ float v = s - a;
161
+ float err = (a - (s - v)) - (b + v);
162
+ #endif
163
+ return vec2(s, err);
164
+ }
165
+ vec2 twoSqr(float a) {
166
+ float prod = a * a;
167
+ vec2 a_fp64 = split(a);
168
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
169
+ float err = ((a_fp64.x * a_fp64.x - prod) * ONE + 2.0 * a_fp64.x *
170
+ a_fp64.y * ONE * ONE) + a_fp64.y * a_fp64.y * ONE * ONE * ONE;
171
+ #else
172
+ float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y;
173
+ #endif
174
+ return vec2(prod, err);
175
+ }
176
+ vec2 twoProd(float a, float b) {
177
+ float prod = a * b;
178
+ vec2 a_fp64 = split(a);
179
+ vec2 b_fp64 = split(b);
180
+ float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y +
181
+ a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y;
182
+ return vec2(prod, err);
183
+ }
184
+ vec2 sum_fp64(vec2 a, vec2 b) {
185
+ vec2 s, t;
186
+ s = twoSum(a.x, b.x);
187
+ t = twoSum(a.y, b.y);
188
+ s.y += t.x;
189
+ s = quickTwoSum(s.x, s.y);
190
+ s.y += t.y;
191
+ s = quickTwoSum(s.x, s.y);
192
+ return s;
193
+ }
194
+ vec2 sub_fp64(vec2 a, vec2 b) {
195
+ vec2 s, t;
196
+ s = twoSub(a.x, b.x);
197
+ t = twoSub(a.y, b.y);
198
+ s.y += t.x;
199
+ s = quickTwoSum(s.x, s.y);
200
+ s.y += t.y;
201
+ s = quickTwoSum(s.x, s.y);
202
+ return s;
203
+ }
204
+ vec2 mul_fp64(vec2 a, vec2 b) {
205
+ vec2 prod = twoProd(a.x, b.x);
206
+ prod.y += a.x * b.y;
207
+ #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
208
+ prod = split2(prod);
209
+ #endif
210
+ prod = quickTwoSum(prod.x, prod.y);
211
+ prod.y += a.y * b.x;
212
+ #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
213
+ prod = split2(prod);
214
+ #endif
215
+ prod = quickTwoSum(prod.x, prod.y);
216
+ return prod;
217
+ }
218
+ vec2 div_fp64(vec2 a, vec2 b) {
219
+ float xn = 1.0 / b.x;
220
+ #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
221
+ vec2 yn = mul_fp64(a, vec2(xn, 0));
222
+ #else
223
+ vec2 yn = a * xn;
224
+ #endif
225
+ float diff = (sub_fp64(a, mul_fp64(b, yn))).x;
226
+ vec2 prod = twoProd(xn, diff);
227
+ return sum_fp64(yn, prod);
228
+ }
229
+ vec2 sqrt_fp64(vec2 a) {
230
+ if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0);
231
+ if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);
232
+ float x = 1.0 / sqrt(a.x);
233
+ float yn = a.x * x;
234
+ #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
235
+ vec2 yn_sqr = twoSqr(yn) * ONE;
236
+ #else
237
+ vec2 yn_sqr = twoSqr(yn);
238
+ #endif
239
+ float diff = sub_fp64(a, yn_sqr).x;
240
+ vec2 prod = twoProd(x * 0.5, diff);
241
+ #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
242
+ return sum_fp64(split(yn), prod);
243
+ #else
244
+ return sum_fp64(vec2(yn, 0.0), prod);
245
+ #endif
246
+ }
247
+ `;
248
+
249
+ // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64.js
250
+ var CONST_UNIFORMS = {
251
+ ONE: 1
252
+ };
253
+ function getUniforms() {
254
+ return CONST_UNIFORMS;
255
+ }
256
+ var fp64arithmetic = {
257
+ name: "fp64-arithmetic",
258
+ vs: fp64arithmeticShader,
259
+ getUniforms,
260
+ fp64ify,
261
+ fp64LowPart,
262
+ fp64ifyMatrix4
263
+ };
264
+
265
+ // ../../node_modules/@luma.gl/constants/dist/webgl-constants.js
266
+ var GLEnum;
267
+ (function(GLEnum2) {
91
268
  GLEnum2[GLEnum2["DEPTH_BUFFER_BIT"] = 256] = "DEPTH_BUFFER_BIT";
92
269
  GLEnum2[GLEnum2["STENCIL_BUFFER_BIT"] = 1024] = "STENCIL_BUFFER_BIT";
93
270
  GLEnum2[GLEnum2["COLOR_BUFFER_BIT"] = 16384] = "COLOR_BUFFER_BIT";
@@ -620,15 +797,10 @@ var __exports__ = (() => {
620
797
  GLEnum2[GLEnum2["INVALID_INDEX"] = 4294967295] = "INVALID_INDEX";
621
798
  GLEnum2[GLEnum2["TIMEOUT_IGNORED"] = -1] = "TIMEOUT_IGNORED";
622
799
  GLEnum2[GLEnum2["MAX_CLIENT_WAIT_TIMEOUT_WEBGL"] = 37447] = "MAX_CLIENT_WAIT_TIMEOUT_WEBGL";
623
- GLEnum2[GLEnum2["VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE"] = 35070] = "VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE";
624
800
  GLEnum2[GLEnum2["UNMASKED_VENDOR_WEBGL"] = 37445] = "UNMASKED_VENDOR_WEBGL";
625
801
  GLEnum2[GLEnum2["UNMASKED_RENDERER_WEBGL"] = 37446] = "UNMASKED_RENDERER_WEBGL";
626
802
  GLEnum2[GLEnum2["MAX_TEXTURE_MAX_ANISOTROPY_EXT"] = 34047] = "MAX_TEXTURE_MAX_ANISOTROPY_EXT";
627
803
  GLEnum2[GLEnum2["TEXTURE_MAX_ANISOTROPY_EXT"] = 34046] = "TEXTURE_MAX_ANISOTROPY_EXT";
628
- GLEnum2[GLEnum2["SRGB_EXT"] = 35904] = "SRGB_EXT";
629
- GLEnum2[GLEnum2["SRGB_ALPHA_EXT"] = 35906] = "SRGB_ALPHA_EXT";
630
- GLEnum2[GLEnum2["SRGB8_ALPHA8_EXT"] = 35907] = "SRGB8_ALPHA8_EXT";
631
- GLEnum2[GLEnum2["FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT"] = 33296] = "FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT";
632
804
  GLEnum2[GLEnum2["R16_EXT"] = 33322] = "R16_EXT";
633
805
  GLEnum2[GLEnum2["RG16_EXT"] = 33324] = "RG16_EXT";
634
806
  GLEnum2[GLEnum2["RGB16_EXT"] = 32852] = "RGB16_EXT";
@@ -699,50 +871,6 @@ var __exports__ = (() => {
699
871
  GLEnum2[GLEnum2["COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"] = 37851] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR";
700
872
  GLEnum2[GLEnum2["COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"] = 37852] = "COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR";
701
873
  GLEnum2[GLEnum2["COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"] = 37853] = "COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR";
702
- GLEnum2[GLEnum2["UNSIGNED_INT_24_8_WEBGL"] = 34042] = "UNSIGNED_INT_24_8_WEBGL";
703
- GLEnum2[GLEnum2["HALF_FLOAT_OES"] = 36193] = "HALF_FLOAT_OES";
704
- GLEnum2[GLEnum2["RGBA32F_EXT"] = 34836] = "RGBA32F_EXT";
705
- GLEnum2[GLEnum2["RGB32F_EXT"] = 34837] = "RGB32F_EXT";
706
- GLEnum2[GLEnum2["FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT"] = 33297] = "FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT";
707
- GLEnum2[GLEnum2["UNSIGNED_NORMALIZED_EXT"] = 35863] = "UNSIGNED_NORMALIZED_EXT";
708
- GLEnum2[GLEnum2["MIN_EXT"] = 32775] = "MIN_EXT";
709
- GLEnum2[GLEnum2["MAX_EXT"] = 32776] = "MAX_EXT";
710
- GLEnum2[GLEnum2["FRAGMENT_SHADER_DERIVATIVE_HINT_OES"] = 35723] = "FRAGMENT_SHADER_DERIVATIVE_HINT_OES";
711
- GLEnum2[GLEnum2["COLOR_ATTACHMENT0_WEBGL"] = 36064] = "COLOR_ATTACHMENT0_WEBGL";
712
- GLEnum2[GLEnum2["COLOR_ATTACHMENT1_WEBGL"] = 36065] = "COLOR_ATTACHMENT1_WEBGL";
713
- GLEnum2[GLEnum2["COLOR_ATTACHMENT2_WEBGL"] = 36066] = "COLOR_ATTACHMENT2_WEBGL";
714
- GLEnum2[GLEnum2["COLOR_ATTACHMENT3_WEBGL"] = 36067] = "COLOR_ATTACHMENT3_WEBGL";
715
- GLEnum2[GLEnum2["COLOR_ATTACHMENT4_WEBGL"] = 36068] = "COLOR_ATTACHMENT4_WEBGL";
716
- GLEnum2[GLEnum2["COLOR_ATTACHMENT5_WEBGL"] = 36069] = "COLOR_ATTACHMENT5_WEBGL";
717
- GLEnum2[GLEnum2["COLOR_ATTACHMENT6_WEBGL"] = 36070] = "COLOR_ATTACHMENT6_WEBGL";
718
- GLEnum2[GLEnum2["COLOR_ATTACHMENT7_WEBGL"] = 36071] = "COLOR_ATTACHMENT7_WEBGL";
719
- GLEnum2[GLEnum2["COLOR_ATTACHMENT8_WEBGL"] = 36072] = "COLOR_ATTACHMENT8_WEBGL";
720
- GLEnum2[GLEnum2["COLOR_ATTACHMENT9_WEBGL"] = 36073] = "COLOR_ATTACHMENT9_WEBGL";
721
- GLEnum2[GLEnum2["COLOR_ATTACHMENT10_WEBGL"] = 36074] = "COLOR_ATTACHMENT10_WEBGL";
722
- GLEnum2[GLEnum2["COLOR_ATTACHMENT11_WEBGL"] = 36075] = "COLOR_ATTACHMENT11_WEBGL";
723
- GLEnum2[GLEnum2["COLOR_ATTACHMENT12_WEBGL"] = 36076] = "COLOR_ATTACHMENT12_WEBGL";
724
- GLEnum2[GLEnum2["COLOR_ATTACHMENT13_WEBGL"] = 36077] = "COLOR_ATTACHMENT13_WEBGL";
725
- GLEnum2[GLEnum2["COLOR_ATTACHMENT14_WEBGL"] = 36078] = "COLOR_ATTACHMENT14_WEBGL";
726
- GLEnum2[GLEnum2["COLOR_ATTACHMENT15_WEBGL"] = 36079] = "COLOR_ATTACHMENT15_WEBGL";
727
- GLEnum2[GLEnum2["DRAW_BUFFER0_WEBGL"] = 34853] = "DRAW_BUFFER0_WEBGL";
728
- GLEnum2[GLEnum2["DRAW_BUFFER1_WEBGL"] = 34854] = "DRAW_BUFFER1_WEBGL";
729
- GLEnum2[GLEnum2["DRAW_BUFFER2_WEBGL"] = 34855] = "DRAW_BUFFER2_WEBGL";
730
- GLEnum2[GLEnum2["DRAW_BUFFER3_WEBGL"] = 34856] = "DRAW_BUFFER3_WEBGL";
731
- GLEnum2[GLEnum2["DRAW_BUFFER4_WEBGL"] = 34857] = "DRAW_BUFFER4_WEBGL";
732
- GLEnum2[GLEnum2["DRAW_BUFFER5_WEBGL"] = 34858] = "DRAW_BUFFER5_WEBGL";
733
- GLEnum2[GLEnum2["DRAW_BUFFER6_WEBGL"] = 34859] = "DRAW_BUFFER6_WEBGL";
734
- GLEnum2[GLEnum2["DRAW_BUFFER7_WEBGL"] = 34860] = "DRAW_BUFFER7_WEBGL";
735
- GLEnum2[GLEnum2["DRAW_BUFFER8_WEBGL"] = 34861] = "DRAW_BUFFER8_WEBGL";
736
- GLEnum2[GLEnum2["DRAW_BUFFER9_WEBGL"] = 34862] = "DRAW_BUFFER9_WEBGL";
737
- GLEnum2[GLEnum2["DRAW_BUFFER10_WEBGL"] = 34863] = "DRAW_BUFFER10_WEBGL";
738
- GLEnum2[GLEnum2["DRAW_BUFFER11_WEBGL"] = 34864] = "DRAW_BUFFER11_WEBGL";
739
- GLEnum2[GLEnum2["DRAW_BUFFER12_WEBGL"] = 34865] = "DRAW_BUFFER12_WEBGL";
740
- GLEnum2[GLEnum2["DRAW_BUFFER13_WEBGL"] = 34866] = "DRAW_BUFFER13_WEBGL";
741
- GLEnum2[GLEnum2["DRAW_BUFFER14_WEBGL"] = 34867] = "DRAW_BUFFER14_WEBGL";
742
- GLEnum2[GLEnum2["DRAW_BUFFER15_WEBGL"] = 34868] = "DRAW_BUFFER15_WEBGL";
743
- GLEnum2[GLEnum2["MAX_COLOR_ATTACHMENTS_WEBGL"] = 36063] = "MAX_COLOR_ATTACHMENTS_WEBGL";
744
- GLEnum2[GLEnum2["MAX_DRAW_BUFFERS_WEBGL"] = 34852] = "MAX_DRAW_BUFFERS_WEBGL";
745
- GLEnum2[GLEnum2["VERTEX_ARRAY_BINDING_OES"] = 34229] = "VERTEX_ARRAY_BINDING_OES";
746
874
  GLEnum2[GLEnum2["QUERY_COUNTER_BITS_EXT"] = 34916] = "QUERY_COUNTER_BITS_EXT";
747
875
  GLEnum2[GLEnum2["CURRENT_QUERY_EXT"] = 34917] = "CURRENT_QUERY_EXT";
748
876
  GLEnum2[GLEnum2["QUERY_RESULT_EXT"] = 34918] = "QUERY_RESULT_EXT";
@@ -750,223 +878,40 @@ var __exports__ = (() => {
750
878
  GLEnum2[GLEnum2["TIME_ELAPSED_EXT"] = 35007] = "TIME_ELAPSED_EXT";
751
879
  GLEnum2[GLEnum2["TIMESTAMP_EXT"] = 36392] = "TIMESTAMP_EXT";
752
880
  GLEnum2[GLEnum2["GPU_DISJOINT_EXT"] = 36795] = "GPU_DISJOINT_EXT";
753
- return GLEnum2;
754
- }(GLEnum || {});
755
-
756
- // src/utils/gpu-grid-aggregation/gpu-grid-aggregator.ts
757
- var import_engine = __toESM(require_engine(), 1);
758
-
759
- // ../../node_modules/@luma.gl/shadertools/dist/lib/glsl-utils/highlight.js
760
- var glsl = (x) => `${x}`;
761
-
762
- // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64-utils.js
763
- function fp64ify(a) {
764
- let out = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
765
- let startIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
766
- const hiPart = Math.fround(a);
767
- const loPart = a - hiPart;
768
- out[startIndex] = hiPart;
769
- out[startIndex + 1] = loPart;
770
- return out;
771
- }
772
- function fp64LowPart(a) {
773
- return a - Math.fround(a);
774
- }
775
- function fp64ifyMatrix4(matrix) {
776
- const matrixFP64 = new Float32Array(32);
777
- for (let i = 0; i < 4; ++i) {
778
- for (let j = 0; j < 4; ++j) {
779
- const index = i * 4 + j;
780
- fp64ify(matrix[j * 4 + i], matrixFP64, index * 2);
781
- }
782
- }
783
- return matrixFP64;
784
- }
785
-
786
- // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64-arithmetic.glsl.js
787
- var fp64arithmeticShader = glsl`\
788
- uniform float ONE;
789
-
790
- /*
791
- About LUMA_FP64_CODE_ELIMINATION_WORKAROUND
792
-
793
- The purpose of this workaround is to prevent shader compilers from
794
- optimizing away necessary arithmetic operations by swapping their sequences
795
- or transform the equation to some 'equivalent' form.
796
-
797
- The method is to multiply an artifical variable, ONE, which will be known to
798
- the compiler to be 1 only at runtime. The whole expression is then represented
799
- as a polynomial with respective to ONE. In the coefficients of all terms, only one a
800
- and one b should appear
801
-
802
- err = (a + b) * ONE^6 - a * ONE^5 - (a + b) * ONE^4 + a * ONE^3 - b - (a + b) * ONE^2 + a * ONE
803
- */
804
-
805
- // Divide float number to high and low floats to extend fraction bits
806
- vec2 split(float a) {
807
- const float SPLIT = 4097.0;
808
- float t = a * SPLIT;
809
- #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
810
- float a_hi = t * ONE - (t - a);
811
- float a_lo = a * ONE - a_hi;
812
- #else
813
- float a_hi = t - (t - a);
814
- float a_lo = a - a_hi;
815
- #endif
816
- return vec2(a_hi, a_lo);
817
- }
818
-
819
- // Divide float number again when high float uses too many fraction bits
820
- vec2 split2(vec2 a) {
821
- vec2 b = split(a.x);
822
- b.y += a.y;
823
- return b;
824
- }
825
-
826
- // Special sum operation when a > b
827
- vec2 quickTwoSum(float a, float b) {
828
- #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
829
- float sum = (a + b) * ONE;
830
- float err = b - (sum - a) * ONE;
831
- #else
832
- float sum = a + b;
833
- float err = b - (sum - a);
834
- #endif
835
- return vec2(sum, err);
836
- }
837
-
838
- // General sum operation
839
- vec2 twoSum(float a, float b) {
840
- float s = (a + b);
841
- #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
842
- float v = (s * ONE - a) * ONE;
843
- float err = (a - (s - v) * ONE) * ONE * ONE * ONE + (b - v);
844
- #else
845
- float v = s - a;
846
- float err = (a - (s - v)) + (b - v);
847
- #endif
848
- return vec2(s, err);
849
- }
850
-
851
- vec2 twoSub(float a, float b) {
852
- float s = (a - b);
853
- #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
854
- float v = (s * ONE - a) * ONE;
855
- float err = (a - (s - v) * ONE) * ONE * ONE * ONE - (b + v);
856
- #else
857
- float v = s - a;
858
- float err = (a - (s - v)) - (b + v);
859
- #endif
860
- return vec2(s, err);
861
- }
862
-
863
- vec2 twoSqr(float a) {
864
- float prod = a * a;
865
- vec2 a_fp64 = split(a);
866
- #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
867
- float err = ((a_fp64.x * a_fp64.x - prod) * ONE + 2.0 * a_fp64.x *
868
- a_fp64.y * ONE * ONE) + a_fp64.y * a_fp64.y * ONE * ONE * ONE;
869
- #else
870
- float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y;
871
- #endif
872
- return vec2(prod, err);
873
- }
874
-
875
- vec2 twoProd(float a, float b) {
876
- float prod = a * b;
877
- vec2 a_fp64 = split(a);
878
- vec2 b_fp64 = split(b);
879
- float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y +
880
- a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y;
881
- return vec2(prod, err);
882
- }
883
-
884
- vec2 sum_fp64(vec2 a, vec2 b) {
885
- vec2 s, t;
886
- s = twoSum(a.x, b.x);
887
- t = twoSum(a.y, b.y);
888
- s.y += t.x;
889
- s = quickTwoSum(s.x, s.y);
890
- s.y += t.y;
891
- s = quickTwoSum(s.x, s.y);
892
- return s;
893
- }
894
-
895
- vec2 sub_fp64(vec2 a, vec2 b) {
896
- vec2 s, t;
897
- s = twoSub(a.x, b.x);
898
- t = twoSub(a.y, b.y);
899
- s.y += t.x;
900
- s = quickTwoSum(s.x, s.y);
901
- s.y += t.y;
902
- s = quickTwoSum(s.x, s.y);
903
- return s;
904
- }
905
-
906
- vec2 mul_fp64(vec2 a, vec2 b) {
907
- vec2 prod = twoProd(a.x, b.x);
908
- // y component is for the error
909
- prod.y += a.x * b.y;
910
- #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
911
- prod = split2(prod);
912
- #endif
913
- prod = quickTwoSum(prod.x, prod.y);
914
- prod.y += a.y * b.x;
915
- #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
916
- prod = split2(prod);
917
- #endif
918
- prod = quickTwoSum(prod.x, prod.y);
919
- return prod;
920
- }
921
-
922
- vec2 div_fp64(vec2 a, vec2 b) {
923
- float xn = 1.0 / b.x;
924
- #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
925
- vec2 yn = mul_fp64(a, vec2(xn, 0));
926
- #else
927
- vec2 yn = a * xn;
928
- #endif
929
- float diff = (sub_fp64(a, mul_fp64(b, yn))).x;
930
- vec2 prod = twoProd(xn, diff);
931
- return sum_fp64(yn, prod);
932
- }
933
-
934
- vec2 sqrt_fp64(vec2 a) {
935
- if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0);
936
- if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);
937
-
938
- float x = 1.0 / sqrt(a.x);
939
- float yn = a.x * x;
940
- #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
941
- vec2 yn_sqr = twoSqr(yn) * ONE;
942
- #else
943
- vec2 yn_sqr = twoSqr(yn);
944
- #endif
945
- float diff = sub_fp64(a, yn_sqr).x;
946
- vec2 prod = twoProd(x * 0.5, diff);
947
- #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
948
- return sum_fp64(split(yn), prod);
949
- #else
950
- return sum_fp64(vec2(yn, 0.0), prod);
951
- #endif
952
- }
953
- `;
954
-
955
- // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64.js
956
- var CONST_UNIFORMS = {
957
- ONE: 1
958
- };
959
- function getUniforms() {
960
- return CONST_UNIFORMS;
961
- }
962
- var fp64arithmetic = {
963
- name: "fp64-arithmetic",
964
- vs: fp64arithmeticShader,
965
- getUniforms,
966
- fp64ify,
967
- fp64LowPart,
968
- fp64ifyMatrix4
969
- };
881
+ GLEnum2[GLEnum2["COMPLETION_STATUS_KHR"] = 37297] = "COMPLETION_STATUS_KHR";
882
+ GLEnum2[GLEnum2["DEPTH_CLAMP_EXT"] = 34383] = "DEPTH_CLAMP_EXT";
883
+ GLEnum2[GLEnum2["FIRST_VERTEX_CONVENTION_WEBGL"] = 36429] = "FIRST_VERTEX_CONVENTION_WEBGL";
884
+ GLEnum2[GLEnum2["LAST_VERTEX_CONVENTION_WEBGL"] = 36430] = "LAST_VERTEX_CONVENTION_WEBGL";
885
+ GLEnum2[GLEnum2["PROVOKING_VERTEX_WEBL"] = 36431] = "PROVOKING_VERTEX_WEBL";
886
+ GLEnum2[GLEnum2["POLYGON_MODE_WEBGL"] = 2880] = "POLYGON_MODE_WEBGL";
887
+ GLEnum2[GLEnum2["POLYGON_OFFSET_LINE_WEBGL"] = 10754] = "POLYGON_OFFSET_LINE_WEBGL";
888
+ GLEnum2[GLEnum2["LINE_WEBGL"] = 6913] = "LINE_WEBGL";
889
+ GLEnum2[GLEnum2["FILL_WEBGL"] = 6914] = "FILL_WEBGL";
890
+ GLEnum2[GLEnum2["MAX_CLIP_DISTANCES_WEBGL"] = 3378] = "MAX_CLIP_DISTANCES_WEBGL";
891
+ GLEnum2[GLEnum2["MAX_CULL_DISTANCES_WEBGL"] = 33529] = "MAX_CULL_DISTANCES_WEBGL";
892
+ GLEnum2[GLEnum2["MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL"] = 33530] = "MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL";
893
+ GLEnum2[GLEnum2["CLIP_DISTANCE0_WEBGL"] = 12288] = "CLIP_DISTANCE0_WEBGL";
894
+ GLEnum2[GLEnum2["CLIP_DISTANCE1_WEBGL"] = 12289] = "CLIP_DISTANCE1_WEBGL";
895
+ GLEnum2[GLEnum2["CLIP_DISTANCE2_WEBGL"] = 12290] = "CLIP_DISTANCE2_WEBGL";
896
+ GLEnum2[GLEnum2["CLIP_DISTANCE3_WEBGL"] = 12291] = "CLIP_DISTANCE3_WEBGL";
897
+ GLEnum2[GLEnum2["CLIP_DISTANCE4_WEBGL"] = 12292] = "CLIP_DISTANCE4_WEBGL";
898
+ GLEnum2[GLEnum2["CLIP_DISTANCE5_WEBGL"] = 12293] = "CLIP_DISTANCE5_WEBGL";
899
+ GLEnum2[GLEnum2["CLIP_DISTANCE6_WEBGL"] = 12294] = "CLIP_DISTANCE6_WEBGL";
900
+ GLEnum2[GLEnum2["CLIP_DISTANCE7_WEBGL"] = 12295] = "CLIP_DISTANCE7_WEBGL";
901
+ GLEnum2[GLEnum2["POLYGON_OFFSET_CLAMP_EXT"] = 36379] = "POLYGON_OFFSET_CLAMP_EXT";
902
+ GLEnum2[GLEnum2["LOWER_LEFT_EXT"] = 36001] = "LOWER_LEFT_EXT";
903
+ GLEnum2[GLEnum2["UPPER_LEFT_EXT"] = 36002] = "UPPER_LEFT_EXT";
904
+ GLEnum2[GLEnum2["NEGATIVE_ONE_TO_ONE_EXT"] = 37726] = "NEGATIVE_ONE_TO_ONE_EXT";
905
+ GLEnum2[GLEnum2["ZERO_TO_ONE_EXT"] = 37727] = "ZERO_TO_ONE_EXT";
906
+ GLEnum2[GLEnum2["CLIP_ORIGIN_EXT"] = 37724] = "CLIP_ORIGIN_EXT";
907
+ GLEnum2[GLEnum2["CLIP_DEPTH_MODE_EXT"] = 37725] = "CLIP_DEPTH_MODE_EXT";
908
+ GLEnum2[GLEnum2["SRC1_COLOR_WEBGL"] = 35065] = "SRC1_COLOR_WEBGL";
909
+ GLEnum2[GLEnum2["SRC1_ALPHA_WEBGL"] = 34185] = "SRC1_ALPHA_WEBGL";
910
+ GLEnum2[GLEnum2["ONE_MINUS_SRC1_COLOR_WEBGL"] = 35066] = "ONE_MINUS_SRC1_COLOR_WEBGL";
911
+ GLEnum2[GLEnum2["ONE_MINUS_SRC1_ALPHA_WEBGL"] = 35067] = "ONE_MINUS_SRC1_ALPHA_WEBGL";
912
+ GLEnum2[GLEnum2["MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL"] = 35068] = "MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL";
913
+ GLEnum2[GLEnum2["MIRROR_CLAMP_TO_EDGE_EXT"] = 34627] = "MIRROR_CLAMP_TO_EDGE_EXT";
914
+ })(GLEnum || (GLEnum = {}));
970
915
 
971
916
  // src/utils/gpu-grid-aggregation/gpu-grid-aggregator.ts
972
917
  var import_core = __toESM(require_core(), 1);
@@ -1276,11 +1221,8 @@ void main()
1276
1221
  maxMinData: "maxMinBuffer"
1277
1222
  };
1278
1223
  var REQUIRED_FEATURES = [
1279
- "webgl2",
1280
- "blend-minmax-webgl1",
1281
- "texture-renderable-float32-webgl",
1282
- "texture-blend-float-webgl1",
1283
- "texture-formats-float32-webgl1"
1224
+ "float32-renderable-webgl",
1225
+ "texture-blend-float-webgl"
1284
1226
  ];
1285
1227
  var GPUGridAggregator = class {
1286
1228
  constructor(device, props = {}) {
@@ -1301,12 +1243,10 @@ void main()
1301
1243
  };
1302
1244
  this.id = props.id || "gpu-grid-aggregator";
1303
1245
  this.device = device;
1304
- const REQUIRED_FEATURES3 = [
1305
- "blend-minmax-webgl1",
1306
- "texture-renderable-float32-webgl",
1307
- "texture-formats-float32-webgl1"
1246
+ const REQUIRED_FEATURES2 = [
1247
+ "float32-renderable-webgl"
1308
1248
  ];
1309
- this._hasGPUSupport = this.device.info.type === "webgl2" && REQUIRED_FEATURES3.every((feature) => device.features.has(feature));
1249
+ this._hasGPUSupport = REQUIRED_FEATURES2.every((feature) => device.features.has(feature));
1310
1250
  if (this._hasGPUSupport) {
1311
1251
  this._setupModels();
1312
1252
  }
@@ -1381,9 +1321,6 @@ void main()
1381
1321
  run(opts = {}) {
1382
1322
  this.setState({ results: {} });
1383
1323
  const aggregationParams = this._normalizeAggregationParams(opts);
1384
- if (!this._hasGPUSupport) {
1385
- import_core.log.log(1, "GPUGridAggregator: not supported")();
1386
- }
1387
1324
  return this._runAggregation(aggregationParams);
1388
1325
  }
1389
1326
  getData(weightId) {
@@ -1907,9 +1844,6 @@ void main(void) {
1907
1844
  colorRange: defaultColorRange
1908
1845
  };
1909
1846
  var ScreenGridCellLayer = class extends import_core2.Layer {
1910
- static isSupported(device) {
1911
- return device.features.has("texture-formats-float32-webgl1");
1912
- }
1913
1847
  getShaders() {
1914
1848
  return { vs: screen_grid_layer_vertex_glsl_default, fs: screen_grid_layer_fragment_glsl_default, modules: [import_core2.picking] };
1915
1849
  }
@@ -2763,11 +2697,6 @@ void main(void) {
2763
2697
  };
2764
2698
  var ScreenGridLayer = class extends GridAggregationLayer {
2765
2699
  initializeState() {
2766
- if (!ScreenGridCellLayer.isSupported(this.context.device)) {
2767
- this.setState({ supported: false });
2768
- import_core8.log.error(`ScreenGridLayer: ${this.id} is not supported on this browser`)();
2769
- return;
2770
- }
2771
2700
  super.initializeAggregationLayer({
2772
2701
  dimensions: DIMENSIONS,
2773
2702
  getCellSize: (props) => props.cellSizePixels
@@ -2795,7 +2724,7 @@ void main(void) {
2795
2724
  [POSITION_ATTRIBUTE_NAME]: {
2796
2725
  size: 3,
2797
2726
  accessor: "getPosition",
2798
- type: GLEnum.DOUBLE,
2727
+ type: "float64",
2799
2728
  fp64: this.use64bitPositions()
2800
2729
  },
2801
2730
  count: { size: 3, accessor: "getWeight" }
@@ -3329,7 +3258,7 @@ void main(void) {
3329
3258
  };
3330
3259
  const attributeManager = this.getAttributeManager();
3331
3260
  attributeManager.add({
3332
- positions: { size: 3, type: GLEnum.DOUBLE, accessor: "getPosition" }
3261
+ positions: { size: 3, type: "float64", accessor: "getPosition" }
3333
3262
  });
3334
3263
  }
3335
3264
  updateState(opts) {
@@ -3575,7 +3504,7 @@ void main(void) {
3575
3504
  };
3576
3505
  const attributeManager = this.getAttributeManager();
3577
3506
  attributeManager.add({
3578
- positions: { size: 3, type: GLEnum.DOUBLE, accessor: "getPosition" }
3507
+ positions: { size: 3, type: "float64", accessor: "getPosition" }
3579
3508
  });
3580
3509
  }
3581
3510
  updateState(opts) {
@@ -4196,7 +4125,7 @@ void main(void) {
4196
4125
  [POSITION_ATTRIBUTE_NAME2]: {
4197
4126
  size: 3,
4198
4127
  accessor: "getPosition",
4199
- type: GLEnum.DOUBLE,
4128
+ type: "float64",
4200
4129
  fp64: this.use64bitPositions()
4201
4130
  },
4202
4131
  count: { size: 3, accessor: "getWeight" }
@@ -4325,7 +4254,7 @@ void main(void) {
4325
4254
  const { count } = this.state.weights;
4326
4255
  let { aggregationData } = count;
4327
4256
  if (!aggregationData) {
4328
- aggregationData = count.aggregationBuffer.readSyncWebGL2();
4257
+ aggregationData = count.aggregationBuffer.readSyncWebGL();
4329
4258
  count.aggregationData = aggregationData;
4330
4259
  }
4331
4260
  const { cellWeights } = GPUGridAggregator.getCellData({ countsData: aggregationData });
@@ -4694,7 +4623,7 @@ void main(void) {
4694
4623
  [POSITION_ATTRIBUTE_NAME3]: {
4695
4624
  size: 3,
4696
4625
  accessor: "getPosition",
4697
- type: GLEnum.DOUBLE,
4626
+ type: "float64",
4698
4627
  fp64: this.use64bitPositions()
4699
4628
  },
4700
4629
  color: { size: 3, accessor: "getColorWeight" },
@@ -5243,13 +5172,9 @@ void main() {
5243
5172
  weightsTextureSize: { type: "number", min: 128, max: 2048, value: 2048 },
5244
5173
  debounceTimeout: { type: "number", min: 0, max: 1e3, value: 500 }
5245
5174
  };
5246
- var REQUIRED_FEATURES2 = [
5247
- "blend-minmax-webgl1",
5248
- "texture-formats-float32-webgl1"
5249
- ];
5250
5175
  var FLOAT_TARGET_FEATURES = [
5251
- "texture-renderable-float32-webgl",
5252
- "texture-blend-float-webgl1"
5176
+ "float32-renderable-webgl",
5177
+ "texture-blend-float-webgl"
5253
5178
  ];
5254
5179
  var DIMENSIONS4 = {
5255
5180
  data: {
@@ -5258,13 +5183,8 @@ void main() {
5258
5183
  };
5259
5184
  var HeatmapLayer = class extends AggregationLayer {
5260
5185
  initializeState() {
5261
- if (!REQUIRED_FEATURES2.every((feature) => this.context.device.features.has(feature))) {
5262
- this.setState({ supported: false });
5263
- import_core17.log.error(`HeatmapLayer: ${this.id} is not supported on this browser`)();
5264
- return;
5265
- }
5266
5186
  super.initializeAggregationLayer(DIMENSIONS4);
5267
- this.setState({ supported: true, colorDomain: DEFAULT_COLOR_DOMAIN });
5187
+ this.setState({ colorDomain: DEFAULT_COLOR_DOMAIN });
5268
5188
  this._setupTextureParams();
5269
5189
  this._setupAttributes();
5270
5190
  this._setupResources();
@@ -5273,9 +5193,6 @@ void main() {
5273
5193
  return changeFlags.somethingChanged;
5274
5194
  }
5275
5195
  updateState(opts) {
5276
- if (!this.state.supported) {
5277
- return;
5278
- }
5279
5196
  super.updateState(opts);
5280
5197
  this._updateHeatmapState(opts);
5281
5198
  }
@@ -5301,9 +5218,6 @@ void main() {
5301
5218
  this.setState({ zoom: opts.context.viewport.zoom });
5302
5219
  }
5303
5220
  renderLayers() {
5304
- if (!this.state.supported) {
5305
- return [];
5306
- }
5307
5221
  const {
5308
5222
  weightsTexture,
5309
5223
  triPositionBuffer,
@@ -5401,7 +5315,7 @@ void main() {
5401
5315
  _setupAttributes() {
5402
5316
  const attributeManager = this.getAttributeManager();
5403
5317
  attributeManager.add({
5404
- positions: { size: 3, type: GLEnum.DOUBLE, accessor: "getPosition" },
5318
+ positions: { size: 3, type: "float64", accessor: "getPosition" },
5405
5319
  weights: { size: 1, accessor: "getWeight" }
5406
5320
  });
5407
5321
  this.setState({ positionAttributeName: "positions" });