mirror of
https://github.com/emilk/egui.git
synced 2026-06-28 07:23:13 -04:00
* Add an optional app_id field to eframe's NativeOptions (#1600). This is used in the window builder to set the application ID, which is e.g. important for a proper configuration in `.desktop` files under Wayland. When no application ID is explicitly set, it defaults to the title of the window. * Only enable NativeOptions::app_id under Linux. The wayland feature is not sufficent as constraint and it won't compile e.g. under Windows. While Wayland could also be used on other Unix-Systems like FreeBSD, this would probably need some specific testing. Winit uses the following definition as "wayland_platform" and on which the required packages are available: > wayland_platform: { all(feature = "wayland", free_unix, not(wasm), not(redox)) }, * Do not use title as default application ID under Wayland. The title might be used to also communicate state (opened file, ...) to the user and this might have unforeseen consequences for the application ID. It seems to be better to use the old behavior of not setting an application ID in this case. Also add an example on how to set the application ID in the documentation. * Avoid as_deref(), which was a left-over of a previous version Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com> --------- Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
15 KiB
15 KiB
Changelog for eframe
All notable changes to the eframe crate.
NOTE: egui-winit, egui_glium, egui_glow,and egui-wgpu have their own changelogs!
Unreleased
Desktop/Native:
- Add
Frame::request_screenshotandFrame::screenshotto communicate to the backend that a screenshot of the current frame should be exposed byFrameduringApp::post_rendering(#2676). - Add
eframe::run_simple_native- a simple API for simple apps (#2453). - Add
NativeOptions::app_idwhich allows to set the Wayland application ID under Linux (#1600). - Fix bug where the eframe window is never destroyed on Linux when using
run_and_return(#2892)
Web:
- Bug fix: modifiers keys getting stuck on alt-tab (#2857).
- ⚠️ BREAKING: WebGPU is now the default web renderer when using the
wgpufeature ofeframe. To use WebGL withwgpu, you need to addwgpu = { version = "0.16.0", features = ["webgl"] }to your ownCargo.toml. (#2945)
0.21.3 - 2023-02-15
- Fix typing the letter 'P' on web (#2740).
0.21.2 - 2023-02-12
- Allow compiling
eframewith--no-default-features(#2728).
0.21.1 - 2023-02-12
- Fixed crash when native window position is in an invalid state, which could happen e.g. due to changes in monitor size or DPI (#2722).
0.21.0 - 2023-02-08 - Update to winit 0.28
- ⚠️ BREAKING:
App::clear_colornow expects you to return a raw float array (#2666). - The
screen_readerfeature has now been renamedweb_screen_readerand only work on web. On other platforms, use theaccesskitfeature flag instead (#2669).
Desktop/Native:
eframe::run_nativenow returns aResult(#2433).- Update to
winit0.28, adding support for mac trackpad zoom (#2654). - Fix bug where the cursor could get stuck using the wrong icon.
NativeOptions::transparentnow works with the wgpu backend (#2684).- Add
Frame::set_minimizedandset_maximized(#2292, #2672). - Fixed persistence of native window position on Windows OS (#2583).
Web:
- Prevent ctrl-P/cmd-P from opening the print dialog (#2598).
0.20.1 - 2022-12-11
0.20.0 - 2022-12-08 - AccessKit integration and wgpu web support
- MSRV (Minimum Supported Rust Version) is now
1.65.0(#2314). - Allow empty textures with the glow renderer.
Desktop/Native:
- Don't repaint when just moving window (#1980).
- Added
NativeOptions::event_loop_builderhook for apps to change platform specific event loop options (#1952). - Enabled deferred render state initialization to support Android (#1952).
- Added
shader_versiontoNativeOptionsfor cross compiling support on different target OpenGL | ES versions (on nativeglowrenderer only) (#1993). - Fix: app state is now saved when user presses Cmd-Q on Mac (#2013).
- Added
centertoNativeOptionsandmonitor_sizetoWindowInfoon desktop (#2035). - Improve IME support (#2046).
- Added mouse-passthrough option (#2080).
- Added
NativeOptions::fullsize_contentoption on Mac to build titlebar-less windows with floating window controls (#2049). - Wgpu device/adapter/surface creation has now various configuration options exposed via
NativeOptions/WebOptions::wgpu_options(#2207). - Fix: Make sure that
native_pixels_per_pointis updated (#2256). - Added optional, but enabled by default, integration with AccessKit for implementing platform accessibility APIs (#2294).
- Fix: Less flickering on resize on Windows (#2280).
Web:
- ⚠️ BREAKING:
start_webis a nowasync(#2107). - Web: You can now use WebGL on top of
wgpuby enabling thewgpufeature (and disablingglowvia disabling default features) (#2107). - Web: Add
WebInfo::user_agent(#2202). - Web: you can access your application from JS using
AppRunner::app_mut. Seecrates/egui_demo_app/src/lib.rs(#1886).
0.19.0 - 2022-08-20
- MSRV (Minimum Supported Rust Version) is now
1.61.0(#1846). - Added
wgpurendering backed (#1564):- Added features
wgpuandglow. - Added
NativeOptions::rendererto switch between the rendering backends.
- Added features
egui_glow: remove calls togl.get_errorin release builds to speed up rendering (#1583).- Added
App::post_renderingfor e.g. reading the framebuffer (#1591). - Use
Arcforglow::Contextinstead ofRc(#1640). - Fixed bug where the result returned from
App::on_exit_eventwould sometimes be ignored (#1696). - Added
NativeOptions::follow_system_themeandNativeOptions::default_theme(#1726). - Selectively expose parts of the API based on target arch (
wasm32or not) (#1867).
Desktop/Native:
- Fixed clipboard on Wayland (#1613).
- Added ability to read window position and size with
frame.info().window_info(#1617). - Allow running on native without hardware accelerated rendering. Change with
NativeOptions::hardware_acceleration(#1681, #1693). - Fixed window position persistence (#1745).
- Fixed mouse cursor change on Linux (#1747).
- Added
Frame::set_visible(#1808). - Added fullscreen support (#1866).
- You can now continue execution after closing the native desktop window (#1889).
Frame::quithas been renamed toFrame::closeandApp::on_exit_eventis nowApp::on_close_event(#1943).
Web:
- Added ability to stop/re-run web app from JavaScript. ⚠️ You need to update your CSS with
html, body: { height: 100%; width: 100%; }(#1803). - Added
WebOptions::follow_system_themeandWebOptions::default_theme(#1726). - Added option to select WebGL version (#1803).
0.18.0 - 2022-04-30
- MSRV (Minimum Supported Rust Version) is now
1.60.0(#1467). - Removed
eframe::epi- everything is now ineframe(eframe::App,eframe::Frameetc) (#1545). - Removed
Frame::request_repaint- just callegui::Context::request_repaintfor the same effect (#1366). - Changed app creation/setup (#1363):
- Removed
App::setupandApp::name. - Provide
CreationContextwhen creating app with egui context, storage, integration info and glow context. - Change interface of
run_nativeandstart_web.
- Removed
- Added
Frame::storage()andFrame::storage_mut()(#1418).- You can now load/save state in
App::update - Changed
App::updateto take&mut Frameinstead of&Frame. Frameis no longerCloneorSync.
- You can now load/save state in
- Added
glow(OpenGL) context toFrame(#1425).
Desktop/Native:
- Remove the
egui_gliumfeature.eframewill now always useegui_glowas the native backend (#1357). - Change default for
NativeOptions::drag_and_drop_supporttotrue(#1329). - Added new
NativeOptions:vsync,multisampling,depth_buffer,stencil_buffer. dark-light(dark mode detection) is now an opt-in feature (#1437).- Fixed potential scale bug when DPI scaling changes (e.g. when dragging a window between different displays) (#1441).
- Added new feature
puffinto addpuffin profilerscopes (#1483). - Moved app persistence to a background thread, allowing for smoother frame rates (on native).
- Added
Frame::set_window_pos(#1505).
Web:
0.17.0 - 2022-02-22
- Removed
Frame::alloc_texture. Useegui::Context::load_textureinstead (#1110). - Shift-scroll will now result in horizontal scrolling on all platforms (#1136).
- Log using the
tracingcrate. Log to stdout by addingtracing_subscriber::fmt::init();to yourmain(#1192).
Desktop/Native:
- The default native backend is now
egui_glow(instead ofegui_glium) (#1020). - Automatically detect and apply dark or light mode from system (#1045).
- Fixed horizontal scrolling direction on Linux.
- Added
App::on_exit_event(#1038) - Added
NativeOptions::initial_window_pos. - Fixed
enable_dragfor Windows OS (#1108).
Web:
- The default web painter is now
egui_glow(instead of WebGL) (#1020). - Fixed glow failure on Chromium (#1092).
- Updated
eframe::IntegrationInfo::web_location_hashonhashchangeevent (#1140). - Expose all parts of the location/url in
frame.info().web_info(#1258).
0.16.0 - 2021-12-29
Framecan now be cloned, saved, and passed to background threads (#999).- Added
Frame::request_repaintto replacerepaint_signal(#999). - Added
Frame::alloc_texture/free_textureto replacetex_allocator(#999).
Web:
- Fixed dark rendering in WebKitGTK (#888).
- Added feature
glowto switch to aglowbased painter (#868).
0.15.0 - 2021-10-24
Framenow providesset_window_titleto set window title dynamically (#828).Framenow providesset_decorationsto set whether to show window decorations.- Remove "http" feature (use https://github.com/emilk/ehttp instead!).
- Added
App::persist_native_windowandApp::persist_egui_memoryto control what gets persisted.
Desktop/Native:
- Increase native scroll speed.
- Added new backend
egui_glowas an alternative toegui_glium. Enable withdefault-features = false, features = ["default_fonts", "egui_glow"].
Web:
- Implement
eframe::NativeTexturetrait for the WebGL painter. - Deprecate `Painter::register_webgl_texture.
- Fixed multiline paste.
- Fixed painting with non-opaque backgrounds.
- Improve text input on mobile and for IME.
0.14.0 - 2021-08-24
- Added dragging and dropping files into egui.
- Improve http fetch API.
run_nativenow returns when the app is closed.- Web: Made text thicker and less pixelated.
0.13.1 - 2021-06-24
- Fixed
httpfeature flag and docs
0.13.0 - 2021-06-24
App::setupnow takes aFrameandStorageby argument.App::loadhas been removed. ImplementApp::setupinstead.- Web: Default to light visuals unless the system reports a preference for dark mode.
- Web: Improve alpha blending, making fonts look much better (especially in light mode)
- Web: Fix double-paste bug
0.12.0 - 2021-05-10
- Moved options out of
trait Appinto newNativeOptions. - Added option for
always_on_top. - Web: Scroll faster when scrolling with mouse wheel.
0.11.0 - 2021-04-05
- You can now turn your window transparent with the
App::transparentoption. - You can now disable window decorations with the
App::decoratedoption. - Web: Fix mobile and IME text input
- Web: Hold down a modifier key when clicking a link to open it in a new tab.
Contributors: n2
0.10.0 - 2021-02-28
- You can now set your own app icons.
- You can control the initial size of the native window with
App::initial_window_size. - You can control the maximum egui web canvas size with
App::max_size_points. Frame::tex_allocator()no longer returns anOption(there is always a texture allocator).
0.9.0 - 2021-02-07
- Added support for HTTP body.
- Web: Right-clicks will no longer open browser context menu.
- Web: Fix a bug where one couldn't select items in a combo box on a touch screen.
0.8.0 - 2021-01-17
- Simplify
TextureAllocatorinterface. - WebGL2 is now supported, with improved texture sampler. WebGL1 will be used as a fallback.
- Web: Slightly improved alpha-blending (work-around for non-existing linear-space blending).
- Web: Call
prevent_defaultfor arrow keys when entering text
0.7.0 - 2021-01-04
- Initial release of
eframe