bevyengine / bevyengine/bevy

Split UiPlugin into UiRenderingPlugin and UiPlugin

Open
#5,545 2 comments 3 reactions 0 assignees View on GitHub
A-Rendering A-UI C-Code-Quality C-Usability
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 22h
Merged PRs (30d)
161

Description

## What problem does this solve or what need does it fill?

Headless testing of UI is very important for the reliability of real world Bevy apps.
However, headless construction of UIs in Bevy is currently very painful, as `bevy_ui`'s only plugin is fully interwoven with rendering code.

## What solution would you like?

1. Split rendering and non-rendering code into two separate plugins for `bevy_ui`.
2. Add an example demonstrating headless UI and run it in CI to ensure no hidden runtime panics are introduced.

## What alternative(s) have you considered?

Split the crates entirely. This might improve compile times, but it's not clear if it would be useful to contributors or users?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.