[package] name = "epaint" version.workspace = true authors = ["Emil Ernerfeldt "] description = "Minimal 2D graphics library for GUI work" edition.workspace = true rust-version.workspace = true homepage = "https://github.com/emilk/egui/tree/master/crates/epaint" license = "(MIT OR Apache-2.0) AND OFL-1.1 AND LicenseRef-UFL-1.0" # OFL and UFL used by default_fonts. See https://github.com/emilk/egui/issues/2321 readme = "README.md" repository = "https://github.com/emilk/egui/tree/master/crates/epaint" categories = ["graphics", "gui"] keywords = ["graphics", "gui", "egui"] include = [ "../LICENSE-APACHE", "../LICENSE-MIT", "**/*.rs", "Cargo.toml", "fonts/*.ttf", "fonts/*.txt", "fonts/OFL.txt", "fonts/UFL.txt", ] [lints] workspace = true [package.metadata.docs.rs] all-features = true [lib] [features] default = ["default_fonts"] ## [`bytemuck`](https://docs.rs/bytemuck) enables you to cast [`Vertex`] to `&[u8]`. bytemuck = ["dep:bytemuck", "emath/bytemuck", "ecolor/bytemuck"] ## [`cint`](https://docs.rs/cint) enables interoperability with other color libraries. cint = ["ecolor/cint"] ## Enable the [`hex_color`] macro. color-hex = ["ecolor/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 [`mutex::RwLock`] (which epaint and egui uses a lot). deadlock_detection = ["dep:backtrace"] ## If set, epaint will use `include_bytes!` to bundle some fonts. ## If you plan on specifying your own fonts you may disable this feature. default_fonts = [] ## Turn on the `log` feature, that makes egui log some errors using the [`log`](https://docs.rs/log) crate. log = ["dep: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 = ["emath/mint"] ## 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"] ## Enable parallel tessellation using [`rayon`](https://docs.rs/rayon). ## ## This can help performance for graphics-intense applications. rayon = ["dep:rayon"] ## Allow serialization using [`serde`](https://docs.rs/serde). serde = ["dep:serde", "ahash/serde", "emath/serde", "ecolor/serde"] ## Change Vertex layout to be compatible with unity unity = [] [dependencies] emath.workspace = true ecolor.workspace = true ab_glyph = "0.2.11" ahash.workspace = true nohash-hasher.workspace = true parking_lot.workspace = true # Using parking_lot over std::sync::Mutex gives 50% speedups in some real-world scenarios. #! ### Optional dependencies bytemuck = { workspace = true, optional = true, features = ["derive"] } ## Enable this when generating docs. document-features = { workspace = true, optional = true } log = { workspace = true, optional = true } puffin = { workspace = true, optional = true } rayon = { version = "1.7", optional = true } ## Allow serialization using [`serde`](https://docs.rs/serde) . serde = { workspace = true, optional = true, features = ["derive", "rc"] } # native: [target.'cfg(not(target_arch = "wasm32"))'.dependencies] backtrace = { workspace = true, optional = true } [dev-dependencies] criterion.workspace = true [[bench]] name = "benchmark" harness = false