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

DebugUiPlugin doesn't respect scale factor properly #16666

Closed
JeanMertz opened this issue Dec 5, 2024 · 2 comments · Fixed by #16693 · May be fixed by #16669
Closed

DebugUiPlugin doesn't respect scale factor properly #16666

JeanMertz opened this issue Dec 5, 2024 · 2 comments · Fixed by #16693 · May be fixed by #16669
Labels
A-UI Graphical user interfaces, styles, layouts, and widgets C-Bug An unexpected or incorrect behavior D-Straightforward Simple bug fixes and API improvements, docs, test and examples S-Ready-For-Implementation This issue is ready for an implementation PR. Go for it! X-Uncontroversial This work is generally agreed upon

Comments

@JeanMertz
Copy link
Contributor

Bevy version

0.15

What you did

Enable DebugUiPlugin's outline drawing.

What went wrong

Outline is twice the size of the actual nodes.

Additional information

This seems to be introduced by #16375, which did not update the debug implementation here:

fn new(trans: &GlobalTransform, node: &ComputedNode, scale: f32) -> Self {
let mut this = Self {
pos: trans.translation().xy() * scale,
size: node.size() * scale,
};
this.pos -= this.size / 2.;
this
}
}

@JeanMertz JeanMertz added C-Bug An unexpected or incorrect behavior S-Needs-Triage This issue needs to be labelled labels Dec 5, 2024
@alice-i-cecile
Copy link
Member

But it's not applying the inverse scale factor introduced in that PR.

As noted on Discord.

@alice-i-cecile alice-i-cecile added A-UI Graphical user interfaces, styles, layouts, and widgets S-Ready-For-Implementation This issue is ready for an implementation PR. Go for it! D-Straightforward Simple bug fixes and API improvements, docs, test and examples and removed S-Needs-Triage This issue needs to be labelled labels Dec 5, 2024
@alice-i-cecile alice-i-cecile changed the title DebugUiPlugin draws gizmos twice the expected size DebugUiPlugin doesn't respect scale factor properly Dec 5, 2024
@alice-i-cecile alice-i-cecile added the X-Uncontroversial This work is generally agreed upon label Dec 5, 2024
@ickshonpe
Copy link
Contributor

Yeah I just completely forgot this plugin existed 😅

github-merge-queue bot pushed a commit that referenced this issue Dec 11, 2024
# Objective

Draw the UI debug overlay using the UI renderer.

Significantly simpler and easier to use than
`bevy_dev_tools::ui_debug_overlay` which uses `bevy_gizmos`.
* Supports multiple windows and UI rendered to texture.
* Draws rounded debug rects for rounded UI nodes. 

Fixes #16666

## Solution

Removed the `ui_debug_overlay` module from `bevy_dev_tools`.

Added a `bevy_ui_debug` feature gate.

Draw the UI debug overlay using the UI renderer.
Adds a new module `bevy_ui::render::debug_overlay`. 

The debug overlay extraction function queries for the existing UI layout
and then adds a border around each UI node with `u32::MAX / 2` added to
each stack index so it's drawn on top.

There is a `UiDebugOptions` resource that can be used to enable or
disable the debug overlay and set the line width.

## Testing

The `testbed_ui` example has been changed to use the new debug overlay:

```
cargo run --example testbed_ui --features bevy_ui_debug
```

Press Space to toggle the debug overlay on and off.

---

## Showcase

<img width="961" alt="testbed-ui-new-debug"
src="https://github.com/user-attachments/assets/e9523d18-39ae-46a8-adbe-7d3f3ab8e951">

## Migration Guide

The `ui_debug_overlay` module has been removed from `bevy_dev_tools`.
There is a new debug overlay implemented using the `bevy_ui` renderer.
To use it, enable the `bevy_ui_debug` feature and set the `enable` field
of the `UiDebugOptions` resource to `true`.
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-Bug An unexpected or incorrect behavior D-Straightforward Simple bug fixes and API improvements, docs, test and examples S-Ready-For-Implementation This issue is ready for an implementation PR. Go for it! X-Uncontroversial This work is generally agreed upon
Projects
None yet
3 participants