Skip to content

Releases: emilk/egui

0.24.1 - Bug fixes

30 Nov 16:54
Compare
Choose a tag to compare

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 calling App::update #3665

Web:

  • Fix click-to-copy on Safari #3621
  • Don't throw away frames on click/copy/cut #3623
  • Remove dependency on tts #3651

0.24.0 - Multi-viewport

23 Nov 15:28
Compare
Choose a tag to compare

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/

code-example

✨ 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 with ctx.input(|i| i.viewport())

🔧 Changed

  • Replace Id::null() with Id::NULL #3544
  • Update MSRV to Rust 1.72 #3595
  • Update puffin to 0.18 #3600

🐛 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 with Options::zoom_with_keyboard, which is true by default
  • Spacing::scroll_bar_X has been moved to Spacing::scroll_bar.X
  • Context::set_pixels_per_point now calls Context::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 the eframe 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 of ViewportOutput in FullOutput 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

28 Sep 06:47
Compare
Choose a tag to compare

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

23 May 18:07
Compare
Choose a tag to compare

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

08 Feb 19:39
Compare
Choose a tag to compare

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

11 Dec 16:21
Compare
Choose a tag to compare
Release 0.20.1 - Fix key-repeat

0.20.0 - AccessKit, prettier text, overlapping widgets

08 Dec 14:27
Compare
Choose a tag to compare

0.19.0 - wgpu backend, repaint_after, continue-after-close

20 Aug 15:05
Compare
Choose a tag to compare

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

30 Apr 18:35
Compare
Choose a tag to compare

Highlights:

  • Embed 3D inside egui
  • Better text contrast in bright mode
  • Added egui_extras::Table

rerun

0.17.0 - Improved font selection and image handling

22 Feb 18:47
Compare
Choose a tag to compare

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