Files
another-boids-in-rust/vendor/fontdb/examples/find-system-font.rs

44 lines
1.3 KiB
Rust

fn main() {
std::env::set_var("RUST_LOG", "fontdb=trace");
env_logger::init();
let mut db = fontdb::Database::new();
let now = std::time::Instant::now();
db.load_system_fonts();
db.set_serif_family("Times New Roman");
db.set_sans_serif_family("Arial");
db.set_cursive_family("Comic Sans MS");
db.set_fantasy_family("Impact");
db.set_monospace_family("Courier New");
println!(
"Loaded {} font faces in {}ms.",
db.len(),
now.elapsed().as_millis()
);
const FAMILY_NAME: &str = "Times New Roman";
let query = fontdb::Query {
families: &[fontdb::Family::Name(FAMILY_NAME), fontdb::Family::SansSerif],
weight: fontdb::Weight::BOLD,
..fontdb::Query::default()
};
let now = std::time::Instant::now();
match db.query(&query) {
Some(id) => {
let (src, index) = db.face_source(id).unwrap();
if let fontdb::Source::File(ref path) = &src {
println!(
"Font '{}':{} found in {}ms.",
path.display(),
index,
now.elapsed().as_micros() as f64 / 1000.0
);
}
}
None => {
println!("Error: '{}' not found.", FAMILY_NAME);
}
}
}