2个版本
0.0.1 | 2022年12月10日 |
---|---|
0.0.0 | 2022年12月9日 |
#7 in #direct2d
32KB
478 行
geoms
Microsoft平台的几何库 - 一组针对原生API(Win32、Direct2D和Direct3D)优化的几何基元类型。
该库的目标是提供一种符合Rust语言习惯但无成本的接口,用于在Microsoft图形API中常用的几何类型。与优秀的::num_traits
库集成,允许几何类型用任意数值类型表示,并允许在更高层次类型的不同数值表示之间进行转换。
可选功能
用法
要使用geoms
,请将以下内容添加到您的Cargo.toml
[dependencies]
geoms = "0.0.1"
要启用对原生Microsoft类型的可选转换,激活适当的功能。例如,为Direct2D支持
[dependencies]
geoms = { version = "0.0.1", features = ["d2d"] }
示例
use ::geoms::d2::{Rect2D, Point2D, Size2D};
use ::windows::Win32::Graphics::Direct2D::Common::D2D_RECT_F;
// Construct our Rust rectangle, 100x20 pixels at point 10,10
let rect = Rect2D::with_size_and_origin(
Size2D { width: 100.0, height: 20.0 },
Point2D { x: 10.0, y: 10.0 },
);
// Convert our Rust rectangle into a Direct2D rectangle. This merely
// transmutes under the hood as the memory layouts are the same.
let d2d_rect: D2D_RECT_F = rect.into();
// Confirm our Direct2D rectangle has the expected properties.
assert_eq!(rect.left, 10.0);
assert_eq!(rect.right, 110.0);
// Cast our entire rect to a u32 representation of the same primitive:
let u_rect = rect.cast::<u32>();
assert_eq!(u_rect.left, 10);
assert_eq!(u_rect.right, 110);
当前状态
只有少数几个基元被实现,以满足个人项目需求。API是不稳定的,预计会发生变化。
许可
本项目采用MIT许可
贡献
除非您明确声明,否则您提交给本项目并有意包含在内的任何贡献,都应按MIT许可,不附加任何额外条款或条件。
依赖关系
~0.1–38MB
~527K SLoC