[package] name = "egui" version.workspace = true authors = ["Emil Ernerfeldt "] description = "An easy-to-use immediate mode GUI that runs on both web and native" edition.workspace = true rust-version.workspace = true homepage = "https://github.com/emilk/egui" license.workspace = true readme = "../../README.md" repository = "https://github.com/emilk/egui" categories = ["gui", "game-development"] keywords = ["gui", "imgui", "immediate", "portable", "gamedev"] include = ["../LICENSE-APACHE", "../LICENSE-MIT", "**/*.rs", "Cargo.toml"] [package.metadata.docs.rs] all-features = true [lib] [features] default = ["default_fonts"] ## Exposes detailed accessibility implementation required by platform ## accessibility APIs. Also requires support in the egui integration. accesskit = ["dep:accesskit"] ## [`bytemuck`](https://docs.rs/bytemuck) enables you to cast [`epaint::Vertex`], [`emath::Vec2`] etc to `&[u8]`. bytemuck = ["epaint/bytemuck"] ## Show a debug-ui on hover including the stacktrace to the hovered item. ## This is very useful in finding the code that creates a part of the UI. ## Does not work on web. callstack = ["dep:backtrace"] ## [`cint`](https://docs.rs/cint) enables interoperability with other color libraries. cint = ["epaint/cint"] ## Enable the [`hex_color`] macro. color-hex = ["epaint/color-hex"] ## This will automatically detect deadlocks due to double-locking on the same thread. ## If your app freezes, you may want to enable this! ## Only affects [`epaint::mutex::RwLock`] (which egui uses a lot). deadlock_detection = ["epaint/deadlock_detection"] ## If set, egui will use `include_bytes!` to bundle some fonts. ## If you plan on specifying your own fonts you may disable this feature. default_fonts = ["epaint/default_fonts"] ## Enable additional checks if debug assertions are enabled (debug builds). extra_debug_asserts = ["epaint/extra_debug_asserts"] ## Always enable additional checks. extra_asserts = ["epaint/extra_asserts"] ## Turn on the `log` feature, that makes egui log some errors using the [`log`](https://docs.rs/log) crate. log = ["dep:log", "epaint/log"] ## [`mint`](https://docs.rs/mint) enables interoperability with other math libraries such as [`glam`](https://docs.rs/glam) and [`nalgebra`](https://docs.rs/nalgebra). mint = ["epaint/mint"] ## Enable persistence of memory (window positions etc). persistence = ["serde", "epaint/serde", "ron"] ## Enable profiling with the [`puffin`](https://docs.rs/puffin) crate. ## ## Only enabled on native, because of the low resolution (1ms) of clocks in browsers. puffin = ["dep:puffin", "epaint/puffin"] ## Enable parallel tessellation using [`rayon`](https://docs.rs/rayon). ## ## This can help performance for graphics-intense applications. rayon = ["epaint/rayon"] ## Allow serialization using [`serde`](https://docs.rs/serde). serde = ["dep:serde", "epaint/serde", "accesskit?/serde"] ## Change Vertex layout to be compatible with unity unity = ["epaint/unity"] [dependencies] epaint = { workspace = true, default-features = false } ahash.workspace = true nohash-hasher.workspace = true #! ### Optional dependencies accesskit = { version = "0.12", optional = true } backtrace = { workspace = true, optional = true } ## Enable this when generating docs. document-features = { workspace = true, optional = true } log = { workspace = true, optional = true } puffin = { workspace = true, optional = true } ron = { version = "0.8", optional = true } serde = { version = "1", optional = true, features = ["derive", "rc"] }