egui-winit 0.30.0

Bindings for using egui with winit
Documentation
[package]
name = "egui-winit"
version.workspace = true
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
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 = ["dep: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"]

## 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
profiling.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.23", optional = true }

## Enable this when generating docs.
document-features = { 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 }