maplibre-gl 3.1.0 → 3.2.0-pre.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.
- package/README.md +7 -7
- package/build/generate-doc-images.ts +73 -0
- package/build/generate-docs.ts +100 -0
- package/build/generate-struct-arrays.ts +9 -12
- package/dist/maplibre-gl-csp-worker.js +1 -1
- package/dist/maplibre-gl-csp-worker.js.map +1 -1
- package/dist/maplibre-gl-csp.js +1 -1
- package/dist/maplibre-gl-csp.js.map +1 -1
- package/dist/maplibre-gl-dev.js +3303 -3398
- package/dist/maplibre-gl-dev.js.map +1 -1
- package/dist/maplibre-gl.d.ts +3899 -3531
- package/dist/maplibre-gl.js +3 -3
- package/dist/maplibre-gl.js.map +1 -1
- package/package.json +28 -25
- package/src/data/array_types.g.ts +14 -48
- package/src/data/bucket/circle_bucket.ts +11 -14
- package/src/data/bucket/fill_bucket.test.ts +6 -6
- package/src/data/bucket/fill_bucket.ts +10 -12
- package/src/data/bucket/fill_extrusion_bucket.ts +11 -13
- package/src/data/bucket/heatmap_bucket.ts +3 -6
- package/src/data/bucket/line_attributes.ts +1 -2
- package/src/data/bucket/line_attributes_ext.ts +1 -2
- package/src/data/bucket/line_bucket.test.ts +5 -5
- package/src/data/bucket/line_bucket.ts +18 -21
- package/src/data/bucket/pattern_attributes.ts +1 -3
- package/src/data/bucket/pattern_bucket_features.ts +3 -3
- package/src/data/bucket/symbol_bucket.test.ts +5 -5
- package/src/data/bucket/symbol_bucket.ts +12 -15
- package/src/data/bucket.ts +7 -11
- package/src/data/dem_data.test.ts +1 -1
- package/src/data/dem_data.ts +1 -1
- package/src/data/evaluation_feature.ts +4 -5
- package/src/data/extent.ts +1 -4
- package/src/data/feature_index.ts +14 -13
- package/src/data/feature_position_map.test.ts +4 -4
- package/src/data/feature_position_map.ts +1 -1
- package/src/data/index_array_type.ts +0 -1
- package/src/data/load_geometry.test.ts +1 -1
- package/src/data/load_geometry.ts +3 -4
- package/src/data/program_configuration.ts +6 -11
- package/src/data/segment.ts +9 -6
- package/src/geo/edge_insets.test.ts +1 -1
- package/src/geo/edge_insets.ts +36 -26
- package/src/geo/lng_lat.test.ts +1 -1
- package/src/geo/lng_lat.ts +61 -44
- package/src/geo/lng_lat_bounds.test.ts +2 -2
- package/src/geo/lng_lat_bounds.ts +88 -68
- package/src/geo/mercator_coordinate.test.ts +2 -2
- package/src/geo/mercator_coordinate.ts +34 -27
- package/src/geo/transform.test.ts +3 -3
- package/src/geo/transform.ts +58 -79
- package/src/gl/color_mode.ts +1 -3
- package/src/gl/context.ts +12 -11
- package/src/gl/cull_face_mode.ts +1 -3
- package/src/gl/depth_mode.ts +1 -3
- package/src/gl/framebuffer.ts +5 -4
- package/src/gl/index_buffer.ts +5 -4
- package/src/gl/render_pool.test.ts +2 -2
- package/src/gl/render_pool.ts +5 -5
- package/src/gl/state.test.ts +1 -1
- package/src/gl/stencil_mode.ts +1 -3
- package/src/gl/value.ts +1 -1
- package/src/gl/vertex_buffer.test.ts +2 -2
- package/src/gl/vertex_buffer.ts +8 -14
- package/src/index.test.ts +2 -2
- package/src/index.ts +121 -113
- package/src/render/draw_background.ts +7 -9
- package/src/render/draw_circle.ts +13 -15
- package/src/render/draw_collision_debug.ts +11 -13
- package/src/render/draw_custom.ts +6 -8
- package/src/render/draw_debug.test.ts +4 -4
- package/src/render/draw_debug.ts +8 -10
- package/src/render/draw_fill.test.ts +13 -13
- package/src/render/draw_fill.ts +9 -11
- package/src/render/draw_fill_extrusion.ts +10 -12
- package/src/render/draw_heatmap.ts +12 -14
- package/src/render/draw_hillshade.ts +10 -12
- package/src/render/draw_line.ts +9 -9
- package/src/render/draw_raster.ts +9 -11
- package/src/render/draw_symbol.test.ts +16 -16
- package/src/render/draw_symbol.ts +15 -16
- package/src/render/draw_terrain.ts +11 -11
- package/src/render/glyph_atlas.ts +10 -1
- package/src/render/glyph_manager.test.ts +3 -3
- package/src/render/glyph_manager.ts +7 -7
- package/src/render/image_atlas.ts +6 -3
- package/src/render/image_manager.ts +3 -5
- package/src/render/line_atlas.test.ts +1 -1
- package/src/render/line_atlas.ts +19 -14
- package/src/render/painter.ts +85 -65
- package/src/render/program/background_program.ts +2 -2
- package/src/render/program/circle_program.ts +5 -5
- package/src/render/program/clipping_mask_program.ts +1 -1
- package/src/render/program/collision_program.ts +4 -4
- package/src/render/program/debug_program.ts +1 -1
- package/src/render/program/fill_extrusion_program.ts +3 -3
- package/src/render/program/fill_program.ts +3 -3
- package/src/render/program/heatmap_program.ts +5 -5
- package/src/render/program/hillshade_program.ts +7 -7
- package/src/render/program/line_program.ts +6 -6
- package/src/render/program/pattern.ts +3 -3
- package/src/render/program/raster_program.ts +2 -2
- package/src/render/program/symbol_program.ts +2 -2
- package/src/render/program/terrain_program.ts +1 -1
- package/src/render/program.ts +18 -16
- package/src/render/render_to_texture.test.ts +15 -15
- package/src/render/render_to_texture.ts +10 -10
- package/src/render/terrain.test.ts +38 -7
- package/src/render/terrain.ts +103 -67
- package/src/render/texture.ts +5 -4
- package/src/render/uniform_binding.test.ts +1 -1
- package/src/render/uniform_binding.ts +7 -1
- package/src/render/update_pattern_positions_in_program.ts +5 -5
- package/src/render/vertex_array_object.ts +9 -8
- package/src/shaders/encode_attribute.ts +0 -2
- package/src/shaders/shaders.ts +1 -3
- package/src/source/canvas_source.test.ts +6 -6
- package/src/source/canvas_source.ts +46 -60
- package/src/source/geojson_source.test.ts +5 -5
- package/src/source/geojson_source.ts +75 -59
- package/src/source/geojson_source_diff.ts +39 -2
- package/src/source/geojson_worker_source.test.ts +3 -3
- package/src/source/geojson_worker_source.ts +20 -26
- package/src/source/geojson_wrapper.test.ts +3 -3
- package/src/source/geojson_wrapper.ts +2 -4
- package/src/source/image_source.test.ts +9 -8
- package/src/source/image_source.ts +49 -35
- package/src/source/load_tilejson.ts +2 -2
- package/src/source/pixels_to_tile_units.ts +2 -3
- package/src/source/query_features.test.ts +3 -3
- package/src/source/query_features.ts +50 -19
- package/src/source/raster_dem_tile_source.test.ts +3 -3
- package/src/source/raster_dem_tile_source.ts +23 -10
- package/src/source/raster_dem_tile_worker_source.test.ts +2 -2
- package/src/source/raster_dem_tile_worker_source.ts +3 -5
- package/src/source/raster_tile_source.test.ts +3 -3
- package/src/source/raster_tile_source.ts +38 -11
- package/src/source/rtl_text_plugin.ts +4 -1
- package/src/source/source.ts +67 -59
- package/src/source/source_cache.test.ts +7 -7
- package/src/source/source_cache.ts +17 -38
- package/src/source/source_state.ts +2 -5
- package/src/source/terrain_source_cache.test.ts +8 -8
- package/src/source/terrain_source_cache.ts +42 -27
- package/src/source/tile.test.ts +3 -3
- package/src/source/tile.ts +32 -38
- package/src/source/tile_bounds.ts +2 -4
- package/src/source/tile_cache.test.ts +2 -2
- package/src/source/tile_cache.ts +20 -30
- package/src/source/tile_id.ts +11 -2
- package/src/source/vector_tile_source.test.ts +3 -3
- package/src/source/vector_tile_source.ts +34 -24
- package/src/source/vector_tile_worker_source.test.ts +4 -4
- package/src/source/vector_tile_worker_source.ts +11 -23
- package/src/source/video_source.test.ts +5 -5
- package/src/source/video_source.ts +21 -28
- package/src/source/worker.ts +6 -8
- package/src/source/worker_source.ts +6 -8
- package/src/source/worker_tile.test.ts +5 -5
- package/src/source/worker_tile.ts +13 -16
- package/src/style/create_style_layer.ts +31 -26
- package/src/style/evaluation_parameters.ts +5 -4
- package/src/style/format_section_override.test.ts +2 -2
- package/src/style/format_section_override.ts +1 -1
- package/src/style/light.test.ts +2 -2
- package/src/style/light.ts +3 -5
- package/src/style/load_glyph_range.test.ts +1 -1
- package/src/style/load_glyph_range.ts +3 -3
- package/src/style/load_sprite.test.ts +1 -1
- package/src/style/load_sprite.ts +3 -3
- package/src/style/parse_glyph_pbf.ts +1 -1
- package/src/style/pauseable_placement.ts +7 -9
- package/src/style/properties.ts +4 -53
- package/src/style/query_utils.ts +3 -3
- package/src/style/style.test.ts +22 -19
- package/src/style/style.ts +118 -84
- package/src/style/style_glyph.ts +6 -0
- package/src/style/style_image.ts +39 -33
- package/src/style/style_layer/background_style_layer.ts +2 -4
- package/src/style/style_layer/circle_style_layer.ts +7 -6
- package/src/style/style_layer/custom_style_layer.ts +23 -48
- package/src/style/style_layer/fill_extrusion_style_layer.ts +4 -6
- package/src/style/style_layer/fill_style_layer.ts +5 -7
- package/src/style/style_layer/heatmap_style_layer.ts +8 -7
- package/src/style/style_layer/hillshade_style_layer.ts +2 -4
- package/src/style/style_layer/line_style_layer.ts +6 -8
- package/src/style/style_layer/overlap_mode.test.ts +3 -3
- package/src/style/style_layer/overlap_mode.ts +3 -0
- package/src/style/style_layer/raster_style_layer.ts +2 -4
- package/src/style/style_layer/symbol_style_layer.ts +6 -8
- package/src/style/style_layer/typed_style_layer.ts +7 -7
- package/src/style/style_layer.test.ts +5 -5
- package/src/style/style_layer.ts +7 -6
- package/src/style/style_layer_index.test.ts +1 -1
- package/src/style/style_layer_index.ts +3 -5
- package/src/style/zoom_history.ts +1 -3
- package/src/symbol/anchor.test.ts +1 -1
- package/src/symbol/anchor.ts +1 -3
- package/src/symbol/check_max_angle.test.ts +8 -2
- package/src/symbol/check_max_angle.ts +10 -13
- package/src/symbol/clip_line.test.ts +1 -1
- package/src/symbol/clip_line.ts +6 -9
- package/src/symbol/collision_feature.test.ts +2 -2
- package/src/symbol/collision_feature.ts +7 -12
- package/src/symbol/collision_index.test.ts +2 -2
- package/src/symbol/collision_index.ts +5 -11
- package/src/symbol/cross_tile_symbol_index.test.ts +2 -2
- package/src/symbol/cross_tile_symbol_index.ts +5 -7
- package/src/symbol/get_anchors.ts +2 -2
- package/src/symbol/grid_index.test.ts +1 -1
- package/src/symbol/grid_index.ts +4 -5
- package/src/symbol/merge_lines.test.ts +1 -1
- package/src/symbol/merge_lines.ts +1 -1
- package/src/symbol/opacity_state.ts +1 -3
- package/src/symbol/path_interpolator.test.ts +1 -1
- package/src/symbol/path_interpolator.ts +1 -3
- package/src/symbol/placement.ts +9 -9
- package/src/symbol/projection.ts +61 -34
- package/src/symbol/quads.ts +7 -11
- package/src/symbol/shaping.ts +1 -1
- package/src/symbol/symbol_layout.ts +9 -12
- package/src/symbol/symbol_size.ts +1 -1
- package/src/symbol/symbol_style_layer.test.ts +4 -4
- package/src/symbol/transform_text.ts +2 -2
- package/src/types/callback.ts +14 -14
- package/src/types/cancelable.ts +3 -0
- package/src/types/transferable.ts +3 -0
- package/src/ui/anchor.ts +4 -0
- package/src/ui/camera.test.ts +6 -6
- package/src/ui/camera.ts +392 -361
- package/src/ui/control/attribution_control.test.ts +1 -1
- package/src/ui/control/attribution_control.ts +34 -30
- package/src/ui/control/control.ts +14 -20
- package/src/ui/control/fullscreen_control.test.ts +1 -1
- package/src/ui/control/fullscreen_control.ts +21 -26
- package/src/ui/control/geolocate_control.test.ts +5 -5
- package/src/ui/control/geolocate_control.ts +181 -194
- package/src/ui/control/logo_control.ts +20 -16
- package/src/ui/control/navigation_control.test.ts +1 -1
- package/src/ui/control/navigation_control.ts +46 -42
- package/src/ui/control/scale_control.test.ts +1 -1
- package/src/ui/control/scale_control.ts +30 -21
- package/src/ui/control/terrain_control.test.ts +1 -1
- package/src/ui/control/terrain_control.ts +14 -18
- package/src/ui/default_locale.ts +1 -3
- package/src/ui/events.ts +570 -1281
- package/src/ui/handler/box_zoom.test.ts +2 -2
- package/src/ui/handler/box_zoom.ts +16 -11
- package/src/ui/handler/click_zoom.ts +11 -3
- package/src/ui/handler/cooperative_gestures.test.ts +3 -3
- package/src/ui/handler/dblclick_zoom.test.ts +1 -1
- package/src/ui/handler/drag_handler.ts +30 -22
- package/src/ui/handler/drag_move_state_manager.ts +1 -1
- package/src/ui/handler/drag_pan.test.ts +2 -2
- package/src/ui/handler/drag_rotate.test.ts +3 -3
- package/src/ui/handler/keyboard.test.ts +2 -2
- package/src/ui/handler/keyboard.ts +22 -13
- package/src/ui/handler/map_event.test.ts +2 -2
- package/src/ui/handler/map_event.ts +1 -1
- package/src/ui/handler/mouse.ts +1 -1
- package/src/ui/handler/mouse_rotate.test.ts +3 -3
- package/src/ui/handler/scroll_zoom.test.ts +3 -3
- package/src/ui/handler/scroll_zoom.ts +45 -52
- package/src/ui/handler/shim/dblclick_zoom.ts +12 -6
- package/src/ui/handler/shim/drag_pan.ts +34 -14
- package/src/ui/handler/shim/drag_rotate.ts +20 -12
- package/src/ui/handler/shim/two_fingers_touch.ts +24 -18
- package/src/ui/handler/tap_drag_zoom.test.ts +113 -0
- package/src/ui/handler/tap_drag_zoom.ts +18 -10
- package/src/ui/handler/tap_recognizer.ts +1 -1
- package/src/ui/handler/tap_zoom.ts +4 -3
- package/src/ui/handler/touch_pan.ts +3 -2
- package/src/ui/handler/transform-provider.ts +4 -6
- package/src/ui/handler/two_fingers_touch.test.ts +3 -3
- package/src/ui/handler/two_fingers_touch.ts +64 -47
- package/src/ui/handler_inertia.ts +4 -4
- package/src/ui/handler_manager.ts +86 -52
- package/src/ui/hash.test.ts +1 -1
- package/src/ui/hash.ts +21 -28
- package/src/ui/map/isMoving.test.ts +3 -3
- package/src/ui/map/isRotating.test.ts +3 -3
- package/src/ui/map/isZooming.test.ts +3 -3
- package/src/ui/map.test.ts +97 -8
- package/src/ui/map.ts +856 -702
- package/src/ui/map_events.test.ts +1 -1
- package/src/ui/marker.test.ts +35 -15
- package/src/ui/marker.ts +220 -141
- package/src/ui/popup.test.ts +2 -2
- package/src/ui/popup.ts +179 -147
- package/src/util/actor.test.ts +7 -7
- package/src/util/actor.ts +25 -22
- package/src/util/ajax.ts +37 -17
- package/src/util/browser.test.ts +1 -1
- package/src/util/browser.ts +2 -6
- package/src/util/classify_rings.test.ts +1 -1
- package/src/util/classify_rings.ts +1 -1
- package/src/util/color_ramp.ts +0 -2
- package/src/util/config.ts +6 -3
- package/src/util/debug.ts +0 -2
- package/src/util/dictionary_coder.ts +1 -4
- package/src/util/dispatcher.test.ts +3 -3
- package/src/util/dispatcher.ts +4 -9
- package/src/util/dom.ts +1 -1
- package/src/util/evented.ts +23 -18
- package/src/util/find_pole_of_inaccessibility.test.ts +1 -1
- package/src/util/find_pole_of_inaccessibility.ts +4 -5
- package/src/util/global_worker_pool.ts +2 -3
- package/src/util/image.ts +10 -4
- package/src/util/image_request.test.ts +3 -3
- package/src/util/image_request.ts +15 -14
- package/src/util/is_char_in_unicode_block.ts +1 -3
- package/src/util/offscreen_canvas_supported.ts +1 -1
- package/src/util/performance.ts +1 -2
- package/src/util/request_manager.ts +4 -0
- package/src/util/resolve_tokens.test.ts +1 -1
- package/src/util/resolve_tokens.ts +3 -6
- package/src/util/script_detection.ts +1 -4
- package/src/util/smart_wrap.ts +3 -5
- package/src/util/struct_array.ts +18 -14
- package/src/util/style.ts +2 -2
- package/src/util/task_queue.test.ts +1 -1
- package/src/util/task_queue.ts +1 -3
- package/src/util/test/mock_webgl.ts +6 -0
- package/src/util/test/util.ts +2 -2
- package/src/util/throttle.test.ts +1 -1
- package/src/util/throttle.ts +1 -2
- package/src/util/throttled_invoker.ts +1 -5
- package/src/util/transferable_grid_index.test.ts +1 -1
- package/src/util/transferable_grid_index.ts +1 -3
- package/src/util/util.test.ts +1 -14
- package/src/util/util.ts +44 -107
- package/src/util/vectortile_to_geojson.ts +13 -3
- package/src/util/verticalize_punctuation.ts +1 -1
- package/src/util/web_worker.ts +2 -2
- package/src/util/web_worker_transfer.ts +11 -8
- package/src/util/webp_supported.ts +2 -4
- package/src/util/worker_pool.test.ts +1 -1
- package/src/util/worker_pool.ts +4 -5
package/src/ui/map.test.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import Map,
|
|
1
|
+
import {Map, MapOptions} from './map';
|
|
2
2
|
import {createMap, setErrorWebGlContext, beforeMapTest} from '../util/test/util';
|
|
3
|
-
import LngLat from '../geo/lng_lat';
|
|
4
|
-
import Tile from '../source/tile';
|
|
3
|
+
import {LngLat} from '../geo/lng_lat';
|
|
4
|
+
import {Tile} from '../source/tile';
|
|
5
5
|
import {OverscaledTileID} from '../source/tile_id';
|
|
6
6
|
import {Event, ErrorEvent} from '../util/evented';
|
|
7
7
|
import simulate from '../../test/unit/lib/simulate_interaction';
|
|
@@ -11,16 +11,16 @@ import {RequestTransformFunction} from '../util/request_manager';
|
|
|
11
11
|
import {extend} from '../util/util';
|
|
12
12
|
import {LngLatBoundsLike} from '../geo/lng_lat_bounds';
|
|
13
13
|
import {IControl} from './control/control';
|
|
14
|
-
import EvaluationParameters from '../style/evaluation_parameters';
|
|
14
|
+
import {EvaluationParameters} from '../style/evaluation_parameters';
|
|
15
15
|
import {fakeServer, FakeServer} from 'nise';
|
|
16
16
|
import {CameraOptions} from './camera';
|
|
17
|
-
import Terrain
|
|
17
|
+
import {Terrain} from '../render/terrain';
|
|
18
18
|
import {mercatorZfromAltitude} from '../geo/mercator_coordinate';
|
|
19
|
-
import Transform from '../geo/transform';
|
|
19
|
+
import {Transform} from '../geo/transform';
|
|
20
20
|
import {StyleImageInterface} from '../style/style_image';
|
|
21
|
-
import Style from '../style/style';
|
|
21
|
+
import {Style} from '../style/style';
|
|
22
22
|
import {MapSourceDataEvent} from './events';
|
|
23
|
-
import config from '../util/config';
|
|
23
|
+
import {config} from '../util/config';
|
|
24
24
|
|
|
25
25
|
function createStyleSource() {
|
|
26
26
|
return {
|
|
@@ -600,6 +600,13 @@ describe('Map', () => {
|
|
|
600
600
|
});
|
|
601
601
|
|
|
602
602
|
describe('#getStyle', () => {
|
|
603
|
+
test('returns undefined if the style has not loaded yet', done => {
|
|
604
|
+
const style = createStyle();
|
|
605
|
+
const map = createMap({style});
|
|
606
|
+
expect(map.getStyle()).toBeUndefined();
|
|
607
|
+
done();
|
|
608
|
+
});
|
|
609
|
+
|
|
603
610
|
test('returns the style', done => {
|
|
604
611
|
const style = createStyle();
|
|
605
612
|
const map = createMap({style});
|
|
@@ -858,6 +865,19 @@ describe('Map', () => {
|
|
|
858
865
|
expect(spyB).toHaveBeenCalled();
|
|
859
866
|
});
|
|
860
867
|
|
|
868
|
+
test('width and height correctly rounded', () => {
|
|
869
|
+
const map = createMap();
|
|
870
|
+
const container = map.getContainer();
|
|
871
|
+
|
|
872
|
+
Object.defineProperty(container, 'clientWidth', {value: 250.6});
|
|
873
|
+
Object.defineProperty(container, 'clientHeight', {value: 250.6});
|
|
874
|
+
map.resize();
|
|
875
|
+
|
|
876
|
+
expect(map.getCanvas().width).toBe(250);
|
|
877
|
+
expect(map.getCanvas().height).toBe(250);
|
|
878
|
+
expect(map.painter.width).toBe(250);
|
|
879
|
+
expect(map.painter.height).toBe(250);
|
|
880
|
+
});
|
|
861
881
|
});
|
|
862
882
|
|
|
863
883
|
describe('#getBounds', () => {
|
|
@@ -2488,6 +2508,14 @@ describe('Map', () => {
|
|
|
2488
2508
|
expect(map.getPixelRatio()).toBe(devicePixelRatio);
|
|
2489
2509
|
});
|
|
2490
2510
|
|
|
2511
|
+
test('pixel ratio by default reflects devicePixelRatio changes', () => {
|
|
2512
|
+
global.devicePixelRatio = 0.25;
|
|
2513
|
+
const map = createMap();
|
|
2514
|
+
expect(map.getPixelRatio()).toBe(0.25);
|
|
2515
|
+
global.devicePixelRatio = 1;
|
|
2516
|
+
expect(map.getPixelRatio()).toBe(1);
|
|
2517
|
+
});
|
|
2518
|
+
|
|
2491
2519
|
test('canvas has the expected size', () => {
|
|
2492
2520
|
const container = window.document.createElement('div');
|
|
2493
2521
|
Object.defineProperty(container, 'clientWidth', {value: 512});
|
|
@@ -2720,7 +2748,9 @@ describe('Map', () => {
|
|
|
2720
2748
|
expect(cameraOptions).toBeDefined();
|
|
2721
2749
|
expect(mockedGetElevation.mock.calls).toHaveLength(0);
|
|
2722
2750
|
});
|
|
2751
|
+
});
|
|
2723
2752
|
|
|
2753
|
+
describe('webgl errors', () => {
|
|
2724
2754
|
test('WebGL error while creating map', () => {
|
|
2725
2755
|
setErrorWebGlContext();
|
|
2726
2756
|
try {
|
|
@@ -2736,6 +2766,65 @@ describe('Map', () => {
|
|
|
2736
2766
|
}
|
|
2737
2767
|
|
|
2738
2768
|
});
|
|
2769
|
+
test('Hit WebGL max drawing buffer limit', () => {
|
|
2770
|
+
// Simulate a device with MAX_TEXTURE_SIZE=16834 and max rendering area of ~32Mpx
|
|
2771
|
+
const container = window.document.createElement('div');
|
|
2772
|
+
Object.defineProperty(container, 'clientWidth', {value: 8000});
|
|
2773
|
+
Object.defineProperty(container, 'clientHeight', {value: 4500});
|
|
2774
|
+
const map = createMap({container, maxCanvasSize: [16834, 16834], pixelRatio: 1});
|
|
2775
|
+
jest.spyOn(map.painter.context.gl, 'drawingBufferWidth', 'get').mockReturnValue(7536);
|
|
2776
|
+
jest.spyOn(map.painter.context.gl, 'drawingBufferHeight', 'get').mockReturnValue(4239);
|
|
2777
|
+
map.resize();
|
|
2778
|
+
expect(map.getCanvas().width).toBe(7536);
|
|
2779
|
+
expect(map.getCanvas().height).toBe(4239);
|
|
2780
|
+
// Check if maxCanvasSize is updated
|
|
2781
|
+
expect(map._maxCanvasSize).toEqual([7536, 4239]);
|
|
2782
|
+
});
|
|
2783
|
+
});
|
|
2784
|
+
|
|
2785
|
+
describe('Max Canvas Size option', () => {
|
|
2786
|
+
test('maxCanvasSize width = height', () => {
|
|
2787
|
+
const container = window.document.createElement('div');
|
|
2788
|
+
Object.defineProperty(container, 'clientWidth', {value: 2048});
|
|
2789
|
+
Object.defineProperty(container, 'clientHeight', {value: 2048});
|
|
2790
|
+
const map = createMap({container, maxCanvasSize: [8192, 8192], pixelRatio: 5});
|
|
2791
|
+
map.resize();
|
|
2792
|
+
expect(map.getCanvas().width).toBe(8192);
|
|
2793
|
+
expect(map.getCanvas().height).toBe(8192);
|
|
2794
|
+
});
|
|
2795
|
+
|
|
2796
|
+
test('maxCanvasSize width != height', () => {
|
|
2797
|
+
const container = window.document.createElement('div');
|
|
2798
|
+
Object.defineProperty(container, 'clientWidth', {value: 1024});
|
|
2799
|
+
Object.defineProperty(container, 'clientHeight', {value: 2048});
|
|
2800
|
+
const map = createMap({container, maxCanvasSize: [8192, 4096], pixelRatio: 3});
|
|
2801
|
+
map.resize();
|
|
2802
|
+
expect(map.getCanvas().width).toBe(2048);
|
|
2803
|
+
expect(map.getCanvas().height).toBe(4096);
|
|
2804
|
+
});
|
|
2805
|
+
|
|
2806
|
+
test('maxCanvasSize below clientWidth and clientHeigth', () => {
|
|
2807
|
+
const container = window.document.createElement('div');
|
|
2808
|
+
Object.defineProperty(container, 'clientWidth', {value: 12834});
|
|
2809
|
+
Object.defineProperty(container, 'clientHeight', {value: 9000});
|
|
2810
|
+
const map = createMap({container, maxCanvasSize: [4096, 8192], pixelRatio: 1});
|
|
2811
|
+
map.resize();
|
|
2812
|
+
expect(map.getCanvas().width).toBe(4096);
|
|
2813
|
+
expect(map.getCanvas().height).toBe(2872);
|
|
2814
|
+
});
|
|
2815
|
+
|
|
2816
|
+
test('maxCanvasSize with setPixelRatio', () => {
|
|
2817
|
+
const container = window.document.createElement('div');
|
|
2818
|
+
Object.defineProperty(container, 'clientWidth', {value: 2048});
|
|
2819
|
+
Object.defineProperty(container, 'clientHeight', {value: 2048});
|
|
2820
|
+
const map = createMap({container, maxCanvasSize: [3072, 3072], pixelRatio: 1.25});
|
|
2821
|
+
map.resize();
|
|
2822
|
+
expect(map.getCanvas().width).toBe(2560);
|
|
2823
|
+
expect(map.getCanvas().height).toBe(2560);
|
|
2824
|
+
map.setPixelRatio(2);
|
|
2825
|
+
expect(map.getCanvas().width).toBe(3072);
|
|
2826
|
+
expect(map.getCanvas().height).toBe(3072);
|
|
2827
|
+
});
|
|
2739
2828
|
});
|
|
2740
2829
|
|
|
2741
2830
|
});
|