fix(deps): update rust crate egui28 to 0.31 #81
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.28
->0.31
Release Notes
emilk/egui (egui28)
v0.31.0
Compare Source
Highlights ✨
Scene container
This release adds the
Scene
container to egui. It is a pannable, zoomable canvas that can containWidget
s and childUi
s.This will make it easier to e.g. implement a graph editor.
Clearer, pixel perfect rendering
The tessellator has been updated for improved rendering quality and better performance. It will produce fewer vertices
and shapes will have less overdraw. We've also defined what
CornerRadius
(previouslyRounding
) means.We've also added a tessellator test to the demo app, where you can play around with different
values to see what's produced:
tessellator-test.mp4
Check the PR for more details.
CornerRadius
,Margin
,Shadow
size reductionIn order to pave the path for more complex and customizable styling solutions, we've reduced the size of
CornerRadius
,Margin
andShadow
values toi8
andu8
.Migration guide
StrokeKind
to all yourPainter::rect
calls #5648StrokeKind::default
was removed, since the 'normal' value depends on the context #5658StrokeKind::Inside
when drawing rectanglesStrokeKind::Middle
when drawing open pathsRounding
toCornerRadius
#5673CornerRadius
,Margin
andShadow
have been updated to usei8
andu8
#5563, #5567, #5568as i8
/as u8
oras _
if you want Rust to infer the typef32
value is bigger than127
it will be clamped to127
RectShape
parameters changed #5565Frame
now takes theStroke
width into account for its sizing, so check all views of your app to make sure they still look right.Read the PR for more info.
⭐ Added
egui::Scene
for panning/zooming aUi
#5505 by @grtlrOutputCommand
for copying text and opening URL:s #5532 by @emilkContext::copy_image
#5533 by @emilkWidgetType::Image
andImage::alt_text
#5534 by @lucasmerlinepaint::Brush
for controllingRectShape
texturing #5565 by @emilknohash_hasher::IsEnabled
forId
#5628 by @emilk!
,{
,}
#5548 by @Its-Just-NansRectShape::stroke_kind
to control if stroke is inside/outside/centered #5647 by @emilk🔧 Changed
Frame
now includes stroke width as part of padding #5575 by @emilkRounding
toCornerRadius
#5673 by @emilkStrokeKind
when painting rectangles with strokes #5648 by @emilk🔥 Removed
egui::special_emojis::TWITTER
#5622 by @emilkStrokeKind::default
#5658 by @emilk🐛 Fixed
profiling
crate #5494 by @lucasmerlinArea::compare_order()
#5569 by @HactarCE🚀 Performance
u8
inCornerRadius
, and introduceCornerRadiusF32
#5563 by @emilkMargin
usingi8
to reduce its size #5567 by @emilkShadow
by usingi8/u8
instead off32
#5568 by @emilkResponse
andSense
#5556 by @polwelv0.30.0
Compare Source
✨ Highlights
Modal
, a popup that blocks input to the rest of the application (#5358 by @lucasmerlin)egui_kittest
This release welcomes a new crate to the family: egui_kittest.
egui_kittest
is a testing framework for egui, allowing you to test both automation (simulated clicks and other events),and also do screenshot testing (useful for regression tests).
egui_kittest
is built usingkittest
, which is a general GUI testing framework that aims to work with any Rust GUI (not just egui!).kittest
uses the accessibility libraryAccessKit
for automatation and to query the widget tree.kittest
andegui_kittest
are written by @lucasmerlin.Here's a quick example of how to use
egui_kittest
to test a checkbox:⭐ Added
Modal
andMemory::set_modal_layer
#5358 by @lucasmerlinUiBuilder::layer_id
and removelayer_id
fromUi::new
#5195 by @emilkTextEdit
#5203 by @bircniResponse::intrinsic_size
forTextEdit
#5266 by @lucasmerlinMultiTouchInfo
#5247 by @lucasmerlinContext::add_font
#5228 by @frederik-uniBox<str>
forWidgetText
,RichText
#5309 by @dimtpapWindow::scroll_bar_visibility
#5231 by @ZeenobitComboBox::close_behavior
#5305 by @avalschpainter.line()
#5291 by @bircniButton::image_tint_follows_text_color
#5430 by @emilkContext::layer_transform_to_global
&layer_transform_from_global
#5465 by @emilk🔧 Changed
Arc
to reduce memory consumption #5276 by @StarStarJegui::util::cache
toegui::cache
; addFramePublisher
#5426 by @emilkOrder::PanelResizeLine
#5455 by @emilkprofiling
crate to support more profiler backends #5150 by @teddemunnik🐛 Fixed
ScrollArea
drag velocity when drag stopped #5175 by @valadaptiveViewportCommand::Visible
#5244 by @rustbasicUi::new_child
does not consider thesizing_pass
field ofUiBuilder
#5262 by @zhatuokunWindow::default_pos
does not work #5315 by @rustbasicSides
did not apply the layout position correctly #5303 by @zhatuokunStyle::override_font_id
inRichText
#5310 by @MStarhaTextEdit
inside aScrollArea
#3660 by @juancampaon_hover_text_at_pointer
for transformed layers #5429 by @emilkArea
outside itsconstrain_rect
#5459 by @MScottMcBeeui.new_child
should now respectdisabled
#5483 by @emilkv0.29.1
Compare Source
with_layer_id/dnd_drag_source
#5191 by @emilkUi::response
#5192 by @emilkv0.29.0
Compare Source
✨ Highlights
This release adds initial support for multi-pass layout, which is a tool to circumvent a common limitation of immediate mode.
You can use the new
UiBuilder::sizing_pass
(#4969) to instruct theUi
and widgets to shrink to their minimum size, then store that size.Then call the new
Context::request_discard
(#5059) to discard the visual output and do another pass immediately after the current finishes.Together, this allows more advanced layouts that is normally not possible in immediate mode.
So far this is only used by
egui::Grid
to hide the "first-frame jitters" that would sometimes happen before, but 3rd party libraries can also use it to do much more advanced things.There is also a new
UiBuilder
for more flexible construction ofUi
s (#4969).By specifying a
sense
for theUi
you can make it respond to clicks and drags, reading the result with the newUi::response
(#5054).Among other things, you can use this to create buttons that contain arbitrary widgets.
0.29 also adds improve support for automatic switching between light and dark mode.
You can now set up a custom
Style
for both dark and light mode, and have egui follow the system preference (#4744 #4860).There also has been several small improvements to the look of egui:
The new text selection
What text selection used to look like
🧳 Migration
id_source
is now calledid_salt
everywhere (#5025)Ui::new
now takes aUiBuilder
(#4969)UiBuilder
):ui.add_visible_ui
ui.allocate_ui_at_rect
ui.child_ui
ui.child_ui_with_id_source
ui.push_stack_info
⭐ Added
UiBuilder
for buildingUi
s #4969 by @emilkegui::Sides
for adding UI on left and right sides #5036 by @emilkUi
:s: addUiBuilder::sense
andUi::response
#5054 by @lucasmerlinUi::columns_const()
#4764 by @v0x0gSlider::max_decimals_opt
#4953 by @bircniLabel::halign
#4975 by @rustbasicui.shrink_clip_rect
#5068 by @emilkScrollArea::scroll_bar_rect
#5070 by @emilkOptions::input_options
for click-delay etc #4942 by @girtsfWidgetType::RadioGroup
#5081 by @bashwith_accessibility_parent
#5083 by @bashUi::with_visual_transform
#5055 by @lucasmerlinSlider
andDragValue
compatible withNonZeroUsize
etc #5105 by @emilkContext::request_discard
for multi-pass layouts #5059 by @emilkFontTweak
live #5125 by @emilkResponse::intrinsic_size
to enable better layout in 3rd party crates #5082 by @lucasmerlinDebugOptions::show_unaligned
#5165 by @emilkSlider::clamping
for precise clamp control #5119 by @emilk🚀 Performance
Color32::from_rgba_unmultiplied
with LUT #5088 by @YgorSouza🔧 Changed
id_source
toid_salt
#5025 by @bircniId
clashes by seeding auto-ids with child id #4840 by @ironpeakMargin::ui
#4873 by @rustbasicscroll_to_*
animations configurable #4305 by @lucasmerlinButton
to correctly align contained image #4891 by @PrimmRahash
re-exports #4979 by @oscargusgenerate-link-to-definition
feature on docs.rs #5030 by @GuillaumeGomezMemory
methods public #5046 by @bircniui.set_sizing_pass
#5074 by @emilkegui::frame
#5087 by @simgtlog
crate instead ofeprintln
& remove some unwraps #5010 by @bircniEvent::Copy
andEvent::Cut
behave as if they select the entire text when there is no selection #5115 by @rustbasic🐛 Fixed
TextEdit
to fix some bugs #4794 by @rustbasicstep_by
#4822 by @AurevoirXavierTextEdit
#4889 by @PrimmRTextEdit
when clicked #4991 by @ZoxcId
clash inFrame
styling widget #4967 by @YgorSouzaScrollArea
contents from exceeding the container size #5006 by @DouglasDwyerRawInput::take
clears all events, like it says it does #5104 by @emilkDragValue
range clamping #5118 by @emilkConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.