mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-01 06:11:16 +00:00
Remove unused rust module
This file is not needed anymore
Amends commit 5df6c99f4f
This commit is contained in:
parent
16a7585d07
commit
3d3606a8f1
1 changed files with 0 additions and 114 deletions
|
@ -1,114 +0,0 @@
|
|||
/* LICENSE BEGIN
|
||||
This file is part of the SixtyFPS Project -- https://sixtyfps.io
|
||||
Copyright (c) 2020 Olivier Goffart <olivier.goffart@sixtyfps.io>
|
||||
Copyright (c) 2020 Simon Hausmann <simon.hausmann@sixtyfps.io>
|
||||
|
||||
SPDX-License-Identifier: GPL-3.0-only
|
||||
This file is also available under commercial licensing terms.
|
||||
Please contact info@sixtyfps.io for more information.
|
||||
LICENSE END */
|
||||
use super::CanvasRc;
|
||||
use sixtyfps_corelib::graphics::FontRequest;
|
||||
use std::cell::RefCell;
|
||||
|
||||
struct LocalFont {
|
||||
family: String,
|
||||
weight: u16,
|
||||
data: &'static [u8],
|
||||
}
|
||||
|
||||
thread_local! {
|
||||
// Flat list of "all" fonts. This should be switch back to using fontdb once the new
|
||||
// cargo dependency solver is stable and we can depend on fontdb without fs/memmap2
|
||||
// for the wasm build.
|
||||
static FONTS: RefCell<Vec<LocalFont>> = RefCell::new(Vec::new())
|
||||
}
|
||||
|
||||
fn err_str(message: &'static str) -> Box<dyn std::error::Error> {
|
||||
Box::new(std::io::Error::new(std::io::ErrorKind::Other, message))
|
||||
}
|
||||
|
||||
fn load_font_from_memory(data: &'static [u8]) -> Result<(), Box<dyn std::error::Error>> {
|
||||
for index in 0..ttf_parser::fonts_in_collection(data).unwrap_or(1) {
|
||||
let face = ttf_parser::Face::from_slice(data, index).map_err(|err| Box::new(err))?;
|
||||
|
||||
let family = face
|
||||
.names()
|
||||
.find(|name| name.name_id() == ttf_parser::name_id::FAMILY && name.is_unicode())
|
||||
.ok_or(err_str("Cannot locate family name id in font"))?;
|
||||
|
||||
let family = family.to_string().ok_or(err_str("Empty family name"))?;
|
||||
|
||||
let weight = face.weight().to_number();
|
||||
|
||||
FONTS.with(|fonts| fonts.borrow_mut().push(LocalFont { family, weight, data }));
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn register_application_font_from_memory(
|
||||
data: &'static [u8],
|
||||
) -> Result<(), Box<dyn std::error::Error>> {
|
||||
maybe_init_fonts();
|
||||
load_font_from_memory(data)
|
||||
}
|
||||
|
||||
fn maybe_init_fonts() {
|
||||
if FONTS.with(|fonts| fonts.borrow().is_empty()) {
|
||||
load_font_from_memory(include_bytes!("fonts/DejaVuSans.ttf")).unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
fn find_family_match<'a>(
|
||||
fonts: &'a Vec<LocalFont>,
|
||||
requested_family_name: &'a str,
|
||||
) -> impl Iterator<Item = &'a LocalFont> + Clone + 'a {
|
||||
fonts.iter().flat_map(move |local_font| {
|
||||
if requested_family_name == local_font.family {
|
||||
Some(local_font)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
pub(crate) fn try_load_app_font(
|
||||
canvas: &CanvasRc,
|
||||
request: &FontRequest,
|
||||
) -> Option<femtovg::FontId> {
|
||||
maybe_init_fonts();
|
||||
|
||||
let requested_family = if request.family.is_empty() { "Roboto" } else { &request.family };
|
||||
let requested_weight = request.weight.unwrap();
|
||||
|
||||
FONTS.with(|fonts| {
|
||||
let fonts = fonts.borrow();
|
||||
|
||||
let family_matches = find_family_match(&*fonts, requested_family);
|
||||
|
||||
let font_match = family_matches
|
||||
.clone()
|
||||
.filter(|family_match| requested_weight == family_match.weight.into())
|
||||
.chain(family_matches)
|
||||
.next()
|
||||
.unwrap_or_else(|| fonts.first().unwrap());
|
||||
|
||||
canvas.borrow_mut().add_font_mem(font_match.data).ok()
|
||||
})
|
||||
}
|
||||
|
||||
pub(crate) fn load_system_font(_canvas: &CanvasRc, _request: &FontRequest) -> femtovg::FontId {
|
||||
unreachable!()
|
||||
}
|
||||
|
||||
pub(crate) fn font_fallbacks_for_request(_request: &FontRequest) -> Vec<FontRequest> {
|
||||
["DejaVu Sans"]
|
||||
.iter()
|
||||
.map(|family_name| FontRequest {
|
||||
family: (*family_name).into(),
|
||||
weight: _request.weight,
|
||||
pixel_size: _request.pixel_size,
|
||||
})
|
||||
.collect()
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue