[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/main/crates/epaint" license = "MIT OR Apache-2.0" readme = "README.md" repository = "https://github.com/emilk/egui/tree/main/crates/epaint" categories = ["graphics", "gui"] keywords = ["graphics", "gui", "egui"] include = [ "../LICENSE-APACHE", "../LICENSE-MIT", "**/*.rs", "Cargo.toml" ] [lints] workspace = true [package.metadata.docs.rs] all-features = true rustdoc-args = ["--generate-link-to-definition"] [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"] ## 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 = ["epaint_default_fonts"] ## [`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 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 = [] ## Override and disable the unity feature ## This exists, so that when testing with --all-features, snapshots render correctly. _override_unity = [] [dependencies] emath.workspace = true ecolor.workspace = true ab_glyph = "0.2.11" ahash.workspace = true log.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. profiling = { workspace = true} #! ### Optional dependencies bytemuck = { workspace = true, optional = true, features = ["derive"] } ## Enable this when generating docs. document-features = { 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"] } epaint_default_fonts = { workspace = true, optional = true } [dev-dependencies] criterion.workspace = true mimalloc.workspace = true similar-asserts.workspace = true [[bench]] name = "benchmark" harness = false