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 by running the scripts/generate_changelog.py
script.
- 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
ClippedShape
from struct-enum to a normal struct #3225 - Document when
Galley
s get invalidated #3024 (thanks @e00E!)
- Fix compiling
epaint
withoutbytemuck
dependency #2913 (thanks @lunixbochs!) - Fix documentation for
TextureId::Managed(0)
#2998 (thanks @andersk!)
- 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.
⚠️ 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).
- MSRV (Minimum Supported Rust Version) is now
1.61.0
(#1846). - Added
epaint::hex_color!
to createColor32
's from hex strings under thecolor-hex
feature (#1596). - Optimize tessellation of filled circles by 10x or more (#1616).
- Added opt-in feature
deadlock_detection
to detect double-lock of mutexes on the same thread (#1619). - Texture loading now takes a
TextureOptions
with minification and magnification filters (#2224).
- Change
Shape::Callback
from&dyn Any
to&mut dyn Any
to support more backends.
- MSRV (Minimum Supported Rust Version) is now
1.60.0
(#1467). - Added
Shape::Callback
for backend-specific painting (#1351). - Added more text wrapping options (#1291):
- Added
TextWrapping
struct containing all wrapping options. - Added
LayoutJob::wrap
field containing these options. - Moved
LayoutJob::wrap_width
toTextWrapping::max_width
. - Added
TextWrapping::max_rows
to limit amount of rows the text should have. - Added
TextWrapping::break_anywhere
to control should the text break at appropriate places or not. - Added
TextWrapping::overflow_character
to specify what character should be used to represent clipped text.
- Added
- Removed the
single_threaded/multi_threaded
flags - epaint is now always thread-safe (#1390). Tessellator::from_options
is nowTessellator::new
(#1408).- Renamed
TessellationOptions::anti_alias
tofeathering
(#1408). - Renamed
AlphaImage
toFontImage
to discourage any other use for it (#1412). - Dark text is darker and more readable on bright backgrounds (#1412).
- Fixed panic when tessellating a
Shape::Vec
containing meshes with differingTextureId
s (#1445). - Added
Shape::galley_with_color
which adds the functionality ofPainter::galley_with_color
into the Shape enum (#1461). - Renamed the feature
convert_bytemuck
tobytemuck
(#1467). - Renamed the feature
serialize
toserde
(#1467). - Added line breaking rules for Japanese text (#1498).
- Optimize tessellation of circles and boxes with rounded corners (#1547).
- Much improved font selection (#1154):
- Replaced
TextStyle
withFontId
which lets you pick any font size and font family. - Replaced
Fonts::font_image
withfont_image_delta
for partial font atlas updates.
- Replaced
- Made the v-align and scale of user fonts tweakable (#1241).
- Added
ImageData
andTextureManager
for loading images into textures (#1110). - Added
Shape::dashed_line_many
(#1027). - Replaced
corner_radius: f32
withrounding: 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 emilk#1226).
Fonts::layout_job
: New text layout engine allowing mixing fonts, colors and styles, with underlining and strikethrough.- New
CircleShape
,PathShape
,RectShape
andTextShape
used inenum Shape
. - Added support for rotated text (see
TextShape
). - Added
"convert_bytemuck"
feature.