Feature gate `font-kit` behind `"default_system_font"` feature.

This commit is contained in:
Azriel Hoh 2020-05-30 19:23:16 +12:00
parent 05750bf186
commit ae9521e500
5 changed files with 31 additions and 15 deletions

View File

@ -12,7 +12,7 @@ keywords = ["gui", "ui", "graphics", "interface", "widgets"]
categories = ["gui"]
[features]
default = ["wgpu"]
default = ["wgpu", "default_system_font"]
# Enables the `iced_wgpu` renderer
wgpu = ["iced_wgpu"]
# Enables the `Image` widget
@ -21,10 +21,14 @@ image = ["iced_wgpu/image"]
svg = ["iced_wgpu/svg"]
# Enables the `Canvas` widget
canvas = ["iced_wgpu/canvas"]
# Enables using system fonts.
default_system_font = ["iced_wgpu/default_system_font"]
# Enables the `iced_glow` renderer. Overrides `iced_wgpu`
glow = ["iced_glow", "iced_glutin"]
# Enables the `Canvas` widget for `iced_glow`
glow_canvas = ["iced_glow/canvas"]
# Enables using system fonts for `iced_glow`.
glow_default_system_font = ["iced_glow/default_system_font"]
# Enables a debug view in native platforms (press F12)
debug = ["iced_winit/debug"]
# Enables `tokio` as the `executor::Default` on native platforms

View File

@ -9,6 +9,7 @@ repository = "https://github.com/hecrj/iced"
[features]
canvas = ["iced_graphics/canvas"]
default_system_font = ["iced_graphics/font-source"]
# Not supported yet!
image = []
svg = []
@ -29,7 +30,7 @@ path = "../native"
[dependencies.iced_graphics]
version = "0.1"
path = "../graphics"
features = ["font-source", "font-fallback", "font-icons", "opengl"]
features = ["font-fallback", "font-icons", "opengl"]
[package.metadata.docs.rs]
rustdoc-args = ["--cfg", "docsrs"]

View File

@ -12,15 +12,20 @@ pub struct Pipeline {
impl Pipeline {
pub fn new(gl: &glow::Context, default_font: Option<&[u8]>) -> Self {
let default_font = default_font.map(|slice| slice.to_vec());
// TODO: Font customization
let font_source = font::Source::new();
#[cfg(feature = "default_system_font")]
let default_font = {
default_font.or_else(|| {
font::Source::new()
.load(&[font::Family::SansSerif, font::Family::Serif])
.ok()
})
};
let default_font =
default_font.map(|slice| slice.to_vec()).unwrap_or_else(|| {
font_source
.load(&[font::Family::SansSerif, font::Family::Serif])
.unwrap_or_else(|_| font::FALLBACK.to_vec())
});
default_font.unwrap_or_else(|| font::FALLBACK.to_vec());
let font = ab_glyph::FontArc::try_from_vec(default_font)
.unwrap_or_else(|_| {

View File

@ -10,6 +10,7 @@ repository = "https://github.com/hecrj/iced"
[features]
svg = ["resvg"]
canvas = ["iced_graphics/canvas"]
default_system_font = ["iced_graphics/font-source"]
[dependencies]
wgpu = "0.5"
@ -32,7 +33,7 @@ path = "../native"
[dependencies.iced_graphics]
version = "0.1"
path = "../graphics"
features = ["font-source", "font-fallback", "font-icons"]
features = ["font-fallback", "font-icons"]
[dependencies.image]
version = "0.23"

View File

@ -16,15 +16,20 @@ impl Pipeline {
format: wgpu::TextureFormat,
default_font: Option<&[u8]>,
) -> Self {
let default_font = default_font.map(|slice| slice.to_vec());
// TODO: Font customization
let font_source = font::Source::new();
#[cfg(feature = "default_system_font")]
let default_font = {
default_font.or_else(|| {
font::Source::new()
.load(&[font::Family::SansSerif, font::Family::Serif])
.ok()
})
};
let default_font =
default_font.map(|slice| slice.to_vec()).unwrap_or_else(|| {
font_source
.load(&[font::Family::SansSerif, font::Family::Serif])
.unwrap_or_else(|_| font::FALLBACK.to_vec())
});
default_font.unwrap_or_else(|| font::FALLBACK.to_vec());
let font = ab_glyph::FontArc::try_from_vec(default_font)
.unwrap_or_else(|_| {