17 KiB
17 KiB
epaint changelog
All notable changes to the epaint crate will be documented in this file.
This file is updated upon each release.
Changes since the last release can be found at https://github.com/emilk/egui/compare/latest...HEAD or by running the scripts/generate_changelog.py script.
0.32.1 - 2025-08-15
- Fix multi-line
TextShaperotation #7404 by @afishhh - Fix glyph rendering: clamp coverage to [0, 1] #7415 by @emilk
0.32.0 - 2025-07-10
⭐ Added
- Impl AsRef<[u8]> for FontData #5757 by @StratusFearMe21
- Add
expand_bgto customize size of text background #5365 by @MeGaGiGaGon - Add anchored text rotation method, and clarify related docs #7130 by @pmarks
- Add
Galley::intrinsic_size#7146 by @lucasmerlin
🔧 Changed
- Fix semi-transparent colors appearing too bright #5824 by @emilk
- Improve text sharpness #5838 by @emilk
- Improve text rendering in light mode #7290 by @emilk
- Make text underline and strikethrough pixel perfect crisp #5857 by @emilk
- Update
emoji-icon-fontwith fix for fullwidth latin characters #7067 by @emilk - Add assert messages and print bad argument values in asserts #5216 by @bircni
🔥 Removed
🐛 Fixed
- Fix: transform
TextShapeunderline width #5865 by @emilk - Fix
visual_bounding_rectfor rotated text #7050 by @pmarks
🚀 Performance
0.31.1 - 2025-03-05
0.31.0 - 2025-02-04
⭐ Added
- Improve tessellation quality #5669 by @emilk
- Add
epaint::Brushfor controllingRectShapetexturing #5565 by @emilk - Add
RectShape::stroke_kindto control if stroke is inside/outside/centered #5647 by @emilk
🔧 Changed
- Rename
RoundingtoCornerRadius#5673 by @emilk - Make all lines and rectangles crisp #5518 by @emilk
- Better rounding of rectangles with thin outlines #5571 by @emilk
- Require a
StrokeKindwhen painting rectangles with strokes #5648 by @emilk
🔥 Removed
🚀 Performance
- Use
u8inRounding, and introduceRoundingf#5563 by @emilk - Store
Marginusingi8to reduce its size #5567 by @emilk - Shrink size of
Shadowby usingi8/u8instead off32#5568 by @emilk
0.30.0 - 2024-12-16
- Expand max font atlas size from 8k to 16k #5257 by @rustbasic
- Put font data into
Arcto reduce memory consumption #5276 by @StarStarJ - Reduce aliasing when painting thin box outlines #5484 by @emilk
- Fix zero-width strokes still affecting the feathering color of boxes #5485 by @emilk
0.29.1 - 2024-10-01
Nothing new
0.29.0 - 2024-09-26
🚀 Performance
- Optimize
Color32::from_rgba_unmultipliedwith LUT #5088 by @YgorSouza
🔧 Changed
- Fix blurry lines by aligning to pixel grid #4943 by @juancampa
- Better vertical text alignment #5117 by @emilk
- Deprecate
ahashre-exports #4979 by @oscargus
🐛 Fixed
- Fix bug in size calculation of truncated text #5076 by @emilk
- Fix text sometime line-breaking or truncating too early #5077 by @emilk
- Prevent text shrinking in tooltips; round wrap-width to integer #5161 by @emilk
0.28.1 - 2024-07-05
Nothing new
0.28.0 - 2024-07-03
⭐ Added
- Add
RectShape::blur_widthto implement shadows #4267 by @emilk - Overload operators for
Rect + Margin,Rect - Marginetc #4277 by @emilk - Added ability to define colors at UV coordinates along a path #4353 by @murl-digital
- Add a
Displayimpl forVec2,Pos2, andRect#4428 by @tgross35
🔧 Changed
- Move
epaint::util::OrderedFloattoemath::OrderedFloat#4389 by @emilk - Remove
extra_assertsandextra_debug_assertsfeature flags #4478 by @emilk - Make
epaint::mutex::RwLockallow?Sizedtypes #4485 by @crumblingstatue - Round text galley sizes to nearest UI point size #4578 by @emilk
🐛 Fixed
- Fix incorrect line breaks #4377 by @juancampa
- Fix
hex_color!macro by re-exportingcolor_hexcrate fromecolor#4372 by @dataphract - Don't panic when replacement glyph is not found #4542 by @RyanBluth
0.27.2 - 2024-04-02
- Nothing new
0.27.1 - 2024-03-29
- Fix visual glitch on the right side of highly rounded rectangles #4244
- Prevent visual glitch when shadow blur width is very high #4245
0.27.0 - 2024-03-26
- Add
ColorImage::from_gray_iter#3536 (thanks @wangxiaochuTHU!) - Convenience const fn for
Margin,RoundingandShadow#4080 (thanks @0Qwel!) - Added
Shape::{scale,translate}wrappers #4090 (thanks @varphone!) - Add
EllipseShape#4122 (thanks @TheTacBanana!) - Add
Margintoepaint#4231 - CSS-like
Shadowwith offset, spread, and blur #4232
0.26.2 - 2024-02-14
- Nothing new
0.26.1 - 2024-02-11
- Nothing new
0.26.0 - 2024-02-05
- Add
Align2::anchor_size#3863 - Add opacity factor to
TextShape#3916 (thanks @StratusFearMe21!) - Parallel tessellation with opt-in
rayonfeature #3934
0.25.0 - 2024-01-08
- Replace a special
Color32::PLACEHOLDERwith widget fallback color #3727 - Add support for dashed lines with offset #3720 (thanks @oscargus!)
- Impl
CloneforFonts#3737 - Fix: allow using the full Private Use Area for custom fonts #3509 (thanks @varphone!)
- Add
Color32::from_hexandColor32::to_hex#3570 #3777 (thanks @YgorSouza!)
0.24.1 - 2023-11-30
- Optimize
FontImage::srgba_pixelsand reduce the initial font atlas texture size from 8MiB -> 1MiB #3666
0.24.0 - 2023-11-23
- Use
impl Into<Stroke>as argument in a few more places #3420 (thanks @Phen-Ro!) - Update MSRV to Rust 1.72 #3595
- Make
ViewportInPixelsuse integers, and clamp to bounds #3604 (thanks @Wumpf!)
0.23.0 - 2023-09-27
- Update MSRV to Rust 1.70.0 #3310
- Add option to truncate text at wrap width #3244 #3366
- Add control of line height and letter spacing #3302
- Support images with rounded corners #3257
- Add
ColorImage::from_gray#3166 (thanks @thomaseliot!) - Provide
into_inner()foregui::mutex::{Mutex, RwLock}#3110 (thanks @KmolYuan!) - Fix problems with tabs in text #3355
- Refactor: change
ClippedShapefrom struct-enum to a normal struct #3225 - Document when
Galleys get invalidated #3024 (thanks @e00E!)
0.22.0 - 2023-05-23
- Fix compiling
epaintwithoutbytemuckdependency #2913 (thanks @lunixbochs!) - Fix documentation for
TextureId::Managed(0)#2998 (thanks @andersk!)
0.21.0 - 2023-02-08
- Improve the look of thin white lines (#2437).
- Don't render
\r(Carriage Return) (#2452). - Fix bug in
Mesh::split_to_u16(#2459). - Improve rendering of very thin rectangles.
0.20.0 - 2022-12-08
- ⚠️ BREAKING: Fix text being too small (#2069).
- ⚠️ BREAKING: epaint now expects integrations to do all color blending in gamma space (#2071).
- Improve mixed CJK/Latin line-breaking (#1986).
- Added
Fonts::has_glyph(s)for querying if a glyph is supported (#2202). - Added support for thin space.
- Split out color into its own crate,
ecolor(#2399).
0.19.0 - 2022-08-20
- MSRV (Minimum Supported Rust Version) is now
1.61.0(#1846). - Added
epaint::hex_color!to createColor32's from hex strings under thecolor-hexfeature (#1596). - Optimize tessellation of filled circles by 10x or more (#1616).
- Added opt-in feature
deadlock_detectionto detect double-lock of mutexes on the same thread (#1619). - Texture loading now takes a
TextureOptionswith minification and magnification filters (#2224).
0.18.1 - 2022-05-01
- Change
Shape::Callbackfrom&dyn Anyto&mut dyn Anyto support more backends.
0.18.0 - 2022-04-30
- MSRV (Minimum Supported Rust Version) is now
1.60.0(#1467). - Added
Shape::Callbackfor backend-specific painting (#1351). - Added more text wrapping options (#1291):
- Added
TextWrappingstruct containing all wrapping options. - Added
LayoutJob::wrapfield containing these options. - Moved
LayoutJob::wrap_widthtoTextWrapping::max_width. - Added
TextWrapping::max_rowsto limit amount of rows the text should have. - Added
TextWrapping::break_anywhereto control should the text break at appropriate places or not. - Added
TextWrapping::overflow_characterto specify what character should be used to represent clipped text.
- Added
- Removed the
single_threaded/multi_threadedflags - epaint is now always thread-safe (#1390). Tessellator::from_optionsis nowTessellator::new(#1408).- Renamed
TessellationOptions::anti_aliastofeathering(#1408). - Renamed
AlphaImagetoFontImageto discourage any other use for it (#1412). - Dark text is darker and more readable on bright backgrounds (#1412).
- Fixed panic when tessellating a
Shape::Veccontaining meshes with differingTextureIds (#1445). - Added
Shape::galley_with_colorwhich adds the functionality ofPainter::galley_with_colorinto the Shape enum (#1461). - Renamed the feature
convert_bytemucktobytemuck(#1467). - Renamed the feature
serializetoserde(#1467). - Added line breaking rules for Japanese text (#1498).
- Optimize tessellation of circles and boxes with rounded corners (#1547).
0.17.0 - 2022-02-22
- Much improved font selection (#1154):
- Replaced
TextStylewithFontIdwhich lets you pick any font size and font family. - Replaced
Fonts::font_imagewithfont_image_deltafor partial font atlas updates.
- Replaced
- Made the v-align and scale of user fonts tweakable (#1241).
- Added
ImageDataandTextureManagerfor loading images into textures (#1110). - Added
Shape::dashed_line_many(#1027). - Replaced
corner_radius: f32withrounding: Rounding, allowing per-corner rounding settings (#1206). - Fixed anti-aliasing of filled paths with counter-clockwise winding order.
- Improve the anti-aliasing of filled paths with sharp corners, at the cost of these corners sometimes becoming badly extruded instead (see https://github.com/emilk/egui/issues/1226).
0.16.0 - 2021-12-29
0.15.0 - 2021-10-24
Fonts::layout_job: New text layout engine allowing mixing fonts, colors and styles, with underlining and strikethrough.- New
CircleShape,PathShape,RectShapeandTextShapeused inenum Shape. - Added support for rotated text (see
TextShape). - Added
"convert_bytemuck"feature.