diff --git a/.github/actions/desktop/action.yml b/.github/actions/desktop/action.yml
index 861e69a8..6fab34df 100644
--- a/.github/actions/desktop/action.yml
+++ b/.github/actions/desktop/action.yml
@@ -19,8 +19,8 @@ runs:
run: sudo apt-get install -y libwayland-dev libxkbcommon-dev # Required for winit
- name: Build
shell: bash
- run: cargo build -p maplibre-example
+ run: cargo build -p maplibre-demo
- uses: actions/upload-artifact@v2
with:
name: maplibre-rs
- path: target/x86_64-unknown-linux-gnu/debug/maplibre-example
\ No newline at end of file
+ path: target/x86_64-unknown-linux-gnu/debug/maplibre-demo
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index c76bf80e..a197b5b4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,9 +6,6 @@ target/
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock
-!maplibre-android/Cargo.lock
-!maplibre-apple/Cargo.lock
-!maplibre-example/Cargo.lock
# These are backup files generated by rustfmt
**/*.rs.bk
diff --git a/.idea/maplibre-rs.iml b/.idea/maplibre-rs.iml
index fe1436b4..ec2f058d 100644
--- a/.idea/maplibre-rs.iml
+++ b/.idea/maplibre-rs.iml
@@ -5,17 +5,17 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/.idea/runConfigurations/Run_desktop__release_.xml b/.idea/runConfigurations/Run_demo__debug_enable_tracing_.xml
similarity index 74%
rename from .idea/runConfigurations/Run_desktop__release_.xml
rename to .idea/runConfigurations/Run_demo__debug_enable_tracing_.xml
index 5530719e..eb8ee8c7 100644
--- a/.idea/runConfigurations/Run_desktop__release_.xml
+++ b/.idea/runConfigurations/Run_demo__debug_enable_tracing_.xml
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/.idea/runConfigurations/Render.xml b/.idea/runConfigurations/Run_demo__release_.xml
similarity index 77%
rename from .idea/runConfigurations/Render.xml
rename to .idea/runConfigurations/Run_demo__release_.xml
index fdfe34df..9dc6034c 100644
--- a/.idea/runConfigurations/Render.xml
+++ b/.idea/runConfigurations/Run_demo__release_.xml
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/.idea/runConfigurations/Run_desktop__debug_enable_tracing_.xml b/.idea/runConfigurations/Run_demo__release_enable_tracing_.xml
similarity index 73%
rename from .idea/runConfigurations/Run_desktop__debug_enable_tracing_.xml
rename to .idea/runConfigurations/Run_demo__release_enable_tracing_.xml
index 2e3d0d9d..da2db095 100644
--- a/.idea/runConfigurations/Run_desktop__debug_enable_tracing_.xml
+++ b/.idea/runConfigurations/Run_demo__release_enable_tracing_.xml
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/.idea/runConfigurations/Run_desktop__release_enable_tracing_.xml b/.idea/runConfigurations/Run_desktop__release_enable_tracing_.xml
deleted file mode 100644
index b0478c8d..00000000
--- a/.idea/runConfigurations/Run_desktop__release_enable_tracing_.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/runConfigurations/Tesselation.xml b/.idea/runConfigurations/Tesselation.xml
deleted file mode 100644
index 7711e736..00000000
--- a/.idea/runConfigurations/Tesselation.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Cargo.toml b/Cargo.toml
index a223a230..f4a1279e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -5,17 +5,14 @@ resolver = "2"
members = [
"maplibre",
"maplibre-core",
- "maplibre-android",
- "maplibre-apple",
- "maplibre-web",
-
- "maplibre-style",
- "maplibre-tilejson",
-
- "maplibre-benchmark",
"maplibre-build-tools",
+ "maplibre-demo",
- "maplibre-example",
+ "android",
+ "apple",
+ "web",
+
+ "benchmarks",
]
[profile.release]
diff --git a/maplibre-android/Cargo.toml b/android/Cargo.toml
similarity index 89%
rename from maplibre-android/Cargo.toml
rename to android/Cargo.toml
index 7feef142..c6e5e349 100644
--- a/maplibre-android/Cargo.toml
+++ b/android/Cargo.toml
@@ -1,9 +1,10 @@
[package]
-name = "maplibre-android"
+name = "android"
version = "0.1.0"
description = ""
categories = []
edition = "2021"
+publish = false
[dependencies]
maplibre = { path = "../maplibre" }
@@ -13,6 +14,7 @@ env_logger = "0.9"
ndk-glue = "0.5.0" # version is required by winit
[lib]
+name = "maplibre_android"
crate-type = ["rlib", "cdylib"]
[package.metadata.android]
diff --git a/maplibre-android/src/lib.rs b/android/src/lib.rs
similarity index 89%
rename from maplibre-android/src/lib.rs
rename to android/src/lib.rs
index 7d90379d..321fe906 100644
--- a/maplibre-android/src/lib.rs
+++ b/android/src/lib.rs
@@ -4,7 +4,7 @@ pub use std::time::Instant;
// TODO clippy
// #[cfg(not(target_os = "android"))]
-// compile_error!("maplibre-android works only on android.");
+// compile_error!("android works only on android.");
#[cfg_attr(target_os = "android", ndk_glue::main(backtrace = "on"))]
pub fn main() {
diff --git a/maplibre-apple/Cargo.toml b/apple/Cargo.toml
similarity index 76%
rename from maplibre-apple/Cargo.toml
rename to apple/Cargo.toml
index 4eab3fa4..be8b6c43 100644
--- a/maplibre-apple/Cargo.toml
+++ b/apple/Cargo.toml
@@ -1,13 +1,15 @@
[package]
-name = "maplibre-apple"
+name = "apple"
version = "0.1.0"
description = ""
categories = []
edition = "2021"
+publish = false
[dependencies]
maplibre = { path = "../maplibre" }
env_logger = "0.9"
[lib]
+name = "maplibre_apple"
crate-type = ["staticlib"]
diff --git a/maplibre-apple/src/lib.rs b/apple/src/lib.rs
similarity index 88%
rename from maplibre-apple/src/lib.rs
rename to apple/src/lib.rs
index c3452a37..7fcb3571 100644
--- a/maplibre-apple/src/lib.rs
+++ b/apple/src/lib.rs
@@ -4,7 +4,7 @@ pub use std::time::Instant;
// TODO clippy
// #[cfg(not(any(target_os = "macos", target_os = "ios")))]
-// compile_error!("maplibre-apple works only on macOS and iOS.");
+// compile_error!("apple works only on macOS and iOS.");
#[no_mangle]
pub fn maplibre_apple_main() {
diff --git a/maplibre-benchmark/Cargo.toml b/benchmarks/Cargo.toml
similarity index 100%
rename from maplibre-benchmark/Cargo.toml
rename to benchmarks/Cargo.toml
diff --git a/maplibre-benchmark/benches/render.rs b/benchmarks/benches/render.rs
similarity index 100%
rename from maplibre-benchmark/benches/render.rs
rename to benchmarks/benches/render.rs
diff --git a/maplibre-benchmark/benches/tessellation.rs b/benchmarks/benches/tessellation.rs
similarity index 100%
rename from maplibre-benchmark/benches/tessellation.rs
rename to benchmarks/benches/tessellation.rs
diff --git a/maplibre-benchmark/src/lib.rs b/benchmarks/src/lib.rs
similarity index 100%
rename from maplibre-benchmark/src/lib.rs
rename to benchmarks/src/lib.rs
diff --git a/justfile b/justfile
index cd3067e0..7982a5ab 100644
--- a/justfile
+++ b/justfile
@@ -27,10 +27,10 @@ nightly-toolchain:
rustup component add rust-src --toolchain $RUSTUP_TOOLCHAIN
webpack-webgl-production: nightly-toolchain
- cd maplibre-web/web && npm install && npm run webgl-production-build
+ cd web/web && npm install && npm run webgl-production-build
webpack-production: nightly-toolchain
- cd maplibre-web/web && npm install && npm run production-build
+ cd web/web && npm install && npm run production-build
# TODO
# wasm-pack-webgl: nightly-toolchain
@@ -65,10 +65,10 @@ install-cargo-apk:
cargo install cargo-apk
run-apk: nightly-toolchain install-cargo-apk
- cargo apk run -p maplibre-android --lib -Zbuild-std
+ cargo apk run -p android --lib -Zbuild-std
build-apk: nightly-toolchain install-cargo-apk
- cargo apk build -p maplibre-android --lib -Zbuild-std
+ cargo apk build -p android --lib -Zbuild-std
# language=bash
print-android-env:
diff --git a/maplibre-core/Cargo.toml b/maplibre-core/Cargo.toml
index 105eaff9..b209ceba 100644
--- a/maplibre-core/Cargo.toml
+++ b/maplibre-core/Cargo.toml
@@ -52,9 +52,6 @@ raw-window-handle = "0.4"
tracing = { version = "0.1" }
tracing-subscriber = { version = "0.3", optional = true }
-maplibre-style = { path = "../maplibre-style" }
-maplibre-tilejson = { path = "../maplibre-tilejson" }
-
cgmath = "0.18"
geo = { version = "0.19" }
@@ -80,5 +77,9 @@ bytemuck_derive = "1.0"
include_dir = "0.7.2"
+serde = { version = "1.0", features = ["derive"] }
+csscolorparser = { version = "0.5", features = ["serde", "cint"]}
+cint = "0.2"
+
[build-dependencies]
maplibre-build-tools = { path = "../maplibre-build-tools" }
diff --git a/maplibre-core/build.rs b/maplibre-core/build.rs
index fbb07f30..cbda4dbf 100644
--- a/maplibre-core/build.rs
+++ b/maplibre-core/build.rs
@@ -21,6 +21,28 @@ fn clean_static_tiles() -> PathBuf {
out
}
+/*use std::fs::File;
+use std::io::BufReader;
+use serde_json::Value;*/
+
+fn generate_type_def() -> Option {
+ /* let f = File::open("style-spec-v8.json").unwrap();
+ let mut reader = BufReader::new(f);
+ let result = serde_json::from_reader::<_, Value>(&mut reader).unwrap();
+
+ let spec_root = result.as_object()?;
+ let version = &spec_root["$version"].as_i64()?;
+ let root = &spec_root["$root"].as_object()?;
+
+ for x in spec_root {
+
+ }
+
+ println!("cargo:warning={:?}", version);*/
+
+ Some(5)
+}
+
fn embed_tiles_statically() {
let out = clean_static_tiles();
diff --git a/maplibre-core/src/coords.rs b/maplibre-core/src/coords.rs
index f3e339c5..8a8b3e80 100644
--- a/maplibre-core/src/coords.rs
+++ b/maplibre-core/src/coords.rs
@@ -6,7 +6,7 @@ use std::fmt::Formatter;
use cgmath::num_traits::Pow;
use cgmath::{AbsDiffEq, Matrix4, Point3, Vector3};
-use maplibre_style::source::TileAddressingScheme;
+use crate::style::source::TileAddressingScheme;
use crate::util::math::{div_floor, Aabb2};
use crate::util::SignificantlyDifferent;
diff --git a/maplibre-core/src/io/source_client.rs b/maplibre-core/src/io/source_client.rs
index 2a3eebf6..99a1ceb8 100644
--- a/maplibre-core/src/io/source_client.rs
+++ b/maplibre-core/src/io/source_client.rs
@@ -1,6 +1,6 @@
use crate::coords::WorldTileCoords;
use crate::error::Error;
-use maplibre_style::source::TileAddressingScheme;
+use crate::style::source::TileAddressingScheme;
pub struct HttpSourceClient {
#[cfg(not(target_arch = "wasm32"))]
diff --git a/maplibre-core/src/lib.rs b/maplibre-core/src/lib.rs
index 17e5be23..e35baaaf 100644
--- a/maplibre-core/src/lib.rs
+++ b/maplibre-core/src/lib.rs
@@ -11,6 +11,8 @@ pub(crate) mod render;
pub(crate) mod tessellation;
pub(crate) mod util;
pub(crate) mod winit;
+pub(crate) mod style;
+pub(crate) mod tilejson;
// Used for benchmarking
pub mod benchmarking;
@@ -20,7 +22,7 @@ use crate::map_state::{MapState, Runnable};
use crate::render::render_state::RenderState;
use crate::window::{WindowFactory, WindowSize};
pub use io::scheduler::ScheduleMethod;
-use maplibre_style::Style;
+use crate::style::Style;
pub use platform::schedule_method::*;
pub struct Map {
diff --git a/maplibre-core/src/map_state.rs b/maplibre-core/src/map_state.rs
index 514fcb33..5531841c 100644
--- a/maplibre-core/src/map_state.rs
+++ b/maplibre-core/src/map_state.rs
@@ -17,7 +17,7 @@ use crate::io::source_client::{HttpSourceClient, SourceClient};
use crate::io::tile_cache::TileCache;
use crate::io::tile_request_state::TileRequestState;
use crate::io::{TessellateMessage, TileRequest, TileTessellateMessage};
-use maplibre_style::Style;
+use crate::style::Style;
use wgpu::SurfaceError;
pub trait Runnable {
diff --git a/maplibre-core/src/render/buffer_pool.rs b/maplibre-core/src/render/buffer_pool.rs
index f69c3eb6..20a31881 100644
--- a/maplibre-core/src/render/buffer_pool.rs
+++ b/maplibre-core/src/render/buffer_pool.rs
@@ -4,7 +4,7 @@ use std::marker::PhantomData;
use std::mem::size_of;
use std::ops::Range;
-use maplibre_style::layer::StyleLayer;
+use crate::style::layer::StyleLayer;
use wgpu::BufferAddress;
use crate::coords::{Quadkey, WorldTileCoords};
diff --git a/maplibre-core/src/render/render_state.rs b/maplibre-core/src/render/render_state.rs
index dd667d65..eebe61f9 100644
--- a/maplibre-core/src/render/render_state.rs
+++ b/maplibre-core/src/render/render_state.rs
@@ -5,7 +5,7 @@ use std::{cmp, iter};
use tracing;
use wgpu::{Buffer, Limits, Queue};
-use maplibre_style::Style;
+use crate::style::Style;
use crate::coords::{ViewRegion, Zoom};
diff --git a/maplibre-style/src/layer.rs b/maplibre-core/src/style/layer.rs
similarity index 100%
rename from maplibre-style/src/layer.rs
rename to maplibre-core/src/style/layer.rs
diff --git a/maplibre-style/src/lib.rs b/maplibre-core/src/style/mod.rs
similarity index 70%
rename from maplibre-style/src/lib.rs
rename to maplibre-core/src/style/mod.rs
index 7abf1589..be030362 100644
--- a/maplibre-style/src/lib.rs
+++ b/maplibre-core/src/style/mod.rs
@@ -2,6 +2,6 @@ pub mod layer;
pub mod source;
mod style;
-pub use crate::style::*;
+pub use style::*;
pub use cint::*;
diff --git a/maplibre-style/src/source.rs b/maplibre-core/src/style/source.rs
similarity index 100%
rename from maplibre-style/src/source.rs
rename to maplibre-core/src/style/source.rs
diff --git a/maplibre-style/src/style.rs b/maplibre-core/src/style/style.rs
similarity index 98%
rename from maplibre-style/src/style.rs
rename to maplibre-core/src/style/style.rs
index 2ece4c20..bdcfce9c 100644
--- a/maplibre-style/src/style.rs
+++ b/maplibre-core/src/style/style.rs
@@ -1,5 +1,5 @@
-use crate::layer::{LayerPaint, LinePaint, StyleLayer};
-use crate::source::Source;
+use crate::style::layer::{LayerPaint, LinePaint, StyleLayer};
+use crate::style::source::Source;
use csscolorparser::Color;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
diff --git a/maplibre-core/src/tilejson/mod.rs b/maplibre-core/src/tilejson/mod.rs
new file mode 100644
index 00000000..7b4805fa
--- /dev/null
+++ b/maplibre-core/src/tilejson/mod.rs
@@ -0,0 +1,3 @@
+mod tilejson;
+
+pub use tilejson::*;
diff --git a/maplibre-tilejson/src/tilejson.rs b/maplibre-core/src/tilejson/tilejson.rs
similarity index 100%
rename from maplibre-tilejson/src/tilejson.rs
rename to maplibre-core/src/tilejson/tilejson.rs
diff --git a/maplibre-style/style-spec-v8.json b/maplibre-core/style-spec-v8.json
similarity index 100%
rename from maplibre-style/style-spec-v8.json
rename to maplibre-core/style-spec-v8.json
diff --git a/maplibre-example/Cargo.toml b/maplibre-demo/Cargo.toml
similarity index 94%
rename from maplibre-example/Cargo.toml
rename to maplibre-demo/Cargo.toml
index dd4b2837..ed0630c1 100644
--- a/maplibre-example/Cargo.toml
+++ b/maplibre-demo/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "maplibre-example"
+name = "maplibre-demo"
version = "0.1.0"
description = ""
categories = []
diff --git a/maplibre-example/src/main.rs b/maplibre-demo/src/main.rs
similarity index 100%
rename from maplibre-example/src/main.rs
rename to maplibre-demo/src/main.rs
diff --git a/maplibre-style/.gitignore b/maplibre-style/.gitignore
deleted file mode 100644
index e69de29b..00000000
diff --git a/maplibre-style/Cargo.toml b/maplibre-style/Cargo.toml
deleted file mode 100644
index 5a9dbee3..00000000
--- a/maplibre-style/Cargo.toml
+++ /dev/null
@@ -1,19 +0,0 @@
-[package]
-name = "maplibre-style"
-version = "0.1.0"
-description = "A library for decoding style specs"
-readme = "README.md"
-categories = ["encoding"]
-edition = "2021"
-build = "build.rs"
-
-[dependencies]
-serde = { version = "1.0", features = ["derive"] }
-csscolorparser = { version = "0.5", features = ["serde", "cint"]}
-cint = "0.2"
-
-[build-dependencies]
-serde_json = "1.0"
-
-[dev-dependencies]
-serde_json = "1.0"
diff --git a/maplibre-style/build.rs b/maplibre-style/build.rs
deleted file mode 100644
index 24436b69..00000000
--- a/maplibre-style/build.rs
+++ /dev/null
@@ -1,25 +0,0 @@
-/*use std::fs::File;
-use std::io::BufReader;
-use serde_json::Value;*/
-
-fn generate_type_def() -> Option {
- /* let f = File::open("style-spec-v8.json").unwrap();
- let mut reader = BufReader::new(f);
- let result = serde_json::from_reader::<_, Value>(&mut reader).unwrap();
-
- let spec_root = result.as_object()?;
- let version = &spec_root["$version"].as_i64()?;
- let root = &spec_root["$root"].as_object()?;
-
- for x in spec_root {
-
- }
-
- println!("cargo:warning={:?}", version);*/
-
- Some(5)
-}
-
-fn main() {
- generate_type_def();
-}
diff --git a/maplibre-tilejson/.gitignore b/maplibre-tilejson/.gitignore
deleted file mode 100644
index e69de29b..00000000
diff --git a/maplibre-tilejson/Cargo.toml b/maplibre-tilejson/Cargo.toml
deleted file mode 100644
index ce449734..00000000
--- a/maplibre-tilejson/Cargo.toml
+++ /dev/null
@@ -1,12 +0,0 @@
-[package]
-name = "maplibre-tilejson"
-version = "0.1.0"
-description = "A library for decoding and encoding tilejson specs"
-categories = []
-edition = "2021"
-
-[dependencies]
-serde = { version = "1.0", features = ["derive"] }
-
-[dev-dependencies]
-serde_json = "1.0"
diff --git a/maplibre-tilejson/src/lib.rs b/maplibre-tilejson/src/lib.rs
deleted file mode 100644
index 26bfa700..00000000
--- a/maplibre-tilejson/src/lib.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-mod tilejson;
-
-pub use crate::tilejson::*;
diff --git a/maplibre-web/Cargo.toml b/web/Cargo.toml
similarity index 92%
rename from maplibre-web/Cargo.toml
rename to web/Cargo.toml
index cb683d45..63c4b0ec 100644
--- a/maplibre-web/Cargo.toml
+++ b/web/Cargo.toml
@@ -1,9 +1,10 @@
[package]
-name = "maplibre-web"
+name = "web"
version = "0.1.0"
description = ""
categories = []
edition = "2021"
+publish = false
[features]
web-webgl = ["maplibre-core/web-webgl"]
diff --git a/maplibre-web/src/lib.rs b/web/src/lib.rs
similarity index 58%
rename from maplibre-web/src/lib.rs
rename to web/src/lib.rs
index f547d09a..1f315e05 100644
--- a/maplibre-web/src/lib.rs
+++ b/web/src/lib.rs
@@ -2,4 +2,4 @@ pub use maplibre_core::*;
// TODO clippy
// #[cfg(not(target_arch = "wasm32"))]
-// compile_error!("maplibre-web works only on wasm32.");
+// compile_error!("web works only on wasm32.");
diff --git a/maplibre-web/web/.gitignore b/web/web/.gitignore
similarity index 100%
rename from maplibre-web/web/.gitignore
rename to web/web/.gitignore
diff --git a/maplibre-web/web/decl.d.ts b/web/web/decl.d.ts
similarity index 100%
rename from maplibre-web/web/decl.d.ts
rename to web/web/decl.d.ts
diff --git a/maplibre-web/web/index.ts b/web/web/index.ts
similarity index 100%
rename from maplibre-web/web/index.ts
rename to web/web/index.ts
diff --git a/maplibre-web/web/package-lock.json b/web/web/package-lock.json
similarity index 100%
rename from maplibre-web/web/package-lock.json
rename to web/web/package-lock.json
diff --git a/maplibre-web/web/package.json b/web/web/package.json
similarity index 100%
rename from maplibre-web/web/package.json
rename to web/web/package.json
diff --git a/maplibre-web/web/pool_worker.ts b/web/web/pool_worker.ts
similarity index 100%
rename from maplibre-web/web/pool_worker.ts
rename to web/web/pool_worker.ts
diff --git a/maplibre-web/web/service-worker.ts b/web/web/service-worker.ts
similarity index 100%
rename from maplibre-web/web/service-worker.ts
rename to web/web/service-worker.ts
diff --git a/maplibre-web/web/src/index.ejs b/web/web/src/index.ejs
similarity index 100%
rename from maplibre-web/web/src/index.ejs
rename to web/web/src/index.ejs
diff --git a/maplibre-web/web/tsconfig.json b/web/web/tsconfig.json
similarity index 100%
rename from maplibre-web/web/tsconfig.json
rename to web/web/tsconfig.json
diff --git a/maplibre-web/web/types.ts b/web/web/types.ts
similarity index 100%
rename from maplibre-web/web/types.ts
rename to web/web/types.ts
diff --git a/maplibre-web/web/webpack.config.js b/web/web/webpack.config.js
similarity index 100%
rename from maplibre-web/web/webpack.config.js
rename to web/web/webpack.config.js
diff --git a/maplibre-web/web/worker.ts b/web/web/worker.ts
similarity index 100%
rename from maplibre-web/web/worker.ts
rename to web/web/worker.ts