feat: mostly reimpl text rendering

Signed-off-by: Schmarni <marnistromer@gmail.com>
This commit is contained in:
Schmarni
2025-06-25 11:50:57 +02:00
parent 51e8cfd1b2
commit 20d2917847
10 changed files with 411 additions and 240 deletions

154
Cargo.lock generated
View File

@@ -618,6 +618,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b8369c16b7c017437021341521f8b4a0d98e1c70113fb358c3258ae7d661d79"
dependencies = [
"bevy_internal",
"tracing",
]
[[package]]
name = "bevy-mesh-text-3d"
version = "0.1.0"
source = "git+https://github.com/terhechte/bevy-mesh-text-3d#77d8ae6935af636bcb85251b1debbc7f3d618f74"
dependencies = [
"bevy",
"cosmic-text 0.14.2",
"lyon",
"thiserror 2.0.12",
]
[[package]]
@@ -686,6 +698,7 @@ dependencies = [
"downcast-rs 2.0.1",
"log",
"thiserror 2.0.12",
"tracing",
"variadics_please",
"wasm-bindgen",
"web-sys",
@@ -861,6 +874,7 @@ dependencies = [
"serde",
"smallvec",
"thiserror 2.0.12",
"tracing",
"variadics_please",
]
@@ -1092,9 +1106,11 @@ dependencies = [
"bevy_ecs",
"bevy_utils",
"tracing",
"tracing-error",
"tracing-log",
"tracing-oslog",
"tracing-subscriber",
"tracing-tracy",
"tracing-wasm",
]
@@ -1165,16 +1181,6 @@ dependencies = [
"glam",
]
[[package]]
name = "bevy_mod_meshtext"
version = "0.1.0"
source = "git+https://github.com/Schmarni-Dev/bevy_mod_meshtext#b623971b5a4d0ee0a93a2f89096726b9b7c9c87a"
dependencies = [
"atomicow",
"bevy",
"meshtext",
]
[[package]]
name = "bevy_mod_openxr"
version = "0.3.0"
@@ -1388,11 +1394,13 @@ dependencies = [
"naga_oil",
"nonmax",
"offset-allocator",
"profiling",
"send_wrapper",
"serde",
"smallvec",
"thiserror 2.0.12",
"tracing",
"tracy-client",
"variadics_please",
"wasm-bindgen",
"web-sys",
@@ -1542,7 +1550,7 @@ dependencies = [
"bevy_transform",
"bevy_utils",
"bevy_window",
"cosmic-text",
"cosmic-text 0.13.2",
"serde",
"smallvec",
"sys-locale",
@@ -1913,16 +1921,6 @@ dependencies = [
"shlex",
]
[[package]]
name = "cdt"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b91b872294f63ef586b32aa94141561681aa35ca2d703960cca4f661f4e18184"
dependencies = [
"geometry-predicates",
"thiserror 1.0.69",
]
[[package]]
name = "cesu8"
version = "1.1.0"
@@ -2283,6 +2281,29 @@ dependencies = [
"unicode-segmentation",
]
[[package]]
name = "cosmic-text"
version = "0.14.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da46a9d5a8905cc538a4a5bceb6a4510de7a51049c5588c0114efce102bcbbe8"
dependencies = [
"bitflags 2.9.1",
"fontdb",
"log",
"rangemap",
"rustc-hash 1.1.0",
"rustybuzz",
"self_cell",
"smol_str",
"swash",
"sys-locale",
"ttf-parser 0.21.1",
"unicode-bidi",
"unicode-linebreak",
"unicode-script",
"unicode-segmentation",
]
[[package]]
name = "cpal"
version = "0.15.3"
@@ -2809,6 +2830,12 @@ dependencies = [
"serde_derive",
]
[[package]]
name = "float_next_after"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8"
[[package]]
name = "fnv"
version = "1.0.7"
@@ -2975,12 +3002,6 @@ dependencies = [
"version_check",
]
[[package]]
name = "geometry-predicates"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8dba84198cf199c11b83f1cb9243eaeb70dc50b719d2835ebf34bf2481bca010"
[[package]]
name = "gethostname"
version = "0.4.3"
@@ -3861,6 +3882,58 @@ dependencies = [
"tracing-subscriber",
]
[[package]]
name = "lyon"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91e7f9cda98b5430809e63ca5197b06c7d191bf7e26dfc467d5a3f0290e2a74f"
dependencies = [
"lyon_algorithms",
"lyon_tessellation",
]
[[package]]
name = "lyon_algorithms"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f13c9be19d257c7d37e70608ed858e8eab4b2afcea2e3c9a622e892acbf43c08"
dependencies = [
"lyon_path",
"num-traits",
]
[[package]]
name = "lyon_geom"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8af69edc087272df438b3ee436c4bb6d7c04aa8af665cfd398feae627dbd8570"
dependencies = [
"arrayvec",
"euclid",
"num-traits",
]
[[package]]
name = "lyon_path"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0047f508cd7a85ad6bad9518f68cce7b1bf6b943fb71f6da0ee3bc1e8cb75f25"
dependencies = [
"lyon_geom",
"num-traits",
]
[[package]]
name = "lyon_tessellation"
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "579d42360a4b09846eff2feef28f538696c7d6c7439bfa65874ff3cbe0951b2c"
dependencies = [
"float_next_after",
"lyon_path",
"num-traits",
]
[[package]]
name = "mach2"
version = "0.4.2"
@@ -3930,18 +4003,6 @@ dependencies = [
"autocfg",
]
[[package]]
name = "meshtext"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c68541f06674ef4bb1f84e3dca654998135ff1a8bb5a60cfbfe5b8615f8e555"
dependencies = [
"cdt",
"glam",
"owned_ttf_parser",
"ttf-parser 0.25.1",
]
[[package]]
name = "metal"
version = "0.31.0"
@@ -4959,6 +5020,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d"
dependencies = [
"profiling-procmacros",
"tracing",
]
[[package]]
@@ -5729,13 +5791,14 @@ name = "stardust-xr-server"
version = "0.45.0"
dependencies = [
"bevy",
"bevy_mod_meshtext",
"bevy-mesh-text-3d",
"bevy_mod_openxr",
"bevy_mod_xr",
"bevy_sk",
"clap",
"color-eyre",
"console-subscriber",
"cosmic-text 0.14.2",
"dashmap",
"directories",
"glam",
@@ -6339,8 +6402,7 @@ dependencies = [
[[package]]
name = "tracing-tracy"
version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eaa1852afa96e0fe9e44caa53dc0bd2d9d05e0f2611ce09f97f8677af56e4ba"
source = "git+https://github.com/nagisa/rust_tracy_client?tag=tracy-client-v0.18.1#7d084307f54959999ca3729c42bd4f4f3f0df54d"
dependencies = [
"tracing-core",
"tracing-subscriber",
@@ -6361,8 +6423,7 @@ dependencies = [
[[package]]
name = "tracy-client"
version = "0.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3927832d93178f979a970d26deed7b03510586e328f31b0f9ad7a73985b8332a"
source = "git+https://github.com/nagisa/rust_tracy_client?tag=tracy-client-v0.18.1#7d084307f54959999ca3729c42bd4f4f3f0df54d"
dependencies = [
"loom",
"once_cell",
@@ -6372,11 +6433,10 @@ dependencies = [
[[package]]
name = "tracy-client-sys"
version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c032d68a49d25d9012a864fef1c64ac17aee43c87e0477bf7301d8ae8bfea7b7"
source = "git+https://github.com/nagisa/rust_tracy_client?tag=tracy-client-v0.18.1#7d084307f54959999ca3729c42bd4f4f3f0df54d"
dependencies = [
"cc",
"windows-targets 0.52.6",
"windows-targets 0.48.5",
]
[[package]]