bevy/crates
Rob Parrett fcc6b4ddff Fix text alignment for unbounded text (#17270)
Fixes #16783

Works around a `cosmic-text` bug or limitation by triggering a re-layout
with the calculated width from the first layout run. See linked issue.

Credit to @ickshonpe for the clever solution.

This has a significant performance impact only on unbounded text that
are not `JustifyText::Left`, which is still a bit of a bummer because
text2d performance in 0.15.1 is already not great. But this seems better
than alignment not working.

||many_text2d nfc re|many_text2d nfc re center|
|-|-|-|
|unbounded-layout-no-fix|3.06|3.10|
|unbounded-layout-fix|3.05  -0.2%|2.71 🟥 -12.5%|

I added a centered text to the `text2d` example.

`cargo run --example text2d`

We should look at other text examples and stress tests. I haven't tested
as thoroughly as I would like, so help testing that this doesn't break
something in UI would be appreciated.
2025-02-06 22:30:57 +01:00
..
bevy_a11y Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_animation Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_app Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_asset Fix duplicate asset loader registration warning (#17105) 2025-02-06 22:30:49 +01:00
bevy_audio Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_color Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_core Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_core_pipeline Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_derive Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_dev_tools Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_diagnostic Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_dylib Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_ecs Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_encase_derive Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_gilrs Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_gizmos Fix 2D Gizmos not always drawn on top (#17085) 2025-02-06 22:30:49 +01:00
bevy_gltf Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_hierarchy Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_image Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_input Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_internal Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_log Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_macro_utils Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_math Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_mesh Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_mikktspace Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_pbr Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_picking Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_ptr Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_reflect Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_remote Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_render Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_scene Add missing #[reflect(Component, Default)] to SceneRoot and DynamicSceneRoot. (#16816) 2025-02-06 22:30:46 +01:00
bevy_sprite Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_state Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_tasks Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_text Fix text alignment for unbounded text (#17270) 2025-02-06 22:30:57 +01:00
bevy_time Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_transform Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_ui Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_utils Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_window Release 0.15.1 2025-01-03 19:43:53 +01:00
bevy_winit Release 0.15.1 2025-01-03 19:43:53 +01:00