@scoova/mgl 1.0.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/LICENSE.txt +116 -0
- package/README.md +174 -0
- package/build/banner.ts +12 -0
- package/build/bump-version-changelog.js +26 -0
- package/build/check-bundle-size.js +77 -0
- package/build/generate-dist-package.js +26 -0
- package/build/generate-doc-images.ts +78 -0
- package/build/generate-docs.ts +190 -0
- package/build/generate-shaders.ts +68 -0
- package/build/generate-struct-arrays.ts +438 -0
- package/build/generate-style-code.ts +283 -0
- package/build/readme.md +56 -0
- package/build/release-notes.js +45 -0
- package/build/rollup/bundle_prelude.js +29 -0
- package/build/rollup/maplibregl.js +22 -0
- package/build/rollup_plugins.ts +58 -0
- package/dist/LICENSE.txt +116 -0
- package/dist/maplibre-gl.css +1 -0
- package/dist/maplibre-gl.d.ts +13304 -0
- package/dist/maplibre-gl.js +59 -0
- package/dist/maplibre-gl.js.map +1 -0
- package/dist/package.json +1 -0
- package/package.json +192 -0
- package/src/css/maplibre-gl.css +854 -0
- package/src/css/svg/maplibregl-ctrl-attrib.svg +3 -0
- package/src/css/svg/maplibregl-ctrl-compass.svg +4 -0
- package/src/css/svg/maplibregl-ctrl-fullscreen.svg +3 -0
- package/src/css/svg/maplibregl-ctrl-geolocate.svg +5 -0
- package/src/css/svg/maplibregl-ctrl-logo.svg +11 -0
- package/src/css/svg/maplibregl-ctrl-shrink.svg +3 -0
- package/src/css/svg/maplibregl-ctrl-terrain.svg +3 -0
- package/src/css/svg/maplibregl-ctrl-zoom-in.svg +3 -0
- package/src/css/svg/maplibregl-ctrl-zoom-out.svg +3 -0
- package/src/data/array_types.g.ts +1130 -0
- package/src/data/bucket/circle_attributes.ts +8 -0
- package/src/data/bucket/circle_bucket.ts +197 -0
- package/src/data/bucket/fill_attributes.ts +8 -0
- package/src/data/bucket/fill_bucket.test.ts +95 -0
- package/src/data/bucket/fill_bucket.ts +228 -0
- package/src/data/bucket/fill_extrusion_attributes.ts +13 -0
- package/src/data/bucket/fill_extrusion_bucket.ts +305 -0
- package/src/data/bucket/heatmap_bucket.ts +12 -0
- package/src/data/bucket/line_attributes.ts +8 -0
- package/src/data/bucket/line_attributes_ext.ts +8 -0
- package/src/data/bucket/line_bucket.test.ts +142 -0
- package/src/data/bucket/line_bucket.ts +592 -0
- package/src/data/bucket/pattern_attributes.ts +9 -0
- package/src/data/bucket/pattern_bucket_features.ts +57 -0
- package/src/data/bucket/symbol_attributes.ts +122 -0
- package/src/data/bucket/symbol_bucket.test.ts +243 -0
- package/src/data/bucket/symbol_bucket.ts +975 -0
- package/src/data/bucket.ts +123 -0
- package/src/data/dem_data.test.ts +237 -0
- package/src/data/dem_data.ts +171 -0
- package/src/data/evaluation_feature.ts +18 -0
- package/src/data/extent.ts +13 -0
- package/src/data/feature_index.ts +337 -0
- package/src/data/feature_position_map.test.ts +33 -0
- package/src/data/feature_position_map.ts +126 -0
- package/src/data/index_array_type.ts +9 -0
- package/src/data/load_geometry.test.ts +49 -0
- package/src/data/load_geometry.ts +44 -0
- package/src/data/pos3d_attributes.ts +5 -0
- package/src/data/pos_attributes.ts +5 -0
- package/src/data/program_configuration.ts +735 -0
- package/src/data/raster_bounds_attributes.ts +6 -0
- package/src/data/segment.ts +89 -0
- package/src/geo/edge_insets.test.ts +83 -0
- package/src/geo/edge_insets.ts +146 -0
- package/src/geo/lng_lat.test.ts +65 -0
- package/src/geo/lng_lat.ts +169 -0
- package/src/geo/lng_lat_bounds.test.ts +357 -0
- package/src/geo/lng_lat_bounds.ts +356 -0
- package/src/geo/mercator_coordinate.test.ts +34 -0
- package/src/geo/mercator_coordinate.ts +157 -0
- package/src/geo/projection/projection.ts +72 -0
- package/src/geo/transform.test.ts +509 -0
- package/src/geo/transform.ts +1072 -0
- package/src/gl/color_mode.ts +31 -0
- package/src/gl/context.ts +321 -0
- package/src/gl/cull_face_mode.ts +22 -0
- package/src/gl/depth_mode.ts +26 -0
- package/src/gl/framebuffer.ts +48 -0
- package/src/gl/index_buffer.ts +55 -0
- package/src/gl/render_pool.test.ts +69 -0
- package/src/gl/render_pool.ts +93 -0
- package/src/gl/state.test.ts +125 -0
- package/src/gl/stencil_mode.ts +27 -0
- package/src/gl/types.ts +59 -0
- package/src/gl/value.ts +534 -0
- package/src/gl/vertex_buffer.test.ts +57 -0
- package/src/gl/vertex_buffer.ts +111 -0
- package/src/gl/webgl2.ts +12 -0
- package/src/index.test.ts +121 -0
- package/src/index.ts +250 -0
- package/src/render/draw_background.ts +53 -0
- package/src/render/draw_circle.ts +113 -0
- package/src/render/draw_collision_debug.ts +168 -0
- package/src/render/draw_custom.test.ts +73 -0
- package/src/render/draw_custom.ts +45 -0
- package/src/render/draw_debug.test.ts +122 -0
- package/src/render/draw_debug.ts +148 -0
- package/src/render/draw_fill.test.ts +137 -0
- package/src/render/draw_fill.ts +128 -0
- package/src/render/draw_fill_extrusion.ts +97 -0
- package/src/render/draw_heatmap.ts +228 -0
- package/src/render/draw_hillshade.ts +119 -0
- package/src/render/draw_line.ts +125 -0
- package/src/render/draw_raster.ts +133 -0
- package/src/render/draw_sky.ts +44 -0
- package/src/render/draw_symbol.test.ts +223 -0
- package/src/render/draw_symbol.ts +499 -0
- package/src/render/draw_terrain.ts +99 -0
- package/src/render/glyph_atlas.ts +83 -0
- package/src/render/glyph_manager.test.ts +147 -0
- package/src/render/glyph_manager.ts +198 -0
- package/src/render/image_atlas.ts +159 -0
- package/src/render/image_manager.ts +337 -0
- package/src/render/line_atlas.test.ts +38 -0
- package/src/render/line_atlas.ts +214 -0
- package/src/render/mesh.ts +25 -0
- package/src/render/painter.test.ts +51 -0
- package/src/render/painter.ts +666 -0
- package/src/render/program/background_program.ts +100 -0
- package/src/render/program/circle_program.ts +61 -0
- package/src/render/program/clipping_mask_program.ts +19 -0
- package/src/render/program/collision_program.ts +47 -0
- package/src/render/program/debug_program.ts +29 -0
- package/src/render/program/fill_extrusion_program.ts +120 -0
- package/src/render/program/fill_program.ts +121 -0
- package/src/render/program/heatmap_program.ts +76 -0
- package/src/render/program/hillshade_program.ts +116 -0
- package/src/render/program/line_program.ts +207 -0
- package/src/render/program/pattern.ts +102 -0
- package/src/render/program/program_uniforms.ts +46 -0
- package/src/render/program/raster_program.ts +88 -0
- package/src/render/program/sky_program.ts +28 -0
- package/src/render/program/symbol_program.ts +266 -0
- package/src/render/program/terrain_program.ts +116 -0
- package/src/render/program.ts +233 -0
- package/src/render/render_to_texture.test.ts +151 -0
- package/src/render/render_to_texture.ts +197 -0
- package/src/render/terrain.test.ts +322 -0
- package/src/render/terrain.ts +464 -0
- package/src/render/texture.ts +114 -0
- package/src/render/uniform_binding.test.ts +122 -0
- package/src/render/uniform_binding.ts +157 -0
- package/src/render/update_pattern_positions_in_program.test.ts +74 -0
- package/src/render/update_pattern_positions_in_program.ts +50 -0
- package/src/render/vertex_array_object.ts +163 -0
- package/src/shaders/README.md +42 -0
- package/src/shaders/_prelude.fragment.glsl +19 -0
- package/src/shaders/_prelude.fragment.glsl.g.ts +2 -0
- package/src/shaders/_prelude.vertex.glsl +148 -0
- package/src/shaders/_prelude.vertex.glsl.g.ts +2 -0
- package/src/shaders/background.fragment.glsl +10 -0
- package/src/shaders/background.fragment.glsl.g.ts +2 -0
- package/src/shaders/background.vertex.glsl +7 -0
- package/src/shaders/background.vertex.glsl.g.ts +2 -0
- package/src/shaders/background_pattern.fragment.glsl +28 -0
- package/src/shaders/background_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/background_pattern.vertex.glsl +19 -0
- package/src/shaders/background_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/circle.fragment.glsl +34 -0
- package/src/shaders/circle.fragment.glsl.g.ts +2 -0
- package/src/shaders/circle.vertex.glsl +68 -0
- package/src/shaders/circle.vertex.glsl.g.ts +2 -0
- package/src/shaders/clipping_mask.fragment.glsl +3 -0
- package/src/shaders/clipping_mask.fragment.glsl.g.ts +2 -0
- package/src/shaders/clipping_mask.vertex.glsl +7 -0
- package/src/shaders/clipping_mask.vertex.glsl.g.ts +2 -0
- package/src/shaders/collision_box.fragment.glsl +20 -0
- package/src/shaders/collision_box.fragment.glsl.g.ts +2 -0
- package/src/shaders/collision_box.vertex.glsl +27 -0
- package/src/shaders/collision_box.vertex.glsl.g.ts +2 -0
- package/src/shaders/collision_circle.fragment.glsl +17 -0
- package/src/shaders/collision_circle.fragment.glsl.g.ts +2 -0
- package/src/shaders/collision_circle.vertex.glsl +59 -0
- package/src/shaders/collision_circle.vertex.glsl.g.ts +2 -0
- package/src/shaders/debug.fragment.glsl +9 -0
- package/src/shaders/debug.fragment.glsl.g.ts +2 -0
- package/src/shaders/debug.vertex.glsl +12 -0
- package/src/shaders/debug.vertex.glsl.g.ts +2 -0
- package/src/shaders/encode_attribute.test.ts +11 -0
- package/src/shaders/encode_attribute.ts +13 -0
- package/src/shaders/fill.fragment.glsl +13 -0
- package/src/shaders/fill.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill.vertex.glsl +13 -0
- package/src/shaders/fill.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_extrusion.fragment.glsl +9 -0
- package/src/shaders/fill_extrusion.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_extrusion.vertex.glsl +84 -0
- package/src/shaders/fill_extrusion.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_extrusion_pattern.fragment.glsl +47 -0
- package/src/shaders/fill_extrusion_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_extrusion_pattern.vertex.glsl +96 -0
- package/src/shaders/fill_extrusion_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_outline.fragment.glsl +17 -0
- package/src/shaders/fill_outline.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_outline.vertex.glsl +17 -0
- package/src/shaders/fill_outline.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_outline_pattern.fragment.glsl +43 -0
- package/src/shaders/fill_outline_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_outline_pattern.vertex.glsl +44 -0
- package/src/shaders/fill_outline_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_pattern.fragment.glsl +39 -0
- package/src/shaders/fill_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_pattern.vertex.glsl +39 -0
- package/src/shaders/fill_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/heatmap.fragment.glsl +22 -0
- package/src/shaders/heatmap.fragment.glsl.g.ts +2 -0
- package/src/shaders/heatmap.vertex.glsl +54 -0
- package/src/shaders/heatmap.vertex.glsl.g.ts +2 -0
- package/src/shaders/heatmap_texture.fragment.glsl +15 -0
- package/src/shaders/heatmap_texture.fragment.glsl.g.ts +2 -0
- package/src/shaders/heatmap_texture.vertex.glsl +11 -0
- package/src/shaders/heatmap_texture.vertex.glsl.g.ts +2 -0
- package/src/shaders/hillshade.fragment.glsl +52 -0
- package/src/shaders/hillshade.fragment.glsl.g.ts +2 -0
- package/src/shaders/hillshade.vertex.glsl +11 -0
- package/src/shaders/hillshade.vertex.glsl.g.ts +2 -0
- package/src/shaders/hillshade_prepare.fragment.glsl +77 -0
- package/src/shaders/hillshade_prepare.fragment.glsl.g.ts +2 -0
- package/src/shaders/hillshade_prepare.vertex.glsl +15 -0
- package/src/shaders/hillshade_prepare.vertex.glsl.g.ts +2 -0
- package/src/shaders/line.fragment.glsl +30 -0
- package/src/shaders/line.fragment.glsl.g.ts +2 -0
- package/src/shaders/line.vertex.glsl +89 -0
- package/src/shaders/line.vertex.glsl.g.ts +2 -0
- package/src/shaders/line_gradient.fragment.glsl +34 -0
- package/src/shaders/line_gradient.fragment.glsl.g.ts +2 -0
- package/src/shaders/line_gradient.vertex.glsl +92 -0
- package/src/shaders/line_gradient.vertex.glsl.g.ts +2 -0
- package/src/shaders/line_pattern.fragment.glsl +77 -0
- package/src/shaders/line_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/line_pattern.vertex.glsl +103 -0
- package/src/shaders/line_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/line_sdf.fragment.glsl +45 -0
- package/src/shaders/line_sdf.fragment.glsl.g.ts +2 -0
- package/src/shaders/line_sdf.vertex.glsl +101 -0
- package/src/shaders/line_sdf.vertex.glsl.g.ts +2 -0
- package/src/shaders/raster.fragment.glsl +53 -0
- package/src/shaders/raster.fragment.glsl.g.ts +2 -0
- package/src/shaders/raster.vertex.glsl +21 -0
- package/src/shaders/raster.vertex.glsl.g.ts +2 -0
- package/src/shaders/shaders.ts +197 -0
- package/src/shaders/sky.fragment.glsl +17 -0
- package/src/shaders/sky.fragment.glsl.g.ts +2 -0
- package/src/shaders/sky.vertex.glsl +5 -0
- package/src/shaders/sky.vertex.glsl.g.ts +2 -0
- package/src/shaders/symbol_icon.fragment.glsl +17 -0
- package/src/shaders/symbol_icon.fragment.glsl.g.ts +2 -0
- package/src/shaders/symbol_icon.vertex.glsl +117 -0
- package/src/shaders/symbol_icon.vertex.glsl.g.ts +2 -0
- package/src/shaders/symbol_sdf.fragment.glsl +58 -0
- package/src/shaders/symbol_sdf.fragment.glsl.g.ts +2 -0
- package/src/shaders/symbol_sdf.vertex.glsl +142 -0
- package/src/shaders/symbol_sdf.vertex.glsl.g.ts +2 -0
- package/src/shaders/symbol_text_and_icon.fragment.glsl +68 -0
- package/src/shaders/symbol_text_and_icon.fragment.glsl.g.ts +2 -0
- package/src/shaders/symbol_text_and_icon.vertex.glsl +140 -0
- package/src/shaders/symbol_text_and_icon.vertex.glsl.g.ts +2 -0
- package/src/shaders/terrain.fragment.glsl +32 -0
- package/src/shaders/terrain.fragment.glsl.g.ts +2 -0
- package/src/shaders/terrain.vertex.glsl +17 -0
- package/src/shaders/terrain.vertex.glsl.g.ts +2 -0
- package/src/shaders/terrain_coords.fragment.glsl +11 -0
- package/src/shaders/terrain_coords.fragment.glsl.g.ts +2 -0
- package/src/shaders/terrain_coords.vertex.glsl +13 -0
- package/src/shaders/terrain_coords.vertex.glsl.g.ts +2 -0
- package/src/shaders/terrain_depth.fragment.glsl +15 -0
- package/src/shaders/terrain_depth.fragment.glsl.g.ts +2 -0
- package/src/shaders/terrain_depth.vertex.glsl +13 -0
- package/src/shaders/terrain_depth.vertex.glsl.g.ts +2 -0
- package/src/source/canvas_source.test.ts +210 -0
- package/src/source/canvas_source.ts +227 -0
- package/src/source/geojson_source.test.ts +492 -0
- package/src/source/geojson_source.ts +431 -0
- package/src/source/geojson_source_diff.test.ts +364 -0
- package/src/source/geojson_source_diff.ts +172 -0
- package/src/source/geojson_worker_source.test.ts +399 -0
- package/src/source/geojson_worker_source.ts +303 -0
- package/src/source/geojson_wrapper.test.ts +32 -0
- package/src/source/geojson_wrapper.ts +81 -0
- package/src/source/image_source.test.ts +235 -0
- package/src/source/image_source.ts +338 -0
- package/src/source/load_tilejson.ts +47 -0
- package/src/source/pixels_to_tile_units.ts +25 -0
- package/src/source/protocol_crud.ts +48 -0
- package/src/source/query_features.test.ts +31 -0
- package/src/source/query_features.ts +252 -0
- package/src/source/raster_dem_tile_source.test.ts +158 -0
- package/src/source/raster_dem_tile_source.ts +166 -0
- package/src/source/raster_dem_tile_worker_source.test.ts +36 -0
- package/src/source/raster_dem_tile_worker_source.ts +38 -0
- package/src/source/raster_tile_source.test.ts +206 -0
- package/src/source/raster_tile_source.ts +227 -0
- package/src/source/rtl_text_plugin_main_thread.test.ts +170 -0
- package/src/source/rtl_text_plugin_main_thread.ts +89 -0
- package/src/source/rtl_text_plugin_status.ts +33 -0
- package/src/source/rtl_text_plugin_worker.ts +49 -0
- package/src/source/source.test.ts +41 -0
- package/src/source/source.ts +186 -0
- package/src/source/source_cache.test.ts +2069 -0
- package/src/source/source_cache.ts +1102 -0
- package/src/source/source_state.ts +157 -0
- package/src/source/terrain_source_cache.test.ts +105 -0
- package/src/source/terrain_source_cache.ts +204 -0
- package/src/source/tile.test.ts +290 -0
- package/src/source/tile.ts +478 -0
- package/src/source/tile_bounds.ts +34 -0
- package/src/source/tile_cache.test.ts +130 -0
- package/src/source/tile_cache.ts +208 -0
- package/src/source/tile_id.test.ts +112 -0
- package/src/source/tile_id.ts +221 -0
- package/src/source/vector_tile_source.test.ts +401 -0
- package/src/source/vector_tile_source.ts +283 -0
- package/src/source/vector_tile_worker_source.test.ts +396 -0
- package/src/source/vector_tile_worker_source.ts +199 -0
- package/src/source/video_source.test.ts +124 -0
- package/src/source/video_source.ts +204 -0
- package/src/source/worker.test.ts +233 -0
- package/src/source/worker.ts +301 -0
- package/src/source/worker_source.ts +117 -0
- package/src/source/worker_tile.test.ts +226 -0
- package/src/source/worker_tile.ts +208 -0
- package/src/style/create_style_layer.ts +39 -0
- package/src/style/evaluation_parameters.ts +62 -0
- package/src/style/format_section_override.test.ts +62 -0
- package/src/style/format_section_override.ts +50 -0
- package/src/style/light.test.ts +86 -0
- package/src/style/light.ts +135 -0
- package/src/style/load_glyph_range.test.ts +40 -0
- package/src/style/load_glyph_range.ts +32 -0
- package/src/style/load_sprite.test.ts +227 -0
- package/src/style/load_sprite.ts +71 -0
- package/src/style/parse_glyph_pbf.ts +42 -0
- package/src/style/pauseable_placement.ts +138 -0
- package/src/style/properties.ts +726 -0
- package/src/style/query_utils.test.ts +107 -0
- package/src/style/query_utils.ts +70 -0
- package/src/style/sky.ts +127 -0
- package/src/style/style.test.ts +2654 -0
- package/src/style/style.ts +1814 -0
- package/src/style/style_glyph.ts +25 -0
- package/src/style/style_image.ts +188 -0
- package/src/style/style_layer/background_style_layer.ts +17 -0
- package/src/style/style_layer/background_style_layer_properties.g.ts +40 -0
- package/src/style/style_layer/circle_style_layer.ts +98 -0
- package/src/style/style_layer/circle_style_layer_properties.g.ts +76 -0
- package/src/style/style_layer/custom_style_layer.ts +233 -0
- package/src/style/style_layer/fill_extrusion_style_layer.ts +224 -0
- package/src/style/style_layer/fill_extrusion_style_layer_properties.g.ts +55 -0
- package/src/style/style_layer/fill_style_layer.test.ts +37 -0
- package/src/style/style_layer/fill_style_layer.ts +65 -0
- package/src/style/style_layer/fill_style_layer_properties.g.ts +64 -0
- package/src/style/style_layer/heatmap_style_layer.ts +74 -0
- package/src/style/style_layer/heatmap_style_layer_properties.g.ts +46 -0
- package/src/style/style_layer/hillshade_style_layer.ts +21 -0
- package/src/style/style_layer/hillshade_style_layer_properties.g.ts +49 -0
- package/src/style/style_layer/line_style_layer.test.ts +50 -0
- package/src/style/style_layer/line_style_layer.ts +131 -0
- package/src/style/style_layer/line_style_layer_properties.g.ts +88 -0
- package/src/style/style_layer/overlap_mode.test.ts +57 -0
- package/src/style/style_layer/overlap_mode.ts +25 -0
- package/src/style/style_layer/raster_style_layer.ts +17 -0
- package/src/style/style_layer/raster_style_layer_properties.g.ts +55 -0
- package/src/style/style_layer/symbol_style_layer.ts +195 -0
- package/src/style/style_layer/symbol_style_layer_properties.g.ts +218 -0
- package/src/style/style_layer/typed_style_layer.ts +9 -0
- package/src/style/style_layer/variable_text_anchor.test.ts +117 -0
- package/src/style/style_layer/variable_text_anchor.ts +163 -0
- package/src/style/style_layer.test.ts +372 -0
- package/src/style/style_layer.ts +287 -0
- package/src/style/style_layer_index.test.ts +99 -0
- package/src/style/style_layer_index.ts +78 -0
- package/src/style/validate_style.ts +53 -0
- package/src/style/zoom_history.ts +40 -0
- package/src/symbol/anchor.test.ts +14 -0
- package/src/symbol/anchor.ts +22 -0
- package/src/symbol/check_max_angle.test.ts +54 -0
- package/src/symbol/check_max_angle.ts +76 -0
- package/src/symbol/clip_line.test.ts +154 -0
- package/src/symbol/clip_line.ts +66 -0
- package/src/symbol/collision_feature.test.ts +98 -0
- package/src/symbol/collision_feature.ts +114 -0
- package/src/symbol/collision_index.test.ts +19 -0
- package/src/symbol/collision_index.ts +618 -0
- package/src/symbol/cross_tile_symbol_index.test.ts +260 -0
- package/src/symbol/cross_tile_symbol_index.ts +367 -0
- package/src/symbol/get_anchors.test.ts +113 -0
- package/src/symbol/get_anchors.ts +167 -0
- package/src/symbol/grid_index.test.ts +75 -0
- package/src/symbol/grid_index.ts +414 -0
- package/src/symbol/merge_lines.test.ts +30 -0
- package/src/symbol/merge_lines.ts +80 -0
- package/src/symbol/one_em.ts +3 -0
- package/src/symbol/opacity_state.ts +23 -0
- package/src/symbol/path_interpolator.test.ts +134 -0
- package/src/symbol/path_interpolator.ts +55 -0
- package/src/symbol/placement.ts +1371 -0
- package/src/symbol/projection.test.ts +171 -0
- package/src/symbol/projection.ts +833 -0
- package/src/symbol/quads.test.ts +157 -0
- package/src/symbol/quads.ts +349 -0
- package/src/symbol/shaping.test.ts +360 -0
- package/src/symbol/shaping.ts +911 -0
- package/src/symbol/symbol_layout.ts +739 -0
- package/src/symbol/symbol_size.ts +129 -0
- package/src/symbol/symbol_style_layer.test.ts +103 -0
- package/src/symbol/transform_text.ts +27 -0
- package/src/ui/anchor.ts +27 -0
- package/src/ui/camera.test.ts +2301 -0
- package/src/ui/camera.ts +1520 -0
- package/src/ui/control/attribution_control.test.ts +543 -0
- package/src/ui/control/attribution_control.ts +209 -0
- package/src/ui/control/control.ts +67 -0
- package/src/ui/control/fullscreen_control.test.ts +114 -0
- package/src/ui/control/fullscreen_control.ts +189 -0
- package/src/ui/control/geolocate_control.test.ts +619 -0
- package/src/ui/control/geolocate_control.ts +725 -0
- package/src/ui/control/logo_control.test.ts +88 -0
- package/src/ui/control/logo_control.ts +86 -0
- package/src/ui/control/navigation_control.test.ts +238 -0
- package/src/ui/control/navigation_control.ts +294 -0
- package/src/ui/control/scale_control.test.ts +52 -0
- package/src/ui/control/scale_control.ts +152 -0
- package/src/ui/control/terrain_control.test.ts +58 -0
- package/src/ui/control/terrain_control.ts +74 -0
- package/src/ui/default_locale.ts +25 -0
- package/src/ui/events.ts +758 -0
- package/src/ui/handler/box_zoom.test.ts +163 -0
- package/src/ui/handler/box_zoom.ts +171 -0
- package/src/ui/handler/click_zoom.ts +55 -0
- package/src/ui/handler/cooperative_gestures.test.ts +338 -0
- package/src/ui/handler/cooperative_gestures.ts +111 -0
- package/src/ui/handler/dblclick_zoom.test.ts +151 -0
- package/src/ui/handler/drag_handler.ts +174 -0
- package/src/ui/handler/drag_move_state_manager.ts +115 -0
- package/src/ui/handler/drag_pan.test.ts +487 -0
- package/src/ui/handler/drag_rotate.test.ts +859 -0
- package/src/ui/handler/handler_util.ts +10 -0
- package/src/ui/handler/keyboard.test.ts +235 -0
- package/src/ui/handler/keyboard.ts +212 -0
- package/src/ui/handler/map_event.test.ts +158 -0
- package/src/ui/handler/map_event.ts +161 -0
- package/src/ui/handler/mouse.ts +92 -0
- package/src/ui/handler/mouse_handler_interface.test.ts +111 -0
- package/src/ui/handler/mouse_rotate.test.ts +62 -0
- package/src/ui/handler/one_finger_touch_drag.ts +45 -0
- package/src/ui/handler/one_finger_touch_drag_handler_interface.test.ts +77 -0
- package/src/ui/handler/scroll_zoom.test.ts +382 -0
- package/src/ui/handler/scroll_zoom.ts +379 -0
- package/src/ui/handler/shim/dblclick_zoom.ts +64 -0
- package/src/ui/handler/shim/drag_pan.ts +104 -0
- package/src/ui/handler/shim/drag_rotate.ts +76 -0
- package/src/ui/handler/shim/two_fingers_touch.ts +112 -0
- package/src/ui/handler/tap_drag_zoom.test.ts +113 -0
- package/src/ui/handler/tap_drag_zoom.ts +112 -0
- package/src/ui/handler/tap_recognizer.ts +138 -0
- package/src/ui/handler/tap_zoom.ts +98 -0
- package/src/ui/handler/touch_pan.ts +115 -0
- package/src/ui/handler/transform-provider.ts +44 -0
- package/src/ui/handler/two_fingers_touch.test.ts +283 -0
- package/src/ui/handler/two_fingers_touch.ts +336 -0
- package/src/ui/handler_inertia.ts +157 -0
- package/src/ui/handler_manager.ts +637 -0
- package/src/ui/hash.test.ts +404 -0
- package/src/ui/hash.ts +153 -0
- package/src/ui/map.ts +3393 -0
- package/src/ui/map_tests/map_animation.test.ts +61 -0
- package/src/ui/map_tests/map_basic.test.ts +223 -0
- package/src/ui/map_tests/map_bounds.test.ts +123 -0
- package/src/ui/map_tests/map_calculate_camera_options.test.ts +113 -0
- package/src/ui/map_tests/map_canvas.test.ts +59 -0
- package/src/ui/map_tests/map_control.test.ts +61 -0
- package/src/ui/map_tests/map_disable_handlers.test.ts +38 -0
- package/src/ui/map_tests/map_events.test.ts +1001 -0
- package/src/ui/map_tests/map_feature_state.test.ts +421 -0
- package/src/ui/map_tests/map_images.test.ts +175 -0
- package/src/ui/map_tests/map_is_moving.test.ts +164 -0
- package/src/ui/map_tests/map_is_rotating.test.ts +62 -0
- package/src/ui/map_tests/map_is_zooming.test.ts +86 -0
- package/src/ui/map_tests/map_layer.test.ts +457 -0
- package/src/ui/map_tests/map_options.test.ts +64 -0
- package/src/ui/map_tests/map_pitch.test.ts +90 -0
- package/src/ui/map_tests/map_pixel_ratio.test.ts +75 -0
- package/src/ui/map_tests/map_query_rendered_features.test.ts +93 -0
- package/src/ui/map_tests/map_render.test.ts +90 -0
- package/src/ui/map_tests/map_request_render_frame.test.ts +51 -0
- package/src/ui/map_tests/map_resize.test.ts +120 -0
- package/src/ui/map_tests/map_style.test.ts +541 -0
- package/src/ui/map_tests/map_terrian.test.ts +104 -0
- package/src/ui/map_tests/map_webgl.test.ts +72 -0
- package/src/ui/map_tests/map_world_copies.test.ts +103 -0
- package/src/ui/map_tests/map_zoom.test.ts +95 -0
- package/src/ui/marker.test.ts +1149 -0
- package/src/ui/marker.ts +880 -0
- package/src/ui/popup.test.ts +827 -0
- package/src/ui/popup.ts +717 -0
- package/src/util/abort_error.ts +21 -0
- package/src/util/actor.test.ts +218 -0
- package/src/util/actor.ts +241 -0
- package/src/util/actor_messages.ts +149 -0
- package/src/util/ajax.test.ts +237 -0
- package/src/util/ajax.ts +297 -0
- package/src/util/browser.test.ts +23 -0
- package/src/util/browser.ts +63 -0
- package/src/util/color_ramp.test.ts +105 -0
- package/src/util/color_ramp.ts +56 -0
- package/src/util/config.ts +29 -0
- package/src/util/dictionary_coder.ts +23 -0
- package/src/util/dispatcher.test.ts +76 -0
- package/src/util/dispatcher.ts +78 -0
- package/src/util/dom.ts +135 -0
- package/src/util/evented.test.ts +231 -0
- package/src/util/evented.ts +178 -0
- package/src/util/find_pole_of_inaccessibility.test.ts +21 -0
- package/src/util/find_pole_of_inaccessibility.ts +130 -0
- package/src/util/geolocation_support.test.ts +43 -0
- package/src/util/geolocation_support.ts +23 -0
- package/src/util/global_worker_pool.ts +65 -0
- package/src/util/image.ts +150 -0
- package/src/util/image_request.test.ts +408 -0
- package/src/util/image_request.ts +246 -0
- package/src/util/intersection_tests.ts +206 -0
- package/src/util/is_char_in_unicode_block.test.ts +15 -0
- package/src/util/is_char_in_unicode_block.ts +345 -0
- package/src/util/offscreen_canvas_distorted.test.ts +13 -0
- package/src/util/offscreen_canvas_distorted.ts +39 -0
- package/src/util/offscreen_canvas_supported.ts +11 -0
- package/src/util/performance.ts +117 -0
- package/src/util/primitives.test.ts +140 -0
- package/src/util/primitives.ts +143 -0
- package/src/util/request_manager.ts +42 -0
- package/src/util/resolve_tokens.test.ts +45 -0
- package/src/util/resolve_tokens.ts +17 -0
- package/src/util/script_detection.test.ts +138 -0
- package/src/util/script_detection.ts +376 -0
- package/src/util/smart_wrap.test.ts +97 -0
- package/src/util/smart_wrap.ts +58 -0
- package/src/util/struct_array.test.ts +101 -0
- package/src/util/struct_array.ts +246 -0
- package/src/util/style.test.ts +34 -0
- package/src/util/style.ts +28 -0
- package/src/util/task_queue.test.ts +114 -0
- package/src/util/task_queue.ts +64 -0
- package/src/util/test/util.ts +185 -0
- package/src/util/throttle.test.ts +42 -0
- package/src/util/throttle.ts +28 -0
- package/src/util/throttled_invoker.ts +41 -0
- package/src/util/transferable_grid_index.test.ts +56 -0
- package/src/util/transferable_grid_index.ts +214 -0
- package/src/util/util.test.ts +414 -0
- package/src/util/util.ts +724 -0
- package/src/util/vectortile_to_geojson.ts +72 -0
- package/src/util/verticalize_punctuation.ts +110 -0
- package/src/util/web_worker.ts +16 -0
- package/src/util/web_worker_transfer.test.ts +153 -0
- package/src/util/web_worker_transfer.ts +254 -0
- package/src/util/webp_supported.ts +63 -0
- package/src/util/worker_pool.test.ts +43 -0
- package/src/util/worker_pool.ts +58 -0
- package/src/util/world_bounds.test.ts +59 -0
- package/src/util/world_bounds.ts +46 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
uniform mat4 u_matrix;
|
|
2
|
+
uniform vec3 u_lightcolor;
|
|
3
|
+
uniform lowp vec3 u_lightpos;
|
|
4
|
+
uniform lowp float u_lightintensity;
|
|
5
|
+
uniform float u_vertical_gradient;
|
|
6
|
+
uniform lowp float u_opacity;
|
|
7
|
+
|
|
8
|
+
in vec2 a_pos;
|
|
9
|
+
in vec4 a_normal_ed;
|
|
10
|
+
|
|
11
|
+
#ifdef TERRAIN3D
|
|
12
|
+
in vec2 a_centroid;
|
|
13
|
+
#endif
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
out vec4 v_color;
|
|
17
|
+
|
|
18
|
+
#pragma mapbox: define highp float base
|
|
19
|
+
#pragma mapbox: define highp float height
|
|
20
|
+
|
|
21
|
+
#pragma mapbox: define highp vec4 color
|
|
22
|
+
|
|
23
|
+
void main() {
|
|
24
|
+
#pragma mapbox: initialize highp float base
|
|
25
|
+
#pragma mapbox: initialize highp float height
|
|
26
|
+
#pragma mapbox: initialize highp vec4 color
|
|
27
|
+
|
|
28
|
+
vec3 normal = a_normal_ed.xyz;
|
|
29
|
+
|
|
30
|
+
#ifdef TERRAIN3D
|
|
31
|
+
// Raise the "ceiling" of elements by the elevation of the centroid, in meters.
|
|
32
|
+
float height_terrain3d_offset = get_elevation(a_centroid);
|
|
33
|
+
// To avoid having buildings "hang above a slope", create a "basement"
|
|
34
|
+
// by lowering the "floor" of ground-level (and below) elements.
|
|
35
|
+
// This is in addition to the elevation of the centroid, in meters.
|
|
36
|
+
float base_terrain3d_offset = height_terrain3d_offset - (base > 0.0 ? 0.0 : 10.0);
|
|
37
|
+
#else
|
|
38
|
+
float height_terrain3d_offset = 0.0;
|
|
39
|
+
float base_terrain3d_offset = 0.0;
|
|
40
|
+
#endif
|
|
41
|
+
// Sub-terranian "floors and ceilings" are clamped to ground-level.
|
|
42
|
+
// 3D Terrain offsets, if applicable, are applied on the result.
|
|
43
|
+
base = max(0.0, base) + base_terrain3d_offset;
|
|
44
|
+
height = max(0.0, height) + height_terrain3d_offset;
|
|
45
|
+
|
|
46
|
+
float t = mod(normal.x, 2.0);
|
|
47
|
+
|
|
48
|
+
gl_Position = u_matrix * vec4(a_pos, t > 0.0 ? height : base, 1);
|
|
49
|
+
|
|
50
|
+
// Relative luminance (how dark/bright is the surface color?)
|
|
51
|
+
float colorvalue = color.r * 0.2126 + color.g * 0.7152 + color.b * 0.0722;
|
|
52
|
+
|
|
53
|
+
v_color = vec4(0.0, 0.0, 0.0, 1.0);
|
|
54
|
+
|
|
55
|
+
// Add slight ambient lighting so no extrusions are totally black
|
|
56
|
+
vec4 ambientlight = vec4(0.03, 0.03, 0.03, 1.0);
|
|
57
|
+
color += ambientlight;
|
|
58
|
+
|
|
59
|
+
// Calculate cos(theta), where theta is the angle between surface normal and diffuse light ray
|
|
60
|
+
float directional = clamp(dot(normal / 16384.0, u_lightpos), 0.0, 1.0);
|
|
61
|
+
|
|
62
|
+
// Adjust directional so that
|
|
63
|
+
// the range of values for highlight/shading is narrower
|
|
64
|
+
// with lower light intensity
|
|
65
|
+
// and with lighter/brighter surface colors
|
|
66
|
+
directional = mix((1.0 - u_lightintensity), max((1.0 - colorvalue + u_lightintensity), 1.0), directional);
|
|
67
|
+
|
|
68
|
+
// Add gradient along z axis of side surfaces
|
|
69
|
+
if (normal.y != 0.0) {
|
|
70
|
+
// This avoids another branching statement, but multiplies by a constant of 0.84 if no vertical gradient,
|
|
71
|
+
// and otherwise calculates the gradient based on base + height
|
|
72
|
+
directional *= (
|
|
73
|
+
(1.0 - u_vertical_gradient) +
|
|
74
|
+
(u_vertical_gradient * clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0)));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Assign final color based on surface + ambient light color, diffuse light directional, and light color
|
|
78
|
+
// with lower bounds adjusted to hue of light
|
|
79
|
+
// so that shading is tinted with the complementary (opposite) color to the light color
|
|
80
|
+
v_color.r += clamp(color.r * directional * u_lightcolor.r, mix(0.0, 0.3, 1.0 - u_lightcolor.r), 1.0);
|
|
81
|
+
v_color.g += clamp(color.g * directional * u_lightcolor.g, mix(0.0, 0.3, 1.0 - u_lightcolor.g), 1.0);
|
|
82
|
+
v_color.b += clamp(color.b * directional * u_lightcolor.b, mix(0.0, 0.3, 1.0 - u_lightcolor.b), 1.0);
|
|
83
|
+
v_color *= u_opacity;
|
|
84
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
2
|
+
export default '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;}';
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
uniform vec2 u_texsize;
|
|
2
|
+
uniform float u_fade;
|
|
3
|
+
|
|
4
|
+
uniform sampler2D u_image;
|
|
5
|
+
|
|
6
|
+
in vec2 v_pos_a;
|
|
7
|
+
in vec2 v_pos_b;
|
|
8
|
+
in vec4 v_lighting;
|
|
9
|
+
|
|
10
|
+
#pragma mapbox: define lowp float base
|
|
11
|
+
#pragma mapbox: define lowp float height
|
|
12
|
+
#pragma mapbox: define lowp vec4 pattern_from
|
|
13
|
+
#pragma mapbox: define lowp vec4 pattern_to
|
|
14
|
+
#pragma mapbox: define lowp float pixel_ratio_from
|
|
15
|
+
#pragma mapbox: define lowp float pixel_ratio_to
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
void main() {
|
|
20
|
+
#pragma mapbox: initialize lowp float base
|
|
21
|
+
#pragma mapbox: initialize lowp float height
|
|
22
|
+
#pragma mapbox: initialize mediump vec4 pattern_from
|
|
23
|
+
#pragma mapbox: initialize mediump vec4 pattern_to
|
|
24
|
+
#pragma mapbox: initialize lowp float pixel_ratio_from
|
|
25
|
+
#pragma mapbox: initialize lowp float pixel_ratio_to
|
|
26
|
+
|
|
27
|
+
vec2 pattern_tl_a = pattern_from.xy;
|
|
28
|
+
vec2 pattern_br_a = pattern_from.zw;
|
|
29
|
+
vec2 pattern_tl_b = pattern_to.xy;
|
|
30
|
+
vec2 pattern_br_b = pattern_to.zw;
|
|
31
|
+
|
|
32
|
+
vec2 imagecoord = mod(v_pos_a, 1.0);
|
|
33
|
+
vec2 pos = mix(pattern_tl_a / u_texsize, pattern_br_a / u_texsize, imagecoord);
|
|
34
|
+
vec4 color1 = texture(u_image, pos);
|
|
35
|
+
|
|
36
|
+
vec2 imagecoord_b = mod(v_pos_b, 1.0);
|
|
37
|
+
vec2 pos2 = mix(pattern_tl_b / u_texsize, pattern_br_b / u_texsize, imagecoord_b);
|
|
38
|
+
vec4 color2 = texture(u_image, pos2);
|
|
39
|
+
|
|
40
|
+
vec4 mixedColor = mix(color1, color2, u_fade);
|
|
41
|
+
|
|
42
|
+
fragColor = mixedColor * v_lighting;
|
|
43
|
+
|
|
44
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
45
|
+
fragColor = vec4(1.0);
|
|
46
|
+
#endif
|
|
47
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
2
|
+
export default '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}';
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
uniform mat4 u_matrix;
|
|
2
|
+
uniform vec2 u_pixel_coord_upper;
|
|
3
|
+
uniform vec2 u_pixel_coord_lower;
|
|
4
|
+
uniform float u_height_factor;
|
|
5
|
+
uniform vec3 u_scale;
|
|
6
|
+
uniform float u_vertical_gradient;
|
|
7
|
+
uniform lowp float u_opacity;
|
|
8
|
+
|
|
9
|
+
uniform vec3 u_lightcolor;
|
|
10
|
+
uniform lowp vec3 u_lightpos;
|
|
11
|
+
uniform lowp float u_lightintensity;
|
|
12
|
+
|
|
13
|
+
in vec2 a_pos;
|
|
14
|
+
in vec4 a_normal_ed;
|
|
15
|
+
|
|
16
|
+
#ifdef TERRAIN3D
|
|
17
|
+
in vec2 a_centroid;
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
out vec2 v_pos_a;
|
|
21
|
+
out vec2 v_pos_b;
|
|
22
|
+
out vec4 v_lighting;
|
|
23
|
+
|
|
24
|
+
#pragma mapbox: define lowp float base
|
|
25
|
+
#pragma mapbox: define lowp float height
|
|
26
|
+
#pragma mapbox: define lowp vec4 pattern_from
|
|
27
|
+
#pragma mapbox: define lowp vec4 pattern_to
|
|
28
|
+
#pragma mapbox: define lowp float pixel_ratio_from
|
|
29
|
+
#pragma mapbox: define lowp float pixel_ratio_to
|
|
30
|
+
|
|
31
|
+
void main() {
|
|
32
|
+
#pragma mapbox: initialize lowp float base
|
|
33
|
+
#pragma mapbox: initialize lowp float height
|
|
34
|
+
#pragma mapbox: initialize mediump vec4 pattern_from
|
|
35
|
+
#pragma mapbox: initialize mediump vec4 pattern_to
|
|
36
|
+
#pragma mapbox: initialize lowp float pixel_ratio_from
|
|
37
|
+
#pragma mapbox: initialize lowp float pixel_ratio_to
|
|
38
|
+
|
|
39
|
+
vec2 pattern_tl_a = pattern_from.xy;
|
|
40
|
+
vec2 pattern_br_a = pattern_from.zw;
|
|
41
|
+
vec2 pattern_tl_b = pattern_to.xy;
|
|
42
|
+
vec2 pattern_br_b = pattern_to.zw;
|
|
43
|
+
|
|
44
|
+
float tileRatio = u_scale.x;
|
|
45
|
+
float fromScale = u_scale.y;
|
|
46
|
+
float toScale = u_scale.z;
|
|
47
|
+
|
|
48
|
+
vec3 normal = a_normal_ed.xyz;
|
|
49
|
+
float edgedistance = a_normal_ed.w;
|
|
50
|
+
|
|
51
|
+
vec2 display_size_a = (pattern_br_a - pattern_tl_a) / pixel_ratio_from;
|
|
52
|
+
vec2 display_size_b = (pattern_br_b - pattern_tl_b) / pixel_ratio_to;
|
|
53
|
+
|
|
54
|
+
#ifdef TERRAIN3D
|
|
55
|
+
// Raise the "ceiling" of elements by the elevation of the centroid, in meters.
|
|
56
|
+
float height_terrain3d_offset = get_elevation(a_centroid);
|
|
57
|
+
// To avoid having buildings "hang above a slope", create a "basement"
|
|
58
|
+
// by lowering the "floor" of ground-level (and below) elements.
|
|
59
|
+
// This is in addition to the elevation of the centroid, in meters.
|
|
60
|
+
float base_terrain3d_offset = height_terrain3d_offset - (base > 0.0 ? 0.0 : 10.0);
|
|
61
|
+
#else
|
|
62
|
+
float height_terrain3d_offset = 0.0;
|
|
63
|
+
float base_terrain3d_offset = 0.0;
|
|
64
|
+
#endif
|
|
65
|
+
// Sub-terranian "floors and ceilings" are clamped to ground-level.
|
|
66
|
+
// 3D Terrain offsets, if applicable, are applied on the result.
|
|
67
|
+
base = max(0.0, base) + base_terrain3d_offset;
|
|
68
|
+
height = max(0.0, height) + height_terrain3d_offset;
|
|
69
|
+
|
|
70
|
+
float t = mod(normal.x, 2.0);
|
|
71
|
+
float z = t > 0.0 ? height : base;
|
|
72
|
+
|
|
73
|
+
gl_Position = u_matrix * vec4(a_pos, z, 1);
|
|
74
|
+
|
|
75
|
+
vec2 pos = normal.x == 1.0 && normal.y == 0.0 && normal.z == 16384.0
|
|
76
|
+
? a_pos // extrusion top
|
|
77
|
+
: vec2(edgedistance, z * u_height_factor); // extrusion side
|
|
78
|
+
|
|
79
|
+
v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, fromScale * display_size_a, tileRatio, pos);
|
|
80
|
+
v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, toScale * display_size_b, tileRatio, pos);
|
|
81
|
+
|
|
82
|
+
v_lighting = vec4(0.0, 0.0, 0.0, 1.0);
|
|
83
|
+
float directional = clamp(dot(normal / 16383.0, u_lightpos), 0.0, 1.0);
|
|
84
|
+
directional = mix((1.0 - u_lightintensity), max((0.5 + u_lightintensity), 1.0), directional);
|
|
85
|
+
|
|
86
|
+
if (normal.y != 0.0) {
|
|
87
|
+
// This avoids another branching statement, but multiplies by a constant of 0.84 if no vertical gradient,
|
|
88
|
+
// and otherwise calculates the gradient based on base + height
|
|
89
|
+
directional *= (
|
|
90
|
+
(1.0 - u_vertical_gradient) +
|
|
91
|
+
(u_vertical_gradient * clamp((t + base) * pow(height / 150.0, 0.5), mix(0.7, 0.98, 1.0 - u_lightintensity), 1.0)));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
v_lighting.rgb += clamp(directional * u_lightcolor, mix(vec3(0.0), vec3(0.3), 1.0 - u_lightcolor), vec3(1.0));
|
|
95
|
+
v_lighting *= u_opacity;
|
|
96
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
2
|
+
export default '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;}';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
in vec2 v_pos;
|
|
2
|
+
|
|
3
|
+
#pragma mapbox: define highp vec4 outline_color
|
|
4
|
+
#pragma mapbox: define lowp float opacity
|
|
5
|
+
|
|
6
|
+
void main() {
|
|
7
|
+
#pragma mapbox: initialize highp vec4 outline_color
|
|
8
|
+
#pragma mapbox: initialize lowp float opacity
|
|
9
|
+
|
|
10
|
+
float dist = length(v_pos - gl_FragCoord.xy);
|
|
11
|
+
float alpha = 1.0 - smoothstep(0.0, 1.0, dist);
|
|
12
|
+
fragColor = outline_color * (alpha * opacity);
|
|
13
|
+
|
|
14
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
15
|
+
fragColor = vec4(1.0);
|
|
16
|
+
#endif
|
|
17
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
2
|
+
export default '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}';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
in vec2 a_pos;
|
|
2
|
+
|
|
3
|
+
uniform mat4 u_matrix;
|
|
4
|
+
uniform vec2 u_world;
|
|
5
|
+
|
|
6
|
+
out vec2 v_pos;
|
|
7
|
+
|
|
8
|
+
#pragma mapbox: define highp vec4 outline_color
|
|
9
|
+
#pragma mapbox: define lowp float opacity
|
|
10
|
+
|
|
11
|
+
void main() {
|
|
12
|
+
#pragma mapbox: initialize highp vec4 outline_color
|
|
13
|
+
#pragma mapbox: initialize lowp float opacity
|
|
14
|
+
|
|
15
|
+
gl_Position = u_matrix * vec4(a_pos, 0, 1);
|
|
16
|
+
v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;
|
|
17
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
2
|
+
export default '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;}';
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
|
|
2
|
+
uniform vec2 u_texsize;
|
|
3
|
+
uniform sampler2D u_image;
|
|
4
|
+
uniform float u_fade;
|
|
5
|
+
|
|
6
|
+
in vec2 v_pos_a;
|
|
7
|
+
in vec2 v_pos_b;
|
|
8
|
+
in vec2 v_pos;
|
|
9
|
+
|
|
10
|
+
#pragma mapbox: define lowp float opacity
|
|
11
|
+
#pragma mapbox: define lowp vec4 pattern_from
|
|
12
|
+
#pragma mapbox: define lowp vec4 pattern_to
|
|
13
|
+
|
|
14
|
+
void main() {
|
|
15
|
+
#pragma mapbox: initialize lowp float opacity
|
|
16
|
+
#pragma mapbox: initialize mediump vec4 pattern_from
|
|
17
|
+
#pragma mapbox: initialize mediump vec4 pattern_to
|
|
18
|
+
|
|
19
|
+
vec2 pattern_tl_a = pattern_from.xy;
|
|
20
|
+
vec2 pattern_br_a = pattern_from.zw;
|
|
21
|
+
vec2 pattern_tl_b = pattern_to.xy;
|
|
22
|
+
vec2 pattern_br_b = pattern_to.zw;
|
|
23
|
+
|
|
24
|
+
vec2 imagecoord = mod(v_pos_a, 1.0);
|
|
25
|
+
vec2 pos = mix(pattern_tl_a / u_texsize, pattern_br_a / u_texsize, imagecoord);
|
|
26
|
+
vec4 color1 = texture(u_image, pos);
|
|
27
|
+
|
|
28
|
+
vec2 imagecoord_b = mod(v_pos_b, 1.0);
|
|
29
|
+
vec2 pos2 = mix(pattern_tl_b / u_texsize, pattern_br_b / u_texsize, imagecoord_b);
|
|
30
|
+
vec4 color2 = texture(u_image, pos2);
|
|
31
|
+
|
|
32
|
+
// find distance to outline for alpha interpolation
|
|
33
|
+
|
|
34
|
+
float dist = length(v_pos - gl_FragCoord.xy);
|
|
35
|
+
float alpha = 1.0 - smoothstep(0.0, 1.0, dist);
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
fragColor = mix(color1, color2, u_fade) * alpha * opacity;
|
|
39
|
+
|
|
40
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
41
|
+
fragColor = vec4(1.0);
|
|
42
|
+
#endif
|
|
43
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
2
|
+
export default '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}';
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
uniform mat4 u_matrix;
|
|
2
|
+
uniform vec2 u_world;
|
|
3
|
+
uniform vec2 u_pixel_coord_upper;
|
|
4
|
+
uniform vec2 u_pixel_coord_lower;
|
|
5
|
+
uniform vec3 u_scale;
|
|
6
|
+
|
|
7
|
+
in vec2 a_pos;
|
|
8
|
+
|
|
9
|
+
out vec2 v_pos_a;
|
|
10
|
+
out vec2 v_pos_b;
|
|
11
|
+
out vec2 v_pos;
|
|
12
|
+
|
|
13
|
+
#pragma mapbox: define lowp float opacity
|
|
14
|
+
#pragma mapbox: define lowp vec4 pattern_from
|
|
15
|
+
#pragma mapbox: define lowp vec4 pattern_to
|
|
16
|
+
#pragma mapbox: define lowp float pixel_ratio_from
|
|
17
|
+
#pragma mapbox: define lowp float pixel_ratio_to
|
|
18
|
+
|
|
19
|
+
void main() {
|
|
20
|
+
#pragma mapbox: initialize lowp float opacity
|
|
21
|
+
#pragma mapbox: initialize mediump vec4 pattern_from
|
|
22
|
+
#pragma mapbox: initialize mediump vec4 pattern_to
|
|
23
|
+
#pragma mapbox: initialize lowp float pixel_ratio_from
|
|
24
|
+
#pragma mapbox: initialize lowp float pixel_ratio_to
|
|
25
|
+
|
|
26
|
+
vec2 pattern_tl_a = pattern_from.xy;
|
|
27
|
+
vec2 pattern_br_a = pattern_from.zw;
|
|
28
|
+
vec2 pattern_tl_b = pattern_to.xy;
|
|
29
|
+
vec2 pattern_br_b = pattern_to.zw;
|
|
30
|
+
|
|
31
|
+
float tileRatio = u_scale.x;
|
|
32
|
+
float fromScale = u_scale.y;
|
|
33
|
+
float toScale = u_scale.z;
|
|
34
|
+
|
|
35
|
+
gl_Position = u_matrix * vec4(a_pos, 0, 1);
|
|
36
|
+
|
|
37
|
+
vec2 display_size_a = (pattern_br_a - pattern_tl_a) / pixel_ratio_from;
|
|
38
|
+
vec2 display_size_b = (pattern_br_b - pattern_tl_b) / pixel_ratio_to;
|
|
39
|
+
|
|
40
|
+
v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, fromScale * display_size_a, tileRatio, a_pos);
|
|
41
|
+
v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, toScale * display_size_b, tileRatio, a_pos);
|
|
42
|
+
|
|
43
|
+
v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;
|
|
44
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
2
|
+
export default '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;}';
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#ifdef GL_ES
|
|
2
|
+
precision highp float;
|
|
3
|
+
#endif
|
|
4
|
+
uniform vec2 u_texsize;
|
|
5
|
+
uniform float u_fade;
|
|
6
|
+
|
|
7
|
+
uniform sampler2D u_image;
|
|
8
|
+
|
|
9
|
+
in vec2 v_pos_a;
|
|
10
|
+
in vec2 v_pos_b;
|
|
11
|
+
|
|
12
|
+
#pragma mapbox: define lowp float opacity
|
|
13
|
+
#pragma mapbox: define lowp vec4 pattern_from
|
|
14
|
+
#pragma mapbox: define lowp vec4 pattern_to
|
|
15
|
+
|
|
16
|
+
void main() {
|
|
17
|
+
#pragma mapbox: initialize lowp float opacity
|
|
18
|
+
#pragma mapbox: initialize mediump vec4 pattern_from
|
|
19
|
+
#pragma mapbox: initialize mediump vec4 pattern_to
|
|
20
|
+
|
|
21
|
+
vec2 pattern_tl_a = pattern_from.xy;
|
|
22
|
+
vec2 pattern_br_a = pattern_from.zw;
|
|
23
|
+
vec2 pattern_tl_b = pattern_to.xy;
|
|
24
|
+
vec2 pattern_br_b = pattern_to.zw;
|
|
25
|
+
|
|
26
|
+
vec2 imagecoord = mod(v_pos_a, 1.0);
|
|
27
|
+
vec2 pos = mix(pattern_tl_a / u_texsize, pattern_br_a / u_texsize, imagecoord);
|
|
28
|
+
vec4 color1 = texture(u_image, pos);
|
|
29
|
+
|
|
30
|
+
vec2 imagecoord_b = mod(v_pos_b, 1.0);
|
|
31
|
+
vec2 pos2 = mix(pattern_tl_b / u_texsize, pattern_br_b / u_texsize, imagecoord_b);
|
|
32
|
+
vec4 color2 = texture(u_image, pos2);
|
|
33
|
+
|
|
34
|
+
fragColor = mix(color1, color2, u_fade) * opacity;
|
|
35
|
+
|
|
36
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
37
|
+
fragColor = vec4(1.0);
|
|
38
|
+
#endif
|
|
39
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
2
|
+
export default '#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}';
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
uniform mat4 u_matrix;
|
|
2
|
+
uniform vec2 u_pixel_coord_upper;
|
|
3
|
+
uniform vec2 u_pixel_coord_lower;
|
|
4
|
+
uniform vec3 u_scale;
|
|
5
|
+
|
|
6
|
+
in vec2 a_pos;
|
|
7
|
+
|
|
8
|
+
out vec2 v_pos_a;
|
|
9
|
+
out vec2 v_pos_b;
|
|
10
|
+
|
|
11
|
+
#pragma mapbox: define lowp float opacity
|
|
12
|
+
#pragma mapbox: define lowp vec4 pattern_from
|
|
13
|
+
#pragma mapbox: define lowp vec4 pattern_to
|
|
14
|
+
#pragma mapbox: define lowp float pixel_ratio_from
|
|
15
|
+
#pragma mapbox: define lowp float pixel_ratio_to
|
|
16
|
+
|
|
17
|
+
void main() {
|
|
18
|
+
#pragma mapbox: initialize lowp float opacity
|
|
19
|
+
#pragma mapbox: initialize mediump vec4 pattern_from
|
|
20
|
+
#pragma mapbox: initialize mediump vec4 pattern_to
|
|
21
|
+
#pragma mapbox: initialize lowp float pixel_ratio_from
|
|
22
|
+
#pragma mapbox: initialize lowp float pixel_ratio_to
|
|
23
|
+
|
|
24
|
+
vec2 pattern_tl_a = pattern_from.xy;
|
|
25
|
+
vec2 pattern_br_a = pattern_from.zw;
|
|
26
|
+
vec2 pattern_tl_b = pattern_to.xy;
|
|
27
|
+
vec2 pattern_br_b = pattern_to.zw;
|
|
28
|
+
|
|
29
|
+
float tileZoomRatio = u_scale.x;
|
|
30
|
+
float fromScale = u_scale.y;
|
|
31
|
+
float toScale = u_scale.z;
|
|
32
|
+
|
|
33
|
+
vec2 display_size_a = (pattern_br_a - pattern_tl_a) / pixel_ratio_from;
|
|
34
|
+
vec2 display_size_b = (pattern_br_b - pattern_tl_b) / pixel_ratio_to;
|
|
35
|
+
gl_Position = u_matrix * vec4(a_pos, 0, 1);
|
|
36
|
+
|
|
37
|
+
v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, fromScale * display_size_a, tileZoomRatio, a_pos);
|
|
38
|
+
v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, toScale * display_size_b, tileZoomRatio, a_pos);
|
|
39
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
2
|
+
export default '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);}';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
uniform highp float u_intensity;
|
|
2
|
+
|
|
3
|
+
in vec2 v_extrude;
|
|
4
|
+
|
|
5
|
+
#pragma mapbox: define highp float weight
|
|
6
|
+
|
|
7
|
+
// Gaussian kernel coefficient: 1 / sqrt(2 * PI)
|
|
8
|
+
#define GAUSS_COEF 0.3989422804014327
|
|
9
|
+
|
|
10
|
+
void main() {
|
|
11
|
+
#pragma mapbox: initialize highp float weight
|
|
12
|
+
|
|
13
|
+
// Kernel density estimation with a Gaussian kernel of size 5x5
|
|
14
|
+
float d = -0.5 * 3.0 * 3.0 * dot(v_extrude, v_extrude);
|
|
15
|
+
float val = weight * u_intensity * GAUSS_COEF * exp(d);
|
|
16
|
+
|
|
17
|
+
fragColor = vec4(val, 1.0, 1.0, 1.0);
|
|
18
|
+
|
|
19
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20
|
+
fragColor = vec4(1.0);
|
|
21
|
+
#endif
|
|
22
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
2
|
+
export default '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}';
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
|
|
2
|
+
uniform mat4 u_matrix;
|
|
3
|
+
uniform float u_extrude_scale;
|
|
4
|
+
uniform float u_opacity;
|
|
5
|
+
uniform float u_intensity;
|
|
6
|
+
|
|
7
|
+
in vec2 a_pos;
|
|
8
|
+
|
|
9
|
+
out vec2 v_extrude;
|
|
10
|
+
|
|
11
|
+
#pragma mapbox: define highp float weight
|
|
12
|
+
#pragma mapbox: define mediump float radius
|
|
13
|
+
|
|
14
|
+
// Effective "0" in the kernel density texture to adjust the kernel size to;
|
|
15
|
+
// this empirically chosen number minimizes artifacts on overlapping kernels
|
|
16
|
+
// for typical heatmap cases (assuming clustered source)
|
|
17
|
+
const highp float ZERO = 1.0 / 255.0 / 16.0;
|
|
18
|
+
|
|
19
|
+
// Gaussian kernel coefficient: 1 / sqrt(2 * PI)
|
|
20
|
+
#define GAUSS_COEF 0.3989422804014327
|
|
21
|
+
|
|
22
|
+
void main(void) {
|
|
23
|
+
#pragma mapbox: initialize highp float weight
|
|
24
|
+
#pragma mapbox: initialize mediump float radius
|
|
25
|
+
|
|
26
|
+
// decode the extrusion vector that we snuck into the a_pos vector
|
|
27
|
+
vec2 unscaled_extrude = vec2(mod(a_pos, 2.0) * 2.0 - 1.0);
|
|
28
|
+
|
|
29
|
+
// This 'extrude' comes in ranging from [-1, -1], to [1, 1]. We'll use
|
|
30
|
+
// it to produce the vertices of a square mesh framing the point feature
|
|
31
|
+
// we're adding to the kernel density texture. We'll also pass it as
|
|
32
|
+
// a out, so that the fragment shader can determine the distance of
|
|
33
|
+
// each fragment from the point feature.
|
|
34
|
+
// Before we do so, we need to scale it up sufficiently so that the
|
|
35
|
+
// kernel falls effectively to zero at the edge of the mesh.
|
|
36
|
+
// That is, we want to know S such that
|
|
37
|
+
// weight * u_intensity * GAUSS_COEF * exp(-0.5 * 3.0^2 * S^2) == ZERO
|
|
38
|
+
// Which solves to:
|
|
39
|
+
// S = sqrt(-2.0 * log(ZERO / (weight * u_intensity * GAUSS_COEF))) / 3.0
|
|
40
|
+
float S = sqrt(-2.0 * log(ZERO / weight / u_intensity / GAUSS_COEF)) / 3.0;
|
|
41
|
+
|
|
42
|
+
// Pass the out in units of radius
|
|
43
|
+
v_extrude = S * unscaled_extrude;
|
|
44
|
+
|
|
45
|
+
// Scale by radius and the zoom-based scale factor to produce actual
|
|
46
|
+
// mesh position
|
|
47
|
+
vec2 extrude = v_extrude * radius * u_extrude_scale;
|
|
48
|
+
|
|
49
|
+
// multiply a_pos by 0.5, since we had it * 2 in order to sneak
|
|
50
|
+
// in extrusion data
|
|
51
|
+
vec4 pos = vec4(floor(a_pos * 0.5) + extrude, get_elevation(floor(a_pos * 0.5)), 1);
|
|
52
|
+
|
|
53
|
+
gl_Position = u_matrix * pos;
|
|
54
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
2
|
+
export default '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,get_elevation(floor(a_pos*0.5)),1);gl_Position=u_matrix*pos;}';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
uniform sampler2D u_image;
|
|
2
|
+
uniform sampler2D u_color_ramp;
|
|
3
|
+
uniform float u_opacity;
|
|
4
|
+
|
|
5
|
+
in vec2 v_pos;
|
|
6
|
+
|
|
7
|
+
void main() {
|
|
8
|
+
float t = texture(u_image, v_pos).r;
|
|
9
|
+
vec4 color = texture(u_color_ramp, vec2(t, 0.5));
|
|
10
|
+
fragColor = color * u_opacity;
|
|
11
|
+
|
|
12
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
13
|
+
fragColor = vec4(0.0);
|
|
14
|
+
#endif
|
|
15
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
2
|
+
export default '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}';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// This file is generated. Edit build/generate-shaders.ts, then run `npm run codegen`.
|
|
2
|
+
export default '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;}';
|