[package] name = "eframe" version = "0.21.3" authors = ["Emil Ernerfeldt "] description = "egui framework - write GUI apps that compiles to web and/or natively" edition = "2021" rust-version = "1.65" homepage = "https://github.com/emilk/egui/tree/master/crates/eframe" license = "MIT OR Apache-2.0" readme = "README.md" repository = "https://github.com/emilk/egui/tree/master/crates/eframe" categories = ["gui", "game-development"] keywords = ["egui", "gui", "gamedev"] include = ["../LICENSE-APACHE", "../LICENSE-MIT", "**/*.rs", "Cargo.toml"] [package.metadata.docs.rs] all-features = true targets = ["x86_64-unknown-linux-gnu", "wasm32-unknown-unknown"] [lib] [features] default = ["accesskit", "default_fonts", "glow"] ## Enable platform accessibility API implementations through [AccessKit](https://accesskit.dev/). accesskit = ["egui/accesskit", "egui-winit/accesskit"] ## Detect dark mode system preference using [`dark-light`](https://docs.rs/dark-light). ## ## See also [`NativeOptions::follow_system_theme`] and [`NativeOptions::default_theme`]. dark-light = ["dep:dark-light"] ## If set, egui will use `include_bytes!` to bundle some fonts. ## If you plan on specifying your own fonts you may disable this feature. default_fonts = ["egui/default_fonts"] ## Use [`glow`](https://github.com/grovesNL/glow) for painting, via [`egui_glow`](https://github.com/emilk/egui/tree/master/crates/egui_glow). glow = ["dep:glow", "dep:egui_glow", "dep:glutin", "dep:glutin-winit"] ## Enable saving app state to disk. persistence = [ "directories-next", "egui-winit/serde", "egui/persistence", "ron", "serde", ] ## Enable profiling with the [`puffin`](https://docs.rs/puffin) crate. ## ## Only enabled on native, because of the low resolution (1ms) of time keeping in browsers. ## `eframe` will call `puffin::GlobalProfiler::lock().new_frame()` for you puffin = ["dep:puffin", "egui_glow?/puffin", "egui-wgpu?/puffin"] ## Enable screen reader support (requires `ctx.options_mut(|o| o.screen_reader = true);`) on web. ## ## For other platforms, use the "accesskit" feature instead. web_screen_reader = ["tts"] ## If set, eframe will look for the env-var `EFRAME_SCREENSHOT_TO` and write a screenshot to that location, and then quit. ## This is used to generate images for the examples. __screenshot = ["dep:image"] ## Use [`wgpu`](https://docs.rs/wgpu) for painting (via [`egui-wgpu`](https://github.com/emilk/egui/tree/master/crates/egui-wgpu)). ## This overrides the `glow` feature. wgpu = ["dep:wgpu", "dep:egui-wgpu", "dep:pollster"] [dependencies] egui = { version = "0.21.0", path = "../egui", default-features = false, features = [ "bytemuck", "tracing", ] } thiserror = "1.0.37" tracing = { version = "0.1", default-features = false, features = ["std"] } #! ### Optional dependencies ## Enable this when generating docs. document-features = { version = "0.2", optional = true } egui_glow = { version = "0.21.0", path = "../egui_glow", optional = true, default-features = false } glow = { version = "0.12", optional = true } ron = { version = "0.8", optional = true, features = ["integer128"] } serde = { version = "1", optional = true, features = ["derive"] } # ------------------------------------------- # native: [target.'cfg(not(target_arch = "wasm32"))'.dependencies] egui-winit = { version = "0.21.1", path = "../egui-winit", default-features = false, features = [ "clipboard", "links", ] } raw-window-handle = { version = "0.5.0" } winit = "0.28.1" # optional native: dark-light = { version = "1.0", optional = true } directories-next = { version = "2", optional = true } egui-wgpu = { version = "0.21.0", path = "../egui-wgpu", optional = true, features = [ "winit", ] } # if wgpu is used, use it with winit pollster = { version = "0.3", optional = true } # needed for wgpu # we can expose these to user so that they can select which backends they want to enable to avoid compiling useless deps. # this can be done at the same time we expose x11/wayland features of winit crate. glutin = { version = "0.30", optional = true } glutin-winit = { version = "0.3.0", optional = true } image = { version = "0.24", optional = true, default-features = false, features = [ "png", ] } puffin = { version = "0.14", optional = true } wgpu = { version = "0.15.0", optional = true } # ------------------------------------------- # web: [target.'cfg(target_arch = "wasm32")'.dependencies] bytemuck = "1.7" js-sys = "0.3" percent-encoding = "2.1" wasm-bindgen = "=0.2.84" wasm-bindgen-futures = "0.4" web-sys = { version = "0.3.58", features = [ "BinaryType", "Blob", "Clipboard", "ClipboardEvent", "CompositionEvent", "console", "CssStyleDeclaration", "DataTransfer", "DataTransferItem", "DataTransferItemList", "Document", "DomRect", "DragEvent", "Element", "Event", "EventListener", "EventTarget", "ExtSRgb", "File", "FileList", "FocusEvent", "HtmlCanvasElement", "HtmlElement", "HtmlInputElement", "InputEvent", "KeyboardEvent", "Location", "MediaQueryList", "MouseEvent", "Navigator", "Performance", "Storage", "Touch", "TouchEvent", "TouchList", "WebGl2RenderingContext", "WebglDebugRendererInfo", "WebGlRenderingContext", "WheelEvent", "Window", ] } # optional web: egui-wgpu = { version = "0.21.0", path = "../egui-wgpu", optional = true } # if wgpu is used, use it without (!) winit tts = { version = "0.25", optional = true, default-features = false } wgpu = { version = "0.15.0", optional = true, features = ["webgl"] }