All notable changes to the epaint crate will be documented in this file.
⚠️ BREAKING: Fix text being too small (#2069).⚠️ BREAKING: epaint now expects integrations to do all color blending in gamma space (#2071).- Add
Fonts::has_glyph(s)
for querying if a glyph is supported (#2202).
- 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
TexureOptions
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.