Skip to content

Latest commit

 

History

History
266 lines (204 loc) · 18.2 KB

CHANGELOG.md

File metadata and controls

266 lines (204 loc) · 18.2 KB

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

0.22.0 - 2023-05-23

  • Fix: request_repaint_after works even when called from background thread #2939
  • Clear all keys and modifies on focus change #2857 #2933
  • Remove dark-light dependency #2929
  • Replace tracing with log #2928
  • Update accesskit to 0.11 #3012

Desktop/Native:

  • Automatically change theme when system dark/light mode changes #2750 (thanks @bash!)
  • Enabled wayland feature for winit when running native #2751 (thanks @ItsEthra!)
  • Fix eframe window position bug (pixels vs points) #2763 (thanks @get200!)
  • Add Frame::request_screenshot and Frame::screenshot to communicate to the backend that a screenshot of the current frame should be exposed by Frame during App::post_rendering (#2676).
  • Add eframe::run_simple_native * a simple API for simple apps (#2453).
  • Add NativeOptions::app_id which allows to set the Wayland application ID under Linux (#1600).
  • Add NativeOptions::active #2813 (thanks @Dixeran!)
  • Remove android-activity dependency + add Activity backend features #2863 (thanks @rib!)
  • Fix bug where the eframe window is never destroyed on Linux when using run_and_return (#2892)
  • Fix state persisting when exiting on Linux #2895 (thanks @flukejones!)
  • Allow for requesting the user's attention to the window #2905 (thanks @TicClick!)
  • Read and request window focus #2900 (thanks @TicClick!)
  • Set app icon on Mac and Windows #2940
  • Set a default icon for all eframe apps: a white e on black background #2996
  • Add NativeOptions::app_id for the persistance location #3014 and for Wayland #3007 (thanks @thomaskrause!)
  • capture a screenshot using Frame::request_screenshot 870264b

Web:

  • ⚠️ BREAKING: eframe::start_web has been replaced with eframe::WebRunner, which also installs a nice panic hook (no need for console_error_panic_hook).
  • ⚠️ BREAKING: WebGPU is now the default web renderer when using the wgpu feature of eframe. To use WebGL with wgpu, you need to add wgpu = { version = "0.16.0", features = ["webgl"] } to your own Cargo.toml. (#2945)
  • Add eframe::WebLogger for redirecting log calls to the web console (console.log).
  • Prefer the client width/height for the canvas parent #2804 (thanks @samitbasu!)
  • eframe web: Persist app state to local storage when leaving site #2927
  • Better panic handling #2942 #2992
  • Update wasm-bindgen to 0.2.86 #2995
  • Properly unsubscribe from events on destroy 4d360f6

0.21.3 - 2023-02-15

  • Fix typing the letter 'P' on web (#2740).

0.21.2 - 2023-02-12

  • Allow compiling eframe with --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_color now expects you to return a raw float array (#2666).
  • The screen_reader feature has now been renamed web_screen_reader and only work on web. On other platforms, use the accesskit feature flag instead (#2669).

Desktop/Native:

  • eframe::run_native now returns a Result (#2433).
  • Update to winit 0.28, adding support for mac trackpad zoom (#2654).
  • Fix bug where the cursor could get stuck using the wrong icon.
  • NativeOptions::transparent now works with the wgpu backend (#2684).
  • Add Frame::set_minimized and set_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_builder hook for apps to change platform specific event loop options (#1952).
  • Enabled deferred render state initialization to support Android (#1952).
  • Added shader_version to NativeOptions for cross compiling support on different target OpenGL | ES versions (on native glow renderer only) (#1993).
  • Fix: app state is now saved when user presses Cmd-Q on Mac (#2013).
  • Added center to NativeOptions and monitor_size to WindowInfo on desktop (#2035).
  • Improve IME support (#2046).
  • Added mouse-passthrough option (#2080).
  • Added NativeOptions::fullsize_content option 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_point is 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_web is a now async (#2107).
  • Web: You can now use WebGL on top of wgpu by enabling the wgpu feature (and disabling glow via disabling default features) (#2107).
  • Web: Add WebInfo::user_agent (#2202).
  • Web: you can access your application from JS using AppRunner::app_mut. See crates/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 wgpu rendering backed (#1564):
    • Added features wgpu and glow.
    • Added NativeOptions::renderer to switch between the rendering backends.
  • egui_glow: remove calls to gl.get_error in release builds to speed up rendering (#1583).
  • Added App::post_rendering for e.g. reading the framebuffer (#1591).
  • Use Arc for glow::Context instead of Rc (#1640).
  • Fixed bug where the result returned from App::on_exit_event would sometimes be ignored (#1696).
  • Added NativeOptions::follow_system_theme and NativeOptions::default_theme (#1726).
  • Selectively expose parts of the API based on target arch (wasm32 or 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::quit has been renamed to Frame::close and App::on_exit_event is now App::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_theme and WebOptions::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 in eframe (eframe::App, eframe::Frame etc) (#1545).
  • Removed Frame::request_repaint - just call egui::Context::request_repaint for the same effect (#1366).
  • Changed app creation/setup (#1363):
    • Removed App::setup and App::name.
    • Provide CreationContext when creating app with egui context, storage, integration info and glow context.
    • Change interface of run_native and start_web.
  • Added Frame::storage() and Frame::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 longer Clone or Sync.
  • Added glow (OpenGL) context to Frame (#1425).

Desktop/Native:

  • Remove the egui_glium feature. eframe will now always use egui_glow as the native backend (#1357).
  • Change default for NativeOptions::drag_and_drop_support to true (#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 add puffin profiler scopes (#1483).
  • Moved app persistence to a background thread, allowing for smoother frame rates (on native).
  • Added Frame::set_window_pos (#1505).

Web:

  • Use full browser width by default (#1378).
  • egui code will no longer be called after panic (#1306).

0.17.0 - 2022-02-22

  • Removed Frame::alloc_texture. Use egui::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 adding tracing_subscriber::fmt::init(); to your main (#1192).

Desktop/Native:

  • The default native backend is now egui_glow (instead of egui_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).

Web:

  • The default web painter is now egui_glow (instead of WebGL) (#1020).
  • Fixed glow failure on Chromium (#1092).
  • Updated eframe::IntegrationInfo::web_location_hash on hashchange event (#1140).
  • Expose all parts of the location/url in frame.info().web_info (#1258).

0.16.0 - 2021-12-29

  • Frame can now be cloned, saved, and passed to background threads (#999).
  • Added Frame::request_repaint to replace repaint_signal (#999).
  • Added Frame::alloc_texture/free_texture to replace tex_allocator (#999).

Web:

0.15.0 - 2021-10-24

  • Frame now provides set_window_title to set window title dynamically (#828).
  • Frame now provides set_decorations to set whether to show window decorations.
  • Remove "http" feature (use https://github.com/emilk/ehttp instead!).
  • Added App::persist_native_window and App::persist_egui_memory to control what gets persisted.

Desktop/Native:

  • Increase native scroll speed.
  • Added new backend egui_glow as an alternative to egui_glium. Enable with default-features = false, features = ["default_fonts", "egui_glow"].

Web:

  • 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.

0.14.0 - 2021-08-24

  • 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.

0.13.1 - 2021-06-24

  • Fixed http feature flag and docs

0.13.0 - 2021-06-24

  • App::setup now takes a Frame and Storage by argument.
  • App::load has been removed. Implement App::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

0.12.0 - 2021-05-10

  • Moved options out of trait App into new NativeOptions.
  • 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::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

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 an Option (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 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

0.7.0 - 2021-01-04

  • Initial release of eframe