maplibre-gl 2.0.4 → 2.1.2

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 (319) hide show
  1. package/build/{banner.js → banner.ts} +1 -1
  2. package/build/generate-query-test-fixtures.ts +123 -0
  3. package/build/generate-shaders.ts +35 -0
  4. package/build/generate-struct-arrays.ts +7 -7
  5. package/build/generate-style-code.ts +8 -8
  6. package/build/generate-style-spec.ts +5 -4
  7. package/build/generate-typings.ts +16 -0
  8. package/build/readme.md +8 -18
  9. package/build/release-notes.js +9 -13
  10. package/build/{rollup_plugin_minify_style_spec.js → rollup_plugin_minify_style_spec.ts} +4 -3
  11. package/build/{rollup_plugins.js → rollup_plugins.ts} +12 -26
  12. package/dist/maplibre-gl-dev.js +54885 -0
  13. package/dist/maplibre-gl.css +1 -1
  14. package/dist/maplibre-gl.d.ts +1583 -1023
  15. package/dist/maplibre-gl.js +3 -3
  16. package/dist/maplibre-gl.js.map +1 -1
  17. package/package.json +99 -141
  18. package/src/css/maplibre-gl.css +36 -36
  19. package/src/data/{array_types.ts → array_types.g.ts} +0 -0
  20. package/src/data/bucket/circle_bucket.ts +1 -1
  21. package/src/data/bucket/fill_bucket.test.ts +1 -1
  22. package/src/data/bucket/fill_bucket.ts +4 -4
  23. package/src/data/bucket/fill_extrusion_bucket.ts +1 -1
  24. package/src/data/bucket/line_bucket.test.ts +1 -1
  25. package/src/data/bucket/line_bucket.ts +6 -6
  26. package/src/data/bucket/symbol_bucket.test.ts +16 -16
  27. package/src/data/bucket/symbol_bucket.ts +56 -56
  28. package/src/data/bucket.ts +43 -43
  29. package/src/data/dem_data.ts +12 -12
  30. package/src/data/evaluation_feature.ts +10 -10
  31. package/src/data/feature_index.ts +37 -37
  32. package/src/data/feature_position_map.ts +5 -5
  33. package/src/data/index_array_type.ts +1 -1
  34. package/src/data/load_geometry.test.ts +1 -1
  35. package/src/data/program_configuration.ts +47 -47
  36. package/src/data/segment.ts +14 -14
  37. package/src/geo/edge_insets.ts +2 -2
  38. package/src/geo/lng_lat.ts +4 -4
  39. package/src/geo/lng_lat_bounds.ts +35 -35
  40. package/src/geo/mercator_coordinate.ts +5 -5
  41. package/src/geo/transform.test.ts +1 -1
  42. package/src/geo/transform.ts +14 -14
  43. package/src/gl/context.ts +3 -3
  44. package/src/gl/types.ts +19 -19
  45. package/src/gl/value.ts +6 -6
  46. package/src/gl/vertex_buffer.test.ts +1 -1
  47. package/src/index.ts +24 -9
  48. package/src/render/draw_circle.ts +8 -8
  49. package/src/render/draw_collision_debug.ts +5 -5
  50. package/src/render/draw_debug.ts +1 -1
  51. package/src/render/draw_line.ts +4 -4
  52. package/src/render/draw_symbol.ts +21 -21
  53. package/src/render/glyph_atlas.ts +12 -12
  54. package/src/render/glyph_manager.test.ts +10 -21
  55. package/src/render/glyph_manager.ts +34 -33
  56. package/src/render/image_manager.ts +4 -4
  57. package/src/render/painter.ts +16 -14
  58. package/src/render/program/background_program.ts +29 -29
  59. package/src/render/program/circle_program.ts +11 -11
  60. package/src/render/program/clipping_mask_program.ts +1 -1
  61. package/src/render/program/collision_program.ts +9 -9
  62. package/src/render/program/debug_program.ts +4 -4
  63. package/src/render/program/fill_extrusion_program.ts +31 -31
  64. package/src/render/program/fill_program.ts +29 -29
  65. package/src/render/program/heatmap_program.ts +12 -12
  66. package/src/render/program/hillshade_program.ts +12 -12
  67. package/src/render/program/line_program.ts +41 -41
  68. package/src/render/program/pattern.ts +28 -28
  69. package/src/render/program/raster_program.ts +21 -21
  70. package/src/render/program/symbol_program.ts +97 -97
  71. package/src/render/program.ts +25 -25
  72. package/src/render/texture.ts +9 -9
  73. package/src/render/uniform_binding.ts +1 -1
  74. package/src/render/vertex_array_object.ts +13 -13
  75. package/src/shaders/_prelude.fragment.glsl.g.ts +2 -0
  76. package/src/shaders/_prelude.vertex.glsl.g.ts +2 -0
  77. package/src/shaders/background.fragment.glsl.g.ts +2 -0
  78. package/src/shaders/background.vertex.glsl.g.ts +2 -0
  79. package/src/shaders/background_pattern.fragment.glsl.g.ts +2 -0
  80. package/src/shaders/background_pattern.vertex.glsl.g.ts +2 -0
  81. package/src/shaders/circle.fragment.glsl.g.ts +2 -0
  82. package/src/shaders/circle.vertex.glsl.g.ts +2 -0
  83. package/src/shaders/clipping_mask.fragment.glsl.g.ts +2 -0
  84. package/src/shaders/clipping_mask.vertex.glsl.g.ts +2 -0
  85. package/src/shaders/collision_box.fragment.glsl.g.ts +2 -0
  86. package/src/shaders/collision_box.vertex.glsl.g.ts +2 -0
  87. package/src/shaders/collision_circle.fragment.glsl.g.ts +2 -0
  88. package/src/shaders/collision_circle.vertex.glsl.g.ts +2 -0
  89. package/src/shaders/debug.fragment.glsl.g.ts +2 -0
  90. package/src/shaders/debug.vertex.glsl.g.ts +2 -0
  91. package/src/shaders/fill.fragment.glsl.g.ts +2 -0
  92. package/src/shaders/fill.vertex.glsl.g.ts +2 -0
  93. package/src/shaders/fill_extrusion.fragment.glsl.g.ts +2 -0
  94. package/src/shaders/fill_extrusion.vertex.glsl.g.ts +2 -0
  95. package/src/shaders/fill_extrusion_pattern.fragment.glsl.g.ts +2 -0
  96. package/src/shaders/fill_extrusion_pattern.vertex.glsl.g.ts +2 -0
  97. package/src/shaders/fill_outline.fragment.glsl.g.ts +2 -0
  98. package/src/shaders/fill_outline.vertex.glsl.g.ts +2 -0
  99. package/src/shaders/fill_outline_pattern.fragment.glsl.g.ts +2 -0
  100. package/src/shaders/fill_outline_pattern.vertex.glsl.g.ts +2 -0
  101. package/src/shaders/fill_pattern.fragment.glsl.g.ts +2 -0
  102. package/src/shaders/fill_pattern.vertex.glsl.g.ts +2 -0
  103. package/src/shaders/heatmap.fragment.glsl.g.ts +2 -0
  104. package/src/shaders/heatmap.vertex.glsl.g.ts +2 -0
  105. package/src/shaders/heatmap_texture.fragment.glsl.g.ts +2 -0
  106. package/src/shaders/heatmap_texture.vertex.glsl.g.ts +2 -0
  107. package/src/shaders/hillshade.fragment.glsl.g.ts +2 -0
  108. package/src/shaders/hillshade.vertex.glsl.g.ts +2 -0
  109. package/src/shaders/hillshade_prepare.fragment.glsl.g.ts +2 -0
  110. package/src/shaders/hillshade_prepare.vertex.glsl.g.ts +2 -0
  111. package/src/shaders/line.fragment.glsl.g.ts +2 -0
  112. package/src/shaders/line.vertex.glsl.g.ts +2 -0
  113. package/src/shaders/line_gradient.fragment.glsl.g.ts +2 -0
  114. package/src/shaders/line_gradient.vertex.glsl.g.ts +2 -0
  115. package/src/shaders/line_pattern.fragment.glsl.g.ts +2 -0
  116. package/src/shaders/line_pattern.vertex.glsl.g.ts +2 -0
  117. package/src/shaders/line_sdf.fragment.glsl.g.ts +2 -0
  118. package/src/shaders/line_sdf.vertex.glsl.g.ts +2 -0
  119. package/src/shaders/raster.fragment.glsl.g.ts +2 -0
  120. package/src/shaders/raster.vertex.glsl.g.ts +2 -0
  121. package/src/shaders/shaders.ts +52 -55
  122. package/src/shaders/symbol_icon.fragment.glsl.g.ts +2 -0
  123. package/src/shaders/symbol_icon.vertex.glsl.g.ts +2 -0
  124. package/src/shaders/symbol_sdf.fragment.glsl.g.ts +2 -0
  125. package/src/shaders/symbol_sdf.vertex.glsl.g.ts +2 -0
  126. package/src/shaders/symbol_text_and_icon.fragment.glsl.g.ts +2 -0
  127. package/src/shaders/symbol_text_and_icon.vertex.glsl.g.ts +2 -0
  128. package/src/source/canvas_source.test.ts +11 -12
  129. package/src/source/canvas_source.ts +4 -4
  130. package/src/source/geojson_source.test.ts +2 -1
  131. package/src/source/geojson_source.ts +1 -1
  132. package/src/source/geojson_worker_source.ts +23 -23
  133. package/src/source/geojson_wrapper.ts +8 -8
  134. package/src/source/image_source.test.ts +153 -0
  135. package/src/source/image_source.ts +6 -6
  136. package/src/source/pixels_to_tile_units.ts +6 -6
  137. package/src/source/query_features.ts +20 -20
  138. package/src/source/raster_dem_tile_source.test.ts +4 -3
  139. package/src/source/raster_dem_tile_source.ts +1 -1
  140. package/src/source/raster_tile_source.test.ts +4 -3
  141. package/src/source/raster_tile_source.ts +1 -1
  142. package/src/source/rtl_text_plugin.ts +10 -10
  143. package/src/source/source.ts +29 -29
  144. package/src/source/source_cache.test.ts +33 -1
  145. package/src/source/source_cache.ts +7 -5
  146. package/src/source/source_state.ts +1 -1
  147. package/src/source/tile.test.ts +3 -3
  148. package/src/source/tile.ts +15 -15
  149. package/src/source/tile_cache.test.ts +6 -4
  150. package/src/source/tile_cache.ts +6 -6
  151. package/src/source/tile_id.test.ts +10 -13
  152. package/src/source/tile_id.ts +2 -2
  153. package/src/source/vector_tile_source.test.ts +17 -5
  154. package/src/source/vector_tile_source.ts +4 -5
  155. package/src/source/vector_tile_worker_source.test.ts +4 -4
  156. package/src/source/vector_tile_worker_source.ts +5 -5
  157. package/src/source/worker.test.ts +1 -1
  158. package/src/source/worker.ts +22 -22
  159. package/src/source/worker_source.ts +56 -56
  160. package/src/source/worker_tile.ts +4 -4
  161. package/src/style/evaluation_parameters.ts +3 -3
  162. package/src/style/format_section_override.test.ts +1 -1
  163. package/src/style/light.ts +10 -10
  164. package/src/style/load_glyph_range.test.ts +3 -5
  165. package/src/style/load_glyph_range.ts +6 -6
  166. package/src/style/load_sprite.ts +5 -4
  167. package/src/style/pauseable_placement.ts +1 -1
  168. package/src/style/properties.ts +70 -70
  169. package/src/style/query_utils.ts +7 -7
  170. package/src/style/style.test.ts +26 -15
  171. package/src/style/style.ts +30 -30
  172. package/src/style/style_glyph.ts +8 -8
  173. package/src/style/style_image.ts +58 -58
  174. package/src/style/style_layer/background_style_layer.ts +2 -2
  175. package/src/style/style_layer/{background_style_layer_properties.ts → background_style_layer_properties.g.ts} +0 -0
  176. package/src/style/style_layer/circle_style_layer.ts +10 -10
  177. package/src/style/style_layer/{circle_style_layer_properties.ts → circle_style_layer_properties.g.ts} +0 -0
  178. package/src/style/style_layer/custom_style_layer.ts +19 -19
  179. package/src/style/style_layer/fill_extrusion_style_layer.ts +11 -11
  180. package/src/style/style_layer/{fill_extrusion_style_layer_properties.ts → fill_extrusion_style_layer_properties.g.ts} +0 -0
  181. package/src/style/style_layer/fill_style_layer.ts +9 -9
  182. package/src/style/style_layer/{fill_style_layer_properties.ts → fill_style_layer_properties.g.ts} +0 -0
  183. package/src/style/style_layer/heatmap_style_layer.ts +2 -2
  184. package/src/style/style_layer/{heatmap_style_layer_properties.ts → heatmap_style_layer_properties.g.ts} +0 -0
  185. package/src/style/style_layer/hillshade_style_layer.ts +2 -2
  186. package/src/style/style_layer/{hillshade_style_layer_properties.ts → hillshade_style_layer_properties.g.ts} +0 -0
  187. package/src/style/style_layer/line_style_layer.ts +9 -9
  188. package/src/style/style_layer/{line_style_layer_properties.ts → line_style_layer_properties.g.ts} +0 -0
  189. package/src/style/style_layer/raster_style_layer.ts +2 -2
  190. package/src/style/style_layer/{raster_style_layer_properties.ts → raster_style_layer_properties.g.ts} +0 -0
  191. package/src/style/style_layer/symbol_style_layer.ts +26 -7
  192. package/src/style/style_layer/{symbol_style_layer_properties.ts → symbol_style_layer_properties.g.ts} +6 -0
  193. package/src/style/style_layer.ts +10 -10
  194. package/src/style/style_layer_index.ts +3 -3
  195. package/src/style/validate_style.ts +15 -15
  196. package/src/style-spec/CHANGELOG.md +6 -0
  197. package/src/style-spec/error/validation_error.ts +1 -1
  198. package/src/style-spec/expression/compound_expression.ts +3 -3
  199. package/src/style-spec/expression/definitions/format.ts +11 -11
  200. package/src/style-spec/expression/definitions/interpolate.ts +5 -5
  201. package/src/style-spec/expression/definitions/match.ts +2 -2
  202. package/src/style-spec/expression/definitions/number_format.ts +11 -11
  203. package/src/style-spec/expression/expression.ts +8 -8
  204. package/src/style-spec/expression/index.ts +97 -97
  205. package/src/style-spec/expression/parsing_context.ts +11 -11
  206. package/src/style-spec/expression/types/collator.ts +9 -9
  207. package/src/style-spec/expression/types/resolved_image.ts +2 -2
  208. package/src/style-spec/expression/types.ts +14 -14
  209. package/src/style-spec/expression/values.ts +1 -1
  210. package/src/style-spec/feature_filter/index.ts +66 -66
  211. package/src/style-spec/function/convert.ts +3 -3
  212. package/src/style-spec/package.json +1 -1
  213. package/src/style-spec/reference/v8.json +68 -2
  214. package/src/style-spec/style-spec.ts +44 -44
  215. package/src/style-spec/types.ts +2 -0
  216. package/src/style-spec/util/color_spaces.ts +8 -8
  217. package/src/style-spec/util/result.ts +4 -4
  218. package/src/style-spec/validate/validate_filter.ts +58 -58
  219. package/src/style-spec/validate/validate_source.ts +63 -63
  220. package/src/style-spec/visit.ts +11 -11
  221. package/src/symbol/collision_feature.test.ts +1 -1
  222. package/src/symbol/collision_feature.ts +10 -10
  223. package/src/symbol/collision_index.ts +43 -43
  224. package/src/symbol/cross_tile_symbol_index.ts +17 -17
  225. package/src/symbol/get_anchors.ts +16 -16
  226. package/src/symbol/grid_index.test.ts +42 -19
  227. package/src/symbol/grid_index.ts +69 -40
  228. package/src/symbol/placement.ts +124 -95
  229. package/src/symbol/projection.ts +30 -30
  230. package/src/symbol/quads.ts +30 -30
  231. package/src/symbol/shaping.ts +160 -160
  232. package/src/symbol/symbol_layout.ts +119 -119
  233. package/src/symbol/symbol_size.ts +29 -29
  234. package/src/symbol/symbol_style_layer.test.ts +49 -2
  235. package/src/types/cancelable.ts +1 -1
  236. package/src/types/tilejson.ts +13 -13
  237. package/src/ui/anchor.ts +1 -1
  238. package/src/ui/camera.test.ts +9 -9
  239. package/src/ui/camera.ts +26 -18
  240. package/src/ui/control/attribution_control.test.ts +51 -16
  241. package/src/ui/control/attribution_control.ts +35 -16
  242. package/src/ui/control/control.ts +40 -40
  243. package/src/ui/control/fullscreen_control.ts +1 -1
  244. package/src/ui/control/geolocate_control.test.ts +1 -1
  245. package/src/ui/control/geolocate_control.ts +102 -102
  246. package/src/ui/control/logo_control.test.ts +5 -4
  247. package/src/ui/control/navigation_control.ts +3 -3
  248. package/src/ui/control/scale_control.test.ts +2 -2
  249. package/src/ui/control/scale_control.ts +5 -5
  250. package/src/ui/events.ts +289 -200
  251. package/src/ui/handler/box_zoom.test.ts +1 -1
  252. package/src/ui/handler/box_zoom.ts +1 -1
  253. package/src/ui/handler/dblclick_zoom.test.ts +1 -1
  254. package/src/ui/handler/drag_pan.test.ts +1 -1
  255. package/src/ui/handler/drag_rotate.test.ts +1 -1
  256. package/src/ui/handler/keyboard.test.ts +1 -1
  257. package/src/ui/handler/keyboard.ts +51 -51
  258. package/src/ui/handler/map_event.test.ts +1 -1
  259. package/src/ui/handler/map_event.ts +1 -1
  260. package/src/ui/handler/mouse.ts +1 -1
  261. package/src/ui/handler/mouse_rotate.test.ts +1 -1
  262. package/src/ui/handler/scroll_zoom.test.ts +3 -2
  263. package/src/ui/handler/scroll_zoom.ts +9 -9
  264. package/src/ui/handler/shim/drag_pan.ts +4 -4
  265. package/src/ui/handler/shim/drag_rotate.ts +1 -1
  266. package/src/ui/handler/shim/touch_zoom_rotate.ts +1 -1
  267. package/src/ui/handler/tap_recognizer.ts +4 -4
  268. package/src/ui/handler/touch_pan.ts +2 -2
  269. package/src/ui/handler/touch_zoom_rotate.test.ts +1 -1
  270. package/src/ui/handler/touch_zoom_rotate.ts +1 -1
  271. package/src/ui/handler_inertia.ts +6 -6
  272. package/src/ui/handler_manager.ts +44 -44
  273. package/src/ui/map/isMoving.test.ts +1 -1
  274. package/src/ui/map/isRotating.test.ts +1 -1
  275. package/src/ui/map/isZooming.test.ts +1 -1
  276. package/src/ui/map.test.ts +87 -14
  277. package/src/ui/map.ts +138 -108
  278. package/src/ui/map_events.test.ts +1 -1
  279. package/src/ui/marker.test.ts +12 -12
  280. package/src/ui/marker.ts +37 -37
  281. package/src/ui/popup.test.ts +7 -7
  282. package/src/ui/popup.ts +9 -9
  283. package/src/util/actor.test.ts +41 -10
  284. package/src/util/actor.ts +8 -8
  285. package/src/util/ajax.test.ts +214 -0
  286. package/src/util/ajax.ts +51 -30
  287. package/src/util/browser.ts +1 -1
  288. package/src/util/classify_rings.test.ts +1 -1
  289. package/src/util/color_ramp.ts +5 -5
  290. package/src/util/config.ts +2 -2
  291. package/src/util/dispatcher.ts +1 -1
  292. package/src/util/dom.ts +2 -2
  293. package/src/util/evented.ts +1 -1
  294. package/src/util/find_pole_of_inaccessibility.ts +3 -3
  295. package/src/util/image.ts +5 -5
  296. package/src/util/performance.ts +7 -7
  297. package/src/util/request_manager.ts +4 -4
  298. package/src/util/resolve_tokens.ts +4 -4
  299. package/src/util/struct_array.test.ts +1 -1
  300. package/src/util/struct_array.ts +15 -15
  301. package/src/util/task_queue.ts +3 -3
  302. package/src/util/test/util.ts +14 -0
  303. package/src/util/tile_request_cache.ts +3 -3
  304. package/src/util/transferable_grid_index.ts +4 -4
  305. package/src/util/util.ts +8 -8
  306. package/src/util/web_worker.ts +4 -68
  307. package/src/util/web_worker_transfer.test.ts +3 -0
  308. package/src/util/web_worker_transfer.ts +21 -17
  309. package/src/util/worker_pool.ts +1 -1
  310. package/build/.eslintrc +0 -21
  311. package/build/glsl_to_js.js +0 -12
  312. package/build/post-ts-build.js +0 -43
  313. package/build/release-notes.md.ejs +0 -8
  314. package/build/test/build-tape.js +0 -17
  315. package/build/web_worker_replacement.js +0 -5
  316. package/dist/package.json +0 -1
  317. package/src/style-spec/validate_spec.test.ts +0 -29
  318. package/src/symbol/shaping.test.ts +0 -392
  319. package/src/types/glsl.d.ts +0 -4
@@ -55,7 +55,7 @@ function drawDebugSSRect(painter: Painter, x: number, y: number, width: number,
55
55
  const gl = context.gl;
56
56
 
57
57
  gl.enable(gl.SCISSOR_TEST);
58
- gl.scissor(x * devicePixelRatio, y * devicePixelRatio, width * devicePixelRatio, height * devicePixelRatio);
58
+ gl.scissor(x * painter.pixelRatio, y * painter.pixelRatio, width * painter.pixelRatio, height * painter.pixelRatio);
59
59
  context.clear({color});
60
60
  gl.disable(gl.SCISSOR_TEST);
61
61
  }
@@ -36,8 +36,8 @@ export default function drawLine(painter: Painter, sourceCache: SourceCache, lay
36
36
 
37
37
  const programId =
38
38
  image ? 'linePattern' :
39
- dasharray ? 'lineSDF' :
40
- gradient ? 'lineGradient' : 'line';
39
+ dasharray ? 'lineSDF' :
40
+ gradient ? 'lineGradient' : 'line';
41
41
 
42
42
  const context = painter.context;
43
43
  const gl = context.gl;
@@ -67,8 +67,8 @@ export default function drawLine(painter: Painter, sourceCache: SourceCache, lay
67
67
 
68
68
  const uniformValues = image ? linePatternUniformValues(painter, tile, layer, crossfade) :
69
69
  dasharray ? lineSDFUniformValues(painter, tile, layer, dasharray, crossfade) :
70
- gradient ? lineGradientUniformValues(painter, tile, layer, bucket.lineClipsArray.length) :
71
- lineUniformValues(painter, tile, layer);
70
+ gradient ? lineGradientUniformValues(painter, tile, layer, bucket.lineClipsArray.length) :
71
+ lineUniformValues(painter, tile, layer);
72
72
 
73
73
  if (image) {
74
74
  context.activeTexture.set(gl.TEXTURE0);
@@ -34,25 +34,25 @@ import type {CrossTileID, VariableOffset} from '../symbol/placement';
34
34
  export default drawSymbols;
35
35
 
36
36
  type SymbolTileRenderState = {
37
- segments: SegmentVector;
38
- sortKey: number;
39
- state: {
40
- program: any;
41
- buffers: SymbolBuffers;
42
- uniformValues: any;
43
- atlasTexture: Texture;
44
- atlasTextureIcon: Texture | null;
45
- atlasInterpolation: any;
46
- atlasInterpolationIcon: any;
47
- isSDF: boolean;
48
- hasHalo: boolean;
49
- };
37
+ segments: SegmentVector;
38
+ sortKey: number;
39
+ state: {
40
+ program: any;
41
+ buffers: SymbolBuffers;
42
+ uniformValues: any;
43
+ atlasTexture: Texture;
44
+ atlasTextureIcon: Texture | null;
45
+ atlasInterpolation: any;
46
+ atlasInterpolationIcon: any;
47
+ isSDF: boolean;
48
+ hasHalo: boolean;
49
+ };
50
50
  };
51
51
 
52
52
  const identityMat4 = mat4.identity(new Float32Array(16));
53
53
 
54
54
  function drawSymbols(painter: Painter, sourceCache: SourceCache, layer: SymbolStyleLayer, coords: Array<OverscaledTileID>, variableOffsets: {
55
- [_ in CrossTileID]: VariableOffset;
55
+ [_ in CrossTileID]: VariableOffset;
56
56
  }) {
57
57
  if (painter.renderPass !== 'translucent') return;
58
58
 
@@ -132,13 +132,13 @@ function updateVariableAnchors(coords, painter, layer, sourceCache, rotationAlig
132
132
  if (size) {
133
133
  const tileScale = Math.pow(2, tr.zoom - tile.tileID.overscaledZ);
134
134
  updateVariableAnchorsForBucket(bucket, rotateWithMap, pitchWithMap, variableOffsets, symbolSize,
135
- tr, labelPlaneMatrix, coord.posMatrix, tileScale, size, updateTextFitIcon);
135
+ tr, labelPlaneMatrix, coord.posMatrix, tileScale, size, updateTextFitIcon);
136
136
  }
137
137
  }
138
138
  }
139
139
 
140
140
  function updateVariableAnchorsForBucket(bucket, rotateWithMap, pitchWithMap, variableOffsets, symbolSize,
141
- transform, labelPlaneMatrix, posMatrix, tileScale, size, updateTextFitIcon) {
141
+ transform, labelPlaneMatrix, posMatrix, tileScale, size, updateTextFitIcon) {
142
142
  const placedSymbols = bucket.text.placedSymbolArray;
143
143
  const dynamicTextLayoutVertexArray = bucket.text.dynamicLayoutVertexArray;
144
144
  const dynamicIconLayoutVertexArray = bucket.icon.dynamicLayoutVertexArray;
@@ -223,7 +223,7 @@ function getSymbolProgramName(isSDF: boolean, isText: boolean, bucket: SymbolBuc
223
223
  }
224
224
 
225
225
  function drawLayerSymbols(painter, sourceCache, layer, coords, isText, translate, translateAnchor,
226
- rotationAlignment, pitchAlignment, keepUpright, stencilMode, colorMode) {
226
+ rotationAlignment, pitchAlignment, keepUpright, stencilMode, colorMode) {
227
227
 
228
228
  const context = painter.context;
229
229
  const gl = context.gl;
@@ -310,12 +310,12 @@ function drawLayerSymbols(painter, sourceCache, layer, coords, isText, translate
310
310
  if (isSDF) {
311
311
  if (!bucket.iconsInText) {
312
312
  uniformValues = symbolSDFUniformValues(sizeData.kind,
313
- size, rotateInShader, pitchWithMap, painter, matrix,
314
- uLabelPlaneMatrix, uglCoordMatrix, isText, texSize, true);
313
+ size, rotateInShader, pitchWithMap, painter, matrix,
314
+ uLabelPlaneMatrix, uglCoordMatrix, isText, texSize, true);
315
315
  } else {
316
316
  uniformValues = symbolTextAndIconUniformValues(sizeData.kind,
317
- size, rotateInShader, pitchWithMap, painter, matrix,
318
- uLabelPlaneMatrix, uglCoordMatrix, texSize, texSizeIcon);
317
+ size, rotateInShader, pitchWithMap, painter, matrix,
318
+ uLabelPlaneMatrix, uglCoordMatrix, texSize, texSizeIcon);
319
319
  }
320
320
  } else {
321
321
  uniformValues = symbolIconUniformValues(sizeData.kind,
@@ -7,21 +7,21 @@ import type {GlyphMetrics, StyleGlyph} from '../style/style_glyph';
7
7
  const padding = 1;
8
8
 
9
9
  export type Rect = {
10
- x: number;
11
- y: number;
12
- w: number;
13
- h: number;
10
+ x: number;
11
+ y: number;
12
+ w: number;
13
+ h: number;
14
14
  };
15
15
 
16
16
  export type GlyphPosition = {
17
- rect: Rect;
18
- metrics: GlyphMetrics;
17
+ rect: Rect;
18
+ metrics: GlyphMetrics;
19
19
  };
20
20
 
21
21
  export type GlyphPositions = {
22
- [_: string]: {
23
- [_: number]: GlyphPosition;
24
- };
22
+ [_: string]: {
23
+ [_: number]: GlyphPosition;
24
+ };
25
25
  };
26
26
 
27
27
  export default class GlyphAtlas {
@@ -29,9 +29,9 @@ export default class GlyphAtlas {
29
29
  positions: GlyphPositions;
30
30
 
31
31
  constructor(stacks: {
32
- [_: string]: {
33
- [_: number]: StyleGlyph;
34
- };
32
+ [_: string]: {
33
+ [_: number]: StyleGlyph;
34
+ };
35
35
  }) {
36
36
  const positions = {};
37
37
  const bins = [];
@@ -4,7 +4,7 @@ import fs from 'fs';
4
4
  import {RequestManager} from '../util/request_manager';
5
5
 
6
6
  const glyphs = {};
7
- for (const glyph of parseGlyphPBF(fs.readFileSync('./test/fixtures/0-255.pbf'))) {
7
+ for (const glyph of parseGlyphPBF(fs.readFileSync('./test/unit/assets/0-255.pbf'))) {
8
8
  glyphs[glyph.id] = glyph;
9
9
  }
10
10
 
@@ -21,12 +21,6 @@ const createLoadGlyphRangeStub = () => {
21
21
  };
22
22
 
23
23
  const createGlyphManager = (font?) => {
24
- GlyphManager.TinySDF = class {
25
- // Return empty 30x30 bitmap (24 fontsize + 3 * 2 buffer)
26
- draw() {
27
- return {data: new Uint8ClampedArray(900)} as any;
28
- }
29
- };
30
24
  const manager = new GlyphManager(identityTransform, font);
31
25
  manager.setURL('https://localhost/fonts/v1/{fontstack}/{range}.pbf');
32
26
  return manager;
@@ -106,8 +100,8 @@ describe('GlyphManager', () => {
106
100
  expect(err).toBeFalsy();
107
101
  const glyph = glyphs['Arial Unicode MS'][0x30c6];
108
102
  //Ensure that te is locally generated.
109
- expect(glyph.bitmap.height).toBe(30);
110
- expect(glyph.bitmap.width).toBe(30);
103
+ expect(glyph.bitmap.height).toBe(6);
104
+ expect(glyph.bitmap.width).toBe(6);
111
105
  done();
112
106
  });
113
107
  });
@@ -118,7 +112,7 @@ describe('GlyphManager', () => {
118
112
 
119
113
  manager.getGlyphs({'Arial Unicode MS': [0x5e73]}, (err, glyphs) => {
120
114
  expect(err).toBeFalsy();
121
- expect(glyphs['Arial Unicode MS'][0x5e73].metrics.advance).toBe(24);
115
+ expect(glyphs['Arial Unicode MS'][0x5e73].metrics.advance).toBe(1);
122
116
  done();
123
117
  });
124
118
  });
@@ -129,7 +123,7 @@ describe('GlyphManager', () => {
129
123
  // Katakana letter te
130
124
  manager.getGlyphs({'Arial Unicode MS': [0x30c6]}, (err, glyphs) => {
131
125
  expect(err).toBeFalsy();
132
- expect(glyphs['Arial Unicode MS'][0x30c6].metrics.advance).toBe(24);
126
+ expect(glyphs['Arial Unicode MS'][0x30c6].metrics.advance).toBe(1);
133
127
  done();
134
128
  });
135
129
  });
@@ -140,7 +134,7 @@ describe('GlyphManager', () => {
140
134
  //Hiragana letter te
141
135
  manager.getGlyphs({'Arial Unicode MS': [0x3066]}, (err, glyphs) => {
142
136
  expect(err).toBeFalsy();
143
- expect(glyphs['Arial Unicode MS'][0x3066].metrics.advance).toBe(24);
137
+ expect(glyphs['Arial Unicode MS'][0x3066].metrics.advance).toBe(1);
144
138
  done();
145
139
  });
146
140
  });
@@ -148,21 +142,16 @@ describe('GlyphManager', () => {
148
142
  test('GlyphManager caches locally generated glyphs', done => {
149
143
 
150
144
  const manager = createGlyphManager('sans-serif');
151
- let drawCallCount = 0;
152
- GlyphManager.TinySDF = class {
153
- // Return empty 30x30 bitmap (24 fontsize + 3 * 2 buffer)
154
- draw() {
155
- drawCallCount++;
156
- return {data: new Uint8ClampedArray(900)} as any;
157
- }
158
- };
145
+ const drawSpy = GlyphManager.TinySDF.prototype.draw = jest.fn().mockImplementation(() => {
146
+ return {data: new Uint8ClampedArray(900)} as any;
147
+ });
159
148
 
160
149
  // Katakana letter te
161
150
  manager.getGlyphs({'Arial Unicode MS': [0x30c6]}, (err, glyphs) => {
162
151
  expect(err).toBeFalsy();
163
152
  expect(glyphs['Arial Unicode MS'][0x30c6].metrics.advance).toBe(24);
164
153
  manager.getGlyphs({'Arial Unicode MS': [0x30c6]}, () => {
165
- expect(drawCallCount).toBe(1);
154
+ expect(drawSpy).toHaveBeenCalledTimes(1);
166
155
  done();
167
156
  });
168
157
  });
@@ -10,26 +10,26 @@ import type {RequestManager} from '../util/request_manager';
10
10
  import type {Callback} from '../types/callback';
11
11
 
12
12
  type Entry = {
13
- // null means we've requested the range, but the glyph wasn't included in the result.
14
- glyphs: {
15
- [id: number]: StyleGlyph | null;
16
- };
17
- requests: {
18
- [range: number]: Array<Callback<{
19
- [_: number]: StyleGlyph | null;
20
- }>>;
21
- };
22
- ranges: {
23
- [range: number]: boolean | null;
24
- };
25
- tinySDF?: TinySDF;
13
+ // null means we've requested the range, but the glyph wasn't included in the result.
14
+ glyphs: {
15
+ [id: number]: StyleGlyph | null;
16
+ };
17
+ requests: {
18
+ [range: number]: Array<Callback<{
19
+ [_: number]: StyleGlyph | null;
20
+ }>>;
21
+ };
22
+ ranges: {
23
+ [range: number]: boolean | null;
24
+ };
25
+ tinySDF?: TinySDF;
26
26
  };
27
27
 
28
28
  export default class GlyphManager {
29
29
  requestManager: RequestManager;
30
30
  localIdeographFontFamily: string;
31
31
  entries: {
32
- [_: string]: Entry;
32
+ [_: string]: Entry;
33
33
  };
34
34
  url: string;
35
35
 
@@ -48,11 +48,11 @@ export default class GlyphManager {
48
48
  }
49
49
 
50
50
  getGlyphs(glyphs: {
51
- [stack: string]: Array<number>;
51
+ [stack: string]: Array<number>;
52
52
  }, callback: Callback<{
53
- [stack: string]: {
54
- [id: number]: StyleGlyph;
55
- };
53
+ [stack: string]: {
54
+ [id: number]: StyleGlyph;
55
+ };
56
56
  }>) {
57
57
  const all = [];
58
58
 
@@ -63,9 +63,9 @@ export default class GlyphManager {
63
63
  }
64
64
 
65
65
  asyncAll(all, ({stack, id}, callback: Callback<{
66
- stack: string;
67
- id: number;
68
- glyph: StyleGlyph;
66
+ stack: string;
67
+ id: number;
68
+ glyph: StyleGlyph;
69
69
  }>) => {
70
70
  let entry = this.entries[stack];
71
71
  if (!entry) {
@@ -103,9 +103,9 @@ export default class GlyphManager {
103
103
  let requests = entry.requests[range];
104
104
  if (!requests) {
105
105
  requests = entry.requests[range] = [];
106
- GlyphManager.loadGlyphRange(stack, range, this.url as any, this.requestManager,
106
+ GlyphManager.loadGlyphRange(stack, range, this.url, this.requestManager,
107
107
  (err, response?: {
108
- [_: number]: StyleGlyph | null;
108
+ [_: number]: StyleGlyph | null;
109
109
  } | null) => {
110
110
  if (response) {
111
111
  for (const id in response) {
@@ -123,7 +123,7 @@ export default class GlyphManager {
123
123
  }
124
124
 
125
125
  requests.push((err, result?: {
126
- [_: number]: StyleGlyph | null;
126
+ [_: number]: StyleGlyph | null;
127
127
  } | null) => {
128
128
  if (err) {
129
129
  callback(err);
@@ -132,9 +132,9 @@ export default class GlyphManager {
132
132
  }
133
133
  });
134
134
  }, (err, glyphs?: Array<{
135
- stack: string;
136
- id: number;
137
- glyph: StyleGlyph;
135
+ stack: string;
136
+ id: number;
137
+ glyph: StyleGlyph;
138
138
  }> | null) => {
139
139
  if (err) {
140
140
  callback(err);
@@ -195,15 +195,16 @@ export default class GlyphManager {
195
195
  });
196
196
  }
197
197
 
198
+ const char = tinySDF.draw(String.fromCharCode(id));
198
199
  return {
199
200
  id,
200
- bitmap: new AlphaImage({width: 30, height: 30}, tinySDF.draw(String.fromCharCode(id)).data),
201
+ bitmap: new AlphaImage({width: char.width || 30, height: char.height || 30}, char.data),
201
202
  metrics: {
202
- width: 24,
203
- height: 24,
204
- left: 0,
205
- top: -8,
206
- advance: 24
203
+ width: char.glyphWidth || 24,
204
+ height: char.glyphHeight || 24,
205
+ left: char.glyphLeft || 0,
206
+ top: char.glyphTop || -8,
207
+ advance: char.glyphAdvance || 24
207
208
  }
208
209
  };
209
210
  }
@@ -14,8 +14,8 @@ import type {PotpackBox} from 'potpack';
14
14
  import type {Callback} from '../types/callback';
15
15
 
16
16
  type Pattern = {
17
- bin: PotpackBox;
18
- position: ImagePosition;
17
+ bin: PotpackBox;
18
+ position: ImagePosition;
19
19
  };
20
20
 
21
21
  // When copied into the atlas texture, image data is padded by one pixel on each side. Icon
@@ -41,8 +41,8 @@ class ImageManager extends Evented {
41
41
  callbackDispatchedThisFrame: {[_: string]: boolean};
42
42
  loaded: boolean;
43
43
  requestors: Array<{
44
- ids: Array<string>;
45
- callback: Callback<{[_: string]: StyleImage}>;
44
+ ids: Array<string>;
45
+ callback: Callback<{[_: string]: StyleImage}>;
46
46
  }>;
47
47
 
48
48
  patterns: {[_: string]: Pattern};
@@ -5,7 +5,7 @@ import SourceCache from '../source/source_cache';
5
5
  import EXTENT from '../data/extent';
6
6
  import pixelsToTileUnits from '../source/pixels_to_tile_units';
7
7
  import SegmentVector from '../data/segment';
8
- import {RasterBoundsArray, PosArray, TriangleIndexArray, LineStripIndexArray} from '../data/array_types';
8
+ import {RasterBoundsArray, PosArray, TriangleIndexArray, LineStripIndexArray} from '../data/array_types.g';
9
9
  import rasterBoundsAttributes from '../data/raster_bounds_attributes';
10
10
  import posAttributes from '../data/pos_attributes';
11
11
  import ProgramConfiguration from '../data/program_configuration';
@@ -65,14 +65,14 @@ import type {RGBAImage} from '../util/image';
65
65
  export type RenderPass = 'offscreen' | 'opaque' | 'translucent';
66
66
 
67
67
  type PainterOptions = {
68
- showOverdrawInspector: boolean;
69
- showTileBoundaries: boolean;
70
- showPadding: boolean;
71
- rotating: boolean;
72
- zooming: boolean;
73
- moving: boolean;
74
- gpuTiming: boolean;
75
- fadeDuration: number;
68
+ showOverdrawInspector: boolean;
69
+ showTileBoundaries: boolean;
70
+ showPadding: boolean;
71
+ rotating: boolean;
72
+ zooming: boolean;
73
+ moving: boolean;
74
+ gpuTiming: boolean;
75
+ fadeDuration: number;
76
76
  };
77
77
 
78
78
  /**
@@ -85,13 +85,14 @@ class Painter {
85
85
  context: Context;
86
86
  transform: Transform;
87
87
  _tileTextures: {
88
- [_: number]: Array<Texture>;
88
+ [_: number]: Array<Texture>;
89
89
  };
90
90
  numSublayers: number;
91
91
  depthEpsilon: number;
92
92
  emptyProgramConfiguration: ProgramConfiguration;
93
93
  width: number;
94
94
  height: number;
95
+ pixelRatio: number;
95
96
  tileExtentBuffer: VertexBuffer;
96
97
  tileExtentSegments: SegmentVector;
97
98
  debugBuffer: VertexBuffer;
@@ -146,9 +147,10 @@ class Painter {
146
147
  * Update the GL viewport, projection matrix, and transforms to compensate
147
148
  * for a new width and height value.
148
149
  */
149
- resize(width: number, height: number) {
150
- this.width = width * devicePixelRatio;
151
- this.height = height * devicePixelRatio;
150
+ resize(width: number, height: number, pixelRatio: number) {
151
+ this.width = width * pixelRatio;
152
+ this.height = height * pixelRatio;
153
+ this.pixelRatio = pixelRatio;
152
154
  this.context.viewport.set([0, 0, this.width, this.height]);
153
155
 
154
156
  if (this.style) {
@@ -303,7 +305,7 @@ class Painter {
303
305
  * Returns [StencilMode for tile overscaleZ map, sortedCoords].
304
306
  */
305
307
  stencilConfigForOverlap(tileIDs: Array<OverscaledTileID>): [{
306
- [_: number]: Readonly<StencilMode>;
308
+ [_: number]: Readonly<StencilMode>;
307
309
  }, Array<OverscaledTileID>] {
308
310
  const gl = this.context.gl;
309
311
  const coords = tileIDs.sort((a, b) => b.overscaledZ - a.overscaledZ);
@@ -19,29 +19,29 @@ import type ResolvedImage from '../../style-spec/expression/types/resolved_image
19
19
  import {mat4} from 'gl-matrix';
20
20
 
21
21
  export type BackgroundUniformsType = {
22
- 'u_matrix': UniformMatrix4f;
23
- 'u_opacity': Uniform1f;
24
- 'u_color': UniformColor;
22
+ 'u_matrix': UniformMatrix4f;
23
+ 'u_opacity': Uniform1f;
24
+ 'u_color': UniformColor;
25
25
  };
26
26
 
27
27
  export type BackgroundPatternUniformsType = {
28
- 'u_matrix': UniformMatrix4f;
29
- 'u_opacity': Uniform1f;
30
- // pattern uniforms:
31
- 'u_image': Uniform1i;
32
- 'u_pattern_tl_a': Uniform2f;
33
- 'u_pattern_br_a': Uniform2f;
34
- 'u_pattern_tl_b': Uniform2f;
35
- 'u_pattern_br_b': Uniform2f;
36
- 'u_texsize': Uniform2f;
37
- 'u_mix': Uniform1f;
38
- 'u_pattern_size_a': Uniform2f;
39
- 'u_pattern_size_b': Uniform2f;
40
- 'u_scale_a': Uniform1f;
41
- 'u_scale_b': Uniform1f;
42
- 'u_pixel_coord_upper': Uniform2f;
43
- 'u_pixel_coord_lower': Uniform2f;
44
- 'u_tile_units_to_pixels': Uniform1f;
28
+ 'u_matrix': UniformMatrix4f;
29
+ 'u_opacity': Uniform1f;
30
+ // pattern uniforms:
31
+ 'u_image': Uniform1i;
32
+ 'u_pattern_tl_a': Uniform2f;
33
+ 'u_pattern_br_a': Uniform2f;
34
+ 'u_pattern_tl_b': Uniform2f;
35
+ 'u_pattern_br_b': Uniform2f;
36
+ 'u_texsize': Uniform2f;
37
+ 'u_mix': Uniform1f;
38
+ 'u_pattern_size_a': Uniform2f;
39
+ 'u_pattern_size_b': Uniform2f;
40
+ 'u_scale_a': Uniform1f;
41
+ 'u_scale_b': Uniform1f;
42
+ 'u_pixel_coord_upper': Uniform2f;
43
+ 'u_pixel_coord_lower': Uniform2f;
44
+ 'u_tile_units_to_pixels': Uniform1f;
45
45
  };
46
46
 
47
47
  const backgroundUniforms = (context: Context, locations: UniformLocations): BackgroundUniformsType => ({
@@ -76,15 +76,15 @@ const backgroundUniformValues = (matrix: mat4, opacity: number, color: Color): U
76
76
  });
77
77
 
78
78
  const backgroundPatternUniformValues = (
79
- matrix: mat4,
80
- opacity: number,
81
- painter: Painter,
82
- image: CrossFaded<ResolvedImage>,
83
- tile: {
84
- tileID: OverscaledTileID;
85
- tileSize: number;
86
- },
87
- crossfade: CrossfadeParameters
79
+ matrix: mat4,
80
+ opacity: number,
81
+ painter: Painter,
82
+ image: CrossFaded<ResolvedImage>,
83
+ tile: {
84
+ tileID: OverscaledTileID;
85
+ tileSize: number;
86
+ },
87
+ crossfade: CrossfadeParameters
88
88
  ): UniformValues<BackgroundPatternUniformsType> => extend(
89
89
  bgPatternUniformValues(image, crossfade, painter, tile),
90
90
  {
@@ -9,12 +9,12 @@ import type CircleStyleLayer from '../../style/style_layer/circle_style_layer';
9
9
  import type Painter from '../painter';
10
10
 
11
11
  export type CircleUniformsType = {
12
- 'u_camera_to_center_distance': Uniform1f;
13
- 'u_scale_with_map': Uniform1i;
14
- 'u_pitch_with_map': Uniform1i;
15
- 'u_extrude_scale': Uniform2f;
16
- 'u_device_pixel_ratio': Uniform1f;
17
- 'u_matrix': UniformMatrix4f;
12
+ 'u_camera_to_center_distance': Uniform1f;
13
+ 'u_scale_with_map': Uniform1i;
14
+ 'u_pitch_with_map': Uniform1i;
15
+ 'u_extrude_scale': Uniform2f;
16
+ 'u_device_pixel_ratio': Uniform1f;
17
+ 'u_matrix': UniformMatrix4f;
18
18
  };
19
19
 
20
20
  const circleUniforms = (context: Context, locations: UniformLocations): CircleUniformsType => ({
@@ -27,10 +27,10 @@ const circleUniforms = (context: Context, locations: UniformLocations): CircleUn
27
27
  });
28
28
 
29
29
  const circleUniformValues = (
30
- painter: Painter,
31
- coord: OverscaledTileID,
32
- tile: Tile,
33
- layer: CircleStyleLayer
30
+ painter: Painter,
31
+ coord: OverscaledTileID,
32
+ tile: Tile,
33
+ layer: CircleStyleLayer
34
34
  ): UniformValues<CircleUniformsType> => {
35
35
  const transform = painter.transform;
36
36
 
@@ -53,7 +53,7 @@ const circleUniformValues = (
53
53
  layer.paint.get('circle-translate'),
54
54
  layer.paint.get('circle-translate-anchor')),
55
55
  'u_pitch_with_map': +(pitchWithMap),
56
- 'u_device_pixel_ratio': devicePixelRatio,
56
+ 'u_device_pixel_ratio': painter.pixelRatio,
57
57
  'u_extrude_scale': extrudeScale
58
58
  };
59
59
  };
@@ -5,7 +5,7 @@ import type {UniformValues, UniformLocations} from '../uniform_binding';
5
5
  import {mat4} from 'gl-matrix';
6
6
 
7
7
  export type ClippingMaskUniformsType = {
8
- 'u_matrix': UniformMatrix4f;
8
+ 'u_matrix': UniformMatrix4f;
9
9
  };
10
10
 
11
11
  const clippingMaskUniforms = (context: Context, locations: UniformLocations): ClippingMaskUniformsType => ({
@@ -8,18 +8,18 @@ import type Tile from '../../source/tile';
8
8
  import {mat4} from 'gl-matrix';
9
9
 
10
10
  export type CollisionUniformsType = {
11
- 'u_matrix': UniformMatrix4f;
12
- 'u_camera_to_center_distance': Uniform1f;
13
- 'u_pixels_to_tile_units': Uniform1f;
14
- 'u_extrude_scale': Uniform2f;
15
- 'u_overscale_factor': Uniform1f;
11
+ 'u_matrix': UniformMatrix4f;
12
+ 'u_camera_to_center_distance': Uniform1f;
13
+ 'u_pixels_to_tile_units': Uniform1f;
14
+ 'u_extrude_scale': Uniform2f;
15
+ 'u_overscale_factor': Uniform1f;
16
16
  };
17
17
 
18
18
  export type CollisionCircleUniformsType = {
19
- 'u_matrix': UniformMatrix4f;
20
- 'u_inv_matrix': UniformMatrix4f;
21
- 'u_camera_to_center_distance': Uniform1f;
22
- 'u_viewport_size': Uniform2f;
19
+ 'u_matrix': UniformMatrix4f;
20
+ 'u_inv_matrix': UniformMatrix4f;
21
+ 'u_camera_to_center_distance': Uniform1f;
22
+ 'u_viewport_size': Uniform2f;
23
23
  };
24
24
 
25
25
  const collisionUniforms = (context: Context, locations: UniformLocations): CollisionUniformsType => ({
@@ -6,10 +6,10 @@ import type Color from '../../style-spec/util/color';
6
6
  import {mat4} from 'gl-matrix';
7
7
 
8
8
  export type DebugUniformsType = {
9
- 'u_color': UniformColor;
10
- 'u_matrix': UniformMatrix4f;
11
- 'u_overlay': Uniform1i;
12
- 'u_overlay_scale': Uniform1f;
9
+ 'u_color': UniformColor;
10
+ 'u_matrix': UniformMatrix4f;
11
+ 'u_overlay': Uniform1i;
12
+ 'u_overlay_scale': Uniform1f;
13
13
  };
14
14
 
15
15
  const debugUniforms = (context: Context, locations: UniformLocations): DebugUniformsType => ({