egui/eframe
Emil Ernerfeldt 8178d23d19
Deduplicate code found in both egui_glium and egui_glow (#819)
* Move window building to egui-winit

* Move icon loading to egui-winit

* `use glow::HasContext;` -> `use glow::HasContext as _;`

* Move FileStorage into epi behind a feature flag

* De-duplicate screen_size_in_pixels and native_pixels_per_point

* Move creation of FileStorage to epi

* Handle epi app output (window size changes etc) in egui-winit

* Move app and memory persistence and autosave logic to egui-winit

* fix check.sh

* Make the epi backend opt-in for egui_glium and egui_glow

* Fix persistence

* Add integration name to epi::IntegrationInfo and the demo

* Clean up Cargo.toml files and fix making egui_glium optional

* fix typo

* Make egui_glium compile without the `epi` feature
2021-10-19 21:40:55 +02:00
..
examples Add better documentation for epi::NativeOptions::drag_and_drop_support 2021-09-30 19:40:21 +02:00
src Deduplicate code found in both egui_glium and egui_glow (#819) 2021-10-19 21:40:55 +02:00
Cargo.toml Deduplicate code found in both egui_glium and egui_glow (#819) 2021-10-19 21:40:55 +02:00
CHANGELOG.md Add egui_glow as an opt-in backend to eframe (#817) 2021-10-19 15:32:23 +02:00
README.md Remove "seconds_since_midnight" from epi/eframe. Use chrono instead 2021-10-19 15:37:20 +02: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!


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_glium, but you can try out the new egui_glow backend by putting this in your Cargo.toml:

eframe = { version = "*", default-features = false, features = ["default_fonts", "egui_glow"] }

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