x_graphics/direct2d/
font.rs1use windows::Win32::Graphics::DirectWrite::{
2 DWRITE_FONT_STYLE, DWRITE_FONT_STYLE_ITALIC, DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_WEIGHT, DWRITE_FONT_WEIGHT_BLACK, DWRITE_FONT_WEIGHT_BOLD,
3 DWRITE_FONT_WEIGHT_EXTRA_BLACK, DWRITE_FONT_WEIGHT_EXTRA_BOLD, DWRITE_FONT_WEIGHT_EXTRA_LIGHT, DWRITE_FONT_WEIGHT_LIGHT,
4 DWRITE_FONT_WEIGHT_MEDIUM, DWRITE_FONT_WEIGHT_REGULAR, DWRITE_FONT_WEIGHT_SEMI_BOLD, DWRITE_FONT_WEIGHT_THIN,
5};
6
7use crate::font::{FontStyle, FontWeight};
8
9impl From<FontStyle> for DWRITE_FONT_STYLE {
10 fn from(style: FontStyle) -> Self {
11 if style.contains(FontStyle::Italic) {
12 DWRITE_FONT_STYLE_ITALIC
13 } else {
14 DWRITE_FONT_STYLE_NORMAL
15 }
16 }
17}
18
19impl From<FontWeight> for DWRITE_FONT_WEIGHT {
20 fn from(weight: FontWeight) -> Self {
21 match weight {
22 FontWeight::Thin => DWRITE_FONT_WEIGHT_THIN,
23 FontWeight::ExtraLight => DWRITE_FONT_WEIGHT_EXTRA_LIGHT,
24 FontWeight::Light => DWRITE_FONT_WEIGHT_LIGHT,
25 FontWeight::Normal => DWRITE_FONT_WEIGHT_REGULAR,
26 FontWeight::Medium => DWRITE_FONT_WEIGHT_MEDIUM,
27 FontWeight::SemiBold => DWRITE_FONT_WEIGHT_SEMI_BOLD,
28 FontWeight::Bold => DWRITE_FONT_WEIGHT_BOLD,
29 FontWeight::ExtraBold => DWRITE_FONT_WEIGHT_EXTRA_BOLD,
30 FontWeight::Black => DWRITE_FONT_WEIGHT_BLACK,
31 FontWeight::ExtraBlack => DWRITE_FONT_WEIGHT_EXTRA_BLACK,
32 }
33 }
34}