@mapwhit/tilerenderer 0.49.0 → 0.51.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 (147) hide show
  1. package/build/min/package.json +1 -1
  2. package/build/min/src/shaders/.dir +0 -0
  3. package/build/min/src/shaders/_prelude.fragment.glsl.js +14 -0
  4. package/build/min/src/shaders/_prelude.vertex.glsl.js +14 -0
  5. package/build/min/src/shaders/background.fragment.glsl.js +5 -0
  6. package/build/min/src/shaders/background.vertex.glsl.js +1 -0
  7. package/build/min/src/shaders/background_pattern.fragment.glsl.js +5 -0
  8. package/build/min/src/shaders/background_pattern.vertex.glsl.js +1 -0
  9. package/build/min/src/shaders/circle.fragment.glsl.js +20 -0
  10. package/build/min/src/shaders/circle.vertex.glsl.js +17 -0
  11. package/build/min/src/shaders/clipping_mask.fragment.glsl.js +1 -0
  12. package/build/min/src/shaders/clipping_mask.vertex.glsl.js +1 -0
  13. package/build/min/src/shaders/collision_box.fragment.glsl.js +1 -0
  14. package/build/min/src/shaders/collision_box.vertex.glsl.js +1 -0
  15. package/build/min/src/shaders/collision_circle.fragment.glsl.js +1 -0
  16. package/build/min/src/shaders/collision_circle.vertex.glsl.js +1 -0
  17. package/build/min/src/shaders/debug.fragment.glsl.js +1 -0
  18. package/build/min/src/shaders/debug.vertex.glsl.js +1 -0
  19. package/build/min/src/shaders/fill.fragment.glsl.js +10 -0
  20. package/build/min/src/shaders/fill.vertex.glsl.js +7 -0
  21. package/build/min/src/shaders/fill_extrusion.fragment.glsl.js +5 -0
  22. package/build/min/src/shaders/fill_extrusion.fragment.glsl.txt +1 -9
  23. package/build/min/src/shaders/fill_extrusion.vertex.glsl.js +9 -0
  24. package/build/min/src/shaders/fill_extrusion.vertex.glsl.txt +4 -4
  25. package/build/min/src/shaders/fill_extrusion_pattern.fragment.glsl.js +15 -0
  26. package/build/min/src/shaders/fill_extrusion_pattern.vertex.glsl.js +11 -0
  27. package/build/min/src/shaders/fill_outline.fragment.glsl.js +10 -0
  28. package/build/min/src/shaders/fill_outline.vertex.glsl.js +7 -0
  29. package/build/min/src/shaders/fill_outline_pattern.fragment.glsl.js +13 -0
  30. package/build/min/src/shaders/fill_outline_pattern.vertex.glsl.js +9 -0
  31. package/build/min/src/shaders/fill_pattern.fragment.glsl.js +13 -0
  32. package/build/min/src/shaders/fill_pattern.vertex.glsl.js +9 -0
  33. package/build/min/src/shaders/heatmap.fragment.glsl.js +10 -0
  34. package/build/min/src/shaders/heatmap.vertex.glsl.js +8 -0
  35. package/build/min/src/shaders/heatmap_texture.fragment.glsl.js +5 -0
  36. package/build/min/src/shaders/heatmap_texture.vertex.glsl.js +1 -0
  37. package/build/min/src/shaders/hillshade.fragment.glsl.js +7 -0
  38. package/build/min/src/shaders/hillshade.vertex.glsl.js +1 -0
  39. package/build/min/src/shaders/hillshade_prepare.fragment.glsl.js +8 -0
  40. package/build/min/src/shaders/hillshade_prepare.vertex.glsl.js +1 -0
  41. package/build/min/src/shaders/line.fragment.glsl.js +12 -0
  42. package/build/min/src/shaders/line.vertex.glsl.js +17 -0
  43. package/build/min/src/shaders/line_gradient.fragment.glsl.js +10 -0
  44. package/build/min/src/shaders/line_gradient.vertex.glsl.js +16 -0
  45. package/build/min/src/shaders/line_pattern.fragment.glsl.js +15 -0
  46. package/build/min/src/shaders/line_pattern.vertex.glsl.js +20 -0
  47. package/build/min/src/shaders/line_sdf.fragment.glsl.js +17 -0
  48. package/build/min/src/shaders/line_sdf.vertex.glsl.js +20 -0
  49. package/build/min/src/shaders/raster.fragment.glsl.js +5 -0
  50. package/build/min/src/shaders/raster.vertex.glsl.js +1 -0
  51. package/build/min/src/shaders/symbol_icon.fragment.glsl.js +9 -0
  52. package/build/min/src/shaders/symbol_icon.vertex.glsl.js +5 -0
  53. package/build/min/src/shaders/symbol_sdf.fragment.glsl.js +19 -0
  54. package/build/min/src/shaders/symbol_sdf.vertex.glsl.js +13 -0
  55. package/package.json +7 -7
  56. package/src/data/bucket/fill_bucket.js +1 -1
  57. package/src/data/bucket/fill_extrusion_bucket.js +2 -2
  58. package/src/data/bucket/line_bucket.js +1 -1
  59. package/src/data/bucket/symbol_bucket.js +16 -15
  60. package/src/data/feature_index.js +1 -1
  61. package/src/data/program_configuration.js +1 -1
  62. package/src/gl/color_mode.js +1 -1
  63. package/src/gl/value.js +1 -1
  64. package/src/render/draw_debug.js +1 -1
  65. package/src/render/draw_fill.js +1 -1
  66. package/src/render/draw_heatmap.js +1 -1
  67. package/src/render/glyph_manager.js +6 -130
  68. package/src/render/painter.js +1 -1
  69. package/src/render/uniform_binding.js +1 -1
  70. package/src/shaders/fill_extrusion.fragment.glsl +0 -7
  71. package/src/shaders/fill_extrusion.vertex.glsl +4 -4
  72. package/src/shaders/index.js +50 -50
  73. package/src/source/geojson_worker_source.js +4 -4
  74. package/src/source/geojson_wrapper.js +34 -26
  75. package/src/source/resources/glyphs.js +73 -0
  76. package/src/source/resources/images.js +68 -0
  77. package/src/source/resources/index.js +22 -0
  78. package/src/source/vector_tile_worker_source.js +5 -5
  79. package/src/source/worker.js +6 -5
  80. package/src/source/worker_tile.js +4 -4
  81. package/src/style/properties.js +1 -2
  82. package/src/style/style.js +3 -3
  83. package/src/style/style_layer/symbol_style_layer.js +1 -1
  84. package/src/style/style_layer.js +1 -1
  85. package/src/style-spec/feature_filter/index.js +43 -34
  86. package/src/style-spec/group_by_layout.js +10 -32
  87. package/src/style-spec/reference/v8.json +1 -1
  88. package/src/symbol/mergelines.js +1 -3
  89. package/src/symbol/placement.js +21 -2
  90. package/src/symbol/shaping.js +9 -18
  91. package/src/symbol/symbol_layout.js +1 -2
  92. package/src/symbol/symbol_size.js +1 -1
  93. package/src/symbol/transform_text.js +4 -8
  94. package/src/ui/map.js +11 -39
  95. package/src/util/browser.js +3 -18
  96. package/src/util/classify_rings.js +1 -1
  97. package/src/util/dom.js +0 -88
  98. package/src/util/find_pole_of_inaccessibility.js +2 -2
  99. package/src/util/web_worker_transfer.js +4 -4
  100. package/src/style/load_glyph_range.js +0 -17
  101. package/src/style-spec/expression/compound_expression.js +0 -132
  102. package/src/style-spec/expression/definitions/assertion.js +0 -116
  103. package/src/style-spec/expression/definitions/at.js +0 -57
  104. package/src/style-spec/expression/definitions/case.js +0 -73
  105. package/src/style-spec/expression/definitions/coalesce.js +0 -68
  106. package/src/style-spec/expression/definitions/coercion.js +0 -109
  107. package/src/style-spec/expression/definitions/collator.js +0 -102
  108. package/src/style-spec/expression/definitions/comparison.js +0 -193
  109. package/src/style-spec/expression/definitions/formatted.js +0 -123
  110. package/src/style-spec/expression/definitions/index.js +0 -356
  111. package/src/style-spec/expression/definitions/interpolate.js +0 -245
  112. package/src/style-spec/expression/definitions/length.js +0 -54
  113. package/src/style-spec/expression/definitions/let.js +0 -60
  114. package/src/style-spec/expression/definitions/literal.js +0 -69
  115. package/src/style-spec/expression/definitions/match.js +0 -142
  116. package/src/style-spec/expression/definitions/step.js +0 -116
  117. package/src/style-spec/expression/definitions/var.js +0 -38
  118. package/src/style-spec/expression/evaluation_context.js +0 -35
  119. package/src/style-spec/expression/index.js +0 -329
  120. package/src/style-spec/expression/is_constant.js +0 -63
  121. package/src/style-spec/expression/parsing_context.js +0 -212
  122. package/src/style-spec/expression/parsing_error.js +0 -9
  123. package/src/style-spec/expression/runtime_error.js +0 -12
  124. package/src/style-spec/expression/scope.js +0 -34
  125. package/src/style-spec/expression/stops.js +0 -37
  126. package/src/style-spec/expression/types.js +0 -88
  127. package/src/style-spec/expression/values.js +0 -126
  128. package/src/style-spec/function/convert.js +0 -234
  129. package/src/style-spec/function/index.js +0 -299
  130. package/src/style-spec/util/color.js +0 -73
  131. package/src/style-spec/util/color_spaces.js +0 -128
  132. package/src/style-spec/util/get_type.js +0 -18
  133. package/src/style-spec/util/interpolate.js +0 -21
  134. package/src/style-spec/util/properties.js +0 -17
  135. package/src/style-spec/util/result.js +0 -19
  136. package/src/ui/anchor.js +0 -24
  137. package/src/ui/bind_handlers.js +0 -199
  138. package/src/ui/events.js +0 -210
  139. package/src/ui/handler/box_zoom.js +0 -151
  140. package/src/ui/handler/dblclick_zoom.js +0 -91
  141. package/src/ui/handler/drag_pan.js +0 -285
  142. package/src/ui/handler/drag_rotate.js +0 -290
  143. package/src/ui/handler/frame.js +0 -28
  144. package/src/ui/handler/inertia.js +0 -45
  145. package/src/ui/handler/keyboard.js +0 -148
  146. package/src/ui/handler/scroll_zoom.js +0 -284
  147. package/src/ui/handler/touch_zoom_rotate.js +0 -263
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.49.0",
4
+ "version": "0.51.0",
5
5
  "main": "src/index.js",
6
6
  "license": "BSD-3-Clause",
7
7
  "repository": {
@@ -11,23 +11,23 @@
11
11
  "dependencies": {
12
12
  "@mapbox/gl-matrix": "^0.0.1",
13
13
  "@mapbox/point-geometry": "^0.1.0",
14
- "@mapbox/tiny-sdf": "^1.1.0",
15
14
  "@mapbox/unitbezier": "^0.0.0",
16
- "@mapbox/vector-tile": "^1.3.1",
17
15
  "@mapbox/whoots-js": "^3.0.0",
18
16
  "@mapwhit/geojson-rewind": "^1.0.0",
19
17
  "@mapwhit/pbf": "^1.0.0",
18
+ "@mapwhit/style-expressions": "^0.0.2",
19
+ "@mapwhit/vector-tile": "^1.0.0",
20
20
  "@mapwhit/vt-pbf": "^1.0.0",
21
21
  "@pirxpilot/nanoassert": "~1",
22
22
  "csscolorparser": "^1.0.3",
23
- "earcut": "^2.0.3",
24
- "geojson-vt": "^3.1.2",
23
+ "earcut": "^3.0.1",
24
+ "geojson-vt": "^4.0.2",
25
25
  "grid-index": "^1.1.0",
26
26
  "murmurhash-js": "^1.0.0",
27
27
  "potpack": "^1.0.1",
28
- "quickselect": "^2.0.0",
28
+ "quickselect": "^3.0.0",
29
29
  "supercluster": "^2.0.1",
30
- "tinyqueue": "^1.1.0"
30
+ "tinyqueue": "^3.0.0"
31
31
  },
32
32
  "browser": {
33
33
  "assert": "@pirxpilot/nanoassert",
@@ -4,7 +4,7 @@ const { members: layoutAttributes } = require('./fill_attributes');
4
4
  const SegmentVector = require('../segment');
5
5
  const { ProgramConfigurationSet } = require('../program_configuration');
6
6
  const { LineIndexArray, TriangleIndexArray } = require('../index_array_type');
7
- const earcut = require('earcut');
7
+ 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;
@@ -5,10 +5,10 @@ const SegmentVector = require('../segment');
5
5
  const { ProgramConfigurationSet } = require('../program_configuration');
6
6
  const { TriangleIndexArray } = require('../index_array_type');
7
7
  const EXTENT = require('../extent');
8
- const earcut = require('earcut');
8
+ const { default: earcut } = require('earcut');
9
9
  const {
10
10
  VectorTileFeature: { types: vectorTileFeatureTypes }
11
- } = require('@mapbox/vector-tile');
11
+ } = require('@mapwhit/vector-tile');
12
12
  const classifyRings = require('../../util/classify_rings');
13
13
  const assert = require('assert');
14
14
  const EARCUT_MAX_RINGS = 500;
@@ -5,7 +5,7 @@ const SegmentVector = require('../segment');
5
5
  const { ProgramConfigurationSet } = require('../program_configuration');
6
6
  const { TriangleIndexArray } = require('../index_array_type');
7
7
  const EXTENT = require('../extent');
8
- const mvt = require('@mapbox/vector-tile');
8
+ const mvt = require('@mapwhit/vector-tile');
9
9
  const vectorTileFeatureTypes = mvt.VectorTileFeature.types;
10
10
  const { register } = require('../../util/transfer_registry');
11
11
  const { hasPattern, addPatternDependencies } = require('./pattern_bucket_features');
@@ -26,13 +26,13 @@ const transformText = require('../../symbol/transform_text');
26
26
  const mergeLines = require('../../symbol/mergelines');
27
27
  const { allowsVerticalWritingMode } = require('../../util/script_detection');
28
28
  const loadGeometry = require('../load_geometry');
29
- const mvt = require('@mapbox/vector-tile');
29
+ const mvt = require('@mapwhit/vector-tile');
30
30
  const vectorTileFeatureTypes = mvt.VectorTileFeature.types;
31
31
  const { verticalizedCharacterMap } = require('../../util/verticalize_punctuation');
32
32
  const { getSizeData } = require('../../symbol/symbol_size');
33
33
  const { register } = require('../../util/transfer_registry');
34
34
  const EvaluationParameters = require('../../style/evaluation_parameters');
35
- const { Formatted } = require('../../style-spec/expression/definitions/formatted');
35
+ const { Formatted } = require('@mapwhit/style-expressions');
36
36
 
37
37
  // Opacity arrays are frequently updated but don't contain a lot of information, so we pack them
38
38
  // tight. Each Uint32 is actually four duplicate Uint8s for the four corners of a glyph
@@ -267,8 +267,15 @@ class SymbolBucket {
267
267
 
268
268
  let text;
269
269
  if (hasText) {
270
- text = layer.getValueAndResolveTokens('text-field', feature);
271
- text = transformText(text, layer, feature);
270
+ // Expression evaluation will automatically coerce to Formatted
271
+ // but plain string token evaluation skips that pathway so do the
272
+ // conversion here.
273
+ const resolvedTokens = layer.getValueAndResolveTokens('text-field', feature);
274
+ text = transformText(
275
+ resolvedTokens instanceof Formatted ? resolvedTokens : Formatted.fromString(resolvedTokens),
276
+ layer,
277
+ feature
278
+ );
272
279
  }
273
280
 
274
281
  let icon;
@@ -300,19 +307,13 @@ class SymbolBucket {
300
307
 
301
308
  if (text) {
302
309
  const fontStack = textFont.evaluate(feature, {}).join(',');
303
- const stack = (stacks[fontStack] = stacks[fontStack] || {});
304
310
  const textAlongLine =
305
311
  layout.get('text-rotation-alignment') === 'map' && layout.get('symbol-placement') !== 'point';
306
- if (text instanceof Formatted) {
307
- for (const section of text.sections) {
308
- const doesAllowVerticalWritingMode = allowsVerticalWritingMode(text.toString());
309
- const sectionFont = section.fontStack || fontStack;
310
- const sectionStack = (stacks[sectionFont] = stacks[sectionFont] || {});
311
- this.calculateGlyphDependencies(section.text, sectionStack, textAlongLine, doesAllowVerticalWritingMode);
312
- }
313
- } else {
314
- const doesAllowVerticalWritingMode = allowsVerticalWritingMode(text);
315
- this.calculateGlyphDependencies(text, stack, textAlongLine, doesAllowVerticalWritingMode);
312
+ for (const section of text.sections) {
313
+ const doesAllowVerticalWritingMode = allowsVerticalWritingMode(text.toString());
314
+ const sectionFont = section.fontStack || fontStack;
315
+ const sectionStack = (stacks[sectionFont] = stacks[sectionFont] || {});
316
+ this.calculateGlyphDependencies(section.text, sectionStack, textAlongLine, doesAllowVerticalWritingMode);
316
317
  }
317
318
  }
318
319
  }
@@ -3,7 +3,7 @@ const EXTENT = require('./extent');
3
3
  const featureFilter = require('../style-spec/feature_filter');
4
4
  const Grid = require('grid-index');
5
5
  const dictionaryCoder = require('../util/dictionary_coder');
6
- const vt = require('@mapbox/vector-tile');
6
+ const vt = require('@mapwhit/vector-tile');
7
7
  const Protobuf = require('@mapwhit/pbf');
8
8
  const GeoJSONFeature = require('../util/vectortile_to_geojson');
9
9
  const { arraysIntersect } = require('../util/object');
@@ -1,5 +1,5 @@
1
1
  const { packUint8ToFloat } = require('../shaders/encode_attribute');
2
- const { supportsPropertyExpression } = require('../style-spec/util/properties');
2
+ const { supportsPropertyExpression } = require('@mapwhit/style-expressions');
3
3
  const { register } = require('../util/transfer_registry');
4
4
  const { PossiblyEvaluatedPropertyValue } = require('../style/properties');
5
5
  const {
@@ -1,4 +1,4 @@
1
- const Color = require('../style-spec/util/color');
1
+ const { Color } = require('@mapwhit/style-expressions');
2
2
 
3
3
  const ZERO = 0x0000;
4
4
  const ONE = 0x0001;
package/src/gl/value.js CHANGED
@@ -1,4 +1,4 @@
1
- const Color = require('../style-spec/util/color');
1
+ const { Color } = require('@mapwhit/style-expressions');
2
2
 
3
3
  class ClearColor {
4
4
  constructor(context) {
@@ -8,7 +8,7 @@ const DepthMode = require('../gl/depth_mode');
8
8
  const StencilMode = require('../gl/stencil_mode');
9
9
  const CullFaceMode = require('../gl/cull_face_mode');
10
10
  const { debugUniformValues } = require('./program/debug_program');
11
- const Color = require('../style-spec/util/color');
11
+ const { Color } = require('@mapwhit/style-expressions');
12
12
 
13
13
  module.exports = drawDebug;
14
14
 
@@ -1,4 +1,4 @@
1
- const Color = require('../style-spec/util/color');
1
+ const { Color } = require('@mapwhit/style-expressions');
2
2
  const DepthMode = require('../gl/depth_mode');
3
3
  const CullFaceMode = require('../gl/cull_face_mode');
4
4
  const {
@@ -1,5 +1,5 @@
1
1
  const Texture = require('./texture');
2
- const Color = require('../style-spec/util/color');
2
+ const { Color } = require('@mapwhit/style-expressions');
3
3
  const DepthMode = require('../gl/depth_mode');
4
4
  const StencilMode = require('../gl/stencil_mode');
5
5
  const ColorMode = require('../gl/color_mode');
@@ -1,140 +1,16 @@
1
- const loadGlyphRange = require('../style/load_glyph_range');
2
-
3
- const TinySDF = require('@mapbox/tiny-sdf');
4
- const isChar = require('../util/is_char_in_unicode_block');
5
- const { AlphaImage } = require('../util/image');
6
-
7
1
  class GlyphManager {
8
- // exposed as statics to enable stubbing in unit tests
9
- static loadGlyphRange = loadGlyphRange;
10
- static TinySDF = TinySDF;
11
-
12
- constructor(localIdeographFontFamily) {
13
- this.localIdeographFontFamily = localIdeographFontFamily;
14
- this.entries = {};
15
- }
2
+ #cache = {};
16
3
 
17
4
  setGlyphsLoader(loader) {
18
5
  this.loader = loader;
19
6
  }
20
7
 
21
- async getGlyphs(glyphs) {
22
- const all = [];
23
- for (const stack in glyphs) {
24
- for (const id of glyphs[stack]) {
25
- all.push(retrieveGlyph(this, { stack, id }));
26
- }
27
- }
28
- const fetchedGlyphs = await Promise.all(all);
29
- const result = {};
30
- for (const { stack, id, glyph } of fetchedGlyphs) {
31
- // Clone the glyph so that our own copy of its ArrayBuffer doesn't get transferred.
32
- (result[stack] ??= {})[id] = cloneGlyph(glyph);
33
- }
34
- return result;
35
-
36
- function cloneGlyph(glyph) {
37
- if (glyph) {
38
- return {
39
- id: glyph.id,
40
- bitmap: glyph.bitmap.clone(),
41
- metrics: glyph.metrics
42
- };
43
- }
44
- }
45
-
46
- async function retrieveGlyph({ entries, loader, localIdeographFontFamily }, { stack, id }) {
47
- const entry = (entries[stack] ??= { glyphs: {}, requests: {} });
48
-
49
- let glyph = entry.glyphs[id];
50
- if (glyph) {
51
- return { stack, id, glyph };
52
- }
53
-
54
- glyph = tinySDF(localIdeographFontFamily, entry, stack, id);
55
- if (glyph) {
56
- return { stack, id, glyph };
57
- }
58
-
59
- const range = Math.floor(id / 256);
60
- if (range * 256 > 65535) {
61
- throw new Error('glyphs > 65535 not supported');
62
- }
63
-
64
- const promise = (entry.requests[range] ??= GlyphManager.loadGlyphRange(stack, range, loader));
65
- const response = await promise;
66
- if (response) {
67
- for (const id in response) {
68
- entry.glyphs[+id] = response[+id];
69
- }
70
- }
71
- delete entry.requests[range];
72
- return { stack, id, glyph: response?.[id] || null };
73
- }
8
+ async loadGlyphRange(stack, range) {
9
+ this.#cache[stack] ??= {};
10
+ const promise = (this.#cache[stack][range] ??= this.loader(stack, range));
11
+ const response = await promise;
12
+ return response.slice();
74
13
  }
75
14
  }
76
15
 
77
16
  module.exports = GlyphManager;
78
-
79
- /**
80
- * Creates a glyph descriptor for a character using TinySDF if the character belongs to
81
- * the CJK Unified Ideographs or Hangul Syllables ranges.
82
- *
83
- * The function checks if the provided font family is valid and whether the Unicode code
84
- * point (id) falls within the supported character ranges. If so, it creates or reuses a
85
- * TinySDF instance from the given entry to generate a bitmap for the character.
86
- *
87
- * @param {string} family - The font family to be used for rendering the glyph.
88
- * @param {Object} entry - An object containing glyph-related data. May store a cached TinySDF instance.
89
- * @param {string} stack - A string representing the font style stack (e.g., "bold", "medium", "light") to determine the font weight.
90
- * @param {number} id - The Unicode code point of the character to render.
91
- * @returns {Object|undefined} An object with the glyph descriptor containing:
92
- * - id {number}: The Unicode code point.
93
- * - bitmap {AlphaImage}: An image instance created from the glyph bitmap.
94
- * - metrics {Object}: An object containing rendering metrics:
95
- * - width {number}: The width of the glyph.
96
- * - height {number}: The height of the glyph.
97
- * - left {number}: The left bearing for the glyph.
98
- * - top {number}: The top bearing for the glyph (used for vertical offset).
99
- * - advance {number}: The advance width for spacing the glyph.
100
- *
101
- * Returns undefined if no font family is provided or if the character is not within the supported ranges.
102
- */
103
- function tinySDF(family, entry, stack, id) {
104
- if (!family) {
105
- return;
106
- }
107
-
108
- if (!isChar['CJK Unified Ideographs'](id) && !isChar['Hangul Syllables'](id)) {
109
- return;
110
- }
111
-
112
- const tinySDF = getTinySDF();
113
- return {
114
- id,
115
- bitmap: new AlphaImage({ width: 30, height: 30 }, tinySDF.draw(String.fromCharCode(id))),
116
- metrics: {
117
- width: 24,
118
- height: 24,
119
- left: 0,
120
- top: -8,
121
- advance: 24
122
- }
123
- };
124
-
125
- function getTinySDF() {
126
- const { tinySDF } = entry;
127
- if (tinySDF) {
128
- return tinySDF;
129
- }
130
- let fontWeight = '400';
131
- if (/bold/i.test(stack)) {
132
- fontWeight = '900';
133
- } else if (/medium/i.test(stack)) {
134
- fontWeight = '500';
135
- } else if (/light/i.test(stack)) {
136
- fontWeight = '200';
137
- }
138
- return (entry.tinySDF = new GlyphManager.TinySDF(24, 3, 8, 0.25, family, fontWeight));
139
- }
140
- }
@@ -20,7 +20,7 @@ const ColorMode = require('../gl/color_mode');
20
20
  const CullFaceMode = require('../gl/cull_face_mode');
21
21
  const updateTileMasks = require('./tile_mask');
22
22
  const { clippingMaskUniformValues } = require('./program/clipping_mask_program');
23
- const Color = require('../style-spec/util/color');
23
+ const { Color } = require('@mapwhit/style-expressions');
24
24
  const symbol = require('./draw_symbol');
25
25
  const circle = require('./draw_circle');
26
26
  const heatmap = require('./draw_heatmap');
@@ -1,4 +1,4 @@
1
- const Color = require('../style-spec/util/color');
1
+ const { Color } = require('@mapwhit/style-expressions');
2
2
 
3
3
  class Uniform {
4
4
  constructor(context, location) {
@@ -1,13 +1,6 @@
1
1
  varying vec4 v_color;
2
- #pragma mapbox: define lowp float base
3
- #pragma mapbox: define lowp float height
4
- #pragma mapbox: define highp vec4 color
5
2
 
6
3
  void main() {
7
- #pragma mapbox: initialize lowp float base
8
- #pragma mapbox: initialize lowp float height
9
- #pragma mapbox: initialize highp vec4 color
10
-
11
4
  gl_FragColor = v_color;
12
5
 
13
6
  #ifdef OVERDRAW_INSPECTOR
@@ -10,14 +10,14 @@ attribute vec4 a_normal_ed;
10
10
 
11
11
  varying vec4 v_color;
12
12
 
13
- #pragma mapbox: define lowp float base
14
- #pragma mapbox: define lowp float height
13
+ #pragma mapbox: define highp float base
14
+ #pragma mapbox: define highp float height
15
15
 
16
16
  #pragma mapbox: define highp vec4 color
17
17
 
18
18
  void main() {
19
- #pragma mapbox: initialize lowp float base
20
- #pragma mapbox: initialize lowp float height
19
+ #pragma mapbox: initialize highp float base
20
+ #pragma mapbox: initialize highp float height
21
21
  #pragma mapbox: initialize highp vec4 color
22
22
 
23
23
  vec3 normal = a_normal_ed.xyz;
@@ -1,103 +1,103 @@
1
1
  const shaders = {
2
2
  prelude: {
3
- fragmentSource: require('../../build/min/src/shaders/_prelude.fragment.glsl.txt'),
4
- vertexSource: require('../../build/min/src/shaders/_prelude.vertex.glsl.txt')
3
+ fragmentSource: require('../../build/min/src/shaders/_prelude.fragment.glsl.js'),
4
+ vertexSource: require('../../build/min/src/shaders/_prelude.vertex.glsl.js')
5
5
  },
6
6
  background: {
7
- fragmentSource: require('../../build/min/src/shaders/background.fragment.glsl.txt'),
8
- vertexSource: require('../../build/min/src/shaders/background.vertex.glsl.txt')
7
+ fragmentSource: require('../../build/min/src/shaders/background.fragment.glsl.js'),
8
+ vertexSource: require('../../build/min/src/shaders/background.vertex.glsl.js')
9
9
  },
10
10
  backgroundPattern: {
11
- fragmentSource: require('../../build/min/src/shaders/background_pattern.fragment.glsl.txt'),
12
- vertexSource: require('../../build/min/src/shaders/background_pattern.vertex.glsl.txt')
11
+ fragmentSource: require('../../build/min/src/shaders/background_pattern.fragment.glsl.js'),
12
+ vertexSource: require('../../build/min/src/shaders/background_pattern.vertex.glsl.js')
13
13
  },
14
14
  circle: {
15
- fragmentSource: require('../../build/min/src/shaders/circle.fragment.glsl.txt'),
16
- vertexSource: require('../../build/min/src/shaders/circle.vertex.glsl.txt')
15
+ fragmentSource: require('../../build/min/src/shaders/circle.fragment.glsl.js'),
16
+ vertexSource: require('../../build/min/src/shaders/circle.vertex.glsl.js')
17
17
  },
18
18
  clippingMask: {
19
- fragmentSource: require('../../build/min/src/shaders/clipping_mask.fragment.glsl.txt'),
20
- vertexSource: require('../../build/min/src/shaders/clipping_mask.vertex.glsl.txt')
19
+ fragmentSource: require('../../build/min/src/shaders/clipping_mask.fragment.glsl.js'),
20
+ vertexSource: require('../../build/min/src/shaders/clipping_mask.vertex.glsl.js')
21
21
  },
22
22
  heatmap: {
23
- fragmentSource: require('../../build/min/src/shaders/heatmap.fragment.glsl.txt'),
24
- vertexSource: require('../../build/min/src/shaders/heatmap.vertex.glsl.txt')
23
+ fragmentSource: require('../../build/min/src/shaders/heatmap.fragment.glsl.js'),
24
+ vertexSource: require('../../build/min/src/shaders/heatmap.vertex.glsl.js')
25
25
  },
26
26
  heatmapTexture: {
27
- fragmentSource: require('../../build/min/src/shaders/heatmap_texture.fragment.glsl.txt'),
28
- vertexSource: require('../../build/min/src/shaders/heatmap_texture.vertex.glsl.txt')
27
+ fragmentSource: require('../../build/min/src/shaders/heatmap_texture.fragment.glsl.js'),
28
+ vertexSource: require('../../build/min/src/shaders/heatmap_texture.vertex.glsl.js')
29
29
  },
30
30
  collisionBox: {
31
- fragmentSource: require('../../build/min/src/shaders/collision_box.fragment.glsl.txt'),
32
- vertexSource: require('../../build/min/src/shaders/collision_box.vertex.glsl.txt')
31
+ fragmentSource: require('../../build/min/src/shaders/collision_box.fragment.glsl.js'),
32
+ vertexSource: require('../../build/min/src/shaders/collision_box.vertex.glsl.js')
33
33
  },
34
34
  collisionCircle: {
35
- fragmentSource: require('../../build/min/src/shaders/collision_circle.fragment.glsl.txt'),
36
- vertexSource: require('../../build/min/src/shaders/collision_circle.vertex.glsl.txt')
35
+ fragmentSource: require('../../build/min/src/shaders/collision_circle.fragment.glsl.js'),
36
+ vertexSource: require('../../build/min/src/shaders/collision_circle.vertex.glsl.js')
37
37
  },
38
38
  debug: {
39
- fragmentSource: require('../../build/min/src/shaders/debug.fragment.glsl.txt'),
40
- vertexSource: require('../../build/min/src/shaders/debug.vertex.glsl.txt')
39
+ fragmentSource: require('../../build/min/src/shaders/debug.fragment.glsl.js'),
40
+ vertexSource: require('../../build/min/src/shaders/debug.vertex.glsl.js')
41
41
  },
42
42
  fill: {
43
- fragmentSource: require('../../build/min/src/shaders/fill.fragment.glsl.txt'),
44
- vertexSource: require('../../build/min/src/shaders/fill.vertex.glsl.txt')
43
+ fragmentSource: require('../../build/min/src/shaders/fill.fragment.glsl.js'),
44
+ vertexSource: require('../../build/min/src/shaders/fill.vertex.glsl.js')
45
45
  },
46
46
  fillOutline: {
47
- fragmentSource: require('../../build/min/src/shaders/fill_outline.fragment.glsl.txt'),
48
- vertexSource: require('../../build/min/src/shaders/fill_outline.vertex.glsl.txt')
47
+ fragmentSource: require('../../build/min/src/shaders/fill_outline.fragment.glsl.js'),
48
+ vertexSource: require('../../build/min/src/shaders/fill_outline.vertex.glsl.js')
49
49
  },
50
50
  fillOutlinePattern: {
51
- fragmentSource: require('../../build/min/src/shaders/fill_outline_pattern.fragment.glsl.txt'),
52
- vertexSource: require('../../build/min/src/shaders/fill_outline_pattern.vertex.glsl.txt')
51
+ fragmentSource: require('../../build/min/src/shaders/fill_outline_pattern.fragment.glsl.js'),
52
+ vertexSource: require('../../build/min/src/shaders/fill_outline_pattern.vertex.glsl.js')
53
53
  },
54
54
  fillPattern: {
55
- fragmentSource: require('../../build/min/src/shaders/fill_pattern.fragment.glsl.txt'),
56
- vertexSource: require('../../build/min/src/shaders/fill_pattern.vertex.glsl.txt')
55
+ fragmentSource: require('../../build/min/src/shaders/fill_pattern.fragment.glsl.js'),
56
+ vertexSource: require('../../build/min/src/shaders/fill_pattern.vertex.glsl.js')
57
57
  },
58
58
  fillExtrusion: {
59
- fragmentSource: require('../../build/min/src/shaders/fill_extrusion.fragment.glsl.txt'),
60
- vertexSource: require('../../build/min/src/shaders/fill_extrusion.vertex.glsl.txt')
59
+ fragmentSource: require('../../build/min/src/shaders/fill_extrusion.fragment.glsl.js'),
60
+ vertexSource: require('../../build/min/src/shaders/fill_extrusion.vertex.glsl.js')
61
61
  },
62
62
  fillExtrusionPattern: {
63
- fragmentSource: require('../../build/min/src/shaders/fill_extrusion_pattern.fragment.glsl.txt'),
64
- vertexSource: require('../../build/min/src/shaders/fill_extrusion_pattern.vertex.glsl.txt')
63
+ fragmentSource: require('../../build/min/src/shaders/fill_extrusion_pattern.fragment.glsl.js'),
64
+ vertexSource: require('../../build/min/src/shaders/fill_extrusion_pattern.vertex.glsl.js')
65
65
  },
66
66
  hillshadePrepare: {
67
- fragmentSource: require('../../build/min/src/shaders/hillshade_prepare.fragment.glsl.txt'),
68
- vertexSource: require('../../build/min/src/shaders/hillshade_prepare.vertex.glsl.txt')
67
+ fragmentSource: require('../../build/min/src/shaders/hillshade_prepare.fragment.glsl.js'),
68
+ vertexSource: require('../../build/min/src/shaders/hillshade_prepare.vertex.glsl.js')
69
69
  },
70
70
  hillshade: {
71
- fragmentSource: require('../../build/min/src/shaders/hillshade.fragment.glsl.txt'),
72
- vertexSource: require('../../build/min/src/shaders/hillshade.vertex.glsl.txt')
71
+ fragmentSource: require('../../build/min/src/shaders/hillshade.fragment.glsl.js'),
72
+ vertexSource: require('../../build/min/src/shaders/hillshade.vertex.glsl.js')
73
73
  },
74
74
  line: {
75
- fragmentSource: require('../../build/min/src/shaders/line.fragment.glsl.txt'),
76
- vertexSource: require('../../build/min/src/shaders/line.vertex.glsl.txt')
75
+ fragmentSource: require('../../build/min/src/shaders/line.fragment.glsl.js'),
76
+ vertexSource: require('../../build/min/src/shaders/line.vertex.glsl.js')
77
77
  },
78
78
  lineGradient: {
79
- fragmentSource: require('../../build/min/src/shaders/line_gradient.fragment.glsl.txt'),
80
- vertexSource: require('../../build/min/src/shaders/line_gradient.vertex.glsl.txt')
79
+ fragmentSource: require('../../build/min/src/shaders/line_gradient.fragment.glsl.js'),
80
+ vertexSource: require('../../build/min/src/shaders/line_gradient.vertex.glsl.js')
81
81
  },
82
82
  linePattern: {
83
- fragmentSource: require('../../build/min/src/shaders/line_pattern.fragment.glsl.txt'),
84
- vertexSource: require('../../build/min/src/shaders/line_pattern.vertex.glsl.txt')
83
+ fragmentSource: require('../../build/min/src/shaders/line_pattern.fragment.glsl.js'),
84
+ vertexSource: require('../../build/min/src/shaders/line_pattern.vertex.glsl.js')
85
85
  },
86
86
  lineSDF: {
87
- fragmentSource: require('../../build/min/src/shaders/line_sdf.fragment.glsl.txt'),
88
- vertexSource: require('../../build/min/src/shaders/line_sdf.vertex.glsl.txt')
87
+ fragmentSource: require('../../build/min/src/shaders/line_sdf.fragment.glsl.js'),
88
+ vertexSource: require('../../build/min/src/shaders/line_sdf.vertex.glsl.js')
89
89
  },
90
90
  raster: {
91
- fragmentSource: require('../../build/min/src/shaders/raster.fragment.glsl.txt'),
92
- vertexSource: require('../../build/min/src/shaders/raster.vertex.glsl.txt')
91
+ fragmentSource: require('../../build/min/src/shaders/raster.fragment.glsl.js'),
92
+ vertexSource: require('../../build/min/src/shaders/raster.vertex.glsl.js')
93
93
  },
94
94
  symbolIcon: {
95
- fragmentSource: require('../../build/min/src/shaders/symbol_icon.fragment.glsl.txt'),
96
- vertexSource: require('../../build/min/src/shaders/symbol_icon.vertex.glsl.txt')
95
+ fragmentSource: require('../../build/min/src/shaders/symbol_icon.fragment.glsl.js'),
96
+ vertexSource: require('../../build/min/src/shaders/symbol_icon.vertex.glsl.js')
97
97
  },
98
98
  symbolSDF: {
99
- fragmentSource: require('../../build/min/src/shaders/symbol_sdf.fragment.glsl.txt'),
100
- vertexSource: require('../../build/min/src/shaders/symbol_sdf.vertex.glsl.txt')
99
+ fragmentSource: require('../../build/min/src/shaders/symbol_sdf.fragment.glsl.js'),
100
+ vertexSource: require('../../build/min/src/shaders/symbol_sdf.vertex.glsl.js')
101
101
  }
102
102
  };
103
103
 
@@ -2,7 +2,7 @@ const rewind = require('@mapwhit/geojson-rewind');
2
2
  const GeoJSONWrapper = require('./geojson_wrapper');
3
3
  const vtpbf = require('@mapwhit/vt-pbf');
4
4
  const supercluster = require('supercluster');
5
- const geojsonvt = require('geojson-vt');
5
+ const { default: geojsonvt } = require('geojson-vt');
6
6
  const VectorTileWorkerSource = require('./vector_tile_worker_source');
7
7
 
8
8
  function loadGeoJSONTile(params) {
@@ -46,7 +46,7 @@ function loadGeoJSONTile(params) {
46
46
  * This class is designed to be easily reused to support custom source types
47
47
  * for data formats that can be parsed/converted into an in-memory GeoJSON
48
48
  * representation. To do so, create it with
49
- * `new GeoJSONWorkerSource(actor, layerIndex, customLoadGeoJSONFunction)`.
49
+ * `new GeoJSONWorkerSource(resources, layerIndex, customLoadGeoJSONFunction)`.
50
50
  * For a full example, see [mapbox-gl-topojson](https://github.com/developmentseed/mapbox-gl-topojson).
51
51
  *
52
52
  */
@@ -56,8 +56,8 @@ class GeoJSONWorkerSource extends VectorTileWorkerSource {
56
56
  * GeoJSON based on parameters passed from the main-thread Source.
57
57
  * See {@link GeoJSONWorkerSource#loadGeoJSON}.
58
58
  */
59
- constructor(actor, layerIndex, loadGeoJSON) {
60
- super(actor, layerIndex, loadGeoJSONTile);
59
+ constructor(resources, layerIndex, loadGeoJSON) {
60
+ super(resources, layerIndex, loadGeoJSONTile);
61
61
  if (loadGeoJSON) {
62
62
  this.loadGeoJSON = loadGeoJSON;
63
63
  }