Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - Implement the Overflow::Hidden style property for UI #3296

Closed
wants to merge 2 commits into from

Conversation

Davier
Copy link
Contributor

@Davier Davier commented Dec 11, 2021

Objective

This PR implements the overflow style property in bevy_ui. When set to Overflow::Hidden, the children of that node are clipped so that overflowing parts are not rendered. This is an important building block for UI widgets.

Solution

Clipping is done on the CPU so that it does not break batching.

The clip regions update was implemented as a separate system for clarity, but it could be merged with the other UI systems to avoid doing an additional tree traversal. (I don't think it's important until we fix the layout performance issues though).

A scrolling list was added to the ui_pipelined example to showcase Overflow::Hidden. For the sake of simplicity, it can only be scrolled with a mouse.

@github-actions github-actions bot added the S-Needs-Triage This issue needs to be labelled label Dec 11, 2021
@mockersf mockersf added A-UI Graphical user interfaces, styles, layouts, and widgets C-Feature A new feature, making something new possible and removed S-Needs-Triage This issue needs to be labelled labels Dec 11, 2021
@cart cart added this to the Bevy 0.6 milestone Dec 11, 2021
@cart
Copy link
Member

cart commented Dec 18, 2021

Looks good to me. No comments!

@cart
Copy link
Member

cart commented Dec 18, 2021

bors r+

1 similar comment
@cart
Copy link
Member

cart commented Dec 19, 2021

bors r+

bors bot pushed a commit that referenced this pull request Dec 19, 2021
# Objective

This PR implements the `overflow` style property in `bevy_ui`. When set to `Overflow::Hidden`, the children of that node are clipped so that overflowing parts are not rendered. This is an important building block for UI widgets.

## Solution

Clipping is done on the CPU so that it does not break batching.

The clip regions update was implemented as a separate system for clarity, but it could be merged with the other UI systems to avoid doing an additional tree traversal. (I don't think it's important until we fix the layout performance issues though).

A scrolling list was added to the `ui_pipelined` example to showcase `Overflow::Hidden`. For the sake of simplicity, it can only be scrolled with a mouse.
@bors bors bot changed the title Implement the Overflow::Hidden style property for UI [Merged by Bors] - Implement the Overflow::Hidden style property for UI Dec 19, 2021
@bors bors bot closed this Dec 19, 2021
@Davier Davier deleted the ui_clipping branch December 19, 2021 06:39
bors bot pushed a commit that referenced this pull request Dec 27, 2021
I forgot to register the new `Overflow` type in #3296.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-UI Graphical user interfaces, styles, layouts, and widgets C-Feature A new feature, making something new possible
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants