[package] name = "egui-winit" version.workspace = true authors = ["Emil Ernerfeldt "] description = "Bindings for using egui with winit" edition.workspace = true rust-version.workspace = true homepage = "https://github.com/emilk/egui/tree/master/crates/egui-winit" license.workspace = true readme = "README.md" repository = "https://github.com/emilk/egui/tree/master/crates/egui-winit" categories = ["gui", "game-development"] keywords = ["winit", "egui", "gui", "gamedev"] include = ["../LICENSE-APACHE", "../LICENSE-MIT", "**/*.rs", "Cargo.toml"] [lints] workspace = true [package.metadata.docs.rs] all-features = true rustdoc-args = ["--generate-link-to-definition"] [features] default = ["clipboard", "links", "wayland", "winit/default", "x11"] ## Enable platform accessibility API implementations through [AccessKit](https://accesskit.dev/). accesskit = ["accesskit_winit", "egui/accesskit"] # Allow crates to choose an android-activity backend via Winit # - It's important that most applications should not have to depend on android-activity directly, and can # rely on Winit to pull in a suitable version (unlike most Rust crates, any version conflicts won't link) # - It's also important that we don't impose an android-activity backend by taking this choice away from applications. ## Enable the `game-activity` backend via Winit on Android android-game-activity = ["winit/android-game-activity"] ## Enable the `native-activity` backend via Winit on Android android-native-activity = ["winit/android-native-activity"] ## [`bytemuck`](https://docs.rs/bytemuck) enables you to cast [`egui::epaint::Vertex`], [`egui::Vec2`] etc to `&[u8]`. bytemuck = ["egui/bytemuck"] ## Enable cut/copy/paste to OS clipboard. ## If disabled a clipboard will be simulated so you can still copy/paste within the egui app. clipboard = ["arboard", "smithay-clipboard"] ## Enable opening links in a browser when an egui hyperlink is clicked. links = ["webbrowser"] ## Enable profiling with the [`puffin`](https://docs.rs/puffin) crate. puffin = ["dep:puffin", "egui/puffin"] ## Allow serialization of [`WindowSettings`] using [`serde`](https://docs.rs/serde). serde = ["egui/serde", "dep:serde"] ## Enables Wayland support. wayland = ["winit/wayland", "bytemuck"] ## Enables compiling for x11. x11 = ["winit/x11", "bytemuck"] [dependencies] egui = { workspace = true, default-features = false, features = ["log"] } ahash.workspace = true log.workspace = true raw-window-handle.workspace = true web-time.workspace = true winit = { workspace = true, default-features = false } #! ### Optional dependencies # feature accesskit accesskit_winit = { version = "0.22", optional = true } ## Enable this when generating docs. document-features = { workspace = true, optional = true } puffin = { workspace = true, optional = true } serde = { workspace = true, optional = true } webbrowser = { version = "1.0.0", optional = true } [target.'cfg(any(target_os="linux", target_os="dragonfly", target_os="freebsd", target_os="netbsd", target_os="openbsd"))'.dependencies] smithay-clipboard = { version = "0.7.2", optional = true } # The wayland-cursor normally selected doesn't properly enable all the features it uses # and thus doesn't compile as it is used in egui-winit. This is fixed upstream, so force # a slightly newer version. Remove this when winit upgrades past this version. wayland-cursor = { version = "0.31.1", default-features = false, optional = true } [target.'cfg(not(target_os = "android"))'.dependencies] arboard = { version = "3.3", optional = true, default-features = false }