Skip to content

Commit 5c372a7

Browse files
committed
Release 0.31.0 - Scene container, improved rendering quality
1 parent d97cd82 commit 5c372a7

File tree

13 files changed

+183
-31
lines changed

13 files changed

+183
-31
lines changed

CHANGELOG.md

+82
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,88 @@ This file is updated upon each release.
1414
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.
1515

1616

17+
## 0.31.0 - 2025-02-04 - Scene container, improved rendering quality
18+
19+
### Highlights ✨
20+
21+
#### Scene container
22+
This release adds the `Scene` container to egui. It is a pannable, zoomable canvas that can contain `Widget`s and child `Ui`s.
23+
This will make it easier to e.g. implement a graph editor.
24+
25+
![image](https://github.com/user-attachments/assets/b37d56ef-f6ef-46be-bb99-6eb25b6efca9)
26+
27+
#### Clearer, pixel perfect rendering
28+
The tessellator has been updated for improved rendering quality and better performance. It will produce fewer vertices
29+
and shapes will have less overdraw. We've also defined what `CornerRadius` (previously `Rounding`) means.
30+
31+
We've also added a tessellator test to the [demo app](https://www.egui.rs/), where you can play around with different
32+
values to see what's produced:
33+
34+
35+
https://github.com/user-attachments/assets/adf55e3b-fb48-4df0-aaa2-150ee3163684
36+
37+
38+
Check the [PR](https://github.com/emilk/egui/pull/5669) for more details.
39+
40+
#### `CornerRadius`, `Margin`, `Shadow` size reduction
41+
In order to pave the path for more complex and customizable styling solutions, we've reduced the size of
42+
`CornerRadius`, `Margin` and `Shadow` values to `i8` and `u8`.
43+
44+
45+
46+
### Migration guide
47+
- Add a `StrokeKind` to all your `Painter::rect` calls [#5648](https://github.com/emilk/egui/pull/5648)
48+
- `StrokeKind::default` was removed, since the 'normal' value depends on the context [#5658](https://github.com/emilk/egui/pull/5658)
49+
- You probably want to use `StrokeKind::Inside` when drawing rectangles
50+
- You probably want to use `StrokeKind::Middle` when drawing open paths
51+
- Rename `Rounding` to `CornerRadius` [#5673](https://github.com/emilk/egui/pull/5673)
52+
- `CornerRadius`, `Margin` and `Shadow` have been updated to use `i8` and `u8` [#5563](https://github.com/emilk/egui/pull/5563), [#5567](https://github.com/emilk/egui/pull/5567), [#5568](https://github.com/emilk/egui/pull/5568)
53+
- Remove the .0 from your values
54+
- Cast dynamic values with `as i8` / `as u8` or `as _` if you want Rust to infer the type
55+
- Rust will do a 'saturating' cast, so if your `f32` value is bigger than `127` it will be clamped to `127`
56+
- `RectShape` parameters changed [#5565](https://github.com/emilk/egui/pull/5565)
57+
- Prefer to use the builder methods to create it instead of initializing it directly
58+
- `Frame` now takes the `Stroke` width into account for its sizing, so check all views of your app to make sure they still look right.
59+
Read the [PR](https://github.com/emilk/egui/pull/5575) for more info.
60+
61+
### ⭐ Added
62+
* Add `egui::Scene` for panning/zooming a `Ui` [#5505](https://github.com/emilk/egui/pull/5505) by [@grtlr](https://github.com/grtlr)
63+
* Animated WebP support [#5470](https://github.com/emilk/egui/pull/5470) by [@Aely0](https://github.com/Aely0)
64+
* Improve tessellation quality [#5669](https://github.com/emilk/egui/pull/5669) by [@emilk](https://github.com/emilk)
65+
* Add `OutputCommand` for copying text and opening URL:s [#5532](https://github.com/emilk/egui/pull/5532) by [@emilk](https://github.com/emilk)
66+
* Add `Context::copy_image` [#5533](https://github.com/emilk/egui/pull/5533) by [@emilk](https://github.com/emilk)
67+
* Add `WidgetType::Image` and `Image::alt_text` [#5534](https://github.com/emilk/egui/pull/5534) by [@lucasmerlin](https://github.com/lucasmerlin)
68+
* Add `epaint::Brush` for controlling `RectShape` texturing [#5565](https://github.com/emilk/egui/pull/5565) by [@emilk](https://github.com/emilk)
69+
* Implement `nohash_hasher::IsEnabled` for `Id` [#5628](https://github.com/emilk/egui/pull/5628) by [@emilk](https://github.com/emilk)
70+
* Add keys for `!`, `{`, `}` [#5548](https://github.com/emilk/egui/pull/5548) by [@Its-Just-Nans](https://github.com/Its-Just-Nans)
71+
* Add `RectShape::stroke_kind ` to control if stroke is inside/outside/centered [#5647](https://github.com/emilk/egui/pull/5647) by [@emilk](https://github.com/emilk)
72+
73+
### 🔧 Changed
74+
* ⚠️ `Frame` now includes stroke width as part of padding [#5575](https://github.com/emilk/egui/pull/5575) by [@emilk](https://github.com/emilk)
75+
* Rename `Rounding` to `CornerRadius` [#5673](https://github.com/emilk/egui/pull/5673) by [@emilk](https://github.com/emilk)
76+
* Require a `StrokeKind` when painting rectangles with strokes [#5648](https://github.com/emilk/egui/pull/5648) by [@emilk](https://github.com/emilk)
77+
* Round widget coordinates to even multiple of 1/32 [#5517](https://github.com/emilk/egui/pull/5517) by [@emilk](https://github.com/emilk)
78+
* Make all lines and rectangles crisp [#5518](https://github.com/emilk/egui/pull/5518) by [@emilk](https://github.com/emilk)
79+
* Tweak window resize handles [#5524](https://github.com/emilk/egui/pull/5524) by [@emilk](https://github.com/emilk)
80+
81+
### 🔥 Removed
82+
* Remove `egui::special_emojis::TWITTER` [#5622](https://github.com/emilk/egui/pull/5622) by [@emilk](https://github.com/emilk)
83+
* Remove `StrokeKind::default` [#5658](https://github.com/emilk/egui/pull/5658) by [@emilk](https://github.com/emilk)
84+
85+
### 🐛 Fixed
86+
* Use correct minimum version of `profiling` crate [#5494](https://github.com/emilk/egui/pull/5494) by [@lucasmerlin](https://github.com/lucasmerlin)
87+
* Fix interactive widgets sometimes being incorrectly marked as hovered [#5523](https://github.com/emilk/egui/pull/5523) by [@emilk](https://github.com/emilk)
88+
* Fix panic due to non-total ordering in `Area::compare_order()` [#5569](https://github.com/emilk/egui/pull/5569) by [@HactarCE](https://github.com/HactarCE)
89+
* Fix hovering through custom menu button [#5555](https://github.com/emilk/egui/pull/5555) by [@M4tthewDE](https://github.com/M4tthewDE)
90+
91+
### 🚀 Performance
92+
* Use `u8` in `CornerRadius`, and introduce `CornerRadiusF32` [#5563](https://github.com/emilk/egui/pull/5563) by [@emilk](https://github.com/emilk)
93+
* Store `Margin` using `i8` to reduce its size [#5567](https://github.com/emilk/egui/pull/5567) by [@emilk](https://github.com/emilk)
94+
* Shrink size of `Shadow` by using `i8/u8` instead of `f32` [#5568](https://github.com/emilk/egui/pull/5568) by [@emilk](https://github.com/emilk)
95+
* Avoid allocations for loader cache lookup [#5584](https://github.com/emilk/egui/pull/5584) by [@mineichen](https://github.com/mineichen)
96+
* Use bitfield instead of bools in `Response` and `Sense` [#5556](https://github.com/emilk/egui/pull/5556) by [@polwel](https://github.com/polwel)
97+
98+
1799
## 0.30.0 - 2024-12-16 - Modals and better layer support
18100

19101
### ✨ Highlights

Cargo.lock

+15-15
Original file line numberDiff line numberDiff line change
@@ -1197,7 +1197,7 @@ checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53"
11971197

11981198
[[package]]
11991199
name = "ecolor"
1200-
version = "0.30.0"
1200+
version = "0.31.0"
12011201
dependencies = [
12021202
"bytemuck",
12031203
"cint",
@@ -1209,7 +1209,7 @@ dependencies = [
12091209

12101210
[[package]]
12111211
name = "eframe"
1212-
version = "0.30.0"
1212+
version = "0.31.0"
12131213
dependencies = [
12141214
"ahash",
12151215
"bytemuck",
@@ -1249,7 +1249,7 @@ dependencies = [
12491249

12501250
[[package]]
12511251
name = "egui"
1252-
version = "0.30.0"
1252+
version = "0.31.0"
12531253
dependencies = [
12541254
"accesskit",
12551255
"ahash",
@@ -1267,7 +1267,7 @@ dependencies = [
12671267

12681268
[[package]]
12691269
name = "egui-wgpu"
1270-
version = "0.30.0"
1270+
version = "0.31.0"
12711271
dependencies = [
12721272
"ahash",
12731273
"bytemuck",
@@ -1285,7 +1285,7 @@ dependencies = [
12851285

12861286
[[package]]
12871287
name = "egui-winit"
1288-
version = "0.30.0"
1288+
version = "0.31.0"
12891289
dependencies = [
12901290
"accesskit_winit",
12911291
"ahash",
@@ -1306,7 +1306,7 @@ dependencies = [
13061306

13071307
[[package]]
13081308
name = "egui_demo_app"
1309-
version = "0.30.0"
1309+
version = "0.31.0"
13101310
dependencies = [
13111311
"bytemuck",
13121312
"chrono",
@@ -1333,7 +1333,7 @@ dependencies = [
13331333

13341334
[[package]]
13351335
name = "egui_demo_lib"
1336-
version = "0.30.0"
1336+
version = "0.31.0"
13371337
dependencies = [
13381338
"chrono",
13391339
"criterion",
@@ -1347,7 +1347,7 @@ dependencies = [
13471347

13481348
[[package]]
13491349
name = "egui_extras"
1350-
version = "0.30.0"
1350+
version = "0.31.0"
13511351
dependencies = [
13521352
"ahash",
13531353
"chrono",
@@ -1366,7 +1366,7 @@ dependencies = [
13661366

13671367
[[package]]
13681368
name = "egui_glow"
1369-
version = "0.30.0"
1369+
version = "0.31.0"
13701370
dependencies = [
13711371
"ahash",
13721372
"bytemuck",
@@ -1386,7 +1386,7 @@ dependencies = [
13861386

13871387
[[package]]
13881388
name = "egui_kittest"
1389-
version = "0.30.0"
1389+
version = "0.31.0"
13901390
dependencies = [
13911391
"dify",
13921392
"document-features",
@@ -1421,7 +1421,7 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
14211421

14221422
[[package]]
14231423
name = "emath"
1424-
version = "0.30.0"
1424+
version = "0.31.0"
14251425
dependencies = [
14261426
"bytemuck",
14271427
"document-features",
@@ -1512,7 +1512,7 @@ dependencies = [
15121512

15131513
[[package]]
15141514
name = "epaint"
1515-
version = "0.30.0"
1515+
version = "0.31.0"
15161516
dependencies = [
15171517
"ab_glyph",
15181518
"ahash",
@@ -1533,7 +1533,7 @@ dependencies = [
15331533

15341534
[[package]]
15351535
name = "epaint_default_fonts"
1536-
version = "0.30.0"
1536+
version = "0.31.0"
15371537

15381538
[[package]]
15391539
name = "equivalent"
@@ -3099,7 +3099,7 @@ checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3"
30993099

31003100
[[package]]
31013101
name = "popups"
3102-
version = "0.30.0"
3102+
version = "0.31.0"
31033103
dependencies = [
31043104
"eframe",
31053105
"env_logger",
@@ -5105,7 +5105,7 @@ checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9"
51055105

51065106
[[package]]
51075107
name = "xtask"
5108-
version = "0.30.0"
5108+
version = "0.31.0"
51095109

51105110
[[package]]
51115111
name = "yaml-rust"

Cargo.toml

+13-13
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ members = [
2424
edition = "2021"
2525
license = "MIT OR Apache-2.0"
2626
rust-version = "1.81"
27-
version = "0.30.0"
27+
version = "0.31.0"
2828

2929

3030
[profile.release]
@@ -55,18 +55,18 @@ opt-level = 2
5555

5656

5757
[workspace.dependencies]
58-
emath = { version = "0.30.0", path = "crates/emath", default-features = false }
59-
ecolor = { version = "0.30.0", path = "crates/ecolor", default-features = false }
60-
epaint = { version = "0.30.0", path = "crates/epaint", default-features = false }
61-
epaint_default_fonts = { version = "0.30.0", path = "crates/epaint_default_fonts" }
62-
egui = { version = "0.30.0", path = "crates/egui", default-features = false }
63-
egui-winit = { version = "0.30.0", path = "crates/egui-winit", default-features = false }
64-
egui_extras = { version = "0.30.0", path = "crates/egui_extras", default-features = false }
65-
egui-wgpu = { version = "0.30.0", path = "crates/egui-wgpu", default-features = false }
66-
egui_demo_lib = { version = "0.30.0", path = "crates/egui_demo_lib", default-features = false }
67-
egui_glow = { version = "0.30.0", path = "crates/egui_glow", default-features = false }
68-
egui_kittest = { version = "0.30.0", path = "crates/egui_kittest", default-features = false }
69-
eframe = { version = "0.30.0", path = "crates/eframe", default-features = false }
58+
emath = { version = "0.31.0", path = "crates/emath", default-features = false }
59+
ecolor = { version = "0.31.0", path = "crates/ecolor", default-features = false }
60+
epaint = { version = "0.31.0", path = "crates/epaint", default-features = false }
61+
epaint_default_fonts = { version = "0.31.0", path = "crates/epaint_default_fonts" }
62+
egui = { version = "0.31.0", path = "crates/egui", default-features = false }
63+
egui-winit = { version = "0.31.0", path = "crates/egui-winit", default-features = false }
64+
egui_extras = { version = "0.31.0", path = "crates/egui_extras", default-features = false }
65+
egui-wgpu = { version = "0.31.0", path = "crates/egui-wgpu", default-features = false }
66+
egui_demo_lib = { version = "0.31.0", path = "crates/egui_demo_lib", default-features = false }
67+
egui_glow = { version = "0.31.0", path = "crates/egui_glow", default-features = false }
68+
egui_kittest = { version = "0.31.0", path = "crates/egui_kittest", default-features = false }
69+
eframe = { version = "0.31.0", path = "crates/eframe", default-features = false }
7070

7171
ahash = { version = "0.8.11", default-features = false, features = [
7272
"no-rng", # we don't need DOS-protection, so we let users opt-in to it instead

RELEASES.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ We don't update the MSRV in a patch release, unless we really, really need to.
4646

4747
## Preparation
4848
* [ ] run `scripts/generate_example_screenshots.sh` if needed
49-
* [ ] write a short release note that fits in a tweet
49+
* [ ] write a short release note that fits in a bluesky post
5050
* [ ] record gif for `CHANGELOG.md` release note (and later bluesky post)
5151
* [ ] update changelogs using `scripts/generate_changelog.py --version 0.x.0 --write`
5252
* [ ] bump version numbers in workspace `Cargo.toml`
@@ -55,9 +55,9 @@ We don't update the MSRV in a patch release, unless we really, really need to.
5555
I usually do this all on the `master` branch, but doing it in a release branch is also fine, as long as you remember to merge it into `master` later.
5656

5757
* [ ] Run `typos`
58-
* [ ] `git commit -m 'Release 0.x.0 - summary'`
58+
* [ ] `git commit -m 'Release 0.x.0 - <release title>'`
5959
* [ ] `cargo publish` (see below)
60-
* [ ] `git tag -a 0.x.0 -m 'Release 0.x.0 - summary'`
60+
* [ ] `git tag -a 0.x.0 -m 'Release 0.x.0 - <release title>'`
6161
* [ ] `git pull --tags ; git tag -d latest && git tag -a latest -m 'Latest release' && git push --tags origin latest --force ; git push --tags`
6262
* [ ] merge release PR or push to `master`
6363
* [ ] check that CI is green

crates/ecolor/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ This file is updated upon each release.
66
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.
77

88

9+
## 0.31.0 - 2025-02-04
10+
* Add `Color32::CYAN` and `Color32::MAGENTA` [#5663](https://github.com/emilk/egui/pull/5663) by [@juancampa](https://github.com/juancampa)
11+
12+
913
## 0.30.0 - 2024-12-16
1014
* Use boxed slice for lookup table to avoid stack overflow [#5212](https://github.com/emilk/egui/pull/5212) by [@YgorSouza](https://github.com/YgorSouza)
1115
* Add `Color32::mul` [#5437](https://github.com/emilk/egui/pull/5437) by [@emilk](https://github.com/emilk)

crates/eframe/CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@ This file is updated upon each release.
77
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.
88

99

10+
## 0.31.0 - 2025-02-04
11+
* Web: Fix incorrect scale when moving to screen with new DPI [#5631](https://github.com/emilk/egui/pull/5631) by [@emilk](https://github.com/emilk)
12+
* Re-enable IME support on Linux [#5198](https://github.com/emilk/egui/pull/5198) by [@YgorSouza](https://github.com/YgorSouza)
13+
* Serialize window maximized state in `WindowSettings` [#5554](https://github.com/emilk/egui/pull/5554) by [@landaire](https://github.com/landaire)
14+
* Save state on suspend on Android and iOS [#5601](https://github.com/emilk/egui/pull/5601) by [@Pandicon](https://github.com/Pandicon)
15+
* Eframe web: forward cmd-S/O to egui app (stop default browser action) [#5655](https://github.com/emilk/egui/pull/5655) by [@emilk](https://github.com/emilk)
16+
17+
1018
## 0.30.0 - 2024-12-16 - Android support
1119
NOTE: you now need to enable the `wayland` or `x11` features to get Linux support, including getting it to work on most CI systems.
1220

crates/egui-wgpu/CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ This file is updated upon each release.
66
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.
77

88

9+
## 0.31.0 - 2025-02-04
10+
* Upgrade to wgpu 24 [#5610](https://github.com/emilk/egui/pull/5610) by [@torokati44](https://github.com/torokati44)
11+
* Extend `WgpuSetup`, `egui_kittest` now prefers software rasterizers for testing [#5506](https://github.com/emilk/egui/pull/5506) by [@Wumpf](https://github.com/Wumpf)
12+
* Wgpu resources are no longer wrapped in `Arc` (since they are now `Clone`) [#5612](https://github.com/emilk/egui/pull/5612) by [@Wumpf](https://github.com/Wumpf)
13+
14+
915
## 0.30.0 - 2024-12-16
1016
* Fix docs.rs build [#5204](https://github.com/emilk/egui/pull/5204) by [@lucasmerlin](https://github.com/lucasmerlin)
1117
* Free textures after submitting queue instead of before with wgpu renderer [#5226](https://github.com/emilk/egui/pull/5226) by [@Rusty-Cube](https://github.com/Rusty-Cube)

crates/egui-winit/CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ This file is updated upon each release.
55
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.
66

77

8+
## 0.31.0 - 2025-02-04
9+
* Re-enable IME support on Linux [#5198](https://github.com/emilk/egui/pull/5198) by [@YgorSouza](https://github.com/YgorSouza)
10+
* Update to winit 0.30.7 [#5516](https://github.com/emilk/egui/pull/5516) by [@emilk](https://github.com/emilk)
11+
12+
813
## 0.30.0 - 2024-12-16
914
* iOS: Support putting UI next to the dynamic island [#5211](https://github.com/emilk/egui/pull/5211) by [@frederik-uni](https://github.com/frederik-uni)
1015
* Remove implicit `accesskit_winit` feature [#5316](https://github.com/emilk/egui/pull/5316) by [@waywardmonkeys](https://github.com/waywardmonkeys)

crates/egui_extras/CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ This file is updated upon each release.
55
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.
66

77

8+
## 0.31.0 - 2025-02-04
9+
* Animated WebP support [#5470](https://github.com/emilk/egui/pull/5470), [#5586](https://github.com/emilk/egui/pull/5586) by [@Aely0](https://github.com/Aely0)
10+
* Make image extension check case-insensitive [#5501](https://github.com/emilk/egui/pull/5501) by [@RyanBluth](https://github.com/RyanBluth)
11+
* Avoid allocations for loader cache lookup [#5584](https://github.com/emilk/egui/pull/5584) by [@mineichen](https://github.com/mineichen)
12+
13+
814
## 0.30.0 - 2024-12-16
915
* Use `Table::id_salt` on `ScrollArea` [#5282](https://github.com/emilk/egui/pull/5282) by [@jwhear](https://github.com/jwhear)
1016
* Use proper `image` crate URI and MIME support detection [#5324](https://github.com/emilk/egui/pull/5324) by [@xangelix](https://github.com/xangelix)

crates/egui_glow/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ Changes since the last release can be found at <https://github.com/emilk/egui/co
66

77

88

9+
## 0.31.0 - 2025-02-04
10+
Nothing new
11+
12+
913
## 0.30.0 - 2024-12-16
1014
* Update glow to 0.16 [#5395](https://github.com/emilk/egui/pull/5395) by [@sagudev](https://github.com/sagudev)
1115

crates/egui_kittest/CHANGELOG.md

+12
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,18 @@ This file is updated upon each release.
66
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.
77

88

9+
## 0.31.0 - 2025-02-04
10+
### ⭐ Added
11+
* Add `Harness::new_eframe` and `TestRenderer` trait [#5539](https://github.com/emilk/egui/pull/5539) by [@lucasmerlin](https://github.com/lucasmerlin)
12+
* Change `Harness::run` to run until no more repaints are requested [#5580](https://github.com/emilk/egui/pull/5580) by [@lucasmerlin](https://github.com/lucasmerlin)
13+
* Add `SnapshotResults` struct to `egui_kittest` [#5672](https://github.com/emilk/egui/pull/5672) by [@lucasmerlin](https://github.com/lucasmerlin)
14+
15+
### 🔧 Changed
16+
* Extend `WgpuSetup`, `egui_kittest` now prefers software rasterizers for testing [#5506](https://github.com/emilk/egui/pull/5506) by [@Wumpf](https://github.com/Wumpf)
17+
* Write `.old.png` files when updating images [#5578](https://github.com/emilk/egui/pull/5578) by [@emilk](https://github.com/emilk)
18+
* Succeed and keep going when `UPDATE_SNAPSHOTS` is set [#5649](https://github.com/emilk/egui/pull/5649) by [@emilk](https://github.com/emilk)
19+
20+
921
## 0.30.0 - 2024-12-16 - Initial relrease
1022
* Support for egui 0.30.0
1123
* Automate clicks and text input

0 commit comments

Comments
 (0)