@mapwhit/tilerenderer 0.52.0 → 1.0.0

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 (142) hide show
  1. package/README.md +7 -0
  2. package/build/min/package.json +1 -1
  3. package/build/min/src/shaders/_prelude.fragment.glsl.js +2 -2
  4. package/build/min/src/shaders/_prelude.vertex.glsl.js +2 -2
  5. package/build/min/src/shaders/background.fragment.glsl.js +2 -2
  6. package/build/min/src/shaders/background.vertex.glsl.js +1 -1
  7. package/build/min/src/shaders/background_pattern.fragment.glsl.js +2 -2
  8. package/build/min/src/shaders/background_pattern.vertex.glsl.js +1 -1
  9. package/build/min/src/shaders/circle.fragment.glsl.js +2 -2
  10. package/build/min/src/shaders/circle.vertex.glsl.js +2 -2
  11. package/build/min/src/shaders/clipping_mask.fragment.glsl.js +1 -1
  12. package/build/min/src/shaders/clipping_mask.vertex.glsl.js +1 -1
  13. package/build/min/src/shaders/collision_box.fragment.glsl.js +1 -1
  14. package/build/min/src/shaders/collision_box.vertex.glsl.js +1 -1
  15. package/build/min/src/shaders/collision_circle.fragment.glsl.js +1 -1
  16. package/build/min/src/shaders/collision_circle.vertex.glsl.js +1 -1
  17. package/build/min/src/shaders/debug.fragment.glsl.js +1 -1
  18. package/build/min/src/shaders/debug.vertex.glsl.js +1 -1
  19. package/build/min/src/shaders/fill.fragment.glsl.js +2 -2
  20. package/build/min/src/shaders/fill.vertex.glsl.js +2 -2
  21. package/build/min/src/shaders/fill_extrusion.fragment.glsl.js +2 -2
  22. package/build/min/src/shaders/fill_extrusion.vertex.glsl.js +2 -2
  23. package/build/min/src/shaders/fill_extrusion_pattern.fragment.glsl.js +2 -2
  24. package/build/min/src/shaders/fill_extrusion_pattern.vertex.glsl.js +2 -2
  25. package/build/min/src/shaders/fill_outline.fragment.glsl.js +2 -2
  26. package/build/min/src/shaders/fill_outline.vertex.glsl.js +2 -2
  27. package/build/min/src/shaders/fill_outline_pattern.fragment.glsl.js +2 -2
  28. package/build/min/src/shaders/fill_outline_pattern.vertex.glsl.js +2 -2
  29. package/build/min/src/shaders/fill_pattern.fragment.glsl.js +2 -2
  30. package/build/min/src/shaders/fill_pattern.vertex.glsl.js +2 -2
  31. package/build/min/src/shaders/heatmap.fragment.glsl.js +2 -2
  32. package/build/min/src/shaders/heatmap.vertex.glsl.js +2 -2
  33. package/build/min/src/shaders/heatmap_texture.fragment.glsl.js +2 -2
  34. package/build/min/src/shaders/heatmap_texture.vertex.glsl.js +1 -1
  35. package/build/min/src/shaders/hillshade.fragment.glsl.js +2 -2
  36. package/build/min/src/shaders/hillshade.vertex.glsl.js +1 -1
  37. package/build/min/src/shaders/hillshade_prepare.fragment.glsl.js +2 -2
  38. package/build/min/src/shaders/hillshade_prepare.vertex.glsl.js +1 -1
  39. package/build/min/src/shaders/line.fragment.glsl.js +2 -2
  40. package/build/min/src/shaders/line.vertex.glsl.js +2 -2
  41. package/build/min/src/shaders/line_gradient.fragment.glsl.js +2 -2
  42. package/build/min/src/shaders/line_gradient.vertex.glsl.js +2 -2
  43. package/build/min/src/shaders/line_pattern.fragment.glsl.js +2 -2
  44. package/build/min/src/shaders/line_pattern.vertex.glsl.js +2 -2
  45. package/build/min/src/shaders/line_sdf.fragment.glsl.js +2 -2
  46. package/build/min/src/shaders/line_sdf.vertex.glsl.js +2 -2
  47. package/build/min/src/shaders/raster.fragment.glsl.js +2 -2
  48. package/build/min/src/shaders/raster.vertex.glsl.js +1 -1
  49. package/build/min/src/shaders/symbol_icon.fragment.glsl.js +2 -2
  50. package/build/min/src/shaders/symbol_icon.vertex.glsl.js +2 -2
  51. package/build/min/src/shaders/symbol_sdf.fragment.glsl.js +2 -2
  52. package/build/min/src/shaders/symbol_sdf.vertex.glsl.js +2 -2
  53. package/package.json +3 -3
  54. package/src/data/array_types.js +1 -36
  55. package/src/data/bucket/circle_bucket.js +8 -5
  56. package/src/data/bucket/fill_bucket.js +8 -5
  57. package/src/data/bucket/fill_extrusion_bucket.js +8 -5
  58. package/src/data/bucket/heatmap_bucket.js +0 -4
  59. package/src/data/bucket/line_bucket.js +9 -6
  60. package/src/data/bucket/pattern_bucket_features.js +2 -2
  61. package/src/data/bucket/symbol_bucket.js +99 -129
  62. package/src/data/bucket.js +26 -21
  63. package/src/data/dem_data.js +0 -3
  64. package/src/data/feature_index.js +3 -8
  65. package/src/data/program_configuration.js +24 -33
  66. package/src/data/segment.js +0 -4
  67. package/src/render/draw_background.js +3 -3
  68. package/src/render/draw_circle.js +4 -4
  69. package/src/render/draw_fill.js +8 -8
  70. package/src/render/draw_fill_extrusion.js +8 -8
  71. package/src/render/draw_heatmap.js +4 -4
  72. package/src/render/draw_line.js +6 -6
  73. package/src/render/draw_raster.js +6 -6
  74. package/src/render/draw_symbol.js +16 -16
  75. package/src/render/glyph_atlas.js +0 -3
  76. package/src/render/glyph_manager.js +1 -2
  77. package/src/render/image_atlas.js +0 -4
  78. package/src/render/image_manager.js +33 -19
  79. package/src/render/painter.js +13 -14
  80. package/src/render/program/circle_program.js +4 -4
  81. package/src/render/program/fill_extrusion_program.js +1 -1
  82. package/src/render/program/heatmap_program.js +1 -1
  83. package/src/render/program/hillshade_program.js +6 -6
  84. package/src/render/program/line_program.js +3 -3
  85. package/src/render/program/raster_program.js +6 -6
  86. package/src/source/geojson_source.js +15 -24
  87. package/src/source/geojson_worker_source.js +40 -68
  88. package/src/source/geojson_wrapper.js +9 -1
  89. package/src/source/image_source.js +6 -16
  90. package/src/source/query_features.js +4 -5
  91. package/src/source/raster_dem_tile_source.js +45 -64
  92. package/src/source/raster_tile_source.js +1 -6
  93. package/src/source/resources/glyphs.js +2 -2
  94. package/src/source/resources/index.js +3 -9
  95. package/src/source/rtl_text_plugin.js +58 -31
  96. package/src/source/source.js +11 -13
  97. package/src/source/source_cache.js +135 -151
  98. package/src/source/source_state.js +101 -12
  99. package/src/source/tile.js +32 -46
  100. package/src/source/tile_bounds.js +26 -26
  101. package/src/source/tile_id.js +2 -5
  102. package/src/source/vector_tile_source.js +14 -14
  103. package/src/source/vector_tile_worker_source.js +19 -23
  104. package/src/source/worker_tile.js +122 -119
  105. package/src/style/create_style_layer.js +1 -1
  106. package/src/style/pauseable_placement.js +4 -5
  107. package/src/style/properties.js +1 -8
  108. package/src/style/query_utils.js +3 -3
  109. package/src/style/style.js +286 -216
  110. package/src/style/style_layer/circle_style_layer.js +13 -11
  111. package/src/style/style_layer/fill_extrusion_style_layer.js +42 -27
  112. package/src/style/style_layer/fill_style_layer.js +5 -5
  113. package/src/style/style_layer/heatmap_style_layer.js +1 -1
  114. package/src/style/style_layer/hillshade_style_layer.js +1 -1
  115. package/src/style/style_layer/line_style_layer.js +23 -19
  116. package/src/style/style_layer/symbol_style_layer.js +13 -13
  117. package/src/style/style_layer.js +71 -30
  118. package/src/style/style_layer_index.js +16 -41
  119. package/src/symbol/anchor.js +0 -4
  120. package/src/symbol/cross_tile_symbol_index.js +2 -5
  121. package/src/symbol/opacity_state.js +0 -4
  122. package/src/symbol/placement.js +3 -3
  123. package/src/symbol/quads.js +4 -4
  124. package/src/symbol/symbol_layout.js +7 -7
  125. package/src/symbol/transform_text.js +1 -1
  126. package/src/ui/map.js +52 -15
  127. package/src/util/group_layers.js +41 -0
  128. package/src/util/image.js +0 -5
  129. package/src/util/key.js +21 -0
  130. package/src/util/object.js +8 -53
  131. package/src/worker.js +1 -4
  132. package/src/source/resources/images.js +0 -68
  133. package/src/source/worker.js +0 -110
  134. package/src/source/worker_source.js +0 -14
  135. package/src/style-spec/deref.js +0 -51
  136. package/src/style-spec/group_by_layout.js +0 -46
  137. package/src/util/actor.js +0 -108
  138. package/src/util/dispatcher.js +0 -65
  139. package/src/util/global_worker_pool.js +0 -15
  140. package/src/util/transfer_registry.js +0 -168
  141. package/src/util/web_worker_transfer.js +0 -43
  142. package/src/util/worker_pool.js +0 -41
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mapwhit/tilerenderer",
3
3
  "description": "A WebGL interactive maps library",
4
- "version": "0.52.0",
4
+ "version": "1.0.0",
5
5
  "exports": {
6
6
  ".": "./src/index.js",
7
7
  "./worker": "./src/worker.js"
@@ -21,9 +21,9 @@
21
21
  "@mapwhit/pbf": "^1.0.0",
22
22
  "@mapwhit/style-expressions": "^1.1.0",
23
23
  "@mapwhit/vector-tile": "^2.0.1",
24
- "@mapwhit/vt-pbf": "^2.0.0",
25
24
  "@pirxpilot/nanoassert": "~1",
26
25
  "csscolorparser": "^1.0.3",
26
+ "dynload": "^1.0.2",
27
27
  "earcut": "^3.0.1",
28
28
  "geojson-vt": "^4.0.2",
29
29
  "grid-index": "^1.1.0",
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "scripts": {
41
41
  "test": "make check",
42
- "prepublish": "make prebuild"
42
+ "prepare": "make prebuild"
43
43
  },
44
44
  "files": [
45
45
  "src",
@@ -2,8 +2,6 @@
2
2
 
3
3
  const assert = require('assert');
4
4
  const { Struct, StructArray } = require('../util/struct_array');
5
- const { register } = require('../util/transfer_registry');
6
- const { default: Point } = require('@mapbox/point-geometry');
7
5
 
8
6
  /**
9
7
  * Implementation of the StructArray layout:
@@ -35,7 +33,6 @@ class StructArrayLayout2i4 extends StructArray {
35
33
  }
36
34
 
37
35
  StructArrayLayout2i4.prototype.bytesPerElement = 4;
38
- register('StructArrayLayout2i4', StructArrayLayout2i4);
39
36
 
40
37
  /**
41
38
  * Implementation of the StructArray layout:
@@ -71,7 +68,6 @@ class StructArrayLayout4i8 extends StructArray {
71
68
  }
72
69
 
73
70
  StructArrayLayout4i8.prototype.bytesPerElement = 8;
74
- register('StructArrayLayout4i8', StructArrayLayout4i8);
75
71
 
76
72
  /**
77
73
  * Implementation of the StructArray layout:
@@ -112,7 +108,6 @@ class StructArrayLayout2i4i12 extends StructArray {
112
108
  }
113
109
 
114
110
  StructArrayLayout2i4i12.prototype.bytesPerElement = 12;
115
- register('StructArrayLayout2i4i12', StructArrayLayout2i4i12);
116
111
 
117
112
  /**
118
113
  * Implementation of the StructArray layout:
@@ -159,7 +154,6 @@ class StructArrayLayout4i4ub12 extends StructArray {
159
154
  }
160
155
 
161
156
  StructArrayLayout4i4ub12.prototype.bytesPerElement = 12;
162
- register('StructArrayLayout4i4ub12', StructArrayLayout4i4ub12);
163
157
 
164
158
  /**
165
159
  * Implementation of the StructArray layout:
@@ -203,7 +197,6 @@ class StructArrayLayout8ui16 extends StructArray {
203
197
  }
204
198
 
205
199
  StructArrayLayout8ui16.prototype.bytesPerElement = 16;
206
- register('StructArrayLayout8ui16', StructArrayLayout8ui16);
207
200
 
208
201
  /**
209
202
  * Implementation of the StructArray layout:
@@ -249,7 +242,6 @@ class StructArrayLayout4i4ui16 extends StructArray {
249
242
  }
250
243
 
251
244
  StructArrayLayout4i4ui16.prototype.bytesPerElement = 16;
252
- register('StructArrayLayout4i4ui16', StructArrayLayout4i4ui16);
253
245
 
254
246
  /**
255
247
  * Implementation of the StructArray layout:
@@ -283,7 +275,6 @@ class StructArrayLayout3f12 extends StructArray {
283
275
  }
284
276
 
285
277
  StructArrayLayout3f12.prototype.bytesPerElement = 12;
286
- register('StructArrayLayout3f12', StructArrayLayout3f12);
287
278
 
288
279
  /**
289
280
  * Implementation of the StructArray layout:
@@ -313,7 +304,6 @@ class StructArrayLayout1ul4 extends StructArray {
313
304
  }
314
305
 
315
306
  StructArrayLayout1ul4.prototype.bytesPerElement = 4;
316
- register('StructArrayLayout1ul4', StructArrayLayout1ul4);
317
307
 
318
308
  /**
319
309
  * Implementation of the StructArray layout:
@@ -370,7 +360,6 @@ class StructArrayLayout6i1ul2ui2i24 extends StructArray {
370
360
  }
371
361
 
372
362
  StructArrayLayout6i1ul2ui2i24.prototype.bytesPerElement = 24;
373
- register('StructArrayLayout6i1ul2ui2i24', StructArrayLayout6i1ul2ui2i24);
374
363
 
375
364
  /**
376
365
  * Implementation of the StructArray layout:
@@ -412,7 +401,6 @@ class StructArrayLayout2i2i2i12 extends StructArray {
412
401
  }
413
402
 
414
403
  StructArrayLayout2i2i2i12.prototype.bytesPerElement = 12;
415
- register('StructArrayLayout2i2i2i12', StructArrayLayout2i2i2i12);
416
404
 
417
405
  /**
418
406
  * Implementation of the StructArray layout:
@@ -443,7 +431,6 @@ class StructArrayLayout2ub4 extends StructArray {
443
431
  }
444
432
 
445
433
  StructArrayLayout2ub4.prototype.bytesPerElement = 4;
446
- register('StructArrayLayout2ub4', StructArrayLayout2ub4);
447
434
 
448
435
  /**
449
436
  * Implementation of the StructArray layout:
@@ -511,7 +498,6 @@ class StructArrayLayout2i2ui3ul3ui2f2ub40 extends StructArray {
511
498
  }
512
499
 
513
500
  StructArrayLayout2i2ui3ul3ui2f2ub40.prototype.bytesPerElement = 40;
514
- register('StructArrayLayout2i2ui3ul3ui2f2ub40', StructArrayLayout2i2ui3ul3ui2f2ub40);
515
501
 
516
502
  /**
517
503
  * Implementation of the StructArray layout:
@@ -573,7 +559,6 @@ class StructArrayLayout4i9ui1ul32 extends StructArray {
573
559
  }
574
560
 
575
561
  StructArrayLayout4i9ui1ul32.prototype.bytesPerElement = 32;
576
- register('StructArrayLayout4i9ui1ul32', StructArrayLayout4i9ui1ul32);
577
562
 
578
563
  /**
579
564
  * Implementation of the StructArray layout:
@@ -603,7 +588,6 @@ class StructArrayLayout1f4 extends StructArray {
603
588
  }
604
589
 
605
590
  StructArrayLayout1f4.prototype.bytesPerElement = 4;
606
- register('StructArrayLayout1f4', StructArrayLayout1f4);
607
591
 
608
592
  /**
609
593
  * Implementation of the StructArray layout:
@@ -637,7 +621,6 @@ class StructArrayLayout3i6 extends StructArray {
637
621
  }
638
622
 
639
623
  StructArrayLayout3i6.prototype.bytesPerElement = 6;
640
- register('StructArrayLayout3i6', StructArrayLayout3i6);
641
624
 
642
625
  /**
643
626
  * Implementation of the StructArray layout:
@@ -675,7 +658,6 @@ class StructArrayLayout1ul2ui8 extends StructArray {
675
658
  }
676
659
 
677
660
  StructArrayLayout1ul2ui8.prototype.bytesPerElement = 8;
678
- register('StructArrayLayout1ul2ui8', StructArrayLayout1ul2ui8);
679
661
 
680
662
  /**
681
663
  * Implementation of the StructArray layout:
@@ -709,7 +691,6 @@ class StructArrayLayout3ui6 extends StructArray {
709
691
  }
710
692
 
711
693
  StructArrayLayout3ui6.prototype.bytesPerElement = 6;
712
- register('StructArrayLayout3ui6', StructArrayLayout3ui6);
713
694
 
714
695
  /**
715
696
  * Implementation of the StructArray layout:
@@ -741,7 +722,6 @@ class StructArrayLayout2ui4 extends StructArray {
741
722
  }
742
723
 
743
724
  StructArrayLayout2ui4.prototype.bytesPerElement = 4;
744
- register('StructArrayLayout2ui4', StructArrayLayout2ui4);
745
725
 
746
726
  /**
747
727
  * Implementation of the StructArray layout:
@@ -771,7 +751,6 @@ class StructArrayLayout1ui2 extends StructArray {
771
751
  }
772
752
 
773
753
  StructArrayLayout1ui2.prototype.bytesPerElement = 2;
774
- register('StructArrayLayout1ui2', StructArrayLayout1ui2);
775
754
 
776
755
  /**
777
756
  * Implementation of the StructArray layout:
@@ -803,7 +782,6 @@ class StructArrayLayout2f8 extends StructArray {
803
782
  }
804
783
 
805
784
  StructArrayLayout2f8.prototype.bytesPerElement = 8;
806
- register('StructArrayLayout2f8', StructArrayLayout2f8);
807
785
 
808
786
  /**
809
787
  * Implementation of the StructArray layout:
@@ -839,7 +817,6 @@ class StructArrayLayout4f16 extends StructArray {
839
817
  }
840
818
 
841
819
  StructArrayLayout4f16.prototype.bytesPerElement = 16;
842
- register('StructArrayLayout4f16', StructArrayLayout4f16);
843
820
 
844
821
  class CollisionBoxStruct extends Struct {
845
822
  get anchorPointX() {
@@ -909,7 +886,7 @@ class CollisionBoxStruct extends Struct {
909
886
  this._structArray.int16[this._pos2 + 11] = x;
910
887
  }
911
888
  get anchorPoint() {
912
- return new Point(this.anchorPointX, this.anchorPointY);
889
+ return { x: this.anchorPointX, y: this.anchorPointY };
913
890
  }
914
891
  }
915
892
 
@@ -929,8 +906,6 @@ class CollisionBoxArray extends StructArrayLayout6i1ul2ui2i24 {
929
906
  }
930
907
  }
931
908
 
932
- register('CollisionBoxArray', CollisionBoxArray);
933
-
934
909
  class PlacedSymbolStruct extends Struct {
935
910
  get anchorX() {
936
911
  return this._structArray.int16[this._pos2 + 0];
@@ -1034,8 +1009,6 @@ class PlacedSymbolArray extends StructArrayLayout2i2ui3ul3ui2f2ub40 {
1034
1009
  }
1035
1010
  }
1036
1011
 
1037
- register('PlacedSymbolArray', PlacedSymbolArray);
1038
-
1039
1012
  class SymbolInstanceStruct extends Struct {
1040
1013
  get anchorX() {
1041
1014
  return this._structArray.int16[this._pos2 + 0];
@@ -1139,8 +1112,6 @@ class SymbolInstanceArray extends StructArrayLayout4i9ui1ul32 {
1139
1112
  }
1140
1113
  }
1141
1114
 
1142
- register('SymbolInstanceArray', SymbolInstanceArray);
1143
-
1144
1115
  class GlyphOffsetStruct extends Struct {
1145
1116
  get offsetX() {
1146
1117
  return this._structArray.float32[this._pos4 + 0];
@@ -1169,8 +1140,6 @@ class GlyphOffsetArray extends StructArrayLayout1f4 {
1169
1140
  }
1170
1141
  }
1171
1142
 
1172
- register('GlyphOffsetArray', GlyphOffsetArray);
1173
-
1174
1143
  class SymbolLineVertexStruct extends Struct {
1175
1144
  get x() {
1176
1145
  return this._structArray.int16[this._pos2 + 0];
@@ -1217,8 +1186,6 @@ class SymbolLineVertexArray extends StructArrayLayout3i6 {
1217
1186
  }
1218
1187
  }
1219
1188
 
1220
- register('SymbolLineVertexArray', SymbolLineVertexArray);
1221
-
1222
1189
  class FeatureIndexStruct extends Struct {
1223
1190
  get featureIndex() {
1224
1191
  return this._structArray.uint32[this._pos4 + 0];
@@ -1256,8 +1223,6 @@ class FeatureIndexArray extends StructArrayLayout1ul2ui8 {
1256
1223
  }
1257
1224
  }
1258
1225
 
1259
- register('FeatureIndexArray', FeatureIndexArray);
1260
-
1261
1226
  module.exports = {
1262
1227
  StructArrayLayout2i4,
1263
1228
  StructArrayLayout4i8,
@@ -6,7 +6,6 @@ const { ProgramConfigurationSet } = require('../program_configuration');
6
6
  const { TriangleIndexArray } = require('../index_array_type');
7
7
  const loadGeometry = require('../load_geometry');
8
8
  const EXTENT = require('../extent');
9
- const { register } = require('../../util/transfer_registry');
10
9
  const EvaluationParameters = require('../../style/evaluation_parameters');
11
10
 
12
11
  function addCircleVertex(layoutVertexArray, x, y, extrudeX, extrudeY) {
@@ -50,7 +49,10 @@ class CircleBucket {
50
49
 
51
50
  update(states, vtLayer, imagePositions) {
52
51
  if (!this.stateDependentLayers.length) return;
53
- this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, imagePositions);
52
+ this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, {
53
+ imagePositions,
54
+ globalState: this.globalState
55
+ });
54
56
  }
55
57
 
56
58
  isEmpty() {
@@ -112,10 +114,11 @@ class CircleBucket {
112
114
  }
113
115
  }
114
116
 
115
- this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, {});
117
+ this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, {
118
+ imagePositions: {},
119
+ globalState: this.globalState
120
+ });
116
121
  }
117
122
  }
118
123
 
119
- register('CircleBucket', CircleBucket, { omit: ['layers'] });
120
-
121
124
  module.exports = CircleBucket;
@@ -8,7 +8,6 @@ const { default: earcut } = require('earcut');
8
8
  const classifyRings = require('../../util/classify_rings');
9
9
  const assert = require('assert');
10
10
  const EARCUT_MAX_RINGS = 500;
11
- const { register } = require('../../util/transfer_registry');
12
11
  const { hasPattern, addPatternDependencies } = require('./pattern_bucket_features');
13
12
  const loadGeometry = require('../load_geometry');
14
13
  const EvaluationParameters = require('../../style/evaluation_parameters');
@@ -68,7 +67,10 @@ class FillBucket {
68
67
 
69
68
  update(states, vtLayer, imagePositions) {
70
69
  if (!this.stateDependentLayers.length) return;
71
- this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, imagePositions);
70
+ this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, {
71
+ imagePositions,
72
+ globalState: this.globalState
73
+ });
72
74
  }
73
75
 
74
76
  addFeatures(options, imagePositions) {
@@ -161,10 +163,11 @@ class FillBucket {
161
163
  triangleSegment.primitiveLength += indices.length / 3;
162
164
  }
163
165
 
164
- this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, imagePositions);
166
+ this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, {
167
+ imagePositions,
168
+ globalState: this.globalState
169
+ });
165
170
  }
166
171
  }
167
172
 
168
- register('FillBucket', FillBucket, { omit: ['layers', 'features'] });
169
-
170
173
  module.exports = FillBucket;
@@ -12,7 +12,6 @@ const {
12
12
  const classifyRings = require('../../util/classify_rings');
13
13
  const assert = require('assert');
14
14
  const EARCUT_MAX_RINGS = 500;
15
- const { register } = require('../../util/transfer_registry');
16
15
  const { hasPattern, addPatternDependencies } = require('./pattern_bucket_features');
17
16
  const loadGeometry = require('../load_geometry');
18
17
  const EvaluationParameters = require('../../style/evaluation_parameters');
@@ -93,7 +92,10 @@ class FillExtrusionBucket {
93
92
 
94
93
  update(states, vtLayer, imagePositions) {
95
94
  if (!this.stateDependentLayers.length) return;
96
- this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, imagePositions);
95
+ this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, {
96
+ imagePositions,
97
+ globalState: this.globalState
98
+ });
97
99
  }
98
100
 
99
101
  isEmpty() {
@@ -229,12 +231,13 @@ class FillExtrusionBucket {
229
231
  segment.vertexLength += numVertices;
230
232
  }
231
233
 
232
- this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, imagePositions);
234
+ this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, {
235
+ imagePositions,
236
+ globalState: this.globalState
237
+ });
233
238
  }
234
239
  }
235
240
 
236
- register('FillExtrusionBucket', FillExtrusionBucket, { omit: ['layers', 'features'] });
237
-
238
241
  module.exports = FillExtrusionBucket;
239
242
 
240
243
  function isBoundaryEdge(p1, p2) {
@@ -1,12 +1,8 @@
1
1
  const CircleBucket = require('./circle_bucket');
2
2
 
3
- const { register } = require('../../util/transfer_registry');
4
-
5
3
  class HeatmapBucket extends CircleBucket {
6
4
  // Needed for flow to accept omit: ['layers'] below, due to
7
5
  // https://github.com/facebook/flow/issues/4262
8
6
  }
9
7
 
10
- register('HeatmapBucket', HeatmapBucket, { omit: ['layers'] });
11
-
12
8
  module.exports = HeatmapBucket;
@@ -7,7 +7,6 @@ const { TriangleIndexArray } = require('../index_array_type');
7
7
  const EXTENT = require('../extent');
8
8
  const mvt = require('@mapwhit/vector-tile');
9
9
  const vectorTileFeatureTypes = mvt.VectorTileFeature.types;
10
- const { register } = require('../../util/transfer_registry');
11
10
  const { hasPattern, addPatternDependencies } = require('./pattern_bucket_features');
12
11
  const loadGeometry = require('../load_geometry');
13
12
  const EvaluationParameters = require('../../style/evaluation_parameters');
@@ -123,7 +122,10 @@ class LineBucket {
123
122
 
124
123
  update(states, vtLayer, imagePositions) {
125
124
  if (!this.stateDependentLayers.length) return;
126
- this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, imagePositions);
125
+ this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, {
126
+ imagePositions,
127
+ globalState: this.globalState
128
+ });
127
129
  }
128
130
 
129
131
  addFeatures(options, imagePositions) {
@@ -159,7 +161,7 @@ class LineBucket {
159
161
  }
160
162
 
161
163
  addFeature(feature, geometry, index, imagePositions) {
162
- const layout = this.layers[0].layout;
164
+ const layout = this.layers[0]._layout;
163
165
  const join = layout.get('line-join').evaluate(feature, {});
164
166
  const cap = layout.get('line-cap');
165
167
  const miterLimit = layout.get('line-miter-limit');
@@ -498,7 +500,10 @@ class LineBucket {
498
500
  startOfLine = false;
499
501
  }
500
502
 
501
- this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, imagePositions);
503
+ this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, {
504
+ imagePositions,
505
+ globalState: this.globalState
506
+ });
502
507
  }
503
508
 
504
509
  /**
@@ -624,6 +629,4 @@ function calculateFullDistance(vertices, first, len) {
624
629
  return total;
625
630
  }
626
631
 
627
- register('LineBucket', LineBucket, { omit: ['layers', 'features'] });
628
-
629
632
  module.exports = LineBucket;
@@ -3,7 +3,7 @@ function hasPattern(type, layers, options) {
3
3
  let hasPattern = false;
4
4
 
5
5
  for (const layer of layers) {
6
- const patternProperty = layer.paint.get(`${type}-pattern`);
6
+ const patternProperty = layer._paint.get(`${type}-pattern`);
7
7
  if (!patternProperty.isConstant()) {
8
8
  hasPattern = true;
9
9
  }
@@ -22,7 +22,7 @@ function hasPattern(type, layers, options) {
22
22
  function addPatternDependencies(type, layers, patternFeature, zoom, options) {
23
23
  const patterns = options.patternDependencies;
24
24
  for (const layer of layers) {
25
- const patternProperty = layer.paint.get(`${type}-pattern`);
25
+ const patternProperty = layer._paint.get(`${type}-pattern`);
26
26
 
27
27
  const patternPropertyValue = patternProperty.value;
28
28
  if (patternPropertyValue.kind !== 'constant') {