Move built-in fonts to `iced_graphics`

This commit is contained in:
Héctor Ramón Jiménez 2020-05-19 20:30:46 +02:00
parent e0c4f1a08e
commit f0480854a9
12 changed files with 26 additions and 29 deletions

View File

@ -23,7 +23,7 @@ path = "../native"
[dependencies.iced_graphics] [dependencies.iced_graphics]
version = "0.1" version = "0.1"
path = "../graphics" path = "../graphics"
features = ["font-source"] features = ["font-source", "font-fallback", "font-icons"]
[dependencies.surfman] [dependencies.surfman]
path = "../../surfman/surfman" path = "../../surfman/surfman"

View File

@ -3,6 +3,7 @@ use crate::text;
use crate::triangle; use crate::triangle;
use crate::{Quad, Settings, Transformation, Viewport}; use crate::{Quad, Settings, Transformation, Viewport};
use iced_graphics::backend; use iced_graphics::backend;
use iced_graphics::font;
use iced_graphics::Primitive; use iced_graphics::Primitive;
use iced_native::mouse; use iced_native::mouse;
use iced_native::{Background, Font, Point, Rectangle, Size, Vector}; use iced_native::{Background, Font, Point, Rectangle, Size, Vector};
@ -404,8 +405,8 @@ impl iced_graphics::Backend for Backend {
} }
impl backend::Text for Backend { impl backend::Text for Backend {
const ICON_FONT: Font = text::BUILTIN_ICONS; const ICON_FONT: Font = font::ICONS;
const CHECKMARK_ICON: char = text::CHECKMARK_ICON; const CHECKMARK_ICON: char = font::CHECKMARK_ICON;
fn measure( fn measure(
&self, &self,

View File

@ -2,16 +2,6 @@ use crate::Transformation;
use iced_graphics::font; use iced_graphics::font;
use std::{cell::RefCell, collections::HashMap}; use std::{cell::RefCell, collections::HashMap};
pub const BUILTIN_ICONS: iced_native::Font = iced_native::Font::External {
name: "iced_glow icons",
bytes: include_bytes!("text/icons.ttf"),
};
pub const CHECKMARK_ICON: char = '\u{F00C}';
const FALLBACK_FONT: &[u8] =
include_bytes!("../../wgpu/fonts/Lato-Regular.ttf");
#[derive(Debug)] #[derive(Debug)]
pub struct Pipeline { pub struct Pipeline {
draw_brush: RefCell<glow_glyph::GlyphBrush<'static>>, draw_brush: RefCell<glow_glyph::GlyphBrush<'static>>,
@ -29,7 +19,7 @@ impl Pipeline {
default_font.map(|slice| slice.to_vec()).unwrap_or_else(|| { default_font.map(|slice| slice.to_vec()).unwrap_or_else(|| {
font_source font_source
.load(&[font::Family::SansSerif, font::Family::Serif]) .load(&[font::Family::SansSerif, font::Family::Serif])
.unwrap_or_else(|_| FALLBACK_FONT.to_vec()) .unwrap_or_else(|_| font::FALLBACK.to_vec())
}); });
let load_glyph_brush = |font: Vec<u8>| { let load_glyph_brush = |font: Vec<u8>| {
@ -48,7 +38,7 @@ impl Pipeline {
.unwrap_or_else(|_: glow_glyph::rusttype::Error| { .unwrap_or_else(|_: glow_glyph::rusttype::Error| {
log::warn!("System font failed to load. Falling back to embedded font..."); log::warn!("System font failed to load. Falling back to embedded font...");
load_glyph_brush(FALLBACK_FONT.to_vec()).expect("Load fallback font") load_glyph_brush(font::FALLBACK.to_vec()).expect("Load fallback font")
}); });
let draw_brush = let draw_brush =

View File

@ -7,6 +7,8 @@ edition = "2018"
[features] [features]
canvas = ["lyon"] canvas = ["lyon"]
font-source = ["font-kit"] font-source = ["font-kit"]
font-fallback = []
font-icons = []
[dependencies] [dependencies]
bytemuck = "1.2" bytemuck = "1.2"

View File

@ -8,3 +8,15 @@ pub use source::Source;
pub use font_kit::{ pub use font_kit::{
error::SelectionError as LoadError, family_name::FamilyName as Family, error::SelectionError as LoadError, family_name::FamilyName as Family,
}; };
#[cfg(feature = "font-fallback")]
pub const FALLBACK: &[u8] = include_bytes!("../fonts/Lato-Regular.ttf");
#[cfg(feature = "font-icons")]
pub const ICONS: iced_native::Font = iced_native::Font::External {
name: "iced_wgpu icons",
bytes: include_bytes!("../fonts/Icons.ttf"),
};
#[cfg(feature = "font-icons")]
pub const CHECKMARK_ICON: char = '\u{F00C}';

View File

@ -32,7 +32,7 @@ path = "../native"
[dependencies.iced_graphics] [dependencies.iced_graphics]
version = "0.1" version = "0.1"
path = "../graphics" path = "../graphics"
features = ["font-source"] features = ["font-source", "font-fallback", "font-icons"]
[dependencies.image] [dependencies.image]
version = "0.23" version = "0.23"

View File

@ -3,6 +3,7 @@ use crate::text;
use crate::triangle; use crate::triangle;
use crate::{Quad, Settings, Target, Transformation}; use crate::{Quad, Settings, Target, Transformation};
use iced_graphics::backend; use iced_graphics::backend;
use iced_graphics::font;
use iced_graphics::Primitive; use iced_graphics::Primitive;
use iced_native::mouse; use iced_native::mouse;
use iced_native::{Background, Font, Point, Rectangle, Size, Vector}; use iced_native::{Background, Font, Point, Rectangle, Size, Vector};
@ -456,8 +457,8 @@ impl iced_graphics::Backend for Backend {
} }
impl backend::Text for Backend { impl backend::Text for Backend {
const ICON_FONT: Font = text::BUILTIN_ICONS; const ICON_FONT: Font = font::ICONS;
const CHECKMARK_ICON: char = text::CHECKMARK_ICON; const CHECKMARK_ICON: char = font::CHECKMARK_ICON;
fn measure( fn measure(
&self, &self,

View File

@ -2,15 +2,6 @@ use crate::Transformation;
use iced_graphics::font; use iced_graphics::font;
use std::{cell::RefCell, collections::HashMap}; use std::{cell::RefCell, collections::HashMap};
pub const BUILTIN_ICONS: iced_native::Font = iced_native::Font::External {
name: "iced_wgpu icons",
bytes: include_bytes!("text/icons.ttf"),
};
pub const CHECKMARK_ICON: char = '\u{F00C}';
const FALLBACK_FONT: &[u8] = include_bytes!("../fonts/Lato-Regular.ttf");
#[derive(Debug)] #[derive(Debug)]
pub struct Pipeline { pub struct Pipeline {
draw_brush: RefCell<wgpu_glyph::GlyphBrush<'static, ()>>, draw_brush: RefCell<wgpu_glyph::GlyphBrush<'static, ()>>,
@ -32,7 +23,7 @@ impl Pipeline {
default_font.map(|slice| slice.to_vec()).unwrap_or_else(|| { default_font.map(|slice| slice.to_vec()).unwrap_or_else(|| {
font_source font_source
.load(&[font::Family::SansSerif, font::Family::Serif]) .load(&[font::Family::SansSerif, font::Family::Serif])
.unwrap_or_else(|_| FALLBACK_FONT.to_vec()) .unwrap_or_else(|_| font::FALLBACK.to_vec())
}); });
let load_glyph_brush = |font: Vec<u8>| { let load_glyph_brush = |font: Vec<u8>| {
@ -51,7 +42,7 @@ impl Pipeline {
.unwrap_or_else(|_: wgpu_glyph::rusttype::Error| { .unwrap_or_else(|_: wgpu_glyph::rusttype::Error| {
log::warn!("System font failed to load. Falling back to embedded font..."); log::warn!("System font failed to load. Falling back to embedded font...");
load_glyph_brush(FALLBACK_FONT.to_vec()).expect("Load fallback font") load_glyph_brush(font::FALLBACK.to_vec()).expect("Load fallback font")
}); });
let draw_brush = brush_builder let draw_brush = brush_builder

Binary file not shown.