Cargo Features

[dependencies]
luminol-eframe = { version = "0.4.0", default-features = false, features = ["glow", "accesskit", "android-game-activity", "android-native-activity", "default_fonts", "persistence", "puffin", "wayland", "web_screen_reader", "wgpu", "x11", "rwh_05", "glutin", "glutin-winit"] }
default = accesskit, default_fonts, wayland, web_screen_reader, wgpu, x11

These default features are set whenever luminol-eframe is added without default-features = false somewhere in the dependency tree.

Enables winit ^0.29.4

glow

Dummy features so we don't run into compiler warnings

Affects epi::CreationContext.gl, epi::CreationContext.get_proc_address, epi::App.on_exit, epi::NativeOptions.shader_version, epi::WebOptions.webgl_context_option, run::run_glow, epi::EventLoopBuilderHook, epi::WindowBuilderHook, epi::NativeOptions.renderer, epi::NativeOptions.event_loop_builder, epi::NativeOptions.window_builder, epi::Renderer, luminol-eframe::run_native, luminol-eframe::run_simple_native

accesskit default

Enable platform accessibility API implementations through AccessKit.

Enables accesskit of egui ^0.28.1 and egui-winit ^0.28.1

android-game-activity

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 egui-winit on Android

Enables android-game-activity of egui-winit ^0.28.1

android-native-activity

Enable the native-activity backend via egui-winit on Android

Enables android-native-activity of egui-winit ^0.28.1

default_fonts default

If set, egui will use include_bytes! to bundle some fonts. If you plan on specifying your own fonts you may disable this feature.

Enables default_fonts of egui ^0.28.1

persistence = directories, ron, serde

Use glow for painting, via egui_glow. glow = [ "dep:egui_glow", "dep:glow", "dep:glutin-winit", "dep:glutin", "dep:rwh_05", "winit/rwh_05", ]

Enable saving app state to disk.

Enables persistence of egui ^0.28.1, serde of egui-winit ^0.28.1

Affects native::file_storage

puffin

Enable profiling with the puffin crate.

eframe will call puffin::GlobalProfiler::lock().new_frame() for you

Only enabled on native, because of the low resolution (1ms) of clocks in browsers.

Enables puffin, puffin of egui ^0.28.1, egui-winit ^0.28.1, and optional luminol-egui-wgpu

wayland default

Enables wayland support and fixes clipboard issue.

Enables wayland of egui-winit ^0.28.1 and optional luminol-egui-wgpu

web_screen_reader default

Enable screen reader support (requires ctx.options_mut(|o| o.screen_reader = true);) on web.

For other platforms, use the accesskit feature instead.

Enables SpeechSynthesis and SpeechSynthesisUtterance of web-sys

Affects web::screen_reader

wgpu default

Use wgpu for painting (via egui-wgpu).

This overrides the glow feature.

By default, only WebGPU is enabled on web. If you want to enable WebGL, you need to turn on the webgl feature of crate wgpu:

wgpu = { version = "*", features = ["webgpu", "webgl"] }

By default, eframe will prefer WebGPU over WebGL, but you can configure this at run-time with NativeOptions::wgpu_options.

Enables luminol-egui-wgpu, pollster ^0.3, and wgpu ^0.20.0

Affects epi::CreationContext.wgpu_render_state, epi::NativeOptions.wgpu_options, epi::WebOptions.wgpu_options, run::run_wgpu, epi::EventLoopBuilderHook, epi::WindowBuilderHook, epi::NativeOptions.renderer, epi::NativeOptions.event_loop_builder, epi::NativeOptions.window_builder, epi::Renderer, luminol-eframe::run_native, luminol-eframe::run_simple_native

x11 default

Enables compiling for x11.

Enables x11 of egui-winit ^0.28.1 and optional luminol-egui-wgpu

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

rwh_05 implicit feature

Enables raw-window-handle ^0.5.2

glutin stuck on old version of raw-window-handle:

ron persistence?

Affects epi::get_value, epi::set_value

serde persistence?
glutin not wasm32 implicit feature

Enables glutin ^0.31

glutin:

Cross-platform OpenGL context provider

glutin-winit not wasm32 implicit feature

Enables glutin-winit ^0.4

glutin-winit:

Glutin bootstrapping helpers with winit

directories not wasm32 persistence?