* Refactor text layout: don't need &Fonts in all functions * Replace indexing in Fonts with member function * Wrap Fonts in a Mutex * Remove mutex for Font::glyph_info_cache * Remove RwLock around Font::characters * Put FontsImpl and GalleyCache behind the same Mutex * Round font sizes to whole pixels before deduplicating them * Make TextStyle !Copy * Implement user-named TextStyle:s * round font size earlier * Cache fonts based on family and size * Move TextStyle into egui and Style * Remove body_text_style * Query graphics about max texture size and use that as font atlas size * Recreate texture atlas when it is getting full |
||
|---|---|---|
| .. | ||
| examples | ||
| src | ||
| CHANGELOG.md | ||
| Cargo.toml | ||
| README.md | ||
README.md
eframe: the egui framework
eframe is the official framework library for writing apps using egui. The app can be compiled both to run natively (cross platform) or be compiled to a web app (using WASM).
To get started, go to https://github.com/emilk/eframe_template/ and follow the instructions there!
You can also take a look at the eframe examples folder. There is also an excellent tutorial video at https://www.youtube.com/watch?v=NtUkr_z7l84.
For how to use egui, see the egui docs.
eframe is a very thin crate that re-exports egui andepi with thin wrappers over the backends.
eframe uses egui_web for web and egui_glium or egui_glow for native.
To use on Linux, first run:
sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev
Alternatives
The default native backend for eframe is currently egui_glow, but you can switch to the previous egui_glium backend by putting this in your Cargo.toml:
eframe = { version = "*", default-features = false, features = ["default_fonts", "egui_glium"] }
eframe is not the only way to write an app using egui! You can also try egui-miniquad and egui_sdl2_gl.
Companion crates
Not all rust crates work when compiled to WASM, but here are some useful crates have been designed to work well both natively and as WASM:
Name
The frame in eframe stands both for the frame in which your egui app resides and also for "framework" (frame is a framework, egui is a library).