1
0
mirror of https://github.com/emilk/egui.git synced 2026-09-02 14:50:03 -04:00

Experiment with using different height when centering

This commit is contained in:
Emil Ernerfeldt
2024-09-19 08:47:40 +02:00
parent 1398ff5678
commit 964d730558
2 changed files with 8 additions and 2 deletions

View File

@@ -172,6 +172,7 @@ fn layout_section(
chr, chr,
pos: pos2(paragraph.cursor_x, f32::NAN), pos: pos2(paragraph.cursor_x, f32::NAN),
size: vec2(glyph_info.advance_width, line_height), size: vec2(glyph_info.advance_width, line_height),
font_impl_height: font_impl.map_or(0.0, |f| f.row_height()),
font_impl_ascent: font_impl.map_or(0.0, |f| f.ascent()), font_impl_ascent: font_impl.map_or(0.0, |f| f.ascent()),
font_ascent: font.ascent(), font_ascent: font.ascent(),
uv_rect: glyph_info.uv_rect, uv_rect: glyph_info.uv_rect,
@@ -393,6 +394,7 @@ fn replace_last_glyph_with_overflow_character(
chr: overflow_character, chr: overflow_character,
pos: pos2(x, f32::NAN), pos: pos2(x, f32::NAN),
size: vec2(replacement_glyph_info.advance_width, line_height), size: vec2(replacement_glyph_info.advance_width, line_height),
font_impl_height: font_impl.map_or(0.0, |f| f.row_height()),
font_impl_ascent: font_impl.map_or(0.0, |f| f.ascent()), font_impl_ascent: font_impl.map_or(0.0, |f| f.ascent()),
font_ascent: font.ascent(), font_ascent: font.ascent(),
uv_rect: replacement_glyph_info.uv_rect, uv_rect: replacement_glyph_info.uv_rect,
@@ -412,6 +414,7 @@ fn replace_last_glyph_with_overflow_character(
chr: overflow_character, chr: overflow_character,
pos: pos2(x, f32::NAN), pos: pos2(x, f32::NAN),
size: vec2(replacement_glyph_info.advance_width, line_height), size: vec2(replacement_glyph_info.advance_width, line_height),
font_impl_height: font_impl.map_or(0.0, |f| f.row_height()),
font_impl_ascent: font_impl.map_or(0.0, |f| f.ascent()), font_impl_ascent: font_impl.map_or(0.0, |f| f.ascent()),
font_ascent: font.ascent(), font_ascent: font.ascent(),
uv_rect: replacement_glyph_info.uv_rect, uv_rect: replacement_glyph_info.uv_rect,
@@ -595,13 +598,13 @@ fn galley_from_rows(
} }
row_height = point_scale.round_to_pixel(row_height); row_height = point_scale.round_to_pixel(row_height);
// Now positions each glyph: // Now position each glyph:
for glyph in &mut row.glyphs { for glyph in &mut row.glyphs {
let format = &job.sections[glyph.section_index as usize].format; let format = &job.sections[glyph.section_index as usize].format;
glyph.pos.y = cursor_y glyph.pos.y = cursor_y
+ glyph.font_impl_ascent + glyph.font_impl_ascent
+ format.valign.to_factor() * (row_height - glyph.size.y); + format.valign.to_factor() * (row_height - glyph.font_impl_height);
glyph.pos.y = point_scale.round_to_pixel(glyph.pos.y); glyph.pos.y = point_scale.round_to_pixel(glyph.pos.y);
} }

View File

@@ -611,6 +611,9 @@ pub struct Glyph {
/// `ascent` value from the `Font` /// `ascent` value from the `Font`
pub font_ascent: f32, pub font_ascent: f32,
/// `row_height` value from the `FontImpl`
pub font_impl_height: f32,
/// `ascent` value from the `FontImpl` /// `ascent` value from the `FontImpl`
pub font_impl_ascent: f32, pub font_impl_ascent: f32,