1 parent
d5ff5ea1a5
commit
9f76cca8b4
107 files changed
+2940
-2660
No files matched your search
@@ -1,5 +1,5 @@
|
||||
//! Font choice for sketch text. A small TrueType font is built here, so the outlines it must give are
|
||||
//! known by hand; the repository's second font (BIZ UDPGothic, `apps/solidcraft-web/fonts`) stands for
|
||||
//! known by hand; the repository's second font (BIZ UDPGothic, `assets/fonts/biz-udp-gothic`) stands for
|
||||
//! a real one.
|
||||
|
||||
use std::path::PathBuf;
|
||||
@@ -164,7 +164,7 @@ impl Drop for Folder {
|
||||
}
|
||||
|
||||
fn web_fonts() -> PathBuf {
|
||||
PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("..").join("..").join("apps").join("solidcraft-web").join("fonts")
|
||||
PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../../assets/fonts/biz-udp-gothic")
|
||||
}
|
||||
|
||||
/// The corner points of the lines of `geometry`, as (min, max) over x and y.
|
||||
@@ -321,7 +321,11 @@ fn installed_families_are_listed_by_name_once_without_the_built_in_one() {
|
||||
// A second copy of the tiny font, the built-in font and the repository's second font: each family once,
|
||||
// sorted; the built-in family is not among the installed ones, broken files and other files are skipped.
|
||||
std::fs::write(folder.0.join("copy.ttf"), tiny_font()).unwrap();
|
||||
std::fs::copy(PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("fonts").join("LiberationSans-Regular.ttf"), folder.0.join("lib.ttf")).unwrap();
|
||||
std::fs::copy(
|
||||
PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../../assets/fonts/liberation-sans/LiberationSans-Regular.ttf"),
|
||||
folder.0.join("lib.ttf"),
|
||||
)
|
||||
.unwrap();
|
||||
std::fs::copy(web_fonts().join("BIZUDPGothic-Regular.ttf"), folder.0.join("biz.ttf")).unwrap();
|
||||
let families = crate::families_in(std::slice::from_ref(&folder.0));
|
||||
assert_eq!(families, ["BIZ UDPGothic", "Tiny Block"]);
|
||||
|
||||
@@ -8,7 +8,7 @@ use std::sync::{Arc, Mutex, OnceLock};
|
||||
|
||||
use crate::model::{Result, SketchError};
|
||||
|
||||
static DEFAULT_FONT: &[u8] = include_bytes!("../fonts/LiberationSans-Regular.ttf");
|
||||
static DEFAULT_FONT: &[u8] = include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/../../assets/fonts/liberation-sans/LiberationSans-Regular.ttf"));
|
||||
|
||||
/// Family name of the built-in font (also what an empty or absent font name means).
|
||||
pub const DEFAULT_FONT_FAMILY: &str = "Liberation Sans";
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
//! OpenType (CFF) cubic Béziers are cubic control splines, both exact. A glyph's counters (the
|
||||
//! holes of A, B, 8…) are loops inside its outline; profile detection makes them holes.
|
||||
//!
|
||||
//! The default font is embedded (Liberation Sans, SIL OFL 1.1; see `fonts/OFL.txt` and
|
||||
//! The default font is embedded (Liberation Sans, SIL OFL 1.1; see `assets/fonts/liberation-sans/OFL.txt` and
|
||||
//! ATTRIBUTION.md); [`crate::fonts`] finds others by file path or installed family name.
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
@@ -435,7 +435,7 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn a_font_file_gives_the_same_outlines_and_unknown_fonts_are_errors() {
|
||||
let path = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("fonts").join("LiberationSans-Regular.ttf");
|
||||
let path = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("../../assets/fonts/liberation-sans/LiberationSans-Regular.ttf");
|
||||
let by_file = text_geometry_in(Some(&path.to_string_lossy()), "A7_L", Vec2::ZERO, 8.0, 0.0).unwrap();
|
||||
assert_eq!(by_file, text_geometry("A7_L", Vec2::ZERO, 8.0, 0.0).unwrap());
|
||||
let e = text_geometry_in(Some("No Such Family 12345"), "A", Vec2::ZERO, 8.0, 0.0).unwrap_err().to_string();
|
||||
|
||||
Reference in new issue
Block a user