Release 0.32.0 - Atoms, popups, and better SVG support (#7329)
This commit is contained in:
parent
a9124af00d
commit
fabd4aa7a5
265
CHANGELOG.md
265
CHANGELOG.md
|
|
@ -14,6 +14,271 @@ This file is updated upon each release.
|
|||
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
|
||||
|
||||
|
||||
## 0.32.0 - 2025-07-10 - Atoms, popups, and better SVG support
|
||||
This is a big egui release, with several exciting new features!
|
||||
|
||||
* _Atoms_ are new layout primitives in egui, for text and images
|
||||
* Popups, tooltips and menus have undergone a complete rewrite
|
||||
* Much improved SVG support
|
||||
* Crisper graphics (especially text!)
|
||||
|
||||
Let's dive in!
|
||||
|
||||
### ⚛️ Atoms
|
||||
|
||||
`egui::Atom` is the new, indivisible building blocks of egui (hence their name).
|
||||
An `Atom` is an `enum` that can be either `WidgetText`, `Image`, or `Custom`.
|
||||
|
||||
The new `AtomLayout` can be used within widgets to do basic layout.
|
||||
The initial implementation is as minimal as possible, doing just enough to implement what `Button` could do before.
|
||||
There is a new `IntoAtoms` trait that works with tuples of `Atom`s. Each atom can be customized with the `AtomExt` trait
|
||||
which works on everything that implements `Into<Atom>`, so e.g. `RichText` or `Image`.
|
||||
So to create a `Button` with text and image you can now do:
|
||||
```rs
|
||||
let image = include_image!("my_icon.png").atom_size(Vec2::splat(12.0));
|
||||
ui.button((image, "Click me!"));
|
||||
```
|
||||
|
||||
Anywhere you see `impl IntoAtoms` you can add any number of images and text, in any order.
|
||||
|
||||
As of 0.32, we have ported the `Button`, `Checkbox`, `RadioButton` to use atoms
|
||||
(meaning they support adding Atoms and are built on top of `AtomLayout`).
|
||||
The `Button` implementation is not only more powerful now, but also much simpler, removing ~130 lines of layout math.
|
||||
|
||||
In combination with `ui.read_response`, custom widgets are really simple now, here is a minimal button implementation:
|
||||
|
||||
```rs
|
||||
pub struct ALButton<'a> {
|
||||
al: AtomLayout<'a>,
|
||||
}
|
||||
|
||||
impl<'a> ALButton<'a> {
|
||||
pub fn new(content: impl IntoAtoms<'a>) -> Self {
|
||||
Self {
|
||||
al: AtomLayout::new(content.into_atoms()).sense(Sense::click()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> Widget for ALButton<'a> {
|
||||
fn ui(mut self, ui: &mut Ui) -> Response {
|
||||
let Self { al } = self;
|
||||
let response = ui.ctx().read_response(ui.next_auto_id());
|
||||
|
||||
let visuals = response.map_or(&ui.style().visuals.widgets.inactive, |response| {
|
||||
ui.style().interact(&response)
|
||||
});
|
||||
|
||||
let al = al.frame(
|
||||
Frame::new()
|
||||
.inner_margin(ui.style().spacing.button_padding)
|
||||
.fill(visuals.bg_fill)
|
||||
.stroke(visuals.bg_stroke)
|
||||
.corner_radius(visuals.corner_radius),
|
||||
);
|
||||
|
||||
al.show(ui).response
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
You can even use `Atom::custom` to add custom content to Widgets. Here is a button in a button:
|
||||
|
||||
https://github.com/user-attachments/assets/8c649784-dcc5-4979-85f8-e735b9cdd090
|
||||
|
||||
```rs
|
||||
let custom_button_id = Id::new("custom_button");
|
||||
let response = Button::new((
|
||||
Atom::custom(custom_button_id, Vec2::splat(18.0)),
|
||||
"Look at my mini button!",
|
||||
))
|
||||
.atom_ui(ui);
|
||||
if let Some(rect) = response.rect(custom_button_id) {
|
||||
ui.put(rect, Button::new("🔎").frame_when_inactive(false));
|
||||
}
|
||||
```
|
||||
Currently, you need to use `atom_ui` to get a `AtomResponse` which will have the `Rect` to use, but in the future
|
||||
this could be streamlined, e.g. by adding a `AtomKind::Callback` or by passing the Rects back with `egui::Response`.
|
||||
|
||||
Basing our widgets on `AtomLayout` also allowed us to improve `Response::intrinsic_size`, which will now report the
|
||||
correct size even if widgets are truncated. `intrinsic_size` is the size that a non-wrapped, non-truncated,
|
||||
non-justified version of the widget would have, and can be useful in advanced layout
|
||||
calculations like [egui_flex](https://github.com/lucasmerlin/hello_egui/tree/main/crates/egui_flex).
|
||||
|
||||
##### Details
|
||||
* Add `AtomLayout`, abstracting layouting within widgets [#5830](https://github.com/emilk/egui/pull/5830) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Add `Galley::intrinsic_size` and use it in `AtomLayout` [#7146](https://github.com/emilk/egui/pull/7146) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
|
||||
|
||||
### ❕ Improved popups, tooltips, and menus
|
||||
|
||||
Introduces a new `egui::Popup` api. Checkout the new demo on https://egui.rs:
|
||||
|
||||
https://github.com/user-attachments/assets/74e45243-7d05-4fc3-b446-2387e1412c05
|
||||
|
||||
We introduced a new `RectAlign` helper to align a rect relative to an other rect. The `Popup` will by default try to find the best `RectAlign` based on the source widgets position (previously submenus would annoyingly overlap if at the edge of the window):
|
||||
|
||||
https://github.com/user-attachments/assets/0c5adb6b-8310-4e0a-b936-646bb4ec02f7
|
||||
|
||||
`Tooltip` and `menu` have been rewritten based on the new `Popup` api. They are now compatible with each other, meaning you can just show a `ui.menu_button()` in any `Popup` to get a sub menu. There are now customizable `MenuButton` and `SubMenuButton` structs, to help with customizing your menu buttons. This means menus now also support `PopupCloseBehavior` so you can remove your `close_menu` calls from your click handlers!
|
||||
|
||||
The old tooltip and popup apis have been ported to the new api so there should be very little breaking changes. The old menu is still around but deprecated. `ui.menu_button` etc now open the new menu, if you can't update to the new one immediately you can use the old buttons from the deprecated `egui::menu` menu.
|
||||
|
||||
We also introduced `ui.close()` which closes the nearest container. So you can now conveniently close `Window`s, `Collapsible`s, `Modal`s and `Popup`s from within. To use this for your own containers, call `UiBuilder::closable` and then check for closing within that ui via `ui.should_close()`.
|
||||
|
||||
##### Details
|
||||
* Add `Popup` and `Tooltip`, unifying the previous behaviours [#5713](https://github.com/emilk/egui/pull/5713) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Add `Ui::close` and `Response::should_close` [#5729](https://github.com/emilk/egui/pull/5729) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* ⚠️ Improved menu based on `egui::Popup` [#5716](https://github.com/emilk/egui/pull/5716) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Add a toggle for the compact menu style [#5777](https://github.com/emilk/egui/pull/5777) by [@s-nie](https://github.com/s-nie)
|
||||
* Use the new `Popup` API for the color picker button [#7137](https://github.com/emilk/egui/pull/7137) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* ⚠️ Close popup if `Memory::keep_popup_open` isn't called [#5814](https://github.com/emilk/egui/pull/5814) by [@juancampa](https://github.com/juancampa)
|
||||
* Fix tooltips sometimes changing position each frame [#7304](https://github.com/emilk/egui/pull/7304) by [@emilk](https://github.com/emilk)
|
||||
* Change popup memory to be per-viewport [#6753](https://github.com/emilk/egui/pull/6753) by [@mkalte666](https://github.com/mkalte666)
|
||||
* Deprecate `Memory::popup` API in favor of new `Popup` API [#7317](https://github.com/emilk/egui/pull/7317) by [@emilk](https://github.com/emilk)
|
||||
|
||||
|
||||
### ▲ Improved SVG support
|
||||
You can render SVG in egui with
|
||||
|
||||
```rs
|
||||
ui.add(egui::Image::new(egui::include_image!("icon.svg"));
|
||||
```
|
||||
|
||||
(Requires the use of `egui_extras`, with the `svg` feature enabled and a call to [`install_image_loaders`](https://docs.rs/egui_extras/latest/egui_extras/fn.install_image_loaders.html)).
|
||||
|
||||
Previously this would sometimes result in a blurry SVG, epecially if the `Image` was set to be dynamically scale based on the size of the `Ui` that contained it. Now SVG:s are always pixel-perfect, for truly scalable graphics.
|
||||
|
||||

|
||||
|
||||
##### Details
|
||||
* Support text in SVGs [#5979](https://github.com/emilk/egui/pull/5979) by [@cernec1999](https://github.com/cernec1999)
|
||||
* Fix sometimes blurry SVGs [#7071](https://github.com/emilk/egui/pull/7071) by [@emilk](https://github.com/emilk)
|
||||
* Fix incorrect color fringe colors on SVG:s [#7069](https://github.com/emilk/egui/pull/7069) by [@emilk](https://github.com/emilk)
|
||||
* Make `Image::paint_at` pixel-perfect crisp for SVG images [#7078](https://github.com/emilk/egui/pull/7078) by [@emilk](https://github.com/emilk)
|
||||
|
||||
|
||||
### ✨ Crisper graphics
|
||||
Non-SVG icons are also rendered better, and text sharpness has been improved, especially in light mode.
|
||||
|
||||

|
||||
|
||||
##### Details
|
||||
* Improve text sharpness [#5838](https://github.com/emilk/egui/pull/5838) by [@emilk](https://github.com/emilk)
|
||||
* Improve text rendering in light mode [#7290](https://github.com/emilk/egui/pull/7290) by [@emilk](https://github.com/emilk)
|
||||
* Improve texture filtering by doing it in gamma space [#7311](https://github.com/emilk/egui/pull/7311) by [@emilk](https://github.com/emilk)
|
||||
* Make text underline and strikethrough pixel perfect crisp [#5857](https://github.com/emilk/egui/pull/5857) by [@emilk](https://github.com/emilk)
|
||||
|
||||
### Migration guide
|
||||
We have some silently breaking changes (code compiles fine but behavior changed) that require special care:
|
||||
|
||||
#### Menus close on click by default
|
||||
- previously menus would only close on click outside
|
||||
- either
|
||||
- remove the `ui.close_menu()` calls from button click handlers since they are obsolete
|
||||
- if the menu should stay open on clicks, change the `PopupCloseBehavior`:
|
||||
```rs
|
||||
// Change this
|
||||
ui.menu_button("Text", |ui| { /* Menu Content */ });
|
||||
// To this:
|
||||
MenuButton::new("Text").config(
|
||||
MenuConfig::default().close_behavior(PopupCloseBehavior::CloseOnClickOutside),
|
||||
).ui(ui, |ui| { /* Menu Content */ });
|
||||
```
|
||||
You can also change the behavior only for a single SubMenu by using `SubMenuButton`, but by default it should be passed to any submenus when using `MenuButton`.
|
||||
|
||||
#### `Memory::is_popup_open` api now requires calls to `Memory::keep_popup_open`
|
||||
- The popup will immediately close if `keep_popup_open` is not called.
|
||||
- It's recommended to use the new `Popup` api which handles this for you.
|
||||
- If you can't switch to the new api for some reason, update the code to call `keep_popup_open`:
|
||||
```rs
|
||||
if ui.memory(|mem| mem.is_popup_open(popup_id)) {
|
||||
ui.memory_mut(|mem| mem.keep_popup_open(popup_id)); // <- add this line
|
||||
let area_response = Area::new(popup_id).show(...)
|
||||
}
|
||||
```
|
||||
|
||||
### ⭐ Other improvements
|
||||
* Add `Label::show_tooltip_when_elided` [#5710](https://github.com/emilk/egui/pull/5710) by [@bryceberger](https://github.com/bryceberger)
|
||||
* Deprecate `Ui::allocate_new_ui` in favor of `Ui::scope_builder` [#5764](https://github.com/emilk/egui/pull/5764) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Add `expand_bg` to customize size of text background [#5365](https://github.com/emilk/egui/pull/5365) by [@MeGaGiGaGon](https://github.com/MeGaGiGaGon)
|
||||
* Add assert messages and print bad argument values in asserts [#5216](https://github.com/emilk/egui/pull/5216) by [@bircni](https://github.com/bircni)
|
||||
* Use `TextBuffer` for `layouter` in `TextEdit` instead of `&str` [#5712](https://github.com/emilk/egui/pull/5712) by [@kernelkind](https://github.com/kernelkind)
|
||||
* Add a `Slider::update_while_editing(bool)` API [#5978](https://github.com/emilk/egui/pull/5978) by [@mbernat](https://github.com/mbernat)
|
||||
* Add `Scene::drag_pan_buttons` option. Allows specifying which pointer buttons pan the scene by dragging [#5892](https://github.com/emilk/egui/pull/5892) by [@mitchmindtree](https://github.com/mitchmindtree)
|
||||
* Add `Scene::sense` to customize how `Scene` responds to user input [#5893](https://github.com/emilk/egui/pull/5893) by [@mitchmindtree](https://github.com/mitchmindtree)
|
||||
* Rework `TextEdit` arrow navigation to handle Unicode graphemes [#5812](https://github.com/emilk/egui/pull/5812) by [@MStarha](https://github.com/MStarha)
|
||||
* `ScrollArea` improvements for user configurability [#5443](https://github.com/emilk/egui/pull/5443) by [@MStarha](https://github.com/MStarha)
|
||||
* Add `Response::clicked_with_open_in_background` [#7093](https://github.com/emilk/egui/pull/7093) by [@emilk](https://github.com/emilk)
|
||||
* Add `Modifiers::matches_any` [#7123](https://github.com/emilk/egui/pull/7123) by [@emilk](https://github.com/emilk)
|
||||
* Add `Context::format_modifiers` [#7125](https://github.com/emilk/egui/pull/7125) by [@emilk](https://github.com/emilk)
|
||||
* Add `OperatingSystem::is_mac` [#7122](https://github.com/emilk/egui/pull/7122) by [@emilk](https://github.com/emilk)
|
||||
* Support vertical-only scrolling by holding down Alt [#7124](https://github.com/emilk/egui/pull/7124) by [@emilk](https://github.com/emilk)
|
||||
* Support for back-button on Android [#7073](https://github.com/emilk/egui/pull/7073) by [@ardocrat](https://github.com/ardocrat)
|
||||
* Select all text in DragValue when gaining focus via keyboard [#7107](https://github.com/emilk/egui/pull/7107) by [@Azkellas](https://github.com/Azkellas)
|
||||
* Add `Context::current_pass_index` [#7276](https://github.com/emilk/egui/pull/7276) by [@emilk](https://github.com/emilk)
|
||||
* Add `Context::cumulative_frame_nr` [#7278](https://github.com/emilk/egui/pull/7278) by [@emilk](https://github.com/emilk)
|
||||
* Add `Visuals::text_edit_bg_color` [#7283](https://github.com/emilk/egui/pull/7283) by [@emilk](https://github.com/emilk)
|
||||
* Add `Visuals::weak_text_alpha` and `weak_text_color` [#7285](https://github.com/emilk/egui/pull/7285) by [@emilk](https://github.com/emilk)
|
||||
* Add support for scrolling via accesskit / kittest [#7286](https://github.com/emilk/egui/pull/7286) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Update area struct to allow force resizing [#7114](https://github.com/emilk/egui/pull/7114) by [@blackberryfloat](https://github.com/blackberryfloat)
|
||||
* Add `egui::Sides` `shrink_left` / `shrink_right` [#7295](https://github.com/emilk/egui/pull/7295) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Set intrinsic size for Label [#7328](https://github.com/emilk/egui/pull/7328) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
|
||||
### 🔧 Changed
|
||||
* Raise MSRV to 1.85 [#6848](https://github.com/emilk/egui/pull/6848) by [@torokati44](https://github.com/torokati44), [#7279](https://github.com/emilk/egui/pull/7279) by [@emilk](https://github.com/emilk)
|
||||
* Set `hint_text` in `WidgetInfo` [#5724](https://github.com/emilk/egui/pull/5724) by [@bircni](https://github.com/bircni)
|
||||
* Implement `Default` for `ThemePreference` [#5702](https://github.com/emilk/egui/pull/5702) by [@MichaelGrupp](https://github.com/MichaelGrupp)
|
||||
* Align `available_rect` docs with the new reality after #4590 [#5701](https://github.com/emilk/egui/pull/5701) by [@podusowski](https://github.com/podusowski)
|
||||
* Clarify platform-specific details for `Viewport` positioning [#5715](https://github.com/emilk/egui/pull/5715) by [@aspiringLich](https://github.com/aspiringLich)
|
||||
* Simplify the text cursor API [#5785](https://github.com/emilk/egui/pull/5785) by [@valadaptive](https://github.com/valadaptive)
|
||||
* Bump accesskit to 0.19 [#7040](https://github.com/emilk/egui/pull/7040) by [@valadaptive](https://github.com/valadaptive)
|
||||
* Better define the meaning of `SizeHint` [#7079](https://github.com/emilk/egui/pull/7079) by [@emilk](https://github.com/emilk)
|
||||
* Move all input-related options into `InputOptions` [#7121](https://github.com/emilk/egui/pull/7121) by [@emilk](https://github.com/emilk)
|
||||
* `Button` inherits the `alt_text` of the `Image` in it, if any [#7136](https://github.com/emilk/egui/pull/7136) by [@emilk](https://github.com/emilk)
|
||||
* Change API of `Tooltip` slightly [#7151](https://github.com/emilk/egui/pull/7151) by [@emilk](https://github.com/emilk)
|
||||
* Use Rust edition 2024 [#7280](https://github.com/emilk/egui/pull/7280) by [@emilk](https://github.com/emilk)
|
||||
* Change `ui.disable()` to modify opacity [#7282](https://github.com/emilk/egui/pull/7282) by [@emilk](https://github.com/emilk)
|
||||
* Make the font atlas use a color image [#7298](https://github.com/emilk/egui/pull/7298) by [@valadaptive](https://github.com/valadaptive)
|
||||
* Implement `BitOr` and `BitOrAssign` for `Rect` [#7319](https://github.com/emilk/egui/pull/7319) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
|
||||
### 🔥 Removed
|
||||
* Remove things that have been deprecated for over a year [#7099](https://github.com/emilk/egui/pull/7099) by [@emilk](https://github.com/emilk)
|
||||
* Remove `SelectableLabel` [#7277](https://github.com/emilk/egui/pull/7277) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
|
||||
### 🐛 Fixed
|
||||
* `Scene`: make `scene_rect` full size on reset [#5801](https://github.com/emilk/egui/pull/5801) by [@graydenshand](https://github.com/graydenshand)
|
||||
* `Scene`: `TextEdit` selection when placed in a `Scene` [#5791](https://github.com/emilk/egui/pull/5791) by [@karhu](https://github.com/karhu)
|
||||
* `Scene`: Set transform layer before calling user content [#5884](https://github.com/emilk/egui/pull/5884) by [@mitchmindtree](https://github.com/mitchmindtree)
|
||||
* Fix: transform `TextShape` underline width [#5865](https://github.com/emilk/egui/pull/5865) by [@emilk](https://github.com/emilk)
|
||||
* Fix missing repaint after `consume_key` [#7134](https://github.com/emilk/egui/pull/7134) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Update `emoji-icon-font` with fix for fullwidth latin characters [#7067](https://github.com/emilk/egui/pull/7067) by [@emilk](https://github.com/emilk)
|
||||
* Mark all keys as released if the app loses focus [#5743](https://github.com/emilk/egui/pull/5743) by [@emilk](https://github.com/emilk)
|
||||
* Fix scroll handle extending outside of `ScrollArea` [#5286](https://github.com/emilk/egui/pull/5286) by [@gilbertoalexsantos](https://github.com/gilbertoalexsantos)
|
||||
* Fix `Response::clicked_elsewhere` not returning `true` sometimes [#5798](https://github.com/emilk/egui/pull/5798) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Fix kinetic scrolling on touch devices [#5778](https://github.com/emilk/egui/pull/5778) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Fix `DragValue` expansion when editing [#5809](https://github.com/emilk/egui/pull/5809) by [@MStarha](https://github.com/MStarha)
|
||||
* Fix disabled `DragValue` eating focus, causing focus to reset [#5826](https://github.com/emilk/egui/pull/5826) by [@KonaeAkira](https://github.com/KonaeAkira)
|
||||
* Fix semi-transparent colors appearing too bright [#5824](https://github.com/emilk/egui/pull/5824) by [@emilk](https://github.com/emilk)
|
||||
* Improve drag-to-select text (add margins) [#5797](https://github.com/emilk/egui/pull/5797) by [@hankjordan](https://github.com/hankjordan)
|
||||
* Fix bug in pointer movement detection [#5329](https://github.com/emilk/egui/pull/5329) by [@rustbasic](https://github.com/rustbasic)
|
||||
* Protect against NaN in hit-test code [#6851](https://github.com/emilk/egui/pull/6851) by [@Skgland](https://github.com/Skgland)
|
||||
* Fix image button panicking with tiny `available_space` [#6900](https://github.com/emilk/egui/pull/6900) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Fix links and text selection in horizontal_wrapped layout [#6905](https://github.com/emilk/egui/pull/6905) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Fix `leading_space` sometimes being ignored during paragraph splitting [#7031](https://github.com/emilk/egui/pull/7031) by [@afishhh](https://github.com/afishhh)
|
||||
* Fix typo in deprecation message for `ComboBox::from_id_source` [#7055](https://github.com/emilk/egui/pull/7055) by [@aelmizeb](https://github.com/aelmizeb)
|
||||
* Bug fix: make sure `end_pass` is called for all loaders [#7072](https://github.com/emilk/egui/pull/7072) by [@emilk](https://github.com/emilk)
|
||||
* Report image alt text as text if widget contains no other text [#7142](https://github.com/emilk/egui/pull/7142) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Slider: move by at least the next increment when using fixed_decimals [#7066](https://github.com/emilk/egui/pull/7066) by [@0x53A](https://github.com/0x53A)
|
||||
* Fix crash when using infinite widgets [#7296](https://github.com/emilk/egui/pull/7296) by [@emilk](https://github.com/emilk)
|
||||
* Fix `debug_assert` triggered by `menu`/`intersect_ray` [#7299](https://github.com/emilk/egui/pull/7299) by [@emilk](https://github.com/emilk)
|
||||
* Change `Rect::area` to return zero for negative rectangles [#7305](https://github.com/emilk/egui/pull/7305) by [@emilk](https://github.com/emilk)
|
||||
|
||||
### 🚀 Performance
|
||||
* Optimize editing long text by caching each paragraph [#5411](https://github.com/emilk/egui/pull/5411) by [@afishhh](https://github.com/afishhh)
|
||||
* Make `WidgetText` smaller and faster [#6903](https://github.com/emilk/egui/pull/6903) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
|
||||
|
||||
## 0.31.1 - 2025-03-05
|
||||
* Fix sizing bug in `TextEdit::singleline` [#5640](https://github.com/emilk/egui/pull/5640) by [@IaVashik](https://github.com/IaVashik)
|
||||
* Fix panic when rendering thin textured rectangles [#5692](https://github.com/emilk/egui/pull/5692) by [@PPakalns](https://github.com/PPakalns)
|
||||
|
|
|
|||
32
Cargo.lock
32
Cargo.lock
|
|
@ -1197,7 +1197,7 @@ checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53"
|
|||
|
||||
[[package]]
|
||||
name = "ecolor"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"bytemuck",
|
||||
"cint",
|
||||
|
|
@ -1209,7 +1209,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "eframe"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"bytemuck",
|
||||
|
|
@ -1249,7 +1249,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"accesskit",
|
||||
"ahash",
|
||||
|
|
@ -1269,7 +1269,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui-wgpu"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"bytemuck",
|
||||
|
|
@ -1287,7 +1287,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui-winit"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"accesskit_winit",
|
||||
"ahash",
|
||||
|
|
@ -1308,7 +1308,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui_demo_app"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"bytemuck",
|
||||
"chrono",
|
||||
|
|
@ -1336,7 +1336,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui_demo_lib"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"criterion",
|
||||
|
|
@ -1353,7 +1353,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui_extras"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"chrono",
|
||||
|
|
@ -1372,7 +1372,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui_glow"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"ahash",
|
||||
"bytemuck",
|
||||
|
|
@ -1392,7 +1392,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui_kittest"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"dify",
|
||||
"document-features",
|
||||
|
|
@ -1408,7 +1408,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "egui_tests"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"egui",
|
||||
"egui_extras",
|
||||
|
|
@ -1438,7 +1438,7 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
|
|||
|
||||
[[package]]
|
||||
name = "emath"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"bytemuck",
|
||||
"document-features",
|
||||
|
|
@ -1535,7 +1535,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "epaint"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"ab_glyph",
|
||||
"ahash",
|
||||
|
|
@ -1558,7 +1558,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "epaint_default_fonts"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
|
||||
[[package]]
|
||||
name = "equivalent"
|
||||
|
|
@ -3236,7 +3236,7 @@ checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3"
|
|||
|
||||
[[package]]
|
||||
name = "popups"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
dependencies = [
|
||||
"eframe",
|
||||
"env_logger",
|
||||
|
|
@ -5481,7 +5481,7 @@ checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9"
|
|||
|
||||
[[package]]
|
||||
name = "xtask"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
|
||||
[[package]]
|
||||
name = "yaml-rust"
|
||||
|
|
|
|||
26
Cargo.toml
26
Cargo.toml
|
|
@ -24,7 +24,7 @@ members = [
|
|||
edition = "2024"
|
||||
license = "MIT OR Apache-2.0"
|
||||
rust-version = "1.85"
|
||||
version = "0.31.1"
|
||||
version = "0.32.0"
|
||||
|
||||
|
||||
[profile.release]
|
||||
|
|
@ -55,18 +55,18 @@ opt-level = 2
|
|||
|
||||
|
||||
[workspace.dependencies]
|
||||
emath = { version = "0.31.1", path = "crates/emath", default-features = false }
|
||||
ecolor = { version = "0.31.1", path = "crates/ecolor", default-features = false }
|
||||
epaint = { version = "0.31.1", path = "crates/epaint", default-features = false }
|
||||
epaint_default_fonts = { version = "0.31.1", path = "crates/epaint_default_fonts" }
|
||||
egui = { version = "0.31.1", path = "crates/egui", default-features = false }
|
||||
egui-winit = { version = "0.31.1", path = "crates/egui-winit", default-features = false }
|
||||
egui_extras = { version = "0.31.1", path = "crates/egui_extras", default-features = false }
|
||||
egui-wgpu = { version = "0.31.1", path = "crates/egui-wgpu", default-features = false }
|
||||
egui_demo_lib = { version = "0.31.1", path = "crates/egui_demo_lib", default-features = false }
|
||||
egui_glow = { version = "0.31.1", path = "crates/egui_glow", default-features = false }
|
||||
egui_kittest = { version = "0.31.1", path = "crates/egui_kittest", default-features = false }
|
||||
eframe = { version = "0.31.1", path = "crates/eframe", default-features = false }
|
||||
emath = { version = "0.32.0", path = "crates/emath", default-features = false }
|
||||
ecolor = { version = "0.32.0", path = "crates/ecolor", default-features = false }
|
||||
epaint = { version = "0.32.0", path = "crates/epaint", default-features = false }
|
||||
epaint_default_fonts = { version = "0.32.0", path = "crates/epaint_default_fonts" }
|
||||
egui = { version = "0.32.0", path = "crates/egui", default-features = false }
|
||||
egui-winit = { version = "0.32.0", path = "crates/egui-winit", default-features = false }
|
||||
egui_extras = { version = "0.32.0", path = "crates/egui_extras", default-features = false }
|
||||
egui-wgpu = { version = "0.32.0", path = "crates/egui-wgpu", default-features = false }
|
||||
egui_demo_lib = { version = "0.32.0", path = "crates/egui_demo_lib", default-features = false }
|
||||
egui_glow = { version = "0.32.0", path = "crates/egui_glow", default-features = false }
|
||||
egui_kittest = { version = "0.32.0", path = "crates/egui_kittest", default-features = false }
|
||||
eframe = { version = "0.32.0", path = "crates/eframe", default-features = false }
|
||||
|
||||
accesskit = "0.19.0"
|
||||
accesskit_winit = "0.27"
|
||||
|
|
|
|||
30
RELEASES.md
30
RELEASES.md
|
|
@ -25,8 +25,8 @@ We don't update the MSRV in a patch release, unless we really, really need to.
|
|||
* [ ] copy this checklist to a new egui issue, called "Release 0.xx.y"
|
||||
* [ ] close all issues in the milestone for this release
|
||||
|
||||
## Patch release
|
||||
* [ ] make a branch off of the latest release
|
||||
## Special steps for patch release
|
||||
* [ ] make a branch off of the _latest_ release
|
||||
* [ ] cherry-pick what you want to release
|
||||
* [ ] run `cargo semver-checks`
|
||||
|
||||
|
|
@ -49,6 +49,7 @@ We don't update the MSRV in a patch release, unless we really, really need to.
|
|||
|
||||
## Preparation
|
||||
* [ ] make sure there are no important unmerged PRs
|
||||
* [ ] Create a branch called `release-0.xx.0` and open a PR for it
|
||||
* [ ] run `scripts/generate_example_screenshots.sh` if needed
|
||||
* [ ] write a short release note that fits in a bluesky post
|
||||
* [ ] record gif for `CHANGELOG.md` release note (and later bluesky post)
|
||||
|
|
@ -56,21 +57,22 @@ We don't update the MSRV in a patch release, unless we really, really need to.
|
|||
* [ ] run `scripts/generate_changelog.py --version 0.x.0 --write`
|
||||
* [ ] read changelogs and clean them up if needed
|
||||
* [ ] write a good intro with highlight for the main changelog
|
||||
* [ ] bump version numbers in workspace `Cargo.toml`
|
||||
* [ ] run `typos`
|
||||
|
||||
## Actual release
|
||||
I usually do this all on the `main` branch, but doing it in a release branch is also fine, as long as you remember to merge it into `main` later.
|
||||
|
||||
* [ ] Run `typos`
|
||||
* [ ] `git commit -m 'Release 0.x.0 - <release title>'`
|
||||
* [ ] Publish the crates by running `scripts/publish_crates.sh`
|
||||
* [ ] bump version numbers in workspace `Cargo.toml`
|
||||
* [ ] check that CI for the PR is green
|
||||
* [ ] publish the crates by running `scripts/publish_crates.sh`
|
||||
* [ ] merge release PR as `Release 0.x.0 - <release title>`
|
||||
* [ ] Check out the release commit locally
|
||||
* [ ] `git tag -a 0.x.0 -m 'Release 0.x.0 - <release title>'`
|
||||
* [ ] `git pull --tags ; git tag -d latest && git tag -a latest -m 'Latest release' && git push --tags origin latest --force ; git push --tags`
|
||||
* [ ] merge release PR or push to `main`
|
||||
* [ ] check that CI is green
|
||||
* [ ] do a GitHub release: https://github.com/emilk/egui/releases/new
|
||||
* Follow the format of the last release
|
||||
* [ ] wait for documentation to build: https://docs.rs/releases/queue
|
||||
* follow the format of the last release
|
||||
* [ ] wait for the documentation build to finish: https://docs.rs/releases/queue
|
||||
* [ ] https://docs.rs/egui/ works
|
||||
* [ ] https://docs.rs/eframe/ works
|
||||
|
||||
|
||||
## Announcements
|
||||
|
|
@ -91,6 +93,6 @@ I usually do this all on the `main` branch, but doing it in a release branch is
|
|||
|
||||
|
||||
## Finally
|
||||
* [ ] Close the milestone
|
||||
* [ ] Close this issue
|
||||
* [ ] Improve `RELEASES.md` with what you learned this time around
|
||||
* [ ] close the milestone
|
||||
* [ ] close this issue
|
||||
* [ ] improve `RELEASES.md` with what you learned this time around
|
||||
|
|
|
|||
|
|
@ -6,6 +6,12 @@ This file is updated upon each release.
|
|||
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
|
||||
|
||||
|
||||
## 0.32.0 - 2025-07-10
|
||||
* Fix semi-transparent colors appearing too bright [#5824](https://github.com/emilk/egui/pull/5824) by [@emilk](https://github.com/emilk)
|
||||
* Remove things that have been deprecated for over a year [#7099](https://github.com/emilk/egui/pull/7099) by [@emilk](https://github.com/emilk)
|
||||
* Make `Hsva` derive serde [#7132](https://github.com/emilk/egui/pull/7132) by [@bircni](https://github.com/bircni)
|
||||
|
||||
|
||||
## 0.31.1 - 2025-03-05
|
||||
Nothing new
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,33 @@ This file is updated upon each release.
|
|||
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
|
||||
|
||||
|
||||
## 0.32.0 - 2025-07-10
|
||||
### ⭐ Added
|
||||
* Add pointer events and focus handling for apps run in a Shadow DOM [#5627](https://github.com/emilk/egui/pull/5627) by [@xxvvii](https://github.com/xxvvii)
|
||||
* MacOS: Add `movable_by_window_background` option to viewport [#5412](https://github.com/emilk/egui/pull/5412) by [@jim-ec](https://github.com/jim-ec)
|
||||
* Add macOS-specific `has_shadow` and `with_has_shadow` to ViewportBuilder [#6850](https://github.com/emilk/egui/pull/6850) by [@gaelanmcmillan](https://github.com/gaelanmcmillan)
|
||||
* Add external eventloop support [#6750](https://github.com/emilk/egui/pull/6750) by [@wpbrown](https://github.com/wpbrown)
|
||||
|
||||
### 🔧 Changed
|
||||
* Update MSRV to 1.85 [#7279](https://github.com/emilk/egui/pull/7279) by [@emilk](https://github.com/emilk)
|
||||
* Use Rust edition 2024 [#7280](https://github.com/emilk/egui/pull/7280) by [@emilk](https://github.com/emilk)
|
||||
* Rename `should_propagate_event` and add `should_prevent_default` [#5779](https://github.com/emilk/egui/pull/5779) by [@th0rex](https://github.com/th0rex)
|
||||
* Clarify platform-specific details for `Viewport` positioning [#5715](https://github.com/emilk/egui/pull/5715) by [@aspiringLich](https://github.com/aspiringLich)
|
||||
* Enhance stability on Windows [#5723](https://github.com/emilk/egui/pull/5723) by [@rustbasic](https://github.com/rustbasic)
|
||||
* Set `web-sys` min version to `0.3.73` [#5862](https://github.com/emilk/egui/pull/5862) by [@wareya](https://github.com/wareya)
|
||||
* Bump `ron` to `0.10.1` [#6861](https://github.com/emilk/egui/pull/6861) by [@torokati44](https://github.com/torokati44)
|
||||
* Disallow `accesskit` on Android NativeActivity, making `hello_android` working again [#6855](https://github.com/emilk/egui/pull/6855) by [@podusowski](https://github.com/podusowski)
|
||||
* Respect and detect `prefers-color-scheme: no-preference` [#7293](https://github.com/emilk/egui/pull/7293) by [@emilk](https://github.com/emilk)
|
||||
|
||||
### 🐛 Fixed
|
||||
* Mark all keys as up if the app loses focus [#5743](https://github.com/emilk/egui/pull/5743) by [@emilk](https://github.com/emilk)
|
||||
* Fix text input on Android [#5759](https://github.com/emilk/egui/pull/5759) by [@StratusFearMe21](https://github.com/StratusFearMe21)
|
||||
* Fix text distortion on mobile devices/browsers with `glow` backend [#6893](https://github.com/emilk/egui/pull/6893) by [@wareya](https://github.com/wareya)
|
||||
* Workaround libpng crash on macOS by not creating `NSImage` from png data [#7252](https://github.com/emilk/egui/pull/7252) by [@Wumpf](https://github.com/Wumpf)
|
||||
* Fix incorrect window sizes for non-resizable windows on Wayland [#7103](https://github.com/emilk/egui/pull/7103) by [@GoldsteinE](https://github.com/GoldsteinE)
|
||||
* Web: only consume copy/cut events if the canvas has focus [#7270](https://github.com/emilk/egui/pull/7270) by [@emilk](https://github.com/emilk)
|
||||
|
||||
|
||||
## 0.31.1 - 2025-03-05
|
||||
Nothing new
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,12 @@ This file is updated upon each release.
|
|||
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
|
||||
|
||||
|
||||
## 0.32.0 - 2025-07-10
|
||||
* Update to wgpu 25 [#6744](https://github.com/emilk/egui/pull/6744) by [@torokati44](https://github.com/torokati44)
|
||||
* Free textures after submitting queue instead of before with wgpu renderer on Web [#7291](https://github.com/emilk/egui/pull/7291) by [@Wumpf](https://github.com/Wumpf)
|
||||
* Improve texture filtering by doing it in gamma space [#7311](https://github.com/emilk/egui/pull/7311) by [@emilk](https://github.com/emilk)
|
||||
|
||||
|
||||
## 0.31.1 - 2025-03-05
|
||||
Nothing new
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,14 @@ This file is updated upon each release.
|
|||
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
|
||||
|
||||
|
||||
## 0.32.0 - 2025-07-10
|
||||
* Mark all keys as released if the app loses focus [#5743](https://github.com/emilk/egui/pull/5743) by [@emilk](https://github.com/emilk)
|
||||
* Fix text input on Android [#5759](https://github.com/emilk/egui/pull/5759) by [@StratusFearMe21](https://github.com/StratusFearMe21)
|
||||
* Add macOS-specific `has_shadow` and `with_has_shadow` to ViewportBuilder [#6850](https://github.com/emilk/egui/pull/6850) by [@gaelanmcmillan](https://github.com/gaelanmcmillan)
|
||||
* Support for back-button on Android [#7073](https://github.com/emilk/egui/pull/7073) by [@ardocrat](https://github.com/ardocrat)
|
||||
* Fix incorrect window sizes for non-resizable windows on Wayland [#7103](https://github.com/emilk/egui/pull/7103) by [@GoldsteinE](https://github.com/GoldsteinE)
|
||||
|
||||
|
||||
## 0.31.1 - 2025-03-05
|
||||
Nothing new
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,29 @@ This file is updated upon each release.
|
|||
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
|
||||
|
||||
|
||||
## 0.32.0 - 2025-07-10 - Improved SVG support
|
||||
### ⭐ Added
|
||||
* Allow loading multi-MIME formats using the image_loader [#5769](https://github.com/emilk/egui/pull/5769) by [@MYDIH](https://github.com/MYDIH)
|
||||
* Make ImageLoader use background thread [#5394](https://github.com/emilk/egui/pull/5394) by [@bircni](https://github.com/bircni)
|
||||
* Add overline option for Table rows [#5637](https://github.com/emilk/egui/pull/5637) by [@akx](https://github.com/akx)
|
||||
* Support text in SVGs [#5979](https://github.com/emilk/egui/pull/5979) by [@cernec1999](https://github.com/cernec1999)
|
||||
* Enable setting DatePickerButton start and end year explicitly [#7061](https://github.com/emilk/egui/pull/7061) by [@zachbateman](https://github.com/zachbateman)
|
||||
* Support custom syntect settings in syntax highlighter [#7084](https://github.com/emilk/egui/pull/7084) by [@mkeeter](https://github.com/mkeeter)
|
||||
|
||||
### 🔧 Changed
|
||||
* Use enum-map serde feature only when serde is enabled [#5748](https://github.com/emilk/egui/pull/5748) by [@tyssyt](https://github.com/tyssyt)
|
||||
* Better define the meaning of `SizeHint` [#7079](https://github.com/emilk/egui/pull/7079) by [@emilk](https://github.com/emilk)
|
||||
|
||||
### 🔥 Removed
|
||||
* Remove things that have been deprecated for over a year [#7099](https://github.com/emilk/egui/pull/7099) by [@emilk](https://github.com/emilk)
|
||||
|
||||
### 🐛 Fixed
|
||||
* Refactor MIME type support detection in image loader to allow for deferred handling and appended encoding info [#5686](https://github.com/emilk/egui/pull/5686) by [@markusdd](https://github.com/markusdd)
|
||||
* Fix incorrect color fringe colors on SVG:s [#7069](https://github.com/emilk/egui/pull/7069) by [@emilk](https://github.com/emilk)
|
||||
* Fix sometimes blurry SVGs [#7071](https://github.com/emilk/egui/pull/7071) by [@emilk](https://github.com/emilk)
|
||||
* Fix crash in `egui_extras::FileLoader` after `forget_image` [#6995](https://github.com/emilk/egui/pull/6995) by [@bircni](https://github.com/bircni)
|
||||
|
||||
|
||||
## 0.31.1 - 2025-03-05
|
||||
* Fix image_loader for animated image types [#5688](https://github.com/emilk/egui/pull/5688) by [@BSteffaniak](https://github.com/BSteffaniak)
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,11 @@ Changes since the last release can be found at <https://github.com/emilk/egui/co
|
|||
|
||||
|
||||
|
||||
## 0.32.0 - 2025-07-10
|
||||
* Fix text distortion on mobile devices/browsers with `glow` backend [#6893](https://github.com/emilk/egui/pull/6893) by [@wareya](https://github.com/wareya)
|
||||
* Improve texture filtering by doing it in gamma space [#7311](https://github.com/emilk/egui/pull/7311) by [@emilk](https://github.com/emilk)
|
||||
|
||||
|
||||
## 0.31.1 - 2025-03-05
|
||||
Nothing new
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,19 @@ This file is updated upon each release.
|
|||
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
|
||||
|
||||
|
||||
## 0.32.0 - 2025-07-10
|
||||
### ⭐ Added
|
||||
* Add `ImageLoader::has_pending` and `wait_for_pending_images` [#7030](https://github.com/emilk/egui/pull/7030) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Create custom `egui_kittest::Node` [#7138](https://github.com/emilk/egui/pull/7138) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Add `HarnessBuilder::theme` [#7289](https://github.com/emilk/egui/pull/7289) by [@emilk](https://github.com/emilk)
|
||||
* Add support for scrolling via accesskit / kittest [#7286](https://github.com/emilk/egui/pull/7286) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Add `failed_pixel_count_threshold` [#7092](https://github.com/emilk/egui/pull/7092) by [@bircni](https://github.com/bircni)
|
||||
|
||||
### 🔧 Changed
|
||||
* More ergonomic functions taking `Impl Into<String>` [#7307](https://github.com/emilk/egui/pull/7307) by [@emlik](https://github.com/emilk)
|
||||
* Update kittest to 0.2 [#7332](https://github.com/emilk/egui/pull/7332) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
|
||||
|
||||
## 0.31.1 - 2025-03-05
|
||||
* Fix modifiers not working in kittest [#5693](https://github.com/emilk/egui/pull/5693) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
* Enable all features for egui_kittest docs [#5711](https://github.com/emilk/egui/pull/5711) by [@YgorSouza](https://github.com/YgorSouza)
|
||||
|
|
|
|||
|
|
@ -5,6 +5,32 @@ This file is updated upon each release.
|
|||
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
|
||||
|
||||
|
||||
## 0.32.0 - 2025-07-10
|
||||
### ⭐ Added
|
||||
* Impl AsRef<[u8]> for FontData [#5757](https://github.com/emilk/egui/pull/5757) by [@StratusFearMe21](https://github.com/StratusFearMe21)
|
||||
* Add `expand_bg` to customize size of text background [#5365](https://github.com/emilk/egui/pull/5365) by [@MeGaGiGaGon](https://github.com/MeGaGiGaGon)
|
||||
* Add anchored text rotation method, and clarify related docs [#7130](https://github.com/emilk/egui/pull/7130) by [@pmarks](https://github.com/pmarks)
|
||||
* Add `Galley::intrinsic_size` [#7146](https://github.com/emilk/egui/pull/7146) by [@lucasmerlin](https://github.com/lucasmerlin)
|
||||
|
||||
### 🔧 Changed
|
||||
* Fix semi-transparent colors appearing too bright [#5824](https://github.com/emilk/egui/pull/5824) by [@emilk](https://github.com/emilk)
|
||||
* Improve text sharpness [#5838](https://github.com/emilk/egui/pull/5838) by [@emilk](https://github.com/emilk)
|
||||
* Improve text rendering in light mode [#7290](https://github.com/emilk/egui/pull/7290) by [@emilk](https://github.com/emilk)
|
||||
* Make text underline and strikethrough pixel perfect crisp [#5857](https://github.com/emilk/egui/pull/5857) by [@emilk](https://github.com/emilk)
|
||||
* Update `emoji-icon-font` with fix for fullwidth latin characters [#7067](https://github.com/emilk/egui/pull/7067) by [@emilk](https://github.com/emilk)
|
||||
* Add assert messages and print bad argument values in asserts [#5216](https://github.com/emilk/egui/pull/5216) by [@bircni](https://github.com/bircni)
|
||||
|
||||
### 🔥 Removed
|
||||
* Remove things that have been deprecated for over a year [#7099](https://github.com/emilk/egui/pull/7099) by [@emilk](https://github.com/emilk)
|
||||
|
||||
### 🐛 Fixed
|
||||
* Fix: transform `TextShape` underline width [#5865](https://github.com/emilk/egui/pull/5865) by [@emilk](https://github.com/emilk)
|
||||
* Fix `visual_bounding_rect` for rotated text [#7050](https://github.com/emilk/egui/pull/7050) by [@pmarks](https://github.com/pmarks)
|
||||
|
||||
### 🚀 Performance
|
||||
* Optimize editing long text by caching each paragraph [#5411](https://github.com/emilk/egui/pull/5411) by [@afishhh](https://github.com/afishhh)
|
||||
|
||||
|
||||
## 0.31.1 - 2025-03-05
|
||||
* Fix panic when rendering thin textured rectangles [#5692](https://github.com/emilk/egui/pull/5692) by [@PPakalns](https://github.com/PPakalns)
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,10 @@ This file is updated upon each release.
|
|||
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
|
||||
|
||||
|
||||
## 0.32.0 - 2025-07-10
|
||||
Nothing new
|
||||
|
||||
|
||||
## 0.31.1 - 2025-03-05
|
||||
Nothing new
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3122591a76a063f1db0b88b54ecc4afe012ee27a1404c0948d0b9d639aeeece6
|
||||
size 3124
|
||||
oid sha256:0175461bbd86fffaad3538ea8dcec5001c7511aa201aa37b7736e7d2010b1522
|
||||
size 3483
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4dd5ffcf5a530f6fbe959fd74e2f5b4aeaee335baf79ad1cde8e42c34d84156c
|
||||
size 24590
|
||||
oid sha256:b5f36e1df27007b19cf56771145a667b4410dc9f4697afe629a2b42518640d62
|
||||
size 26531
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d0ab12a55c0d87f044ef7675f5b94b39977f2c5d3a2ea74eb843dfc85d5b9f31
|
||||
size 5645
|
||||
oid sha256:a5bdb725a17bb6f8871ee95ae8cf46e55055083b0be14716cccd17615c863c81
|
||||
size 6179
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5d443ef30cf12d2c4367135fd663270ed46f4864af2f3aae424610be86c73197
|
||||
size 66193
|
||||
oid sha256:044417e2259f58b8b71c44c49a60fe928e7faac1616d76eba7e156764c1bc2b2
|
||||
size 88583
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:bfdf77d119ae7926f52ac781455c4b1574eea53276069614738ba8b13b9921ea
|
||||
size 6024
|
||||
oid sha256:1eba63346816dfbcf90c6b87e8df8b2de989d33359fda91041a813c474f85cc1
|
||||
size 17981
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2f2630b0cfe5b044698e9f9533752e23a130e1984dfa0123645bc040d412dba5
|
||||
size 8636
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0bb13d0cb819d30ffbcd12d9327589a1e3ca226943cb381fa17eccfb8f7c06fb
|
||||
size 3229
|
||||
oid sha256:7be893df63405f3e86d1eb280083914a7ac63bb21fb8dce47e0476fb48ec9bd8
|
||||
size 8293
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a836741d52e1972b2047cefaabf59f601637d430d4b41bf6407ebda4f7931dac
|
||||
size 273450
|
||||
oid sha256:329972caa792f9e3a7caf207f41c35e1e26f0d09067e9282bf6538d560f13f7c
|
||||
size 79617
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6cf53e0da26c4295bafe9cbb9ea0ad8c50933e29eb67467c3a11783697ec5494
|
||||
size 7525
|
||||
oid sha256:45fce5a660dbca5a2ecca2fa93fa99b67dce7b03ad583fb5d44d2642d052a80c
|
||||
size 8603
|
||||
|
|
|
|||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e082670ac9daaee83e593c5dab0e3fccc6f6a4b824071f4983f7f51da144cad9
|
||||
size 17893
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:610b003b4c7715751d2d3753d304e2c5a0af17c9259fa24f21a97b33b9d0c3c7
|
||||
size 8549
|
||||
oid sha256:0787ac28dc8a0ca979f9be5f20c3fb1e2e1c5733add61d201bfe965590afe062
|
||||
size 25999
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:85a508fa7d16d9bc51f38d3531b30f024d8888f7f74bf2f351453fd13d13e0aa
|
||||
size 5928
|
||||
oid sha256:1d723a89d05be6e254846b8999041c54d5142baefcb8ad8c1effa5a50bae7791
|
||||
size 6578
|
||||
|
|
|
|||
|
|
@ -7,10 +7,12 @@ cd "$script_path/.."
|
|||
|
||||
cd examples
|
||||
for EXAMPLE_NAME in $(ls -1d */ | sed 's/\/$//'); do
|
||||
if [ ${EXAMPLE_NAME} != "hello_world_par" ] && # screenshot not implemented for wgpu backend
|
||||
if [ ${EXAMPLE_NAME} != "external_eventloop_async" ] &&
|
||||
[ ${EXAMPLE_NAME} != "hello_android" ] &&
|
||||
[ ${EXAMPLE_NAME} != "hello_world_par" ] && # screenshot not implemented for wgpu backend
|
||||
[ ${EXAMPLE_NAME} != "multiple_viewports" ] &&
|
||||
[ ${EXAMPLE_NAME} != "screenshot" ] &&
|
||||
[ ${EXAMPLE_NAME} != "puffin_viewer" ] &&
|
||||
[ ${EXAMPLE_NAME} != "screenshot" ] &&
|
||||
[ ${EXAMPLE_NAME} != "serial_windows" ];
|
||||
then
|
||||
echo ""
|
||||
|
|
|
|||
|
|
@ -6,9 +6,9 @@
|
|||
(cd crates/epaint && cargo publish --quiet) && echo "✅ epaint"
|
||||
(cd crates/egui && cargo publish --quiet) && echo "✅ egui"
|
||||
(cd crates/egui-winit && cargo publish --quiet) && echo "✅ egui-winit"
|
||||
(cd crates/egui_glow && cargo publish --quiet) && echo "✅ egui_glow"
|
||||
(cd crates/egui-wgpu && cargo publish --quiet) && echo "✅ egui-wgpu"
|
||||
(cd crates/eframe && cargo publish --quiet) && echo "✅ eframe"
|
||||
(cd crates/egui_kittest && cargo publish --quiet) && echo "✅ egui_kittest"
|
||||
(cd crates/egui_extras && cargo publish --quiet) && echo "✅ egui_extras"
|
||||
(cd crates/egui_demo_lib && cargo publish --quiet) && echo "✅ egui_demo_lib"
|
||||
(cd crates/egui_glow && cargo publish --quiet) && echo "✅ egui_glow"
|
||||
|
|
|
|||
Loading…
Reference in New Issue