summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2021-05-13 11:26:51 +0200
committerLaurenz <laurmaedje@gmail.com>2021-05-13 11:26:51 +0200
commit33733fd1efda760d65ff9124b6d143a147edbd11 (patch)
treefd378b66417c03179ba0230cbe74649069940886 /src
parent3e03667c37b86f0dfe9111c09e3bc2ea0ae70291 (diff)
Expose units_per_em and raw face id
Diffstat (limited to 'src')
-rw-r--r--src/env/mod.rs13
-rw-r--r--src/font.rs15
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.