@mapwhit/tilerenderer 0.52.1 → 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.
- package/README.md +7 -0
- package/build/min/package.json +2 -1
- package/build/min/src/shaders/_prelude.fragment.glsl.js +2 -2
- package/build/min/src/shaders/_prelude.vertex.glsl.js +2 -2
- package/build/min/src/shaders/background.fragment.glsl.js +2 -2
- package/build/min/src/shaders/background.vertex.glsl.js +1 -1
- package/build/min/src/shaders/background_pattern.fragment.glsl.js +2 -2
- package/build/min/src/shaders/background_pattern.vertex.glsl.js +1 -1
- package/build/min/src/shaders/circle.fragment.glsl.js +2 -2
- package/build/min/src/shaders/circle.vertex.glsl.js +2 -2
- package/build/min/src/shaders/clipping_mask.fragment.glsl.js +1 -1
- package/build/min/src/shaders/clipping_mask.vertex.glsl.js +1 -1
- package/build/min/src/shaders/collision_box.fragment.glsl.js +1 -1
- package/build/min/src/shaders/collision_box.vertex.glsl.js +1 -1
- package/build/min/src/shaders/collision_circle.fragment.glsl.js +1 -1
- package/build/min/src/shaders/collision_circle.vertex.glsl.js +1 -1
- package/build/min/src/shaders/debug.fragment.glsl.js +1 -1
- package/build/min/src/shaders/debug.vertex.glsl.js +1 -1
- package/build/min/src/shaders/fill.fragment.glsl.js +2 -2
- package/build/min/src/shaders/fill.vertex.glsl.js +2 -2
- package/build/min/src/shaders/fill_extrusion.fragment.glsl.js +2 -2
- package/build/min/src/shaders/fill_extrusion.vertex.glsl.js +2 -2
- package/build/min/src/shaders/fill_extrusion_pattern.fragment.glsl.js +2 -2
- package/build/min/src/shaders/fill_extrusion_pattern.vertex.glsl.js +2 -2
- package/build/min/src/shaders/fill_outline.fragment.glsl.js +2 -2
- package/build/min/src/shaders/fill_outline.vertex.glsl.js +2 -2
- package/build/min/src/shaders/fill_outline_pattern.fragment.glsl.js +2 -2
- package/build/min/src/shaders/fill_outline_pattern.vertex.glsl.js +2 -2
- package/build/min/src/shaders/fill_pattern.fragment.glsl.js +2 -2
- package/build/min/src/shaders/fill_pattern.vertex.glsl.js +2 -2
- package/build/min/src/shaders/heatmap.fragment.glsl.js +2 -2
- package/build/min/src/shaders/heatmap.vertex.glsl.js +2 -2
- package/build/min/src/shaders/heatmap_texture.fragment.glsl.js +2 -2
- package/build/min/src/shaders/heatmap_texture.vertex.glsl.js +1 -1
- package/build/min/src/shaders/hillshade.fragment.glsl.js +2 -2
- package/build/min/src/shaders/hillshade.vertex.glsl.js +1 -1
- package/build/min/src/shaders/hillshade_prepare.fragment.glsl.js +2 -2
- package/build/min/src/shaders/hillshade_prepare.vertex.glsl.js +1 -1
- package/build/min/src/shaders/line.fragment.glsl.js +2 -2
- package/build/min/src/shaders/line.vertex.glsl.js +2 -2
- package/build/min/src/shaders/line_gradient.fragment.glsl.js +2 -2
- package/build/min/src/shaders/line_gradient.vertex.glsl.js +2 -2
- package/build/min/src/shaders/line_pattern.fragment.glsl.js +2 -2
- package/build/min/src/shaders/line_pattern.vertex.glsl.js +2 -2
- package/build/min/src/shaders/line_sdf.fragment.glsl.js +2 -2
- package/build/min/src/shaders/line_sdf.vertex.glsl.js +2 -2
- package/build/min/src/shaders/raster.fragment.glsl.js +2 -2
- package/build/min/src/shaders/raster.vertex.glsl.js +1 -1
- package/build/min/src/shaders/symbol_icon.fragment.glsl.js +2 -2
- package/build/min/src/shaders/symbol_icon.vertex.glsl.js +2 -2
- package/build/min/src/shaders/symbol_sdf.fragment.glsl.js +2 -2
- package/build/min/src/shaders/symbol_sdf.vertex.glsl.js +2 -2
- package/package.json +5 -4
- package/src/data/array_types.js +55 -117
- package/src/data/bucket/circle_attributes.js +2 -4
- package/src/data/bucket/circle_bucket.js +19 -16
- package/src/data/bucket/fill_attributes.js +2 -4
- package/src/data/bucket/fill_bucket.js +38 -27
- package/src/data/bucket/fill_extrusion_attributes.js +2 -4
- package/src/data/bucket/fill_extrusion_bucket.js +56 -37
- package/src/data/bucket/heatmap_bucket.js +2 -11
- package/src/data/bucket/line_attributes.js +2 -4
- package/src/data/bucket/line_bucket.js +208 -163
- package/src/data/bucket/pattern_attributes.js +2 -4
- package/src/data/bucket/pattern_bucket_features.js +7 -9
- package/src/data/bucket/symbol_attributes.js +12 -26
- package/src/data/bucket/symbol_bucket.js +174 -323
- package/src/data/bucket/symbol_buffers.js +62 -0
- package/src/data/bucket/symbol_collision_buffers.js +33 -0
- package/src/data/bucket.js +26 -25
- package/src/data/dem_data.js +11 -10
- package/src/data/extent.js +1 -1
- package/src/data/feature_index.js +38 -28
- package/src/data/index_array_type.js +1 -6
- package/src/data/load_geometry.js +6 -9
- package/src/data/pos_attributes.js +2 -3
- package/src/data/program_configuration.js +47 -38
- package/src/data/raster_bounds_attributes.js +2 -2
- package/src/data/segment.js +4 -7
- package/src/geo/coordinate.js +1 -1
- package/src/geo/lng_lat.js +3 -3
- package/src/geo/lng_lat_bounds.js +8 -4
- package/src/geo/transform.js +69 -30
- package/src/gl/color_mode.js +2 -2
- package/src/gl/context.js +28 -29
- package/src/gl/cull_face_mode.js +1 -1
- package/src/gl/depth_mode.js +1 -1
- package/src/gl/framebuffer.js +8 -4
- package/src/gl/index_buffer.js +2 -2
- package/src/gl/stencil_mode.js +1 -1
- package/src/gl/value.js +33 -68
- package/src/gl/vertex_buffer.js +2 -2
- package/src/index.js +49 -25
- package/src/render/draw_background.js +17 -12
- package/src/render/draw_circle.js +15 -12
- package/src/render/draw_collision_debug.js +11 -8
- package/src/render/draw_debug.js +16 -14
- package/src/render/draw_fill.js +27 -20
- package/src/render/draw_fill_extrusion.js +20 -17
- package/src/render/draw_heatmap.js +21 -16
- package/src/render/draw_hillshade.js +12 -9
- package/src/render/draw_line.js +36 -22
- package/src/render/draw_raster.js +22 -18
- package/src/render/draw_symbol.js +38 -33
- package/src/render/glyph_atlas.js +9 -8
- package/src/render/glyph_manager.js +2 -3
- package/src/render/image_atlas.js +4 -11
- package/src/render/image_manager.js +39 -28
- package/src/render/line_atlas.js +2 -2
- package/src/render/painter.js +78 -61
- package/src/render/program/background_program.js +6 -13
- package/src/render/program/circle_program.js +8 -10
- package/src/render/program/clipping_mask_program.js +3 -5
- package/src/render/program/collision_program.js +4 -6
- package/src/render/program/debug_program.js +3 -5
- package/src/render/program/fill_extrusion_program.js +9 -15
- package/src/render/program/fill_program.js +10 -21
- package/src/render/program/heatmap_program.js +9 -15
- package/src/render/program/hillshade_program.js +16 -22
- package/src/render/program/line_program.js +14 -25
- package/src/render/program/pattern.js +5 -7
- package/src/render/program/program_uniforms.js +13 -20
- package/src/render/program/raster_program.js +9 -11
- package/src/render/program/symbol_program.js +5 -7
- package/src/render/program.js +5 -6
- package/src/render/texture.js +1 -1
- package/src/render/tile_mask.js +6 -4
- package/src/render/uniform_binding.js +9 -20
- package/src/render/vertex_array_object.js +5 -3
- package/src/shaders/encode_attribute.js +2 -6
- package/src/shaders/index.js +103 -51
- package/src/source/geojson_source.js +25 -30
- package/src/source/geojson_worker_source.js +46 -74
- package/src/source/geojson_wrapper.js +13 -5
- package/src/source/image_source.js +17 -28
- package/src/source/load_tilejson.js +3 -3
- package/src/source/pixels_to_tile_units.js +3 -3
- package/src/source/query_features.js +17 -15
- package/src/source/raster_dem_tile_source.js +54 -71
- package/src/source/raster_tile_source.js +14 -15
- package/src/source/resources/glyphs.js +4 -5
- package/src/source/resources/index.js +4 -12
- package/src/source/rtl_text_plugin.js +62 -35
- package/src/source/source.js +14 -22
- package/src/source/source_cache.js +221 -179
- package/src/source/source_state.js +125 -13
- package/src/source/tile.js +67 -66
- package/src/source/tile_bounds.js +36 -29
- package/src/source/tile_cache.js +2 -2
- package/src/source/tile_id.js +30 -26
- package/src/source/vector_tile_source.js +23 -21
- package/src/source/vector_tile_worker_source.js +22 -26
- package/src/source/worker_tile.js +139 -134
- package/src/style/create_style_layer.js +11 -11
- package/src/style/evaluation_parameters.js +4 -6
- package/src/style/light.js +5 -5
- package/src/style/load_sprite.js +6 -6
- package/src/style/parse_glyph_pbf.js +21 -17
- package/src/style/pauseable_placement.js +7 -9
- package/src/style/properties.js +21 -51
- package/src/style/query_utils.js +7 -13
- package/src/style/style.js +314 -221
- package/src/style/style_layer/background_style_layer.js +3 -4
- package/src/style/style_layer/background_style_layer_properties.js +2 -2
- package/src/style/style_layer/circle_style_layer.js +25 -20
- package/src/style/style_layer/circle_style_layer_properties.js +2 -2
- package/src/style/style_layer/fill_extrusion_style_layer.js +55 -37
- package/src/style/style_layer/fill_extrusion_style_layer_properties.js +2 -2
- package/src/style/style_layer/fill_style_layer.js +11 -12
- package/src/style/style_layer/fill_style_layer_properties.js +2 -2
- package/src/style/style_layer/heatmap_style_layer.js +6 -7
- package/src/style/style_layer/heatmap_style_layer_properties.js +2 -2
- package/src/style/style_layer/hillshade_style_layer.js +4 -5
- package/src/style/style_layer/hillshade_style_layer_properties.js +2 -2
- package/src/style/style_layer/line_style_layer.js +33 -30
- package/src/style/style_layer/line_style_layer_properties.js +5 -5
- package/src/style/style_layer/raster_style_layer.js +3 -4
- package/src/style/style_layer/raster_style_layer_properties.js +2 -2
- package/src/style/style_layer/symbol_style_layer.js +20 -21
- package/src/style/style_layer/symbol_style_layer_properties.js +2 -2
- package/src/style/style_layer.js +66 -47
- package/src/style/style_layer_index.js +17 -42
- package/src/style/zoom_history.js +1 -1
- package/src/style-spec/error/parsing_error.js +1 -1
- package/src/style-spec/error/validation_error.js +5 -3
- package/src/style-spec/feature_filter/convert.js +17 -9
- package/src/style-spec/feature_filter/index.js +13 -9
- package/src/style-spec/util/eval_support.js +2 -2
- package/src/style-spec/util/ref_properties.js +1 -1
- package/src/symbol/anchor.js +2 -6
- package/src/symbol/check_max_angle.js +13 -5
- package/src/symbol/clip_line.js +2 -3
- package/src/symbol/collision_feature.js +8 -4
- package/src/symbol/collision_index.js +5 -7
- package/src/symbol/cross_tile_symbol_index.js +7 -10
- package/src/symbol/get_anchors.js +15 -8
- package/src/symbol/grid_index.js +5 -3
- package/src/symbol/mergelines.js +2 -2
- package/src/symbol/opacity_state.js +1 -5
- package/src/symbol/placement.js +28 -23
- package/src/symbol/projection.js +29 -28
- package/src/symbol/quads.js +14 -16
- package/src/symbol/shaping.js +27 -19
- package/src/symbol/symbol_layout.js +24 -28
- package/src/symbol/symbol_size.js +13 -12
- package/src/symbol/transform_text.js +4 -4
- package/src/ui/camera.js +34 -18
- package/src/ui/map.js +102 -44
- package/src/util/async.js +11 -5
- package/src/util/browser.js +1 -1
- package/src/util/callback.js +3 -9
- package/src/util/classify_rings.js +13 -8
- package/src/util/color_ramp.js +3 -3
- package/src/util/config.js +4 -4
- package/src/util/dictionary_coder.js +2 -3
- package/src/util/dom.js +7 -3
- package/src/util/find_pole_of_inaccessibility.js +29 -14
- package/src/util/group_layers.js +41 -0
- package/src/util/image.js +3 -13
- package/src/util/interpolate.js +1 -1
- package/src/util/intersection_tests.js +80 -42
- package/src/util/is_char_in_unicode_block.js +1 -1
- package/src/util/key.js +25 -0
- package/src/util/loader/image.js +1 -1
- package/src/util/object.js +33 -76
- package/src/util/script_detection.js +212 -91
- package/src/util/struct_array.js +8 -40
- package/src/util/task_queue.js +11 -7
- package/src/util/throttle.js +2 -2
- package/src/util/tile_cover.js +8 -5
- package/src/util/token.js +1 -1
- package/src/util/unique_id.js +2 -2
- package/src/util/util.js +21 -29
- package/src/util/vectortile_to_geojson.js +4 -2
- package/src/util/verticalize_punctuation.js +3 -7
- package/src/util/warn.js +4 -4
- package/src/util/web_worker.js +3 -3
- package/src/worker.js +1 -4
- package/src/source/resources/images.js +0 -68
- package/src/source/worker.js +0 -110
- package/src/source/worker_source.js +0 -14
- package/src/style-spec/deref.js +0 -51
- package/src/style-spec/group_by_layout.js +0 -46
- package/src/util/actor.js +0 -108
- package/src/util/dispatcher.js +0 -65
- package/src/util/global_worker_pool.js +0 -15
- package/src/util/transfer_registry.js +0 -168
- package/src/util/web_worker_transfer.js +0 -43
- package/src/util/worker_pool.js +0 -41
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import LngLat from './lng_lat.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* A `LngLatBounds` object represents a geographical bounding box,
|
|
@@ -73,7 +73,9 @@ class LngLatBounds {
|
|
|
73
73
|
sw2 = obj._sw;
|
|
74
74
|
ne2 = obj._ne;
|
|
75
75
|
|
|
76
|
-
if (!sw2 || !ne2)
|
|
76
|
+
if (!sw2 || !ne2) {
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
77
79
|
} else {
|
|
78
80
|
if (Array.isArray(obj)) {
|
|
79
81
|
if (obj.every(Array.isArray)) {
|
|
@@ -231,7 +233,9 @@ class LngLatBounds {
|
|
|
231
233
|
* llb; // = LngLatBounds {_sw: LngLat {lng: -73.9876, lat: 40.7661}, _ne: LngLat {lng: -73.9397, lat: 40.8002}}
|
|
232
234
|
*/
|
|
233
235
|
static convert(input) {
|
|
234
|
-
if (!input || input instanceof LngLatBounds)
|
|
236
|
+
if (!input || input instanceof LngLatBounds) {
|
|
237
|
+
return input;
|
|
238
|
+
}
|
|
235
239
|
return new LngLatBounds(input);
|
|
236
240
|
}
|
|
237
241
|
}
|
|
@@ -250,4 +254,4 @@ class LngLatBounds {
|
|
|
250
254
|
* var v3 = [[-73.9876, 40.7661], [-73.9397, 40.8002]];
|
|
251
255
|
*/
|
|
252
256
|
|
|
253
|
-
|
|
257
|
+
export default LngLatBounds;
|
package/src/geo/transform.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import glMatrix from '@mapbox/gl-matrix';
|
|
2
|
+
import Point from '@mapbox/point-geometry';
|
|
3
|
+
import EXTENT from '../data/extent.js';
|
|
4
|
+
import { UnwrappedTileID } from '../source/tile_id.js';
|
|
5
|
+
import interpolate from '../util/interpolate.js';
|
|
6
|
+
import tileCover from '../util/tile_cover.js';
|
|
7
|
+
import { clamp, wrap } from '../util/util.js';
|
|
8
|
+
import Coordinate from './coordinate.js';
|
|
9
|
+
import LngLat from './lng_lat.js';
|
|
10
|
+
|
|
11
|
+
const { mat2, mat4, vec4 } = glMatrix;
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* A single transform, generally used for a single tile to be
|
|
@@ -57,7 +58,9 @@ class Transform {
|
|
|
57
58
|
return this._minZoom;
|
|
58
59
|
}
|
|
59
60
|
set minZoom(zoom) {
|
|
60
|
-
if (this._minZoom === zoom)
|
|
61
|
+
if (this._minZoom === zoom) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
61
64
|
this._minZoom = zoom;
|
|
62
65
|
this.zoom = Math.max(this.zoom, zoom);
|
|
63
66
|
}
|
|
@@ -66,7 +69,9 @@ class Transform {
|
|
|
66
69
|
return this._maxZoom;
|
|
67
70
|
}
|
|
68
71
|
set maxZoom(zoom) {
|
|
69
|
-
if (this._maxZoom === zoom)
|
|
72
|
+
if (this._maxZoom === zoom) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
70
75
|
this._maxZoom = zoom;
|
|
71
76
|
this.zoom = Math.min(this.zoom, zoom);
|
|
72
77
|
}
|
|
@@ -101,7 +106,9 @@ class Transform {
|
|
|
101
106
|
}
|
|
102
107
|
set bearing(bearing) {
|
|
103
108
|
const b = (-wrap(bearing, -180, 180) * Math.PI) / 180;
|
|
104
|
-
if (this.angle === b)
|
|
109
|
+
if (this.angle === b) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
105
112
|
this._unmodified = false;
|
|
106
113
|
this.angle = b;
|
|
107
114
|
this._calcMatrices();
|
|
@@ -116,7 +123,9 @@ class Transform {
|
|
|
116
123
|
}
|
|
117
124
|
set pitch(pitch) {
|
|
118
125
|
const p = (clamp(pitch, 0, 60) / 180) * Math.PI;
|
|
119
|
-
if (this._pitch === p)
|
|
126
|
+
if (this._pitch === p) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
120
129
|
this._unmodified = false;
|
|
121
130
|
this._pitch = p;
|
|
122
131
|
this._calcMatrices();
|
|
@@ -127,7 +136,9 @@ class Transform {
|
|
|
127
136
|
}
|
|
128
137
|
set fov(fov) {
|
|
129
138
|
fov = Math.max(0.01, Math.min(60, fov));
|
|
130
|
-
if (this._fov === fov)
|
|
139
|
+
if (this._fov === fov) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
131
142
|
this._unmodified = false;
|
|
132
143
|
this._fov = (fov / 180) * Math.PI;
|
|
133
144
|
this._calcMatrices();
|
|
@@ -138,7 +149,9 @@ class Transform {
|
|
|
138
149
|
}
|
|
139
150
|
set zoom(zoom) {
|
|
140
151
|
const z = Math.min(Math.max(zoom, this.minZoom), this.maxZoom);
|
|
141
|
-
if (this._zoom === z)
|
|
152
|
+
if (this._zoom === z) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
142
155
|
this._unmodified = false;
|
|
143
156
|
this._zoom = z;
|
|
144
157
|
this.scale = this.zoomScale(z);
|
|
@@ -152,7 +165,9 @@ class Transform {
|
|
|
152
165
|
return this._center;
|
|
153
166
|
}
|
|
154
167
|
set center(center) {
|
|
155
|
-
if (center.lat === this._center.lat && center.lng === this._center.lng)
|
|
168
|
+
if (center.lat === this._center.lat && center.lng === this._center.lng) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
156
171
|
this._unmodified = false;
|
|
157
172
|
this._center = center;
|
|
158
173
|
this._constrain();
|
|
@@ -192,7 +207,9 @@ class Transform {
|
|
|
192
207
|
const extraWorldCopy = 1;
|
|
193
208
|
|
|
194
209
|
for (let w = w0 - extraWorldCopy; w <= w1 + extraWorldCopy; w++) {
|
|
195
|
-
if (w === 0)
|
|
210
|
+
if (w === 0) {
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
196
213
|
result.push(new UnwrappedTileID(w, tileID));
|
|
197
214
|
}
|
|
198
215
|
}
|
|
@@ -215,8 +232,12 @@ class Transform {
|
|
|
215
232
|
let z = this.coveringZoomLevel(options);
|
|
216
233
|
const actualZ = z;
|
|
217
234
|
|
|
218
|
-
if (options.minzoom !== undefined && z < options.minzoom)
|
|
219
|
-
|
|
235
|
+
if (options.minzoom !== undefined && z < options.minzoom) {
|
|
236
|
+
return [];
|
|
237
|
+
}
|
|
238
|
+
if (options.maxzoom !== undefined && z > options.maxzoom) {
|
|
239
|
+
z = options.maxzoom;
|
|
240
|
+
}
|
|
220
241
|
|
|
221
242
|
const centerCoord = this.pointCoordinate(this.centerPoint, z);
|
|
222
243
|
const centerPoint = new Point(centerCoord.column - 0.5, centerCoord.row - 0.5);
|
|
@@ -346,7 +367,9 @@ class Transform {
|
|
|
346
367
|
}
|
|
347
368
|
|
|
348
369
|
pointCoordinate(p, zoom) {
|
|
349
|
-
if (zoom === undefined)
|
|
370
|
+
if (zoom === undefined) {
|
|
371
|
+
zoom = this.tileZoom;
|
|
372
|
+
}
|
|
350
373
|
|
|
351
374
|
const targetZ = 0;
|
|
352
375
|
// since we don't know the correct projected z value for the point,
|
|
@@ -414,7 +437,9 @@ class Transform {
|
|
|
414
437
|
}
|
|
415
438
|
|
|
416
439
|
_constrain() {
|
|
417
|
-
if (!this.center || !this.width || !this.height || this._constraining)
|
|
440
|
+
if (!this.center || !this.width || !this.height || this._constraining) {
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
418
443
|
|
|
419
444
|
this._constraining = true;
|
|
420
445
|
|
|
@@ -458,16 +483,24 @@ class Transform {
|
|
|
458
483
|
const y = this.y;
|
|
459
484
|
const h2 = size.y / 2;
|
|
460
485
|
|
|
461
|
-
if (y - h2 < minY)
|
|
462
|
-
|
|
486
|
+
if (y - h2 < minY) {
|
|
487
|
+
y2 = minY + h2;
|
|
488
|
+
}
|
|
489
|
+
if (y + h2 > maxY) {
|
|
490
|
+
y2 = maxY - h2;
|
|
491
|
+
}
|
|
463
492
|
}
|
|
464
493
|
|
|
465
494
|
if (this.lngRange) {
|
|
466
495
|
const x = this.x;
|
|
467
496
|
const w2 = size.x / 2;
|
|
468
497
|
|
|
469
|
-
if (x - w2 < minX)
|
|
470
|
-
|
|
498
|
+
if (x - w2 < minX) {
|
|
499
|
+
x2 = minX + w2;
|
|
500
|
+
}
|
|
501
|
+
if (x + w2 > maxX) {
|
|
502
|
+
x2 = maxX - w2;
|
|
503
|
+
}
|
|
471
504
|
}
|
|
472
505
|
|
|
473
506
|
// pan the map if the screen goes off the range
|
|
@@ -480,7 +513,9 @@ class Transform {
|
|
|
480
513
|
}
|
|
481
514
|
|
|
482
515
|
_calcMatrices() {
|
|
483
|
-
if (!this.height)
|
|
516
|
+
if (!this.height) {
|
|
517
|
+
return;
|
|
518
|
+
}
|
|
484
519
|
|
|
485
520
|
this.cameraToCenterDistance = (0.5 / Math.tan(this._fov / 2)) * this.height;
|
|
486
521
|
|
|
@@ -542,7 +577,9 @@ class Transform {
|
|
|
542
577
|
|
|
543
578
|
// inverse matrix for conversion from screen coordinaes to location
|
|
544
579
|
m = mat4.invert(new Float64Array(16), this.pixelMatrix);
|
|
545
|
-
if (!m)
|
|
580
|
+
if (!m) {
|
|
581
|
+
throw new Error('failed to invert matrix');
|
|
582
|
+
}
|
|
546
583
|
this.pixelMatrixInverse = m;
|
|
547
584
|
|
|
548
585
|
this._posMatrixCache = {};
|
|
@@ -551,7 +588,9 @@ class Transform {
|
|
|
551
588
|
|
|
552
589
|
maxPitchScaleFactor() {
|
|
553
590
|
// calcMatrices hasn't run yet
|
|
554
|
-
if (!this.pixelMatrixInverse)
|
|
591
|
+
if (!this.pixelMatrixInverse) {
|
|
592
|
+
return 1;
|
|
593
|
+
}
|
|
555
594
|
|
|
556
595
|
const coord = this.pointCoordinate(new Point(0, 0)).zoomTo(this.zoom);
|
|
557
596
|
const p = [coord.column * this.tileSize, coord.row * this.tileSize, 0, 1];
|
|
@@ -612,4 +651,4 @@ class Transform {
|
|
|
612
651
|
}
|
|
613
652
|
}
|
|
614
653
|
|
|
615
|
-
|
|
654
|
+
export default Transform;
|
package/src/gl/color_mode.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { Color } from '@mapwhit/style-expressions';
|
|
2
2
|
|
|
3
3
|
const ZERO = 0x0000;
|
|
4
4
|
const ONE = 0x0001;
|
|
@@ -18,4 +18,4 @@ class ColorMode {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
export default ColorMode;
|
package/src/gl/context.js
CHANGED
|
@@ -1,40 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { deepEqual } from '../util/object.js';
|
|
2
|
+
import ColorMode from './color_mode.js';
|
|
3
|
+
import Framebuffer from './framebuffer.js';
|
|
4
|
+
import IndexBuffer from './index_buffer.js';
|
|
5
|
+
import {
|
|
6
|
+
ActiveTextureUnit,
|
|
7
|
+
BindElementBuffer,
|
|
8
|
+
BindFramebuffer,
|
|
9
|
+
BindRenderbuffer,
|
|
10
|
+
BindTexture,
|
|
11
|
+
BindVertexArrayOES,
|
|
12
|
+
BindVertexBuffer,
|
|
13
|
+
Blend,
|
|
14
|
+
BlendColor,
|
|
15
|
+
BlendFunc,
|
|
8
16
|
ClearColor,
|
|
9
17
|
ClearDepth,
|
|
10
18
|
ClearStencil,
|
|
11
19
|
ColorMask,
|
|
20
|
+
CullFace,
|
|
21
|
+
CullFaceSide,
|
|
22
|
+
DepthFunc,
|
|
12
23
|
DepthMask,
|
|
13
|
-
StencilMask,
|
|
14
|
-
StencilFunc,
|
|
15
|
-
StencilOp,
|
|
16
|
-
StencilTest,
|
|
17
24
|
DepthRange,
|
|
18
25
|
DepthTest,
|
|
19
|
-
DepthFunc,
|
|
20
|
-
Blend,
|
|
21
|
-
BlendFunc,
|
|
22
|
-
BlendColor,
|
|
23
|
-
CullFace,
|
|
24
|
-
CullFaceSide,
|
|
25
26
|
FrontFace,
|
|
26
|
-
Program,
|
|
27
|
-
ActiveTextureUnit,
|
|
28
|
-
Viewport,
|
|
29
|
-
BindFramebuffer,
|
|
30
|
-
BindRenderbuffer,
|
|
31
|
-
BindTexture,
|
|
32
|
-
BindVertexBuffer,
|
|
33
|
-
BindElementBuffer,
|
|
34
|
-
BindVertexArrayOES,
|
|
35
27
|
PixelStoreUnpack,
|
|
36
|
-
PixelStoreUnpackPremultiplyAlpha
|
|
37
|
-
|
|
28
|
+
PixelStoreUnpackPremultiplyAlpha,
|
|
29
|
+
Program,
|
|
30
|
+
StencilFunc,
|
|
31
|
+
StencilMask,
|
|
32
|
+
StencilOp,
|
|
33
|
+
StencilTest,
|
|
34
|
+
Viewport
|
|
35
|
+
} from './value.js';
|
|
36
|
+
import VertexBuffer from './vertex_buffer.js';
|
|
38
37
|
|
|
39
38
|
class Context {
|
|
40
39
|
constructor(gl) {
|
|
@@ -190,4 +189,4 @@ class Context {
|
|
|
190
189
|
}
|
|
191
190
|
}
|
|
192
191
|
|
|
193
|
-
|
|
192
|
+
export default Context;
|
package/src/gl/cull_face_mode.js
CHANGED
package/src/gl/depth_mode.js
CHANGED
package/src/gl/framebuffer.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { ColorAttachment, DepthAttachment } from './value.js';
|
|
2
2
|
|
|
3
3
|
class Framebuffer {
|
|
4
4
|
constructor(context, width, height) {
|
|
@@ -16,13 +16,17 @@ class Framebuffer {
|
|
|
16
16
|
const gl = this.context.gl;
|
|
17
17
|
|
|
18
18
|
const texture = this.colorAttachment.get();
|
|
19
|
-
if (texture)
|
|
19
|
+
if (texture) {
|
|
20
|
+
gl.deleteTexture(texture);
|
|
21
|
+
}
|
|
20
22
|
|
|
21
23
|
const renderbuffer = this.depthAttachment.get();
|
|
22
|
-
if (renderbuffer)
|
|
24
|
+
if (renderbuffer) {
|
|
25
|
+
gl.deleteRenderbuffer(renderbuffer);
|
|
26
|
+
}
|
|
23
27
|
|
|
24
28
|
gl.deleteFramebuffer(this.framebuffer);
|
|
25
29
|
}
|
|
26
30
|
}
|
|
27
31
|
|
|
28
|
-
|
|
32
|
+
export default Framebuffer;
|
package/src/gl/index_buffer.js
CHANGED
package/src/gl/stencil_mode.js
CHANGED