All notable changes to the eframe
crate.
NOTE: egui-winit
, egui_glium
, egui_glow
,and egui-wgpu
have their own changelogs!
- Added
NativeOptions::fullsize_content
option on Mac to build titlebar-less windows with floating window controls (#2049). - Added
NativeOptions::event_loop_builder
hook for apps to change platform specific event loop options (#1952). - Enabled deferred render state initialization to support Android (#1952).
- Allow empty textures with the glow renderer.
- Added
shader_version
toNativeOptions
for cross compiling support on different target OpenGL | ES versions (on nativeglow
renderer only) (#1993). - Fix: app state is now saved when user presses Cmd-Q on Mac (#2013).
- Added
center
toNativeOptions
andmonitor_size
toWindowInfo
on desktop (#2035). - Web: you can access your application from JS using
AppRunner::app_mut
. Seecrates/egui_demo_app/src/lib.rs
. - Web: You can now use WebGL on top of
wgpu
by enabling thewgpu
feature (and disablingglow
via disabling default features) (#2107). - Web: Add
WebInfo::user_agent
(#2202). - Wgpu device/adapter/surface creation has now various configuration options exposed via
NativeOptions/WebOptions::wgpu_options
(#2207). - Fix: Make sure that
native_pixels_per_point
is updated (#2256).
- MSRV (Minimum Supported Rust Version) is now
1.61.0
(#1846). - Added
wgpu
rendering backed (#1564):- Added features
wgpu
andglow
. - Added
NativeOptions::renderer
to switch between the rendering backends.
- Added features
egui_glow
: remove calls togl.get_error
in release builds to speed up rendering (#1583).- Added
App::post_rendering
for e.g. reading the framebuffer (#1591). - Use
Arc
forglow::Context
instead ofRc
(#1640). - Fixed bug where the result returned from
App::on_exit_event
would sometimes be ignored (#1696). - Added
NativeOptions::follow_system_theme
andNativeOptions::default_theme
(#1726). - Selectively expose parts of the API based on target arch (
wasm32
or not) (#1867).
- 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::quit
has been renamed toFrame::close
andApp::on_exit_event
is nowApp::on_close_event
(#1943).
- Added ability to stop/re-run web app from JavaScript.
⚠️ You need to update your CSS withhtml, body: { height: 100%; width: 100%; }
(#1803). - Added
WebOptions::follow_system_theme
andWebOptions::default_theme
(#1726). - Added option to select WebGL version (#1803).
- MSRV (Minimum Supported Rust Version) is now
1.60.0
(#1467). - Removed
eframe::epi
- everything is now ineframe
(eframe::App
,eframe::Frame
etc) (#1545). - Removed
Frame::request_repaint
- just callegui::Context::request_repaint
for the same effect (#1366). - Changed app creation/setup (#1363):
- Removed
App::setup
andApp::name
. - Provide
CreationContext
when creating app with egui context, storage, integration info and glow context. - Change interface of
run_native
andstart_web
.
- Removed
- Added
Frame::storage()
andFrame::storage_mut()
(#1418).- You can now load/save state in
App::update
- Changed
App::update
to take&mut Frame
instead of&Frame
. Frame
is no longerClone
orSync
.
- You can now load/save state in
- Added
glow
(OpenGL) context toFrame
(#1425).
- Remove the
egui_glium
feature.eframe
will now always useegui_glow
as the native backend (#1357). - Change default for
NativeOptions::drag_and_drop_support
totrue
(#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
puffin
to addpuffin profiler
scopes (#1483). - Moved app persistence to a background thread, allowing for smoother frame rates (on native).
- Added
Frame::set_window_pos
(#1505).
- Removed
Frame::alloc_texture
. Useegui::Context::load_texture
instead (#1110). - Shift-scroll will now result in horizontal scrolling on all platforms (#1136).
- Log using the
tracing
crate. Log to stdout by addingtracing_subscriber::fmt::init();
to yourmain
(#1192).
- 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_drag
for Windows OS (#1108).
- The default web painter is now
egui_glow
(instead of WebGL) (#1020). - Fixed glow failure on Chromium (#1092).
- Updated
eframe::IntegrationInfo::web_location_hash
onhashchange
event (#1140). - Expose all parts of the location/url in
frame.info().web_info
(#1258).
Frame
can now be cloned, saved, and passed to background threads (#999).- Added
Frame::request_repaint
to replacerepaint_signal
(#999). - Added
Frame::alloc_texture/free_texture
to replacetex_allocator
(#999).
- Fixed dark rendering in WebKitGTK (#888).
- Added feature
glow
to switch to aglow
based painter (#868).
Frame
now providesset_window_title
to set window title dynamicallyFrame
now providesset_decorations
to set whether to show window decorations.- Remove "http" feature (use https://github.com/emilk/ehttp instead!).
- Added
App::persist_native_window
andApp::persist_egui_memory
to control what gets persisted.
- Increase native scroll speed.
- Added new backend
egui_glow
as an alternative toegui_glium
. Enable withdefault-features = false, features = ["default_fonts", "egui_glow"]
.
- Implement
eframe::NativeTexture
trait 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.
- Added dragging and dropping files into egui.
- Improve http fetch API.
run_native
now returns when the app is closed.- Web: Made text thicker and less pixelated.
- Fixed
http
feature flag and docs
App::setup
now takes aFrame
andStorage
by argument.App::load
has been removed. ImplementApp::setup
instead.- 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
- Moved options out of
trait App
into newNativeOptions
. - Added option for
always_on_top
. - Web: Scroll faster when scrolling with mouse wheel.
- You can now turn your window transparent with the
App::transparent
option. - You can now disable window decorations with the
App::decorated
option. - 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
- 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).
- 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.
- Simplify
TextureAllocator
interface. - 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_default
for arrow keys when entering text
- Initial release of
eframe