wintf 0.0.3

Windows Tategaki Framework - Rust UI library with Japanese vertical text support
#![allow(dead_code)]

use crate::numerics::*;
use bevy_ecs::prelude::*;
use windows::Win32::Graphics::Direct2D::*;
use windows_numerics::*;

#[derive(Clone, Debug)]
pub enum DrawCommand {
    Draw(DrawItem),
    PushClipRect(ClipRect),
    PopClipRect,
    PushClipGeometryEntity(ClipGeometryEntity),
    PushClipGeometryRect(ClipGeometryRect),
    PopClipGeometry,
}

#[derive(Clone, Debug)]
pub struct DrawItem {
    pub(crate) hash: u64,
    pub(crate) world_mat: Matrix3x2,
    pub(crate) entity: Entity,
    pub(crate) world_aabb: Aabb,
}

#[derive(Clone, Debug)]
pub struct ClipRect {
    pub(crate) world_aabb: Aabb,
}

#[derive(Clone, Debug)]
pub struct ClipGeometryEntity {
    pub(crate) world_mat: Matrix3x2,
    pub(crate) entity: Entity,
    pub(crate) world_aabb: Aabb,
}

#[derive(Clone, Debug)]
pub struct ClipGeometryRect {
    pub(crate) world_mat: Matrix3x2,
    pub(crate) geometry: ID2D1Geometry,
    pub(crate) world_aabb: Aabb,
}