bevy
bevy copied to clipboard
Text renamings
Objective
The names of some of the components in bevy_text are confusing and inconsistent:
-
TextLayoutInfoContains the final computed text layout. The -Info suffix is redundant and potentially confusing. -
TextLayoutHolds the settings for text justification and line breaking. Not the layout. -
ComputedTextBlockThis holds the cosmic-text buffer. The name suggests that it contains the final result of a text relayout, but the buffer can be out-of-date until it is updated during the text schedule.
Solution
- Rename
TextLayoutInfo->ComputedTextLayoutComputedTextBlock->TextBuffer
- Remove
TextLayout. - Make
JustifyTextandLineBreakinto components. - Require
JustifyTextandLineBreakonTextandText2d.
Fixes #19467
Your PR caused a change in the graphical output of an example or rendering test. This might be intentional, but it could also mean that something broke! You can review it at https://pixel-eagle.com/project/B04F67C0-C054-4A6F-92EC-F599FEC2FD1D?filter=PR-19444
If it's expected, please add the M-Deliberate-Rendering-Change label.
If this change seems unrelated to your PR, you can consider updating your PR to target the latest main branch, either by rebasing or merging main into it.
Just noting that this seems to be going in the opposite direction of a sentiment expressed here: https://github.com/bevyengine/bevy/discussions/15014#discussioncomment-10574459 with regard to the new LineBreak and JustifyText components.
I think this might merit more discussion to reduce potential churn. The main issue I am seeing with TextLayout at the moment is that I think LineHeight should be in there instead of in TextFont.
Just noting that this seems to be going in the opposite direction of a sentiment expressed here: #15014 (comment) with regard to the new
LineBreakandJustifyTextcomponents.I think this might merit more discussion to reduce potential churn. The main issue I am seeing with
TextLayoutat the moment is that I thinkLineHeightshould be in there instead of inTextFont.
Ah yeah this was heavily discussed there and also in https://github.com/bevyengine/bevy/pull/15591 and https://github.com/bevyengine/bevy/pull/15797, I wasn't aware of that. I think this needs review from the people involved in those discussions.
I agree with ComputedTextLayout for consistency, but don't agree about changing ComputedTextBlock -> TextBuffer. The Computed prefix is a good pattern for marking components driven by bevy systems (like ComputedNode). ComputedTextBlock cannot be mutated outside bevy, so it should remain Computed.
Also, the fact ComputedTextBlock contains a buffer is an implementation detail that users almost never need to care about. So calling it a Buffer is less appropriate than TextBlock.