#direct2d #geometry #builder #err #ok

direct2d

Direct2D 的安全抽象,用于绘图

15 个不稳定版本 (3 个重大变更)

0.3.0-alpha12019年2月24日
0.2.0 2018年10月23日
0.1.4 2018年9月26日
0.1.2 2018年4月27日
0.0.2 2015年12月13日

#234 in 图形 API

Download history • Rust 包仓库 370/week @ 2023-10-19 • Rust 包仓库 327/week @ 2023-10-26 • Rust 包仓库 226/week @ 2023-11-02 • Rust 包仓库 189/week @ 2023-11-09 • Rust 包仓库 254/week @ 2023-11-16 • Rust 包仓库 231/week @ 2023-11-23 • Rust 包仓库 167/week @ 2023-11-30 • Rust 包仓库 183/week @ 2023-12-07 • Rust 包仓库 303/week @ 2023-12-14 • Rust 包仓库 224/week @ 2023-12-21 • Rust 包仓库 121/week @ 2023-12-28 • Rust 包仓库 159/week @ 2024-01-04 • Rust 包仓库 205/week @ 2024-01-11 • Rust 包仓库 213/week @ 2024-01-18 • Rust 包仓库 172/week @ 2024-01-25 • Rust 包仓库 116/week @ 2024-02-01 • Rust 包仓库

每月下载量 732
7 个 crate 中使用 (via druid-win-shell)

MIT/Apache 许可

145KB
4.5K SLoC

在 Windows 上使用 Direct2D 绘图的安全抽象

示例

extern crate direct2d;

use direct2d::{DeviceContext, RenderTarget};
use direct2d::brush::SolidColorBrush;
use direct2d::image::Bitmap;

fn draw(context: &mut DeviceContext, target: &Bitmap) {
    let brush = SolidColorBrush::create(&context)
        .with_color(0xFF_7F_7F)
        .build().unwrap();

    context.begin_draw();
    context.set_target(target);
    context.clear(0xFF_FF_FF);
    
    context.draw_line((10.0, 10.0), (20.0, 20.0), &brush, 2.0, None);
    context.draw_line((10.0, 20.0), (20.0, 10.0), &brush, 2.0, None);

    match context.end_draw() {
        Ok(_) => {/* cool */},
        Err(_) => panic!("Uh oh, rendering failed!"),
    }
}

依赖关系

~0–770KB
~13K SLoC