1
0
mirror of https://github.com/emilk/egui.git synced 2026-06-26 14:49:06 -04:00

Merge branch 'main' into feat/harfrust-text-shaping

# Conflicts:
#	crates/egui_demo_lib/tests/snapshots/image_kerning/image_dark_x1.png
#	crates/egui_demo_lib/tests/snapshots/image_kerning/image_dark_x2.png
#	crates/egui_demo_lib/tests/snapshots/image_kerning/image_light_x1.png
#	crates/egui_demo_lib/tests/snapshots/image_kerning/image_light_x2.png
This commit is contained in:
Emil Ernerfeldt
2026-03-29 10:02:11 +02:00
25 changed files with 98 additions and 54 deletions

View File

@@ -14,6 +14,10 @@ This file is updated upon each release.
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
## 0.34.1 - 2026-03-27
Nothing new
## 0.34.0 - 2026-03-26
### Highlights from this release

View File

@@ -1193,7 +1193,7 @@ checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53"
[[package]]
name = "ecolor"
version = "0.34.0"
version = "0.34.1"
dependencies = [
"bytemuck",
"cint",
@@ -1205,7 +1205,7 @@ dependencies = [
[[package]]
name = "eframe"
version = "0.34.0"
version = "0.34.1"
dependencies = [
"ahash",
"bytemuck",
@@ -1244,7 +1244,7 @@ dependencies = [
[[package]]
name = "egui"
version = "0.34.0"
version = "0.34.1"
dependencies = [
"accesskit",
"ahash",
@@ -1264,7 +1264,7 @@ dependencies = [
[[package]]
name = "egui-wgpu"
version = "0.34.0"
version = "0.34.1"
dependencies = [
"ahash",
"bytemuck",
@@ -1282,7 +1282,7 @@ dependencies = [
[[package]]
name = "egui-winit"
version = "0.34.0"
version = "0.34.1"
dependencies = [
"accesskit_winit",
"arboard",
@@ -1305,7 +1305,7 @@ dependencies = [
[[package]]
name = "egui_demo_app"
version = "0.34.0"
version = "0.34.1"
dependencies = [
"accesskit",
"accesskit_consumer",
@@ -1330,12 +1330,11 @@ dependencies = [
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
"wgpu",
]
[[package]]
name = "egui_demo_lib"
version = "0.34.0"
version = "0.34.1"
dependencies = [
"criterion",
"document-features",
@@ -1352,7 +1351,7 @@ dependencies = [
[[package]]
name = "egui_extras"
version = "0.34.0"
version = "0.34.1"
dependencies = [
"ahash",
"document-features",
@@ -1371,7 +1370,7 @@ dependencies = [
[[package]]
name = "egui_glow"
version = "0.34.0"
version = "0.34.1"
dependencies = [
"bytemuck",
"document-features",
@@ -1390,7 +1389,7 @@ dependencies = [
[[package]]
name = "egui_kittest"
version = "0.34.0"
version = "0.34.1"
dependencies = [
"dify",
"document-features",
@@ -1410,7 +1409,7 @@ dependencies = [
[[package]]
name = "egui_tests"
version = "0.34.0"
version = "0.34.1"
dependencies = [
"egui",
"egui_extras",
@@ -1440,7 +1439,7 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
[[package]]
name = "emath"
version = "0.34.0"
version = "0.34.1"
dependencies = [
"bytemuck",
"document-features",
@@ -1538,7 +1537,7 @@ dependencies = [
[[package]]
name = "epaint"
version = "0.34.0"
version = "0.34.1"
dependencies = [
"ahash",
"bytemuck",
@@ -1567,7 +1566,7 @@ dependencies = [
[[package]]
name = "epaint_default_fonts"
version = "0.34.0"
version = "0.34.1"
[[package]]
name = "equivalent"
@@ -3454,7 +3453,7 @@ checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3"
[[package]]
name = "popups"
version = "0.34.0"
version = "0.34.1"
dependencies = [
"eframe",
"env_logger",
@@ -5862,7 +5861,7 @@ checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9"
[[package]]
name = "xtask"
version = "0.34.0"
version = "0.34.1"
[[package]]
name = "yaml-rust"

View File

@@ -24,7 +24,7 @@ members = [
edition = "2024"
license = "MIT OR Apache-2.0"
rust-version = "1.92"
version = "0.34.0"
version = "0.34.1"
[profile.release]
@@ -55,18 +55,18 @@ opt-level = 2
[workspace.dependencies]
emath = { version = "0.34.0", path = "crates/emath", default-features = false }
ecolor = { version = "0.34.0", path = "crates/ecolor", default-features = false }
epaint = { version = "0.34.0", path = "crates/epaint", default-features = false }
epaint_default_fonts = { version = "0.34.0", path = "crates/epaint_default_fonts" }
egui = { version = "0.34.0", path = "crates/egui", default-features = false }
egui-winit = { version = "0.34.0", path = "crates/egui-winit", default-features = false }
egui_extras = { version = "0.34.0", path = "crates/egui_extras", default-features = false }
egui-wgpu = { version = "0.34.0", path = "crates/egui-wgpu", default-features = false }
egui_demo_lib = { version = "0.34.0", path = "crates/egui_demo_lib", default-features = false }
egui_glow = { version = "0.34.0", path = "crates/egui_glow", default-features = false }
egui_kittest = { version = "0.34.0", path = "crates/egui_kittest", default-features = false }
eframe = { version = "0.34.0", path = "crates/eframe", default-features = false }
emath = { version = "0.34.1", path = "crates/emath", default-features = false }
ecolor = { version = "0.34.1", path = "crates/ecolor", default-features = false }
epaint = { version = "0.34.1", path = "crates/epaint", default-features = false }
epaint_default_fonts = { version = "0.34.1", path = "crates/epaint_default_fonts" }
egui = { version = "0.34.1", path = "crates/egui", default-features = false }
egui-winit = { version = "0.34.1", path = "crates/egui-winit", default-features = false }
egui_extras = { version = "0.34.1", path = "crates/egui_extras", default-features = false }
egui-wgpu = { version = "0.34.1", path = "crates/egui-wgpu", default-features = false }
egui_demo_lib = { version = "0.34.1", path = "crates/egui_demo_lib", default-features = false }
egui_glow = { version = "0.34.1", path = "crates/egui_glow", default-features = false }
egui_kittest = { version = "0.34.1", path = "crates/egui_kittest", default-features = false }
eframe = { version = "0.34.1", path = "crates/eframe", default-features = false }
accesskit = "0.24.0"
accesskit_consumer = "0.35.0"

View File

@@ -6,6 +6,10 @@ This file is updated upon each release.
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
## 0.34.1 - 2026-03-27
Nothing new
## 0.34.0 - 2026-03-26
Nothing new

View File

@@ -7,6 +7,11 @@ This file is updated upon each release.
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
## 0.34.1 - 2026-03-27
* `wgpu` backend: Enable WebGL fallback [#8038](https://github.com/emilk/egui/pull/8038) by [@emilk](https://github.com/emilk)
* Only apply cursor style to the `<canvas>` [#8036](https://github.com/emilk/egui/pull/8036) by [@mkeeter](https://github.com/mkeeter)
## 0.34.0 - 2026-03-26
### ⭐ Added
* Add feature `wgpu_no_default_features` [#7700](https://github.com/emilk/egui/pull/7700) by [@emilk](https://github.com/emilk)

View File

@@ -89,7 +89,7 @@ web_screen_reader = ["web-sys/SpeechSynthesis", "web-sys/SpeechSynthesisUtteranc
## See <https://github.com/emilk/egui/issues/5889> for more details.
##
## By default, eframe will prefer WebGPU over WebGL, but
## you can configure this at run-time with [`NativeOptions::wgpu_options`].
## you can configure this at run-time with `WebOptions::wgpu_options`.
wgpu = ["wgpu_no_default_features", "egui-wgpu/default"]
## This is exactly like the `wgpu` feature, but does NOT enable the default features of `wgpu` and `egui-wgpu`.
@@ -155,7 +155,6 @@ glutin-winit = { workspace = true, optional = true, default-features = false, fe
"wgl",
] }
home = { workspace = true, optional = true }
wgpu = { workspace = true, optional = true }
# mac:
[target.'cfg(any(target_os = "macos"))'.dependencies]

View File

@@ -159,7 +159,7 @@ pub use {egui, egui::emath, egui::epaint};
pub use {egui_glow, glow};
#[cfg(feature = "wgpu_no_default_features")]
pub use {egui_wgpu, wgpu};
pub use {egui_wgpu, egui_wgpu::wgpu};
mod epi;

View File

@@ -393,7 +393,7 @@ impl AppRunner {
}
}
super::set_cursor_icon(cursor_icon);
super::set_cursor_icon(self.canvas(), cursor_icon);
if self.has_focus() {
// The eframe app has focus.

View File

@@ -178,10 +178,8 @@ fn canvas_size_in_points(canvas: &web_sys::HtmlCanvasElement, ctx: &egui::Contex
// ----------------------------------------------------------------------------
/// Set the cursor icon.
fn set_cursor_icon(cursor: egui::CursorIcon) -> Option<()> {
let document = web_sys::window()?.document()?;
document
.body()?
fn set_cursor_icon(canvas: &web_sys::HtmlCanvasElement, cursor: egui::CursorIcon) -> Option<()> {
canvas
.style()
.set_property("cursor", cursor_web_name(cursor))
.ok()

View File

@@ -6,6 +6,10 @@ This file is updated upon each release.
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
## 0.34.1 - 2026-03-27
* `wgpu` backend: Enable WebGL fallback [#8038](https://github.com/emilk/egui/pull/8038) by [@emilk](https://github.com/emilk)
## 0.34.0 - 2026-03-26
### ⭐ Added
* Add error message when calling `.render()` without `.update_buffers()` [#8005](https://github.com/emilk/egui/pull/8005) by [@emilk](https://github.com/emilk)

View File

@@ -25,7 +25,12 @@ all-features = true
rustdoc-args = ["--generate-link-to-definition"]
[features]
default = ["fragile-send-sync-non-atomic-wasm", "macos-window-resize-jitter-fix", "wgpu/default"]
default = [
"fragile-send-sync-non-atomic-wasm",
"macos-window-resize-jitter-fix",
"wgpu/default",
"wgpu/webgl", # A very important fallback for web support
]
## Enables the `capture` module for capturing screenshots.
capture = ["dep:egui"]

View File

@@ -5,6 +5,10 @@ This file is updated upon each release.
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
## 0.34.1 - 2026-03-27
Nothing new
## 0.34.0 - 2026-03-26
* Add `is_scrolling`/`is_smooth_scrolling` util, checking for active scroll action [#7669](https://github.com/emilk/egui/pull/7669) by [@IsseW](https://github.com/IsseW)
* Fix backspacing leaving last character in IME prediction not removed on macOS native and Safari [#7810](https://github.com/emilk/egui/pull/7810) by [@umajho](https://github.com/umajho)

View File

@@ -37,7 +37,7 @@ serde = ["dep:serde", "egui_demo_lib/serde", "egui/serde"]
syntect = ["egui_demo_lib/syntect"]
glow = ["eframe/glow"]
wgpu = ["eframe/wgpu", "bytemuck", "dep:wgpu"]
wgpu = ["eframe/wgpu", "bytemuck"]
wayland = ["eframe/wayland"]
x11 = ["eframe/x11"]
@@ -60,9 +60,6 @@ accesskit_consumer = { workspace = true, optional = true }
bytemuck = { workspace = true, optional = true }
puffin = { workspace = true, optional = true }
puffin_http = { workspace = true, optional = true }
# Enable both WebGL & WebGPU when targeting the web (these features have no effect when not targeting wasm32)
# Also enable the default features so we have a supported backend for every platform.
wgpu = { workspace = true, features = ["default", "webgpu", "webgl"], optional = true }
# feature "http":

View File

@@ -211,7 +211,7 @@ fn integration_ui(ui: &mut egui::Ui, _frame: &mut eframe::Frame) {
let wgpu_adapter_details_ui = |ui: &mut egui::Ui, adapter: &eframe::wgpu::Adapter| {
let info = &adapter.get_info();
let wgpu::AdapterInfo {
let eframe::wgpu::AdapterInfo {
name,
vendor,
device,

View File

@@ -13,8 +13,9 @@ fn test_kerning() {
ui.label("Hello world!");
ui.label("Repeated characters: iiiiiiiiiiiii lllllllll mmmmmmmmmmmmmmmm");
ui.label("Thin spaces: 123456789");
ui.label("Ligature: fi :)");
ui.label("\ttabbed");
ui.label("Ligature: fi fl ffi ffl");
ui.label("Kerning: AVATAR");
ui.label("\ttabbed\ttext");
});
harness.run();
harness.fit_contents();

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:af81b4c34c3daebc08633499fd6883e917a83615f5981b12802f112fc25edf07
size 12511
oid sha256:2ef07080ca2aa10e128c646479b8b322a092d63f15b35c52ed59015e7c2a0f60
size 15434

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:21872867be61c9da3aa9a7daffe5c6d3ca49839c4049db4dab3c35531e1b5f82
size 29389
oid sha256:4edb61c6619d5e44892fa29da0aa0a624306ae637dbbaa057e3fa47c14dc06bd
size 35988

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a0dfae7e7098ade005adade7ab27336d4301294404d2ecdc0cd29748f5e4f7f5
size 13102
oid sha256:f8da0c2e37497968864a91fa6bef7c545c37791f4f9b788ea9a2f43dd4ac16b1
size 16116

View File

@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e9d6dca1082393f24c50b4ed2acf37bfc049d11d9a5e97ed8f69dc7a431039a7
size 31917
oid sha256:2a603fcb2eb97943d6be3239b91cacee093adcb55a6dd14af93a72fc8b3a61fa
size 39270

View File

@@ -5,6 +5,10 @@ This file is updated upon each release.
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
## 0.34.1 - 2026-03-27
Nothing new
## 0.34.0 - 2026-03-26
* Fix media type with optional parameters [#7739](https://github.com/emilk/egui/pull/7739) by [@leungkkf](https://github.com/leungkkf)
* Fix: CodeTheme functions - ui and add builder [#7684](https://github.com/emilk/egui/pull/7684) by [@Its-Just-Nans](https://github.com/Its-Just-Nans)

View File

@@ -6,6 +6,10 @@ Changes since the last release can be found at <https://github.com/emilk/egui/co
## 0.34.1 - 2026-03-27
Nothing new
## 0.34.0 - 2026-03-26
Nothing new

View File

@@ -6,6 +6,10 @@ This file is updated upon each release.
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
## 0.34.1 - 2026-03-27
Nothing new
## 0.34.0 - 2026-03-26
* Turn `HarnessBuilder::with_options` into a proper builder method [#7697](https://github.com/emilk/egui/pull/7697) by [@emilk](https://github.com/emilk)
* Paint mouse cursor in kittest snapshot images [#7721](https://github.com/emilk/egui/pull/7721) by [@emilk](https://github.com/emilk)

View File

@@ -6,6 +6,10 @@ This file is updated upon each release.
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
## 0.34.1 - 2026-03-27
Nothing new
## 0.34.0 - 2026-03-26
Nothing new

View File

@@ -5,6 +5,10 @@ This file is updated upon each release.
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
## 0.34.1 - 2026-03-27
Nothing new
## 0.34.0 - 2026-03-26
### ⭐ Added
* Replace ab_glyph with Skrifa + vello_cpu; enable font hinting [#7694](https://github.com/emilk/egui/pull/7694) by [@valadaptive](https://github.com/valadaptive)

View File

@@ -5,6 +5,10 @@ This file is updated upon each release.
Changes since the last release can be found at <https://github.com/emilk/egui/compare/latest...HEAD> or by running the `scripts/generate_changelog.py` script.
## 0.34.1 - 2026-03-27
Nothing new
## 0.34.0 - 2026-03-26
* Fix emoji icon font [#7940](https://github.com/emilk/egui/pull/7940) by [@Jhynjhiruu](https://github.com/Jhynjhiruu)