zed/crates/gpui_wgpu/Cargo.toml
Albab Hasan 1c16e13a2b
gpui_wgpu: Respect buffer_font_fallbacks setting (#54878)
wires user configured `FontFallbacks` into the cosmic text path. the
chain is resolved at font load time and stored on each `LoadedFont`.
`layout_line` splits each `FontRun` into spans by codepoint coverage and
emits one `Attrs` per slot so cosmic text shapes each span with the
correct face. inheriting codepoints (marks, zwj, zwnj, variation
selectors) stick to the current span so emoji zwj sequences and
combining marks are not torn across faces.

Closes #17254

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] Performance impact has been considered and is acceptable
- [x] Tests cover the new/changed behavior
- [] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- added support for `buffer_font_fallbacks` on linux
2026-05-15 15:34:18 +00:00

54 lines
No EOL
1.3 KiB
TOML

[package]
name = "gpui_wgpu"
version = "0.1.0"
edition.workspace = true
publish.workspace = true
license = "Apache-2.0"
[lints]
workspace = true
[lib]
path = "src/gpui_wgpu.rs"
[features]
default = []
font-kit = ["dep:font-kit"]
[dependencies]
gpui.workspace = true
anyhow.workspace = true
bytemuck = "1"
collections.workspace = true
cosmic-text = "0.17.0"
etagere = "0.2"
itertools.workspace = true
log.workspace = true
parking_lot.workspace = true
profiling.workspace = true
raw-window-handle = "0.6"
smallvec.workspace = true
swash = "0.2.6"
unicode-segmentation.workspace = true
gpui_util.workspace = true
wgpu.workspace = true
# Optional: only needed on platforms with multiple font sources (e.g. Linux)
# WARNING: If you change this, you must also publish a new version of zed-font-kit to crates.io
font-kit = { git = "https://github.com/zed-industries/font-kit", rev = "94b0f28166665e8fd2f53ff6d268a14955c82269", package = "zed-font-kit", version = "0.14.1-zed", optional = true }
[target.'cfg(not(target_family = "wasm"))'.dependencies]
pollster.workspace = true
[target.'cfg(target_family = "wasm")'.dependencies]
wasm-bindgen.workspace = true
wasm-bindgen-futures = "0.4"
web-sys = { version = "0.3", features = ["HtmlCanvasElement"] }
js-sys = "0.3"
[dev-dependencies]
criterion.workspace = true
[[bench]]
name = "layout_line"
harness = false