maplibre-gl 3.0.1 → 3.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 -7
- package/build/generate-shaders.ts +39 -6
- package/build/readme.md +0 -5
- 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 +185 -142
- package/dist/maplibre-gl-dev.js.map +1 -1
- package/dist/maplibre-gl.d.ts +44 -40
- package/dist/maplibre-gl.js +4 -4
- package/dist/maplibre-gl.js.map +1 -1
- package/package.json +33 -32
- package/src/geo/lng_lat.ts +2 -2
- package/src/gl/context.ts +27 -10
- package/src/gl/types.ts +14 -14
- package/src/gl/value.ts +11 -3
- package/src/gl/vertex_buffer.ts +2 -2
- package/src/gl/webgl2.ts +12 -0
- package/src/render/draw_heatmap.ts +1 -0
- package/src/render/painter.ts +1 -1
- package/src/render/program.ts +1 -4
- package/src/render/texture.ts +4 -4
- package/src/render/uniform_binding.ts +1 -1
- package/src/shaders/README.md +2 -2
- package/src/shaders/_prelude.fragment.glsl.g.ts +1 -1
- package/src/shaders/_prelude.vertex.glsl.g.ts +1 -1
- package/src/shaders/background.fragment.glsl.g.ts +1 -1
- package/src/shaders/background.vertex.glsl.g.ts +1 -1
- package/src/shaders/background_pattern.fragment.glsl.g.ts +1 -1
- package/src/shaders/background_pattern.vertex.glsl.g.ts +1 -1
- package/src/shaders/circle.fragment.glsl.g.ts +1 -1
- package/src/shaders/circle.vertex.glsl.g.ts +1 -1
- package/src/shaders/clipping_mask.fragment.glsl.g.ts +1 -1
- package/src/shaders/clipping_mask.vertex.glsl.g.ts +1 -1
- package/src/shaders/collision_box.fragment.glsl.g.ts +1 -1
- package/src/shaders/collision_box.vertex.glsl.g.ts +1 -1
- package/src/shaders/collision_circle.fragment.glsl.g.ts +1 -1
- package/src/shaders/collision_circle.vertex.glsl.g.ts +1 -1
- package/src/shaders/debug.fragment.glsl.g.ts +1 -1
- package/src/shaders/debug.vertex.glsl.g.ts +1 -1
- package/src/shaders/fill.fragment.glsl.g.ts +1 -1
- package/src/shaders/fill.vertex.glsl.g.ts +1 -1
- package/src/shaders/fill_extrusion.fragment.glsl.g.ts +1 -1
- package/src/shaders/fill_extrusion.vertex.glsl.g.ts +1 -1
- package/src/shaders/fill_extrusion_pattern.fragment.glsl.g.ts +1 -1
- package/src/shaders/fill_extrusion_pattern.vertex.glsl.g.ts +1 -1
- package/src/shaders/fill_outline.fragment.glsl.g.ts +1 -1
- package/src/shaders/fill_outline.vertex.glsl.g.ts +1 -1
- package/src/shaders/fill_outline_pattern.fragment.glsl.g.ts +1 -1
- package/src/shaders/fill_outline_pattern.vertex.glsl.g.ts +1 -1
- package/src/shaders/fill_pattern.fragment.glsl.g.ts +1 -1
- package/src/shaders/fill_pattern.vertex.glsl.g.ts +1 -1
- package/src/shaders/heatmap.fragment.glsl.g.ts +1 -1
- package/src/shaders/heatmap.vertex.glsl.g.ts +1 -1
- package/src/shaders/heatmap_texture.fragment.glsl.g.ts +1 -1
- package/src/shaders/heatmap_texture.vertex.glsl.g.ts +1 -1
- package/src/shaders/hillshade.fragment.glsl.g.ts +1 -1
- package/src/shaders/hillshade.vertex.glsl.g.ts +1 -1
- package/src/shaders/hillshade_prepare.fragment.glsl.g.ts +1 -1
- package/src/shaders/hillshade_prepare.vertex.glsl.g.ts +1 -1
- package/src/shaders/line.fragment.glsl.g.ts +1 -1
- package/src/shaders/line.vertex.glsl.g.ts +1 -1
- package/src/shaders/line_gradient.fragment.glsl.g.ts +1 -1
- package/src/shaders/line_gradient.vertex.glsl.g.ts +1 -1
- package/src/shaders/line_pattern.fragment.glsl.g.ts +1 -1
- package/src/shaders/line_pattern.vertex.glsl.g.ts +1 -1
- package/src/shaders/line_sdf.fragment.glsl.g.ts +1 -1
- package/src/shaders/line_sdf.vertex.glsl.g.ts +1 -1
- package/src/shaders/raster.fragment.glsl.g.ts +1 -1
- package/src/shaders/raster.vertex.glsl.g.ts +1 -1
- package/src/shaders/shaders.ts +5 -5
- package/src/shaders/symbol_icon.fragment.glsl.g.ts +1 -1
- package/src/shaders/symbol_icon.vertex.glsl.g.ts +1 -1
- package/src/shaders/symbol_sdf.fragment.glsl.g.ts +1 -1
- package/src/shaders/symbol_sdf.vertex.glsl.g.ts +1 -1
- package/src/shaders/symbol_text_and_icon.fragment.glsl.g.ts +1 -1
- package/src/shaders/symbol_text_and_icon.vertex.glsl.g.ts +1 -1
- package/src/shaders/terrain.fragment.glsl.g.ts +1 -1
- package/src/shaders/terrain.vertex.glsl.g.ts +1 -1
- package/src/shaders/terrain_coords.fragment.glsl.g.ts +1 -1
- package/src/shaders/terrain_depth.fragment.glsl.g.ts +1 -1
- package/src/source/raster_dem_tile_source.ts +4 -3
- package/src/source/source_cache.ts +8 -3
- package/src/source/vector_tile_source.test.ts +11 -11
- package/src/source/vector_tile_worker_source.ts +1 -1
- package/src/style/style_layer/custom_style_layer.ts +6 -6
- package/src/ui/control/attribution_control.ts +1 -1
- package/src/ui/control/fullscreen_control.ts +1 -1
- package/src/ui/control/geolocate_control.ts +6 -6
- package/src/ui/control/navigation_control.ts +4 -4
- package/src/ui/control/scale_control.ts +1 -1
- package/src/ui/control/terrain_control.ts +4 -5
- package/src/ui/map.test.ts +11 -0
- package/src/ui/map.ts +19 -12
- package/src/ui/marker.ts +2 -2
- package/src/ui/popup.ts +2 -2
- package/src/util/browser.ts +2 -2
- package/src/util/config.ts +2 -0
- package/src/util/test/mock_webgl.ts +4 -1
- package/src/util/webp_supported.ts +3 -3
package/dist/maplibre-gl-dev.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* MapLibre GL JS is licensed under the 3-Clause BSD License. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v3.0
|
|
1
|
+
/* MapLibre GL JS is licensed under the 3-Clause BSD License. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v3.1.0/LICENSE.txt */
|
|
2
2
|
(function (global, factory) {
|
|
3
3
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
|
4
4
|
typeof define === 'function' && define.amd ? define(factory) :
|
|
@@ -1056,6 +1056,7 @@ const exported = {
|
|
|
1056
1056
|
const config = {
|
|
1057
1057
|
MAX_PARALLEL_IMAGE_REQUESTS: 16,
|
|
1058
1058
|
MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME: 8,
|
|
1059
|
+
MAX_TILE_CACHE_ZOOM_LEVELS: 5,
|
|
1059
1060
|
REGISTERED_PROTOCOLS: {},
|
|
1060
1061
|
WORKER_URL: ''
|
|
1061
1062
|
};
|
|
@@ -28544,10 +28545,10 @@ const earthRadius = 6371008.8;
|
|
|
28544
28545
|
* A `LngLat` object represents a given longitude and latitude coordinate, measured in degrees.
|
|
28545
28546
|
* These coordinates are based on the [WGS84 (EPSG:4326) standard](https://en.wikipedia.org/wiki/World_Geodetic_System#WGS84).
|
|
28546
28547
|
*
|
|
28547
|
-
* MapLibre GL uses longitude, latitude coordinate order (as opposed to latitude, longitude) to match the
|
|
28548
|
+
* MapLibre GL JS uses longitude, latitude coordinate order (as opposed to latitude, longitude) to match the
|
|
28548
28549
|
* [GeoJSON specification](https://tools.ietf.org/html/rfc7946).
|
|
28549
28550
|
*
|
|
28550
|
-
* Note that any MapLibre GL method that accepts a `LngLat` object as an argument or option
|
|
28551
|
+
* Note that any MapLibre GL JS method that accepts a `LngLat` object as an argument or option
|
|
28551
28552
|
* can also accept an `Array` of two numbers and will perform an implicit conversion.
|
|
28552
28553
|
* This flexible type is documented as {@link LngLatLike}.
|
|
28553
28554
|
*
|
|
@@ -33824,7 +33825,7 @@ define(['./shared'], (function (performance) { 'use strict';
|
|
|
33824
33825
|
|
|
33825
33826
|
var name = "maplibre-gl";
|
|
33826
33827
|
var description = "BSD licensed community fork of mapbox-gl, a WebGL interactive maps library";
|
|
33827
|
-
var version$2 = "3.0
|
|
33828
|
+
var version$2 = "3.1.0";
|
|
33828
33829
|
var main = "dist/maplibre-gl.js";
|
|
33829
33830
|
var style = "dist/maplibre-gl.css";
|
|
33830
33831
|
var license = "BSD-3-Clause";
|
|
@@ -33864,22 +33865,22 @@ var dependencies = {
|
|
|
33864
33865
|
var devDependencies = {
|
|
33865
33866
|
"@mapbox/mapbox-gl-rtl-text": "^0.2.3",
|
|
33866
33867
|
"@mapbox/mvt-fixtures": "^3.10.0",
|
|
33867
|
-
"@rollup/plugin-commonjs": "^25.0.
|
|
33868
|
+
"@rollup/plugin-commonjs": "^25.0.1",
|
|
33868
33869
|
"@rollup/plugin-json": "^6.0.0",
|
|
33869
|
-
"@rollup/plugin-node-resolve": "^15.0
|
|
33870
|
+
"@rollup/plugin-node-resolve": "^15.1.0",
|
|
33870
33871
|
"@rollup/plugin-replace": "^5.0.2",
|
|
33871
33872
|
"@rollup/plugin-strip": "^3.0.2",
|
|
33872
|
-
"@rollup/plugin-terser": "^0.4.
|
|
33873
|
+
"@rollup/plugin-terser": "^0.4.3",
|
|
33873
33874
|
"@rollup/plugin-typescript": "^11.1.1",
|
|
33874
33875
|
"@types/benchmark": "^2.1.2",
|
|
33875
33876
|
"@types/cssnano": "^5.0.0",
|
|
33876
33877
|
"@types/d3": "^7.4.0",
|
|
33877
33878
|
"@types/diff": "^5.0.3",
|
|
33878
33879
|
"@types/earcut": "^2.1.1",
|
|
33879
|
-
"@types/eslint": "^8.
|
|
33880
|
+
"@types/eslint": "^8.40.0",
|
|
33880
33881
|
"@types/gl": "^6.0.2",
|
|
33881
33882
|
"@types/glob": "^8.1.0",
|
|
33882
|
-
"@types/jest": "^29.5.
|
|
33883
|
+
"@types/jest": "^29.5.2",
|
|
33883
33884
|
"@types/jsdom": "^21.1.1",
|
|
33884
33885
|
"@types/minimist": "^1.2.2",
|
|
33885
33886
|
"@types/murmurhash-js": "^1.0.4",
|
|
@@ -33888,39 +33889,39 @@ var devDependencies = {
|
|
|
33888
33889
|
"@types/offscreencanvas": "^2019.7.0",
|
|
33889
33890
|
"@types/pixelmatch": "^5.2.4",
|
|
33890
33891
|
"@types/pngjs": "^6.0.1",
|
|
33891
|
-
"@types/react": "^18.2.
|
|
33892
|
+
"@types/react": "^18.2.11",
|
|
33892
33893
|
"@types/react-dom": "^18.2.4",
|
|
33893
33894
|
"@types/request": "^2.48.8",
|
|
33894
33895
|
"@types/shuffle-seed": "^1.1.0",
|
|
33895
33896
|
"@types/supercluster": "^7.1.0",
|
|
33896
33897
|
"@types/window-or-global": "^1.0.4",
|
|
33897
|
-
"@typescript-eslint/eslint-plugin": "^5.59.
|
|
33898
|
-
"@typescript-eslint/parser": "^5.59.
|
|
33898
|
+
"@typescript-eslint/eslint-plugin": "^5.59.9",
|
|
33899
|
+
"@typescript-eslint/parser": "^5.59.11",
|
|
33899
33900
|
address: "^1.2.2",
|
|
33900
33901
|
benchmark: "^2.1.4",
|
|
33901
33902
|
canvas: "^2.11.2",
|
|
33902
33903
|
cssnano: "^6.0.1",
|
|
33903
|
-
d3: "^7.8.
|
|
33904
|
+
d3: "^7.8.5",
|
|
33904
33905
|
"d3-queue": "^3.0.7",
|
|
33905
|
-
"devtools-protocol": "^0.0.
|
|
33906
|
+
"devtools-protocol": "^0.0.1155872",
|
|
33906
33907
|
diff: "^5.1.0",
|
|
33907
|
-
documentation: "14.0.
|
|
33908
|
+
documentation: "14.0.2",
|
|
33908
33909
|
"dts-bundle-generator": "^8.0.1",
|
|
33909
|
-
eslint: "^8.
|
|
33910
|
+
eslint: "^8.42.0",
|
|
33910
33911
|
"eslint-config-mourner": "^3.0.0",
|
|
33911
33912
|
"eslint-plugin-html": "^7.1.0",
|
|
33912
33913
|
"eslint-plugin-import": "^2.27.5",
|
|
33913
33914
|
"eslint-plugin-jest": "^27.2.1",
|
|
33914
|
-
"eslint-plugin-jsdoc": "^
|
|
33915
|
+
"eslint-plugin-jsdoc": "^46.2.6",
|
|
33915
33916
|
"eslint-plugin-react": "^7.32.2",
|
|
33916
33917
|
expect: "^29.5.0",
|
|
33917
33918
|
gl: "^6.0.2",
|
|
33918
|
-
glob: "^10.2.
|
|
33919
|
+
glob: "^10.2.7",
|
|
33919
33920
|
"is-builtin-module": "^3.2.1",
|
|
33920
33921
|
jest: "^29.5.0",
|
|
33921
|
-
"jest-canvas-mock": "^2.5.
|
|
33922
|
+
"jest-canvas-mock": "^2.5.1",
|
|
33922
33923
|
"jest-environment-jsdom": "^29.5.0",
|
|
33923
|
-
jsdom: "^22.
|
|
33924
|
+
jsdom: "^22.1.0",
|
|
33924
33925
|
"json-stringify-pretty-compact": "^4.0.0",
|
|
33925
33926
|
minimist: "^1.2.8",
|
|
33926
33927
|
"mock-geolocation": "^1.0.11",
|
|
@@ -33931,26 +33932,26 @@ var devDependencies = {
|
|
|
33931
33932
|
"pdf-merger-js": "^4.3.0",
|
|
33932
33933
|
pixelmatch: "^5.3.0",
|
|
33933
33934
|
pngjs: "^7.0.0",
|
|
33934
|
-
postcss: "^8.4.
|
|
33935
|
+
postcss: "^8.4.24",
|
|
33935
33936
|
"postcss-cli": "^10.1.0",
|
|
33936
33937
|
"postcss-inline-svg": "^6.0.0",
|
|
33937
33938
|
"pretty-bytes": "^6.1.0",
|
|
33938
|
-
puppeteer: "^20.
|
|
33939
|
+
puppeteer: "^20.7.1",
|
|
33939
33940
|
react: "^18.2.0",
|
|
33940
33941
|
"react-dom": "^18.2.0",
|
|
33941
|
-
rollup: "^3.
|
|
33942
|
+
rollup: "^3.25.1",
|
|
33942
33943
|
"rollup-plugin-sourcemaps": "^0.6.3",
|
|
33943
33944
|
rw: "^1.3.3",
|
|
33944
33945
|
semver: "^7.5.1",
|
|
33945
33946
|
"shuffle-seed": "^1.1.6",
|
|
33946
33947
|
"source-map-explorer": "^2.5.3",
|
|
33947
33948
|
st: "^3.0.0",
|
|
33948
|
-
stylelint: "^15.
|
|
33949
|
+
stylelint: "^15.7.0",
|
|
33949
33950
|
"stylelint-config-standard": "^33.0.0",
|
|
33950
33951
|
"ts-jest": "^29.1.0",
|
|
33951
33952
|
"ts-node": "^10.9.1",
|
|
33952
|
-
tslib: "^2.5.
|
|
33953
|
-
typescript: "^5.
|
|
33953
|
+
tslib: "^2.5.2",
|
|
33954
|
+
typescript: "^5.1.3"
|
|
33954
33955
|
};
|
|
33955
33956
|
var overrides = {
|
|
33956
33957
|
"postcss-inline-svg": {
|
|
@@ -33961,11 +33962,11 @@ var overrides = {
|
|
|
33961
33962
|
}
|
|
33962
33963
|
};
|
|
33963
33964
|
var scripts = {
|
|
33964
|
-
"generate-dist-package": "
|
|
33965
|
-
"generate-shaders": "
|
|
33966
|
-
"generate-struct-arrays": "
|
|
33967
|
-
"generate-style-code": "
|
|
33968
|
-
"generate-typings": "
|
|
33965
|
+
"generate-dist-package": "npm run tsnode build/generate-dist-package.js",
|
|
33966
|
+
"generate-shaders": "npm run tsnode build/generate-shaders.ts",
|
|
33967
|
+
"generate-struct-arrays": "npm run tsnode build/generate-struct-arrays.ts",
|
|
33968
|
+
"generate-style-code": "npm run tsnode build/generate-style-code.ts",
|
|
33969
|
+
"generate-typings": "npm run tsnode build/generate-typings.ts",
|
|
33969
33970
|
"build-dist": "run-p --print-label generate-typings build-dev build-prod build-csp build-csp-dev build-css",
|
|
33970
33971
|
"build-dev": "rollup --configPlugin @rollup/plugin-typescript -c --environment BUILD:dev",
|
|
33971
33972
|
"watch-dev": "rollup --configPlugin @rollup/plugin-typescript -c --environment BUILD:dev --watch",
|
|
@@ -33988,14 +33989,15 @@ var scripts = {
|
|
|
33988
33989
|
"jest-ci": "jest --reporters=github-actions --reporters=summary",
|
|
33989
33990
|
"test-build": "jest --selectProjects=build",
|
|
33990
33991
|
"test-integration": "jest --selectProjects=integration",
|
|
33991
|
-
"test-render": "
|
|
33992
|
+
"test-render": "npm run tsnode test/integration/render/run_render_tests.ts",
|
|
33992
33993
|
"test-unit": "jest --selectProjects=unit",
|
|
33993
33994
|
"test-watch-roots": "jest --watch",
|
|
33994
33995
|
codegen: "run-p generate-dist-package generate-style-code generate-struct-arrays generate-shaders",
|
|
33995
|
-
benchmark: "
|
|
33996
|
-
"gl-stats": "
|
|
33996
|
+
benchmark: "npm run tsnode test/bench/run-benchmarks.ts",
|
|
33997
|
+
"gl-stats": "npm run tsnode test/bench/gl-stats.ts",
|
|
33997
33998
|
prepare: "npm run codegen",
|
|
33998
|
-
typecheck: "tsc --noEmit"
|
|
33999
|
+
typecheck: "tsc --noEmit && tsc --project tsconfig.dist.json",
|
|
34000
|
+
tsnode: "node --experimental-loader=ts-node/esm --no-warnings"
|
|
33999
34001
|
};
|
|
34000
34002
|
var files = [
|
|
34001
34003
|
"build/",
|
|
@@ -38066,6 +38068,7 @@ class SourceCache extends performance.Evented {
|
|
|
38066
38068
|
this._timers = {};
|
|
38067
38069
|
this._cacheTimers = {};
|
|
38068
38070
|
this._maxTileCacheSize = null;
|
|
38071
|
+
this._maxTileCacheZoomLevels = null;
|
|
38069
38072
|
this._loadedParentTiles = {};
|
|
38070
38073
|
this._coveredTiles = {};
|
|
38071
38074
|
this._state = new SourceFeatureState();
|
|
@@ -38075,6 +38078,7 @@ class SourceCache extends performance.Evented {
|
|
|
38075
38078
|
onAdd(map) {
|
|
38076
38079
|
this.map = map;
|
|
38077
38080
|
this._maxTileCacheSize = map ? map._maxTileCacheSize : null;
|
|
38081
|
+
this._maxTileCacheZoomLevels = map ? map._maxTileCacheZoomLevels : null;
|
|
38078
38082
|
if (this._source && this._source.onAdd) {
|
|
38079
38083
|
this._source.onAdd(map);
|
|
38080
38084
|
}
|
|
@@ -38375,9 +38379,11 @@ class SourceCache extends performance.Evented {
|
|
|
38375
38379
|
const widthInTiles = Math.ceil(transform.width / this._source.tileSize) + 1;
|
|
38376
38380
|
const heightInTiles = Math.ceil(transform.height / this._source.tileSize) + 1;
|
|
38377
38381
|
const approxTilesInView = widthInTiles * heightInTiles;
|
|
38378
|
-
const commonZoomRange =
|
|
38382
|
+
const commonZoomRange = this._maxTileCacheZoomLevels === null ?
|
|
38383
|
+
performance.config.MAX_TILE_CACHE_ZOOM_LEVELS : this._maxTileCacheZoomLevels;
|
|
38379
38384
|
const viewDependentMaxSize = Math.floor(approxTilesInView * commonZoomRange);
|
|
38380
|
-
const maxSize = typeof this._maxTileCacheSize === 'number' ?
|
|
38385
|
+
const maxSize = typeof this._maxTileCacheSize === 'number' ?
|
|
38386
|
+
Math.min(this._maxTileCacheSize, viewDependentMaxSize) : viewDependentMaxSize;
|
|
38381
38387
|
this._cache.setMaxSize(maxSize);
|
|
38382
38388
|
}
|
|
38383
38389
|
handleWrapJump(lng) {
|
|
@@ -42549,172 +42555,172 @@ var posAttributes = performance.createLayout([
|
|
|
42549
42555
|
]);
|
|
42550
42556
|
|
|
42551
42557
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42552
|
-
var preludeFrag = '#ifdef GL_ES\nprecision mediump float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\
|
|
42558
|
+
var preludeFrag = '#ifdef GL_ES\nprecision mediump float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\n';
|
|
42553
42559
|
|
|
42554
42560
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42555
|
-
var preludeVert = '#ifdef GL_ES\nprecision highp float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\n#ifdef TERRAIN3D\nuniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;\n#endif\nconst highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {\n#ifdef TERRAIN3D\nhighp float d=unpack(
|
|
42561
|
+
var preludeVert = '#ifdef GL_ES\nprecision highp float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\n#ifdef TERRAIN3D\nuniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;\n#endif\nconst highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {\n#ifdef TERRAIN3D\nhighp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));\n#else\nreturn 1.0;\n#endif\n}float calculate_visibility(vec4 pos) {\n#ifdef TERRAIN3D\nvec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;\n#else\nreturn 1.0;\n#endif\n}float ele(vec2 pos) {\n#ifdef TERRAIN3D\nvec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;\n#else\nreturn 0.0;\n#endif\n}float get_elevation(vec2 pos) {\n#ifdef TERRAIN3D\nvec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;\n#else\nreturn 0.0;\n#endif\n}';
|
|
42556
42562
|
|
|
42557
42563
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42558
|
-
var backgroundFrag = 'uniform vec4 u_color;uniform float u_opacity;void main() {
|
|
42564
|
+
var backgroundFrag = 'uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42559
42565
|
|
|
42560
42566
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42561
|
-
var backgroundVert = '
|
|
42567
|
+
var backgroundVert = 'attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}';
|
|
42562
42568
|
|
|
42563
42569
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42564
|
-
var backgroundPatternFrag = 'uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;
|
|
42570
|
+
var backgroundPatternFrag = 'uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42565
42571
|
|
|
42566
42572
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42567
|
-
var backgroundPatternVert = 'uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;
|
|
42573
|
+
var backgroundPatternVert = 'uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}';
|
|
42568
42574
|
|
|
42569
42575
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42570
|
-
var circleFrag = '
|
|
42576
|
+
var circleFrag = 'varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42571
42577
|
|
|
42572
42578
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42573
|
-
var circleVert = 'uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;
|
|
42579
|
+
var circleVert = 'uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}';
|
|
42574
42580
|
|
|
42575
42581
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42576
|
-
var clippingMaskFrag = 'void main() {
|
|
42582
|
+
var clippingMaskFrag = 'void main() {gl_FragColor=vec4(1.0);}';
|
|
42577
42583
|
|
|
42578
42584
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42579
|
-
var clippingMaskVert = '
|
|
42585
|
+
var clippingMaskVert = 'attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}';
|
|
42580
42586
|
|
|
42581
42587
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42582
|
-
var heatmapFrag = 'uniform highp float u_intensity;
|
|
42588
|
+
var heatmapFrag = 'uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42583
42589
|
|
|
42584
42590
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42585
|
-
var heatmapVert = 'uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;
|
|
42591
|
+
var heatmapVert = 'uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}';
|
|
42586
42592
|
|
|
42587
42593
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42588
|
-
var heatmapTextureFrag = 'uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;
|
|
42594
|
+
var heatmapTextureFrag = 'uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}';
|
|
42589
42595
|
|
|
42590
42596
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42591
|
-
var heatmapTextureVert = 'uniform mat4 u_matrix;uniform vec2 u_world;
|
|
42597
|
+
var heatmapTextureVert = 'uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}';
|
|
42592
42598
|
|
|
42593
42599
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42594
|
-
var collisionBoxFrag = '
|
|
42600
|
+
var collisionBoxFrag = 'varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}';
|
|
42595
42601
|
|
|
42596
42602
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42597
|
-
var collisionBoxVert = '
|
|
42603
|
+
var collisionBoxVert = 'attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,get_elevation(a_pos),1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}';
|
|
42598
42604
|
|
|
42599
42605
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42600
|
-
var collisionCircleFrag = '
|
|
42606
|
+
var collisionCircleFrag = 'varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}';
|
|
42601
42607
|
|
|
42602
42608
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42603
|
-
var collisionCircleVert = '
|
|
42609
|
+
var collisionCircleVert = 'attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}';
|
|
42604
42610
|
|
|
42605
42611
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42606
|
-
var debugFrag = 'uniform highp vec4 u_color;uniform sampler2D u_overlay;
|
|
42612
|
+
var debugFrag = 'uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}';
|
|
42607
42613
|
|
|
42608
42614
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42609
|
-
var debugVert = '
|
|
42615
|
+
var debugVert = 'attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}';
|
|
42610
42616
|
|
|
42611
42617
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42612
|
-
var fillFrag = '#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\
|
|
42618
|
+
var fillFrag = '#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42613
42619
|
|
|
42614
42620
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42615
|
-
var fillVert = '
|
|
42621
|
+
var fillVert = 'attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}';
|
|
42616
42622
|
|
|
42617
42623
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42618
|
-
var fillOutlineFrag = '
|
|
42624
|
+
var fillOutlineFrag = 'varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42619
42625
|
|
|
42620
42626
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42621
|
-
var fillOutlineVert = '
|
|
42627
|
+
var fillOutlineVert = 'attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}';
|
|
42622
42628
|
|
|
42623
42629
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42624
|
-
var fillOutlinePatternFrag = 'uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;
|
|
42630
|
+
var fillOutlinePatternFrag = 'uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42625
42631
|
|
|
42626
42632
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42627
|
-
var fillOutlinePatternVert = 'uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;
|
|
42633
|
+
var fillOutlinePatternVert = 'uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}';
|
|
42628
42634
|
|
|
42629
42635
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42630
|
-
var fillPatternFrag = '#ifdef GL_ES\nprecision highp float;\n#endif\nuniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;
|
|
42636
|
+
var fillPatternFrag = '#ifdef GL_ES\nprecision highp float;\n#endif\nuniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42631
42637
|
|
|
42632
42638
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42633
|
-
var fillPatternVert = 'uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;
|
|
42639
|
+
var fillPatternVert = 'uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}';
|
|
42634
42640
|
|
|
42635
42641
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42636
|
-
var fillExtrusionFrag = '
|
|
42642
|
+
var fillExtrusionFrag = 'varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42637
42643
|
|
|
42638
42644
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42639
|
-
var fillExtrusionVert = 'uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;
|
|
42645
|
+
var fillExtrusionVert = 'uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;\n#ifdef TERRAIN3D\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\n#else\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\n#endif\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}';
|
|
42640
42646
|
|
|
42641
42647
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42642
|
-
var fillExtrusionPatternFrag = 'uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;
|
|
42648
|
+
var fillExtrusionPatternFrag = 'uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42643
42649
|
|
|
42644
42650
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42645
|
-
var fillExtrusionPatternVert = 'uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;
|
|
42651
|
+
var fillExtrusionPatternVert = 'uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\n#ifdef TERRAIN3D\nattribute vec2 a_centroid;\n#endif\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;\n#ifdef TERRAIN3D\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\n#else\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\n#endif\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}';
|
|
42646
42652
|
|
|
42647
42653
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42648
|
-
var hillshadePrepareFrag = '#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;
|
|
42654
|
+
var hillshadePrepareFrag = '#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42649
42655
|
|
|
42650
42656
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42651
|
-
var hillshadePrepareVert = 'uniform mat4 u_matrix;uniform vec2 u_dimension;
|
|
42657
|
+
var hillshadePrepareVert = 'uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}';
|
|
42652
42658
|
|
|
42653
42659
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42654
|
-
var hillshadeFrag = 'uniform sampler2D u_image;
|
|
42660
|
+
var hillshadeFrag = 'uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42655
42661
|
|
|
42656
42662
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42657
|
-
var hillshadeVert = 'uniform mat4 u_matrix;
|
|
42663
|
+
var hillshadeVert = 'uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}';
|
|
42658
42664
|
|
|
42659
42665
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42660
|
-
var lineFrag = 'uniform lowp float u_device_pixel_ratio;
|
|
42666
|
+
var lineFrag = 'uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42661
42667
|
|
|
42662
42668
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42663
|
-
var lineVert = '\n#define scale 0.015873016\
|
|
42669
|
+
var lineVert = '\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}';
|
|
42664
42670
|
|
|
42665
42671
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42666
|
-
var lineGradientFrag = 'uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;
|
|
42672
|
+
var lineGradientFrag = 'uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42667
42673
|
|
|
42668
42674
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42669
|
-
var lineGradientVert = '\n#define scale 0.015873016\
|
|
42675
|
+
var lineGradientVert = '\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_width2=vec2(outset,inset);}';
|
|
42670
42676
|
|
|
42671
42677
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42672
|
-
var linePatternFrag = '#ifdef GL_ES\nprecision highp float;\n#endif\nuniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;
|
|
42678
|
+
var linePatternFrag = '#ifdef GL_ES\nprecision highp float;\n#endif\nuniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42673
42679
|
|
|
42674
42680
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42675
|
-
var linePatternVert = '\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\
|
|
42681
|
+
var linePatternVert = '\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}';
|
|
42676
42682
|
|
|
42677
42683
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42678
|
-
var lineSDFFrag = 'uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;
|
|
42684
|
+
var lineSDFFrag = 'uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42679
42685
|
|
|
42680
42686
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42681
|
-
var lineSDFVert = '\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\
|
|
42687
|
+
var lineSDFVert = '\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\n#ifdef TERRAIN3D\nv_gamma_scale=1.0;\n#else\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\n#endif\nv_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}';
|
|
42682
42688
|
|
|
42683
42689
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42684
|
-
var rasterFrag = 'uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;
|
|
42690
|
+
var rasterFrag = 'uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42685
42691
|
|
|
42686
42692
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42687
|
-
var rasterVert = 'uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;
|
|
42693
|
+
var rasterVert = 'uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}';
|
|
42688
42694
|
|
|
42689
42695
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42690
|
-
var symbolIconFrag = 'uniform sampler2D u_texture;
|
|
42696
|
+
var symbolIconFrag = 'uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42691
42697
|
|
|
42692
42698
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42693
|
-
var symbolIconVert = 'const float PI=3.141592653589793;
|
|
42699
|
+
var symbolIconVert = 'const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),z,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}';
|
|
42694
42700
|
|
|
42695
42701
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42696
|
-
var symbolSDFFrag = '#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;
|
|
42702
|
+
var symbolSDFFrag = '#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42697
42703
|
|
|
42698
42704
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42699
|
-
var symbolSDFVert = 'const float PI=3.141592653589793;
|
|
42705
|
+
var symbolSDFVert = 'const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}';
|
|
42700
42706
|
|
|
42701
42707
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42702
|
-
var symbolTextAndIconFrag = '#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;
|
|
42708
|
+
var symbolTextAndIconFrag = '#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}';
|
|
42703
42709
|
|
|
42704
42710
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42705
|
-
var symbolTextAndIconVert = 'const float PI=3.141592653589793;
|
|
42711
|
+
var symbolTextAndIconVert = 'const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}';
|
|
42706
42712
|
|
|
42707
42713
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42708
|
-
var terrainDepthFrag = '
|
|
42714
|
+
var terrainDepthFrag = 'varying float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {gl_FragColor=pack(v_depth);}';
|
|
42709
42715
|
|
|
42710
42716
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42711
|
-
var terrainCoordsFrag = 'precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;
|
|
42717
|
+
var terrainCoordsFrag = 'precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}';
|
|
42712
42718
|
|
|
42713
42719
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42714
|
-
var terrainFrag = 'uniform sampler2D u_texture;
|
|
42720
|
+
var terrainFrag = 'uniform sampler2D u_texture;varying vec2 v_texture_pos;void main() {gl_FragColor=texture2D(u_texture,v_texture_pos);}';
|
|
42715
42721
|
|
|
42716
42722
|
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
42717
|
-
var terrainVert = '
|
|
42723
|
+
var terrainVert = 'attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;varying float v_depth;void main() {float extent=8192.0;float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/extent;gl_Position=u_matrix*vec4(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta,1.0);v_depth=gl_Position.z/gl_Position.w;}';
|
|
42718
42724
|
|
|
42719
42725
|
// Disable Flow annotations here because Flow doesn't support importing GLSL files
|
|
42720
42726
|
const shaders = {
|
|
@@ -42751,7 +42757,7 @@ const shaders = {
|
|
|
42751
42757
|
// Expand #pragmas to #ifdefs.
|
|
42752
42758
|
function compile(fragmentSource, vertexSource) {
|
|
42753
42759
|
const re = /#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g;
|
|
42754
|
-
const staticAttributes = vertexSource.match(/
|
|
42760
|
+
const staticAttributes = vertexSource.match(/attribute ([\w]+) ([\w]+)/g);
|
|
42755
42761
|
const fragmentUniforms = fragmentSource.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g);
|
|
42756
42762
|
const vertexUniforms = vertexSource.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g);
|
|
42757
42763
|
const staticUniforms = vertexUniforms ? vertexUniforms.concat(fragmentUniforms) : fragmentUniforms;
|
|
@@ -42761,7 +42767,7 @@ function compile(fragmentSource, vertexSource) {
|
|
|
42761
42767
|
if (operation === 'define') {
|
|
42762
42768
|
return `
|
|
42763
42769
|
#ifndef HAS_UNIFORM_u_${name}
|
|
42764
|
-
|
|
42770
|
+
varying ${precision} ${type} ${name};
|
|
42765
42771
|
#else
|
|
42766
42772
|
uniform ${precision} ${type} u_${name};
|
|
42767
42773
|
#endif
|
|
@@ -42783,8 +42789,8 @@ uniform ${precision} ${type} u_${name};
|
|
|
42783
42789
|
return `
|
|
42784
42790
|
#ifndef HAS_UNIFORM_u_${name}
|
|
42785
42791
|
uniform lowp float u_${name}_t;
|
|
42786
|
-
|
|
42787
|
-
|
|
42792
|
+
attribute ${precision} ${attrType} a_${name};
|
|
42793
|
+
varying ${precision} ${type} ${name};
|
|
42788
42794
|
#else
|
|
42789
42795
|
uniform ${precision} ${type} u_${name};
|
|
42790
42796
|
#endif
|
|
@@ -42817,7 +42823,7 @@ uniform ${precision} ${type} u_${name};
|
|
|
42817
42823
|
return `
|
|
42818
42824
|
#ifndef HAS_UNIFORM_u_${name}
|
|
42819
42825
|
uniform lowp float u_${name}_t;
|
|
42820
|
-
|
|
42826
|
+
attribute ${precision} ${attrType} a_${name};
|
|
42821
42827
|
#else
|
|
42822
42828
|
uniform ${precision} ${type} u_${name};
|
|
42823
42829
|
#endif
|
|
@@ -43030,7 +43036,6 @@ class Program {
|
|
|
43030
43036
|
if (terrain) {
|
|
43031
43037
|
defines.push('#define TERRAIN3D;');
|
|
43032
43038
|
}
|
|
43033
|
-
defines.unshift('#version 300 es');
|
|
43034
43039
|
const fragmentSource = defines.concat(shaders.prelude.fragmentSource, source.fragmentSource).join('\n');
|
|
43035
43040
|
const vertexSource = defines.concat(shaders.prelude.vertexSource, source.vertexSource).join('\n');
|
|
43036
43041
|
const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
|
|
@@ -43859,6 +43864,18 @@ class VertexBuffer {
|
|
|
43859
43864
|
}
|
|
43860
43865
|
}
|
|
43861
43866
|
|
|
43867
|
+
const cache = new WeakMap();
|
|
43868
|
+
function isWebGL2(gl) {
|
|
43869
|
+
if (cache.has(gl)) {
|
|
43870
|
+
return cache.get(gl);
|
|
43871
|
+
}
|
|
43872
|
+
else {
|
|
43873
|
+
const value = gl.getParameter(gl.VERSION).startsWith('WebGL 2.0');
|
|
43874
|
+
cache.set(gl, value);
|
|
43875
|
+
return value;
|
|
43876
|
+
}
|
|
43877
|
+
}
|
|
43878
|
+
|
|
43862
43879
|
class BaseValue {
|
|
43863
43880
|
constructor(context) {
|
|
43864
43881
|
this.gl = context.gl;
|
|
@@ -44251,10 +44268,16 @@ class BindVertexArray extends BaseValue {
|
|
|
44251
44268
|
return null;
|
|
44252
44269
|
}
|
|
44253
44270
|
set(v) {
|
|
44271
|
+
var _a;
|
|
44254
44272
|
if (v === this.current && !this.dirty)
|
|
44255
44273
|
return;
|
|
44256
44274
|
const gl = this.gl;
|
|
44257
|
-
gl
|
|
44275
|
+
if (isWebGL2(gl)) {
|
|
44276
|
+
gl.bindVertexArray(v);
|
|
44277
|
+
}
|
|
44278
|
+
else {
|
|
44279
|
+
(_a = gl.getExtension('OES_vertex_array_object')) === null || _a === void 0 ? void 0 : _a.bindVertexArrayOES(v);
|
|
44280
|
+
}
|
|
44258
44281
|
this.current = v;
|
|
44259
44282
|
this.dirty = false;
|
|
44260
44283
|
}
|
|
@@ -44400,6 +44423,7 @@ ColorMode.alphaBlended = new ColorMode([ONE, ONE_MINUS_SRC_ALPHA], performance.C
|
|
|
44400
44423
|
|
|
44401
44424
|
class Context {
|
|
44402
44425
|
constructor(gl) {
|
|
44426
|
+
var _a, _b;
|
|
44403
44427
|
this.gl = gl;
|
|
44404
44428
|
this.clearColor = new ClearColor(this);
|
|
44405
44429
|
this.clearDepth = new ClearDepth(this);
|
|
@@ -44432,16 +44456,26 @@ class Context {
|
|
|
44432
44456
|
this.pixelStoreUnpack = new PixelStoreUnpack(this);
|
|
44433
44457
|
this.pixelStoreUnpackPremultiplyAlpha = new PixelStoreUnpackPremultiplyAlpha(this);
|
|
44434
44458
|
this.pixelStoreUnpackFlipY = new PixelStoreUnpackFlipY(this);
|
|
44435
|
-
this.extTextureFilterAnisotropic = gl.getExtension('EXT_texture_filter_anisotropic')
|
|
44459
|
+
this.extTextureFilterAnisotropic = (gl.getExtension('EXT_texture_filter_anisotropic') ||
|
|
44460
|
+
gl.getExtension('MOZ_EXT_texture_filter_anisotropic') ||
|
|
44461
|
+
gl.getExtension('WEBKIT_EXT_texture_filter_anisotropic'));
|
|
44436
44462
|
if (this.extTextureFilterAnisotropic) {
|
|
44437
44463
|
this.extTextureFilterAnisotropicMax = gl.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT);
|
|
44438
44464
|
}
|
|
44439
44465
|
this.maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);
|
|
44440
|
-
|
|
44441
|
-
|
|
44442
|
-
|
|
44443
|
-
|
|
44444
|
-
|
|
44466
|
+
if (isWebGL2(gl)) {
|
|
44467
|
+
this.HALF_FLOAT = gl.HALF_FLOAT;
|
|
44468
|
+
const extColorBufferHalfFloat = gl.getExtension('EXT_color_buffer_half_float');
|
|
44469
|
+
this.RGBA16F = (_a = gl.RGBA16F) !== null && _a !== void 0 ? _a : extColorBufferHalfFloat === null || extColorBufferHalfFloat === void 0 ? void 0 : extColorBufferHalfFloat.RGBA16F_EXT;
|
|
44470
|
+
this.RGB16F = (_b = gl.RGB16F) !== null && _b !== void 0 ? _b : extColorBufferHalfFloat === null || extColorBufferHalfFloat === void 0 ? void 0 : extColorBufferHalfFloat.RGB16F_EXT;
|
|
44471
|
+
gl.getExtension('EXT_color_buffer_float');
|
|
44472
|
+
}
|
|
44473
|
+
else {
|
|
44474
|
+
gl.getExtension('EXT_color_buffer_half_float');
|
|
44475
|
+
gl.getExtension('OES_texture_half_float_linear');
|
|
44476
|
+
const extTextureHalfFloat = gl.getExtension('OES_texture_half_float');
|
|
44477
|
+
this.HALF_FLOAT = extTextureHalfFloat === null || extTextureHalfFloat === void 0 ? void 0 : extTextureHalfFloat.HALF_FLOAT_OES;
|
|
44478
|
+
}
|
|
44445
44479
|
}
|
|
44446
44480
|
setDefault() {
|
|
44447
44481
|
this.unbindVAO();
|
|
@@ -44592,10 +44626,16 @@ class Context {
|
|
|
44592
44626
|
this.colorMask.set(colorMode.mask);
|
|
44593
44627
|
}
|
|
44594
44628
|
createVertexArray() {
|
|
44595
|
-
|
|
44629
|
+
var _a;
|
|
44630
|
+
if (isWebGL2(this.gl))
|
|
44631
|
+
return this.gl.createVertexArray();
|
|
44632
|
+
return (_a = this.gl.getExtension('OES_vertex_array_object')) === null || _a === void 0 ? void 0 : _a.createVertexArrayOES();
|
|
44596
44633
|
}
|
|
44597
44634
|
deleteVertexArray(x) {
|
|
44598
|
-
|
|
44635
|
+
var _a;
|
|
44636
|
+
if (isWebGL2(this.gl))
|
|
44637
|
+
return this.gl.deleteVertexArray(x);
|
|
44638
|
+
return (_a = this.gl.getExtension('OES_vertex_array_object')) === null || _a === void 0 ? void 0 : _a.deleteVertexArrayOES(x);
|
|
44599
44639
|
}
|
|
44600
44640
|
unbindVAO() {
|
|
44601
44641
|
// Unbinding the VAO prevents other things (custom layers, new buffer creation) from
|
|
@@ -50984,7 +51024,7 @@ let canary; // eslint-disable-line
|
|
|
50984
51024
|
* An `AttributionControl` control presents the map's attribution information. By default, the attribution control is expanded (regardless of map width).
|
|
50985
51025
|
*
|
|
50986
51026
|
* @implements {IControl}
|
|
50987
|
-
* @param {
|
|
51027
|
+
* @param {AttributionOptions} [options]
|
|
50988
51028
|
* @param {boolean} [options.compact] If `true`, the attribution control will always collapse when moving the map. If `false`, force the expanded attribution control. The default is a responsive attribution that collapses when the user moves the map on maps less than 640 pixels wide. **Attribution should not be collapsed if it can comfortably fit on the map. `compact` should only be used to modify default attribution when map size makes it impossible to fit default attribution and when the automatic compact resizing for default settings are not sufficient.**
|
|
50989
51029
|
* @param {string | Array<string>} [options.customAttribution] String or strings to show in addition to any other attributions.
|
|
50990
51030
|
* @example
|
|
@@ -51968,6 +52008,7 @@ const defaultOptions$4 = {
|
|
|
51968
52008
|
renderWorldCopies: true,
|
|
51969
52009
|
refreshExpiredTiles: true,
|
|
51970
52010
|
maxTileCacheSize: null,
|
|
52011
|
+
maxTileCacheZoomLevels: performance.config.MAX_TILE_CACHE_ZOOM_LEVELS,
|
|
51971
52012
|
localIdeographFontFamily: 'sans-serif',
|
|
51972
52013
|
transformRequest: null,
|
|
51973
52014
|
transformCameraUpdate: null,
|
|
@@ -52027,7 +52068,7 @@ const defaultOptions$4 = {
|
|
|
52027
52068
|
* @param {boolean|Object} [options.touchPitch=true] If `true`, the "drag to pitch" interaction is enabled. An `Object` value is passed as options to {@link TwoFingersTouchPitchHandler#enable}.
|
|
52028
52069
|
* @param {boolean|GestureOptions} [options.cooperativeGestures=undefined] If `true` or set to an options object, map is only accessible on desktop while holding Command/Ctrl and only accessible on mobile with two fingers. Interacting with the map using normal gestures will trigger an informational screen. With this option enabled, "drag to pitch" requires a three-finger gesture. Cooperative gestures are disabled when a map enters fullscreen using {@link #FullscreenControl}.
|
|
52029
52070
|
* @param {boolean} [options.trackResize=true] If `true`, the map will automatically resize when the browser window resizes.
|
|
52030
|
-
* @param {LngLatLike} [options.center=[0, 0]] The initial geographical centerpoint of the map. If `center` is not specified in the constructor options, MapLibre GL JS will look for it in the map's style object. If it is not specified in the style, either, it will default to `[0, 0]` Note: MapLibre GL uses longitude, latitude coordinate order (as opposed to latitude, longitude) to match GeoJSON.
|
|
52071
|
+
* @param {LngLatLike} [options.center=[0, 0]] The initial geographical centerpoint of the map. If `center` is not specified in the constructor options, MapLibre GL JS will look for it in the map's style object. If it is not specified in the style, either, it will default to `[0, 0]` Note: MapLibre GL JS uses longitude, latitude coordinate order (as opposed to latitude, longitude) to match GeoJSON.
|
|
52031
52072
|
* @param {number} [options.zoom=0] The initial zoom level of the map. If `zoom` is not specified in the constructor options, MapLibre GL JS will look for it in the map's style object. If it is not specified in the style, either, it will default to `0`.
|
|
52032
52073
|
* @param {number} [options.bearing=0] The initial bearing (rotation) of the map, measured in degrees counter-clockwise from north. If `bearing` is not specified in the constructor options, MapLibre GL JS will look for it in the map's style object. If it is not specified in the style, either, it will default to `0`.
|
|
52033
52074
|
* @param {number} [options.pitch=0] The initial pitch (tilt) of the map, measured in degrees away from the plane of the screen (0-85). If `pitch` is not specified in the constructor options, MapLibre GL JS will look for it in the map's style object. If it is not specified in the style, either, it will default to `0`. Values greater than 60 degrees are experimental and may result in rendering issues. If you encounter any, please raise an issue with details in the MapLibre project.
|
|
@@ -52038,8 +52079,9 @@ const defaultOptions$4 = {
|
|
|
52038
52079
|
* container, there will be blank space beyond 180 and -180 degrees longitude.
|
|
52039
52080
|
* - Features that cross 180 and -180 degrees longitude will be cut in two (with one portion on the right edge of the
|
|
52040
52081
|
* map and the other on the left edge of the map) at every zoom level.
|
|
52041
|
-
* @param {number} [options.maxTileCacheSize=null] The maximum number of tiles stored in the tile cache for a given source. If omitted, the cache will be dynamically sized based on the current viewport.
|
|
52042
|
-
* @param {
|
|
52082
|
+
* @param {number} [options.maxTileCacheSize=null] The maximum number of tiles stored in the tile cache for a given source. If omitted, the cache will be dynamically sized based on the current viewport which can be set using `maxTileCacheZoomLevels` constructor options.
|
|
52083
|
+
* @param {number} [options.maxTileCacheZoomLevels=5] The maximum number of zoom levels for which to store tiles for a given source. Tile cache dynamic size is calculated by multiplying `maxTileCacheZoomLevels` with approx number of tiles in the viewport for a given source.
|
|
52084
|
+
* @param {boolean} [options.validateStyle=true] If false, style validation will be skipped. Useful in production environment.
|
|
52043
52085
|
* @param {string} [options.localIdeographFontFamily='sans-serif'] Defines a CSS
|
|
52044
52086
|
* font-family for locally overriding generation of glyphs in the 'CJK Unified Ideographs', 'Hiragana', 'Katakana' and 'Hangul Syllables' ranges.
|
|
52045
52087
|
* In these ranges, font settings from the map's style will be ignored, except for font-weight keywords (light/regular/medium/bold).
|
|
@@ -52096,6 +52138,7 @@ let Map$1 = class Map extends Camera {
|
|
|
52096
52138
|
this._cooperativeGestures = options.cooperativeGestures;
|
|
52097
52139
|
this._metaKey = navigator.platform.indexOf('Mac') === 0 ? 'metaKey' : 'ctrlKey';
|
|
52098
52140
|
this._maxTileCacheSize = options.maxTileCacheSize;
|
|
52141
|
+
this._maxTileCacheZoomLevels = options.maxTileCacheZoomLevels;
|
|
52099
52142
|
this._failIfMajorPerformanceCaveat = options.failIfMajorPerformanceCaveat;
|
|
52100
52143
|
this._preserveDrawingBuffer = options.preserveDrawingBuffer;
|
|
52101
52144
|
this._antialias = options.antialias;
|
|
@@ -52747,7 +52790,7 @@ let Map$1 = class Map extends Camera {
|
|
|
52747
52790
|
* @param {FilterSpecification} [options.filter] (optional) A [filter](https://maplibre.org/maplibre-style-spec/layers/#filter)
|
|
52748
52791
|
* to limit query results.
|
|
52749
52792
|
* @param {Array<string>} [options.availableImages] (optional) An array of string representing the available images
|
|
52750
|
-
* @param {boolean} [options.validate=true] (optional) Whether to check if the [options.filter] conforms to the MapLibre
|
|
52793
|
+
* @param {boolean} [options.validate=true] (optional) Whether to check if the [options.filter] conforms to the MapLibre Style Specification. Disabling validation is a performance optimization that should only be used if you have previously validated the values you will be passing to this function.
|
|
52751
52794
|
*
|
|
52752
52795
|
* @returns {Array<MapGeoJSONFeature>} An array of MapGeoJSONFeature objects.
|
|
52753
52796
|
*
|
|
@@ -52836,7 +52879,7 @@ let Map$1 = class Map extends Camera {
|
|
|
52836
52879
|
* to query. *For vector tile sources, this parameter is required.* For GeoJSON sources, it is ignored.
|
|
52837
52880
|
* @param {Array} [parameters.filter] A [filter](https://maplibre.org/maplibre-style-spec/layers/#filter)
|
|
52838
52881
|
* to limit query results.
|
|
52839
|
-
* @param {boolean} [parameters.validate=true] Whether to check if the [parameters.filter] conforms to the MapLibre
|
|
52882
|
+
* @param {boolean} [parameters.validate=true] Whether to check if the [parameters.filter] conforms to the MapLibre Style Specification. Disabling validation is a performance optimization that should only be used if you have previously validated the values you will be passing to this function.
|
|
52840
52883
|
*
|
|
52841
52884
|
* @returns {Array<MapGeoJSONFeature>} An array of MapGeoJSONFeature objects.
|
|
52842
52885
|
*
|
|
@@ -53628,7 +53671,7 @@ let Map$1 = class Map extends Camera {
|
|
|
53628
53671
|
* @param {Array | null | undefined} filter The filter, conforming to the MapLibre Style Specification's
|
|
53629
53672
|
* [filter definition](https://maplibre.org/maplibre-style-spec/layers/#filter). If `null` or `undefined` is provided, the function removes any existing filter from the layer.
|
|
53630
53673
|
* @param {Object} [options] Options object.
|
|
53631
|
-
* @param {boolean} [options.validate=true] Whether to check if the filter conforms to the MapLibre
|
|
53674
|
+
* @param {boolean} [options.validate=true] Whether to check if the filter conforms to the MapLibre Style Specification. Disabling validation is a performance optimization that should only be used if you have previously validated the values you will be passing to this function.
|
|
53632
53675
|
* @returns {Map} `this`
|
|
53633
53676
|
*
|
|
53634
53677
|
* @example
|
|
@@ -53664,7 +53707,7 @@ let Map$1 = class Map extends Camera {
|
|
|
53664
53707
|
* @param {*} value The value of the paint property to set.
|
|
53665
53708
|
* Must be of a type appropriate for the property, as defined in the [MapLibre Style Specification](https://maplibre.org/maplibre-style-spec/).
|
|
53666
53709
|
* @param {Object} [options] Options object.
|
|
53667
|
-
* @param {boolean} [options.validate=true] Whether to check if `value` conforms to the MapLibre
|
|
53710
|
+
* @param {boolean} [options.validate=true] Whether to check if `value` conforms to the MapLibre Style Specification. Disabling validation is a performance optimization that should only be used if you have previously validated the values you will be passing to this function.
|
|
53668
53711
|
* @returns {Map} `this`
|
|
53669
53712
|
* @example
|
|
53670
53713
|
* map.setPaintProperty('my-layer', 'fill-color', '#faafee');
|
|
@@ -53692,7 +53735,7 @@ let Map$1 = class Map extends Camera {
|
|
|
53692
53735
|
* @param {string} name The name of the layout property to set.
|
|
53693
53736
|
* @param {*} value The value of the layout property. Must be of a type appropriate for the property, as defined in the [MapLibre Style Specification](https://maplibre.org/maplibre-style-spec/).
|
|
53694
53737
|
* @param {Object} [options] Options object.
|
|
53695
|
-
* @param {boolean} [options.validate=true] Whether to check if `value` conforms to the MapLibre
|
|
53738
|
+
* @param {boolean} [options.validate=true] Whether to check if `value` conforms to the MapLibre Style Specification. Disabling validation is a performance optimization that should only be used if you have previously validated the values you will be passing to this function.
|
|
53696
53739
|
* @returns {Map} `this`
|
|
53697
53740
|
* @example
|
|
53698
53741
|
* map.setLayoutProperty('my-layer', 'visibility', 'none');
|
|
@@ -53716,7 +53759,7 @@ let Map$1 = class Map extends Camera {
|
|
|
53716
53759
|
*
|
|
53717
53760
|
* @param glyphsUrl Glyph URL to set. Must conform to the [MapLibre Style Specification](https://maplibre.org/maplibre-style-spec/glyphs/).
|
|
53718
53761
|
* @param {StyleSetterOptions} [options] Options object.
|
|
53719
|
-
* @param {boolean} [options.validate=true] Whether to check if the filter conforms to the MapLibre
|
|
53762
|
+
* @param {boolean} [options.validate=true] Whether to check if the filter conforms to the MapLibre Style Specification. Disabling validation is a performance optimization that should only be used if you have previously validated the values you will be passing to this function.
|
|
53720
53763
|
* @returns {Map} `this`
|
|
53721
53764
|
* @example
|
|
53722
53765
|
* map.setGlyphs('https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf');
|
|
@@ -53783,7 +53826,7 @@ let Map$1 = class Map extends Camera {
|
|
|
53783
53826
|
*
|
|
53784
53827
|
* @param spriteUrl Sprite URL to set.
|
|
53785
53828
|
* @param {StyleSetterOptions} [options] Options object.
|
|
53786
|
-
* @param {boolean} [options.validate=true] Whether to check if the filter conforms to the MapLibre
|
|
53829
|
+
* @param {boolean} [options.validate=true] Whether to check if the filter conforms to the MapLibre Style Specification. Disabling validation is a performance optimization that should only be used if you have previously validated the values you will be passing to this function.
|
|
53787
53830
|
* @returns {Map} `this`
|
|
53788
53831
|
* @example
|
|
53789
53832
|
* map.setSprite('YOUR_SPRITE_URL');
|
|
@@ -53802,7 +53845,7 @@ let Map$1 = class Map extends Camera {
|
|
|
53802
53845
|
*
|
|
53803
53846
|
* @param light Light properties to set. Must conform to the [MapLibre Style Specification](https://maplibre.org/maplibre-style-spec/#light).
|
|
53804
53847
|
* @param {Object} [options] Options object.
|
|
53805
|
-
* @param {boolean} [options.validate=true] Whether to check if the filter conforms to the MapLibre
|
|
53848
|
+
* @param {boolean} [options.validate=true] Whether to check if the filter conforms to the MapLibre Style Specification. Disabling validation is a performance optimization that should only be used if you have previously validated the values you will be passing to this function.
|
|
53806
53849
|
* @returns {Map} `this`
|
|
53807
53850
|
* @example
|
|
53808
53851
|
* var layerVisibility = map.getLayoutProperty('my-layer', 'visibility');
|
|
@@ -54060,7 +54103,8 @@ let Map$1 = class Map extends Camera {
|
|
|
54060
54103
|
webglcontextcreationerrorDetailObject.type = args.type;
|
|
54061
54104
|
}
|
|
54062
54105
|
}, { once: true });
|
|
54063
|
-
const gl = this._canvas.getContext('webgl2', attributes)
|
|
54106
|
+
const gl = this._canvas.getContext('webgl2', attributes) ||
|
|
54107
|
+
this._canvas.getContext('webgl', attributes);
|
|
54064
54108
|
if (!gl) {
|
|
54065
54109
|
const msg = 'Failed to initialize WebGL';
|
|
54066
54110
|
if (webglcontextcreationerrorDetailObject) {
|
|
@@ -54483,10 +54527,10 @@ const defaultOptions$3 = {
|
|
|
54483
54527
|
* A `NavigationControl` control contains zoom buttons and a compass.
|
|
54484
54528
|
*
|
|
54485
54529
|
* @implements {IControl}
|
|
54486
|
-
* @param {
|
|
54487
|
-
* @param {
|
|
54488
|
-
* @param {
|
|
54489
|
-
* @param {
|
|
54530
|
+
* @param {NavigationOptions} [options]
|
|
54531
|
+
* @param {boolean} [options.showCompass=true] If `true` the compass button is included.
|
|
54532
|
+
* @param {boolean} [options.showZoom=true] If `true` the zoom-in and zoom-out buttons are included.
|
|
54533
|
+
* @param {boolean} [options.visualizePitch=false] If `true` the pitch is visualized by rotating X-axis of compass.
|
|
54490
54534
|
* @example
|
|
54491
54535
|
* var nav = new maplibregl.NavigationControl();
|
|
54492
54536
|
* map.addControl(nav, 'top-left');
|
|
@@ -54805,9 +54849,9 @@ function applyAnchorClass(element, anchor, prefix) {
|
|
|
54805
54849
|
|
|
54806
54850
|
/**
|
|
54807
54851
|
* Creates a marker component
|
|
54808
|
-
* @param {
|
|
54852
|
+
* @param {MarkerOptions} [options]
|
|
54809
54853
|
* @param {HTMLElement} [options.element] DOM element to use as a marker. The default is a light blue, droplet-shaped SVG marker.
|
|
54810
|
-
* @param {
|
|
54854
|
+
* @param {PositionAnchor} [options.anchor='center'] A string indicating the part of the Marker that should be positioned closest to the coordinate set via {@link Marker#setLngLat}.
|
|
54811
54855
|
* Options are `'center'`, `'top'`, `'bottom'`, `'left'`, `'right'`, `'top-left'`, `'top-right'`, `'bottom-left'`, and `'bottom-right'`.
|
|
54812
54856
|
* @param {PointLike} [options.offset] The offset in pixels as a {@link PointLike} object to apply relative to the element's center. Negatives indicate left and up.
|
|
54813
54857
|
* @param {string} [options.color='#3FB1CE'] The color to use for the default marker if options.element is not provided. The default is light blue.
|
|
@@ -55407,12 +55451,12 @@ let noTimeout = false;
|
|
|
55407
55451
|
* These interaction states can't be controlled programmatically, rather they are set based on user interactions.
|
|
55408
55452
|
*
|
|
55409
55453
|
* @implements {IControl}
|
|
55410
|
-
* @param {
|
|
55411
|
-
* @param {
|
|
55412
|
-
* @param {
|
|
55413
|
-
* @param {
|
|
55414
|
-
* @param {
|
|
55415
|
-
* @param {
|
|
55454
|
+
* @param {GeolocateOptions} [options]
|
|
55455
|
+
* @param {PositionOptions} [options.positionOptions={enableHighAccuracy: false, timeout: 6000}] A Geolocation API [PositionOptions](https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions) object.
|
|
55456
|
+
* @param {FitBoundsOptions} [options.fitBoundsOptions={maxZoom: 15}] A {@link Map#fitBounds} options object to use when the map is panned and zoomed to the user's location. The default is to use a `maxZoom` of 15 to limit how far the map will zoom in for very accurate locations.
|
|
55457
|
+
* @param {boolean} [options.trackUserLocation=false] If `true` the Geolocate Control becomes a toggle button and when active the map will receive updates to the user's location as it changes.
|
|
55458
|
+
* @param {boolean} [options.showAccuracyCircle=true] By default, if showUserLocation is `true`, a transparent circle will be drawn around the user location indicating the accuracy (95% confidence level) of the user's location. Set to `false` to disable. Always disabled when showUserLocation is `false`.
|
|
55459
|
+
* @param {boolean} [options.showUserLocation=true] By default a dot will be shown on the map at the user's location. Set to `false` to disable.
|
|
55416
55460
|
*
|
|
55417
55461
|
* @example
|
|
55418
55462
|
* map.addControl(new maplibregl.GeolocateControl({
|
|
@@ -55965,7 +56009,7 @@ const defaultOptions$1 = {
|
|
|
55965
56009
|
* A `ScaleControl` control displays the ratio of a distance on the map to the corresponding distance on the ground.
|
|
55966
56010
|
*
|
|
55967
56011
|
* @implements {IControl}
|
|
55968
|
-
* @param {
|
|
56012
|
+
* @param {ScaleOptions} [options]
|
|
55969
56013
|
* @param {number} [options.maxWidth='100'] The maximum length of the scale control in pixels.
|
|
55970
56014
|
* @param {string} [options.unit='metric'] Unit of the distance (`'imperial'`, `'metric'` or `'nautical'`).
|
|
55971
56015
|
* @example
|
|
@@ -56075,7 +56119,7 @@ function getRoundNum(num) {
|
|
|
56075
56119
|
* is in fullscreen mode, and is restored when the map exist fullscreen mode.
|
|
56076
56120
|
*
|
|
56077
56121
|
* @implements {IControl}
|
|
56078
|
-
* @param {
|
|
56122
|
+
* @param {FullscreenOptions} [options]
|
|
56079
56123
|
* @param {HTMLElement} [options.container] `container` is the [compatible DOM element](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen#Compatible_elements) which should be made full screen. By default, the map container element will be made full screen.
|
|
56080
56124
|
*
|
|
56081
56125
|
* @example
|
|
@@ -56232,13 +56276,12 @@ class FullscreenControl extends performance.Evented {
|
|
|
56232
56276
|
}
|
|
56233
56277
|
|
|
56234
56278
|
/**
|
|
56235
|
-
*
|
|
56279
|
+
* A `TerrainControl` control contains a button for turning the terrain on and off.
|
|
56236
56280
|
*
|
|
56237
56281
|
* @implements {IControl}
|
|
56238
|
-
* @param {
|
|
56239
|
-
* @param {string} [options.
|
|
56240
|
-
* @param {
|
|
56241
|
-
* @param {number} [options.options.exaggeration]
|
|
56282
|
+
* @param {TerrainSpecification} [options]
|
|
56283
|
+
* @param {string} [options.source] The ID of the raster-dem source to use.
|
|
56284
|
+
* @param {number} [options.exaggeration]
|
|
56242
56285
|
* @example
|
|
56243
56286
|
* var map = new maplibregl.Map({TerrainControl: false})
|
|
56244
56287
|
* .addControl(new maplibregl.TerrainControl({
|
|
@@ -56311,7 +56354,7 @@ const focusQuerySelector = [
|
|
|
56311
56354
|
/**
|
|
56312
56355
|
* A popup component.
|
|
56313
56356
|
*
|
|
56314
|
-
* @param {
|
|
56357
|
+
* @param {PopupOptions} [options]
|
|
56315
56358
|
* @param {boolean} [options.closeButton=true] If `true`, a close button will appear in the
|
|
56316
56359
|
* top right corner of the popup.
|
|
56317
56360
|
* @param {boolean} [options.closeOnClick=true] If `true`, the popup will closed when the
|
|
@@ -56320,7 +56363,7 @@ const focusQuerySelector = [
|
|
|
56320
56363
|
* map moves.
|
|
56321
56364
|
* @param {boolean} [options.focusAfterOpen=true] If `true`, the popup will try to focus the
|
|
56322
56365
|
* first focusable element inside the popup.
|
|
56323
|
-
* @param {
|
|
56366
|
+
* @param {PositionAnchor} [options.anchor] - A string indicating the part of the Popup that should
|
|
56324
56367
|
* be positioned closest to the coordinate set via {@link Popup#setLngLat}.
|
|
56325
56368
|
* Options are `'center'`, `'top'`, `'bottom'`, `'left'`, `'right'`, `'top-left'`,
|
|
56326
56369
|
* `'top-right'`, `'bottom-left'`, and `'bottom-right'`. If unset the anchor will be
|