Merge pull request #78 from maxammann/architecture

Update architecture design artifacts
This commit is contained in:
Max Ammann 2022-06-03 15:27:03 +02:00 committed by GitHub
parent 377c58c97a
commit 4a57d052d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 56 additions and 25 deletions

View File

@ -130,3 +130,8 @@ cargo doc --open
```
You can also view the up-to-date documentation [here](https://maplibre.org/maplibre-rs/docs/api/maplibre/).
## Acknowledgements
The renderer of maplibre-rs is heavily based on the renderer of [bevy](https://bevyengine.org/). Bevy's renderer was
forked into this project in order to have a solid and generic base.

1
docs/.gitignore vendored
View File

@ -1 +1,2 @@
book
*.bkp

View File

@ -9,7 +9,8 @@
- [Development Guide](./development-guide/index.md)
- [Building](./development-guide/building.md)
- [How to Run Demos](./development-guide/how-to-run.md)
- [Building Libraries](./development-guide/building-libraries.md)
- [Debugging](./development-guide/debugging.md)

View File

@ -8,15 +8,11 @@ The big picture of wgpu is as follows:
A simplified version is shown below:
![](./figures/gpu-stack.drawio.svg)
![](./figures/render-stack.drawio.svg)
Notes:
* wgpu is able to create an interface through which we can reach any device with a GPU.
## OS Architecture
![](./figures/os-stack.drawio.svg)
Notes:
* The ability to use shared memory or the atomic instruction set of WASM comes by enabling compilation features.
* `threads` support here does not introduce threads like we know them from Linux. It introduces

View File

@ -1,16 +1,28 @@
# Design
<script src="https://unpkg.com/svg-pan-zoom@3.6.1/dist/svg-pan-zoom.min.js" >
<script src="https://unpkg.com/@panzoom/panzoom@4.5.0/dist/panzoom.min.js"></script>
</script>
## Domain Model
<embed style="border-style: solid; width: 100%" type="image/svg+xml" src="./figures/domain-model.drawio.svg" id="my-embed"/>
<div style="overflow: hidden; border-style: solid; width: 110%">
<img src="./figures/domain-model.drawio.svg" class="diagram" />
</div>
## Data Model
<div style="overflow: hidden; border-style: solid; width: 110%">
<img src="./figures/data-model.drawio.svg" class="diagram" />
</div>
## Crate and Project Structure
<div style="overflow: hidden; border-style: solid; width: 110%">
<img src="./figures/crate-and-projects-structure.drawio.svg" class="diagram" />
</div>
<script>
document.getElementById('my-embed').addEventListener('load', function(){
let pan = svgPanZoom(document.getElementById('my-embed'), {controlIconsEnabled: true});
pan.resize();
pan.pan();
pan.center();
Array.from(document.getElementsByClassName('diagram')).forEach(e => {
panzoom = Panzoom(e, {});
e.parentElement.addEventListener('wheel', panzoom.zoomWithWheel)
})
</script>
</script>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 22 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 53 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 27 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 30 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -0,0 +1,3 @@
# Building Libraries
TODO

View File

@ -2,4 +2,9 @@
# Introduction
maplibre-rs is a portable and performant vector maps renderer.
maplibre-rs is a portable and performant vector maps renderer.
## Name
The name of the library is "maplibre-rs". The camel-case version of it is "MapLibreRs".