egui is an immediate mode GUI library written in Rust. It's designed to be easy to use, portable, and fast. Unlike traditional retained-mode GUI frameworks where you create and manage widget objects, egui uses an immediate mode approach where your GUI code runs every frame.
In immediate mode GUIs, you don't create widgets that persist between frames. Instead, you describe what your UI should look like right now, every frame. This might sound inefficient, but it comes with several advantages:
Here's a simple example that demonstrates the immediate mode concept:
// This code runs 60+ times per second
if ui.button("Click me").clicked() {
println!("Button was clicked!");
}
Each frame, egui:
Response
indicating if it was clickedThere's no button object being stored anywhere - just drawing instructions and interaction feedback.