-
I shaped the following input using the
and got the following as output. The newline character
900,0 (0, 0) Info {
glyph: RawGlyph {
unicodes: [
'H',
],
glyph_index: 30,
liga_component_pos: 0,
glyph_origin: Char(
'H',
),
small_caps: false,
multi_subst_dup: false,
is_vert_alt: false,
fake_bold: false,
fake_italic: false,
variation: Some(
VS15,
),
extra_data: (),
},
kerning: -25,
placement: None,
is_mark: false,
}
573,0 (0, 0) Info {
glyph: RawGlyph {
unicodes: [
'e',
],
glyph_index: 17,
liga_component_pos: 0,
glyph_origin: Char(
'e',
),
small_caps: false,
multi_subst_dup: false,
is_vert_alt: false,
fake_bold: false,
fake_italic: false,
variation: Some(
VS15,
),
extra_data: (),
},
kerning: 0,
placement: None,
is_mark: false,
}
325,0 (0, 0) Info {
glyph: RawGlyph {
unicodes: [
'l',
],
glyph_index: 7,
liga_component_pos: 0,
glyph_origin: Char(
'l',
),
small_caps: false,
multi_subst_dup: false,
is_vert_alt: false,
fake_bold: false,
fake_italic: false,
variation: Some(
VS15,
),
extra_data: (),
},
kerning: 0,
placement: None,
is_mark: false,
}
325,0 (0, 0) Info {
glyph: RawGlyph {
unicodes: [
'l',
],
glyph_index: 7,
liga_component_pos: 0,
glyph_origin: Char(
'l',
),
small_caps: false,
multi_subst_dup: false,
is_vert_alt: false,
fake_bold: false,
fake_italic: false,
variation: Some(
VS15,
),
extra_data: (),
},
kerning: 0,
placement: None,
is_mark: false,
}
654,0 (0, 0) Info {
glyph: RawGlyph {
unicodes: [
'o',
],
glyph_index: 10,
liga_component_pos: 0,
glyph_origin: Char(
'o',
),
small_caps: false,
multi_subst_dup: false,
is_vert_alt: false,
fake_bold: false,
fake_italic: false,
variation: Some(
VS15,
),
extra_data: (),
},
kerning: 0,
placement: None,
is_mark: false,
}
273,0 (0, 0) Info {
glyph: RawGlyph {
unicodes: [
',',
],
glyph_index: 284,
liga_component_pos: 0,
glyph_origin: Char(
',',
),
small_caps: false,
multi_subst_dup: false,
is_vert_alt: false,
fake_bold: false,
fake_italic: false,
variation: Some(
VS15,
),
extra_data: (),
},
kerning: 0,
placement: None,
is_mark: false,
}
756,0 (0, 0) Info {
glyph: RawGlyph {
unicodes: [
'\n',
],
glyph_index: 0,
liga_component_pos: 0,
glyph_origin: Char(
'\n',
),
small_caps: false,
multi_subst_dup: false,
is_vert_alt: false,
fake_bold: false,
fake_italic: false,
variation: Some(
VS15,
),
extra_data: (),
},
kerning: 0,
placement: None,
is_mark: false,
}
835,0 (0, 0) Info {
glyph: RawGlyph {
unicodes: [
'w',
],
glyph_index: 24,
liga_component_pos: 0,
glyph_origin: Char(
'w',
),
small_caps: false,
multi_subst_dup: false,
is_vert_alt: false,
fake_bold: false,
fake_italic: false,
variation: Some(
VS15,
),
extra_data: (),
},
kerning: -17,
placement: None,
is_mark: false,
}
654,0 (0, 0) Info {
glyph: RawGlyph {
unicodes: [
'o',
],
glyph_index: 10,
liga_component_pos: 0,
glyph_origin: Char(
'o',
),
small_caps: false,
multi_subst_dup: false,
is_vert_alt: false,
fake_bold: false,
fake_italic: false,
variation: Some(
VS15,
),
extra_data: (),
},
kerning: 0,
placement: None,
is_mark: false,
}
477,0 (0, 0) Info {
glyph: RawGlyph {
unicodes: [
'r',
],
glyph_index: 8,
liga_component_pos: 0,
glyph_origin: Char(
'r',
),
small_caps: false,
multi_subst_dup: false,
is_vert_alt: false,
fake_bold: false,
fake_italic: false,
variation: Some(
VS15,
),
extra_data: (),
},
kerning: 0,
placement: None,
is_mark: false,
}
325,0 (0, 0) Info {
glyph: RawGlyph {
unicodes: [
'l',
],
glyph_index: 7,
liga_component_pos: 0,
glyph_origin: Char(
'l',
),
small_caps: false,
multi_subst_dup: false,
is_vert_alt: false,
fake_bold: false,
fake_italic: false,
variation: Some(
VS15,
),
extra_data: (),
},
kerning: 0,
placement: None,
is_mark: false,
}
675,0 (0, 0) Info {
glyph: RawGlyph {
unicodes: [
'd',
],
glyph_index: 12,
liga_component_pos: 0,
glyph_origin: Char(
'd',
),
small_caps: false,
multi_subst_dup: false,
is_vert_alt: false,
fake_bold: false,
fake_italic: false,
variation: Some(
VS15,
),
extra_data: (),
},
kerning: 0,
placement: None,
is_mark: false,
}
308,0 (0, 0) Info {
glyph: RawGlyph {
unicodes: [
'!',
],
glyph_index: 324,
liga_component_pos: 0,
glyph_origin: Char(
'!',
),
small_caps: false,
multi_subst_dup: false,
is_vert_alt: false,
fake_bold: false,
fake_italic: false,
variation: Some(
VS15,
),
extra_data: (),
},
kerning: 0,
placement: None,
is_mark: false,
} |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
Yes that is not the case. Line layout is a process separate from shaping. It needs to consider word-wrapping, hyphenation, etc. In a traditional open-source text rendering stack Fontconfig does font matching, Harfbuzz does the shaping, Pango does layout, freetype does rasterisation. Allsorts takes the place of Harfbuzz in this flow, so you still need something to do layout. |
Beta Was this translation helpful? Give feedback.
Yes that is not the case. Line layout is a process separate from shaping. It needs to consider word-wrapping, hyphenation, etc. In a traditional open-source text rendering stack Fontconfig does font matching, Harfbuzz does the shaping, Pango does layout, freetype does rasterisation. Allsorts takes the place of Harfbuzz in this flow, so you still need something to do layout.