macroquad icon indicating copy to clipboard operation
macroquad copied to clipboard

Regression in 0.3.14: UI layouts incorrectly when parent is smaller than child

Open Noxime opened this issue 3 years ago • 1 comments

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 image < image >
0.3.14 - 0.3.25, master #50c8feb image image

Discovered in Noxime/steamworks-rs#113

Noxime avatar Dec 14 '22 00:12 Noxime

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).

zachs18 avatar Apr 06 '25 06:04 zachs18