summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmil Ernerfeldt <emil.ernerfeldt@gmail.com>2023-09-27 16:46:56 +0200
committerEmil Ernerfeldt <emil.ernerfeldt@gmail.com>2023-09-28 08:44:33 +0200
commit5a0186fa2b2324ab437099e456e55e281234ca99 (patch)
tree4ce4cb13a0786930785fc3639a5ffe31031461ad
parent9b2bcdb4a2f373a9ae8b2dd7bc03e5a3e78afb66 (diff)
Release 0.23.0 - New image API0.23.0
-rw-r--r--CHANGELOG.md85
-rw-r--r--Cargo.lock24
-rw-r--r--crates/ecolor/Cargo.toml2
-rw-r--r--crates/eframe/CHANGELOG.md33
-rw-r--r--crates/eframe/Cargo.toml12
-rw-r--r--crates/egui-wgpu/CHANGELOG.md7
-rw-r--r--crates/egui-wgpu/Cargo.toml4
-rw-r--r--crates/egui-winit/CHANGELOG.md7
-rw-r--r--crates/egui-winit/Cargo.toml4
-rw-r--r--crates/egui/Cargo.toml4
-rw-r--r--crates/egui_demo_app/Cargo.toml10
-rw-r--r--crates/egui_demo_lib/Cargo.toml16
-rw-r--r--crates/egui_demo_lib/data/icon.png (renamed from crates/egui_demo_lib/assets/icon.png)bin2642 -> 2642 bytes
-rw-r--r--crates/egui_demo_lib/src/demo/widget_gallery.rs2
-rw-r--r--crates/egui_extras/CHANGELOG.md8
-rw-r--r--crates/egui_extras/Cargo.toml4
-rw-r--r--crates/egui_glium/Cargo.toml8
-rw-r--r--crates/egui_glow/CHANGELOG.md5
-rw-r--r--crates/egui_glow/Cargo.toml6
-rw-r--r--crates/egui_plot/CHANGELOG.md11
-rw-r--r--crates/egui_plot/Cargo.toml10
-rw-r--r--crates/emath/Cargo.toml2
-rw-r--r--crates/epaint/CHANGELOG.md11
-rw-r--r--crates/epaint/Cargo.toml6
-rwxr-xr-xscripts/generate_changelog.py22
25 files changed, 240 insertions, 63 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ae62045f..d98cde64 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,91 @@ This file is updated upon each release.
Changes since the last release can be found by running the `scripts/generate_changelog.py` script.
+## 0.23.0 - 2023-09-27 - New image API
+This release contains a simple and powerful image API:
+
+```rs
+// Load from web:
+ui.image("https://www.example.com/some_image.png");
+
+// Included image in the binary using `include_bytes`:
+ui.image(egui::include_image!("../assets/ferris.svg"));
+
+// With options:
+ui.add(
+ egui::Image::new("file://path/to/image.jpg")
+ .max_width(200.0)
+ .rounding(10.0),
+);
+```
+
+The API is based on a plugin-system, where you can tell `egui` how to load the images, and from where.
+
+`egui_extras` comes with loaders for you, so all you need to do is add the following to your `Cargo.toml`:
+
+```toml
+egui_extras = { version = "0.23", features = ["all_loaders"] }
+image = { version = "0.24", features = ["jpeg", "png"] } # Add the types you want support for
+```
+
+And this to your code:
+
+```rs
+egui_extras::install_image_loaders(egui_ctx);
+```
+
+### ⚠️ BREAKING
+* Update MSRV to Rust 1.70.0 [#3310](https://github.com/emilk/egui/pull/3310)
+* Break out plotting to own crate `egui_plot` [#3282](https://github.com/emilk/egui/pull/3282)
+
+### ⭐ Added
+* A new image API [#3297](https://github.com/emilk/egui/pull/3297) [#3315](https://github.com/emilk/egui/pull/3315) [#3328](https://github.com/emilk/egui/pull/3328) [#3338](https://github.com/emilk/egui/pull/3338) [#3342](https://github.com/emilk/egui/pull/3342) [#3343](https://github.com/emilk/egui/pull/3343) [#3402](https://github.com/emilk/egui/pull/3402) (thanks [@jprochazk](https://github.com/jprochazk)!)
+* Add option to truncate text at some width [#3244](https://github.com/emilk/egui/pull/3244)
+* Add control of line height and letter spacing [#3302](https://github.com/emilk/egui/pull/3302)
+* Support images with rounded corners [#3257](https://github.com/emilk/egui/pull/3257)
+* Change focused widget with arrow keys [#3272](https://github.com/emilk/egui/pull/3272) (thanks [@TimonPost](https://github.com/TimonPost)!)
+* Add opt-in `puffin` feature to egui [#3298](https://github.com/emilk/egui/pull/3298)
+* Add debug-option to show a callstack to the widget under the mouse [#3391](https://github.com/emilk/egui/pull/3391)
+* Add `Context::open_url` and `Context::copy_text` [#3380](https://github.com/emilk/egui/pull/3380)
+* Add `Area::constrain_to` and `Window::constrain_to` [#3396](https://github.com/emilk/egui/pull/3396)
+* Add `Memory::area_rect` [#3161](https://github.com/emilk/egui/pull/3161) (thanks [@tosti007](https://github.com/tosti007)!)
+* Add `Margin::expand_rect` and `shrink_rect` [#3214](https://github.com/emilk/egui/pull/3214)
+* Provide `into_inner()` for `egui::mutex::{Mutex, RwLock}` [#3110](https://github.com/emilk/egui/pull/3110) (thanks [@KmolYuan](https://github.com/KmolYuan)!)
+* Support multi-threaded Wasm [#3236](https://github.com/emilk/egui/pull/3236)
+* Change touch force to be `Option<f32>` instead of `f32` [#3240](https://github.com/emilk/egui/pull/3240) (thanks [@lucasmerlin](https://github.com/lucasmerlin)!)
+* Add option to always open hyperlink in a new browser tab [#3242](https://github.com/emilk/egui/pull/3242) (thanks [@FreddyFunk](https://github.com/FreddyFunk)!)
+* Add `Window::drag_to_scroll` [#3118](https://github.com/emilk/egui/pull/3118) (thanks [@KYovchevski](https://github.com/KYovchevski)!)
+* Add `CollapsingState::remove` to clear stored state [#3252](https://github.com/emilk/egui/pull/3252) (thanks [@dmackdev](https://github.com/dmackdev)!)
+* Add tooltip_delay option [#3245](https://github.com/emilk/egui/pull/3245) (thanks [@YgorSouza](https://github.com/YgorSouza)!)
+* Added `Context::is_context_menu_open()` [#3267](https://github.com/emilk/egui/pull/3267) (thanks [@dmlary](https://github.com/dmlary)!)
+* Add `mime` field to `DroppedFile` [#3273](https://github.com/emilk/egui/pull/3273) (thanks [@abey79](https://github.com/abey79)!)
+* Allow setting the progress bar height [#3183](https://github.com/emilk/egui/pull/3183) (thanks [@s-nie](https://github.com/s-nie)!)
+* Add `scroll_area::State::velocity` [#3300](https://github.com/emilk/egui/pull/3300) (thanks [@Barugon](https://github.com/Barugon)!)
+* Add `Visuals::interact_cursor` [#3312](https://github.com/emilk/egui/pull/3312) (thanks [@zkldi](https://github.com/zkldi)!)
+* Add method to `RichText` making it easier to construct layout jobs [#3319](https://github.com/emilk/egui/pull/3319) (thanks [@OmegaJak](https://github.com/OmegaJak)!)
+* Add `Context::style_mut` [#3359](https://github.com/emilk/egui/pull/3359)
+* `std::borrow::Cow<'_, str>` now implements `TextBuffer` [#3164](https://github.com/emilk/egui/pull/3164) (thanks [@burtonageo](https://github.com/burtonageo)!)
+
+### 🔧 Changed
+* Separate text cursor from selection visuals [#3181](https://github.com/emilk/egui/pull/3181) (thanks [@lampsitter](https://github.com/lampsitter)!)
+* `DragValue`: update value on each key press by default [#2880](https://github.com/emilk/egui/pull/2880) (thanks [@Barugon](https://github.com/Barugon)!)
+* Replace uses of `RangeInclusive<f32>` with `emath::Rangef` [#3221](https://github.com/emilk/egui/pull/3221)
+* Implement `Send + Sync` for `ColorPickerFn` and `Ui` (#3148) [#3233](https://github.com/emilk/egui/pull/3233) (thanks [@idanarye](https://github.com/idanarye)!)
+* Use the minus character instead of "dash" [#3271](https://github.com/emilk/egui/pull/3271)
+* Changing `menu_image_button` to use `ImageButton` builder [#3288](https://github.com/emilk/egui/pull/3288) (thanks [@v-kat](https://github.com/v-kat)!)
+* Prune old egui memory data when reaching some limit [#3299](https://github.com/emilk/egui/pull/3299)
+
+### 🐛 Fixed
+* Fix TextEdit's character limit [#3173](https://github.com/emilk/egui/pull/3173) (thanks [@Serverator](https://github.com/Serverator)!)
+* Set the correct unicode character for "ctrl" shortcuts [#3186](https://github.com/emilk/egui/pull/3186) (thanks [@abey79](https://github.com/abey79)!)
+* Fix crash in `DragValue` when only setting `min_decimals` [#3231](https://github.com/emilk/egui/pull/3231)
+* Fix clipping issued with `ScrollArea` [#2860](https://github.com/emilk/egui/pull/2860) (thanks [@Barugon](https://github.com/Barugon)!)
+* Fix moving slider with arrow keys [#3354](https://github.com/emilk/egui/pull/3354)
+* Fix problems with tabs in text [#3355](https://github.com/emilk/egui/pull/3355)
+* Fix interaction with moved color-picker [#3395](https://github.com/emilk/egui/pull/3395)
+
+
+
## 0.22.0 - 2023-05-23 - A plethora of small improvements
### ⭐ Added
* Scroll bar visibility options [#2729](https://github.com/emilk/egui/pull/2729) (thanks [@IVAN-MK7](https://github.com/IVAN-MK7)!)
diff --git a/Cargo.lock b/Cargo.lock
index 9a858597..614c1df0 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1167,7 +1167,7 @@ checksum = "23d2f3407d9a573d666de4b5bdf10569d73ca9478087346697dcbae6244bfbcd"
[[package]]
name = "ecolor"
-version = "0.22.0"
+version = "0.23.0"
dependencies = [
"bytemuck",
"cint",
@@ -1178,7 +1178,7 @@ dependencies = [
[[package]]
name = "eframe"
-version = "0.22.0"
+version = "0.23.0"
dependencies = [
"bytemuck",
"cocoa",
@@ -1215,7 +1215,7 @@ dependencies = [
[[package]]
name = "egui"
-version = "0.22.0"
+version = "0.23.0"
dependencies = [
"accesskit",
"ahash",
@@ -1231,7 +1231,7 @@ dependencies = [
[[package]]
name = "egui-wgpu"
-version = "0.22.0"
+version = "0.23.0"
dependencies = [
"bytemuck",
"document-features",
@@ -1246,7 +1246,7 @@ dependencies = [
[[package]]
name = "egui-winit"
-version = "0.22.0"
+version = "0.23.0"
dependencies = [
"accesskit_winit",
"arboard",
@@ -1264,7 +1264,7 @@ dependencies = [
[[package]]
name = "egui_demo_app"
-version = "0.22.0"
+version = "0.23.0"
dependencies = [
"bytemuck",
"chrono",
@@ -1286,7 +1286,7 @@ dependencies = [
[[package]]
name = "egui_demo_lib"
-version = "0.22.0"
+version = "0.23.0"
dependencies = [
"chrono",
"criterion",
@@ -1301,7 +1301,7 @@ dependencies = [
[[package]]
name = "egui_extras"
-version = "0.22.0"
+version = "0.23.0"
dependencies = [
"chrono",
"document-features",
@@ -1321,7 +1321,7 @@ dependencies = [
[[package]]
name = "egui_glow"
-version = "0.22.0"
+version = "0.23.0"
dependencies = [
"bytemuck",
"document-features",
@@ -1340,7 +1340,7 @@ dependencies = [
[[package]]
name = "egui_plot"
-version = "0.22.0"
+version = "0.23.0"
dependencies = [
"document-features",
"egui",
@@ -1369,7 +1369,7 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
[[package]]
name = "emath"
-version = "0.22.0"
+version = "0.23.0"
dependencies = [
"bytemuck",
"document-features",
@@ -1445,7 +1445,7 @@ dependencies = [
[[package]]
name = "epaint"
-version = "0.22.0"
+version = "0.23.0"
dependencies = [
"ab_glyph",
"ahash",
diff --git a/crates/ecolor/Cargo.toml b/crates/ecolor/Cargo.toml
index 2e821516..8acafe7b 100644
--- a/crates/ecolor/Cargo.toml
+++ b/crates/ecolor/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "ecolor"
-version = "0.22.0"
+version = "0.23.0"
authors = [
"Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
"Andreas Reich <reichandreas@gmx.de>",
diff --git a/crates/eframe/CHANGELOG.md b/crates/eframe/CHANGELOG.md
index 072a54e8..2a0b5136 100644
--- a/crates/eframe/CHANGELOG.md
+++ b/crates/eframe/CHANGELOG.md
@@ -6,6 +6,39 @@ NOTE: [`egui-winit`](../egui-winit/CHANGELOG.md), [`egui_glium`](../egui_glium/C
This file is updated upon each release.
Changes since the last release can be found by running the `scripts/generate_changelog.py` script.
+## 0.23.0 - 2023-09-27
+* Update MSRV to Rust 1.70.0 [#3310](https://github.com/emilk/egui/pull/3310)
+* Update to puffin 0.16 [#3144](https://github.com/emilk/egui/pull/3144)
+* Update to `wgpu` 0.17.0 [#3170](https://github.com/emilk/egui/pull/3170) (thanks [@Aaron1011](https://github.com/Aaron1011)!)
+* Improved wgpu callbacks [#3253](https://github.com/emilk/egui/pull/3253) (thanks [@Wumpf](https://github.com/Wumpf)!)
+* Improve documentation of `eframe`, especially for wasm32 [#3295](https://github.com/emilk/egui/pull/3295)
+* `eframe::Frame::info` returns a reference [#3301](https://github.com/emilk/egui/pull/3301) (thanks [@Barugon](https://github.com/Barugon)!)
+* Move `App::persist_window` to `NativeOptions` and `App::max_size_points` to `WebOptions` [#3397](https://github.com/emilk/egui/pull/3397)
+
+#### Desktop/Native:
+* Only show on-screen-keyboard and IME when editing text [#3362](https://github.com/emilk/egui/pull/3362) (thanks [@Barugon](https://github.com/Barugon)!)
+* Add `eframe::storage_dir` [#3286](https://github.com/emilk/egui/pull/3286)
+* Add `NativeOptions::window_builder` for more customization [#3390](https://github.com/emilk/egui/pull/3390) (thanks [@twop](https://github.com/twop)!)
+* Better restore Window position on Mac when on secondary monitor [#3239](https://github.com/emilk/egui/pull/3239)
+* Fix iOS support in `eframe` [#3241](https://github.com/emilk/egui/pull/3241) (thanks [@lucasmerlin](https://github.com/lucasmerlin)!)
+* Speed up `eframe` state storage [#3353](https://github.com/emilk/egui/pull/3353) (thanks [@sebbert](https://github.com/sebbert)!)
+* Allow users to opt-out of default `winit` features [#3228](https://github.com/emilk/egui/pull/3228)
+* Expose Raw Window and Display Handles [#3073](https://github.com/emilk/egui/pull/3073) (thanks [@bash](https://github.com/bash)!)
+* Use window title as fallback when app_id is not set [#3107](https://github.com/emilk/egui/pull/3107) (thanks [@jacekpoz](https://github.com/jacekpoz)!)
+* Sleep a bit only when minimized [#3139](https://github.com/emilk/egui/pull/3139) (thanks [@icedrocket](https://github.com/icedrocket)!)
+* Prevent text from being cleared when selected due to winit IME [#3376](https://github.com/emilk/egui/pull/3376) (thanks [@YgorSouza](https://github.com/YgorSouza)!)
+* Fix android app quit on resume with glow backend [#3080](https://github.com/emilk/egui/pull/3080) (thanks [@tkkcc](https://github.com/tkkcc)!)
+* Fix panic with persistence without window [#3167](https://github.com/emilk/egui/pull/3167) (thanks [@sagebind](https://github.com/sagebind)!)
+* Only call `run_return` twice on Windows [#3053](https://github.com/emilk/egui/pull/3053) (thanks [@pan93412](https://github.com/pan93412)!)
+* Gracefully catch error saving state to disk [#3230](https://github.com/emilk/egui/pull/3230)
+* Recognize numpad enter/plus/minus [#3285](https://github.com/emilk/egui/pull/3285)
+* Add more puffin profile scopes to `eframe` [#3330](https://github.com/emilk/egui/pull/3330) [#3332](https://github.com/emilk/egui/pull/3332)
+
+#### Web:
+* Update to wasm-bindgen 0.2.87 [#3237](https://github.com/emilk/egui/pull/3237)
+* Remove `Function()` invocation from eframe text_agent to bypass "unsafe-eval" restrictions in Chrome browser extensions. [#3349](https://github.com/emilk/egui/pull/3349) (thanks [@aspect](https://github.com/aspect)!)
+* Fix docs about web [#3026](https://github.com/emilk/egui/pull/3026) (thanks [@kerryeon](https://github.com/kerryeon)!)
+
## 0.22.0 - 2023-05-23
* Fix: `request_repaint_after` works even when called from background thread [#2939](https://github.com/emilk/egui/pull/2939)
diff --git a/crates/eframe/Cargo.toml b/crates/eframe/Cargo.toml
index 8e484aa4..0faca560 100644
--- a/crates/eframe/Cargo.toml
+++ b/crates/eframe/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "eframe"
-version = "0.22.0"
+version = "0.23.0"
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
description = "egui framework - write GUI apps that compiles to web and/or natively"
edition = "2021"
@@ -92,7 +92,7 @@ x11 = ["egui-winit/x11"]
__screenshot = []
[dependencies]
-egui = { version = "0.22.0", path = "../egui", default-features = false, features = [
+egui = { version = "0.23.0", path = "../egui", default-features = false, features = [
"bytemuck",
"log",
] }
@@ -105,7 +105,7 @@ thiserror.workspace = true
## Enable this when generating docs.
document-features = { version = "0.2", optional = true }
-egui_glow = { version = "0.22.0", path = "../egui_glow", optional = true, default-features = false }
+egui_glow = { version = "0.23.0", path = "../egui_glow", optional = true, default-features = false }
glow = { version = "0.12", optional = true }
ron = { version = "0.8", optional = true, features = ["integer128"] }
serde = { version = "1", optional = true, features = ["derive"] }
@@ -113,7 +113,7 @@ serde = { version = "1", optional = true, features = ["derive"] }
# -------------------------------------------
# native:
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
-egui-winit = { version = "0.22.0", path = "../egui-winit", default-features = false, features = [
+egui-winit = { version = "0.23.0", path = "../egui-winit", default-features = false, features = [
"clipboard",
"links",
] }
@@ -125,7 +125,7 @@ winit = { version = "0.28.1", default-features = false }
# optional native:
directories-next = { version = "2", optional = true }
-egui-wgpu = { version = "0.22.0", path = "../egui-wgpu", optional = true, features = [
+egui-wgpu = { version = "0.23.0", path = "../egui-wgpu", optional = true, features = [
"winit",
] } # if wgpu is used, use it with winit
pollster = { version = "0.3", optional = true } # needed for wgpu
@@ -199,7 +199,7 @@ web-sys = { version = "0.3.58", features = [
] }
# optional web:
-egui-wgpu = { version = "0.22.0", path = "../egui-wgpu", optional = true } # if wgpu is used, use it without (!) winit
+egui-wgpu = { version = "0.23.0", path = "../egui-wgpu", optional = true } # if wgpu is used, use it without (!) winit
raw-window-handle = { version = "0.5.2", optional = true }
tts = { version = "0.25", optional = true, default-features = false }
wgpu = { workspace = true, optional = true }
diff --git a/crates/egui-wgpu/CHANGELOG.md b/crates/egui-wgpu/CHANGELOG.md
index d7cbee4d..6d8ba691 100644
--- a/crates/egui-wgpu/CHANGELOG.md
+++ b/crates/egui-wgpu/CHANGELOG.md
@@ -6,6 +6,13 @@ This file is updated upon each release.
Changes since the last release can be found by running the `scripts/generate_changelog.py` script.
+## 0.23.0 - 2023-09-27
+* Update to `wgpu` 0.17.0 [#3170](https://github.com/emilk/egui/pull/3170) (thanks [@Aaron1011](https://github.com/Aaron1011)!)
+* Improved wgpu callbacks [#3253](https://github.com/emilk/egui/pull/3253) (thanks [@Wumpf](https://github.com/Wumpf)!)
+* Fix depth texture init with multisampling [#3207](https://github.com/emilk/egui/pull/3207) (thanks [@mauliu](https://github.com/mauliu)!)
+* Fix panic on wgpu GL backend due to new screenshot capability [#3078](https://github.com/emilk/egui/pull/3078) (thanks [@amfaber](https://github.com/amfaber)!)
+
+
## 0.22.0 - 2023-05-23
* Update to wgpu 0.16 [#2884](https://github.com/emilk/egui/pull/2884) (thanks [@niklaskorz](https://github.com/niklaskorz)!)
* Device configuration is now dependent on adapter [#2951](https://github.com/emilk/egui/pull/2951) (thanks [@Wumpf](https://github.com/Wumpf)!)
diff --git a/crates/egui-wgpu/Cargo.toml b/crates/egui-wgpu/Cargo.toml
index 22d54cb0..06bc638b 100644
--- a/crates/egui-wgpu/Cargo.toml
+++ b/crates/egui-wgpu/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "egui-wgpu"
-version = "0.22.0"
+version = "0.23.0"
description = "Bindings for using egui natively using the wgpu library"
authors = [
"Nils Hasenbanck <nils@hasenbanck.de>",
@@ -36,7 +36,7 @@ winit = ["dep:winit"]
[dependencies]
-epaint = { version = "0.22.0", path = "../epaint", default-features = false, features = [
+epaint = { version = "0.23.0", path = "../epaint", default-features = false, features = [
"bytemuck",
] }
diff --git a/crates/egui-winit/CHANGELOG.md b/crates/egui-winit/CHANGELOG.md
index d181b99b..ecb1de76 100644
--- a/crates/egui-winit/CHANGELOG.md
+++ b/crates/egui-winit/CHANGELOG.md
@@ -5,6 +5,13 @@ This file is updated upon each release.
Changes since the last release can be found by running the `scripts/generate_changelog.py` script.
+## 0.23.0 - 2023-09-27
+* Only show on-screen-keyboard and IME when editing text [#3362](https://github.com/emilk/egui/pull/3362) (thanks [@Barugon](https://github.com/Barugon)!)
+* Replace `instant` with `web_time` [#3296](https://github.com/emilk/egui/pull/3296)
+* Allow users to opt-out of default `winit` features [#3228](https://github.com/emilk/egui/pull/3228)
+* Recognize numpad enter/plus/minus [#3285](https://github.com/emilk/egui/pull/3285)
+
+
## 0.22.0 - 2023-05-23
* Only use `wasm-bindgen` feature for `instant` when building for wasm32 [#2808](https://github.com/emilk/egui/pull/2808) (thanks [@gferon](https://github.com/gferon)!)
* Fix unsafe API of `Clipboard::new` [#2765](https://github.com/emilk/egui/pull/2765) (thanks [@dhardy](https://github.com/dhardy)!)
diff --git a/crates/egui-winit/Cargo.toml b/crates/egui-winit/Cargo.toml
index bc94ae9f..e48c2b07 100644
--- a/crates/egui-winit/Cargo.toml
+++ b/crates/egui-winit/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "egui-winit"
-version = "0.22.0"
+version = "0.23.0"
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
description = "Bindings for using egui with winit"
edition = "2021"
@@ -55,7 +55,7 @@ wayland = ["winit/wayland"]
x11 = ["winit/x11"]
[dependencies]
-egui = { version = "0.22.0", path = "../egui", default-features = false, features = [
+egui = { version = "0.23.0", path = "../egui", default-features = false, features = [
"log",
] }
log = { version = "0.4", features = ["std"] }
diff --git a/crates/egui/Cargo.toml b/crates/egui/Cargo.toml
index cd70f192..349f0849 100644
--- a/crates/egui/Cargo.toml
+++ b/crates/egui/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "egui"
-version = "0.22.0"
+version = "0.23.0"
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
description = "An easy-to-use immediate mode GUI that runs on both web and native"
edition = "2021"
@@ -76,7 +76,7 @@ unity = ["epaint/unity"]
[dependencies]
-epaint = { version = "0.22.0", path = "../epaint", default-features = false }
+epaint = { version = "0.23.0", path = "../epaint", default-features = false }
ahash = { version = "0.8.1", default-features = false, features = [
"no-rng", # we don't need DOS-protection, so we let users opt-in to it instead
diff --git a/crates/egui_demo_app/Cargo.toml b/crates/egui_demo_app/Cargo.toml
index 86a93f20..16c730d1 100644
--- a/crates/egui_demo_app/Cargo.toml
+++ b/crates/egui_demo_app/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "egui_demo_app"
-version = "0.22.0"
+version = "0.23.0"
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
license = "MIT OR Apache-2.0"
edition = "2021"
@@ -33,13 +33,13 @@ chrono = { version = "0.4", default-features = false, features = [
"js-sys",
"wasmbind",
] }
-eframe = { version = "0.22.0", path = "../eframe", default-features = false }
-egui = { version = "0.22.0", path = "../egui", features = [
+eframe = { version = "0.23.0", path = "../eframe", default-features = false }
+egui = { version = "0.23.0", path = "../egui", features = [
"callstack",
"extra_debug_asserts",
"log",
] }
-egui_demo_lib = { version = "0.22.0", path = "../egui_demo_lib", features = [
+egui_demo_lib = { version = "0.23.0", path = "../egui_demo_lib", features = [
"chrono",
] }
log = { version = "0.4", features = ["std"] }
@@ -47,7 +47,7 @@ log = { version = "0.4", features = ["std"] }
# Optional dependencies:
bytemuck = { version = "1.7.1", optional = true }
-egui_extras = { version = "0.22.0", path = "../egui_extras", features = [
+egui_extras = { version = "0.23.0", path = "../egui_extras", features = [
"image",
] }
rfd = { version = "0.11", optional = true }
diff --git a/crates/egui_demo_lib/Cargo.toml b/crates/egui_demo_lib/Cargo.toml
index 33b927fa..10fac0d1 100644
--- a/crates/egui_demo_lib/Cargo.toml
+++ b/crates/egui_demo_lib/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "egui_demo_lib"
-version = "0.22.0"
+version = "0.23.0"
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
description = "Example library for egui"
edition = "2021"
@@ -11,7 +11,13 @@ readme = "README.md"
repository = "https://github.com/emilk/egui/tree/master/crates/egui_demo_lib"
categories = ["gui", "graphics"]
keywords = ["glium", "egui", "gui", "gamedev"]
-include = ["../LICENSE-APACHE", "../LICENSE-MIT", "**/*.rs", "Cargo.toml"]
+include = [
+ "../LICENSE-APACHE",
+ "../LICENSE-MIT",
+ "**/*.rs",
+ "Cargo.toml",
+ "data/icon.png",
+]
[package.metadata.docs.rs]
all-features = true
@@ -32,9 +38,9 @@ syntect = ["egui_extras/syntect"]
[dependencies]
-egui = { version = "0.22.0", path = "../egui", default-features = false }
-egui_extras = { version = "0.22.0", path = "../egui_extras" }
-egui_plot = { version = "0.22.0", path = "../egui_plot" }
+egui = { version = "0.23.0", path = "../egui", default-features = false }
+egui_extras = { version = "0.23.0", path = "../egui_extras" }
+egui_plot = { version = "0.23.0", path = "../egui_plot" }
log = { version = "0.4", features = ["std"] }
unicode_names2 = { version = "0.6.0", default-features = false }
diff --git a/crates/egui_demo_lib/assets/icon.png b/crates/egui_demo_lib/data/icon.png
index 87f15e74..87f15e74 100644
--- a/crates/egui_demo_lib/assets/icon.png
+++ b/crates/egui_demo_lib/data/icon.png
Binary files differ
diff --git a/crates/egui_demo_lib/src/demo/widget_gallery.rs b/crates/egui_demo_lib/src/demo/widget_gallery.rs
index 9cc7d2ca..82589c40 100644
--- a/crates/egui_demo_lib/src/demo/widget_gallery.rs
+++ b/crates/egui_demo_lib/src/demo/widget_gallery.rs
@@ -197,7 +197,7 @@ impl WidgetGallery {
ui.end_row();
ui.add(doc_link_label("Image", "Image"));
- let egui_icon = egui::include_image!("../../assets/icon.png");
+ let egui_icon = egui::include_image!("../../data/icon.png");
ui.add(egui::Image::new(egui_icon.clone()));
ui.end_row();
diff --git a/crates/egui_extras/CHANGELOG.md b/crates/egui_extras/CHANGELOG.md
index 3a968179..8070359d 100644
--- a/crates/egui_extras/CHANGELOG.md
+++ b/crates/egui_extras/CHANGELOG.md
@@ -5,6 +5,14 @@ This file is updated upon each release.
Changes since the last release can be found by running the `scripts/generate_changelog.py` script.
+## 0.23.0 - 2023-09-27
+* `egui_extras::install_image_loaders` [#3297](https://github.com/emilk/egui/pull/3297) [#3315](https://github.com/emilk/egui/pull/3315) [#3328](https://github.com/emilk/egui/pull/3328) (thanks [@jprochazk](https://github.com/jprochazk)!)
+* Add syntax highlighing feature to `egui_extras` [#3333](https://github.com/emilk/egui/pull/3333) [#3388](https://github.com/emilk/egui/pull/3388)
+* Add `TableBuilder::drag_to_scroll` [#3100](https://github.com/emilk/egui/pull/3100) (thanks [@KYovchevski](https://github.com/KYovchevski)!)
+* Add opt-in `puffin` feature to `egui-extras` [#3307](https://github.com/emilk/egui/pull/3307)
+* Always depend on `log` crate [#3336](https://github.com/emilk/egui/pull/3336)
+* Fix not taking clipping into account when calculating column remainder [#3357](https://github.com/emilk/egui/pull/3357) (thanks [@daxpedda](https://github.com/daxpedda)!)
+
## 0.22.0 - 2023-05-23
- Add option to hide datepicker button calendar icon [#2910](https://github.com/emilk/egui/pull/2910) (thanks [@Barugon](https://github.com/Barugon)!)
diff --git a/crates/egui_extras/Cargo.toml b/crates/egui_extras/Cargo.toml
index d2673885..6d9ea699 100644
--- a/crates/egui_extras/Cargo.toml
+++ b/crates/egui_extras/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "egui_extras"
-version = "0.22.0"
+version = "0.23.0"
authors = [
"Dominik Rössler <dominik@freshx.de>",
"Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
@@ -60,7 +60,7 @@ syntect = ["dep:syntect"]
[dependencies]
-egui = { version = "0.22.0", path = "../egui", default-features = false, features = [
+egui = { version = "0.23.0", path = "../egui", default-features = false, features = [
"serde",
] }
enum-map = { version = "2", features = ["serde"] }
diff --git a/crates/egui_glium/Cargo.toml b/crates/egui_glium/Cargo.toml
index 7a8f7587..a76cde4e 100644
--- a/crates/egui_glium/Cargo.toml
+++ b/crates/egui_glium/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "egui_glium"
-version = "0.22.0"
+version = "0.23.0"
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
description = "Bindings for using egui natively using the glium library"
edition = "2021"
@@ -36,10 +36,10 @@ links = ["egui-winit/links"]
[dependencies]
-egui = { version = "0.22.0", path = "../egui", default-features = false, features = [
+egui = { version = "0.23.0", path = "../egui", default-features = false, features = [
"bytemuck",
] }
-egui-winit = { version = "0.22.0", path = "../egui-winit", default-features = false }
+egui-winit = { version = "0.23.0", path = "../egui-winit", default-features = false }
ahash = { version = "0.8.1", default-features = false, features = [
"no-rng", # we don't need DOS-protection, so we let users opt-in to it instead
@@ -54,5 +54,5 @@ document-features = { version = "0.2", optional = true }
[dev-dependencies]
-egui_demo_lib = { version = "0.22.0", path = "../egui_demo_lib", default-features = false }
+egui_demo_lib = { version = "0.23.0", path = "../egui_demo_lib", default-features = false }
image = { version = "0.24", default-features = false, features = ["png"] }
diff --git a/crates/egui_glow/CHANGELOG.md b/crates/egui_glow/CHANGELOG.md
index 3710edab..4b82b58d 100644
--- a/crates/egui_glow/CHANGELOG.md
+++ b/crates/egui_glow/CHANGELOG.md
@@ -5,7 +5,12 @@ This file is updated upon each release.
Changes since the last release can be found by running the `scripts/generate_changelog.py` script.
+## 0.23.0 - 2023-09-27
+* Update `egui`
+
+
## 0.22.0 - 2023-05-23
+* Update `egui`
## 0.21.0 - 2023-02-08
diff --git a/crates/egui_glow/Cargo.toml b/crates/egui_glow/Cargo.toml
index d1e0d5af..1f52b9b1 100644
--- a/crates/egui_glow/Cargo.toml
+++ b/crates/egui_glow/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "egui_glow"
-version = "0.22.0"
+version = "0.23.0"
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
description = "Bindings for using egui natively using the glow library"
edition = "2021"
@@ -44,7 +44,7 @@ winit = ["egui-winit"]
[dependencies]
-egui = { version = "0.22.0", path = "../egui", default-features = false, features = [
+egui = { version = "0.23.0", path = "../egui", default-features = false, features = [
"bytemuck",
] }
@@ -59,7 +59,7 @@ document-features = { version = "0.2", optional = true }
# Native:
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
-egui-winit = { version = "0.22.0", path = "../egui-winit", optional = true, default-features = false }
+egui-winit = { version = "0.23.0", path = "../egui-winit", optional = true, default-features = false }
puffin = { version = "0.16", optional = true }
# Web:
diff --git a/crates/egui_plot/CHANGELOG.md b/crates/egui_plot/CHANGELOG.md
index 5f3b7cbc..6ed946a6 100644
--- a/crates/egui_plot/CHANGELOG.md
+++ b/crates/egui_plot/CHANGELOG.md
@@ -3,3 +3,14 @@ All notable changes to the `egui_plot` integration will be noted in this file.
This file is updated upon each release.
Changes since the last release can be found by running the `scripts/generate_changelog.py` script.
+
+
+## 0.23.0 - 2023-09-27 - Initial release, after beeing forked out from `egui`
+* Draw axis labels and ticks outside of plotting window [#2284](https://github.com/emilk/egui/pull/2284) (thanks [@JohannesProgrammiert](https://github.com/JohannesProgrammiert)!)
+* Add `PlotUi::response()` to replace `plot_clicked()` etc [#3223](https://github.com/emilk/egui/pull/3223)
+* Add rotation feature to plot images [#3121](https://github.com/emilk/egui/pull/3121) (thanks [@ThundR67](https://github.com/ThundR67)!)
+* Plot items: Image rotation and size in plot coordinates, polygon fill color [#3182](https://github.com/emilk/egui/pull/3182) (thanks [@s-nie](https://github.com/s-nie)!)
+* Add method to specify `tip_size` of plot arrows [#3138](https://github.com/emilk/egui/pull/3138) (thanks [@nagua](https://github.com/nagua)!)
+* Better handle additive colors in plots [#3387](https://github.com/emilk/egui/pull/3387)
+* Fix auto_bounds when only one axis has restricted navigation [#3171](https://github.com/emilk/egui/pull/3171) (thanks [@KoffeinFlummi](https://github.com/KoffeinFlummi)!)
+* Fix plot formatter not taking closures [#3260](https://github.com/emilk/egui/pull/3260) (thanks [@Wumpf](https://github.com/Wumpf)!)
diff --git a/crates/egui_plot/Cargo.toml b/crates/egui_plot/Cargo.toml
index 53f35c42..d61a2c63 100644
--- a/crates/egui_plot/Cargo.toml
+++ b/crates/egui_plot/Cargo.toml
@@ -1,11 +1,7 @@
[package]
name = "egui_plot"
-version = "0.22.0"
-authors = [
- "Dominik Rössler <dominik@freshx.de>",
- "Emil Ernerfeldt <emil.ernerfeldt@gmail.com>",
- "René Rössler <rene@freshx.de>",
-]
+version = "0.23.0"
+authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
description = "Immediate mode plotting for the egui GUI library"
edition = "2021"
rust-version = "1.70"
@@ -32,7 +28,7 @@ serde = ["dep:serde", "egui/serde"]
[dependencies]
-egui = { version = "0.22.0", path = "../egui", default-features = false }
+egui = { version = "0.23.0", path = "../egui", default-features = false }
#! ### Optional dependencies
diff --git a/crates/emath/Cargo.toml b/crates/emath/Cargo.toml
index 065b475a..0e40ea27 100644
--- a/crates/emath/Cargo.toml
+++ b/crates/emath/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "emath"
-version = "0.22.0"
+version = "0.23.0"
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
description = "Minimal 2D math library for GUI work"
edition = "2021"
diff --git a/crates/epaint/CHANGELOG.md b/crates/epaint/CHANGELOG.md
index e0f4e056..36fcfc1b 100644
--- a/crates/epaint/CHANGELOG.md
+++ b/crates/epaint/CHANGELOG.md
@@ -5,6 +5,17 @@ This file is updated upon each release.
Changes since the last release can be found by running the `scripts/generate_changelog.py` script.
+## 0.23.0 - 2023-09-27
+* Update MSRV to Rust 1.70.0 [#3310](https://github.com/emilk/egui/pull/3310)
+* Add option to truncate text at wrap width [#3244](https://github.com/emilk/egui/pull/3244) [#3366](https://github.com/emilk/egui/pull/3366)
+* Add control of line height and letter spacing [#3302](https://github.com/emilk/egui/pull/3302)
+* Support images with rounded corners [#3257](https://github.com/emilk/egui/pull/3257)
+* Add `ColorImage::from_gray` [#3166](https://github.com/emilk/egui/pull/3166) (thanks [@thomaseliot](https://github.com/thomaseliot)!)
+* Provide `into_inner()` for `egui::mutex::{Mutex, RwLock}` [#3110](https://github.com/emilk/egui/pull/3110) (thanks [@KmolYuan](https://github.com/KmolYuan)!)
+* Fix problems with tabs in text [#3355](https://github.com/emilk/egui/pull/3355)
+* Refactor: change `ClippedShape` from struct-enum to a normal struct [#3225](https://github.com/emilk/egui/pull/3225)
+* Document when `Galley`s get invalidated [#3024](https://github.com/emilk/egui/pull/3024) (thanks [@e00E](https://github.com/e00E)!)
+
## 0.22.0 - 2023-05-23
* Fix compiling `epaint` without `bytemuck` dependency [#2913](https://github.com/emilk/egui/pull/2913) (thanks [@lunixbochs](https://github.com/lunixbochs)!)
diff --git a/crates/epaint/Cargo.toml b/crates/epaint/Cargo.toml
index 4da6195c..16eda3df 100644
--- a/crates/epaint/Cargo.toml
+++ b/crates/epaint/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "epaint"
-version = "0.22.0"
+version = "0.23.0"
authors = ["Emil Ernerfeldt <emil.ernerfeldt@gmail.com>"]
description = "Minimal 2D graphics library for GUI work"
edition = "2021"
@@ -70,8 +70,8 @@ serde = ["dep:serde", "ahash/serde", "emath/serde", "ecolor/serde"]
unity = []
[dependencies]
-emath = { version = "0.22.0", path = "../emath" }
-ecolor = { version = "0.22.0", path = "../ecolor" }
+emath = { version = "0.23.0", path = "../emath" }
+ecolor = { version = "0.23.0", path = "../ecolor" }
ab_glyph = "0.2.11"
ahash = { version = "0.8.1", default-features = false, features = [
diff --git a/scripts/generate_changelog.py b/scripts/generate_changelog.py
index aed02dd0..77e98ccb 100755
--- a/scripts/generate_changelog.py
+++ b/scripts/generate_changelog.py
@@ -3,7 +3,8 @@
"""
Summarizes recent PRs based on their GitHub labels.
-The result can be copy-pasted into CHANGELOG.md, though it often needs some manual editing too.
+The result can be copy-pasted into CHANGELOG.md,
+though it often needs some manual editing too.
"""
import multiprocessing
@@ -89,7 +90,9 @@ def fetch_pr_info(pr_number: int) -> Optional[PrInfo]:
def get_commit_info(commit: Any) -> CommitInfo:
match = re.match(r"(.*) \(#(\d+)\)", commit.summary)
if match:
- return CommitInfo(hexsha=commit.hexsha, title=str(match.group(1)), pr_number=int(match.group(2)))
+ title = str(match.group(1))
+ pr_number = int(match.group(2))
+ return CommitInfo(hexsha=commit.hexsha, title=title, pr_number=pr_number)
else:
return CommitInfo(hexsha=commit.hexsha, title=commit.summary, pr_number=None)
@@ -104,8 +107,9 @@ def print_section(crate: str, items: List[str]) -> None:
if 0 < len(items):
print(f"#### {crate}")
for line in items:
- line = remove_prefix(line, f"{crate}: ")
line = remove_prefix(line, f"[{crate}] ")
+ line = remove_prefix(line, f"{crate}: ")
+ line = remove_prefix(line, f"`{crate}`: ")
print(f"* {line}")
print()
@@ -152,9 +156,16 @@ def main() -> None:
summary = f"{title} [{hexsha[:7]}](https://github.com/{OWNER}/{REPO}/commit/{hexsha})"
unsorted_commits.append(summary)
else:
- title = pr_info.pr_title if pr_info else title # We prefer the PR title if available
+ # We prefer the PR title if available
+ title = pr_info.pr_title if pr_info else title
labels = pr_info.labels if pr_info else []
+ if 'exclude from changlog' in labels:
+ continue
+ if 'typo' in labels:
+ # We get so many typo PRs. Let's not flood the changelog with them.
+ continue
+
summary = f"{title} [#{pr_number}](https://github.com/{OWNER}/{REPO}/pull/{pr_number})"
if INCLUDE_LABELS and 0 < len(labels):
@@ -165,9 +176,6 @@ def main() -> None:
if gh_user_name not in OFFICIAL_DEVS:
summary += f" (thanks [@{gh_user_name}](https://github.com/{gh_user_name})!)"
- if 'typo' in labels:
- continue # We get so many typo PRs. Let's not flood the changelog with them.
-
added = False
for crate in crate_names: