Releases: emilk/egui
0.24.1 - Bug fixes
egui is an easy-to-use immediate mode GUI for Rust that runs on both web and native.
Try it now: https://www.egui.rs/
egui changelog
- Fix buggy text with multiple viewports on monitors with different scales #3666
eframe changelog
Desktop/Native:
- Fix window flashing white on launch #3631 (thanks @zeozeozeo!)
- Fix windowing problems when using the
x11
feature on Linux #3643 - Fix bugs when there are multiple monitors with different scales #3663
glow
backend: clear framebuffer color before callingApp::update
#3665
Web:
0.24.0 - Multi-viewport
egui is an easy-to-use immediate mode GUI for Rust that runs on both web and native
Try it now: https://www.egui.rs/
✨ 0.24 Highlights
You can now spawn multiple native windows on supported backends (e.g. eframe
), using the new viewport
API (#3172).
You can easily zoom any egui app using Cmd+Plus, Cmd+Minus or Cmd+0, just like in a browser (#3608).
Scrollbars are now hidden by default until you hover the ScrollArea
(#3539).
⭐ Added
- Multiple viewports/windows #3172 (thanks @konkitoman!)
- Introduce global
zoom_factor
#3608 - Floating scroll bars #3539
- Add redo support to
Undoer
#3478 (thanks @LoganDark!) - Add
egui::Vec2b
#3543 - Add max
Window
size & other size helpers #3537 (thanks @arduano!) - Allow changing shape of slider handle #3429 (thanks @YgorSouza!)
RawInput::viewports
contains a list of all viewports. Access the current one withctx.input(|i| i.viewport())
🔧 Changed
🐛 Fixed
- Fix upside down slider in the vertical orientation #3424 (thanks @YgorSouza!)
- Make slider step account for range start #3488 (thanks @YgorSouza!)
- Fix rounding of
ImageButton
#3531 (thanks @chriscate!) - Fix naming:
constraint_to
->constrain_to
#3438 (thanks @rinde!) - Fix Shift+Tab behavior when no widget is focused #3498 (thanks @DataTriny!)
- Fix scroll not sticking when scrollbar is hidden #3434 (thanks @LoganDark!)
- Add
#[inline]
to all builder-pattern functions #3557 - Properly reverse bool animation if value changes before it's finished #3577 (thanks @YgorSouza!)
⚠️ BREAKING
egui::gui_zoom::zoom_with_keyboard_shortcuts
is gone, replaced withOptions::zoom_with_keyboard
, which istrue
by defaultSpacing::scroll_bar_X
has been moved toSpacing::scroll_bar.X
Context::set_pixels_per_point
now callsContext::set_zoom_level
, and it may make sense for you to call that directly instead- If you are using
eframe
, check out the breaking changes in theeframe
changelog
For integrations
There are several changes relevant to integrations.
- Added
crate::RawInput::viewports
with information about all active viewports - The repaint callback set by
Context::set_request_repaint_callback
now points to which viewport should be repainted Context::run
now returns a list ofViewportOutput
inFullOutput
which should result in their own independent windows- There is a new
Context::set_immediate_viewport_renderer
for setting up the immediate viewport integration - If you support viewports, you need to call
Context::set_embed_viewports(false)
, or all new viewports will be embedded (the default behavior)
0.23.0 - New image API
egui is an easy-to-use immediate mode GUI in pure Rust. eframe is the official egui framework, allowing you to run egui on both web and native.
This release contains a simple and powerful image API:
// Load from web:
ui.image("https://www.example.com/some_image.png");
// Include image in the binary using `include_bytes`:
ui.image(egui::include_image!("../assets/ferris.svg"));
// With options:
ui.add(
egui::Image::new("file://path/to/image.jpg")
.max_width(200.0)
.rounding(10.0),
);
The API is based on a plugin-system, where you can tell egui
how to load the images, and from where.
egui_extras
comes with loaders for you, so all you need to do is add the following to your Cargo.toml
:
egui_extras = { version = "0.23", features = ["all_loaders"] }
image = { version = "0.24", features = ["jpeg", "png"] } # Add the types you want support for
And this to your code:
egui_extras::install_image_loaders(egui_ctx);
Try the live demo at https://www.egui.rs/
0.22.0 - A plethora of small improvements
egui is an easy-to-use immediate mode GUI in pure Rust. eframe is the official egui framework, allowing you to run egui on both web and native.
There's a bunch of improvements in 0.22, especially to eframe:
- eframe now supports application icons on Windows and Mac. Set it with
NativeOptions::icon_data
- eframe will now follow the system dark/light mode live with
NativeOptions::follow_system_theme
. Works both on native and on web! - The error reporting on the web is also much nicer, with panics being caught, logged, and is accessible to JavaScript
Try the live demo at https://www.egui.rs/
0.21.0 - Deadlock fix and winit update
This is a relatively minor release, but with a major breaking change in the egui API to prevent a rare deadlock.
Full changelog: https://github.com/emilk/egui/blob/master/CHANGELOG.md
0.20.1 - Fix key-repeats
Release 0.20.1 - Fix key-repeat
0.20.0 - AccessKit, prettier text, overlapping widgets
0.19.0 - wgpu backend, repaint_after, continue-after-close
Highlights:
- New wgpu backend for eframe
Context::request_repaint_after
- eframe continues after closing native window
egui changelog: https://github.com/emilk/egui/blob/master/CHANGELOG.md
eframe changelog: https://github.com/emilk/egui/blob/master/crates/eframe/CHANGELOG.md
0.18.0 - Shape::Callback, Table, and better text contrast
0.17.0 - Improved font selection and image handling
egui highlights:
- Use any-sized font
- Define custom text styles
- Easy image loading using new crate egui_extras
eframe highlights:
- glow is now the default renderer on both native on web
- follow OS light/dark mode preference
Full changelog: https://github.com/emilk/egui/blob/master/CHANGELOG.md