diff options
| author | Laurenz <laurmaedje@gmail.com> | 2021-05-13 11:26:51 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2021-05-13 11:26:51 +0200 |
| commit | 33733fd1efda760d65ff9124b6d143a147edbd11 (patch) | |
| tree | fd378b66417c03179ba0230cbe74649069940886 /src | |
| parent | 3e03667c37b86f0dfe9111c09e3bc2ea0ae70291 (diff) | |
Expose units_per_em and raw face id
Diffstat (limited to 'src')
| -rw-r--r-- | src/env/mod.rs | 13 | ||||
| -rw-r--r-- | src/font.rs | 15 |
2 files changed, 23 insertions, 5 deletions
diff --git a/src/env/mod.rs b/src/env/mod.rs index af3872dd..c8ba46ec 100644 --- a/src/env/mod.rs +++ b/src/env/mod.rs @@ -190,6 +190,19 @@ pub struct FaceId(u32); impl FaceId { /// A blank initialization value. pub const MAX: Self = Self(u32::MAX); + + /// Create a face id from the raw underlying value. + /// + /// This should only be called with values returned by + /// [`into_raw`](Self::into_raw). + pub fn from_raw(v: u32) -> Self { + Self(v) + } + + /// Convert into the raw underlying value. + pub fn into_raw(self) -> u32 { + self.0 + } } /// A unique identifier for a loaded resource. diff --git a/src/font.rs b/src/font.rs index 5a83f6c4..01434d0a 100644 --- a/src/font.rs +++ b/src/font.rs @@ -69,6 +69,16 @@ impl Face { &self.ttf } + /// Get the number of units per em. + pub fn units_per_em(&self) -> f64 { + self.units_per_em + } + + /// Convert from font units to an em length. + pub fn to_em(&self, units: impl Into<f64>) -> Em { + Em::from_units(units, self.units_per_em) + } + /// Look up a vertical metric. pub fn vertical_metric(&self, metric: VerticalFontMetric) -> Em { match metric { @@ -79,11 +89,6 @@ impl Face { VerticalFontMetric::Descender => self.descender, } } - - /// Convert from font units to an em length. - pub fn to_em(&self, units: impl Into<f64>) -> Em { - Em::from_units(units, self.units_per_em) - } } /// Identifies a vertical metric of a font. |
