macroquad
macroquad copied to clipboard
Regression in 0.3.14: UI layouts incorrectly when parent is smaller than child
Regressed when moving from 0.3.13 to 0.3.14. When an UI element (here a Group is smaller or equal to its parent size, it moves down by its height.
Minimum working example:
fn conf() -> Conf {
Conf {
window_width: 800,
..Default::default()
}
}
#[macroquad::main(conf)]
async fn main() {
loop {
clear_background(GREEN);
root_ui().group(hash!(), vec2(800.0, 200.0), |ui| {
ui.label(vec2(20.0, 30.0), "Hello world");
});
next_frame().await
}
}
| Version | Larger | Smaller |
|---|---|---|
| 0.3.13 | ![]() |
![]() |
| 0.3.14 - 0.3.25, master #50c8feb | ![]() |
![]() |
Discovered in Noxime/steamworks-rs#113
This appears to have regressed in ecbb72c6e6782f0be4d9b13b47eeb9168ff5fed2, and still affects 0.4.x.
use macroquad::prelude::*;
use macroquad::ui::{hash, root_ui};
fn conf() -> Conf {
Conf {
window_width: 800,
..Default::default()
}
}
#[macroquad::main(conf)]
async fn main() {
loop {
clear_background(GREEN);
root_ui().group(hash!(), vec2(800.0, 200.0), |ui| {
ui.label(vec2(20.0, 30.0), "Hello world");
});
next_frame().await
}
}
[package]
name = "macroquad-mwe"
version = "0.1.0"
edition = "2021"
[dependencies.macroquad]
git = "https://github.com/not-fl3/macroquad"
# last good commit
#rev = "1dcc721dfec8817584b191e7a0c5942c6b6fe029"
# first regressed commit
rev = "ecbb72c6e6782f0be4d9b13b47eeb9168ff5fed2"
[dependencies]
# newer versions don't work on Rust 1.60.0
libc = "=0.2.100"
bumpalo = "=3.4.0"
Tested with Rust version 1.60.0 (newer versions panic on UB in old versions of dependencies).



