Move built-in fonts to `iced_graphics`
This commit is contained in:
parent
e0c4f1a08e
commit
f0480854a9
|
@ -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"
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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 =
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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}';
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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.
Loading…
Reference in New Issue