[package] name = "egui-wgpu" version.workspace = true description = "Bindings for using egui natively using the wgpu library" authors = [ "Nils Hasenbanck ", "embotech ", "Emil Ernerfeldt ", ] edition.workspace = true rust-version.workspace = true homepage = "https://github.com/emilk/egui/tree/master/crates/egui-wgpu" license.workspace = true readme = "README.md" repository = "https://github.com/emilk/egui/tree/master/crates/egui-wgpu" categories = ["gui", "game-development"] keywords = ["wgpu", "egui", "gui", "gamedev"] include = [ "../LICENSE-APACHE", "../LICENSE-MIT", "**/*.rs", "**/*.wgsl", "Cargo.toml", ] [lints] workspace = true [package.metadata.docs.rs] all-features = true rustdoc-args = ["--generate-link-to-definition"] [features] default = ["fragile-send-sync-non-atomic-wasm"] ## Enable profiling with the [`puffin`](https://docs.rs/puffin) crate. puffin = ["dep:puffin"] ## Enable [`winit`](https://docs.rs/winit) integration. On Linux, requires either `wayland` or `x11` winit = ["dep:winit"] ## Enables Wayland support for winit. wayland = ["winit?/wayland"] ## Enables x11 support for winit. x11 = ["winit?/x11"] ## Make the renderer `Sync` on wasm, exploiting that by default wasm isn't multithreaded. ## It may make code easier, expecially when targeting both native and web. ## On native most wgpu objects are send and sync, on the web they are not (by nature of the WebGPU specification). ## This is not supported in [multithreaded WASM](https://gpuweb.github.io/gpuweb/explainer/#multithreading-transfer). ## Thus that usage is guarded against with compiler errors in wgpu. fragile-send-sync-non-atomic-wasm = ["wgpu/fragile-send-sync-non-atomic-wasm"] [dependencies] egui = { workspace = true, default-features = false } epaint = { workspace = true, default-features = false, features = ["bytemuck"] } ahash.workspace = true bytemuck.workspace = true document-features.workspace = true log.workspace = true thiserror.workspace = true type-map = "0.5.0" web-time.workspace = true wgpu = { workspace = true, features = ["wgsl"] } # Optional dependencies: winit = { workspace = true, optional = true, default-features = false } # Native: [target.'cfg(not(target_arch = "wasm32"))'.dependencies] puffin = { workspace = true, optional = true }