Align text in iced_wgpu on a case-by-case basis

This commit is contained in:
Héctor Ramón Jiménez 2020-04-10 01:34:22 +02:00
parent 19f6a5e2fd
commit b549b509c9
5 changed files with 49 additions and 23 deletions

View file

@ -152,31 +152,14 @@ impl Renderer {
horizontal_alignment,
vertical_alignment,
} => {
let x = match horizontal_alignment {
iced_native::HorizontalAlignment::Left => bounds.x,
iced_native::HorizontalAlignment::Center => {
bounds.x + bounds.width / 2.0
}
iced_native::HorizontalAlignment::Right => {
bounds.x + bounds.width
}
};
let y = match vertical_alignment {
iced_native::VerticalAlignment::Top => bounds.y,
iced_native::VerticalAlignment::Center => {
bounds.y + bounds.height / 2.0
}
iced_native::VerticalAlignment::Bottom => {
bounds.y + bounds.height
}
};
let layer = layers.last_mut().unwrap();
layer.text.push(wgpu_glyph::Section {
text: &content,
screen_position: (x + translation.x, y + translation.y),
screen_position: (
bounds.x + translation.x,
bounds.y + translation.y,
),
bounds: (bounds.width, bounds.height),
scale: wgpu_glyph::Scale { x: *size, y: *size },
color: color.into_linear(),