mirror of
https://github.com/bevyengine/bevy
synced 2024-12-29 22:43:14 +00:00
6f7d0e5725
# Objective Currently text is recomputed unnecessarily on any changes to its color, which is extremely expensive. ## Solution Split up `TextStyle` into two separate components `TextFont` and `TextColor`. ## Testing I added this system to `many_buttons`: ```rust fn set_text_colors_changed(mut colors: Query<&mut TextColor>) { for mut text_color in colors.iter_mut() { text_color.set_changed(); } } ``` reports ~4fps on main, ~50fps with this PR. ## Migration Guide `TextStyle` has been renamed to `TextFont` and its `color` field has been moved to a separate component named `TextColor` which newtypes `Color`.
438 B
438 B
B0005
A runtime warning.
Separate font atlases are created for each font and font size. This is expensive, and the memory is never reclaimed when e.g. interpolating TextFont::font_size
or UiScale::scale
.
If you need to smoothly scale font size, use Transform::scale
.
You can disable this warning by setting TextSettings::allow_dynamic_font_size
to true
or raise the limit by setting TextSettings::soft_max_font_atlases
.