@mapwhit/tilerenderer 1.0.0 → 1.1.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 (236) hide show
  1. package/build/min/package.json +2 -1
  2. package/build/min/src/shaders/_prelude.fragment.glsl.js +1 -1
  3. package/build/min/src/shaders/_prelude.vertex.glsl.js +1 -1
  4. package/build/min/src/shaders/background.fragment.glsl.js +1 -1
  5. package/build/min/src/shaders/background.vertex.glsl.js +1 -1
  6. package/build/min/src/shaders/background_pattern.fragment.glsl.js +1 -1
  7. package/build/min/src/shaders/background_pattern.vertex.glsl.js +1 -1
  8. package/build/min/src/shaders/circle.fragment.glsl.js +1 -1
  9. package/build/min/src/shaders/circle.vertex.glsl.js +1 -1
  10. package/build/min/src/shaders/clipping_mask.fragment.glsl.js +1 -1
  11. package/build/min/src/shaders/clipping_mask.vertex.glsl.js +1 -1
  12. package/build/min/src/shaders/collision_box.fragment.glsl.js +1 -1
  13. package/build/min/src/shaders/collision_box.vertex.glsl.js +1 -1
  14. package/build/min/src/shaders/collision_circle.fragment.glsl.js +1 -1
  15. package/build/min/src/shaders/collision_circle.vertex.glsl.js +1 -1
  16. package/build/min/src/shaders/debug.fragment.glsl.js +1 -1
  17. package/build/min/src/shaders/debug.vertex.glsl.js +1 -1
  18. package/build/min/src/shaders/fill.fragment.glsl.js +1 -1
  19. package/build/min/src/shaders/fill.vertex.glsl.js +1 -1
  20. package/build/min/src/shaders/fill_extrusion.fragment.glsl.js +1 -1
  21. package/build/min/src/shaders/fill_extrusion.vertex.glsl.js +1 -1
  22. package/build/min/src/shaders/fill_extrusion_pattern.fragment.glsl.js +1 -1
  23. package/build/min/src/shaders/fill_extrusion_pattern.vertex.glsl.js +1 -1
  24. package/build/min/src/shaders/fill_outline.fragment.glsl.js +1 -1
  25. package/build/min/src/shaders/fill_outline.vertex.glsl.js +1 -1
  26. package/build/min/src/shaders/fill_outline_pattern.fragment.glsl.js +1 -1
  27. package/build/min/src/shaders/fill_outline_pattern.vertex.glsl.js +1 -1
  28. package/build/min/src/shaders/fill_pattern.fragment.glsl.js +1 -1
  29. package/build/min/src/shaders/fill_pattern.vertex.glsl.js +1 -1
  30. package/build/min/src/shaders/heatmap.fragment.glsl.js +1 -1
  31. package/build/min/src/shaders/heatmap.vertex.glsl.js +1 -1
  32. package/build/min/src/shaders/heatmap_texture.fragment.glsl.js +1 -1
  33. package/build/min/src/shaders/heatmap_texture.vertex.glsl.js +1 -1
  34. package/build/min/src/shaders/hillshade.fragment.glsl.js +1 -1
  35. package/build/min/src/shaders/hillshade.vertex.glsl.js +1 -1
  36. package/build/min/src/shaders/hillshade_prepare.fragment.glsl.js +1 -1
  37. package/build/min/src/shaders/hillshade_prepare.vertex.glsl.js +1 -1
  38. package/build/min/src/shaders/line.fragment.glsl.js +1 -1
  39. package/build/min/src/shaders/line.vertex.glsl.js +1 -1
  40. package/build/min/src/shaders/line_gradient.fragment.glsl.js +1 -1
  41. package/build/min/src/shaders/line_gradient.vertex.glsl.js +1 -1
  42. package/build/min/src/shaders/line_pattern.fragment.glsl.js +1 -1
  43. package/build/min/src/shaders/line_pattern.vertex.glsl.js +1 -1
  44. package/build/min/src/shaders/line_sdf.fragment.glsl.js +1 -1
  45. package/build/min/src/shaders/line_sdf.vertex.glsl.js +1 -1
  46. package/build/min/src/shaders/raster.fragment.glsl.js +1 -1
  47. package/build/min/src/shaders/raster.vertex.glsl.js +1 -1
  48. package/build/min/src/shaders/symbol_icon.fragment.glsl.js +1 -1
  49. package/build/min/src/shaders/symbol_icon.vertex.glsl.js +1 -1
  50. package/build/min/src/shaders/symbol_sdf.fragment.glsl.js +1 -1
  51. package/build/min/src/shaders/symbol_sdf.vertex.glsl.js +1 -1
  52. package/package.json +3 -2
  53. package/src/data/array_types.js +54 -81
  54. package/src/data/bucket/circle_attributes.js +2 -4
  55. package/src/data/bucket/circle_bucket.js +19 -13
  56. package/src/data/bucket/fill_attributes.js +2 -4
  57. package/src/data/bucket/fill_bucket.js +38 -24
  58. package/src/data/bucket/fill_extrusion_attributes.js +2 -4
  59. package/src/data/bucket/fill_extrusion_bucket.js +56 -34
  60. package/src/data/bucket/heatmap_bucket.js +2 -7
  61. package/src/data/bucket/line_attributes.js +2 -4
  62. package/src/data/bucket/line_bucket.js +207 -159
  63. package/src/data/bucket/pattern_attributes.js +2 -4
  64. package/src/data/bucket/pattern_bucket_features.js +5 -7
  65. package/src/data/bucket/symbol_attributes.js +12 -26
  66. package/src/data/bucket/symbol_bucket.js +111 -221
  67. package/src/data/bucket/symbol_buffers.js +62 -0
  68. package/src/data/bucket/symbol_collision_buffers.js +33 -0
  69. package/src/data/bucket.js +2 -6
  70. package/src/data/dem_data.js +11 -7
  71. package/src/data/extent.js +1 -1
  72. package/src/data/feature_index.js +35 -20
  73. package/src/data/index_array_type.js +1 -6
  74. package/src/data/load_geometry.js +6 -9
  75. package/src/data/pos_attributes.js +2 -3
  76. package/src/data/program_configuration.js +44 -26
  77. package/src/data/raster_bounds_attributes.js +2 -2
  78. package/src/data/segment.js +4 -3
  79. package/src/geo/coordinate.js +1 -1
  80. package/src/geo/lng_lat.js +3 -3
  81. package/src/geo/lng_lat_bounds.js +8 -4
  82. package/src/geo/transform.js +69 -30
  83. package/src/gl/color_mode.js +2 -2
  84. package/src/gl/context.js +28 -29
  85. package/src/gl/cull_face_mode.js +1 -1
  86. package/src/gl/depth_mode.js +1 -1
  87. package/src/gl/framebuffer.js +8 -4
  88. package/src/gl/index_buffer.js +2 -2
  89. package/src/gl/stencil_mode.js +1 -1
  90. package/src/gl/value.js +33 -68
  91. package/src/gl/vertex_buffer.js +2 -2
  92. package/src/index.js +49 -25
  93. package/src/render/draw_background.js +14 -9
  94. package/src/render/draw_circle.js +11 -8
  95. package/src/render/draw_collision_debug.js +11 -8
  96. package/src/render/draw_debug.js +16 -14
  97. package/src/render/draw_fill.js +19 -12
  98. package/src/render/draw_fill_extrusion.js +12 -9
  99. package/src/render/draw_heatmap.js +17 -12
  100. package/src/render/draw_hillshade.js +12 -9
  101. package/src/render/draw_line.js +30 -16
  102. package/src/render/draw_raster.js +17 -13
  103. package/src/render/draw_symbol.js +22 -17
  104. package/src/render/glyph_atlas.js +9 -5
  105. package/src/render/glyph_manager.js +1 -1
  106. package/src/render/image_atlas.js +4 -7
  107. package/src/render/image_manager.js +6 -9
  108. package/src/render/line_atlas.js +2 -2
  109. package/src/render/painter.js +65 -47
  110. package/src/render/program/background_program.js +6 -13
  111. package/src/render/program/circle_program.js +4 -6
  112. package/src/render/program/clipping_mask_program.js +3 -5
  113. package/src/render/program/collision_program.js +4 -6
  114. package/src/render/program/debug_program.js +3 -5
  115. package/src/render/program/fill_extrusion_program.js +8 -14
  116. package/src/render/program/fill_program.js +10 -21
  117. package/src/render/program/heatmap_program.js +8 -14
  118. package/src/render/program/hillshade_program.js +10 -16
  119. package/src/render/program/line_program.js +11 -22
  120. package/src/render/program/pattern.js +5 -7
  121. package/src/render/program/program_uniforms.js +13 -20
  122. package/src/render/program/raster_program.js +3 -5
  123. package/src/render/program/symbol_program.js +5 -7
  124. package/src/render/program.js +5 -6
  125. package/src/render/texture.js +1 -1
  126. package/src/render/tile_mask.js +6 -4
  127. package/src/render/uniform_binding.js +9 -20
  128. package/src/render/vertex_array_object.js +5 -3
  129. package/src/shaders/encode_attribute.js +2 -6
  130. package/src/shaders/index.js +103 -51
  131. package/src/source/geojson_source.js +11 -7
  132. package/src/source/geojson_worker_source.js +7 -7
  133. package/src/source/geojson_wrapper.js +4 -4
  134. package/src/source/image_source.js +11 -12
  135. package/src/source/load_tilejson.js +3 -3
  136. package/src/source/pixels_to_tile_units.js +3 -3
  137. package/src/source/query_features.js +13 -10
  138. package/src/source/raster_dem_tile_source.js +12 -10
  139. package/src/source/raster_tile_source.js +13 -9
  140. package/src/source/resources/glyphs.js +2 -3
  141. package/src/source/resources/index.js +2 -4
  142. package/src/source/rtl_text_plugin.js +8 -8
  143. package/src/source/source.js +9 -15
  144. package/src/source/source_cache.js +105 -47
  145. package/src/source/source_state.js +37 -14
  146. package/src/source/tile.js +38 -23
  147. package/src/source/tile_bounds.js +15 -8
  148. package/src/source/tile_cache.js +2 -2
  149. package/src/source/tile_id.js +30 -23
  150. package/src/source/vector_tile_source.js +10 -8
  151. package/src/source/vector_tile_worker_source.js +4 -4
  152. package/src/source/worker_tile.js +24 -22
  153. package/src/style/create_style_layer.js +11 -11
  154. package/src/style/evaluation_parameters.js +4 -6
  155. package/src/style/light.js +5 -5
  156. package/src/style/load_sprite.js +6 -6
  157. package/src/style/parse_glyph_pbf.js +21 -17
  158. package/src/style/pauseable_placement.js +3 -4
  159. package/src/style/properties.js +21 -44
  160. package/src/style/query_utils.js +4 -10
  161. package/src/style/style.js +58 -33
  162. package/src/style/style_layer/background_style_layer.js +3 -4
  163. package/src/style/style_layer/background_style_layer_properties.js +2 -2
  164. package/src/style/style_layer/circle_style_layer.js +12 -9
  165. package/src/style/style_layer/circle_style_layer_properties.js +2 -2
  166. package/src/style/style_layer/fill_extrusion_style_layer.js +16 -13
  167. package/src/style/style_layer/fill_extrusion_style_layer_properties.js +2 -2
  168. package/src/style/style_layer/fill_style_layer.js +6 -7
  169. package/src/style/style_layer/fill_style_layer_properties.js +2 -2
  170. package/src/style/style_layer/heatmap_style_layer.js +5 -6
  171. package/src/style/style_layer/heatmap_style_layer_properties.js +2 -2
  172. package/src/style/style_layer/hillshade_style_layer.js +3 -4
  173. package/src/style/style_layer/hillshade_style_layer_properties.js +2 -2
  174. package/src/style/style_layer/line_style_layer.js +10 -11
  175. package/src/style/style_layer/line_style_layer_properties.js +5 -5
  176. package/src/style/style_layer/raster_style_layer.js +3 -4
  177. package/src/style/style_layer/raster_style_layer_properties.js +2 -2
  178. package/src/style/style_layer/symbol_style_layer.js +7 -8
  179. package/src/style/style_layer/symbol_style_layer_properties.js +2 -2
  180. package/src/style/style_layer.js +21 -20
  181. package/src/style/style_layer_index.js +2 -2
  182. package/src/style/zoom_history.js +1 -1
  183. package/src/style-spec/error/parsing_error.js +1 -1
  184. package/src/style-spec/error/validation_error.js +5 -3
  185. package/src/style-spec/feature_filter/convert.js +17 -9
  186. package/src/style-spec/feature_filter/index.js +13 -9
  187. package/src/style-spec/util/eval_support.js +2 -2
  188. package/src/style-spec/util/ref_properties.js +1 -1
  189. package/src/symbol/anchor.js +2 -2
  190. package/src/symbol/check_max_angle.js +13 -5
  191. package/src/symbol/clip_line.js +2 -3
  192. package/src/symbol/collision_feature.js +8 -4
  193. package/src/symbol/collision_index.js +5 -7
  194. package/src/symbol/cross_tile_symbol_index.js +5 -5
  195. package/src/symbol/get_anchors.js +15 -8
  196. package/src/symbol/grid_index.js +5 -3
  197. package/src/symbol/mergelines.js +2 -2
  198. package/src/symbol/opacity_state.js +1 -1
  199. package/src/symbol/placement.js +25 -20
  200. package/src/symbol/projection.js +29 -28
  201. package/src/symbol/quads.js +10 -12
  202. package/src/symbol/shaping.js +27 -19
  203. package/src/symbol/symbol_layout.js +17 -21
  204. package/src/symbol/symbol_size.js +13 -12
  205. package/src/symbol/transform_text.js +3 -3
  206. package/src/ui/camera.js +34 -18
  207. package/src/ui/map.js +53 -33
  208. package/src/util/async.js +11 -5
  209. package/src/util/browser.js +1 -1
  210. package/src/util/callback.js +3 -9
  211. package/src/util/classify_rings.js +13 -8
  212. package/src/util/color_ramp.js +3 -3
  213. package/src/util/config.js +4 -4
  214. package/src/util/dictionary_coder.js +2 -3
  215. package/src/util/dom.js +7 -3
  216. package/src/util/find_pole_of_inaccessibility.js +29 -14
  217. package/src/util/group_layers.js +1 -1
  218. package/src/util/image.js +3 -8
  219. package/src/util/interpolate.js +1 -1
  220. package/src/util/intersection_tests.js +80 -42
  221. package/src/util/is_char_in_unicode_block.js +1 -1
  222. package/src/util/key.js +7 -3
  223. package/src/util/loader/image.js +1 -1
  224. package/src/util/object.js +25 -23
  225. package/src/util/script_detection.js +212 -91
  226. package/src/util/struct_array.js +8 -40
  227. package/src/util/task_queue.js +11 -7
  228. package/src/util/throttle.js +2 -2
  229. package/src/util/tile_cover.js +8 -5
  230. package/src/util/token.js +1 -1
  231. package/src/util/unique_id.js +2 -2
  232. package/src/util/util.js +21 -29
  233. package/src/util/vectortile_to_geojson.js +4 -2
  234. package/src/util/verticalize_punctuation.js +3 -7
  235. package/src/util/warn.js +4 -4
  236. package/src/util/web_worker.js +3 -3
@@ -1,22 +1,17 @@
1
- const { fillExtrusionUniforms, fillExtrusionPatternUniforms } = require('./fill_extrusion_program');
2
- const {
3
- fillUniforms,
4
- fillPatternUniforms,
5
- fillOutlineUniforms,
6
- fillOutlinePatternUniforms
7
- } = require('./fill_program');
8
- const { circleUniforms } = require('./circle_program');
9
- const { collisionUniforms } = require('./collision_program');
10
- const { debugUniforms } = require('./debug_program');
11
- const { clippingMaskUniforms } = require('./clipping_mask_program');
12
- const { heatmapUniforms, heatmapTextureUniforms } = require('./heatmap_program');
13
- const { hillshadeUniforms, hillshadePrepareUniforms } = require('./hillshade_program');
14
- const { lineUniforms, lineGradientUniforms, linePatternUniforms, lineSDFUniforms } = require('./line_program');
15
- const { rasterUniforms } = require('./raster_program');
16
- const { symbolIconUniforms, symbolSDFUniforms } = require('./symbol_program');
17
- const { backgroundUniforms, backgroundPatternUniforms } = require('./background_program');
1
+ import { backgroundPatternUniforms, backgroundUniforms } from './background_program.js';
2
+ import { circleUniforms } from './circle_program.js';
3
+ import { clippingMaskUniforms } from './clipping_mask_program.js';
4
+ import { collisionUniforms } from './collision_program.js';
5
+ import { debugUniforms } from './debug_program.js';
6
+ import { fillExtrusionPatternUniforms, fillExtrusionUniforms } from './fill_extrusion_program.js';
7
+ import { fillOutlinePatternUniforms, fillOutlineUniforms, fillPatternUniforms, fillUniforms } from './fill_program.js';
8
+ import { heatmapTextureUniforms, heatmapUniforms } from './heatmap_program.js';
9
+ import { hillshadePrepareUniforms, hillshadeUniforms } from './hillshade_program.js';
10
+ import { lineGradientUniforms, linePatternUniforms, lineSDFUniforms, lineUniforms } from './line_program.js';
11
+ import { rasterUniforms } from './raster_program.js';
12
+ import { symbolIconUniforms, symbolSDFUniforms } from './symbol_program.js';
18
13
 
19
- const programUniforms = {
14
+ export const programUniforms = {
20
15
  fillExtrusion: fillExtrusionUniforms,
21
16
  fillExtrusionPattern: fillExtrusionPatternUniforms,
22
17
  fill: fillUniforms,
@@ -42,5 +37,3 @@ const programUniforms = {
42
37
  background: backgroundUniforms,
43
38
  backgroundPattern: backgroundPatternUniforms
44
39
  };
45
-
46
- module.exports = { programUniforms };
@@ -1,6 +1,6 @@
1
- const { Uniform1i, Uniform1f, Uniform2f, Uniform3f, UniformMatrix4f } = require('../uniform_binding');
1
+ import { Uniform1f, Uniform1i, Uniform2f, Uniform3f, UniformMatrix4f } from '../uniform_binding.js';
2
2
 
3
- const rasterUniforms = (context, locations) => ({
3
+ export const rasterUniforms = (context, locations) => ({
4
4
  u_matrix: new UniformMatrix4f(context, locations.u_matrix),
5
5
  u_tl_parent: new Uniform2f(context, locations.u_tl_parent),
6
6
  u_scale_parent: new Uniform1f(context, locations.u_scale_parent),
@@ -16,7 +16,7 @@ const rasterUniforms = (context, locations) => ({
16
16
  u_spin_weights: new Uniform3f(context, locations.u_spin_weights)
17
17
  });
18
18
 
19
- const rasterUniformValues = (matrix, parentTL, parentScaleBy, fade, layer) => ({
19
+ export const rasterUniformValues = (matrix, parentTL, parentScaleBy, fade, layer) => ({
20
20
  u_matrix: matrix,
21
21
  u_tl_parent: parentTL,
22
22
  u_scale_parent: parentScaleBy,
@@ -46,5 +46,3 @@ function contrastFactor(contrast) {
46
46
  function saturationFactor(saturation) {
47
47
  return saturation > 0 ? 1 - 1 / (1.001 - saturation) : -saturation;
48
48
  }
49
-
50
- module.exports = { rasterUniforms, rasterUniformValues };
@@ -1,6 +1,6 @@
1
- const { Uniform1i, Uniform1f, Uniform2f, UniformMatrix4f } = require('../uniform_binding');
1
+ import { Uniform1f, Uniform1i, Uniform2f, UniformMatrix4f } from '../uniform_binding.js';
2
2
 
3
- const symbolIconUniforms = (context, locations) => ({
3
+ export const symbolIconUniforms = (context, locations) => ({
4
4
  u_is_size_zoom_constant: new Uniform1i(context, locations.u_is_size_zoom_constant),
5
5
  u_is_size_feature_constant: new Uniform1i(context, locations.u_is_size_feature_constant),
6
6
  u_size_t: new Uniform1f(context, locations.u_size_t),
@@ -19,7 +19,7 @@ const symbolIconUniforms = (context, locations) => ({
19
19
  u_texture: new Uniform1i(context, locations.u_texture)
20
20
  });
21
21
 
22
- const symbolSDFUniforms = (context, locations) => ({
22
+ export const symbolSDFUniforms = (context, locations) => ({
23
23
  u_is_size_zoom_constant: new Uniform1i(context, locations.u_is_size_zoom_constant),
24
24
  u_is_size_feature_constant: new Uniform1i(context, locations.u_is_size_feature_constant),
25
25
  u_size_t: new Uniform1f(context, locations.u_size_t),
@@ -40,7 +40,7 @@ const symbolSDFUniforms = (context, locations) => ({
40
40
  u_is_halo: new Uniform1f(context, locations.u_is_halo)
41
41
  });
42
42
 
43
- const symbolIconUniformValues = (
43
+ export const symbolIconUniformValues = (
44
44
  functionType,
45
45
  size,
46
46
  rotateInShader,
@@ -74,7 +74,7 @@ const symbolIconUniformValues = (
74
74
  };
75
75
  };
76
76
 
77
- const symbolSDFUniformValues = (
77
+ export const symbolSDFUniformValues = (
78
78
  functionType,
79
79
  size,
80
80
  rotateInShader,
@@ -108,5 +108,3 @@ const symbolSDFUniformValues = (
108
108
  }
109
109
  );
110
110
  };
111
-
112
- module.exports = { symbolIconUniforms, symbolSDFUniforms, symbolIconUniformValues, symbolSDFUniformValues };
@@ -1,8 +1,7 @@
1
- const browser = require('../util/browser');
2
-
3
- const shaders = require('../shaders');
4
- const assert = require('assert');
5
- const VertexArrayObject = require('./vertex_array_object');
1
+ import assert from 'assert';
2
+ import shaders from '../shaders/index.js';
3
+ import browser from '../util/browser.js';
4
+ import VertexArrayObject from './vertex_array_object.js';
6
5
 
7
6
  class Program {
8
7
  constructor(context, source, configuration, fixedUniforms, showOverdrawInspector) {
@@ -130,4 +129,4 @@ class Program {
130
129
  }
131
130
  }
132
131
 
133
- module.exports = Program;
132
+ export default Program;
@@ -85,4 +85,4 @@ class Texture {
85
85
  }
86
86
  }
87
87
 
88
- module.exports = Texture;
88
+ export default Texture;
@@ -1,4 +1,4 @@
1
- const { OverscaledTileID, CanonicalTileID } = require('../source/tile_id');
1
+ import { CanonicalTileID, OverscaledTileID } from '../source/tile_id.js';
2
2
 
3
3
  // Updates the TileMasks for all renderable tiles. A TileMask describes all regions
4
4
  // within that tile that are *not* covered by other renderable tiles.
@@ -50,7 +50,7 @@ const { OverscaledTileID, CanonicalTileID } = require('../source/tile_id');
50
50
  // be considered. For example, adding TileID 4/8/13 to renderableTiles won't affect the TileMask for
51
51
  // 2/1/3, since it is not a descendant of it.
52
52
 
53
- module.exports = function (renderableTiles, context) {
53
+ export default function (renderableTiles, context) {
54
54
  const sortedRenderables = renderableTiles.sort((a, b) => {
55
55
  return a.tileID.isLessThan(b.tileID) ? -1 : b.tileID.isLessThan(a.tileID) ? 1 : 0;
56
56
  });
@@ -73,14 +73,16 @@ module.exports = function (renderableTiles, context) {
73
73
  );
74
74
  tile.setMask(mask, context);
75
75
  }
76
- };
76
+ }
77
77
 
78
78
  function computeTileMasks(rootTile, ref, childArray, lowerBound, mask) {
79
79
  // If the reference or any of its children is found in the list, we need to recurse.
80
80
  for (let i = 0; i < childArray.length; i++) {
81
81
  const childTile = childArray[i];
82
82
  // childTile is from a larger wrap than the rootTile so it cannot be a child tile
83
- if (lowerBound.isLessThan(childTile.tileID)) break;
83
+ if (lowerBound.isLessThan(childTile.tileID)) {
84
+ break;
85
+ }
84
86
  // The current tile is masked out, so we don't need to add them to the mask set.
85
87
  if (ref.key === childTile.tileID.key) {
86
88
  return;
@@ -1,13 +1,13 @@
1
- const { Color } = require('@mapwhit/style-expressions');
1
+ import { Color } from '@mapwhit/style-expressions';
2
2
 
3
- class Uniform {
3
+ export class Uniform {
4
4
  constructor(context, location) {
5
5
  this.gl = context.gl;
6
6
  this.location = location;
7
7
  }
8
8
  }
9
9
 
10
- class Uniform1i extends Uniform {
10
+ export class Uniform1i extends Uniform {
11
11
  constructor(context, location) {
12
12
  super(context, location);
13
13
  this.current = 0;
@@ -21,7 +21,7 @@ class Uniform1i extends Uniform {
21
21
  }
22
22
  }
23
23
 
24
- class Uniform1f extends Uniform {
24
+ export class Uniform1f extends Uniform {
25
25
  constructor(context, location) {
26
26
  super(context, location);
27
27
  this.current = 0;
@@ -35,7 +35,7 @@ class Uniform1f extends Uniform {
35
35
  }
36
36
  }
37
37
 
38
- class Uniform2f extends Uniform {
38
+ export class Uniform2f extends Uniform {
39
39
  constructor(context, location) {
40
40
  super(context, location);
41
41
  this.current = [0, 0];
@@ -49,7 +49,7 @@ class Uniform2f extends Uniform {
49
49
  }
50
50
  }
51
51
 
52
- class Uniform3f extends Uniform {
52
+ export class Uniform3f extends Uniform {
53
53
  constructor(context, location) {
54
54
  super(context, location);
55
55
  this.current = [0, 0, 0];
@@ -63,7 +63,7 @@ class Uniform3f extends Uniform {
63
63
  }
64
64
  }
65
65
 
66
- class Uniform4f extends Uniform {
66
+ export class Uniform4f extends Uniform {
67
67
  constructor(context, location) {
68
68
  super(context, location);
69
69
  this.current = [0, 0, 0, 0];
@@ -77,7 +77,7 @@ class Uniform4f extends Uniform {
77
77
  }
78
78
  }
79
79
 
80
- class UniformColor extends Uniform {
80
+ export class UniformColor extends Uniform {
81
81
  constructor(context, location) {
82
82
  super(context, location);
83
83
  this.current = Color.transparent;
@@ -92,7 +92,7 @@ class UniformColor extends Uniform {
92
92
  }
93
93
 
94
94
  const emptyMat4 = new Float32Array(16);
95
- class UniformMatrix4f extends Uniform {
95
+ export class UniformMatrix4f extends Uniform {
96
96
  constructor(context, location) {
97
97
  super(context, location);
98
98
  this.current = emptyMat4;
@@ -116,14 +116,3 @@ class UniformMatrix4f extends Uniform {
116
116
  }
117
117
  }
118
118
  }
119
-
120
- module.exports = {
121
- Uniform,
122
- Uniform1i,
123
- Uniform1f,
124
- Uniform2f,
125
- Uniform3f,
126
- Uniform4f,
127
- UniformColor,
128
- UniformMatrix4f
129
- };
@@ -1,4 +1,4 @@
1
- const assert = require('assert');
1
+ import assert from 'assert';
2
2
 
3
3
  class VertexArrayObject {
4
4
  constructor() {
@@ -84,7 +84,9 @@ class VertexArrayObject {
84
84
  const gl = context.gl;
85
85
 
86
86
  if (context.extVertexArrayObject) {
87
- if (this.vao) this.destroy();
87
+ if (this.vao) {
88
+ this.destroy();
89
+ }
88
90
  this.vao = context.extVertexArrayObject.createVertexArrayOES();
89
91
  context.bindVertexArrayOES.set(this.vao);
90
92
  numPrevAttributes = 0;
@@ -152,4 +154,4 @@ class VertexArrayObject {
152
154
  }
153
155
  }
154
156
 
155
- module.exports = VertexArrayObject;
157
+ export default VertexArrayObject;
@@ -1,4 +1,4 @@
1
- const { clamp } = require('../util/util');
1
+ import { clamp } from '../util/util.js';
2
2
 
3
3
  /**
4
4
  * Packs two numbers, interpreted as 8-bit unsigned integers, into a single
@@ -7,13 +7,9 @@ const { clamp } = require('../util/util');
7
7
  *
8
8
  * @private
9
9
  */
10
- function pack(a, b) {
10
+ export function packUint8ToFloat(a, b) {
11
11
  // coerce a and b to 8-bit ints
12
12
  a = clamp(Math.floor(a), 0, 255);
13
13
  b = clamp(Math.floor(b), 0, 255);
14
14
  return 256 * a + b;
15
15
  }
16
-
17
- module.exports = {
18
- packUint8ToFloat: pack
19
- };
@@ -1,103 +1,155 @@
1
+ // Import all shader sources
2
+ import preludeFragmentSource from '../../build/min/src/shaders/_prelude.fragment.glsl.js';
3
+ import preludeVertexSource from '../../build/min/src/shaders/_prelude.vertex.glsl.js';
4
+ import backgroundFragmentSource from '../../build/min/src/shaders/background.fragment.glsl.js';
5
+ import backgroundVertexSource from '../../build/min/src/shaders/background.vertex.glsl.js';
6
+ import backgroundPatternFragmentSource from '../../build/min/src/shaders/background_pattern.fragment.glsl.js';
7
+ import backgroundPatternVertexSource from '../../build/min/src/shaders/background_pattern.vertex.glsl.js';
8
+ import circleFragmentSource from '../../build/min/src/shaders/circle.fragment.glsl.js';
9
+ import circleVertexSource from '../../build/min/src/shaders/circle.vertex.glsl.js';
10
+ import clippingMaskFragmentSource from '../../build/min/src/shaders/clipping_mask.fragment.glsl.js';
11
+ import clippingMaskVertexSource from '../../build/min/src/shaders/clipping_mask.vertex.glsl.js';
12
+ import collisionBoxFragmentSource from '../../build/min/src/shaders/collision_box.fragment.glsl.js';
13
+ import collisionBoxVertexSource from '../../build/min/src/shaders/collision_box.vertex.glsl.js';
14
+ import collisionCircleFragmentSource from '../../build/min/src/shaders/collision_circle.fragment.glsl.js';
15
+ import collisionCircleVertexSource from '../../build/min/src/shaders/collision_circle.vertex.glsl.js';
16
+ import debugFragmentSource from '../../build/min/src/shaders/debug.fragment.glsl.js';
17
+ import debugVertexSource from '../../build/min/src/shaders/debug.vertex.glsl.js';
18
+ import fillFragmentSource from '../../build/min/src/shaders/fill.fragment.glsl.js';
19
+ import fillVertexSource from '../../build/min/src/shaders/fill.vertex.glsl.js';
20
+ import fillExtrusionFragmentSource from '../../build/min/src/shaders/fill_extrusion.fragment.glsl.js';
21
+ import fillExtrusionVertexSource from '../../build/min/src/shaders/fill_extrusion.vertex.glsl.js';
22
+ import fillExtrusionPatternFragmentSource from '../../build/min/src/shaders/fill_extrusion_pattern.fragment.glsl.js';
23
+ import fillExtrusionPatternVertexSource from '../../build/min/src/shaders/fill_extrusion_pattern.vertex.glsl.js';
24
+ import fillOutlineFragmentSource from '../../build/min/src/shaders/fill_outline.fragment.glsl.js';
25
+ import fillOutlineVertexSource from '../../build/min/src/shaders/fill_outline.vertex.glsl.js';
26
+ import fillOutlinePatternFragmentSource from '../../build/min/src/shaders/fill_outline_pattern.fragment.glsl.js';
27
+ import fillOutlinePatternVertexSource from '../../build/min/src/shaders/fill_outline_pattern.vertex.glsl.js';
28
+ import fillPatternFragmentSource from '../../build/min/src/shaders/fill_pattern.fragment.glsl.js';
29
+ import fillPatternVertexSource from '../../build/min/src/shaders/fill_pattern.vertex.glsl.js';
30
+ import heatmapFragmentSource from '../../build/min/src/shaders/heatmap.fragment.glsl.js';
31
+ import heatmapVertexSource from '../../build/min/src/shaders/heatmap.vertex.glsl.js';
32
+ import heatmapTextureFragmentSource from '../../build/min/src/shaders/heatmap_texture.fragment.glsl.js';
33
+ import heatmapTextureVertexSource from '../../build/min/src/shaders/heatmap_texture.vertex.glsl.js';
34
+ import hillshadeFragmentSource from '../../build/min/src/shaders/hillshade.fragment.glsl.js';
35
+ import hillshadeVertexSource from '../../build/min/src/shaders/hillshade.vertex.glsl.js';
36
+ import hillshadePrepareFragmentSource from '../../build/min/src/shaders/hillshade_prepare.fragment.glsl.js';
37
+ import hillshadePrepareVertexSource from '../../build/min/src/shaders/hillshade_prepare.vertex.glsl.js';
38
+ import lineFragmentSource from '../../build/min/src/shaders/line.fragment.glsl.js';
39
+ import lineVertexSource from '../../build/min/src/shaders/line.vertex.glsl.js';
40
+ import lineGradientFragmentSource from '../../build/min/src/shaders/line_gradient.fragment.glsl.js';
41
+ import lineGradientVertexSource from '../../build/min/src/shaders/line_gradient.vertex.glsl.js';
42
+ import linePatternFragmentSource from '../../build/min/src/shaders/line_pattern.fragment.glsl.js';
43
+ import linePatternVertexSource from '../../build/min/src/shaders/line_pattern.vertex.glsl.js';
44
+ import lineSDFFragmentSource from '../../build/min/src/shaders/line_sdf.fragment.glsl.js';
45
+ import lineSDFVertexSource from '../../build/min/src/shaders/line_sdf.vertex.glsl.js';
46
+ import rasterFragmentSource from '../../build/min/src/shaders/raster.fragment.glsl.js';
47
+ import rasterVertexSource from '../../build/min/src/shaders/raster.vertex.glsl.js';
48
+ import symbolIconFragmentSource from '../../build/min/src/shaders/symbol_icon.fragment.glsl.js';
49
+ import symbolIconVertexSource from '../../build/min/src/shaders/symbol_icon.vertex.glsl.js';
50
+ import symbolSDFFragmentSource from '../../build/min/src/shaders/symbol_sdf.fragment.glsl.js';
51
+ import symbolSDFVertexSource from '../../build/min/src/shaders/symbol_sdf.vertex.glsl.js';
52
+
1
53
  const shaders = {
2
54
  prelude: {
3
- fragmentSource: require('../../build/min/src/shaders/_prelude.fragment.glsl.js'),
4
- vertexSource: require('../../build/min/src/shaders/_prelude.vertex.glsl.js')
55
+ fragmentSource: preludeFragmentSource,
56
+ vertexSource: preludeVertexSource
5
57
  },
6
58
  background: {
7
- fragmentSource: require('../../build/min/src/shaders/background.fragment.glsl.js'),
8
- vertexSource: require('../../build/min/src/shaders/background.vertex.glsl.js')
59
+ fragmentSource: backgroundFragmentSource,
60
+ vertexSource: backgroundVertexSource
9
61
  },
10
62
  backgroundPattern: {
11
- fragmentSource: require('../../build/min/src/shaders/background_pattern.fragment.glsl.js'),
12
- vertexSource: require('../../build/min/src/shaders/background_pattern.vertex.glsl.js')
63
+ fragmentSource: backgroundPatternFragmentSource,
64
+ vertexSource: backgroundPatternVertexSource
13
65
  },
14
66
  circle: {
15
- fragmentSource: require('../../build/min/src/shaders/circle.fragment.glsl.js'),
16
- vertexSource: require('../../build/min/src/shaders/circle.vertex.glsl.js')
67
+ fragmentSource: circleFragmentSource,
68
+ vertexSource: circleVertexSource
17
69
  },
18
70
  clippingMask: {
19
- fragmentSource: require('../../build/min/src/shaders/clipping_mask.fragment.glsl.js'),
20
- vertexSource: require('../../build/min/src/shaders/clipping_mask.vertex.glsl.js')
71
+ fragmentSource: clippingMaskFragmentSource,
72
+ vertexSource: clippingMaskVertexSource
21
73
  },
22
74
  heatmap: {
23
- fragmentSource: require('../../build/min/src/shaders/heatmap.fragment.glsl.js'),
24
- vertexSource: require('../../build/min/src/shaders/heatmap.vertex.glsl.js')
75
+ fragmentSource: heatmapFragmentSource,
76
+ vertexSource: heatmapVertexSource
25
77
  },
26
78
  heatmapTexture: {
27
- fragmentSource: require('../../build/min/src/shaders/heatmap_texture.fragment.glsl.js'),
28
- vertexSource: require('../../build/min/src/shaders/heatmap_texture.vertex.glsl.js')
79
+ fragmentSource: heatmapTextureFragmentSource,
80
+ vertexSource: heatmapTextureVertexSource
29
81
  },
30
82
  collisionBox: {
31
- fragmentSource: require('../../build/min/src/shaders/collision_box.fragment.glsl.js'),
32
- vertexSource: require('../../build/min/src/shaders/collision_box.vertex.glsl.js')
83
+ fragmentSource: collisionBoxFragmentSource,
84
+ vertexSource: collisionBoxVertexSource
33
85
  },
34
86
  collisionCircle: {
35
- fragmentSource: require('../../build/min/src/shaders/collision_circle.fragment.glsl.js'),
36
- vertexSource: require('../../build/min/src/shaders/collision_circle.vertex.glsl.js')
87
+ fragmentSource: collisionCircleFragmentSource,
88
+ vertexSource: collisionCircleVertexSource
37
89
  },
38
90
  debug: {
39
- fragmentSource: require('../../build/min/src/shaders/debug.fragment.glsl.js'),
40
- vertexSource: require('../../build/min/src/shaders/debug.vertex.glsl.js')
91
+ fragmentSource: debugFragmentSource,
92
+ vertexSource: debugVertexSource
41
93
  },
42
94
  fill: {
43
- fragmentSource: require('../../build/min/src/shaders/fill.fragment.glsl.js'),
44
- vertexSource: require('../../build/min/src/shaders/fill.vertex.glsl.js')
95
+ fragmentSource: fillFragmentSource,
96
+ vertexSource: fillVertexSource
45
97
  },
46
98
  fillOutline: {
47
- fragmentSource: require('../../build/min/src/shaders/fill_outline.fragment.glsl.js'),
48
- vertexSource: require('../../build/min/src/shaders/fill_outline.vertex.glsl.js')
99
+ fragmentSource: fillOutlineFragmentSource,
100
+ vertexSource: fillOutlineVertexSource
49
101
  },
50
102
  fillOutlinePattern: {
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')
103
+ fragmentSource: fillOutlinePatternFragmentSource,
104
+ vertexSource: fillOutlinePatternVertexSource
53
105
  },
54
106
  fillPattern: {
55
- fragmentSource: require('../../build/min/src/shaders/fill_pattern.fragment.glsl.js'),
56
- vertexSource: require('../../build/min/src/shaders/fill_pattern.vertex.glsl.js')
107
+ fragmentSource: fillPatternFragmentSource,
108
+ vertexSource: fillPatternVertexSource
57
109
  },
58
110
  fillExtrusion: {
59
- fragmentSource: require('../../build/min/src/shaders/fill_extrusion.fragment.glsl.js'),
60
- vertexSource: require('../../build/min/src/shaders/fill_extrusion.vertex.glsl.js')
111
+ fragmentSource: fillExtrusionFragmentSource,
112
+ vertexSource: fillExtrusionVertexSource
61
113
  },
62
114
  fillExtrusionPattern: {
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')
115
+ fragmentSource: fillExtrusionPatternFragmentSource,
116
+ vertexSource: fillExtrusionPatternVertexSource
65
117
  },
66
118
  hillshadePrepare: {
67
- fragmentSource: require('../../build/min/src/shaders/hillshade_prepare.fragment.glsl.js'),
68
- vertexSource: require('../../build/min/src/shaders/hillshade_prepare.vertex.glsl.js')
119
+ fragmentSource: hillshadePrepareFragmentSource,
120
+ vertexSource: hillshadePrepareVertexSource
69
121
  },
70
122
  hillshade: {
71
- fragmentSource: require('../../build/min/src/shaders/hillshade.fragment.glsl.js'),
72
- vertexSource: require('../../build/min/src/shaders/hillshade.vertex.glsl.js')
123
+ fragmentSource: hillshadeFragmentSource,
124
+ vertexSource: hillshadeVertexSource
73
125
  },
74
126
  line: {
75
- fragmentSource: require('../../build/min/src/shaders/line.fragment.glsl.js'),
76
- vertexSource: require('../../build/min/src/shaders/line.vertex.glsl.js')
127
+ fragmentSource: lineFragmentSource,
128
+ vertexSource: lineVertexSource
77
129
  },
78
130
  lineGradient: {
79
- fragmentSource: require('../../build/min/src/shaders/line_gradient.fragment.glsl.js'),
80
- vertexSource: require('../../build/min/src/shaders/line_gradient.vertex.glsl.js')
131
+ fragmentSource: lineGradientFragmentSource,
132
+ vertexSource: lineGradientVertexSource
81
133
  },
82
134
  linePattern: {
83
- fragmentSource: require('../../build/min/src/shaders/line_pattern.fragment.glsl.js'),
84
- vertexSource: require('../../build/min/src/shaders/line_pattern.vertex.glsl.js')
135
+ fragmentSource: linePatternFragmentSource,
136
+ vertexSource: linePatternVertexSource
85
137
  },
86
138
  lineSDF: {
87
- fragmentSource: require('../../build/min/src/shaders/line_sdf.fragment.glsl.js'),
88
- vertexSource: require('../../build/min/src/shaders/line_sdf.vertex.glsl.js')
139
+ fragmentSource: lineSDFFragmentSource,
140
+ vertexSource: lineSDFVertexSource
89
141
  },
90
142
  raster: {
91
- fragmentSource: require('../../build/min/src/shaders/raster.fragment.glsl.js'),
92
- vertexSource: require('../../build/min/src/shaders/raster.vertex.glsl.js')
143
+ fragmentSource: rasterFragmentSource,
144
+ vertexSource: rasterVertexSource
93
145
  },
94
146
  symbolIcon: {
95
- fragmentSource: require('../../build/min/src/shaders/symbol_icon.fragment.glsl.js'),
96
- vertexSource: require('../../build/min/src/shaders/symbol_icon.vertex.glsl.js')
147
+ fragmentSource: symbolIconFragmentSource,
148
+ vertexSource: symbolIconVertexSource
97
149
  },
98
150
  symbolSDF: {
99
- fragmentSource: require('../../build/min/src/shaders/symbol_sdf.fragment.glsl.js'),
100
- vertexSource: require('../../build/min/src/shaders/symbol_sdf.vertex.glsl.js')
151
+ fragmentSource: symbolSDFFragmentSource,
152
+ vertexSource: symbolSDFVertexSource
101
153
  }
102
154
  };
103
155
 
@@ -191,4 +243,4 @@ ${precision} ${type} ${name} = u_${name};
191
243
  });
192
244
  }
193
245
 
194
- module.exports = shaders;
246
+ export default shaders;
@@ -1,8 +1,8 @@
1
- const { Event, ErrorEvent, Evented } = require('@mapwhit/events');
1
+ import { ErrorEvent, Event, Evented } from '@mapwhit/events';
2
2
 
3
- const EXTENT = require('../data/extent');
4
- const browser = require('../util/browser');
5
- const GeoJSONWorkerSource = require('./geojson_worker_source');
3
+ import EXTENT from '../data/extent.js';
4
+ import browser from '../util/browser.js';
5
+ import GeoJSONWorkerSource from './geojson_worker_source.js';
6
6
 
7
7
  /**
8
8
  * A source containing GeoJSON.
@@ -76,8 +76,12 @@ class GeoJSONSource extends Evented {
76
76
  this.data = options.data;
77
77
  this._options = Object.assign({}, options);
78
78
 
79
- if (options.maxzoom !== undefined) this.maxzoom = options.maxzoom;
80
- if (options.type) this.type = options.type;
79
+ if (options.maxzoom !== undefined) {
80
+ this.maxzoom = options.maxzoom;
81
+ }
82
+ if (options.type) {
83
+ this.type = options.type;
84
+ }
81
85
 
82
86
  const scale = EXTENT / this.tileSize;
83
87
 
@@ -212,4 +216,4 @@ class GeoJSONSource extends Evented {
212
216
  }
213
217
  }
214
218
 
215
- module.exports = GeoJSONSource;
219
+ export default GeoJSONSource;
@@ -1,8 +1,8 @@
1
- const rewind = require('@mapwhit/geojson-rewind');
2
- const GeoJSONWrapper = require('./geojson_wrapper');
3
- const { default: Supercluster } = require('supercluster');
4
- const { default: geojsonvt } = require('geojson-vt');
5
- const VectorTileWorkerSource = require('./vector_tile_worker_source');
1
+ import rewind from '@mapwhit/geojson-rewind';
2
+ import geojsonvt from 'geojson-vt';
3
+ import Supercluster from 'supercluster';
4
+ import GeoJSONWrapper from './geojson_wrapper.js';
5
+ import VectorTileWorkerSource from './vector_tile_worker_source.js';
6
6
 
7
7
  /**
8
8
  * The {@link WorkerSource} implementation that supports {@link GeoJSONSource}.
@@ -73,9 +73,9 @@ class GeoJSONWorkerSource extends VectorTileWorkerSource {
73
73
  function loadJSON(data) {
74
74
  try {
75
75
  return typeof data === 'string' ? JSON.parse(data) : data;
76
- } catch (e) {
76
+ } catch {
77
77
  throw new Error('Input data is not a valid GeoJSON object.');
78
78
  }
79
79
  }
80
80
 
81
- module.exports = GeoJSONWorkerSource;
81
+ export default GeoJSONWorkerSource;
@@ -1,6 +1,6 @@
1
- const { default: Point } = require('@mapbox/point-geometry');
2
- const { VectorTileFeature } = require('@mapwhit/vector-tile');
3
- const EXTENT = require('../data/extent');
1
+ import Point from '@mapbox/point-geometry';
2
+ import { VectorTileFeature } from '@mapwhit/vector-tile';
3
+ import EXTENT from '../data/extent.js';
4
4
 
5
5
  const { toGeoJSON } = VectorTileFeature.prototype;
6
6
 
@@ -76,7 +76,7 @@ class GeoJSONWrapper {
76
76
  }
77
77
  }
78
78
 
79
- module.exports = GeoJSONWrapper;
79
+ export default GeoJSONWrapper;
80
80
 
81
81
  function makePoint(arr) {
82
82
  return new Point(arr[0], arr[1]);
@@ -1,14 +1,13 @@
1
- const { getCoordinatesCenter } = require('../util/util');
2
-
3
- const { CanonicalTileID } = require('./tile_id');
4
- const LngLat = require('../geo/lng_lat');
5
- const { Event, ErrorEvent, Evented } = require('@mapwhit/events');
6
- const loadImage = require('../util/loader/image');
7
- const EXTENT = require('../data/extent');
8
- const { RasterBoundsArray } = require('../data/array_types');
9
- const rasterBoundsAttributes = require('../data/raster_bounds_attributes');
10
- const SegmentVector = require('../data/segment');
11
- const Texture = require('../render/texture');
1
+ import { ErrorEvent, Event, Evented } from '@mapwhit/events';
2
+ import { RasterBoundsArray } from '../data/array_types.js';
3
+ import EXTENT from '../data/extent.js';
4
+ import rasterBoundsAttributes from '../data/raster_bounds_attributes.js';
5
+ import SegmentVector from '../data/segment.js';
6
+ import LngLat from '../geo/lng_lat.js';
7
+ import Texture from '../render/texture.js';
8
+ import loadImage from '../util/loader/image.js';
9
+ import { getCoordinatesCenter } from '../util/util.js';
10
+ import { CanonicalTileID } from './tile_id.js';
12
11
 
13
12
  /**
14
13
  * A data source containing an image.
@@ -195,4 +194,4 @@ class ImageSource extends Evented {
195
194
  }
196
195
  }
197
196
 
198
- module.exports = ImageSource;
197
+ export default ImageSource;
@@ -1,8 +1,8 @@
1
- const { pick } = require('../util/object');
1
+ import { pick } from '../util/object.js';
2
2
 
3
- module.exports = function (tileJSON) {
3
+ export default function (tileJSON) {
4
4
  return tileJSON.resourceSets ? fromResourseSets(tileJSON) : fromTileJSON(tileJSON);
5
- };
5
+ }
6
6
 
7
7
  function fromTileJSON(tileJSON) {
8
8
  const result = pick(tileJSON, ['tiles', 'minzoom', 'maxzoom', 'attribution', 'bounds']);