x-graphics 0.2.1

Graphics framework for X
Documentation
use windows::Win32::Graphics::DirectWrite::{
    DWRITE_FONT_STYLE, DWRITE_FONT_STYLE_ITALIC, DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_WEIGHT, DWRITE_FONT_WEIGHT_BLACK, DWRITE_FONT_WEIGHT_BOLD,
    DWRITE_FONT_WEIGHT_EXTRA_BLACK, DWRITE_FONT_WEIGHT_EXTRA_BOLD, DWRITE_FONT_WEIGHT_EXTRA_LIGHT, DWRITE_FONT_WEIGHT_LIGHT,
    DWRITE_FONT_WEIGHT_MEDIUM, DWRITE_FONT_WEIGHT_REGULAR, DWRITE_FONT_WEIGHT_SEMI_BOLD, DWRITE_FONT_WEIGHT_THIN,
};

use crate::font::{FontStyle, FontWeight};

impl From<FontStyle> for DWRITE_FONT_STYLE {
    fn from(style: FontStyle) -> Self {
        if style.contains(FontStyle::Italic) {
            DWRITE_FONT_STYLE_ITALIC
        } else {
            DWRITE_FONT_STYLE_NORMAL
        }
    }
}

impl From<FontWeight> for DWRITE_FONT_WEIGHT {
    fn from(weight: FontWeight) -> Self {
        match weight {
            FontWeight::Thin => DWRITE_FONT_WEIGHT_THIN,
            FontWeight::ExtraLight => DWRITE_FONT_WEIGHT_EXTRA_LIGHT,
            FontWeight::Light => DWRITE_FONT_WEIGHT_LIGHT,
            FontWeight::Normal => DWRITE_FONT_WEIGHT_REGULAR,
            FontWeight::Medium => DWRITE_FONT_WEIGHT_MEDIUM,
            FontWeight::SemiBold => DWRITE_FONT_WEIGHT_SEMI_BOLD,
            FontWeight::Bold => DWRITE_FONT_WEIGHT_BOLD,
            FontWeight::ExtraBold => DWRITE_FONT_WEIGHT_EXTRA_BOLD,
            FontWeight::Black => DWRITE_FONT_WEIGHT_BLACK,
            FontWeight::ExtraBlack => DWRITE_FONT_WEIGHT_EXTRA_BLACK,
        }
    }
}