* Update winit and wgpu which both target rwh 0.6
* Upgrade to winit 0.30 to fix android crash https://github.com/bevyengine/bevy/issues/13331
* Add Carbon framework to desktop builds and improve build script to use nix if available
* Fix swift package and compilaiton with Nix
* Cleanup nix shell
* Avoid setting the size on the canvas, winit resizes now
* Handle fetch errors for web
* Simplify message logging
* Fix setting Z in shaders
* Update debug plugin usage
* Log up to trace messages when run through jetbrains
* Filter duplicate tiles in tile patterns
* Add trace statement
This fundamentally reworks how the far distance plane is calculated. First I wanted to implement it like in maplibre-gl-js. Though that appraoch did not allow yaw AND pitch in both directions. It only allowed pitch in a single direction (only 90°, not the full 180°).
The new approach is dicussed here: https://gamedev.stackexchange.com/questions/207328/calculation-of-far-distance-plane-based-on-yaw-and-pitch-for-a-map-renderer
It works in all directions and should also be way faster to calculate.
This PR also fixes the amount of tiles that are whown for the current zoom. If calculates the appropriate zoom level based on the current zoom and takes into account the resolution of tiles.
* Introduce tile size based zoom level
* Add debug handler for testing insets
* Adjust handlers
* Set fov to that of maplibre-gl-js
* Move view projection calculation to view_state
* Increase thickness of debug lines
* Increase DEFAULT_TILE_VIEW_PATTERN_SIZE
* Fix mdbook script
* Enable debug plugin only in debug-like modes
* Move view_state to render module
* Remove 3D terrain specific code for transform
* Remove overwriting z
* Start to change camera movement
* Change camera transformation to rotate around (x,y,0) instead of (x,y,camera_height)
* Add all insets to debug handler
* First completely working version which can yaw, pitch and roll
* Update distance calculation
* Set max/min pitch/yaw to 30
* Test stackoverflow approach
* Fix far z with moved center
* Use default instead of ::new
* Implement basic raster rendering
* Fix web builds for raster rendering (e.g. APC)
* Implement plugin system using a "Tile Component System" pattern heavily inspired by bevy
* Remove tile_repository and integrate into world structures
* Migrate from specific stages to systems
* Introduce a RasterPlugin and VectorPlugin
* Add feature gate for headless rendering to demo
* Remove pipelines for simplicity
* Add message tags using Labels
* Add run config
* Add show bash path for Windows CI
* Do not use symlinks for cargo binstall
* Introduce DebugPlugin
* Introduce HeadlessPlugin
* Add more layers to vector processing benchmark
---------
Co-authored-by: Quillasp <soulaymane.lamrani@heig-vd.ch>
Co-authored-by: Antoine Drabble <antoine.drabble@gmail.com>
* Add geometry index
* Switch to info level for run config
* Add setting for present_mode
* Remove unused file
* Adjust web to new message
* Rename transferables
* Remove bytemuck and add unsafe code
* Add Result to return type of APCs
* Add Result to Processable
* Resolve unwraps
* Remove unwraps and remove unused code
* Add render graph from bevy with graph runner
* Add surface
* Continue to refactor renderer
* Make ScheduleMethod object safe in order to be able to have a dyn object in MapContext
* Cleanup, add some more documentation and simplify
Support resizing
Fix late init
* Update apple docs
* Give bevy attribution
* Pass github token
* Improve some comments