All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Basic
bevy_picking
support to prevent picking through Egui windows (#338, #331 by @globin and @aevyrie). - Helpers for converting between Egui and Bevy types (#345, 488ac6a).
- Update Egui to 0.30 (#340 by @PPakalns).
- Reuse IDs of removed textures (#344).
- Input handling refactor (#345).
- This brings us closer to diegetic (world space) UI support, the
HoveredNonWindowEguiContext
andFocusedNonWindowEguiContext
resources can now be used to redirect input events to other contexts. - Input handling was split into separate systems for each event type, which are now also disableable (#346),
see the
EguiGlobalSettings
resource. - The
EguiInputEvent
event type was added, which wraps all the events that are sent to Egui. It can also be used for custom input events logic, in case you want to mock inputs or handle inputs yourself. - The
EguiSettings
component was renamed toEguiContextSettings
. EguiSet
was split into theEguiPreUpdateSet
andEguiPostUpdateSet
sets.EguiInputSet
was also added (asEguiPreUpdateSet::ProcessInput
subsets).
- This brings us closer to diegetic (world space) UI support, the
- Egui contexts are now immediately initialised for entities with a
EguiRenderToImage
component (as opposed to being initialised with a delay by a separate system), thanks to Bevy required components.
- Fix clipboard error handling (#347).
- Fix docs.rs build.
- Update to Bevy 0.15 (#309 by @Vrixyz).
- Don't add
EguiContext
to every entity when therender
feature is disabled (#321 by @DGriffin91).
- Depend on bevy subcrates for compile time improvement (#319 by @aevyrie).
prepare_render
step support forEguiBevyPaintCallbackImpl
(#306 by @PPakalns).- Mobile virtual keyboard support in web (#279 by @v-kat).
- Requires
Window::prevent_default_event_handling
being set tofalse
.
- Requires
- IME support (#204 by @EReeves).
- Update Egui to 0.29 (#313 by @PPakalns).
EguiSettings
is now a component.EguiSet::BeginFrame
has been renamed toEguiSet::BeginPass
.
- Initial worldspace UI support (#304 by @TheButlah, @Schmarni-Dev).
- Paint callback support (#303 by @PPakalns).
- Adapt to
web-sys
clipboard api change (#301 by @no-materials).
- Update Bevy to 0.14 (#284 by @Friz64).
- Update Egui to 0.28 (#290 by @Swoorup).
- Update webbrowser to 1.0.1
- Request Redraw only if really needed (#278 by @Maximetinu).
- Fix light in the
render_to_image_wideget
example (#282 by @rlidwka).
- Fallible variants of primary window getters for
EguiContexts
.
- Update Egui to 0.27 (#271 by @jakobhellermann).
- Improve compilation errors when missing
web_sys_unstable_apis
(#270 by @Vrixyz).
- Rework reading window ids for events (fixes edge-cases with ignoring events, #273).
- Unused
RenderGraphConfig
.
- Respect
egui::TextureOptions
for managed textures (#264 by @TheRawMeatball). - Fix keybind modifiers (#265 by @eero-lehtinen).
- Add
render
feature which can be disabled for applications with a custom renderer (#240 by @BeastLe9enD).
- Update Bevy to 0.13 (#236 by @eri).
- Update Egui to 0.26.
- Retrieve user agent for better platform detection on WASM (#256 by @Vrixyz).
- Remove unused
once_cell
dev-dependency (#258 by @frewsxcv). - Make fields inside
WindowSize
pub (#251 by @BeastLe9enD). - Fix requested repaints not causing Bevy to redraw (#240 by @andriyDev).
- Fix build on Android with default features (#241 by @Hellzbellz123).
- Update Egui to 0.24 (#234 by @naomijub, @frewsxcv).
- Handle giving time input to egui correctly (#226 by @TheRawMeatball).
- Update Bevy to 0.12 (#221 by @raffaeleragni).
- Fix color attachments in WASM (WebGPU) (#220 by @seabassjh, @frewsxcv).
- Add
#[derive(Reflect)]
(#195 by @SludgePhD).
- Update Egui to 0.23 (#217 by @zicklag).
- Refactor components and resources extraction (#210, #211 by @TheButlah).
- Add touch events support (#180 by @oscrim).
- Update Bevy to 0.11 (#188 by @Vrixyz).
- Update Egui to 0.22 (#184).
- Move sampler descriptor into
EguiSettings
(#179 by @GlummixX). - Update GitHub Actions CI (#183 by @striezel).
- Accept NumpadEnter as Enter (#171 by @dimvoly).
- Move
bevy_core_pipeline
to dev-dependencies (#166 by @jakobhellermann).
- Fix incorrect bounds check for set_scissor_rect (#167 by @Gorialis).
- Fix panic messages for uninitialised contexts.
- Fix recreation of
EguiContext
on startup (#162 by @encounter). - Set image sampler address modes to
ClampToEdge
(#158 by @galop1n).
- Update Bevy to 0.10 (#159, thanks to @DGriffin91).
- Update Egui to 0.21 (#152 by @paul-hansen).
- Implement better multi-window support (#147 by @TheRawMeatball).
- Pass raw Bevy time to Egui to fix UI animations (#155 by @jakobhellermann).
- Update the
arboard
dependency (#142 by @jakobhellermann).
- Fix panics due to missing swapchain textures (#141 by @connerebbinghaus).
- Update Egui to 0.20 (#139 by @no-materials).
- Fix clearing event readers (missed events warnings).
- Fix window resizing on Windows (#128 by @chronicl).
- Fix releasing buttons outside a window (#123, thanks to @TheRawMeatball for flagging the issue in #121).
- Update Egui to 0.19.
- Store image handles instead of ids to persist strong handles.
- Add a feature that can be disabled to replace default Egui fonts (#110 by @iTitus).
- Update Bevy to 0.8 (#111 by @DGriffin91).
- Add new_tab support for open_url (#96 by @Azorlogh).
EguiSettings
has also got thedefault_open_url_target
parameter to make the default behaviour on left mouse click configurable.
- Update Egui to 0.18 (#99).
- The
multi_threaded
feature was renamed toimmutable_ctx
.
- Improve wgsl readability and introduce minor optimisations (#95 by @lain-dono).
- Remove duplicate EguiPipeline resource initialization (#98 by @lain-dono).
- Fix color blending for user textures (#100).
- Update Bevy to 0.7 (#79 by @aevyrie and @forbjok).
- Return egui::TextureId on removal (#81 by @Shatur).
- Add
must_use
attributes to methods (#82).
- Remove unnecessary image clone allocation (#84 by @frewsxcv).
- Avoid allocations by utilizing
HashMap::iter_mut
(#83 by @frewsxcv). - Remove unnecessary swap texture clone (#85 by @frewsxcv).
- Add a function to get image id (#80 by @Shatur).
- Add side panel example (#73).
- Update Egui to 0.17 (#78 by @emilk).
- User texture ids are now tracked internally (#71).
- Instead of using
set_egui_texture
, you can now useadd_image
which returns a texture id itself (see the updated ui example).
- Instead of using
- Switch to
arboard
for managing clipboard (#72).
- Add
ctx_for_windows_mut
andtry_ctx_for_windows_mut
for accessing multiple contexts without themulti_threaded
feature.
- Introduce mutable getters for EguiContext, feature gate immutable ones (#64).
- If you used
bevy_egui
without themulti_threaded
feature, you'll need to change everyctx
call toctx_mut
.
- If you used
- Feature
multi_threaded
, to avoid usingegui/multi_threaded
(#63 by @ndarilek).
- WGPU crash on minimizing a window (#62 by @aevyrie).
- Horizontal scroll support (Shift + Mouse Wheel).
- Zoom support (Ctrl/Cmd + Mouse Wheel).
- Change points delta from 24 to 50 for
MouseScrollUnit::Line
event. - Fix handling of mouse button events for Safari (inputs are no longer ignored).
- Scroll is no longer applied to every Bevy window.
- Headless mode support (#51 by @Shatur).
- Egui pass now runs after
bevy_ui
(#53 by @jakobhellermann).
- Update Bevy to 0.6 (#25 by @jakobhellermann).
- Update Egui to 0.16 (#49 by @Meshiest).
- Update Egui to 0.15.0 (#45).
- Add
EguiStartupSystem
system labels.
- Initialize egui contexts during startup (fixes #41).
- Update Egui to 0.14.0 (#38).
- Fix receiving input when holding a button (#37).
- Fix more edge-cases related to invalid scissors.
- Update Egui to 0.13.0.
- Update Egui to 0.12.0.
- Better error message for a missing Egui context (#24 by @jakobhellermann).
- Add
try_ctx_for_window
function (#20 by @jakobhellermann).
- Fix crashes related to invalid scissor or window size (#18).
Huge thanks to @jakobhellermann and @Weasy666 for contributing to this release!
- Implement multiple windows support (#14 by @jakobhellermann).
- Update Egui to 0.11.0 (#12 by @Weasy666 and @jakobhellermann).
- Update Egui to 0.10.0.
- Update Egui to 0.9.0.
- Fix copying textures to take alignment into account.
- Disable a documentation test.
- Disable default features for docs.rs to fix the build.
- Fix compilation errors when no features are set.