diff --git a/CHANGELOG.md b/CHANGELOG.md index 09faecc525f..385550843cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,271 @@ This file is updated upon each release. Changes since the last release can be found at 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`, 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. + +![svg-scaling](https://github.com/user-attachments/assets/faf63f0c-0ff7-47a0-a4cb-7210efeccb72) + +##### 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. + +![image](https://github.com/user-attachments/assets/7f370aaf-886a-423c-8391-c378849b63ca) + +##### 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) diff --git a/Cargo.lock b/Cargo.lock index e0830058e3e..b1ed1855914 100644 --- a/Cargo.lock +++ b/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" diff --git a/Cargo.toml b/Cargo.toml index c4ea5258cb5..498aefc0822 100644 --- a/Cargo.toml +++ b/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" diff --git a/RELEASES.md b/RELEASES.md index 14db36403e2..cd94575ea64 100644 --- a/RELEASES.md +++ b/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 - '` -* [ ] 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 - ` +* [ ] Check out the release commit locally * [ ] `git tag -a 0.x.0 -m 'Release 0.x.0 - '` * [ ] `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 diff --git a/crates/ecolor/CHANGELOG.md b/crates/ecolor/CHANGELOG.md index 88d510dba51..535f8b18efd 100644 --- a/crates/ecolor/CHANGELOG.md +++ b/crates/ecolor/CHANGELOG.md @@ -6,6 +6,12 @@ This file is updated upon each release. Changes since the last release can be found at 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 diff --git a/crates/eframe/CHANGELOG.md b/crates/eframe/CHANGELOG.md index df169728126..aa0b3436c40 100644 --- a/crates/eframe/CHANGELOG.md +++ b/crates/eframe/CHANGELOG.md @@ -7,6 +7,33 @@ This file is updated upon each release. Changes since the last release can be found at 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 diff --git a/crates/egui-wgpu/CHANGELOG.md b/crates/egui-wgpu/CHANGELOG.md index 7209c91a1e0..eda975de26d 100644 --- a/crates/egui-wgpu/CHANGELOG.md +++ b/crates/egui-wgpu/CHANGELOG.md @@ -6,6 +6,12 @@ This file is updated upon each release. Changes since the last release can be found at 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 diff --git a/crates/egui-winit/CHANGELOG.md b/crates/egui-winit/CHANGELOG.md index efdc9c23d50..da51386e928 100644 --- a/crates/egui-winit/CHANGELOG.md +++ b/crates/egui-winit/CHANGELOG.md @@ -5,6 +5,14 @@ This file is updated upon each release. Changes since the last release can be found at 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 diff --git a/crates/egui_extras/CHANGELOG.md b/crates/egui_extras/CHANGELOG.md index bfadf84fb4d..2c2ae8ba4f5 100644 --- a/crates/egui_extras/CHANGELOG.md +++ b/crates/egui_extras/CHANGELOG.md @@ -5,6 +5,29 @@ This file is updated upon each release. Changes since the last release can be found at 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) diff --git a/crates/egui_glow/CHANGELOG.md b/crates/egui_glow/CHANGELOG.md index 86c77c9423a..4969b556925 100644 --- a/crates/egui_glow/CHANGELOG.md +++ b/crates/egui_glow/CHANGELOG.md @@ -6,6 +6,11 @@ Changes since the last release can be found at 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` [#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) diff --git a/crates/epaint/CHANGELOG.md b/crates/epaint/CHANGELOG.md index 2c2cfcc1c34..bff5336a431 100644 --- a/crates/epaint/CHANGELOG.md +++ b/crates/epaint/CHANGELOG.md @@ -5,6 +5,32 @@ This file is updated upon each release. Changes since the last release can be found at 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) diff --git a/crates/epaint_default_fonts/CHANGELOG.md b/crates/epaint_default_fonts/CHANGELOG.md index 709733613a3..f61b14cdaf7 100644 --- a/crates/epaint_default_fonts/CHANGELOG.md +++ b/crates/epaint_default_fonts/CHANGELOG.md @@ -5,6 +5,10 @@ This file is updated upon each release. Changes since the last release can be found at 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 diff --git a/examples/confirm_exit/screenshot.png b/examples/confirm_exit/screenshot.png index 854955cf78d..33debffe219 100644 --- a/examples/confirm_exit/screenshot.png +++ b/examples/confirm_exit/screenshot.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3122591a76a063f1db0b88b54ecc4afe012ee27a1404c0948d0b9d639aeeece6 -size 3124 +oid sha256:0175461bbd86fffaad3538ea8dcec5001c7511aa201aa37b7736e7d2010b1522 +size 3483 diff --git a/examples/custom_3d_glow/screenshot.png b/examples/custom_3d_glow/screenshot.png index c3907a5ec21..19bf33d64cc 100644 --- a/examples/custom_3d_glow/screenshot.png +++ b/examples/custom_3d_glow/screenshot.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4dd5ffcf5a530f6fbe959fd74e2f5b4aeaee335baf79ad1cde8e42c34d84156c -size 24590 +oid sha256:b5f36e1df27007b19cf56771145a667b4410dc9f4697afe629a2b42518640d62 +size 26531 diff --git a/examples/custom_font/screenshot.png b/examples/custom_font/screenshot.png index 7e6edc3dd59..e7a20348da8 100644 --- a/examples/custom_font/screenshot.png +++ b/examples/custom_font/screenshot.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d0ab12a55c0d87f044ef7675f5b94b39977f2c5d3a2ea74eb843dfc85d5b9f31 -size 5645 +oid sha256:a5bdb725a17bb6f8871ee95ae8cf46e55055083b0be14716cccd17615c863c81 +size 6179 diff --git a/examples/custom_font_style/screenshot.png b/examples/custom_font_style/screenshot.png index bb7727a1dbe..09f76bd1310 100644 --- a/examples/custom_font_style/screenshot.png +++ b/examples/custom_font_style/screenshot.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5d443ef30cf12d2c4367135fd663270ed46f4864af2f3aae424610be86c73197 -size 66193 +oid sha256:044417e2259f58b8b71c44c49a60fe928e7faac1616d76eba7e156764c1bc2b2 +size 88583 diff --git a/examples/custom_window_frame/screenshot.png b/examples/custom_window_frame/screenshot.png index 92e11a695ee..bb327544aa6 100644 --- a/examples/custom_window_frame/screenshot.png +++ b/examples/custom_window_frame/screenshot.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bfdf77d119ae7926f52ac781455c4b1574eea53276069614738ba8b13b9921ea -size 6024 +oid sha256:1eba63346816dfbcf90c6b87e8df8b2de989d33359fda91041a813c474f85cc1 +size 17981 diff --git a/examples/external_eventloop/screenshot.png b/examples/external_eventloop/screenshot.png new file mode 100644 index 00000000000..1236f4f8404 --- /dev/null +++ b/examples/external_eventloop/screenshot.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f2630b0cfe5b044698e9f9533752e23a130e1984dfa0123645bc040d412dba5 +size 8636 diff --git a/examples/hello_world_simple/screenshot.png b/examples/hello_world_simple/screenshot.png index 8e5d56570f9..546366aea72 100644 --- a/examples/hello_world_simple/screenshot.png +++ b/examples/hello_world_simple/screenshot.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0bb13d0cb819d30ffbcd12d9327589a1e3ca226943cb381fa17eccfb8f7c06fb -size 3229 +oid sha256:7be893df63405f3e86d1eb280083914a7ac63bb21fb8dce47e0476fb48ec9bd8 +size 8293 diff --git a/examples/images/screenshot.png b/examples/images/screenshot.png index 833b6565b2f..8dd58f2bd70 100644 --- a/examples/images/screenshot.png +++ b/examples/images/screenshot.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a836741d52e1972b2047cefaabf59f601637d430d4b41bf6407ebda4f7931dac -size 273450 +oid sha256:329972caa792f9e3a7caf207f41c35e1e26f0d09067e9282bf6538d560f13f7c +size 79617 diff --git a/examples/keyboard_events/screenshot.png b/examples/keyboard_events/screenshot.png index ed6ba6837f1..3048a2c5c0b 100644 --- a/examples/keyboard_events/screenshot.png +++ b/examples/keyboard_events/screenshot.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6cf53e0da26c4295bafe9cbb9ea0ad8c50933e29eb67467c3a11783697ec5494 -size 7525 +oid sha256:45fce5a660dbca5a2ecca2fa93fa99b67dce7b03ad583fb5d44d2642d052a80c +size 8603 diff --git a/examples/popups/screenshot.png b/examples/popups/screenshot.png new file mode 100644 index 00000000000..54b1df8c7e4 --- /dev/null +++ b/examples/popups/screenshot.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e082670ac9daaee83e593c5dab0e3fccc6f6a4b824071f4983f7f51da144cad9 +size 17893 diff --git a/examples/puffin_profiler/screenshot.png b/examples/puffin_profiler/screenshot.png index 319a347308d..fba55018a6d 100644 --- a/examples/puffin_profiler/screenshot.png +++ b/examples/puffin_profiler/screenshot.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:610b003b4c7715751d2d3753d304e2c5a0af17c9259fa24f21a97b33b9d0c3c7 -size 8549 +oid sha256:0787ac28dc8a0ca979f9be5f20c3fb1e2e1c5733add61d201bfe965590afe062 +size 25999 diff --git a/examples/user_attention/screenshot.png b/examples/user_attention/screenshot.png index 015bdf7ecdc..eaaeda498d3 100644 --- a/examples/user_attention/screenshot.png +++ b/examples/user_attention/screenshot.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:85a508fa7d16d9bc51f38d3531b30f024d8888f7f74bf2f351453fd13d13e0aa -size 5928 +oid sha256:1d723a89d05be6e254846b8999041c54d5142baefcb8ad8c1effa5a50bae7791 +size 6578 diff --git a/scripts/generate_example_screenshots.sh b/scripts/generate_example_screenshots.sh index 91e338d31a7..e2ed2361e1f 100755 --- a/scripts/generate_example_screenshots.sh +++ b/scripts/generate_example_screenshots.sh @@ -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 "" diff --git a/scripts/publish_crates.sh b/scripts/publish_crates.sh old mode 100644 new mode 100755 index 705b88c416b..c2f2fc24e47 --- a/scripts/publish_crates.sh +++ b/scripts/publish_crates.sh @@ -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"