[package]
name = "epaint"
version = "0.16.0"
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
description = "Minimal 2D graphics library for GUI work"
edition = "2021"
rust-version = "1.56"
homepage = "https://github.com/emilk/egui/tree/master/epaint"
license = "MIT OR Apache-2.0"
readme = "README.md"
repository = "https://github.com/emilk/egui/tree/master/epaint"
categories = ["graphics", "gui"]
keywords = ["graphics", "gui", "egui"]
include = [
  "../LICENSE-APACHE",
  "../LICENSE-MIT",
  "**/*.rs",
  "Cargo.toml",
  "fonts/*.ttf",
  "fonts/*.txt",
]

[package.metadata.docs.rs]
all-features = true

[lib]

[dependencies]
emath = { version = "0.16.0", path = "../emath" }

ab_glyph = "0.2.11"
ahash = { version = "0.7", features = ["std"], default-features = false }
atomic_refcell = { version = "0.1", optional = true } # Used instead of parking_lot when you are always using epaint in a single thread. About as fast as parking_lot. Panics on multi-threaded use.
bytemuck = { version = "1.7.2", features = ["derive"], optional = true }
cint = { version = "^0.2.2", optional = true }
nohash-hasher = "0.2"
parking_lot = { version = "0.11", optional = true } # Using parking_lot over std::sync::Mutex gives 50% speedups in some real-world scenarios.
serde = { version = "1", features = ["derive"], optional = true }

[features]
default = ["default_fonts", "multi_threaded"]

# implement bytemuck on most types.
convert_bytemuck = ["bytemuck", "emath/bytemuck"]

# 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 = []

# Enable additional checks if debug assertions are enabled (debug builds).
extra_debug_asserts = ["emath/extra_debug_asserts"]
# Always enable additional checks.
extra_asserts = ["emath/extra_asserts"]

# Add compatability with https://github.com/kvark/mint
mint = ["emath/mint"]

# implement serde on most types.
serialize = ["serde", "ahash/serde", "emath/serde"]

single_threaded = ["atomic_refcell"]

# Only needed if you plan to use the same fonts from multiple threads.
# It comes with a minor performance impact.
multi_threaded = ["parking_lot"]

[dev-dependencies]
criterion = { version = "0.3", default-features = false }

[[bench]]
name = "benchmark"
harness = false
