Don't load fonts in doctests (#1711)
I was hoping this would speed up the doctests, but it doesn't really
This commit is contained in:
parent
317436c057
commit
8c7c4c764b
2 changed files with 67 additions and 51 deletions
|
@ -527,6 +527,7 @@ pub enum WidgetType {
|
||||||
/// For use in tests; especially doctests.
|
/// For use in tests; especially doctests.
|
||||||
pub fn __run_test_ctx(mut run_ui: impl FnMut(&Context)) {
|
pub fn __run_test_ctx(mut run_ui: impl FnMut(&Context)) {
|
||||||
let ctx = Context::default();
|
let ctx = Context::default();
|
||||||
|
ctx.set_fonts(FontDefinitions::empty()); // prevent fonts from being loaded (save CPU time)
|
||||||
let _ = ctx.run(Default::default(), |ctx| {
|
let _ = ctx.run(Default::default(), |ctx| {
|
||||||
run_ui(ctx);
|
run_ui(ctx);
|
||||||
});
|
});
|
||||||
|
@ -535,6 +536,7 @@ pub fn __run_test_ctx(mut run_ui: impl FnMut(&Context)) {
|
||||||
/// For use in tests; especially doctests.
|
/// For use in tests; especially doctests.
|
||||||
pub fn __run_test_ui(mut add_contents: impl FnMut(&mut Ui)) {
|
pub fn __run_test_ui(mut add_contents: impl FnMut(&mut Ui)) {
|
||||||
let ctx = Context::default();
|
let ctx = Context::default();
|
||||||
|
ctx.set_fonts(FontDefinitions::empty()); // prevent fonts from being loaded (save CPU time)
|
||||||
let _ = ctx.run(Default::default(), |ctx| {
|
let _ = ctx.run(Default::default(), |ctx| {
|
||||||
crate::CentralPanel::default().show(ctx, |ui| {
|
crate::CentralPanel::default().show(ctx, |ui| {
|
||||||
add_contents(ui);
|
add_contents(ui);
|
||||||
|
|
|
@ -244,65 +244,65 @@ pub struct FontDefinitions {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for FontDefinitions {
|
impl Default for FontDefinitions {
|
||||||
|
/// Specifies the default fonts if the feature `default_fonts` is enabled,
|
||||||
|
/// otherwise this is the same as [`Self::empty`].
|
||||||
|
#[cfg(not(feature = "default_fonts"))]
|
||||||
|
fn default() -> Self {
|
||||||
|
Self::empty()
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Specifies the default fonts if the feature `default_fonts` is enabled,
|
||||||
|
/// otherwise this is the same as [`Self::empty`].
|
||||||
|
#[cfg(feature = "default_fonts")]
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
#[allow(unused)]
|
|
||||||
let mut font_data: BTreeMap<String, FontData> = BTreeMap::new();
|
let mut font_data: BTreeMap<String, FontData> = BTreeMap::new();
|
||||||
|
|
||||||
let mut families = BTreeMap::new();
|
let mut families = BTreeMap::new();
|
||||||
|
|
||||||
#[cfg(feature = "default_fonts")]
|
font_data.insert(
|
||||||
{
|
"Hack".to_owned(),
|
||||||
font_data.insert(
|
FontData::from_static(include_bytes!("../../fonts/Hack-Regular.ttf")),
|
||||||
|
);
|
||||||
|
font_data.insert(
|
||||||
|
"Ubuntu-Light".to_owned(),
|
||||||
|
FontData::from_static(include_bytes!("../../fonts/Ubuntu-Light.ttf")),
|
||||||
|
);
|
||||||
|
|
||||||
|
// Some good looking emojis. Use as first priority:
|
||||||
|
font_data.insert(
|
||||||
|
"NotoEmoji-Regular".to_owned(),
|
||||||
|
FontData::from_static(include_bytes!("../../fonts/NotoEmoji-Regular.ttf")),
|
||||||
|
);
|
||||||
|
|
||||||
|
// Bigger emojis, and more. <http://jslegers.github.io/emoji-icon-font/>:
|
||||||
|
font_data.insert(
|
||||||
|
"emoji-icon-font".to_owned(),
|
||||||
|
FontData::from_static(include_bytes!("../../fonts/emoji-icon-font.ttf")).tweak(
|
||||||
|
FontTweak {
|
||||||
|
scale: 0.8, // make it smaller
|
||||||
|
y_offset_factor: 0.07, // move it down slightly
|
||||||
|
y_offset: 0.0,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
families.insert(
|
||||||
|
FontFamily::Monospace,
|
||||||
|
vec![
|
||||||
"Hack".to_owned(),
|
"Hack".to_owned(),
|
||||||
FontData::from_static(include_bytes!("../../fonts/Hack-Regular.ttf")),
|
"Ubuntu-Light".to_owned(), // fallback for √ etc
|
||||||
);
|
|
||||||
font_data.insert(
|
|
||||||
"Ubuntu-Light".to_owned(),
|
|
||||||
FontData::from_static(include_bytes!("../../fonts/Ubuntu-Light.ttf")),
|
|
||||||
);
|
|
||||||
|
|
||||||
// Some good looking emojis. Use as first priority:
|
|
||||||
font_data.insert(
|
|
||||||
"NotoEmoji-Regular".to_owned(),
|
"NotoEmoji-Regular".to_owned(),
|
||||||
FontData::from_static(include_bytes!("../../fonts/NotoEmoji-Regular.ttf")),
|
|
||||||
);
|
|
||||||
|
|
||||||
// Bigger emojis, and more. <http://jslegers.github.io/emoji-icon-font/>:
|
|
||||||
font_data.insert(
|
|
||||||
"emoji-icon-font".to_owned(),
|
"emoji-icon-font".to_owned(),
|
||||||
FontData::from_static(include_bytes!("../../fonts/emoji-icon-font.ttf")).tweak(
|
],
|
||||||
FontTweak {
|
);
|
||||||
scale: 0.8, // make it smaller
|
families.insert(
|
||||||
y_offset_factor: 0.07, // move it down slightly
|
FontFamily::Proportional,
|
||||||
y_offset: 0.0,
|
vec![
|
||||||
},
|
"Ubuntu-Light".to_owned(),
|
||||||
),
|
"NotoEmoji-Regular".to_owned(),
|
||||||
);
|
"emoji-icon-font".to_owned(),
|
||||||
|
],
|
||||||
families.insert(
|
);
|
||||||
FontFamily::Monospace,
|
|
||||||
vec![
|
|
||||||
"Hack".to_owned(),
|
|
||||||
"Ubuntu-Light".to_owned(), // fallback for √ etc
|
|
||||||
"NotoEmoji-Regular".to_owned(),
|
|
||||||
"emoji-icon-font".to_owned(),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
families.insert(
|
|
||||||
FontFamily::Proportional,
|
|
||||||
vec![
|
|
||||||
"Ubuntu-Light".to_owned(),
|
|
||||||
"NotoEmoji-Regular".to_owned(),
|
|
||||||
"emoji-icon-font".to_owned(),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(not(feature = "default_fonts"))]
|
|
||||||
{
|
|
||||||
families.insert(FontFamily::Monospace, vec![]);
|
|
||||||
families.insert(FontFamily::Proportional, vec![]);
|
|
||||||
}
|
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
font_data,
|
font_data,
|
||||||
|
@ -311,6 +311,20 @@ impl Default for FontDefinitions {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl FontDefinitions {
|
||||||
|
/// No fonts.
|
||||||
|
pub fn empty() -> Self {
|
||||||
|
let mut families = BTreeMap::new();
|
||||||
|
families.insert(FontFamily::Monospace, vec![]);
|
||||||
|
families.insert(FontFamily::Proportional, vec![]);
|
||||||
|
|
||||||
|
Self {
|
||||||
|
font_data: Default::default(),
|
||||||
|
families,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
/// The collection of fonts used by `epaint`.
|
/// The collection of fonts used by `epaint`.
|
||||||
|
|
Loading…
Reference in a new issue