egui/eframe
Emil Ernerfeldt fa43d16c41
Choose your own font and size (#1154)
* 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
2022-01-24 14:32:36 +01:00
..
examples Choose your own font and size (#1154) 2022-01-24 14:32:36 +01:00
src Put everything in Context behind the same Mutex (#1050) 2022-01-10 23:13:10 +01:00
Cargo.toml Simplify http demo and add new download_image eframe demo 2022-01-15 20:34:03 +01:00
CHANGELOG.md Choose your own font and size (#1154) 2022-01-24 14:32:36 +01:00
README.md Switch to using glow as the default renderer both on native and the web (#1020) 2021-12-31 15:17:55 +01:00

eframe: the egui framework

Latest version Documentation unsafe forbidden MIT Apache

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).