Johannes Hofmann
69a245c187
Fix accuracy issue at high zoom levels in ortho view
This now uses an f64 transformation matrix (instead of f32) to transform
points on the sphere to screen coordinates. Conversion to f32 vertex
positions happens as a last step before uploading to a GPU buffer.
7 anni fa
Johannes Hofmann
6269775c2c
buffer: Add missing draw modes
7 anni fa
Johannes Hofmann
7d5997991a
Improve tile rendering in orthografic view
* Reach feature parity with mercator view:
* Resize tile atlas to reduce draw calls
* Fill in tiles from other zoom layers
7 anni fa
Johannes Hofmann
d92bde5ac4
Add trait tile_atlas::VisibleTilesProvider
This enables the implementation of TileAtlas::textured_visible_tiles for
different kinds of visible tiles, e.g. for different layers.
7 anni fa
Johannes Hofmann
7a3a12aa68
Rename tile_layer -> mercator_tile_layer
and TileLayer -> MercatorTileLayer
7 anni fa
Johannes Hofmann
2084a7bb2d
Update dependencies
This fixes a glutin/winit issue that resulted in 100% CPU usage because
of repeated X11 ConfigureWindow/ConfigureNotify events.
7 anni fa
Johannes Hofmann
cf5a195488
Spherical tile visibility, part III
Still a partial solution. Uses region growing starting from the central
tile and checks if at least one of the vertices is visible.
7 anni fa
Johannes Hofmann
eefea571ea
Add orthografic_view::tile_neighbors and tests
7 anni fa
Johannes Hofmann
cd29a5f0c8
Update glutin (to 0.17) and become DPI aware
7 anni fa
Johannes Hofmann
4803a02187
Update dependencies (except glutin/winit)
7 anni fa
Johannes Hofmann
cf7f21acc3
Restructure modules
* Split up map_view module into
* map_view
* mercator_view
* orthografic_view
7 anni fa
Johannes Hofmann
333593ca95
Rename ViewMode -> Projection
ViewMode::Flat -> Projection::Mercator
ViewMode::Globe -> Projection::Orthografic
7 anni fa
Johannes Hofmann
c8f358ebc6
Spherical tile visibility, part II
Still not solved. Tried to approach by calculating properties of
elliptical arcs, but there are so many edge cases...
7 anni fa
Johannes Hofmann
696d382fc8
Add globe view mode, partially solve tile visibility
* Toggle between ViewMode::Flat and ViewMode::Globe with Ctrl+G
* Approach tile visibility problem at the sphere
7 anni fa
Johannes Hofmann
c8959c4fdc
coord: Add TileCoord::globe_norm
7 anni fa
Johannes Hofmann
e64385d0ca
Add TileCoord::children_iter method and Iterator
7 anni fa
Johannes Hofmann
cfbf9d20fa
globe_tile_layer: Add missing tiles to globe's edge
7 anni fa
Johannes Hofmann
f482a08091
coord: Fix conversion edge cases
This removes the holes of the globe at the poles.
7 anni fa
Johannes Hofmann
d51ed6a905
globe_tile_layer: Combine transformation matrices
7 anni fa
Johannes Hofmann
7034b667a9
Fix seams between globe tiles
7 anni fa
Johannes Hofmann
408f7da93e
Rename coord::LatLon -> coord::LatLonDeg
7 anni fa
Johannes Hofmann
f5f4e00d26
coord: Add some conversions and tests
7 anni fa
Johannes Hofmann
d7a9681521
Render the map as a sphere
A work in progress...
7 anni fa
Johannes Hofmann
86d79ff4e3
Fix test
7 anni fa
Johannes Hofmann
d3c51824af
Add option --list-paths
7 anni fa
Johannes Hofmann
71befdbef1
Update dependencies (glutin->winit is now 0.15.1)
7 anni fa
Johannes Hofmann
d543ec8738
search: Fix bug and report all matching ways
7 anni fa
Johannes Hofmann
e2f7171031
search: Find OSM ways in a second pass
search::par_search_blocking: Remember node ids for matching ways and
return the positions of these nodes in a second pass over the file.
7 anni fa
Johannes Hofmann
e115c2acd1
search: Extract function for parallel blob iteration
7 anni fa
Johannes Hofmann
247770609a
Fix window title with restored session
7 anni fa
Johannes Hofmann
bfa801d2e3
Add option to store and restore last session
7 anni fa
Johannes Hofmann
c64b1bf28e
Fix clippy warnings
7 anni fa
Johannes Hofmann
2f257afb43
Add config key pbf_file
7 anni fa
Johannes Hofmann
2120e9b16f
Speed up searching
* Decode/search in parallel
* Start decoding the first Blob as soon as possible
* Update multiple markers at once
7 anni fa
Johannes Hofmann
fc394f3d20
Add coord::LatLon
7 anni fa
Johannes Hofmann
13d366fc1d
Extract code into tile_layer module
7 anni fa
Johannes Hofmann
ec1da095e8
Update dependencies
7 anni fa
Johannes Hofmann
3ffbe5011c
search_pbf: Update closure can change control flow
7 anni fa
Johannes Hofmann
ea610bdeaa
travis: Add Rust beta channel
7 anni fa
Johannes Hofmann
5f47684dc4
Extract code into marker_layer module
7 anni fa
Johannes Hofmann
b12e7885ed
Add search module
7 anni fa
Johannes Hofmann
2f5db2e7ad
Fix marker visibility calculation
7 anni fa
Johannes Hofmann
bea18cc290
Add some jobs to .appveyor.yml
7 anni fa
Johannes Hofmann
f478fc1e07
Search Nodes in addition to DenseNodes
7 anni fa
Johannes Hofmann
0f30790da8
Search PBF files and display matches as markers
Use the parameters -s and --pbf for this.
7 anni fa
Johannes Hofmann
c430500e69
Support drawing markers
7 anni fa
Johannes Hofmann
5891c0de46
Cache enabled vertex attributes, store params
* Cache the enabled vertex attributes in `Context`
* The vertex attribute parameters (offset, stride, ...) are not cached,
yet
* Store parameters as `VertexAttribParams` in `Program`
7 anni fa
Johannes Hofmann
43ecb10350
context: Cache active buffer
This reduces calls to glUseBuffer.
7 anni fa
Johannes Hofmann
4962639d01
context: Cache active program
This would reduce the calls to glUseProgram if there actually was more
than one program.
7 anni fa
Johannes Hofmann
c7f1518897
Cache active texture unit, assign unit to texture
Each Texture is bound to a unique texture unit (glBindTexture is called
only once). Context keeps track of the current active texture unit and
reduces the number of glActiveTexture calls to a minimum.
7 anni fa